Verilog HDL中的时钟周期始终阻止

时间:2014-12-04 22:29:29

标签: verilog hdl

这是来自Cavanagh的Verilog HDL:数字设计和建模。

//clock generation using initial and always statements

module clk_gen2 (clk);

output clk;
reg clk;

//initialize clock to 0
initial
    clk = 1'b0;

//toggle clock every 10 time units
always
    #10 clk =~ clk;

//determine length of simulation
initial
    #100 $finish;

endmodule

其部分解释说

  

[...] always语句每10个时间单位循环一次,时钟周期为20个单位。

我迷失了20个单位。这是从哪里来的?

2 个答案:

答案 0 :(得分:1)

需要两次时钟切换才能生成一个周期

答案 1 :(得分:0)

总是阻止每10个时间单位改变时钟信号状态(从高到低和从低到高)。如果时钟每10个时间单位改变一次,那么它的周期将是20个时间单位,例如时钟每10秒钟改变一次,它的半周期为10秒,其周期为20秒。