SoC布局的平面布图规划方法

文档序号:6469353阅读:299来源:国知局

专利名称::SoC布局的平面布图规划方法
技术领域
:本发明属于集成电路计算机辅助设计
技术领域
,具体涉及一种SoC布局规划中几何约束实现方法。
背景技术
:集成电路的发展给计算机辅助设计领域带来新的问题。首先,芯片内部连线的快速增加,使得以前不是很重要的连线因素逐渐成为制约芯片性能以及芯片设计收敛的决定性因素。其次,集成电路工作电压的降低,使得信号的抗干扰能力变差,因此,信号完整性问题也变得越来越重要。并且随着片上系统(SoC)成为超大规模集成电路发展的趋势和未来集成电路的主流,传统的EDA工具需要不断的改进才能适应越来越复杂的集成电路设计需要。随着SoC的迅速发展,芯片里正集成越来越多的宏模块,这些宏模块位置的确定是布局规划的重点。它们所占面积大,影响的连线多,对芯片整体的连线延迟和布线通过率都有很大的影响。尤其是当存储单元数目不断增加时,宏模块与标准单元混合布局的好坏将直接影响到芯片最终的功耗,速度等性能指标,基于这一问题,本发明将有针对性的提出SoC平面布图的混合布局。参考文献1RichardAuletta,"Expertsystemperimeterblockplacementfloorplanning,,,Proc.DesignAutomationandTestinEuropeconferenceandExhibition,Vol.3,p.140-143(2004).2YuejianWuandAndreIvanov,"LowPowerSoCMemoryBIST",Proc.The21stIEEEInternationalSymposiumonDefectandFault-ToleranceinVLSISystems,p.197-205(2006).3曾宏。深亚微米下超大规模集成电路的物理设计研究[硕士学位论文]。上海复旦大学,2004CarlSechenandAlbertoSangiovanni-Vincentelli,"TimberWolf3.2:ANewStandardCellPlacementandGlobalRoutingPackage",23rdDesignAutomationConference,p.432-439(1986).5Yun-ChihGhang,Yao隱WenChang,etal,,"B*-trees:aogwrepresentationfornon-slicingfloorplans",Proc.37thDesignAutomationConference,p.458-463(2000).6J.-M.Lin,H.-E.YiandY-W.Chang,"ModuleplacementwithboundaryconstraintsusingB*-trees",Proc.IEEECircuits,DevicesandSystems,Vol.149,p.251-256(2002).7Tung-ChiehChenandYao-WenChang,"ModernfloorplanningbasedonB*-treeandfastsimulatedannealing",IEEETransactionsonComputer-AidedDesignofIntegratedCircuitsandSystems,p.637-650(2006).8S.Kirkpatric,C.GelattandM.Vecchi,"Optimizationbysimulatedannealing",Science,Vol.220,p.671-680(1983).
发明内容本发明的目的在于实现一种标准单元和宏模块混合布局的SoC布局算法,通过对应宏模块的基本操作,并采用模拟退火实现满足要求的SoC平面布局。为达到上述目的,本发明的技术方案是一种SoC布局的平面布图规划方法,采取将所有标准单元抽象成宏模块Ms后的布局优化基本操作算法,其步骤是a.随机构造一个允许的初始布局结构;b.针对得到的初始布局,在对B、tree的基本操作过程中对目标函数进行优化,同时保证优化过程中的布图都是允许的。所述对B、tree的基本操作分为两种a.只针对偏离度P优化进行的B、tree操作;b.只针对面积优化进行的B、tree操作。所述只针对面积优化进行的B*-tree操作,通过旋转、插入和删除操作来实现面积最优化。所述只针对偏离度P优化进行的B*-tree操作,通过旋转,插入和删除操作来实现SoC约束,与a种相比其插入操作具有下列不同策略a.当标准单元模块Ms偏向芯片左边界时,如果Ms是左子,则在B吣tree中插入一个节点作为它的父节点;如果Ms是右子,则在B^treerightmost分支中找到这样的一个模块,该模块需满足位于Ms的左侧且x坐标与Ms模块最为接近,然后插入一个节点作为该模块的左子;b.当标准单元模块Ms偏向芯片右边界时,插入一个节点作为Ms的左子;c.当标准单元模块Ms偏向芯片下边界时,如果Ms是右子,则在B、tree中插入一个节点作为它的父节点;如果Ms是左子,则在B^treeleftmost分支中找到这样的一个模块,该模块需满足位于Ms的上方且y坐标与Ms模块最为接近,然后插入一个节点作为该模块的右子;d.当标准单元模块Ms偏向芯片上边界时,插入一个节点作为Ms的右子。采用本发明SoC布局的平面布图规划方法,具有以下优点(l)随着复杂度的增加,SoC芯片集中了越来越多的存储单元(ROM,RAM等),这些存储单元不仅功耗大而且都有数据线和地址线的引出,加上周围还有BIST(Built-inSelfTest)电路,更加增加了连线的数量,使用本发明方法将它们贴边放置,不仅有利于满足他们的功耗需求而且有利于后端连线的通过,提高了后端设计收敛的速度。(2)标准单元一般是以横向行的方式一组一组放置的,并且由横向的电源条直接对其进行供电,如果将他们放置在芯片中间空出的面积上,不仅有利于宏模块的布线通过,更为后端的电源网络设计带来了方便。图1是本发明SoC布局的平面布图规划方法基本操作算法框图;图2是本发明SoC布局的平面布图规划方法B、tree水平表示示意图3是本发明SoC布局的平面布图规划方法增加目标节点父节点的关系示意图4是布局标准测试用例ami33考虑SoC约束所得到试验布局结果图;图5是布局标准测试用例ami49考虑SoC约束所得到试验布局结果图。具体实施例方式传统的宏模块布局规划(BBL)问题,需要输入一组包含面积,网表连接信息,各种约束条件的模块序列,然后在满足所有约束条件的情况下实现最终布局面积最小,连线最短的目标。带约束的宏模块布局规划问题可以简单描述如下输入通常为一个由宏模块组成的集合B^M1,M2,...,Mn},其中每个模块Mi包含下面三种信息(1)模块几何信息对应于第i个模块的长(hi)、宽(wi)、面积(ai),根据模块长宽比(Ti)判断是否可变分为硬模块(模块长宽固定不变)、软模块(模块面积不变,长宽比可以在一定范围内调整)或者是其他非矩形的模块;(2)模块线网信息对应于每个模块连线端口序列(P1,P2,...Pm},及其每个端口在模块中的相对位置,以及与其他模块的连接信息;(3)模块约束及相关信息譬如几何约束(边界约束,集中约束等)和特性约束(功耗密度,电压降需求等)。输出要求布局结果对应总体面积(Atotal)最小,线长(W)最短,同时满足预定的约束条件。对布局规划而言,SoC芯片中包含有两种类型的模块标准单元(standardcells)和宏模块(IPblock)。在SoC布局中,设计者一般采取层次化的设计方法,经验做法为将宏模块沿着芯片四周贴边放置,以便空出芯片中间的大部分面积来放置标准单元1。这样做的好处是(1)随着复杂度的增加,SoC芯片集中了越来越多的存储单元(ROM,RAM等)2,这些存储单元不仅功耗大而且都有数据线和地址线的引出,加上周围还有BIST(Built-inSelfTest)电路,更加增加了连线的数量,如果将他们贴边放置,不仅有利于满足他们的功耗需求而且有利于后端连线的通过,提高了后端设计收敛的速度3。(2)标准单元一般是以横向行的方式一组一组放置的4,并且由横向的电源条直接对其进行供电,如果将他们放置在芯片中间空出的面积上,不仅有利于宏模块的布线通过,更为后端的电源网格设计带来了方便。基于以上的SoC布局规划方法,将所有的标准单元抽象成一个宏模块,该宏模块与标准单元有着同样大小的面积以及连线关系,从而将这样一种SoC层次化布局变为一般意义上的SoC约束的BBL布局。SoC布局问题的定义对于给定的一组宏模块集合B^M1,M2,...,Mn},其中包括了神象出来的标准单元模块Ms,约束要求在最终布局中Ms必须被其他宏模块所包围,并且要尽可能的处于芯片的中央。为了精确描述Ms在整个芯片中的位置关系,我们引入了一个偏离率P的概念,定义为<formula>formulaseeoriginaldocumentpage7</formula>其中(&,^)表示Ms模块中心点的坐标,(Xc,义)表示布图后芯片中心点的坐标。这样,SoC约束布局的最终优化目标变为在使得总体面积(At。tal)最小,线长(W)最短的同时使P趋向于零。在分析布局结构的B*-tree表示法时可发现,通过简单的插入操作可以改变B*-tree中子节点所代表的模块的坐标在水平B、tree中,节点的左子代表与该节点模块相邻但从未访问过的最下方模块,节点的右子对应于位于该节点模块上方且x坐标与其相同的模块5。由B、tree的定义,我们可以通过对Ms模块父节点或着子节点的插入操作来改变它的x或者y坐标,从而使其放置在芯片中央,达到SoC布局的约束。例如我们对图2中水平B*-tree的119节点做插入父节点n12的操作,如图3所示,对应的布局中模块m9的x坐标增加了w12,即模块mu的宽。基于这一点,我们提出了在B*-tree中通过对Ms父或子节点的插入操作实现SoC布局的算法。本发明提出的基于B*-tree的SoC布局算法如图1所示,基本思想是首先随机构造一个允许的初始布局结构,然后在布局搜索的基本操作中以一定的概率保持满足SoC约束的布局结构,限制可能会导致约束违反的操作,该概率与布局满足SoC约束的程度——偏离度p有关。这样一方面可以有效的控制SoC布局表示的转换过程,另一方面不需要在目标函数中增加惩罚项,避免因此导致的收敛性降低。具体来说,实验步骤主要为两步(1)随机构造一个允许的初始化布局。一个布局被称为是允许的,意思是指Ms模块不能满足边界约束的条件6。(2)针对得到的初始布局,在对B*-tree的操作过程中对目标函数进行优化,同时保证优化过程中的布图都是允许的。为了达到SoC约束布局的最终优化目标,我们又将B、tree的基本操作分为两种(1)只针对面积优化进行的B*-tree操作。(2)只针对偏离度P优化进行的B*-tree操作。分析B^tree的结构特点以及父子节点的关系,在上述只针对面积优化进行的B、tree操作中我们通过旋转、插入和删除操作来实现面积最优化;而只针对偏离度P优化进行的B^tree操作中,我们根据不同的情况采用了不同的插入操作策略(1)当Ms模块偏向芯片左边界时,如果Ms是左子,则在B、tree中插入一个节点作为它的父节点;如果Ms是右子,则在B^treerightmost分支6中找到这样的一个模块,该模块需满足位于Ms的左侧且x坐标与Ms模块最为接近,然后插入一个节点作为该模块的左子。(2)当Ms模块偏向芯片右边界时,插入一个节点作为Ms的左子。(3)当Ms模块偏向芯片下边界时,如果Ms是右子,则在B、tree中插入一个节点作为它的父节点;如果Ms是左子,则在B^treeleftmost分支中找到这样的一个模块,该模块需满足位于Ms的上方且y坐标与Ms模块最为接近,然后插入一个节点作为该模块的右子。(4)当Ms模块偏向芯片上边界时,插入一个节点作为Ms的右子。相对面积优化操作而言,偏离度P优化操作中插入的目标节点不再是随机的,而是有一个针对性的选择,因此实现起来复杂了很多。但是这种目标性的选择多数是条件选择和判断,并不涉及复杂运算,因此在整体布局中增加的时间很少(见实验结果)。在保证允许布图的情况下,优化面积线长的同时保证了SoC约束(P趋近于零)的实现。针对表示和操作限制可能导致搜索空间不完整的考虑,我们定义了新的操作算法,确保任何两种允许布局之间都可以经过少的基本操作实现相互转化,因此并不会减少允许布局的搜索空间,布局结果也表明该方法较好的实现了约束布局。算法的伪代码如下<formula>formulaseeoriginaldocumentpage10</formula>在上述算法中,面积优化操作与偏离度P优化操作以一定的概率来判决执行,且该概率与偏离度P有关,当P越大时,执行偏离度P优化操作的概率也越大。也即,当Ms模块离芯片中心的距离越远时,对B、tree的操作是为了通过改变Ms的坐标将其放在芯片的中央,从而实现SoC的约束。当P逐渐变小时,面积优化操作的概率增大,此时的操作目标主要是为面积优化。本发明具体布局实施方法和步骤如下-(1)读取布局标准测试用例,存储各个模块的面积、长宽、类型、连线和约束信息。(2)根据SoC约束的要求构造允许初始布局,其方法为将除去标准单元模块Ms以外的其它宏模块随机构成一个B、tree,然后在标准单元模块不能满足边界条件的基础上将其作为一个节点任意插入在B、tree中;(3)按照本文提出的实现SoC约束的基本操作,采用模拟退火算法对面积全局因素进行优化8,在优化过程中各模块长宽比不变。其中模拟退火中,起始退火温度为0.9,中止退火温度为0.6,每个温度迭代搜索次数为18(^N(其中N为测试用例模块数目),当搜索不再收敛或己经达到终止温度时停止进一步搜索;(4)输出相关信息并记录结果,得到最终优化布局结果。试验结果试验中本发明采用国际上布局算法中通用的MCNC的ami33和ami49作为测试用例。考虑到ami33和aim49中只是提供了宏模块的面积和连线信息,为了方便检验算法的可行性,我们挑选了其中较大的模块来代替标准单元模块,由于这种简化可能造成和原有的连线信息并不一致,因而在本文的试验中线网信息被忽略,而只考虑面积和SoC约束的实现。但这并不影响我们考虑该实现布局方法的有效性验证。试验中我们将aim33中的第四个模块和aim49中的第十四个模块作为标准单元模块来进行验证。本发明布局算法是通过<:++编程实现的,试验条件是3.4GHzCore4IntelPC,内存1G。试验结果如表一、表二、附图4和附图5所示,可以清楚看到,本发明提出的SoC约束的布局,与传统在模拟退火中增加函数惩罚项的做法相比更为快速有效,不仅节省了运算时间而且提高了面积利用率。表一Ami49的测试结果比较<formula>formulaseeoriginaldocumentpage12</formula>表二Ami33的测试结果比较<table>tableseeoriginaldocumentpage12</column></row><table>权利要求1.一种SoC布局的平面布图规划方法,其特征在于它采取将芯片中所有的标准单元抽象成宏模块Ms后的布局优化基本操作算法,其步骤是a.随机构造一个允许的初始布局结构;b.针对得到的初始布局,在对B*-tree的基本操作过程中对目标函数进行优化,同时保证优化过程中的布图都是允许的。2.如权利要求l所述的SoC布局的平面布图规划方法,其特征在于所述对B^tree的基本操作中的插入分为两种a.只针对偏离度P优化进行的B^tree插入操作;b.只针对面积优化进行的B^tree插入操作。3.如权利要求2所述的SoC布局的平面布图规划方法,其特征在于所述只针对偏离度P优化进行的B*-tree插入操作,具有下列插入策略a.当标准单元模块Ms偏向芯片左边界时,如果Ms是左子,则在B、tree中插入一个节点作为它的父节点;如果Ms是右子,则在B*-treerightmost分支中找到这样的一个模块,该模块需满足位于Ms的左侧且x坐标与Ms模块最为接近,然后插入一个节点作为该模块的左子;b.当标准单元模块Ms偏向芯片右边界时,插入一个节点作为Ms的左子;c.当标准单元模块Ms偏向芯片下边界时,如果Ms是右子,则在B^tree中插入一个节点作为它的父节点;如果Ms是左子,则在B气treeleftmost分支中找到这样的一个模块,该模块需满足位于Ms的上方且y坐标与Ms模块最为接近,然后插入一个节点作为该模块的右子;d.当标准单元模块Ms偏向芯片上边界时,插入一个节点作为Ms的右子。全文摘要本发明基于B<sup>*</sup>-tree的表示法和模拟退火算法提出了SoC布局的平面布图规划方法,本方法用于实现SoC平面布局中不同种类模块混合布局的约束,针对实际布局中的连接关系、功耗满足、电源网络构建等要求而实现的SoC混合布局约束要求;本发明提出的SoC约束的布局,与传统在模拟退火中增加函数惩罚项的做法相比更为快速有效,不仅节省了运算时间而且提高了面积利用率。文档编号G06F17/50GK101369294SQ20081020130公开日2009年2月18日申请日期2008年10月16日优先权日2008年10月16日发明者周晓方,王琳凯,陈珊珊申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1