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时,第二个始终
块将挂起模拟器。它将进入一个无限循环。