接着《新技术 | Innovus Mixed Placer》《新技术 | Mixed placement flow 开篇》继续搬运mixed placement. 今天搬运mixed placement 几种flow:
Main Flow
Innovus mixed placement 主flow 如下图所示,可以带参考floorplan 也可以不带参考floorplan, 如果有参考floorplan, Innovus mixed placement 可以从参考floorplan 中抽取power routing density 的信息;如果没有参考floorplan, 需要create power stripe 后抽取power routing density 的信息,有了power routing 信息,在摆放macro 的时候可以更精确地模拟congestion 和wire-length.
到目前为止,对于有成百上千个macro 的复杂设计,mixed placement 不一定可以一次就得到最优的floorplan, 通常需要几次迭代调整。
如果mixed placement 的结果不好,需要在place_opt_design 之后进行分析,如果timing 或congestion 差是由于macro placement 不好造成的,则建议调整工具端的设置重新run, 如:
set_macro_place_constraints
setPlaceMode
setRouteMode
如果timing 或congestion 差只是由于部分macro 的placement 造成的,则只需要调整这一部分macro 的placement, 这就需要用到Incremental flow.
Incremental flow
在place_opt_design 后,如果timing 或congestion 差是由部分macro 的placement 造成的,或想要进一步调整macro 的placement 则可以在mixed place DB 上做Incremental run.
可以多次调用incremental flow 来调整macro 的摆放,在调整结束后,回到主流程中 "physical cell insertion and power routing" 这一步继续后续步骤即可。
ECO flow
如果netlist 做了微小的修改,可以用ECO flow 将修改合到设计中,不需要重新做macro placement 跟power routing. 到目前为止,如果新的netlist 有逻辑增加,要确保逻辑增加不超过3%. 根据ECO 逻辑对timing 的影响,在ECO flow 中需要对如下变量设不同的值:
place_opt_run_global_place:
如果新netlist 的逻辑增加超过3% 或者对critical path 影响很大,则建议重新run mixed placement flow 或run CPG flow.
CPG flow
CPG = Cadence Placement Guidance. 如果新netlist 的逻辑增加不超过3% 或对critical path 影响不大,则ECO flow 值得一试,如果新netlist 的逻辑增加超过3% 或对critical path 影响较大,则可以考虑CPG flow, 以得到跟之前netlist 类似的floorplan. CPG flow 的目标是:尽量保证macro 的摆放跟之前的Floorplan 一致,同时允许工具为了timing 或congestion 调整相应macro 的位置。
CPG flow 典型的应用场景是在设计中新加入DFT 逻辑,如果ECO 更改了关键模块的功能,则建议重新run mixed placement flow. 对于CPG flow 需要从老的DB 中dump 一个指导文件,在run 新netlist 的mixed placement flow 中读入该指导文件,拿pre-DFT 和post-DFT netlist 为例:
Innovus session 1:
Innovus seeion 2:
对于CPG flow 其他设置最好跟之前netlist 设置相同,另外,refine_macro_place 是不honor CPG Guide的。
驴说IC
参考文献:
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000006DgRrUAK&pageName=ArticleContent