微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > DC综合出三态,不知道为什么

DC综合出三态,不知道为什么

时间:10-02 整理:3721RD 点击:
assign   EN_MUL=(~EN_mod_fsm)?EN_mul:EN_mod;
assign   S_1=(~EN_mod_fsm)?S_1_mul:S_1_mod;
assign   S_2=(~EN_mod_fsm)?S_2_mul:S_2_mod;
assign   S_3=(~EN_mod_fsm)?S_3_mul:S_3_mod;
assign   SE_MUL=(~EN_mod_fsm)?SE_mul:SE_mod;
assign   Soc=(~EN_mod_fsm)?Soc_mul:Soc_mod;
assign   B_H=(~EN_mod_fsm)?B_H_mul:B_H_mod;
square256  u1(Q_squ,Qc,CLK,RST,EN_squ,en_squ,SE_squ,S_C1_squ,Qc_d_squ,FSM_point_reg_1);
mul256   u2(Q_mul,CLK,RST,EN_MUL,SE_MUL,S_1,S_2,S_3,Soc,cp,Pb,div2_v,B_H,div1_x1[255:0],div1_x2[255:0],div2_x1[255:0],div2_x2[255:0]);
FSM_point  u3( CLK,RST,IN_EN,XOR_EN,Px,Py,k,OUT_stop,OUT_stop_XOR,EN_mod_fsm,
    FSM_point_Qx,FSM_point_Qy,FSM_point_reg_Px,FSM_point_reg_Py,
    FSM_point_reg_1,div1_x1,div1_x2,div2_x1,div2_x2,div2_v,
    STOP_mul,EN_mod,S_1_mod,S_2_mod,S_3_mod,SE_mod,Soc_mod,B_H_mod,
    Q_mul,STOP_mod,EN_mul,S_1_mul,S_2_mul,S_3_mul,SE_mul,Soc_mul,B_H_mul,
    S_C1_squ,Qc_d_squ,SE_squ,EN_squ,en_squ,STOP_squ,Q_squ,Qc);
以上为代码,但是在DC的时候,assign 左边的信号都被综合成三态的了,不知道为什么

assign   EN_MUL=(!EN_mod_fsm)?EN_mul:EN_mod;
or
assign  EN_mod_fsm_bk=~EN_mod_fsm
assign   EN_MUL=EN_mod_fsm_bk?EN_mul:EN_mod;



   小编试过了吗?是这个原因吗?



    这个问题终于解决了。
    我尝试着将按位取反和逻辑取反都综合了,对于1位的来说,都是一样,没有多大的问题。后来我们查找网表,是我们自己编写的
    一个单元库出了问题,跟这种写法没有关系。



   自己编写的单元库?

我们这个项目中有些单元是我们自己搭建的,导师认为手动搭建起来的比综合工具可靠,但没想到会导致这样的问题

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

网站地图

Top