我正在尝试学习Verilog,在一个简单的时钟生成器示例中,我看到以下代码:
always #(cycle/2) clk ~= clk
我以前总是见过@(*)而不是pound(#)。我试图在文档中找到它,但我能找到的只是对“实值端口”的一些参考,没有进一步的阐述。
感谢您的帮助!
答案 0 :(得分:8)
这是延迟操作。它本质上只是读取
always begin
#(cycle/2) //wait for cycle/2 time
clk ~= clk;
end
您有时可能会看到这与原始值一起使用,例如#5或#10,这意味着等待5或10个单位的时间刻度。