版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于逻辑组的快速宏布局方法 Albred Mo 物理设计工程师 Nvidia公司 时间:2011年04月02日 字 体: 大 中 小 关键词:<"cblue" " target='_blank'>逻辑组<"cblue" "
2、 target='_blank'>宏布局 <"cblue" " target='_blank'>NVIDIA 摘要:本文介绍了一种适用于高宏数、难时序设计的快速平面布局方法。微捷码 Talus 可基于<"cblue" " title="逻辑组&quo
3、t;>逻辑组产生所有宏和标准单元的快速布局。我们可通过利用这种布局信息来突出并划分适合的“宏组”,对于高宏数设计来说,这种方法要较一般的分组方法更快速更合理。对于时序关键设计,我们可使用积极的“<"cblue" " title="宏布局">宏布局”方法来显示关键逻辑组,然后再通过增量(incremental)的“宏布局”来调整布局形状(无宏或其它逻辑组阻塞的前提下将关键逻辑聚集在一起);这种方法可为我们常规设计带好更好时序(包括 WNS/TNS)和更好布线结果(总线长)。关键词:平面布局;宏(macro cell);宏布局;逻
4、辑组;粗布局 1. 介绍 一般来说,逻辑块级设计平面布局的主要工作就是宏布局。传统上,我们初始宏布局可以之前平面布局模式为基础;布局时我们应考虑到 IO 连接,需要先了解宏与 IO 间逻辑关系,然后再将宏设置于相关 IO 的旁边;我们倾向于将宏设置于边界周围;我们想要将名称模式相似的宏设置在一起;我们会先运行布局(fix_cell)功能,然后再基于关键时序路径或拥塞来调整宏布局,而且我们还可以通过显示往返宏的飞线来观察宏和 STD(标准)单元的布局是否合理。 对于传统平面布局方法,我们可能要花很长
5、时间来了解我们的设计,可能要与前端设计师进行探讨,可能要通过多次物理布局迭代来完成时序收敛。对于宏数量巨大的设计来说,这可是项非常恐怖的工作。现在我们有了一种基于逻辑组的新平面布局方法,它可更快速有效地完成平面布局工作。这个流程共分为 3 个步骤:1) 同时进行宏和 STD 单元布局(粗布局,“run place cluster”);2) 划分逻辑组(针对宏和 STD 单元同时进行);3) 增量布局,调整逻辑组形状和位置。 2. 粗布局(Coarse placement) 我们可将整个布局工作(fix_cell)分为 2 个步骤:1
6、) 粗布局:执行设计的初始布局;2) 基于粗布局的增量优化。 步骤 1)是取得好布局结果的关键点,我们的一切讨论都将围绕“粗布局”展开。 在 Talus 中,有两个不同“粗布局”命令“run place cluster”和“run place global”,这两个命令可基于逻辑组(群)进行粗布局。“run place cluster”可同时完成宏和 STD 单元的布局,而“run place global”则会在考虑拥塞情况的前提下进行 STD 单元布局。就我们所知,“fix_cell”一般是使用“pl
7、ace global”来完成粗布局。根据我们的测试,若宏的位置相同,那么“place global”和“place cluster”布局结果也将十分接近,因此我们可基于“place cluster”结果来预测“fix_cell”粗布局结果。 下图显示了设计案例 D1 的“place cluster”结果(图 1): 我们推荐的完整命令为:“run place cluster $m effort high macro_style overlapp
8、ing”。由于允许宏重叠,因此我们可更轻松地划分宏组;若未加入选项“-ignore_io”,那么系统会默认为考虑 IO 连接;D1 运行时间为 510 分钟(60 万个单元级电路,“place global”所需时间约为它的 24 倍)。 粗布局的最重要考量点不是时序和拥塞,而是线长(图 2)。
9、60;对于左边布局模式,它是先分组为 (A, B, C, D)和(E, F, G),然后再进行布局;对于右边布局模式(基于布局的线长),布局器会将相互间连接多的单元设置在一起((A, B, C, E)和(D, F, G)),这样所得总线长最短。我们不难看出右边布局模式中横跨这两组的飞线要少于左边布局模式,这种模式用于解决拥塞问题也很不错。因此我们应像布局器一样划分逻辑组以取得可预测的布局结果。 3. 划分逻辑组
10、0;划分逻辑组原理有: 1) 同时对宏以及与其连接的逻辑进行分组。就我们所知,一个宏可能有许多输入/输出(I/O)引脚,与其所连接的逻辑间交流也很频繁,宏的位置对逻辑的布局有很大影响,因此我们应将宏和逻辑分在一组里,同时不应有直接连接宏的飞线横跨不同的逻辑组 2) 跨不同组的飞线应尽可能少。换句话来说,如果你看到许多跨两个组的飞线,那么这两个组应分在一组里。
11、160; 如图 3 所示,多数飞线是位于“暗绿色”组旁边。 对于那些已在 RTL 中进行了很好层次化划分的简单设计,我们可利用 Talus 层次浏览器来划分逻辑组。 &
12、#160;以 D1 为例,层次命名模式为“AAA/BBB/CCC_1/”。我们可轻松地将 D1 分为 3 个逻辑组,然后再进行宏布局。具体实现过程如下(图 4): 我们可进行更深层的层次树(hierarchy tree)合并以取得更详细的组划分(图 5):
13、60; 对于一些名称模式不如此友好的设计,我们不能从层次浏览器中获得清晰的组信息。那么我们应采用下列额外选项来改善我们的“粗布局”:“run place cluster $m effort high macro_style overlapping max_util 1”。 max_util 默认
14、值为 0.6。由于 max_util 值越低,分散于可用区域上组群就越分散;因此我们将“max_util”值设为“1”,如此一来这个组群将更为集中,逻辑组的划分也更容易得多。 以另一项设计 D2 为例。 图 6 显示了“max
15、_util”= 0.6(默认值)的结果。我们不难发现它将所有 STD 单元散布于整个芯片上。 当我们设置
16、max_util = 1(图 7)时,这个组群的布局将更为集中。芯片中有许多空白区,布局器可更灵活地完成这个组群的布局。同时,我们不难看出这个“黄色”组和“粉色”组的形状比之前好多了。不过,我们发现“绿色”组和“红色”组仍被一些宏给分隔开。我们应使用更积极方法来解决这个问题:我们可将这些宏堆栈在一起并固定,然后再进行“run place cluster“(它不会触及已固定单元)(图 8)。
17、60; 现在“绿色”组和“红色”组形状看起来好多了,这证明了它们是真正的逻辑组,应被设置在一起。 4. 调整逻辑组形状和位置 当我们有了清楚的逻辑组划分时,我们可先将宏设置于“粗布局”初始位置的旁边;然后再固定那些宏并运行“place cluster”。布局器将只进行这一次的 STD 单元布局。根据布局结果,我们将
18、尝试通过更改宏位置来调整逻辑组形状和位置,特别是对于时序关键逻辑组来说更是如此。判断好的逻辑组形状的标准有: 1) 类似“馅饼 (pie)”的布局; 2) 没有其它逻辑组 STD 单元逻辑侵入馅饼型布局中; 3) 在馅饼型布局旁边没有大型宏。
19、160; “时序关键组”是指有大量时序违规端点(触发器)占绝大部分总时序违规的组,而不是指有几个时序违规端点且可能具有最差负余量(worst negative slack)的组。一般来说,这些路径的起点也在这组中;它们有很深的逻辑层,且这个起点还可能有高扇出终点(FFS)。据我们的组划分原理,要想最大程度降低跨组的飞线数量,这些起点和终点也应分在一组里。然后我们应将这组布局为类似“馅饼”的形状,这样才可使得旁边逻辑单元位置更紧凑,还可最大程度地降低路径延时(插入的缓冲区越少,占用面积也就越小)。
20、; 以另一项设计 D3 为例(图 9)。 “暗绿色”组是时序关键组,在左边平面布局图中被布局为“倒 T 字型”形状。在右边平面布局图中,我们调整宏布局将这个组布局调整为“馅饼型”形状,这
21、样的时序将会好得多。 有时为了清理出些空间以取得好的关键组形状,我们可能需要将其它非关键组移出相关区域。对此我们能做的一件事就是调整宏位置。当你将宏移出时,与这个宏相连接的逻辑也将紧随其后移出。事实上,它们是同一组,因此我们可通过移动宏来调整逻辑组的位置和形状。
22、 以下是一个先进的应用例子(图 10)。 A 组和 B 组紧密连接在一起,A 组中有个宏。而我们想要将 B 组从芯片左下角移到芯片右边。虽然在 B 组中没有宏,但我们可移动 A 组中的那个宏,到时 A 组就会将 B 组拉到右边。有时我们并不能将所有宏设置于边界周围,如:有大量宏占用
23、了芯片大量面积,或者边界引脚密度非常高且边界附近设置宏可能导致严重拥塞问题。事实上,我们是可将宏散布于整个芯片上,当然要以一种合理方式: 如图 11 所示,我们将 “粉色”组的一些宏放置在组边界,从而尽可能地减少横跨这些宏的飞线,同时不过多地影响“粉色”组及其它组的形状。你可假设每个组都是较低层分区,而且我们只沿着分区边界来放置宏。
24、 就我们所知,如果我们将一个宏设置在逻辑组中心位置,那么这组中会有许多横跨这个宏的飞线,如左图所示,有垂直的也有水平的。甚至更糟糕的是,这个宏将占用“好”位置,使得这个逻辑组中 STD 单元的布局不仅不紧凑,而且还添加了额外的
25、绕障路径延时(detour path delay)。当我们将这个宏设置在组边界时,如右图所示,由于很少有横跨不同组的飞线,因此将只在垂直方向会有横跨这个宏的飞线,水平方向则没有;而且它对 B 组中 STD 单元布局影响更小;当然所付出的代价就是 B 组的那个宏会入侵到 A 组空间中。因此你应先做出选择,选择哪个组有较高优先权。 所有这些调整试验均可通过“place cluster”命来快速轻松地得以应用。你可以先移动并固定一些宏(“place cluster”并不触及已固定单元),然后再运行粗布局来观察这个组的形状和位置是如何变化的、哪些看起来像“大陆漂移”。由于无需运行完整 fix_cell 试验,它将节省大量时间。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 6-O-DMTr-2-O-Me-5-homo-A-Bz-3-CE-phosphoramidite-生命科学试剂-MCE
- 老年人护理营养评估方法
- 企业文化传播管理规范承诺书5篇
- 潮流产业成长承诺函(6篇)
- 6-9-Dichloro-2-methoxyacridine-生命科学试剂-MCE
- 零售业技术销售策略与面试要点
- 浪潮服务器硬件维修工应聘要点指导书
- 公司生产运营责任承诺函4篇范文
- 物资采购诚信保障承诺书5篇范文
- 客户关系维护策略制定与实施指南
- 前厅服务与数字化运营 课件 于英丽 项目1、2 前厅部认知、现代前厅服务
- 教科版六年级科学下册 活动手册答案
- JB∕T 12796-2016 固定锥形阀标准规范
- 外科学 手术 基础
- 《弟子规》全文及解释(打印版)
- 2021年全国统一高考地理试卷(含答案)(乙卷)
- 中小学生森林防火安全教育《保护森林 人人有责》课件
- 人教版四年级下册数学第一、二单元测试题及答案
- 港口集装箱运输AGV项目规划设计方案
- 疾控中心培训课件:《白喉的采样及实验室检测技术》
- 一层楼农村自建房施工方案
评论
0/150
提交评论