专栏首页陌上风骑驴看IC老驴学PR | Floorplan 之一

老驴学PR | Floorplan 之一

老驴有个文史素养极高的朋友,偶尔会写一些让人起鸡皮疙瘩的东西,有次酒后老驴问他为什么不写个小说卖钱,说不定还能成为大IP 就发达了,此兄说他没有谋篇布局的能力,无法做到草蛇灰线埋伏千里。自此之后,老驴多次揣摩过『布局』这词儿,确实是个大词。在数字后端,布局也是,一切的成败都起始于布局也决定于布局,同一个设计在两个不同水平的秃硅农手里,做出的结果可能天差地别。

概述


数字后端的布局包括:

  • ROW creation: 要确保所有类型cell 的ROW 都被正确创建,要确保所有该长ROW 的地方都有ROW 所有不该长ROW 的地方不要长,保持正确的前凸后翘。
  • I/O PAD placement: 信号PAD 的位置由前端设计人员决定,根据设计的要求把PAD 摆放在相应位置,在后端设计中除了信号PAD 还必须加上POWER PAD, 具体的数量根据工艺、设计需求及IO 库提供的user guide 来确定。
  • bump assignment<这是个啥?>: 给特定的PAD 粘一个Bump, 用于flip chip: Flip chip is a methodology for placing I/O bumps and driver cells over the entire chip area in either a boundary (peripheral I/O) or core (area I/O) configuration.
  • bus planning, 根据逻辑链接关系,排布总线。
  • macro planning, 根据逻辑链接关系及其物理形状,将其摆放到恰当的位置。
  • power planning, 编织供电网络。
  • 其他。。。。

面积估算


布局第一步要确定形状及大小,如果没有特别需求形状就弄个矩形,不要为了好看找不自在。Floorplan 两个重要参数是Aspect Ratio 跟Core Utilization, 在Genus 中predict floorplan 做一个简单的floorplan 时只要约束这两个值即可,工具根据第一个值决定形状,根据第二个值预估大小。

芯片面积大小由设计决定,对于不同的设计,有两种情形:

  • core limited: 芯片面积由core 的逻辑决定,通常die size 估算方式为:
  • IO limited: 芯片面积决定于I/O 个数,I/O 太多必须做得足够大才可以,此时面积用每个边要放置的I/O 个数来确定。

Macro 摆放


在整体形状跟大小确定了之后,最重要的就是把macro 摆好:

  • Using FLY line: Macro 的摆放在版图设计中至关重要,每一个细节都会影响后续的PPA,在摆放Macro 之前,可借助tools>schematic viewer 分析整体的架构及各个macro 之间的连接关系,也可在GUI 中根据飞线来分析连接关系。
  • Port communication: Macro 尽量摆放在靠近相应输入输出口(I/O port)的位置。一般来说对于大型Macro,他们不仅仅需要与芯片内部的其他Macro或者标准单元进行数据交换,还需要与芯片外部的器件进行通信。比如,锁相环单元需要接收外部晶振信号,存储单元需要接收外部地址等。这种数据交换就是靠I/O port进行的,因此摆放在离相应的数据端口附近,有利于减少互联线长度,减少线上延迟,并节约布线资源。
  • Macro grouping: 同一个module 的Macro 最好放在一起,如果存在两个module 有公用的Macro 需要把这些Macro 放置在两个module 之间。
  • Spacing between two macros: Macro 与Macro 之间要留有一定空隙,给予布线资源。特别是在Macro 的间隙有端口的时候更是如此,设计者可以通过相邻Marco边界上端口的多少来决定留有多大的间隙比较合适。在使用EDA 软件的Floorplan设计时,同样可以给Macro加上halo 来控制Macro 与Macro 之间的距离。halo 分为placement halo 和routing halo,可以分别阻止在有halo 区域放置其他单元或者绕线,类似于blockage。但是halo 并不独立存在,而是依附于Macro 周围,可随Macro 移动。所以它是专门用来控制Macro 和其他单元之间距离的一种物理约束。对于block 之间的缝隙全部用soft blockage 填满,千万不要留洞洞。Macro 到core 边界留出一定距离用于优化时插入buf,改善时序,减小transition violations ,减少antenna violations。
  • Macros Alignment: Macro的pin 尽可能朝向中间的近似方形的区域,这样可以减少绕线长度,当Macro 之间有互联,可以把相应Macro 头对头摆放,尽可能不要对Macro进行翻转,Macro 是否可以翻转,可通过其LEF 确定。
  • Others: 通常大的Macro摆放尽量贴近版图的边缘和角落,这样有利用空间利用, 合理设置Macro 摆放的角度。在考量Macro摆放角度时,不仅仅考虑空间摆放的因素,还要根据端口的连接关系与互连模块的位置来决定。在实际设计时,不仅要根据端口与标准单元之间的连接关系,还要考虑Macro与Macro之间的互连关系进行综合判断。

说一千道一万,布局是个技术活,但是自从有了mix placer 之后,强烈建议,在人肉之前先让工具刷一遍,关于mix placer 的文章可回顾《新技术 | Mixed placement flow 开篇》《新技术 | Innovus mixed placement 几种flow》《新技术 | Innovus Mixed Placer》《新技术 | Innovus Mixed Placer》。


驴说IC

本文分享自微信公众号 - 陌上风骑驴看IC(MoShangFengQiLv),作者:陌上风骑驴

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 论 STA | 可以想到的抽SDF 相关的一切

    SDF 全称Standard Delay Format 是用于描述timing 信息的文本格式,通常用于STA 分析跟门级后仿真。

    老秃胖驴
  • 综合 | LEF, QRC, DEF

    接着《综合 | 概述及 library 检查》继续掰扯综合的输入文件,虽然DEF 要在解析完RTL 之后才读入,但因为LEF, QRC, DEF 都属于物理综合...

    老秃胖驴
  • IC 圆桌派,DFT 第一场复盘

    近年来DFT 是个大热点,业内需求量暴增,但人才匮乏,以致千金难求一人。IC 圆桌派讨论了半日DFT, 有大神坐阵,干活太多,分两场复盘,第一场内容可概括为:

    老秃胖驴
  • Mantis2.16.0在CnetOS7上的安装配置

    解压到目录:/home/mantis/mantisbt-2.16.0 tar xf mantisbt-2.16.0.tar.gz -C /home/manti...

    飞狗
  • Deep Learning 调参经验

    训练技巧对深度学习来说是非常重要的,作为一门实验性质很强的科学,同样的网络结构使用不同的训练方法训练,结果可能会有很大的差异。这里我总结了近一年来的炼丹心得,分...

    小白学视觉
  • 马云底特律演讲:AI革命或引发第三次世界大战,但胜利属于人类

    大数据文摘
  • SNS项目笔记<二>--极光推送

    ionic2之后的版本的极光推送在网络上的资料少之又少,经过一番折腾过后,博主选择了官方的API文档。然后根据其所指引的demo进行搭建项目。

    stormKid
  • 从中断机制看 React Fiber 技术

    React16 开始,采用了 Fiber 机制替代了原有的同步渲染 VDOM 的方案,提高了页面渲染性能和用户体验。Fiber 究竟是什么,网上也很多优秀的技术...

    京东技术
  • 现场报道 | SIGGRAPH Asia 2017 (DAY 1):AI让空间更智能

    SIGGRAPH(Special Interest Group for Computer GRAPHICS)是计算机图形和交互方向的一个顶会,由于参加人数众多,...

    腾讯多媒体实验室
  • 浏览器原理学习笔记01—宏观视角下的浏览器

    前端知识的深入绕不开浏览器原理的学习,本系列文章为笔者学习浏览器原理后整理的笔记,学习的过程以极客时间《浏览器工作原理与实践》为主线,对原文的重要知识点进行了归...

    CS逍遥剑仙

扫码关注云+社区

领取腾讯云代金券