Verilog 与x27之间的差异;等等';和'@';陈述

Verilog 与x27之间的差异;等等';和'@';陈述,verilog,Verilog,下面的代码集做同样的事情。它们之间有什么区别吗?如果没有,为什么wait(clk)没有普遍使用 always @(posedge clk) begin end always wait(clk) begin end @(posedge clk)是边缘敏感的,因此它被用于对同步电路建模。而等待(clk)是电平敏感的。由于大多数电路设计为同步的,所以主要使用@(posedge clk) wait (expression) 计算“表达式”,如果为false,则暂停执行,直到表达式变为tru

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

always @(posedge clk)
begin

end


always wait(clk)
begin 

end
@(posedge clk)
是边缘敏感的,因此它被用于对同步电路建模。而
等待(clk)
是电平敏感的。由于大多数电路设计为同步的,所以主要使用
@(posedge clk)

wait (expression)
计算“表达式”,如果为false,则暂停执行,直到表达式变为true。如果到达语句时表达式为true,则等待无效,执行继续到受控语句

@(posedge clk) - is an edge event.
posedge:0,x,z->1    negedge:1,x,z->0
边缘事件对于模拟时钟逻辑元件(如触发器)非常有用。它们还可用于基于公共时钟同步模型中的活动。例如,在下面的always块中,它在时钟的负边缘输入
always

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

请注意,如果块内没有其他延迟,当
clk
变为1时,第二个
始终
块将挂起模拟器。它将进入一个无限循环。