我试图从 Thomas Moorby 的“The Verilog HDL”一书中自学verilog 编程。在其中一个练习中,他们要求仅使用结构 verilog 生成时钟(当然 $monitor 部分除外)。
我尝试了以下方法:
module clock();
wor clk;
assign clk=0;
initial begin
$monitor($time,,"clk=%b", clk);
#100 $finish;
end
assign #5 clk = ~clk;
endmodule
问题是,它适用于 iVerilog 0.9.7,但对于 10.0 及更高版本,它不起作用.. 我只是得到 clk 的未定义值!
看起来不像 iVerilog 中的错误,否则它可能已在 10.x 版本之一中修复。有没有其他方法可以让这个工作?另外,当前代码有什么问题(如果有的话)?