前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >新技术 | Innovus mixed placement 几种flow

新技术 | Innovus mixed placement 几种flow

作者头像
老秃胖驴
发布2019-09-04 15:39:02
3.4K0
发布2019-09-04 15:39:02
举报
文章被收录于专栏:陌上风骑驴看IC陌上风骑驴看IC

接着《新技术 | 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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陌上风骑驴看IC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档