使用此方法强制转换信号的位是否有效?
1
task
begin
force higher_level.lower_level.a[1] = ~higher_level.lower_level.a[1];
end
我尝试过最好的混合结果。有时候会翻转,有时它会保持不变。
然而,我也编写了一个不太优雅的代码,其目的是翻转位,这一直在起作用,如下所示:
2
task
begin
if(higher_level.lower_level.a[1] == 1'b1)
force higher_level.lower_level.a[1] = 1'b0;
else
force higher_level.lower_level.a[1] = 1'b1;
end
第一个代码不是翻转位的好方法吗?或者还有其他我错过的东西?
其中higher_level.lower_level.a[51:0]
是52位信号
谢谢:D
答案 0 :(得分:0)
不,第一种方法不起作用。如果是这样,它就像一个无限循环振荡器。
第二种方法要求您设置一个采样流程,您需要决定何时采样a
。
如果a由某个表达式驱动,则可以强制它与该表达式相反。