为什么ICC 在place_opt后会将一些nets tie low?
时间:10-02
整理:3721RD
点击:
在执行 "place_opt -area_recovery -effort medium -congestion -optimize_dft" 后, 用命令“ report_tie"显示tie high or tie low情况,
report_tie的结果显示某些signals居然也被tie low ,而这些signals属于普通的节点,他们的驱动源都是某些寄存器的输出,这些寄存器输出不会是固定电平,report_tie结果:
Design has 136 tie low net(s):
net U_hpf_v_flt/n98 connects wicht following port(s) or pin(s):
U_hpf_v_flt/add_95_4/B[4]
...........
最后跑完整个ICC流程,在ICC output的verilog 文件中:assign n98=1'b0; 而输入到ICC的verilog文件中n98其实是来自于一个寄存器输出端Q;所以经过icc之后,电路逻辑发生了变化,请问各位大侠这是什么原因造成?谢谢
report_tie的结果显示某些signals居然也被tie low ,而这些signals属于普通的节点,他们的驱动源都是某些寄存器的输出,这些寄存器输出不会是固定电平,report_tie结果:
Design has 136 tie low net(s):
net U_hpf_v_flt/n98 connects wicht following port(s) or pin(s):
U_hpf_v_flt/add_95_4/B[4]
...........
最后跑完整个ICC流程,在ICC output的verilog 文件中:assign n98=1'b0; 而输入到ICC的verilog文件中n98其实是来自于一个寄存器输出端Q;所以经过icc之后,电路逻辑发生了变化,请问各位大侠这是什么原因造成?谢谢
先跑形式验证,看是逻辑等效还是ICC真的出错了;如果真的出错了,试试不用optimize_dft,我遇到到optimize_dft出错的情况
谢谢chrisyl.
拿掉-optimize_dft,place_opt的结果依然是一样的。
我确信ICC 将这些节点tie low会造成逻辑错误的。
不知道会是什么原因造成的?
ICC有个特性,会在OPT时i将无驱动的input PIN自动接到Tie Low上,检查你在palceopt之前的那些pin
是否是悬浮或者没有驱动。
opt的时候,会有pin swap ,place后的n98与place前的n98已经或许不是同一个等价的net了。
所以你没有必要专门看某个net,需要形式验证来检验。
楼上说的没错,做下后续验证下其实是没有任何问题的。
请问如果确认是悬空的pin 请问如何解决呢?是要让前端去掉或者tie 到固定电位吗?