微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 求助大神 代码出现死循环了

求助大神 代码出现死循环了

时间:10-02 整理:3721RD 点击:
这段代码在always的延时是一个变量 就会出现死循环,达不到想要结果,请问要怎么改啊

C是输出,能调用?

你再always中这么写,是想让E成为一个方波?

是啊

比方说,C ==1, 那C/2 就是0,这应该是死循环的原因吧。
另外,E 要给初值吧,否则怎么翻转呢?另外B 作为除数是不是“ |B ”也不能等于0 这样去做运算比较合适?

她采样输出信号C作为翻转的周期,这么做编译通过,仿真是不通过的,迭代错误
run -all
# ** Error: (vsim-3601) Iteration limit reached at time 0 ps.

还有就是D的位数问题,2个3比特的数相加,你想让结果是几位数,如果强制结果也是3位数,就可能失去高位的数,如果强制将结果的位数变大,又怎么样,你可以试验一下

这代码风格很奇怪,不能综合的

假設A跟B都是0, 那麼得到的C也是0, 就會造成死循環了

仿真的时候,reg需要有初始值,否则是不定态,再加上C的初始值可能是0,也会导致死循环,楼上的答案基本都给你做好解释了,根本原因还是代码不可综合。

很简单:在组合电路里,你把输出又连接到输入。

是否可综合跟仿真结果有毛关系

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top