我正在verilog中实现顺序电路。我想要一个时间段为10的时钟。为了实现我做了类似的事情
$('#datetimepicker6').datetimepicker();
但是当我运行代码时,它会继续运行而不显示任何输出。上述实施中是否有任何错误?
答案 0 :(得分:2)
实现它的一种方法如下(假设您在测试平台中使用它):
parameter clock_period=10;
always
#(clock_period/2) clock=~clock;
initial begin
clock=0;
#1000 $finish; // You can put the delay as per your requirement.
end
答案 1 :(得分:2)
您的代码一直在运行,因为没有$ finish。所以这是一个自由运行的振荡器。
以下是一些时钟生成方法。或多或少,它们都是一样的。
方法1:
parameter int clk_tgl_period = 5;
parameter timeout = 500;
module clkgen1;
reg clk;
initial begin
clk <= '0;
forever #(clk_tgl_period) clk = ~clk;
end
initial begin
#(timeout) $finish
end
endmodule
方法 - 2
parameter int clk_tgl_period = 5;
parameter timeout = 500;
module clkgen2;
reg clk;
initial begin
clk = 0;
#(timeout) $finish;
end
always #(clk_tgl_period) clk = ~clk;
endmodule
方法 - 3
parameter int clk_tgl_period = 5;
parameter timeout = 500;
module clkgen3;
reg clk;
initial begin
clk = 0;
#(timeout) $finish;
end
always #(clk_tgl_period) clk++;
endmodule
有关详细信息,您可能需要查看CummingsSNUG2006Boston_SystemVerilog_Events Paper的第4节。