罗风 · 2021年05月24日

新技术 | 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, 通常需要几次迭代调整。

WeChat Image_20210524095053.jpg

如果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" 这一步继续后续步骤即可。

WeChat Image_20210524095111.jpg

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 『增量』摆放。

WeChat Image_20210524095128.jpg

如果新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 {  orientation}.

Innovus seeion 2:

  • 读入post-DFT 的initial DB.
  • 指定CPG Guide 文件,setPlaceMode -place\_global\_cpg\_file guide.tcl.
  • place\_design -concurrent\_macros; 在设了-concurrent\_macros 这选项后,工具会自动source 指定的指导文件。

WeChat Image_20210524095147.jpg

对于CPG flow 其他设置最好跟之前netlist 设置相同,另外,refine\_macro\_place 是不honor CPG Guide的。
参考文献:

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

作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/AyrslzhsP57ULF3DiiDAhQ
作者微信公众号
捕获.PNG

相关文章推荐

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
19605
内容数
1303
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息