关于D触发器,d触发器在Verilog时序电路设计中是一个基本元件,多存在于单元库调用之中。dff可以形成4位移位寄存器,接下来进行一个简单的1bitd触发器的设计和仿真。
- 代码段
module dff(clk,data,q);//端口名定义
input clk;
input data;
output q;
reg q;
always @(posedge clk)
q<=data;//unblocking
endmodule
D触发器功能是在时钟上升沿到来之后将data传出。
`timescale 1ns/1ns
module dff_tb;
reg clk;
reg d;
//integer delay1;
wire q1;
dff4 U1(clk,d,q1);//模块调用
initial
begin
clk=1'b0;
repeat(20)
begin
// delay1=10*({$random}%5);
#10 clk=~clk;
end
end
initial
begin
clk=1'b0;
#20 d=1'b1;
#20 d=1'b0;
#20 d=1'b1;
#20 d=1'b0;
#20 d=1'b1;
#20 d=1'b1;
#20 d=1'b0;
#20 d=1'b1;
#20 d=1'b0;
#20 d=1'b1;
end
endmodule

仿真时间200ns,由仿真结果可得dff是在上升沿到来之后把数据读出输出。
阻塞和非阻塞对dff无区别。以下为非阻塞赋值,后文单独写一篇阻塞和非阻塞区别

本文介绍了D触发器在Verilog时序电路设计中的应用,通过1bit D触发器的设计实例展示了其在上升沿读取数据的功能。在仿真过程中,注意到阻塞与非阻塞赋值对D触发器的影响,并讨论了当尝试传入多位数据时,高位呈现高阻态的问题。同时,文章探讨了如何进行随机化时钟信号仿真,强调了reg类型的使用以避免整型产生的溢出问题,并给出了生成特定范围随机数的方法。
最低0.47元/天 解锁文章
2233

被折叠的 条评论
为什么被折叠?



