gpt4 book ai didi

verilog - 'wait' 和 '@' 语句的区别

转载 作者:行者123 更新时间:2023-12-01 11:36:24 25 4
gpt4 key购买 nike

下面的一组代码做同样的事情,它们之间有什么区别吗?如果没有,为什么wait(clk)不被普遍使用?

always @(posedge clk)
begin

end


always wait(clk)
begin

end

最佳答案

@(posedge clk) 是边缘敏感的,因此它被用来模拟同步电路。而 wait(clk) 是电平敏感的。由于大多数电路设计同步 @(posedge clk) 主要使用

wait (expression)

评估“表达式”,如果为假,则暂停执行直到表达式变为真。如果到达语句时表达式为真,则等待无效,并继续执行受控语句。

@(posedge clk) - is an edge event.
posedge:0,x,z->1 negedge:1,x,z->0

边沿事件对于为时钟逻辑元件(如触发器)建模非常有用。它们对于同步基于公共(public)时钟的模型中的事件也很有用。例如,在下面的 always block 中,它在时钟的下降沿进入 always block 。

always @(negedge clock)
x = f(y);

关于verilog - 'wait' 和 '@' 语句的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26713683/

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