gpt4 book ai didi

verilog - 使用forever和always语句

转载 作者:行者123 更新时间:2023-12-02 13:41:25 58 4
gpt4 key购买 nike

以下代码均生成时钟。我需要知道除了时钟生成之外,永远循环是否还有其他用途?我只在时钟一代中遇到过永远。如果仅仅达到这个目的,岂不是毫无用处?

initial begin
clk = 0;
forever begin
#5 clk = ~clk;
end
end

initial begin
clk = 0 ;
always begin
# 5 clk = ~clk;
end
end

最佳答案

你的第二个代码片段实际上是一个语法错误。 foreveralways 之间的区别在于 always 可以作为“模块项”存在,这是 Verilog 规范为构造赋予的名称可以直接在模块中编写,而不包含在其他构造中。 initial 也是一个模块项。 always block 会重复,而 initial block 在模拟开始时运行一次。

forever 是一个过程语句,只能在过程上下文中使用。因此,编写initialeveryonealwaysforever是合法的,但不仅仅是forever

forever 变得非常重要的情况是在任务中,这些任务是过程上下文,因此不允许使用 always 。 (函数也是过程上下文,但可能不包含延迟,这使得 forever 不太可能有用。

关于verilog - 使用forever和always语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15938158/

58 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com