微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 如何防止DC将两个连续反向器综合掉

如何防止DC将两个连续反向器综合掉

时间:10-02 整理:3721RD 点击:
偶数个方向器如何防止被综合掉

set_dont_touch

不管用啊,我第一个反相器输出叫a,然后我写成set_dont_touch a,或者set_dont_touch [get_nets a]等类似的都不对,用synthesis keep也不行

求大神指点,难道是只有2个反相器,反相器太少一定会被综合掉?

set_donot_touch [get_cells full_path/instance_name]这么用,对两个inverter都设置set_donot_touch [get_cells inv_A]set_donot_touch [get_cells inv_B]

试了一下,但还是把输入输出直接连在一起怎么回事,显示这个Warning: In design 'not_not', input port 'in' is connected directly to output port 'out'.

When you set the enable_keep_signal variable to true, the tool preserves nets and issues a warning about the preserved nets during compilation. The tool sets an implicit size_only attribute on the logic connected to the nets to be preserved. To mark a net to be preserved, label the net with the keep_signal_name directive in the RTL and set the hdlin_keep_signal_name variable to user or user_driving. Preserving nets might cause QoR degradation.
要DC里设变量,完了还要在RTL里加注释。详见preug.pdf

首先,你这两个反相器要使用std_cell,其次,使用set_dont_touch命令,set_sont_touch不是设置在port上,而是设置在Instance name上

你的意思是我代码里反相器不写not,写库里反相器名字?


直接instance反相器,例如INVD1HVT u_inv1 (.I (in1), .ZN(out1));
INVD1HVT u_inv2 (.I (out1), .ZN(out2);

然后在逻辑综合是set_dont_touch [get_cells {u_inv1 u_inv2}]
注意这里的u_inv1和u_inv2要写full path


弱弱问一句full path是什么,我没加这个已经成功了呢。

打个比方,你的设计top下面包含design1和design2,而你的反相器存在于design1中,你在top层design1的instance name为u_deisng1,则full path即u_desing1/u_inv1

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

网站地图

Top