|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我用Modelsim仿真自己的设计,但是对于怎样写触发器的testbench一直糊涂,大家看一下我的代码并赐教。
dff_test.v
- module dff_test
- (
- CLK,
- D,
- Q
- );
- input CLK;
- input D;
- output Q;
- reg Q;
- always@(posedge CLK)
- begin
- Q <= D;
- end
- endmodule
复制代码
dff_test_tb.v
- module dff_test_tb ;
-
- reg D ;
- wire Q ;
- reg CLK ;
-
- dff_test
- DUT (
- .D (D ) ,
- .Q (Q ) ,
- .CLK (CLK ) );
- initial
- begin
- CLK = 1'b0;
- #500;
- forever #50 CLK = ~CLK;
- end
- initial
- begin
- D = 1'b0;
- #3000;
- @(posedge CLK);
- D = 1'b1;
- #10000;
- @(posedge CLK);
- D = 1'b0;
- #110;
- @(posedge CLK);
- D = 1'b0;
- end
- endmodule
复制代码
我认为仿真的结果Q应该比D迟一个时钟节拍,但是仿真的结果却如下图所示
Q并没有比D迟一个时钟节拍。难道是@(posedge CLK)这种等待时钟沿的方法没有使D信号的产生发生在CLK的上升沿之后?
请大家赐教,谢谢! |
|