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

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

今天是一年一度的 “双十一” 光棍节,又称剁手日或者电商节,号称全球最狂欢的节日。吾爱 IC 社区的小编在此祝各位节日快乐,购物愉快!在这么狂欢的购物节日,小编买了一个麦克风。因为很多粉丝想让我讲课,于是乎买一个先自己测试下。

另外,在这么隆重的日子里,小编的知识星球也特此开放绿色通道,门票从现有的188 元 / 年临时减至 120 元 / 年限六个名额,先到先得。

估算模块或者 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,肯定会被抓出不少毛病来的。

小编知识星球简介:

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程(已经发布)

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现(已经发布)

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程(准备中)

  • 时钟树结构分析

  • 低功耗设计实现

  • 定期在星球布置作业题(星球已经支持布置作业功能)

在这里,各位可以就公众号推文的内容或者实际项目中遇到的难题提问,小编会在 24 小时内给予解答(也可以发表你对数字后端设计实现中某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。

反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有六十九位星球成员,感谢这位童鞋的支持!欢迎各位铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。(星球的门槛将会越来越高,有需求的朋友趁早上车)

https://mp.weixin.qq.com/s/SaPiSLp87WEcx8gWgoOiqQ

数字IC后端设计实现floorplan及powerplan规划相关推荐

  1. 数字IC后端设计实现流程之floorplan及powerplan规划

    数字IC后端设计实现floorplan及powerplan规划 数字 IC 后端设计实现流程之 initial design 初始化 Initial 模块形状 估算完模块的面积后,block owne ...

  2. 数字IC后端实现TOP Floorplan专家秘籍

    数字IC后端实现TOP Floorplan专家秘籍 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 2020 年是不平凡的一年,新冠疫情战役也还未结束.目前 ...

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

    数字IC后端设计实现流程之initial design 前端提供的文件 门级网表 (Gate Level Netlist) 数字前端工程师或者是 R2N 的同事在 release 东西给后端工程师做 ...

  4. 数字IC后端设计技术全局观

    数字IC后端设计flow(不含DFT) 数字IC后端设计工具 DC:用于逻辑综合 FM:用于形式验证 ICC:用于物理实现 PrimeTime:用于STA 步骤(或文件类型)简述 RTL(Regist ...

  5. 数字IC后端设计如何快速入门?(内附学习视频)

    虽然2022年IC行业门槛有所提高,但这也抵挡不住同学们对转行IC行业的热情,数字后端设计的发展前景和高薪也在众多岗位中脱颖而出,那么数字IC后端设计如何快速入门?下面IC修真院就带大家来了解一下. ...

  6. 数字IC后端设计实现Timing分析利器(附七月重大福利)

    数字IC后端设计实现Timing分析利器(附七月重大福利) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 在开始今天的主题分享之前,先来个劲爆好消息.吾爱 ...

  7. 数字IC后端实现40天速成篇(中)

    数字IC后端实现40天速成篇(中) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 为了更好服务好大家,现把小编目前这边的主营业务向大家汇报下.其中对于设计 ...

  8. 【机密】数字IC后端笔试面试题库(附知识星球活动)

    [机密]数字IC后端笔试面试题库(附知识星球活动) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 最近很多公司的校招都陆续开始了,不知道今年应届生的小伙伴 ...

  9. 数字IC后端实现40天速成篇(上)

    数字IC后端实现40天速成篇(上) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 为了更好服务好大家,现把小编目前这边的主营业务向大家汇报下.其中对于设计 ...

最新文章

  1. Linux (x86) Exploit 开发系列教程之七 绕过 ASLR -- 第二部分
  2. [z] 电子技术的老生常谈 —— 接地
  3. vue 3.4x以上如何改变项目运行端口号
  4. JavaScript事件处理的三种方式(转)
  5. vscode 逗号不换行_来自一个插件的疯狂夸赞,VS Code「彩虹屁」插件问世,网友:我想要郭德纲版...
  6. 【Android】LMK 工作机制
  7. php表单选择题代码,php 表单代码
  8. 高通:蓝牙5.0将可同时连接两个设备
  9. hive表中加载数据
  10. DSP28335加密问题
  11. 下载Googleearth地图作为底图显示曝光点
  12. roseha 11 用VM虚拟机创建集群测试
  13. c#中datagridview清空数据并删除空白行
  14. 金蝶K3后台SQL修改数据-科目余额表、科目表核算项目
  15. gradient设置上下渐变_CSS3 线性渐变(linear-gradient)
  16. PV、UV、IP是什么意思?你懂了吗?
  17. HTTP POST 参数格式
  18. 入学吉他选购,有哪些适合初学者入门的吉他品牌推荐?
  19. MongoDB面试问题
  20. 网站项目计划书的写法如何写网站设计策划书

热门文章

  1. 为什么要做巧推整站快速排名SEO优化?
  2. 什么是SEO网站快速排名?
  3. 美国威士忌的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. 接了个变态需求:生成 Excel + PDF 导出,用 Java 怎么实现?
  5. DDN周报|3月26日-4月1日
  6. OPPO校招面试回忆,Java开发面试
  7. 如何引导回购和好评且不被平台抽查和处罚
  8. 计算机的网线连接路由器的什么接口,网线插路由器哪个口
  9. 2019年,成年人的奔溃来得那么突然,但他们仍选择负重前行
  10. mysql中phpmyadmin安装教程_怎么安装phpMyAdmin?