微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > DC综合,如何让它识别4值逻辑?

DC综合,如何让它识别4值逻辑?

时间:10-02 整理:3721RD 点击:
现在是 有个case语句的 ,有4个主要情况00,,01,11,10.然后default执行的是自动纠错,加入case到了0x,x1这种的,就会自动回到00状态。经过dc综合,这个default被优化掉了,警告说是默认branch无法达到。
请问,怎么设置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态,这不是一个合格的状态。

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

网站地图

Top