《Innovus教程 - Flow系列 - 摆放宏单元

(理论+实践+命令)》

理论:

在Innovus里面有个新功能是mix placer,可以将Macro当成Std cell一样去自动摆放一起做Place(这样就不用手工做Floorplan了)。

在公司里面Team Try之后发现它的结果挺好的,尤其是Power上面,要比S家的工具低很多(PTPX分析结果,低很多是相对说的,

Flow越靠近后端,其实节省的功耗比例是越低的,没有前端那么显著

)。刚开始看到结果的时候我感觉很不可思议,因为S家的后端工具在低功耗方面优化策略以及优化选项都蛮多的,居然差别挺大的。

本人并没有尝试对比过mix placer的结果,有空也自己Try一下,这里介绍一下传统的Floorplan。

对于Floorplan而言,一般人们更倾向于靠自己的经验去摆放Macro,摆放它们时不仅要考虑面积、互联线长等传统问题,还需要考虑Place阶段,Macro的摆放对于Place的影响。因为Macro从本质上讲就是一个巨型的标准单元,很多Macro也存在于各个模块内,在Floorplan阶段并不能和模块对等的考虑。对于这个问题,人们根据实际生活中的经验,提出一种边缘摆放

(edge place)

的方法。

边缘摆放的好处主要来源于下面两点:

1)从目前芯片设计的趋势来看,芯片中除了计算单元外就是随机存储单元RAM、只读存储单元ROM等。这些存储单元占据的芯片面积在有些设计中甚至超过百分之五十。对于存储单元来说,存在数据端口和存储端口,并且周围需要有一些可测性电路。这使得这些单元引线众多且功耗巨大。将它们贴边放置,不仅有利于这些单元的供电,而且防止这些单元过多的引脚对其他单元的布线造成影响。

2)标准单元在布局时,按照Row所划定的高度一排一排的摆放,这样既有利于算法的设计,又有利于工业制造。并且在给各个器件供电时,可以使用横向的电源线将处于同一高度的器件连接在一起统一供电。若是将标准单元都摆放在芯片区域的中心,而大的Macro摆放在四周,就可以使标准单元方便的只用一条电源线连接在一起,而不会被高度不统一的Macro打断。对电源网格的设计提供了巨大便利。

而Macro的摆放原则基本如下,可以参照下面这张图:

1)模块尽量摆放在靠近相应输入输出口(IO pad)的位置。一般来说对于大型的Macro,他们不仅仅需要与芯片内部的其他Macro或者标准单元进行数据交换,还需要与芯片外部的器件进行通信。比如,锁相环单元需要接收外部晶振信号,存储单元需要接收外部地址等。这种数据交换就是靠IO pad进行的,因此摆放在离相应的数据端口附近,有利于减少互联线长度,减少线上延迟,并节约布线资源。

2)大的Macro摆放尽量贴近版图的边缘和角落,这样有利于空间的利用,

要尽量留出一个连续且尽量接近圆形/方形的Core区域来摆放标准单元

3)Macro与Macro之间要留有一定空隙,给予布线资源。特别是在Macro的间隙有端口的时候更是如此,

设计者可以通过相邻Marco边界上端口的多少来决定留有多大的间隙比较合适,这样才不至于出现Pin Access的问题

。在使用EDA软件的Floorplan设计时,同样可以给Macro加上晕环(halo)来控制Macro与Macro之间的距离。在ICC中这被成为Keepout Margin,有hard和soft之分,hard区域不允许任何Cell放置在该区域,soft则在coarse place的时候不允许任何Cell放入其内,但是在optimization以及legalization的时候是允许Cell放入其内的,也就是只允许Buffer加入其中。Keepout Margin与Placement Blockage不同,它并不是独立存在的,而是依附于Macro周围,可随Macro移动的。所以它是专门用来控制Macro和其他单元之间距离的一种功能。

4)合理设置Macro摆放的角度。在考量Macro摆放的角度时,不仅仅考虑空间摆放的因素,还要根据端口的连接关系与互连模块的位置来决定。如前面原理图中存储模块的端口方向朝向中央,因为中间的标准单元需要与存储模块进行数据交换,存在互连关系。在实际设计时,不仅要根据端口与标准单元之间的连接关系,还要考虑Macro与Macro之间的互连关系进行综合判断。

实践:

我们可以按照边角的规则摆放宏单元,即尽量将大的宏单元靠角落或者边放置,中间腾出

完整连续的空间

来摆放标准单元。

对后端Flow熟悉一点的可以尝试自己手工摆放。

如果是后端初学者的话建议先不要手工摆放,先跑一下Flow看下效果,可以用下面的命令将一个现成的Floorplan方案load进来:

loadFPlan dtmf_blocks.fp

宏单元的摆放效果如下:

在dtmf_blocks.fp里面也给这些Hard macro周围加了Halo,从上图可以看到。

关于Halo的作用与添加方法下面一节会专门介绍。

用命令来摆放Macro:

除了手工摆放之外,我们也可以通过用命令指定坐标的方式来给这些Macro指定位置。

例如:

placeInstance DTMF_INST/PLLCLK_INST 355.2800 355.4400 R0

我们可以用类似的方式指定其他Macro的位置。

如何得到Macro的物理位置 :

innovus 62> dbGet selected.Box_ll

{528.84 747.73}

innovus 63> dbGet selected.pt

{528.84 747.73}

innovus停止当前命令_Innovus教程 - Flow系列 - 摆放宏单元(理论+实践+命令)相关推荐

  1. 《Linux命令学习手册》系列分享专栏

    <Linux命令学习手册>系列分享专栏 <Linux命令学习手册>已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/20 ...

  2. linux基本功系列之最危险的命令rm

    系列文章目录 命令1: linux基本功系列-ls命令实战 命令2: linux基本功系列之echo命令实战 命令3:linux基本功之历史记录history命令实战 命令4: linux基本功之da ...

  3. linux打印机添加命令,Linux Shell脚本系列教程(二):终端打印命令详解

    终端打印 终端是交互式工具,用户可以通过它与shell环境进行交互.在终端中打印文本是大多数shell脚本和工具日常需要执行的基本任务.通过终端打印,人们可以知道系统的运行状态,这对用户来说是至关重要 ...

  4. linux ll以编码格式_【系列】每天一个 Linux 命令(5):rm 命令

    关注我,你的眼睛会怀孕 今天学习一下linux中删除文件和目录的命令:rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除. ...

  5. python鼠标点击事件event_opencv-python教程学习系列5-处理鼠标事件

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系统环境 系统:win_x64; p ...

  6. 计算机网络丢包排查,ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通...

    原标题:ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通 你好,我是老盖,首先感谢你观看本文,本篇文章我做的有视频,视频讲述的比较详细,也可以看我发布的视频. 这里演示一下ping的命令 ...

  7. mysql命令行安装教程_MySQL命令行教程

    mysql命令行安装教程 1. MySQL简介 在之前的教程中 ,我讨论了有关MySQL服务器的安装以及MySQL数据库使用入门的问题. 在本文中,我们将详细讨论如何使用MySQL命令行执行各种操作, ...

  8. Chef 安装教程【系列教程一】

    Chef 安装教程[系列教程一] 版本均为官方最新稳定版 Chef Server 12.17.33.Chef Manage 2.5.16.Chef Workstation 0.1.137.Chef C ...

  9. Linux 常用命令与教程

    http://c.biancheng.net/view/705.html C语言编程网的教程很好 还有菜鸟教程的 https://baike.baidu.com/item/PS/8850709 百度百 ...

最新文章

  1. python: how to delete a given item if it exist in the list
  2. LUNA再次夺冠,科大讯飞向世界宣告自己的实力不止于语音
  3. python 迭代器、生成器、yield、iter
  4. [JavaScript] promise中.then()方法
  5. 施密特正交化_格拉姆-施密特正交化--QR分解法的来源
  6. 【MySQL】MySQL SQL查询语法建议
  7. Exchange Server 2016管理系列课件17.创建和使用会议室邮箱
  8. win11虚拟机如何安装 Windows11虚拟机安装步骤教程
  9. 关于修复Office图标白色的问题
  10. MAC M1系统下的几种截图工具
  11. 七周成为数据分析师 第五周:Mysql
  12. 网易公开课 IPHONE开发
  13. Stewart六自由度平台正反解算法
  14. Linux双硬盘引导,Linux系统下双硬盘多系统引导深入探究
  15. 量化投资学习-10:追涨杀跌的本质是“高买低卖”,这是散户亏钱的背后的操作逻辑
  16. 面包板入门制作之光敏电阻,
  17. Centos7常用指令
  18. 关于STM32驱动LCD显示屏,程序下载后白屏、乱码需要上电复位才能恢复正常问题的解决办法
  19. ShanaEncoder 官网链接
  20. pycharm 2016 专业版 注册码 激活 一起支持官方正版

热门文章

  1. ar8171 linux网卡驱动,atheros ar8171
  2. UnfamiliarWords-2
  3. 超多超美多的图片素材网站,还能在线编辑,觉对满满的干货!
  4. 《团队-排课软件-项目总结》
  5. “十二五”制造业信息化工程战略规划
  6. 【数据库】Oracle中的字符型及处理方法
  7. 嵌入式开发之hisilicon---hi3536 处理器简介
  8. 读书笔记之《人人都是产品经理》(附思维导图)
  9. a dirty mode 计算机_那把匕首四年后重现江湖《Savage Mode II》背后隐藏了哪些故事?...
  10. python 的就业前景怎么样?