生成集成电子电路的布图的方法和系统的制作方法

文档序号:6614296阅读:127来源:国知局
专利名称:生成集成电子电路的布图的方法和系统的制作方法
技术领域
本发明涉及制造计算机芯片,特别是涉及芯片设计优化,并且涉及一 种开发具有多个信号源锁存器和逻辑的电子芯片电路布图的方法,其中由 合成步骤限定初始逻辑,并且在处理所述合成逻辑的芯片布图生成步骤中, 基于在该方法中存储用于可获得数据库中的每个汇点的时序数据,运行时 序驱动布局,用于将克隆锁存器布局于所述电路布图上。
背景技术
在EP 1 557 75 Al中总体介绍了自动化芯片设计优化。当信号源锁存 器驱动多个汇点时,在要求的循环时间内其中一些无法到达。在这种情况 下,将中继器或者"流水线锁存器"插入相应的信号路径。
EP 1 557 75 Al中示出了在对芯片布线后,即当存在时序数据和布线 寄生效应的估计时,将流水线锁存器插入芯片布图的方法。但是,迄今为 止,该方法还没有公开对在单个循环内信号应当到达的数据汇点位置的优 化。
图1旨在示出在单个循环中发生的该现有技术源锁存器IO将其信号 供应给大约20 000个以密集的印刷点示出的汇点,从而引起由这些汇点形 成的地图。因为其示出了,大部分汇点,例如芯片上的区域13和区域14, 与源锁存器物理上相距非常远,所以本领域技术人员将从图l理解本发明 的初始问题。该长距离对电路布图施加了显著的时间限制。
在Koehl, Schietke: "In-place Timing Optimization" , Proceedings of SAME, Sophia Antipolis, 2000中对上述现有技术作了更具体的介绍。 在该现有技术文献中,给出了解释实现前述合成步骤和布图生成之间的有
效耦合的困难的背景信息。合成通常使用连线负载模型,其描述VLSI设 计(超大规4莫集成电路)最终布线的平均电容和电阻。该电容和电阻的估 计值取决于网中的引脚数、该网所属的逻辑功能区、或其它更复杂的标准。 最终的布线可与这些估计大大不同,因此在合成期间生成的逻辑结构可以 是最终布线的次优化。统计表明大多数负载比平均值小,但是存在电容是 合成中所使用平均值的数倍的几种情况。为改进该设计,在现有技术中进 行所谓的驱动强度优化,包括对时序分析工具后端注释后布线电容和电阻, 其为每个所分析电路选择适当的驱动强度。然后,进行下一步"中继器插 入",其需要生成中继器的布局,以在中继器插入后生成可靠的布线估计。 在这里还将这样的中继器表示为"克隆锁存器,,。
为实现合成和布图的紧密集成,该现有技术文献中讨论了两个可能的 选捧第一,后端注释布局以合成,第二,在布图框架中进行时序优化。
尽管该现有技术文献已经提出了提供合成步骤和布图步骤之间有效耦 合的策略的通用步骤,但是其没有具体讨论非常宽的数据路径问题因为 常常利用高级半导体技术中可获得的复杂性而通过加宽该数据路径提高输 出,所以这是所关心的关键问题。但是,加宽的数据路径导致较高的逻辑 扇出,即,由单个锁存器驱动的逻辑锥可在数千的汇点处结束。上下文中 的汇点将理解为作为时序测试的一部分并因此造成所谓的松弛的引脚。
在现有技术中将避免时序沖突的时间量称为"松弛"。例如,对于设 置约束,如果信号必须在不超过8ns内到达单元输入端并且确定为在5ns 到达,则松驰量为3ns。松驰量为0意味着刚刚可以能满足该约束。负松 驰量表示时序沖突。
典型的汇点为锁存器和时钟选通电路的数据输入端。这里所使用的术 语"锁存器"指任何类型的数据存储电路。其它数据存储电路例如为寄存 器和触发器。前述设计情况的特征在于,高逻辑扇出使得具有主动时钟频 率的时序收敛几乎不可能。
在上述现有技术文献的第一附图中也示出了这一点,其中模拟网的电 容容易为成为平均网电容的六倍或更多倍。当必须使用要求过高的时钟速
率时,不允许这样的偏差。
在现有技术中,通常意识到了该困难,并且试图通过逐个实例分析和 在逻辑设计中复制源锁存器以减小该锁存器的每个复制的逻辑锥的尺寸, 而解决该困难。换言之,"克隆,,该源锁存器并安装为增加网下游,以保 持该松驰量可预见并处于预定界限内。
但是,至少存在两个缺陷第一,必须手工选择、分析和单独处理每 种情况,以将克隆锁存器放置在芯片电路上的合适位置。第二,该现有技 术方法不能物理布局汇点。因此,非常可能将每个克隆锁存器的汇点相互 放置得非常远。因此,直到现在也未能实现合成和布图之间的有效耦合。

发明内容
因此本发明的目标在于提供一种生成集成电子电路布图的改进方法, 和相应的系统以及计算机程序产品,其实现现代集成电子电路设计中阶梯 逻辑合成和布图生成之间更紧密的耦合。
本发明概述和优点
通过所附独立权利要求中所述的特征实现本发明的目标。
简言之,本发明公开了一种克隆锁存器并将汇点分配给每个克隆锁存
器的方法和相应的系统,其已知汇点的物理位置以及每个汇点的时序临界性。
优选在芯片"^殳计通常使用的工具链中现有的工具内实现本发明。因为 该方法基于预先存在的逻辑电路方案和尚未获得的逻辑的物理布图,所以 优选的特征为在逻辑优化工具中添加。但是还可在具有芯片设计数据库数 据库入口的孤立优化工具中实施。
本发明方法优选控制流程的粗略图包括如下的步骤第一步为执行初 始逻辑的时序驱动布局,并运行现有技术时序优化算法(参见上述"Koehl, Schietke"的现有技术)。第二步骤在于找出在其输出引脚具有负松驰量 的锁存器。然后,第三步骤为找出一组受该锁存器驱动的汇点。然后,第 四步骤为根据时序和布局信息聚集汇点组。这是本发明的中心问题。
优选地,聚集汇点的步骤可如下进行首先,通过将所有具有正或零 松驰量的汇点分配给一个群集。第二,通过如参考图4所示出并在后文所 述聚集即布置剩下的汇点。重要的是,以达到特定最大半径的Manhattan (或者L1)度量中最小数量的圏覆盖负松驰量汇点。
第五步为如参考图3所示出并在后文所述克隆源锁存器和逻辑并连接 至各个锁存器群集。然后,下一步为重复时序驱动布局,并将控制送回第 二步骤,从而以具有负松驰量的下一个源锁存器继续进行。该循环继续进 行,直到处理所有具有负松驰量的锁存器。
在相应的从属权利要求中列出了其它有利的设置和实施例。现在参考 所附权利要求。
根据本发明最宽的方面,本发明公开了一种开发具有多个锁存器和逻 辑的集成电子电路的布图的方法,其中,源锁存器向相应的多个汇点提供 信号,其中由合成步骤限定初始逻辑,并且其中在后续芯片布图生成过程 中,进行布局以将和单个源锁存器相关的克隆锁存器布局在所述电路布图 上,其特征在于以下步骤
a) 预先识别包括至少一个相关的具有负 ^驰量的汇点的锁存器,即, 所述锁存器在其输出端具有负松弛量;
b) 找出由所述识别的锁存器的相应一个驱动的所有汇点,所述汇点构 成多个N汇点,其中由启发式算法预先确定N;
c) 根据从芯片设计数据库读取的时序和布局信息聚集所述汇点,获得 多个汇点群集,其中群集仅仅包括所述多个N汇点的预定部分;
d) 产生与所述预先识别的源锁存器的相应一个相关的克隆锁存器;以

e) 将所述克隆锁存器连接至所述汇点群集中的相应一个,从而获得改 进的芯片布图。
因此,克隆锁存器的布局为时序驱动,并基于为每个汇点存储于在该 方法中可得到的数据库中的时序数据。
更有利地,聚集汇点的步骤包括限定邻近分区,优选为布图的菱形的
矩形,其中对内部的汇点计数,其中分区限于仅仅包括和N相关的预定部 分的汇点。为更加清楚起见应当加上一点,菱形在这里意味着相对于直角 坐标系的正交轴限定,该坐标系限定布线方向,从而菱形的边沿与正交轴 的任意一个成45°方向。
菱形区域具有如下优点从区域中心至由Ll (或者Manhattan)距离 中的区域覆盖的任何点的最大距离最小。假定该延迟受到从置于覆盖N汇 点的任意形状区域的中心的锁存器的最大距离的显著影响,则菱形区域产 生最小延迟并因而产生最大松驰量。
另外,优选地本发明方法包括下述步骤
a) 在包围所有用于限定全部N汇点的所有汇点的最小斜矩形的边上 限定预定的起始位置;
b) 在所述起始位置限定菱形分区,以初始包括小的、初始数量的汇点;
c) 增加所述分区的尺寸,同时计数其包括的汇点,直到该尺寸足够大 以包括所述预定部分的汇点;
d) 为该分区分配所述覆盖锁存器;
e) 从该组汇点去除所述锁存器;以及
f) 从与前一个相同或不同的起始位置开始重复前述步骤。
该方法的目标为产生包括所有汇点中的部分的分区。通过产生菱形区 域,可控制下述时序优化,从而使从锁存器至其任何汇点的延迟尽量减小。
另外,优选,本发明方法包括基于改进的芯片布图重复时序驱动布局 克隆中继器锁存器的步骤。该步骤的目的在于找出初始锁存器的最佳位置 以及其新产生的克隆,并通过减小延迟增加其相应汇点的松驰量(参见上 述"Koehl, Schietke"的现有技术)。
另外,优选,本发明方法包括基于改进的芯片布图重复合成步骤的步 骤。尽管Boolean函数对于初始系统相同,但是逻辑锥的边界条件(例如 扇入、扇处)不同,以允许通过重新合成在初始开始的组合逻辑锥和新产 生锁存器,从而进一步增加松弛量。


本发明以实例示出,并且本发明不限于附图的形状,其中 图1是芯片设计工具的屏幕输出,示出了电子电路的部分的物理布图, 其中示出了一个源锁存器和与该源锁存器相关的大约20 000汇点的聚集; 图2是根据本发明优选实施例的方法中的控制流程的基本步骤的示意
图3是根据本发明的锁存器克隆原理的示意图4是根据图1的视图,包括菱形矩形以覆盖源锁存器的克隆锁存器;
图5是才艮据图1的^L图,示出了根据本发明聚集克隆源锁存器,并示 出了产生包围锁存器的一些预定部分的边界盒;
图6是"菱形"的示意图,即相对于Cartesian坐标系统(固定至集 成电路布图)的斜矩形及其注释;以及
图7和8为根据图1的视图,示出了根据本发明方法的实例方法,以 及如何以连续步骤产生菱形矩形。
具体实施例方式
可将本发明的优选实施例应用至芯片布图工具或者时序优化工具。 另外,需要由逻辑电路的形式验证工具验证施加于芯片设计的变化, 侈ij^口吵口 IBM, Journal of Research and Development, Vol. 39, No. 1/2, January, March 1995中所述的"Verity"所述。特别是,必须不改变芯片 的Boolean函数。
为解决对本发明方法所进行的变化的正确性的形式验证问题,除了介 绍章节以外给出了下面的注释数字系统包括组合的逻辑和存储元件,参 见图3的上面部分。存储元件分为组合的逻辑和锁存器点。锁存器点具有 一个数据输入端和一个时钟输入端和一个输出端。任何存储元件可由一个 或多个锁存器点和组合逻辑表示。边沿触发触发器例如通常包括两个锁存 器点。锁存器点认为是用于Boolean验证的黑盒。任何电路都可被说明为 黑盒。黑盒具有唯一的标识符和唯一的输入和输出引脚。所有的初始输入和所有的黑盒输出都认为是独立Boolean变量(Xl,..., xm)。所有的初始输出和所有的黑盒输入都具有取决于初始输入和黑盒输 出的完全组合函数f: fi(Xl,…,xm) , i为作为第i个p初始输出或者黑 盒输入的组l,…,p的单元。
Boolean ^Hi比较两个数字系统。以Xl,…,Xm为独立变量,fi为系 统1的Boolean函数,而y"…,yn为独立变量,gj为系统2的Boolean 函数。系统l具有p个初始输出和黑盒输入,系统2具有q个初始输出和 黑盒输入。
标准的Boolean验证试图证明
m = n (1)
p = q (2)
xk = yk (对于每个k) (3)
fi = &(对于每个i) (4)
前三个方程描述了称为"对应"的过程。方程U)描述了 "Boolean 比较,,。
特别参考本发明,因为由于引入新黑盒输入和输出而m^n且p-q, 所以克隆存储元件对Boolean验证造成了挑战。假定存在初始系统一和包 括一个具有一个输入端和一个输出端的黑盒的第二系统。通过使初始黑盒 与其克隆等同,则可建立对应。初始黑盒输出的独立变量在系统1中称为 xk,在系统2中称为yk。黑盒输入函数称为fj和gi。克隆输出变量称为y" 而克隆输入函数称为gj。
附加的独立变量^实际上不独立,而等于初始黑盒输出的独立变量, 系统2中的yk和系统1中的xk: yi = yk = xk。然后Boolean比较必须试图 证明gj = & = fi。该技术可用于具有多个输入端和输出端的多个克隆黑盒。
对于Boolean验证,采用上述软件"Verity"克隆的电路仅仅需要在 Verity安装中的手动对应文件(m2—手动—对应)内说明。该文件说明系统 1中的一个电路与系统2中的一个或多个电路等同。语法实例为
盒锁存器A(锁存器A锁存器A一克隆1锁存器A—克隆2}
然后,现有技术工具"Verity"自动进行对应和Boolean比较。根据 本发明的锁存器克隆方法对正确和错误锁存器克隆都验证该行为。
总体参考附图并且现在特别参考附图2,将更详细描述本发明方法的 优选实施例。在步骤210,在逻辑合成开发的电路后,以存储在相关数据 库中连线表的形式初始逻辑描述芯片电路的硬件逻辑,例如在K. Morell, D.J. Hathaway, "IBM,s Integrated Data Model", IEE/DATC Electronic Design Processes Workshop, 4月26-28, 2000, Monterey, CA描述的IBM 集成数据模型。该数据模型描述了用于实施的逻辑电路、该电路间的逻辑 连接、每个电路的物理位置、要求的循环时间和其它时序要求。基于时序 要求,为每次时序测试计算松驰量(即要求的负实际到达时间,参见上述 解释),并将其传回至信号的发射电路。
在下一步220,找出所有在输出引脚具有负松驰量的锁存器。更详细 地,这意味着识别所有向其汇点提^H言号的锁存器,其中至少存在一个汇 点,其又具有负松驰量,即在该汇点上来自源锁存器的信号到达得非常晚 以适应预定的时序要求。应当注意,尽管在由源锁存器供应的某汇点上出 现实际负松驰量,但是根据每个设计工具,源锁存器本身表示为具有负松 驰量。不再处理剩下的具有正松驰量的汇点。
在下一步230,识别所有由具有负松驰量该锁存器驱动的汇点。这通 过读取数据库和选择所有与具有上述负松驰量的锁存器相关的负松驰量汇 点以对话形式实现。
然后在下一步240,根据在设计工具数据库中存在的时序和布局信息 聚集在上述步骤230中找出的具有负々>驰量的汇点。因为该步骤是本发明 的必要步骤,所以在图2右侧如下所述更详细地描述了该聚集步骤
1. 步骤241:确定N, M:假定给出了由单个锁存器驱动的最大汇点 数的数量N,而假定连至给定源锁存器的汇点数M为20, 000。 N为 用户参数,并且取决于时钟频率,对于250MHz设计,N-500是合 适的值。
2. 步骤242:参见附图4和5优选采用斜矩形也称作"菱形"矩形描
述Manhattan距离内的最小距离"圏"。另外参见图6,由四个描述 右上(ur)、左上(ul)、左下(11)和右下(lr)边的数给出每个斜 矩形形状。
3. 步骤243:然后选择覆盖所有锁存器N的最小斜矩形60。
图5示出了该情况,这里为简单和更加清楚起见N-10.000,在该情 况中,仅仅有两个(20.000除以10.000)待限定的不同路线。
这优选如下进行对所有20.000个汇点锁存器Li,从数据库选择其x 和y坐标。
然后,步骤244:对每个汇点由ul、 11、 ur、 lr计算菱形,其中 ur = max(Xi+yJ , ll=min{xi+yi},
ul-max^i-Xi}, lr-miiHyi-Xi},这里U, yi)为锁存器Lj的坐标(参 见图6)。
4. 步骤245:下一步构建覆盖该组锁存器的更小斜矩形并且精确地为 每个锁存器以下面方法分配一个(通常更小)斜矩形
a. 每个锁存器都处于其所分配的斜矩形内。
b. 分配给每个斜矩形的锁存器数低于N。 这优选如下实现
I. 该算法在一个角开始步骤2451,例如在步骤3所产生的较大斜 矩形的东角开始,并且在步骤2452增加较小斜矩形的尺寸,直 到其覆盖尽可能近似但不超过N个的锁存器,还参见附图7。
II. 步骤2453:然后程序控制去除这些锁存器并到达步骤242,构建 新的覆盖所有剩余锁存器的斜矩形80。这在图8中示出。
III. 如果新斜矩形不包括多于N的锁存器,则该过程结束。 通过进行该过程,找出了菱形矩形52、 54,其通常具有不同即更小的
尺寸以及不同即相等或者更小的边长,并覆盖图4中整个区域60的所有汇 点。
图7示出了第一分区的构造。图8示出了所有(在该特定情况下)的 两个分区。注意,每个分区都比初始区域小。根据任何实际的情况,优选通过选择相对于前一个起始点旋转的下一 个起始点改变起始角。
可以以硬件、软件或者硬件和软件组合实现本发明。可以以一个计算
机系统中的集中模式或者不同元件分布于数个互联计算机系统的M模式
实现根据本发明的芯片布图或者时序优化工具。任何类型的计算机系统或
者其它用于实现这里所述方法的其它装置都适合。典型的硬件和软件的组
合可以是具有计算机程序的通用计算机系统,当安装并执行时该程序控制 计算机程序从而实现这里所述的方法。
本发明还可以实施为计算机程序产品,其包括所有可实施这里所述方 法的特征,并且当安装在计算机系统中时其可实施该方法。
本文中的计算机程序装置或者计算机程序意味着一组指令的任何语言 表达、代码或注释,该组指令旨在使具有信息处理能力的系统直接或者在 下面两个步骤之一或者两者之后实现特别功能,
a) 转换为另一种语言、代码或者注释;
b) 以不同材料形式再现。
权利要求
1.一种生成具有多个锁存器和逻辑的集成电子电路的布图的方法,其中在所述多个锁存器和逻辑中,源锁存器(10)向相应的多个汇点(11)提供信号,其中由合成步骤限定初始逻辑,并且其中在后续布图(8)生成过程中,进行布局以将和单个源锁存器(10)相关的克隆锁存器布局在所述布图上,其特征在于以下步骤a)预先识别包括至少一个相关的具有负松驰量的汇点的锁存器(220);b)找出由所述识别的锁存器的相应一个驱动的所有汇点(230),所述汇点构成多个N汇点,其中由启发式算法预先确定N;c)根据从所述数据库读取的时序和布局信息聚集所述汇点(240),获得多个汇点群集(12,13),其中群集仅仅包括所述多个N汇点的预定部分;d)产生与所述预先识别的源锁存器(10)的相应一个相关的克隆锁存器(250);以及e)将所述克隆锁存器连接至所述汇点群集(12、13;52、54)中的相应一个,从而获得改进的布图。
2. 根据权利要求l的方法,其中聚集所述汇点的步骤包括,限定所述 布图的邻近分区,其中对内部的汇点计数,其中分区限于仅仅包括和N相 关的预定部分的汇点。
3. 根据权利要求1或2的方法,其中所述分区为菱形矩形(52、 54), 其边沿与限定所述芯片上的布线方向的直角坐标系统的正交轴成45°角方 向。
4. 根据权利要求1至3中任一项的方法,还包括如下步骤a) 在包围所有用于限定全部N汇点的所有汇点的最小斜矩形的边上 限定预定的起始位置(243 );b) 在所述起始位置限定布线状分区,以初始包括初始数量的汇点 (2451 );C)增加所述分区的尺寸,同时计数其包括的汇点,直到该尺寸足够大以包括所述预定部分的汇点(2452);d) 为该分区分配对应于所述计数的汇点的锁存器;e) 从该组汇点去除所述锁存器;f) 从与前一个相同或不同的起始位置开始重复前述步骤。
5. 根据前述权利要求的方法,还包括如下步骤基于所述改进的布图, 对所述克隆锁存器进行时序驱动布局。
6. 根据权利要求1至5中任一项的方法,还包括基于所述改进的布图 进行合成步骤的步骤。
7. —种计算机系统,其具有用于执行根据前述权利要求1至6中任一 项的方法的步骤的装置。
8. —种生成具有多个锁存器和逻辑的电子集成电路的布图的系统,其 中在所述多个锁存器和逻辑中,源锁存器(10)向相应的多个汇点(11) 提供信号,其中由合成步骤限定初始逻辑,并且其中在后续芯片布图(8) 生成过程中,进4亍布局以将与单个源锁存器(10)相关的克隆锁存器布局 在所述电路布图上,包括a) 预先识别锁存器(220)的装置,该锁存器具有至少一个相关的具 有负松驰量的汇点,b) 找出所有由所述识别的锁存器的相应一个驱动的所有汇点(230) 的装置,该汇点构成多个N汇点,其中由启发式算法预先确定N,c) 根据从所述数据库读取的时序和布局信息聚集所述汇点(240)的 装置,以获得多个汇点群集(12, 13),其中群集仅仅包括所述多个N汇 点的预定部分,d )产生与所述预先识别的源锁存器(10 )的相应一个相关的克隆锁存 器(250)的装置,以及e)将所述克隆锁存器连接至所述汇点群集(12、 13; 52、 54)中的相 应一个的装置,从而获得改进的布图。
全文摘要
本发明涉及制造集成电子电路,特别是涉及其设计优化。为使现代芯片设计中合成步骤和布图之间更紧密耦合,提出了执行如下步骤a)预先识别锁存器(210),其包括至少一个相关的具有负松弛的汇点,即,该锁存器在其输出端具有负松弛,b)找出所有的由其中一个相应所述识别锁存器驱动的汇点,该汇点构成多个N汇点,其中N由启发式算法预先确定,以及,c)根据从所述数据库读取的时序和布局信息聚集所述汇点(240),获得多个汇点群集(12,13),其中群集仅仅包括所述多个N汇点的预定部分。
文档编号G06F17/50GK101187958SQ200710186638
公开日2008年5月28日 申请日期2007年11月14日 优先权日2006年11月20日
发明者J·柯尔, M·林奇 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1