ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:119KB ,
资源ID:1738867      下载积分:12 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1738867.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一种基于网格的芯片布局密度控制方法.doc)为本站会员(gs****r)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

一种基于网格的芯片布局密度控制方法.doc

1、1一种基于网格的芯片布局密度控制方法摘要:物理设计中,布局密度过高导致的拥塞是一直不可避免的问题.本文提出了一种基于网格划分的密度控制方法来改善 EDA 工具在自动优化拥塞方面的局限性,以 Synopsys 公司的后端工具 IC Compiler 为主要实验工具,通过将目标模块划分成网格(grid)的形式,分析每个网格内的布局密度信息,对可能出现拥塞的区域通过算法进行控制,以达到减少并解决布局拥塞的目的.实际工程试验表明,该方法可以有效地解决模块中由于布局密度过高引起的拥塞问题,同时改善了设计时序,具有较高的工程价值和实用性. 关键词:网格划分;布局密度;拥塞控制 中图分类号:TN47 文献标

2、识码:A A Method of Controlling Chip Layout Density Based on Grid Division HE Xiao-wei1, HAN Yu1, WANG Dong2, ZHAO Zhen-yu1 (1. College of Computer, National Univ of Defense Technology, Changsha, Hunan 410073, China; 2. Scientific Research Dept, National Univ of Defense Technology, Changsha, Hunan 4100

3、73, China) Abstract: In physical design, local high density issue always results in place and routing congestion problems. This 2paper presented a method of controlling chip density based on grid division in order to alleviate the drawbacks of congestion-driven optimizations by EDA tools. This paper

4、 used Synopsys IC Compiler as major experiment tool, divided the design block into several grids, and analyzed the layout-density information within each grid to control and optimize the possible congestion areas. Meanwhile, the design timing has also been improved. The effectiveness and feasibility

5、 of this strategy has been verified with actual project examples. Key words: grid division; layout density; congestion control 随着半导体技术的发展,每一代工艺大体上将有效沟道长度降到前一代的 0.7 倍,芯片集成度极大地提高1.在后端设计中通过 EDA 工具对标准单元进行布局时,这些单元并不会均匀地分布在芯片上,而是会根据逻辑划分、时序优先等布局引导来被放置.这就会导致在逻辑模块交汇或布线通道附近等时序关键区域被摆放大量单元,而芯片的四周边角的区域却只有少量单元2.这

6、使得在后端设计过程中,随着优化的进行,各种优化单元的不断插入,芯片在总体单元利用率不是很高的情况下也会出现局部布局密度过高的情况,从而产生拥塞. 拥塞通常出现在时序关键区域,这种区域在布局阶段摆放的单元数目就很多,在后续优化阶段还会插入大量的单元,所以极易形成拥塞,导致绕线、电迁移、功耗密度不均匀甚至无法继续优化等问题,严重影3响了芯片的性能和稳定性;同时局部单元数目过多也会导致局部线网密度提高,这对芯片的可制造性也将产生极大的影响,所以如何解决拥塞问题一直是集成电路设计中的重要课题3. 本文以 Synopsys 公司的后端工具 IC Compiler 为主要实验工具,主要通过将目标模块划分成

7、网格(grid)的形式,分析每个网格内的布局密度信息,对可能出现拥塞的区域进行控制与优化,以达到减少或解决布局拥塞的目的.实际工程证明,该方法可有效解决芯片布局密度过高引起的拥塞问题,极大地减少了设计过程中的迭代次数,缩短了设计周期. 1 布局拥塞概述 虽然设计流程中在逻辑综合阶段会进行拥塞的优化,但是在后端设计过程中依然会不可避免地出现拥塞问题.如果要用更加准确的算法来控制后端流程中可能出现的拥塞情况,就必须了解在后端流程的不同阶段可能会影响到布局密度变化的情况. 在后端设计流程中,常常因为优化而需要插入或者改动单元,从而导致布局密度升高.这也正是在逻辑综合时无法预估到物理设计后期拥塞分布的

8、原因.可能造成设计出现布局拥塞的情况包括:标准单元的尺寸变动;插入普通缓冲器或时钟单元,时钟单元具有相同的上升和下降时间,在时钟树综合时可以使时钟信号获得较好的占空比(duty cycle)4;插入延时单元;插入防闩锁单元等. 为适应芯片设计的需要,人们在分析标准单元通道布线结构的基础上发明了新的启发式算法,并将其应用在 EDA 工具中,逐渐发展成拥塞驱动的布局算法,包括基于网格5和非基于网格6两类.这两类算法都4以互连线为中心,在初期布线有很高的成功率.但其对单元摆放的控制太宽泛,不能有效地约束关键区域的布局密度,导致在后期布线时,特别是对于长路径和布局密度高的区域,布通率下降明显. 随着

9、IC 设计水平的提升,物理设计中已经有很多趋于成熟的策略可以用来解决设计过程中出现的拥塞问题.根据执行者的不同,将其分为工具优化和人工优化两种. 人工优化一般分为两种,一种是在布图规划阶段通过合理摆放宏单元,设置布局/布线屏蔽层等方法来预防拥塞的发生;另一种则是在布局之后的阶段,通过删除冗余缓冲单元、减小单元尺寸、利用公共路径插入缓冲单元等方法来解决拥塞问题.第一种方法的准确度不高,往往要经过数次迭代才能找到合适的方案;第二种方法面向的对象可具体到每一条路径、每一个单元,准确度极高,但非常依赖于布局,优化空间较小,并且当出现大规模拥塞的情况时,过于精细的分析反而使得优化周期极大地增加. 因此如

10、何结合两种方法的优势,进一步加强对密度的控制是具有较高工程价值的研究.本文通过划分网格的形式,在 EDA 工具算法的基础上加强对局部密度的控制,其中的拥塞预估将优化过程中插入的延时单元面积考虑在内,大大地增加了预估结果的准确性. 2 理论研究与算法实现 2.1 网格划分 将物理设计的模块划分为网格形式(如图 1 所示) ,每个网格都包含一定的标准单元,通过指导布局过程使得布局拥塞度与特定的网格相关,5从而达到控制局部密度的目的. 在布局的初始阶段就需要确定网格的划分,划分网格时应遵循以下原则: 1)网格之间应该相互紧贴,并且不能重叠. 2)网格应当覆盖该设计模块的所有单元布局区域. 3)从算法

11、复杂性考虑,尽量保证划分的所有网格大小一致. 对于网格的面积,主要从两方面考虑:第一是网格面积对后续优化准确性和效果的影响,第二是对优化过程中插入的延时单元输出翻转时间的影响.这两点若不分析清楚,将会使得后续优化算法的实用性大打折扣. 从计算复杂性和误差考虑,网格面积划分得越大越好,但过大的网格会由于优化时其内部插入的延时单元距离目标寄存器太远而产生翻转时间违例.所以必须根据延时单元的驱动能力来限制网格面积.在实际设计中应权衡两者关系做出最优选择. 2.2 布局密度预估与控制 对于一个已经完成标准单元放置的布局,其局部密度的定义为: db(ei) = Cb(ei) /Ab(ei).(1) 式中

12、:Cb(ei)为分配在某一个网格 ei 中的标准单元总面积;Ab(ei)为该网格的面积. 最大密度的定义为: D(B) = max db(ei) ,i = 1,2, 布局的目标是在不影响时序的前提下,尽量令 D(B)最小化,即让6标准单元均匀分布,以减少局部拥塞率. 仅仅对布局之后的密度进行分析的效果并不理想,因为标准单元放置完毕之后,还未进行时序优化.由于无法预估到未来进行时序优化时网表的变动,所以不能判断每个网格在之后优化过程中的密度变动.若在此时通过分析局部密度来设置约束,只有两种办法: 1)仅对已经确定密度较高的网格设置约束,其优点是准确性高,对时序基本没有影响;缺点是约束的网格数量少

13、,对密度的控制力度较小. 2)对全部网格都设置密度约束,优点是对密度的控制效果明显,可以看成是所有单元被均匀分布在模块的每个网格内,基本保证每个区域内都有空间进行后续优化;缺点是约束的网格较多,单元容易被布局屏蔽层推得过于分散,对时序影响较大. 这两种方法虽然都可以做到密度控制,但是也都存在明显的不足.所以我们要进行更加有效的干预,就必须对密度过高的原因进行更细致的分析. 在物理设计流程中,EDA 工具在优化过程中为了修复建立时间和保持时间违例会插入不同类型的缓冲单元,虽然我们不能预估建立时间优化时插入的缓冲单元的位置,但在修复保持时间违例时,特别是在修复扫描模式的保持时间阶段,插入的缓冲单元

14、却是可以预先判定位置的.因此,可以在布局之后提取设计中所有寄存器的位置信息,然后根据每个网格内含有的寄存器数目计算出该网格在修复保持时间时可能需要的空间,将这个信息和密度综合成新的拥塞预估标准. 由式(1)知道,对于网格 ei,其局部密度为 db(ei) = Cb(ei)7/Ab(ei) ,设网格 ei 内有 N 个寄存器,为每个寄存器在修复保持时间时预留的空间为 K,所以,对于该设计中的网格,其局部单元拥塞度的定义为: Con(ei) = db(ei) + N(ei)K/Ab(ei). 综合可得: Con(ei) = Cb(ei) + N(ei)K/Ab(ei).(2) 对于网格 ei 而言

15、,其局部单元拥塞度为布局完成之后,该网格内所有单元的面积及为网格内部所有寄存器预留面积之和与网格总面积之比. 使用式(2)定义的局部单元拥塞度作为布局阶段的网格密度评估标准,比之前使用的式(1)更加精确,不但从局部密度来分析单元拥塞,而且考虑到了修复保持时间违例时的拥塞来源,增强了布局对流程后期的拥塞影响.新的最大单元拥塞度的定义为: Con(B) = max db(ei) + N(ei)K/Ab(ei),i = 1,2, 可以看出,如果要让 Con(B)最小,不但要将标准单元分布均匀,还要避免某一区域寄存器分布过多.这样等于将时序关键区域的单元均匀扩散,保证了优化的空间. 2.3 算法实现

16、基于网格的密度预估布局所采用的算法只需要通过预估,得到每个网格的局部密度即可.具体的算法实现步骤如下: 1)设计文件输入以及布局.首先要有一个已经确定的布局来避免迭代.将输入信息读入 EDA 工具,并进行标准单元摆放.对已经摆放的标准8单元进行时序优化和物理位置优化,使得初始寄存器的位置基本固定. 2)网格划分.在标准单元布局完成之后,就可以开始网格的划分.根据网格划分的原则来划分网格,保证网格覆盖整个模块.值得注意的一点是,将网格的垂直长度设置成单元区(row)的整数倍,可以减少复杂度并提高准确性. 3)网格拥塞计算.在网格划分完成后,开始计算网格的拥塞度.从第一个网格开始计算,通过面积坐标

17、信息将该网格内的单元提取出来,然后将处于网格内的单元面积进行累加,最后除以网格总面积,即可得到网格的当前密度 db(ei).对于预估的面积 N(ei)K 也采用同样的方法.通过坐标判断寄存器是否在当前网格内,如果不在就跳过该寄存器,如果在,则当前网格内寄存器数目加 1,直到所有寄存器遍历完毕.在得到当前网格的布局密度和寄存器数目之后,即可进行下一网格的拥塞计算. 4)设置约束.对于处在中心区域布局密度较高的网格,可以设置较严格的布局约束;对于处在边角非关键区域、布局密度很低的网格,可以设置较宽松的约束或者不用设置约束. 具体的约束标准是以网格内的寄存器数目为标准的.拥有较多寄存器的网格意味着在

18、未来优化中可能被插入更多的单元.对于一个拥塞度为Con(ei) = db(ei) + N(ei)K/ Ab(ei)的网格,需要预留的面积通常为 N(ei)K 的 1.32.1 倍,可根据不同的需求来进行设置. 最后将约束信息输出成 tcl 脚本形式,以便在下一步中应用. 5)重新布局.在约束设置完毕后,需要重新布局及摆放标准单元.在布局阶段读入上一步中生成的设置脚本,使得新的单元摆放遵循约束规9范. 6)拥塞检查.在新的布局生成之后,还要对该布局进行一次拥塞检查.目的是防止一些在第一次布局中没有注意到的网格在第二次布局后产生拥塞. 以上 6 步完成之后,基于网格的密度控制布局就完成了,详细的算

19、法流程图如图 2 所示. 3 实验结果 实验实例为一个百万门级的设计模块,该模块面积为 1 380 m1 300 m,含有 58 776 个寄存器,161 236 个标准单元,时钟周期为 700 ps.虽然该模块布局阶段的单元利用率并不高,但是由于单元摆放不均匀,在中间区域集中了 80%以上的单元,而周围区域只摆放了一些与 I/O 引脚有关的单元,所以在优化过程中仍然可能出现拥塞.我们采用两套流程对该模块进行后端设计,不同点在于第一套流程在布局阶段的脚本中嵌入了本章研究的布局密度控制脚本;另一套流程采用的是正常后端设计的脚本,在每个阶段都会进行一次 EDA 工具自带的拥塞优化. 为方便对比,两

20、套流程中均不采用任何 ECO 手段.首先对模块进行网格划分,分割成 2120 共 420 个网格,每个网格面积为 65.52 m65 m = 4 258.8 m2,网格划分之后的模块如图 3 所示. 下面分别给出了两套流程在不同阶段每个网格的拥塞度对比以及静态时序分析的报告.为了更清楚更直观地分析不同阶段的局部拥塞,将网格拥塞度以散点图的形式表现出来,图 4 和图 5 分别为两套流程在布局阶段局部拥塞度对比.图中横坐标为网格内的局部密度,纵坐标为网格内10的寄存器数目,每一个散点代表一个网格,从图中可以清楚地看到每一个网格区域的布局密度与寄存器数目. 图 4 为该模块使用正常流程时,在布局之后

21、的各网格拥塞度情况.可以看到,在布局阶段,大部分网格的布局密度已经接近 0.8,一些网格的布局密度甚至已经超过 0.9.图 5 为采用密度控制之后的布局拥塞示意图,可知在通过对布局密度较高和寄存器密集区域进行了控制之后,大部分网格的布局密度降低到了 0.6 左右,只有少数网格超过 0.8,效果非常明显.同时网格内寄存器数目的最大值也从 350 左右减少到了不到 300,max Con(B)降低了 11%. 违例后,模块布局密度有了较大的增加.图 6 中大部分网格的布局密度都达到或接近 1,这些网格所包含区域的布局空间趋于饱和,并且可能已经产生拥塞.图 7 为采用了密度控制的流程在签核阶段的拥塞示意图,可看到虽然布局密度同样有大幅提升,但大部分网格的布局密度维持在 0.9左右,即在这些区域仍有 10%左右的空间可供使用,说明这些区域尚未产生拥塞. 下面我们将两套流程在签核阶段的时序结果进行比较.表 1 为该模块在签核阶段的 PT 时序报告,其中 func 和 shift 分别代表功能模式和扫描模式;后缀为 max 的端角为检查建立时间的端角,后缀为 min 的端角为检查保持时间的端角;WNS 代表最关键路径的违反时间;VPN 代表关键路径的条数. 从表 1 的时序报告中可看出,该模块在使用常规流程完成签核阶段优化后还有将近 30 000 条保持时间的关键路径没有被修复.这是由于在

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。