Verilog时钟发生器错误?

时间:2016-04-27 19:17:34

标签: verilog

我使用ISE 14.7编写简单代码来生成时钟信号,但iSim中的输出始终为1,直到我改变=< =然后时钟工作,你能告诉我为什么吗?

module nonblocking( clk );
 output reg clk;

 initial 
   #10 clk =0;

 always @ (clk)
#10 clk = ~ clk; // change to <= to work

endmodule

1 个答案:

答案 0 :(得分:0)

这段代码老实说没有任何意义。

您当前的代码指出,基于clkclk的值应为~clk。 当您使用<=时,您至少指定了非阻止分配,这更有意义,但仍然没有。

如果您需要时钟发生器进行仿真,请在初始块中使用以下内容(给出10ns周期):

forever begin
    #5 clk <= ~clk;
end

如果您需要用于FPGA合成的时钟发生器,请将物理振荡器连接到设备的时钟输入引脚,或使用内置振荡器(如果您的设备上有)。您始终可以使用DCM / PLL / CMT / MMCM / FPGA调用它来调整时钟频率。