Asic时钟版图规划方法和结构的制作方法

文档序号:6437122阅读:258来源:国知局
专利名称:Asic时钟版图规划方法和结构的制作方法
技术领域
本发明的领域是设计和构造集成电路中的时钟树。
背景技术
在集成电路领域中,一种恒定的需要是分配时钟信号。随着时钟速度的增加,时钟脉冲相位差(skew)的容限更紧密。
在售的大量商用产品参与设计过程。Cadence提供一种程序,时钟树综合(TM),其产生具有缓冲器的尺寸和/或版图规划(floor plan)的复杂性的限制的树,该树可以适应该限制。Synopsis提供一种程序,通常是类似的时钟树编译器(TM)。
IBM具有一种程序,使用美国专利6204713中描述的方法,其可以处理大的缓冲器,并允许树具有较少的级。
产生时钟树的问题通常可以描述为达到延迟、功耗以及适应使时钟树的设计停滞的电路块的能力之间的平衡。时钟链中的短延迟有助于控制脉冲相位差。低功率一直是合乎需要的,以及重新使用预设计的电路块(嵌入式处理器,RAM,I/O等)而不需要重新布局以适应时钟的能力,大大地节省了研制ASIC的成本。

发明内容
本发明涉及一种设计时钟树的方法,该方法适应现有的布局同时选择时钟缓冲器尺寸和方向以匹配版图规划。
由此,本发明提供了一种用于设计集成电路中的时钟树的方法和相应的制品,包括
收集主要列表中的一组汇点(sink)位置3和一组阻塞(blocked)区域47;(a)选择临时插入点(TIP)4,5;(b)将距TIP最远的第一级处的汇点41放入方框(bin)40中,该方框包括汇点43的第一子集,并从主要列表除去第一子集;(c)将第一级结构化(structured)时钟缓冲器(SCB)42分配给所述方框;对于缓冲器的第一级以及随后的级中的剩余汇点,重复上面的步骤(a),(b)和(c),直到达到根级。
通过在约束条件(constraint)46内移动SCB 45位置以在行和列中集中SCB,来增加所述树的对称性;将根级TIP 610连接到较低的级;以及将时钟信号的源(S)连接到根级TIP。


图1列出了本发明的优选实施例中的步骤。
图2示出了汇点位置的样品组。
图3示出了分组由缓冲器服务的方框中的汇点的例子。
图4和5示出了一组缓冲器的初始和最终位置。
图6示出了完整的树。
具体实施例方式
本发明旨在用于集成电路,特别是ASIC的设计,其中短期设计过程是保持成本降低的重要部分。在设计大规模(30,000,000+门)ASIC的过程中,围绕形成大多数ASIC的预设计模块布线(routing)时钟树的过程消耗大量的时间和成本。
由本发明的应用可以产生的优点如下-自动或人工选择开始分支过程的参考点(或临时插入点(TIP));
-缓冲器的范围和高宽比的灵活性;-自顶向下或自底向上方法的一种或两种的选择;-提供具有不同尺寸的缓冲器的树;-允许用户介入设计。
根据本发明的优选实施例的步骤顺序是收集时钟汇点位置和阻塞(blockage)尺寸;拾取用于最低(叶片(leaf))级的TIP;分组方框中的汇点,从距TIP最远处开始,并在每个方框中放置第一级缓冲器;拾取用于第一级的TIP;分组方框中的第一级缓冲器,从距TIP最远处开始,并在每个方框中放置第二级缓冲器;重复TIP选择和装框(binning)步骤,直到达到根级;通过在约束条件内移动缓冲器以在行和列中集中缓冲器,增加对称性;从源到TIP添加缓冲器;以及将树插入网表中。
图2说明根据本发明处理集成电路的简化例子。在图的中心,实心矩形1表示TIP。空心矩形3表示时钟汇点,其是用于树和逻辑之间的接口(interface)的普通术语。为了介绍的清楚省略了围绕接口点的逻辑。左侧的菱形表示时钟信号的源。大写C,即4表示通过取所有汇点的端点坐标之间的平均值计算的点,例如,x=(xmax+xmin)/2和y=(ymax+ymin)/2。大写C’,即5表示通过取所有汇点坐标的平均值计算的重心。这些汇点将被分组,并被分配给分布时钟信号的缓冲器。
根据本发明的缓冲器,称为结构化时钟缓冲器(SCB)是由沿轴的N个平行核心构成的电路,N大于或等于一。这些缓冲器可以是反相或非反相的。核心的输出被捆绑在一起。平衡布线用于布线结构化时钟缓冲器的电路。作为参考而引入的美国专利6204713解释了这种缓冲器的设计和结构。
本发明的有利特点是缓冲器不限于沿一个轴(水平或垂直)布局,而是可以提供沿两个轴的布局,以便允许缓冲器适合于有限的空间。如所属领域的技术人员注意到通常使晶体管的轴与坐标方向的一个方向排成一行来进行电路布局。
设计适合于希望是水平的布局的垂直缓冲器是非常重要的,并要求垂直SCB中的晶体管必须处于与水平SCB相同的方向中。此外,就两个方向来说平衡布线必要的。垂直或水平SCB都需要电源环,以考虑垂直或水平电源分布中的不同。这对于垂直或水平SCB可能需要附加布线级,以便适合于附加的布线。修改布局,以便每个水平SCB具有与相应的垂直SCB相匹配的延迟和输出驱动能力。
通过计算汇点的中心(C)、汇点的重心(C′)以及在C和C′之间的一组中间点处的延迟、功率和放置能力(placability),可以自动地计算TIP。选择规则被总结为如果汇点的中心比重心更靠近源,那么将TIP放置在中心处。如果在中心处具有块(block)(不能重新绘制的模块),那么将TIP放置在不同的位置,即重心或在中心和重心之间的一个中间点。
如果该位置被阻塞,那么放置能力算法产生的结果为零。通过对于SCB足够大并最靠近希望放置点的未阻塞位置,产生最好得分。得分随距希望点的距离增加而减小,反映附加距离的不受欢迎性。
通过计算得分可以确定TIP点,得分是S1W1+S2W2+S3W3的和,其中根据设计者希望强调的方面,S1,S2和S3是0或1,W1=K1*延迟,W2=k2*功率以及W3=K3*放置能力,其中K1凭经验确定。
一旦TIP被放置,那么时钟树的最低级的汇点被分组。矩形(方框)被放置,刚好包括距TIP最远的汇点。基于汇点密度的经验,凭经验设置方框的初始尺寸。方框可以向上或向下调整,以趋近希望的尺寸。说明性地,方框保持约20个。实际的数目由SCB的驱动能力和到达汇点的布线延迟决定。
类似地,凭经验设置树中的级数,例如三级。此外,实际的数目由SCB的驱动能力和到达汇点的布线延迟决定。对于更大的树可以增加更多的级。
缓冲器被放置在矩形的中心,其可以在x和/或y方向轻微地移动,以适应汇点的最大数目。缓冲器的尺寸设为能够驱动方框中的汇点。本发明的有利特点是缓冲器的尺寸可以从一组预设计的缓冲器选择,以便驱动处于方框中的汇点的数目,而不是缩短方框的尺寸,以适应缓冲器。从汇点的主要列表删除方框中包括的汇点,以及放置下一个方框。
图3是说明其中设置一对模块45和47,从而水平缓冲器将不适合的情况。根据本发明,缓冲器朝着TIP移动,以试图发现适合并仍然允许缓冲器驱动汇点的位置。如果这种位置未被发现,那么放置垂直缓冲器。如果垂直缓冲器将不适合,那么程序在初始位置放置水平缓冲器,即使它重叠于固定的块,而对用户打印警告信息以人工地校正它。这种情况用缓冲器42来说明。该顺序是程序将排除水平中的可能性,然后排除垂直中的可能性,以及如果没有可能的位置,那么警告用户。
现在参考图3,示出了三个SCB区域的一组,由分别具有汇点子集23、33和43并在SCB 22、32和42周围设置的框(box)20、30和40表示。框的尺寸表示在由电路设计者设置的脉冲相位差等的限制内可以通过框中心的SCB传送时钟信号的距离。说明性地,框被移动以具有接近汇点的端点位置的边界,即框20被放置,以便距TIP最远的汇点21在其边缘;对于框30和汇点31以及框40和汇点41是类似的。
根据本发明,将设置SCB的尺寸以在其范围内驱动汇点。本发明的有利特征是缓冲器的尺寸是灵活的。
一旦第一方框被设置,那么在距TIP最远的主要列表中剩余的汇点被设置并设置围绕该汇点的方框。重复前述工序,直到所有汇点被放置在方框中。这覆盖了时钟树的叶片级。
使用第一和第二级缓冲器代替叶片级汇点重复装框工序,直到达到树的根级。
一旦汇点被分配给SCB,那么可以执行增加树的对称性的工序。图4示出了布局的简化例子,其中因为一种原因或其它原因将三个SCB 142固定并在该步骤中不移动。固定的SCB的例子可以是用户预放置和分配一个SCB给某些高速关键电路(即,高速接口)。另一情况可以是部分芯片已经满足时序要求以及用户不希望再访问得到那种结果所作的妥协。
块47表示不会被移动的布局模块。时钟树必须围绕它们布线。其它SCB,即标记45可以被移动。在该例子中,有10×10栅格,规则是可以仅仅通过一个步骤垂直地或水平地移动SCB。由箭头表示可能的移动。
移动的原理在于将SCB集中在相同的行或列上,由此提供更紧凑的分布网络并减小脉冲相位差和延迟时间(latency)。
下一工序是为每一行和列计算在所述行或列中的SCB的数目,以及可以包括在规则内的数目。侧部和底部上的数目表示在所述行或列中的SCB的实际数目和可能数目。
图5示出了进行允许的移动之后SCB的最终结构。移动的效果是集中四行中的水平分布,垂直分布被更广泛地展开。
图6示出了连接来自图5的SCB的结果。用数字630表示叶片级缓冲器。用数字620表示第二级缓冲器(位于中间,距底部和顶部约三分之一)。用数字610表示根级缓冲器,位于中心。不需要所述根的位置在中心或接近中心,尽管它有助于对称性和紧凑布局。在该图中未示出源的位置。它将位于固定位置和从它至SCB 610形成的路径上。
在时钟树的每一级中使用的临时插入点着眼于其汇点电路(树的底部)和用于那些汇点的源电路(树的顶部)。
尽管已经通过单个优选实施例描述了本发明,但是本领域的技术人员将认识到,在下列权利要求的精神和范围内,本发明可以以各种方式实施。
工业实用性本发明可应用于集成电子电路的设计和制造。
权利要求
1.一种设计集成电路中的时钟树的方法,包括以下步骤收集主要列表中的一组汇点位置(3)和一组阻塞区域(47);(a)选择临时插入点(TIP)(4,5);(b)将距所述TIP最远的第一级处的所述汇点(41)放入方框(40)中,所述方框包括汇点(43)的第一子集,并从所述主要列表除去所述第一子集;(c)将第一级结构化时钟缓冲器(SCB)(42)分配给所述方框;对于缓冲器的第一级以及随后的级中的剩余汇点,重复上面的步骤(a),(b)和(c),直到达到根级;通过在约束条件(46)内移动SCB(45)位置以在行和列中集中SCB,来增加所述树的对称性;将所述根级TIP(610)连接到更低的级;以及将时钟信号的源(S)连接到所述根级TIP。
2.根据权利要求1的方法,其中选择TIP(4,5)的所述步骤(a)包括计算汇点的中心(4)和汇点的重心(5),以及根据定位可用空间的算法,自动将所述TIP放置在所述中心、重心或所述中心和重心之间的中间点之一。
3.根据权利要求2的方法,其中选择TIP(4,5)的所述步骤(a)包括计算汇点的中心(4)和汇点的重心(5),以及根据有选择地加权延迟、功耗和放置能力中的一种或多种的定位算法,自动将所述TIP放置在所述中心、重心或所述中心和重心之间的中间点之一。
4.根据权利要求1的方法,其中将第一级SCB(42)分配给所述方框的所述步骤(c)包括这样的步骤试图放置水平SCB(42),然后当水平SCB不适合在中心位置时,试图在所述中心位置中放置垂直SCB(42)。
5.根据权利要求4的方法,其中所述垂直SCB包括一组电路元件,该组电路元件被布局为基本上具有与具有水平布局的相应SCB相同的延迟。
6.根据权利要求1的方法,其中增加对称性的所述步骤包括这样的步骤为一组列和行的每一个计算所述树的第n级中的SCB(45)的对称性的潜在改进并移动SCB(45)以增加对称性。
7.根据权利要求6的方法,其中在增加对称性的所述步骤中从所述计算排除某些指定的SCB(142),由此在所述计算中仅仅包括SCB的子集(45)。
8.根据权利要求6的方法,其中允许增加对称性(46)的移动量限于预置量。
9.根据权利要求1的方法,其中分配给汇点子集的所述SCB(42)选自容量变化的一组预设SCB。
10.一种计算机可读形式的制品,该制品将为执行根据权利要求1至9的任意一项的方法编码一组指令。
全文摘要
一种设计集成电路中的时钟树的方法,包括以下步骤形成所有时钟汇点(110)的列表;设置临时参考插入点(TIP)(120);在一组级(140)中与结构化时钟缓冲器(SCB)一起分组汇点;以及移动SCB,以增加所述树(150)的对称性。SCB可以是几种尺寸,以及可以被水平(42)或垂直(45)放置,并可以在限制(46)内被移动,以允许程序计算完整的树。
文档编号G06F1/04GK1732470SQ02829983
公开日2006年2月8日 申请日期2002年12月17日 优先权日2002年12月17日
发明者G·阿尔坦纳瑞, K·M·卡里戈, M·R·拉舍, D·R·梅纳德 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1