@() 在 always 块中
@() inside an always block
在 always 块中使用 @() 是否是一种不好的做法,或者换句话说,这是错误的?示例代码如下:
always@(negedge clk)begin
@(valueI)begin
deterministicEnable=0;
iterate=iterate+1;
deterministicEnable=1;
j=0;
$display("%h %d %d",valueI,$time,j);
end
end
可合成代码是错误的。你的测试台没有错。
大多数 RTL 综合工具不允许这样做。
这通常是一种不好的做法。您有与时钟下降沿同步的代码。然后你等待另一个可能与前一个时钟一致或不一致的变化。我不知道这对你的情况是否重要。
此外,对 deterministicEnable
的分配是一个小故障,其他进程可能会或可能不会看到。
在 always 块中使用 @() 是否是一种不好的做法,或者换句话说,这是错误的?示例代码如下:
always@(negedge clk)begin
@(valueI)begin
deterministicEnable=0;
iterate=iterate+1;
deterministicEnable=1;
j=0;
$display("%h %d %d",valueI,$time,j);
end
end
可合成代码是错误的。你的测试台没有错。
大多数 RTL 综合工具不允许这样做。
这通常是一种不好的做法。您有与时钟下降沿同步的代码。然后你等待另一个可能与前一个时钟一致或不一致的变化。我不知道这对你的情况是否重要。
此外,对 deterministicEnable
的分配是一个小故障,其他进程可能会或可能不会看到。