Verilog 在条件 if 中使用 @
Verilog using @ with conditional if
您好,我有一个关于 Verilog 语法的问题。
我知道 @ 经常与 always 一起使用。
但我想在变量更改其值时执行一些操作。
例如,我想知道 switch 是否在变化。
所以,我尝试了 if (@posedge switch 或 negedge switch)
但是这样出错了
还有其他方法吗?
提前致谢
如果您想编写一个同步设计(并且您想要这样做;),您必须在一个时钟边沿(通常是上升沿)更改所有信号的状态。
然后要检测开关沿,您必须保存开关值的状态并将其与时钟上升沿的实际值进行比较。
always @(posedge clock)
begin
if (switch_old != switch)
switch_edge <= 1'b1;
else
switch_edge <= 1'b0;
switch_old <= switch;
end
同步设计不能做到你所要求的,那就不能合理合成。
您好,我有一个关于 Verilog 语法的问题。
我知道 @ 经常与 always 一起使用。
但我想在变量更改其值时执行一些操作。
例如,我想知道 switch 是否在变化。
所以,我尝试了 if (@posedge switch 或 negedge switch)
但是这样出错了
还有其他方法吗?
提前致谢
如果您想编写一个同步设计(并且您想要这样做;),您必须在一个时钟边沿(通常是上升沿)更改所有信号的状态。
然后要检测开关沿,您必须保存开关值的状态并将其与时钟上升沿的实际值进行比较。
always @(posedge clock)
begin
if (switch_old != switch)
switch_edge <= 1'b1;
else
switch_edge <= 1'b0;
switch_old <= switch;
end
同步设计不能做到你所要求的,那就不能合理合成。