Verilog时钟发生器错误?
我使用ISE14.7编写了简单的代码来生成时钟信号,但iSim中的输出总是1,直到我更改=with为止,这段代码实际上没有任何意义 您当前的代码说明基于Verilog时钟发生器错误?,verilog,Verilog,我使用ISE14.7编写了简单的代码来生成时钟信号,但iSim中的输出总是1,直到我更改=with为止,这段代码实际上没有任何意义 您当前的代码说明基于clk,clk的值应该是~clk。 当您使用时,此代码是用于合成还是用于模拟?您使用的是什么工具链/模拟器/合成工具/编译器?如果在翻转clk的值之前没有任何延迟,并且使用始终@clk,那么您到底想要实现什么?我更喜欢这样:初始clk=0;始终#10 clk=~clk永久需要在首字母内。我使用ISE 14.7,正如我刚刚在使用非阻塞赋值时告诉您的
clk
,clk
的值应该是~clk
。
当您使用
时,此代码是用于合成还是用于模拟?您使用的是什么工具链/模拟器/合成工具/编译器?如果在翻转clk
的值之前没有任何延迟,并且使用始终@clk
,那么您到底想要实现什么?我更喜欢这样:初始clk=0;始终#10 clk=~clk代码>永久需要在首字母内。我使用ISE 14.7,正如我刚刚在使用非阻塞赋值时告诉您的,时钟显示在iSim@HayderAl-艾米莉:虽然这可能有效,但这不是一个明确的方法。如果要生成时钟,请以代码的其他读者清楚的方式生成时钟。事实上,它是在一个非边缘触发的过程中随时间分配给寄存器的,这使得它看起来与通常为测试台制作的时钟发生器不同,并且该代码与需要编写才能合成的代码不一致。
module nonblocking( clk );
output reg clk;
initial
#10 clk =0;
always @ (clk)
#10 clk = ~ clk; // change to <= to work
endmodule
forever begin
#5 clk <= ~clk;
end