module dff_reset_tb( ); reg clk; reg reset; reg d; reg en; wire q; dff_reset UUT( //实例化被测模块 .clk(clk), .reset(reset), .d(d), .en(en), .q(q)); initial begin //0 时刻初始化各输入信号 clk = 1'b0; reset = 1'b1; d = 1'b0; en = 1'b0; #20 reset = 1'b0; //20ns 后 reset 信号置 0 #50 reset = 1'b1; //50ns 后 reset 信号置 1 #20 reset = 1'b0; //20ns 后 reset 信号置 0 #50 $finish; //50ns 后结束仿真 end //产生时钟信号,每 5ns 翻转一次 always begin clk = 1'b0; #5 clk = 1'b1; #5; end //产生输入信号 d,每 8ns 翻转一次 always begin d = 1'b0; #8 d = 1'b1; #8; end endmodule,修改代码,加入en的作用,其中clk为上升沿触发,en和reset都是高电平有效
时间: 2023-12-06 18:41:04 浏览: 36
module dff_reset_tb( );
reg clk;
reg reset;
reg d;
reg en;
wire q;
dff_reset UUT( //实例化被测模块
.clk(clk),
.reset(reset),
.d(d),
.en(en),
.q(q)
);
initial begin
//0 时刻初始化各输入信号
clk = 1'b0;
reset = 1'b1;
d = 1'b0;
en = 1'b0;
#20 reset = 1'b0; //20ns 后 reset 信号置 0
#50 reset = 1'b1; //50ns 后 reset 信号置 1
#20 reset = 1'b0; //20ns 后 reset 信号置 0
#50 $finish; //50ns 后结束仿真
end
//产生时钟信号,每 5ns 翻转一次
always begin
#2.5 clk = ~clk;
#2.5 clk = ~clk;
end
//产生输入信号 d,每 8ns 翻转一次
always begin
#4 d = ~d;
#4 d = ~d;
end
//产生输入信号 en,每 15ns 翻转一次
always begin
#7.5 en = ~en;
#7.5 en = ~en;
end
endmodule