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

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

点击标题下「蓝色微信名」可快速关注

Floorplan 是数字后端设计实现中最关键的步骤之一,floorplan 做的好,能够加快时序的 signoff 以及 physical 方面 DRC 和 LVS 的 signoff 工作。如果 floorplan 做的不好,不仅仅是 timing QOR 会比较差,而且还会影响 routabilty,从而影响芯片的面积。建议阅读下吾爱 IC 社区之前推送的文章 如何评价数字后端设计中 floorplan 的好坏?

想要加吾爱 IC 社区微信技术交流群的,请先加小编微信,邀请入群(各位老铁,文章末尾的福利别忘记了哦)。

1. 模块的 partition

block 的形状往往是负责 top 实现的工程师给出的。一个比较有经验的数字后端工程师,在切模块形状的时候,往往会考虑如下几点:

  • 是否能够节省 chip 面积(比如 IP 边边角角,top 用不到的区域,是否可以给 block)

  • 基于 block 现有的 boundary,block implementation 的风险如何(需要对 block 的 timing 和 physical 有较深的认知)

  • pin assignment or IO placement(是否有 feedthrough 的需求等)

  • 考虑 top 和 block 接口的 timing

图 1 Abutted and Non-Abutted floorplan

这里需要指出的是,top 给你一个 block 的 boundary 后,你应该尽快去做模块的后端实现评估(Timing,Congestion,Area 以及 Hold fixing 等情况)。假如评估后发现实现难度很大,或者搞不定,此时需要及时向负责人汇报,共同解决问题。虽然还是建议自己努力去解决问题,但是在实际项目中需要控制好时间节点,总不能评估半个月后发现不行,继续埋头苦干半个月吧。

2. Voltage area creation

对于 multi-voltage 和 multi power domain 的设计,有的数字后端工程师喜欢 create voltage area,创建 Voltage domain。有的则喜欢在前期阶段和前端沟通后,对不同的 Voltage domain 进行切分,比如将 Gated domain,不同的 voltage domain 单独切出来,后端实现单独 hardening,这样数字后端工程师实现时只需规划好各个模块的 powerplan 规划即可(不需要 run based UPF flow)。

对于一个 flatten 的 design,如果存在多个 voltage domain,此时往往需要通过创建 voltage domain,后端实现时需要 load 对应的 UPF,引导工具来做对应的 placement(UPF 坑可能比较多哦)。

常见的创建 voltage domain 的方法有两种,如图 2 和图 3 所示。一种是各个 voltage domain 是 abutted 在一起的,另外一种则是各个 domin 间是存在 channel(Non-Abutted)。

图 2 Voltage area (Abutted)

图 3 Voltage area (Non Abutted)

3. Macro(含 Memory,IP)和 IO placement

  • 在摆放 Memory 和 IP 前必须注意 poly 的方向。90nm 及以下工艺都要求 memory,ip,io 的 poly orientation 必须和 standard cell 的 poly orientation 保持一致(FAB 提供的 DRC runset 会 check 这条 rule)。

建议阅读之前推送的文章,文中也涉及到 Poly 方位的问题:

Final netlist release 前,你应该做好哪些工作?

图 4 Macro orientation 示意图

  • **根据 data flow 和 design hierarchy 来摆放 Macro。如果有 reference 的 floorplan,可以作为 **参考(仅仅是参考哦!)****,比如 ARM 的 CPU 和 GPU,官方都会提供 reference 的。

图 5 Macro placement

那么,如果你没有前端给你的 data flow,也可以通过 icc 中 create_plan_group 来创建对应的逻辑 group,可以非常清楚地知道各个子模块间(含 Memory)的逻辑连接关系,如图 6 所示。

图 6 通过查看逻辑连接关系规划 placement

  • 出 pin 方向讲究多

考虑绕线资源和 timing。memory 出 pin 方向尽量靠 core logic 区域。

  • memory 之间是否需要留 space

如果两个 memory 之间的通道,你想工具摆放 cell,那么需要确保它们之间有对应的 power strap,否则会导致 rail floating,如图 7 所示。如果需要留 space,那留多少合适呢?留大了浪费面积,留小了则可能导致 rail floating,绕线资源不够等问题(这个问题留给大家思考,比较简单)。

图 7 memory 之间 space 规划

  • 原则上 Memory 要摆放在 boundary 边上。(为什么要摆放在四周?什么时候可以摆放在 core 区域?)

  • IP 的摆放需要考虑和 core logic 保持一定 space,这个 space 需要留多少,vendor 都会给出一个建议值的,遵守他们的 rule 就行。

4. 添加 placement blockage 和 routing blockage

  • memory 之间需要加什么类型的 blockage

blockage 分为 hard,soft 和 partial 三种类型。具体功能这里不多说,大家都很清楚。如果 memory 之间想预留点空间,摆放 buffer,则可以添加 soft blockage 或者 partial blockage 中的 buffer only 类型,如图 8 所示。图中 SRAM 之间的 channel 是否可以摆放 Register? 如果不可以,为什么?

  • IP 周围需要加 placement blockage 和 routing blockage

加 placement blockage 是防止 core logic 的 standard cell 摆放太靠近 IP,从而对 IP 造成干扰。加 routing blockage 是阻止 core logic 在 IP 限定 range 内走线。

  • IO 需要和 core logic 区域保持一定的距离,防止 LatchUp 效应。

图 8 添加 blockage 示意图

图 9 LatchUp 示意图

5. Adding power switch cell

对于一个要做 power domain 的模块,我们需要添加 power switch cell。通过这个 power switch 来控制该模块中 standard cell 电源的开关。power switch 有两种类型。一种是 HEADER,通过关断 VDD 来实现 poweroff。另外一种是 FOOTER,通过关断 VSS 来实现 poweroff。power switch cell 有一个 Global power pin,一个 Local power pin。

至于 power switch cell 需要加多少合适,留给大家思考(主要考虑 IR Drop)。

IR Drop 分析之 Redhawk 分析流程

图 10 power switch added in required power domain

图 11 Power switch 类型

6. 添加一些特殊 cell (Well Taps, EndCaps, Spare Cells, Metal ECO-able cells etc)

  • Well Tap cell

目前大部分的 standard cell library 提供的标准单元都是 tap-less(substrate connections are not done)。因此我们在 floorplan 阶段需要按照 FAB 的要求来添加 Well-tap cell,将 wells 连接到 VDD/VSS 上。

  • EndCap Cells

endcap cell 一般是摆放在 Macro 周围和每条 row 的首尾两端,主要目的是确保 Macro 周围的环境和 core logic 的环境是一样的。

  • Spare cells

spare cell 字面的意思就是备用的 cell。这里 cell 一般是用来做 ECO 用的。至于这类 cell 在哪个阶段 insert,以何种方式 insert,留给各位思考。另外还有一种是 ECOCAP CELL,这类 cell 也是用来做 ECO 的(他们何有区别,各自的优缺点分别是什么?)。

数字 IC 设计中 ECO 的那些事,其实并不是事!

7.Qualify floorplan

做完以上这些工作后,如何去 quailfy 一个 floorplan,powerplan 呢?

  • verify_pg_nets 检查是否存在 floating pins (floating shapes 是否可以 skip?)

  • run drc to check poly orientation

  • review floorplan of IP with vendor

由于篇幅有限,本文对于 powerplan 只是简单提及,powerplan 完全可以作为一个专题来讲,留在后续做分享。

相关文章推荐(不看保证后悔)

数字后端面试问答 No.10-12(每日三问)

数字后端面试问题 No.7-9(每日三问)

听说 Latch 可以高效修 hold 违例(Timing borrowing 及其应用)

15 天零基础入门到精通 python - 最全的视频教程

数字后端面试问答 No.4-6(每日三问)

IR Drop 分析之 Redhawk 分析流程

CRPR 能补偿 crosstalk 吗?

原来电路最高工作频率是这么算出来的(STA 基础篇)

数字后端面试问答 No.1-3(每日三问)

秒杀数字后端实现中 clock gating 使能端 setup violation 问题

教你轻松调 DCT 和 ICC 之间 Timing 与 Congestion 的一致性

数字芯片设计实现中修复 setup 违例的方法汇总

数字 IC 设计中 ECO 的那些事,其实并不是事!

Scan chain reordering 怎么用你知道吗?

如何评价数字后端设计中 floorplan 的好坏?

数字后端实现时 congestion 比较严重,你 hold 得住吗?

数字后端实现 place 过程进阶

Final netlist release 前,你应该做好哪些工作?

基于 Physical Aware 的动态功耗优化实现方案

深入浅出讲透 set_multicycle_path,从此彻底掌握它

【大师必备】最全的数字 IC 设计经典书籍电子版下载

你与数字后端大神的差距在这里,快来瞧瞧!

数字后端实现时 congestion 比较严重,你 hold 得住吗?

时钟树综合(clock tree synthesis)基础篇

【福利】数字 IC 后端各种 Userguide 下载

好了,今天的内容分享就到这里。另外,因为公众号更改推送规则,小编分享的每篇干货不一定能及时推送给各位。为了避免错过精彩内容,请关注星标公众号,点击 “在看”,点赞并分享到朋友圈,让推送算法知道你是社区的老铁,这样就不会错过任何精彩内容了。

如果你想和小编有更进一步的沟通交流的机会,欢迎加入小编知识星球,让我们一起学习成长,共同进步。相信在这里能让你成就一个更完美的自己

小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****):

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

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程

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

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程

  • 时钟树结构分析

  • 低功耗设计实现

  • 定期将项目中碰到的问题以案例的形式做技术分享

  • 基于 90nm 项目案例实现教程(ICC 和 Innovus 配套教程)

  • 数字 IC 行业百科全书

吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近八年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片

这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,是数字 IC 设计实现领域中最大,最高端的知识交流和分享的社区,这里聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。

在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。

最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有 800 星球成员,感谢这877童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

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

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

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

    数字IC后端设计实现floorplan及powerplan规划 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 今天是一年一度的 "双十一&quo ...

  2. IC设计职位介绍之“数字后端设计工程师”

    IC设计职位介绍之"数字后端设计工程师" 数字后端处于数字IC设计流程的后端,属于数字IC设计类岗位的一种.在IC设计中,数字后端所占的人数比重一直是最多的,而且随着芯片规模不断加 ...

  3. 数字IC设计之DC篇:DC流程介绍

    数字IC设计之DC篇:DC流程介绍 综合概念 综合是使用软件的方法来设计硬件, 然后将门级电路实现与优化的工作留给综合工具的 一种设计方法.它是根据一个系统逻辑功能与性能的要求,在一个包含众多结构.功 ...

  4. 数字后端知识点扫盲——Floorplan

    本文转载自:数字后端物理设计(一):Floorplan - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/264899580 Floorplan,中文翻译:布局 ...

  5. 生意还能这样做,转换一下思路,让你的生意从此不再难做!

    在分享今天的案例之前先给大家分享几个小故事,故事虽小但背后的思维值得大家仔细去琢磨琢磨. 1.保龄球投掷对象是10个瓶子,你如果每次砸倒9个瓶子,最终得分90分:而你如果每次能砸倒10个瓶子,最终得分 ...

  6. 【数字后端设计--PA分析】芯片设计中的IR drop是什么?

    什么是IR Drop? I:电流 R:电阻 IR Drop是指出现在电源(VDD)和地(VSS)网络上电压下降或升高的一种现象. 指从芯片源头供电到Instance所消耗的电压,对于 Flipchip ...

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

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

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

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

  9. 项目后期踩到这些坑,原来可以这么简单处理(数字后端实现救火篇)

    项目后期踩到这些坑,原来可以这么简单处理!(数字后端实现救火篇) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 最近一直在帮同事解决各种问题.由于临近项目 ...

  10. 教你彻底搞懂ARM Cortex-A75 CPU的数字后端实现报告

    教你彻底搞懂ARM Cortex-A75 CPU的数字后端实现报告 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 下图为 ARM 公司 release 的 ...

最新文章

  1. futuretask使用_JDK源码分析-FutureTask
  2. 人工智能的恶意用途:预测、预防和缓解
  3. 自已开发完美的触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
  4. ps批量操作图片尺寸(一键执行) - 教程篇
  5. android权限申请Permission
  6. chrome查看网站字符集编码的方法(不需要安装charset)
  7. Arm 架构下的中断
  8. python---之np.prod() 函数计算数组元素乘积等
  9. SysUtils.AdjustLineBreaks - Unix 与 Windows 的换行符互换
  10. 如何把netterm的内容输出到文件_python pandas如何输出csv文件
  11. 【基音频率】基音matlab基音频率计算【含Matlab源码 1384期】
  12. 几大经典算法c语言cnds,各种算法的性能分析.docx
  13. 【系统分析师】考试内容大纲内容
  14. 博科光纤交换机IP+端口策略应用
  15. 我的世界Minecraft Java开服教程(Windows)开服器开服包下载开服网站服务器开服核心开服端开服软件mac版Java启动器资源包
  16. 直观理解深度学习中的反卷积、导向反向传播
  17. 什么是PLC?可编程控制器的结构和工作原理介绍
  18. C# chart实时曲线
  19. Firebug 网络监视器使用教程英文
  20. 如何在PowerPoint演示文稿中链接或嵌入Excel工作表

热门文章

  1. Verilog HDL题库练习--题目来源HDLBits
  2. Autovue 21.0.2.5 在2020年7月份发布
  3. 大数据---房地产大数据分析!
  4. c# Pdf文件加密和解密
  5. 360 Replugin 插件化 支持 Androidx和Java8
  6. 牛客-kotori和糖果(哈斯图吗?)
  7. EUI学习之DataGroup与List
  8. 怎么把手机字体改成繁体_手机繁体字怎么改成简体,8步就能轻松完成!
  9. Bash玩转脚本3之几个指令有趣的筛选京东评价
  10. apple watch怎么改铃声