打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
数字IC后端设计实现floorplan及powerplan规划

估算模块或者chip面积

本文暂时只讨论模块级的设计。根据前端综合release的report(含标准单元standard_cell,memory ,ip的面积信息),数字后端工程师会估算出模块的面积。这个估算方法建议每个项目都做一个以表格形式来做统计,方便为其他项目提供参考。需要注意的是,建议将standard cell和memory的利用率分开统计,memory利用率的经验值一般按80%来计算。

数字IC后端设计实现流程之initial design

初始化Initial模块形状

估算完模块的面积后,block owner会向top负责人报告子模块需要的大概面积,方便顶层top做partition。模块的boundary一般都是负责top level floorplan的工程师基于全局考虑做partition后,为每个子模块分配的形状。比较有经验的top负责人往往在partition时会考虑模块实现难易程度来分配各个模块的boundary。之所以芯片中有多边形的模块,主要有以下几方面的原因:

  1. 芯片top level floorplan中有些地方top不太好利用(节省面积)

  2. 模块的物理实现比较简单

  3. 负责模块的数字后端工程师能力比较强

初始化模块floorplan可以用如下命令实现:

Initialize_floorplan

在ICC中初始化模块形状时,需要注意的是方形和多边形的初始化命令是不一样的。方形的初始化命令应该用create_floorplan来实现。

初始化命令主要包含模块的boundary, row, track, core to die等信息,对应gui界面如下图所示。

摆放io port

初始化模块boundary后,所有的io port均在原点。在ICC中是需要将这些port,create出对应的terminal,摆放好它们的位置。面对成千上万的port,很多junior engineer并不知道如何去摆放这些port,这个是新手的通病。

那么多port,显然我们不可能手工去create terminal 和摆放对应的port。吾爱IC社区的小编今天分享一个方法:

  1. 从netlist中利用脚本获得所有的io port。这一步非常简单,因为io port在net不外乎以input,output或者inout的形式出现在netlist中top module的最上面的接口声明部分。你可以用TCL或者perl来自动获取这些port,并写到一个文件中。

  2. 对获取到的io port文件,进行排序。如果某些模块对io port的sequence有特别要求,则需要严格按照top的要求重新调整io port顺序,否则只需要按照字母顺序即可(时钟信号建议单独处理,摆放在port中间位置)。

  3. 根据调整后的io port sequence文件,编写pin constraint。这步主要指定对应terminal所用的层次以及terminal之间的间距。

  4. 最后执行create_fp_pins,工具按照pin constraint来自动摆放io port。

如果需要查看摆放io port的整套脚本,可以访问小编知识星球查看具体脚本。

摆放memory 和ip

初始化模块形状后,所有的macro,如memory,ip也都在原点处。如果你的模块中有两三百个memory,你要如何快速完成memory的摆放呢?

具体做法:

由于memory特别多,建议先让工具摆放一遍。使用命令如下:

Set_fp_stragety  -macros_on_edge  on  

这步主要指定摆放的方式为将memory摆放在boundary四周。默认情况下,工具会将memory摆放在中间区域。

Create_fp_placement

执行create_fp_placement后,此时memory和standard cell均已摆放好。但是我们只关心memory的位置,所以你可以将标准单元standard cell remove掉。需要特别注意的是工具摆放memory时不会考虑poly orientation,所以需要特别留意这点。关于poly orientation的相关注意事项,可以参考之前推送的文章。

有了初始的memory位置后,我们可以利用ICC中plan group来进行data flow分析,从而精细化摆放memory。

Powerplan规划

摆放好io port和memory后,就需要进行powerplan规划。对于一个不做power domain的模块,它的powerplan就非常简单,就是构建一个交叉的power mesh network即可。本文主要讨论基于power domain的powerplan规划。在做powerplan规划之前,需要提前确定某个工艺的特定Metal Stack,从而决定block level应该要用那些层来打power。

  • Power Switch Cell供电(MTCMOS)

对于需要做power domain的设计,需要加MTCMOS。加MTCMOS需要注意以下几点:

MTCMOS数量。关于设计中需要加多少数量的MTCMOS,小编已经推送过,各位可以参见往期文章以及知识星球上的内容。MTCMOS数量多少是基于IR Drop(动态IR Drop和静态IR Drop结果),面积Area,绕线资源等方面tradeoff来决定的。

【机密】从此没有难做的floorplan(数字后端设计实现floorplan篇)

Create MTCMOS后,需要为其做好powerplan规划,包含global vdd和local vdd的电源网络规划。由于MTCMOS上的global power pin是底层出pin的,而global power strap是高层供下来的,所以在MTCMOS上会有很多大孔。当设计中MTCMOS过多时,可能会导致routing resource不足,从而出现short,diff net spacing等physical drc。

在规划local vdd电源网络时,需要考虑电源网络供电路径的电阻最小化。

  • Level shifter cell供电

在数字后端实现中,我们会经常用到Level shiftr。 Level shifter cell的power 连接是非常有讲究的。实践表明,很经常碰到level shifter区域存在特别大的IR drop问题。出现这种问题一般都是没人认真去研究level shifter power的连接方法。Level shifter是两条row高度的cell,其中含有VDD,VSS和VDDL(VDDH)。VDDL和VDDH是secondary power pin。在画power时,需要将其画成一个额外的power rail,确保每个Level shift cell secondary power pin的正常供电。

更多关于数字IC后端设计实现中secondary power pin的连接方法见往期推文。

推荐阅读:

低功耗设计实现中secondary power pin的连接方法汇总

  • Memory供电

Memory上power ground pin一般是Metal4出pin的,所以可以用Metal5进行衔接,然后再将Metal5连接到更高层的金属上。

需要注意的是实际芯片出来,memory上出问题的概率还是蛮大的。所以在数字后端设计实现时,需要确保memory供电足够充足。对于一个做power domain的设计,需要在memory周围加够MTCMOS,打够power strap。

  • IP供电

这里指的IP是指SOC设计中所用到的物理phy。在给这类IP打power 时,需要查阅vendor相关文档,整理出一个check list来。一般vendor会给出IP本身与四周其他IP的最小间距要求,与core logic区域之间的最小间距以及某电源网络路径最大电阻的要求等等。

即使你严格按照了vendor要求来做floorplan和powerplan,你仍然需要将你的做法同vendor进行再次确认。做这一步目的是防止甩锅和背锅,老司机一定懂得。

如何qualify floorplan和powerplan?

  • verify_pg_nets来检查

Verfy_pg_nets的结果需要认真看,主要看设计中是否存在floating pin,特别是MTCMOS是否存在floating的global vdd。对于结果报告,需要我们能够分辨出哪些是真错,哪些是假错(或者说不用关心的错误),比如floating shape的错误就可以完全不用管。

  • 跑一个初始版本的DRC

这步主要用来检查memory,ip和标准单元standard cell的poly orientation方向是否一致以及powerplan是否存在physical DRC等。

  • 人工review floorplan和powerplan

这步是小编每个项目都会去做的,也强烈推荐各位也去做这个事情。因为有的时候你现有的floorplan和powerplan可能工具分析结果并没有大问题,但是从我们自身积累的工作经验出发,我们可能能够找出设计出的不足,比如某些memory的channel留得太大,channel间MTCMOS不够,局部区域供电网络不够robust等。一个不是很完美的floorplan和powerplan,如果你叫上两三个资深点的工程师去review,肯定会被抓出不少毛病来的。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Mariadb之主从复制的读写分离
交换机的内部 [4]
Python运维自动化psutil 模块详解(超级详细)
CP AUTOSAR MCAL IO Driver简介
基于SRIO总线的高速通信
朴灵:打破限制,从前端到全栈(图灵访谈)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服