DC综合,如何让它识别4值逻辑?
请问,怎么设置dc可以保留代码这个功能啊?
还有。有没有什么综合工具认可4值逻辑?
两bit的数字信号译码,本来就只有00,01,10,11四种case的分支情况,你已经列全了,自然不存在default分支了。所谓的default,意思就是当出现已列分支以外的情况时如何如何……
1.
case(a[1:0])
2'b00 : xxx = b0;
2'b01 : xxx = b1;
2'b10 : xxx = b2;
2'b11 : xxx = b3;
endcase
2.
case(a[1:0])
2'b00 : xxx = b0;
2'b01 : xxx = b1;
2'b10 : xxx = b2;
default : xxx = b3;
endcase
3.
case(a[1:0])
2'b00 : xxx = b0;
2'b01 : xxx = b1;
2'b10 : xxx = b2;
2'b11 : xxx = b3;
default: xxx = 0;
endcase
以上三种写法,得到的电路是一模一样的。方式3中,全译码了,还加上default其实没有任何作用,语法不会报错,但综合出的电路是得不出default这个分支的
大神。此处是9值逻辑。前仿我删掉了default之后,modelsim报错说我的状态覆盖了81 states of 4.查了一下0,1,z,x,l,w,h...9值逻辑。
他们给项目的人写的这代码很坑,根据仿真表明,初始阶段状态机一定会调到不定态,就需要这个others来纠错。现在综合工具给优化掉了,他不认可0和1之外的。
你case条件信号是几个bit的?z,l,w,h这些是什么东西,这都是不可综合的。
2bit。但是根据代码的功能,这个x态一定会出现,也就是,代码需要4值逻辑。
2bit的数字信号只会有00,01,10,11四种情况,这是数字电路啊,哥们!1bit的数字信号只有0,1两种值,别再扯X,Y,Z之类的了,这是整个数字电路的设计根基!记住你讨论的是数字电路,数字电路,数字电路!重要的事情说三遍!
大神。代码是合作方写的,我们给人家检测。这是我注释掉了others...
这是Modelsim报错。
X/Z 在芯片内部,非0即1.
大神,if link=0 then state<"00"这样的语句,如果link是不定态,是不是就引起state不定态?
然后如果没遇到rst信号到来,是不是state就无法跳出不定态了?
实际芯片内部,没有X态,仿真X是非0非1,实际上X是非0即1.
尽量不要使用Case
是呀是呀。现在人家要的东西必须后仿。却写出这么个无法后仿的东东出来。
在电路设计中,reset之后,必须不允许link为x的情况。千万注意,即使是在仿真中,控制信号一定不允许有x态,这不是一个合格的状态。
