新技术 | Innovus mixed placement 几种flow

接着《新技术 | Innovus Mixed Placer》《新技术 | Mixed placement flow 开篇》继续搬运mixed placement. 今天搬运mixed placement 几种flow:

  • Main flow
  • Incremental flow
  • ECO flow
  • CPG 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. 

  • "Unfix" 需要调整的macro.
  • 更新对应约束,如: set_macro_place_constraints.
  • 调用:place_design -concurrent_macros -incremental.

可以多次调用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:

  • none: 如果ECO 没动到critical timing path 该变量设成none, 新增加的标准单元直接用命令ecoPlace 摆放。
  • seed: 如果ECO 动到critical timing path 该变量设成seed, 新增加的标准单元由命令place_opt_design 『增量』摆放。

如果新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:

  • 读入pre-DFT 的placement DB.
  • 写出CPG Guide 文件,命令: write_macro_place_constraint -sections {cpg} -cpg_scope {macro_only} -out_file guide.tcl; 这个命令写出的guide 文件中的命令格式为: set_macro_place_constraint -cpg {<instName> <x> <y> orientation}.

Innovus seeion 2:

  • 读入post-DFT 的initial DB.
  • 指定CPG Guide 文件,setPlaceMode -place_global_cpg_file guide.tcl.
  • place_design -concurrent_macros; 在设了-concurrent_macros 这选项后,工具会自动source 指定的指导文件。

对于CPG flow 其他设置最好跟之前netlist 设置相同,另外,refine_macro_place 是不honor CPG Guide的。


驴说IC

参考文献:

https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000006DgRrUAK&pageName=ArticleContent

原文发布于微信公众号 - 陌上风骑驴看IC(MoShangFengQiLv)

原文发表时间:2019-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券