|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 sdustyj 于 2014-4-21 14:27 编辑
最近做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) :FFDQRHDMX sum_reg_0_ (.RN ( n21 ) , .D ( sum[1] ) , .Q ( sum_r[0] ), .CK ( IccCts__G6B6I168 ) ) ;
FFDQRHDMX sum_reg_1_ (.RN ( n21 ) , .D ( sum[2] ) , .Q ( sum_r[1] ), .CK ( IccCts__G6B6I168 ) ) ;
……
FFDQRHDMX sum_reg_6_ (.RN ( n21 ) , .D ( sum[7] ) , .Q ( sum_r[6] ), .CK ( IccCts__G6B6I168 ) ) ;
FFDQRHDMX sum_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谢谢!file:///C:\DOCUME~1\JIANGY~1.000\LOCALS~1\Temp\SGTpbq\4772\00355F83.gif |
|