微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 求助:eco 后,网表中FF的例化名称序号跟Q端数据bit位不一致,formality通不过

求助:eco 后,网表中FF的例化名称序号跟Q端数据bit位不一致,formality通不过

时间:10-02 整理:3721RD 点击:

最近做eco,需要把一个8bit的寄存器sum_r[7:0]右移一位,高位补零。
老的网表是这样的(netlist1) :
FFDQRHDMX sum_reg_0_ (.RN ( n21 ) , .D ( sum[0] ) , .Q ( sum_r[0] ), .CK ( IccCts__G6B6I168 ) ) ;
FFDQRHDMX sum_reg_1_ (.RN ( n21 ) , .D ( sum[1] ) , .Q ( sum_r[1] ), .CK ( IccCts__G6B6I168 ) ) ;
……
FFDQRHDMX sum_reg_7_ (.RN ( n21 ) , .D ( sum[7] ) , .Q ( sum_r[7] ), .CK ( IccCts__G6B6I168 ) ) ;

eco后的网表是 (netlist2):
FFDQRHDMX sum_reg_1_ (.RN ( n21 ) , .D ( sum[1]) , .Q (sum_r[0]), .CK ( IccCts__G6B6I168 ) ) ;
FFDQRHDMX sum_reg_2_ (.RN ( n21 ) , .D (sum[2]) , .Q ( sum_r[1]), .CK ( IccCts__G6B6I168 ) ) ;
……
FFDQRHDMX sum_reg_7_ (.RN ( n21 ) , .D (sum[7]) , .Q ( sum_r[6]), .CK ( IccCts__G6B6I168 ) ) ;
FFDQRHDMX sum_reg_0_ (.RN ( n21 ) , .D (1‘b0 ) , .Q ( sum_r[7]), .CK ( IccCts__G6B6I168 ) ) ;
拿eco后的网表跟修改好的rtl做formality,有failing compare points,不止包括sum_reg_0_,sum_reg_1_,……sum_reg_7_,这8个register,还包括一些其它寄存器。
然后保持网表的功能不变,只在eco的网表里修改FFDQRHDMX的例化名称, 使例化名称的序号跟起Q端出来的sum_r的bit位一致,也就是sum_reg_0_ 对应的Q端数据是sum_r[0],修改好的eco网表如下 (netlist3) :FFDQRHDMXsum_reg_0_ (.RN ( n21 ) , .D (sum[1]) , .Q ( sum_r[0]), .CK ( IccCts__G6B6I168 ) ) ;
FFDQRHDMXsum_reg_1_ (.RN ( n21 ) , .D (sum[2]) , .Q ( sum_r[1]), .CK ( IccCts__G6B6I168 ) ) ;
……
FFDQRHDMXsum_reg_6_ (.RN ( n21 ) , .D (sum[7]) , .Q ( sum_r[6]), .CK ( IccCts__G6B6I168 ) ) ;
FFDQRHDMXsum_reg_7_ (.RN ( n21 ) , .D (1‘b0 ) , .Q ( sum_r[7]), .CK ( IccCts__G6B6I168 ) ) ;
再跟同样的rtl做formality, failing compare points就全部没有了。
常理来想, sum_reg_0_ 只是FFDQRHDMX 的一个例化名称,就算是叫sum_reg_100_ 都不应该有问题的,可是现在为什么一定要sum_reg_0_ 与sum_r[0]对应 formal check 才能通过呢?而且,真正在版图上也应该是netlist2里的样子。
是不是脚本里有什么选项可以解决这个问题呢?
请大神指点,O(∩_∩)O谢谢!

set user match point first

set user match point first

O(∩_∩)O谢谢!问题解决了。使用set_user_match这个命令。

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

网站地图

Top