问题描述
假设我们有一个名为“clk”的信号,我们希望确保当“enable”为“1”时,clk 会切换。并且“clk”的频率未知。
解决方法
这个怎么样?
module top();
reg clk;
reg enable;
always @(posedge enable)
begin
automatic bit toggled=1'b0;
automatic process p;
fork
begin
p = process::self();
$display("%t expecting CLK toggle ...",$time);
@(clk) toggled = 1'b1;
$display("%t CLK toggled!",$time);
end
join_none
@(negedge enable);
if (!toggled) $error("CLK not toggled!");
p.kill();
end
initial
begin
clk = 1'b0;
enable = 1'b0;
$dumpfile("dump.vcd"); $dumpvars;
repeat(3)
begin
#5;
enable <= 1'b1;
#5;
clk <= ~clk;
#5;
enable <= 1'b0;
#5;
enable <= 1'b1;
#5;
//clk <= ~clk;
#5;
enable <= 1'b0;
end
#5;
$finish();
end
endmodule : top