|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 jeamie 于 2011-11-21 09:26 编辑
用测试文件仿真时,发现源程序代码中if后面的条件明明是满足的,可是仿真的结果显示的是程序并没有识别这个条件,感觉很奇怪啊!
接触verilog不久,老是遇到些奇怪的现象,估计是一些规则还没有掌握,还请路过的高手指点,不胜感激!
出错部分代码为:
if(b1==b2==0&a2==1&a1==0) begin
dependa<=1;
AO<=~AO;
state<=edgecount;
end
else
if(a1==a2==1&b2==0&b1==1) begin
dependb<=1;
BO<=~BO;
state<=edgecount;
end
仿真波形如下:
程序的本意是:A和B信号边沿先到的那个对应的输出先翻转(AO为A对应的输出,BO为B对应的输出)。激励信号是A的边沿先到,理应AO先翻转,但是程序运行下来却是BO先翻转。
被这个问题困惑着,希望有高手能指点迷津。 |
|