原创 用户定义原语(UDP)

2010-6-4 10:47 3171 2 2 分类: FPGA/CPLD

时序逻辑UDP,以D型边沿触发器为例建模。


primitive ff(q,clk,d);
output q;
input clk,d;
reg q;
initial q = 0;
table
//clk data q(state) q(next)
(01)   0:     ?:      0;                  //(01)  表示上升沿,由0到1。  
(01)   1:     ?:      1;
(0x)   1:     1:      1;                 //(0x)  表示0到x。
(0x)   0:     0:      0;
(?0)   ?:     ?:      -;                
?   (??):     ?:      -;                  //(??)表示任意转换
endtable
endprimitive


UDP对应tesetbench
`timescale 1ns/1ns
module test_ff;
reg clk,d;
wire q;
reg clk2;
initial
   begin
   clk = 0;
   d = 0;
   clk2 = 0;
   end
always #3 clk =~clk;
always #2 clk2= ~clk2;
always @(posedge clk2)
begin
    d = {$random}%2;
end
ff m0(q,clk,d);
endmodule


仿真波形如下,输出q在clk的上升沿保持d的状态。



点击看大图

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条