虽然楼主高亮的这一行看起来也比较可疑,但是主要原因仍然大概率是缺失scan chain引起的。
以cadence的官方解释来说,从innovus 18以前,如果没有scandef的话二楼的方法即起设置setPlaceMode -place_global_ignore_scan false 应该是管用的;但我看log应该是innovus 19,因为在在innovus 18版本以后,即使设上这个option应该还是会有下面的error:
**ERROR: (IMPSP-9100): Scan chains exist in this design but are not defined for 70.89% flops and -place_global_ignore_scan is set to false. Placement and timing QoR can be severely impacted in this case!
It is highly recommend to keep -place_global_ignore_scan option as its default value 'true' with scan chains definition.
官方推荐要手动把SI的连接断掉才行,而且cadence也给出了示例脚本,剩下的说明就比较容易理解了,楼主可以试试。
##############
proc disconnectSI {} {
set op [open detach_term.tcl w]
foreach inst_ptr [dbGet top.insts.instTerms.name */scan_in -p] {
set inst_name [dbGet $inst_ptr.inst.name]
set net_name [dbGet $inst_ptr.net.name]
if {$net_name == "0x0"} {continue}
puts $op "detachTerm $inst_name sin $net_name"
}
close $op
puts "Please source the created file detach_term.tcl"
}
##############
Usage:
You will need to replace the scan pin names in the script (highlighted in red above) with the pin names for the cells in your design. eg., SI, scan_in, sin, scin etc.
After the changes are done as per step (1), source the above proc at Innovus prompt
Run disconnectSI
This will create a file detach_term.tcl which contains commands to detach the scan pins
Source this file at Innovus prompt using "source detach_term.tcl"
After this place_opt_design should be able to continue without any issue |