CN1779686A - 确定缓冲器插入的方法和系统 - Google Patents
确定缓冲器插入的方法和系统 Download PDFInfo
- Publication number
- CN1779686A CN1779686A CNA2005101246673A CN200510124667A CN1779686A CN 1779686 A CN1779686 A CN 1779686A CN A2005101246673 A CNA2005101246673 A CN A2005101246673A CN 200510124667 A CN200510124667 A CN 200510124667A CN 1779686 A CN1779686 A CN 1779686A
- Authority
- CN
- China
- Prior art keywords
- impact damper
- conversion
- insertion position
- selection
- slew
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种确定集成电路设计中的缓冲器插入位置的方法建立用于将缓冲器插入到网络中的候选位置,并且基于转换约束从候选中选择缓冲器插入位置。缓冲器插入位置的选择优选地优化时间余量和缓冲器成本,同时保持从任意缓冲节点到任意汇点的转换小于所需转换速率。转换分析如下计算在节点v处插入的给定缓冲器b的输出转换SL(v):SL(v)=RS(b)·C(v)+KS(b),其中C(v)是v处的下游电容,RS(b)是缓冲器b的转换电阻,并且KS(b)是缓冲器b的固有转换。通过给定缓冲器的延迟也可以基于信号极性来计算。但是,本发明在考虑转换约束时仍然优选地使用最坏情况转换电阻和固有转换。如果缓冲器插入位置的选择因转换违背而导致没有位置被选择,本发明可以有利地通过放宽转换约束而找到部分解。
Description
技术领域
本发明一般地涉及半导体芯片和集成电路的制造和设计,尤其涉及一种执行缓冲器插入以管理集成电路设计中的时序和电气需求的方法。
背景技术
集成电路用于大范围的电子应用,从简单的设备例如手表,到最复杂的计算机系统。微电子集成电路(IC)芯片通常可以看作在半导体衬底(例如硅)上形成的逻辑单元以及单元之间的电互连的集合。IC可能包括非常大量的单元并且需要单元之间的复杂连接。单元是一个或多个电路元件例如晶体管、电容器、电阻器、电感器和分组以执行逻辑功能的其他基本电路元件的组。单元类型包括例如核心单元,扫描单元和输入/输出(I/O)单元。IC的单元的每个可以具有一个或多个引脚,每个引脚又可以经由导线连接到IC的一个或多个其他引脚。连接IC引脚的导线也形成在芯片表面上。对于更复杂的设计,典型地存在可用于布线的至少四个不同的导电介质层,例如一个多晶硅层以及三个金属层(金属-1,金属-2,和金属-3)。多晶硅层,金属-1,金属-2,和金属-3都用于垂直和/或水平布线。
IC芯片通过首先设想逻辑电路描述,然后将该逻辑描述转换成物理描述,或几何布局来制造。该过程通常使用“连线表”来执行,其是单元引脚之间的网络或互连的全部的记录。布局典型地包括在几层中的一组平面几何形状。然后检查布局以保证它满足全部设计需求,特别是时序需求。结果是描述布局的称作中间形式的一组设计文件。设计文件然后转换成用来由光学或电子束图案发生器生产称作掩模的图案的图案发生器文件。在制造过程中,这些掩模用来使用一系列光刻步骤对硅圆片形成图案。组件形成需要关于几何图案以及它们之间的间隔的非常严格的细节。将电路的规范转换成布局的过程称作物理设计。
半导体制造中的单元布置涉及特定单元应当最佳地(或接近最佳地)位于集成电路设备的表面上哪里的确定。因为大量组件以及对于超大规模集成电路(VLSI)设备制造过程所需的细节,没有计算机的帮助,物理设计是不实际的。结果,物理设计的大多数阶段广泛地使用计算机辅助设计(CAD)工具,并且许多阶段已经部分地或完全自动。物理设计过程的自动化已经增加集成度,减少周转期并增强芯片性能。几种不同的编程语言已经为电子设计自动化(EDA)而创造,包括Verilog,VHDL和TDML。
响应的更快性能和可预测性是电路设计中的关注要素。随着加工技术缩微到亚微米世代,互连延迟日益支配门延迟。因此,物理设计优化工具例如分层平面布局规划、布置和布线变得比前一代工具更“时序驱动”。为了这种工具有效,它必须能够有效地计算互连延迟,因为需要几百万次延迟计算来优化设计。在某些类型的电路中,延迟基于电路拓扑和电路组件而存在。延迟在具有电阻和电容元件的电路,或RC电路中特别敏锐。电路设计者不断地寻找准确估计这些延迟的有效技术,同时确定特定电路对负载的响应。特别地,电路设计者希望能够在设计电路时计算可靠的延迟信息。为此,几种现有技术准则(也就是计算方法)已经被研制。
计算脉冲响应一阶矩的Elmore延迟准则是应用最广泛且最简单的互连延迟准则,其捕捉一定量的金属电阻效应。Elmore准则提供给定任意输入波形的延迟的上限,因为RC电路脉冲响应是单峰的且正向偏斜。Elmore延迟准则通常用于性能优化任务例如分层平面布局规划、布置、缓冲器插入、局部和全局布线中的导线尺寸估计。Elmore延迟准则的广泛使用是因为它的闭式表示,快的计算速度,和相对于仿真的逼真度。闭式延迟公式,例如Elmore延迟准则通常因效率和实现容易而优选,只要它们足够准确。
因为VLSI特征尺寸的极大下降,需要大量缓冲器(也就是放大器或反相器)以实现时序目标和纠正互连的电气违背。据估计缓冲器的数目将急剧增加,对于65纳米技术达到块内通信的总单元数量的大约15%,并且接近50纳米技术所需的800,000个缓冲器。因此,缓冲器插入的复杂度和重要性以甚至更快的速度增加。
物理综合在集成电路例如高性能处理器和专用集成电路(ASIC)的自动设计中是重要的。物理综合是在集成电路设计中同时优化布置、时序、功耗、串音效应等的过程。综合处理方法有助于消除电路分析与布置-布线之间的反复操作。物理综合具有为门重新提供动力、插入缓冲器、克隆门等的能力,所以设计中的逻辑区域保持流动。但是,物理综合可能花费几天时间完成。
在物理综合过程中,缓冲器插入被要求以为延迟而优化网络或者因电气违背而纠正网络。用于在固定的Steiner集成电路拓扑中执行缓冲器插入的一种机制是van Ginneken算法,如在“Buffer Placement inDistributed RC-tree Networks for Minimal Elmore Delay(最小Elmore延迟的分布式RC树形网络中的缓冲器布置),”ISCAS Proceedingspp.865-868(1990)中描述的。给定固定的Steiner树形拓扑,VanGinneken算法在单个缓冲器类型的Elmore延迟模型和单门延迟模型下寻找拓扑上的最佳缓冲器布置。Van Ginneken的最初想法是选择位于Steiner拓扑上以某一均匀固定距离间隔的一组缓冲器候选位置。缓冲器插入然后对于从汇点到源点的该特定组候选而进行。当候选位置因为与逻辑距离太密集而落入被阻挡的区域中时,该位置被跳过并且缓冲器插入到没有被阻挡同时维持均匀间隔的下一个候选插入位置。
如图1中所示,网络1的Steiner树形表示沿着从源点3到汇点4,5和6的路径以规则间隔放置候选缓冲器插入点2。逻辑单元7(或者逻辑单元的一部分)存在于网络的路径中。当确定候选缓冲器插入点2时被逻辑单元7阻挡的网络部分被跳过。候选插入点之间的间隔可以由设计者增大或减小以实现特定的时序需求。增大缓冲器插入位置的频率可以提高网络的时序,但是处于增加的缓冲器成本。
Van Ginneken方法的一个问题是缓冲器插入没有考虑更实际的网络参数,例如输入信号极性和转换约束。从传统缓冲器插入算法在具有300,000或更多对象的典型工业电路上的大量实验中,在由缓冲器插入计算的时间余量改进与由静态时序分析工具计算的时间余量改进之间存在大的差异。传统缓冲器插入不考虑这些差异并且可能导致次优结果。Van Ginneken的算法也将缓冲器布置局限于沿着网络的均匀位置,其不能利用候选位置附近逻辑的密度。
考虑到前述,期望设计一种选择缓冲器插入位置以有效实现时序收敛的改进方法。如果该方法可以允许具有非均匀间隔的缓冲器插入以利用逻辑区域密度的变化将是更有利的。
发明内容
因此,本发明的一个目的在于提供一种在集成电路设计的网络中选择缓冲器插入位置的改进方法。
本发明的另一个目的在于提供相对快速但是仍然考虑实际时序约束的这种方法。
本发明的再一个目的在于提供一种互连优化过程,其使用缓冲器插入来实现较好质量的时序解同时维持优良的计算速度。
前述目的通过为网络定义至少一个转换约束,建立将一个或多个缓冲器插入到网络中的多个候选位置,并且基于转换约束从候选位置中选择缓冲器插入位置,在集成电路设计中确定缓冲器插入位置的方法中实现。缓冲器插入位置的选择优选地优化时间余量和缓冲器成本,同时保持从任意缓冲节点到任意汇点的转换小于所需转换速率。在说明的实现中,转换分析包括如下计算在节点v处插入的给定缓冲器b的输出转换SL(v)
SL(v)=RS(b)·C(v)+KS(b),
其中C(v)是v的下游电容,RS(b)是缓冲器b的转换电阻,并且KS(b)是缓冲器b的固有转换。除了转换约束的考虑之外,通过给定缓冲器的延迟可以基于输入信号极性和相应候选位置的极性来计算。但是,本发明在考虑转换约束时仍然优选地使用最坏情况转换电阻和固有转换。如果缓冲器插入位置的选择因转换违背而导致没有位置被选择,本发明可以有利地通过放宽转换约束而找到部分解。
本发明的上面以及另外的目的、特征和优点将在下面的详细书面描述中变得明白。
附图说明
通过参考附随附图,本发明可以更好地理解,并且其许多目的、特征和优点变得对本领域技术人员显然。
图1是显示根据现有技术van Ginneken算法,以规则间隔沿着从源点到几个汇点的路径的候选缓冲器插入点的集成电路设计网络的Steiner树的图;
图2是编程以执行根据本发明一种实现的集成电路计算机辅助设计的计算机系统的框图;
图3A和3B是说明根据本发明一种实现分析的缓冲器插入间隔和输入信号极性的示意图;以及
图4是说明作为根据本发明一种实现可能执行的转换恢复的部分,网络中产生转换违背的障碍实例的图。
不同附图中相同参考符号的使用指示类似或完全相同的项目。
具体实施方式
现在参考附图,特别是参考图2,描绘根据本发明一种实现编程以执行集成电路的计算机辅助设计的计算机系统的一种实施方案10。系统10包括执行程序指令的中央处理单元(CPU)12,存储系统基本输入/输出逻辑的固件或只读存储器(ROM)14,以及临时存储由CPU 12使用的程序指令和操作数据的动态随机存取存储器(DRAM)。CPU 12,ROM 14和DRAM 16都连接到系统总线18。存储器分级体系中可能存在没有描绘的另外结构,例如板上(L1)和二级(L2)高速缓冲存储器。在高性能实现中,系统10可以包括多个CPU和分布式系统存储器。
CPU 12,ROM 14和DRAM 16也使用PCI主桥22连接到外围组件互连(PCI)局部总线20。PCI主桥22提供低延迟路径,处理器12可以通过其访问映射在总线存储器或I/O地址空间中任何地方的PCI设备。PCI主桥22也提供高带宽路径以允许PCI设备访问DRAM 16。连接到PCI局部总线20的是局域网(LAN)适配器24,小型计算机系统接口(SCSI)适配器26,扩展总线桥28,音频适配器30,以及图形适配器32。LAN适配器24可以用来将计算机系统10连接到外部计算机网络34,例如因特网。小型计算机系统接口(SCSI)适配器26用来控制高速SCSI磁盘驱动器36。磁盘驱动器36存储程序指令和数据于更永久的状态中,包括如下进一步说明的实施本发明的程序。扩展总线桥28用来将工业标准结构(ISA)扩展总线38连接到PCI局部总线20。如所示,几个用户输入设备连接到ISA总线38,包括键盘40,麦克风42和图形定点设备(鼠标)44。其他设备也可以连接到ISA总线38,例如CD-ROM驱动器46。音频适配器30控制到扬声器48的音频输出,并且图形适配器32控制到显示监视器50的视觉输出,以允许用户如这里讲授的执行集成电路设计。
虽然说明实现在磁盘驱动器36上提供实施本发明的程序指令,本领域技术人员将理解,本发明可以在利用其他计算机可读介质,包括传输介质的程序产品中实施。
计算机系统10执行使用新的缓冲器插入技术来管理时序需求和电气违背的互连优化过程的程序指令。因此,实施本发明的程序可以包括各种布置和时序工具的常规方面,并且这些细节将参考该公开内容对本领域技术人员变得显然。
本发明提供一种确定缓冲器插入位置的改进方法,其考虑到实际时序参数。在一种实施方案中,计算机系统10使用依赖于van Ginneken方法的算法,但是还包括转换约束和输入信号极性的考虑。在vanGinneken方法中,网络作为布线树T=(V,E)给出,其中V={s0}∪Vs∪Vn,EV×V,顶点s0是源顶点也是T的根,Vs是汇顶点的集合,并且Vn是内部顶点的集合。每个汇顶点s∈Vs与汇点电容C(s),所需到达时间RAT(s),所需转换速率SC(s)以及极性p(s)相关,其中p(s)=0/1表示与源点具有相同/相反的极性。源点的目标所需到达时间RAT(s0)也给定。源点的输入极性由p(s0)表示,其中p(s0)=0/1表示输入信号是上升/下降信号。每个节点v≠s0具有唯一的父导线(u,v)∈E。树假设为二叉的,也就是每个节点可以具有至多两个孩子。v的左和右孩子分别由T.left(v)和T.right(v)表示。如果v仅具有一个孩子,那么它是T.left(v)。缓冲器库B包含不同类型的缓冲器。对于每种缓冲器类型b∈B,固有延迟是K(b),驱动电阻是R(b),输入电容是C(b),极性是p(b)其中0/1意味着缓冲器/反相器,以及所需输入转换速率是SC(b)。函数f:Vn→2B指定在每个内部顶点允许的缓冲器的类型。每种缓冲器类型bi也具有缓冲器成本W(bi)。每个边e与集总电阻R(e)和导线电容C(e)相关。
在示范实现中,Elmore延迟用于互连且线性延迟用于缓冲器。对于每个边e=(vi,vj),信号从vi行进到vj。e的Elmore延迟是D(e)=R(e)(C(e)/2)+C(vj)),其中C(vj)是vj处的下游电容。对于顶点v处的任何缓冲器b,缓冲器延迟是D(v)=R(b)·C(v)+K(b),其中C(v)是v处的下游电容。当缓冲器b被插入时,从上游看到的电容是C(b)。
缓冲器插入问题的广义解是映射M:Vn→B∪b~,其指定缓冲器或不指定缓冲器,由b表示,到T的每个内部节点。映射的绝对值|M|=|{v∈IN:M(v)∈B}|表示由M插入的缓冲器的数目。指定k个缓冲器到T包括k+1个网络和k+1个子树,每个不具有内部布置的缓冲器。对于任意顶点v∈V,T(v)表示为v下游(以v为根)的子树。对于T(v)的候选α(即缓冲器插入位置),以v为根的子树表示为Tα(v)=({v})∪Vs,Tα(v)∪Vn,Tα(v),ET(v)),并且是使得v为源点且Tα(v)不包含任何内部缓冲器的T(v)的最大子树。Vs,Tα(v)是Tα(v)的汇顶点的集合,其中Vs,Tα(v)={v|v∈Vs∩Tα(v)}∪{v|v∈Vn∩Tα(v),M(v)∈B}。Vn,Tα(v)是T(v)的内部节点的集合,其中Vn,Tα(v)={v|v∈Vn∩Tα(v),M(v)=b~}。如果v∈Vs,那么Tα(v)=({v},)。
从节点u到v的路径p(u,v)是E的导线(u,u1),(u1,u2),...,(un,v)的有序子集。从u到v的导线路径wp(u,v)是不存在指定到节点u1,u2,...,un的缓冲器但是u和v都是门的路径p(u,v)。wp(u,v)的导线延迟是
D(wp(u,v))=∑e=(w,v)D(e),其中求和遍及wp(u,v)中的所有边。从节点v到α之下的汇点si∈T(v)的延迟是
D(v,si,α)=∑wp(v,v1)∈p(v,si)(D(v)+D(wp(v,v1))),其中D(v)是缓冲器延迟。α下v的时间余量(slack)是
Q(v,α)=mins∈T(v){RAT(s)-D(v,s,α)}。α的缓冲器成本是在α中使用的缓冲器的总成本:
W(v,α)=∑bi∈αW(bi)。
缓冲器插入问题可以定义如下。给定布线树T,每个汇点s的汇点电容C(s)和所需到达时间RAT(s),每个边e的电容C(e)和电阻R(e),缓冲器库B,可能的缓冲器位置f,以及缓冲器成本函数W,寻找T的候选α使得Q(s0,α)≥RAT(s0)达到最大并且总的缓冲器成本W(s0,α)达到最小。候选对上游的效应描述为3元组(Q,C,W)。值Q代表所需达到时间(最初在算法中时间余量设置为等于RAT);C是下游负载电容;以及W是总成本。如果W是缓冲器数目,那么W=|M|。对于T(v)的任意两个候选α1和α2,我们说α1优于α2,如果Q(v,α1)≥Q(v,α2),C(v,α1)≤C(v,α2)以及W(v,α1)≤W(v,α2)。T(v)的非冗余候选的集合,表示为N(v),是N(v)中没有候选优于N(v)中任何其他候选,并且T(v)的每个候选次于N(v)中一些候选的候选集合。
基本的van Ginneken算法以在汇点开始在源点结束的自底向上的方式进行。候选解在树中每个节点处建立,并且候选沿着树向上传播,同时也产生新的候选。算法递归地重复直到遇到源点,在该点驱动器延迟增加到每个候选,并且选择最佳解。缓冲器数目可以考虑为成本函数,但是算法可以使用任何通用成本函数。本发明使用类似的策略,但是增加其他时序参数例如转换约束或输入信号极性的考虑。在示范实现中,本发明使用算法Find Cands(v)来对输入节点v寻找一列候选解S(两个子集S+和S-分别处理以解决反相器):
1:S+=S-=Sb +=Sb -=
2:If v∈vs并且p(v)=0
3:S+={(RAT(v),C(v),b~}
4:当p(v)=1时类似地计算S-
5:Else if v仅具有一个孩子
6:For每个(Q,C,M)∈Find_Cands(T.left(v)
7:S+=S+∪{(Q,C,M)}
8:类似地计算S-
9:Else if v具有两个孩子
10:Sl +=Find_Cands(T.left(v))
11:Sr +=Find_Cands(T.right(v))
12:设置i=1且j=1
13:While i=|Sl|且j≤|Sr|
14:设αI=(Ql,Cl,Ml)为Sl中第i个候选
15:设αI(Qr,Cr,Mr)为Sr中第j个候选
16:S+=S+∪{(min(Ql,Qr),Cl+Cr,Ml∪Mr)}
17:如果Ql≤Qr,那么i=i+1
18:如果Qr≤Ql,那么j=j+1
19:类似地计算S-
20:If v是可行的缓冲器位置
21:For每个缓冲器b∈B
22:If b是反相器
23:寻找α=(Q,C,M)∈S-使得Qb +=Q-PolBufDelay(b,α)达到最大
24:Else
25:寻找α=(Q,C,M)∈S+使得Qb +=Q-PolBufDelay(b,α)达到最大
26:If这种α存在
27:设置M(v)=b,Sb +=Sb +∪{(Qb +,C(b),M(v))}
28:类似地计算Sb -
29:S+=S+∪Sb +,S-=S-∪Sb -
30:设e=(u,v)为v的父导线
31:For每个α=(Q,C,M)∈S+
32:S=S∪{(Q-D(u,v),C+C(e),M)}-α
33:类似地计算S-
34:从S+和S-中删除劣解
35:返回S+和S-
算法Find_Cands(v)借助于23和25行中的子例程PolBufDelay而考虑到输入信号极性。对于CMOS和许多家族的缓冲器和反相器,因为不平衡的充电和放电强度,驱动电阻和固有延迟将对于缓冲器输入处的不同极性而不同。负载电容的延迟曲线因此对于工业缓冲器库中典型反相器的两个不同方向的输入信号而显著不同。该差异通过定义两对输入信号参数来解决:R(b,r)和K(b,r)是当缓冲器b的输入上升时的电阻和固有延迟,而R(b,f)和K(b,f)是当缓冲器的输入下降时的电阻和固有延迟。当库由精确延迟求值程序构建时,这些参数可以测量。然后,对于顶点v处的任何缓冲器b,不同输入极性下的缓冲器延迟定义为
D(v)=R(b,r)·C(v)+K(b,r):输入上升
D(v)=R(b,f)·C(v)+K(b,f):输入下降其中C(v)是v处的下游电容。当负载电容小时,在延迟曲线上也存在小的非线性效应。通常,因为在优化过程中上限延迟模型用来保证电路性能,K(b,r)可以选择为
max(0,D(0.5C(b)max)-R(b,r)0.5C(b)max),其中C(b)max是缓冲器b可以驱动的最大电容,且D(C)是具有负载C的缓冲器的延迟。
在常规缓冲器插入技术中,仅一个延迟公式用于每种缓冲器类型。该选择可能导致性能退化或者需要更多的缓冲器资源。例如,如果上升输入的传统缓冲器插入公式用于关键路径上的一个网络,在10个缓冲器插入之后,它可能显示源点处的100ps时间余量改进。但是,更坏情况延迟可能仅在输入是下降信号时发生,并且下降输入的公式的使用可能产生不同的缓冲器插入结果例如12个缓冲器,其可以实现关键路径上200ps的时间余量改进。相反地,对于不在关键路径上的网络(其中时序性能不是必需的),更多面积可能由使用下降输入的公式而浪费,而使用上升输入的公式可能导致较少的资源同时维持相同的性能。本发明利用当进行延迟查询时一个信号更关键并且使用该信号的事实。例如,参考图3A,如果信号60在汇点62上升,那么它对于最接近汇点的反相器64下降而对于前一个反相器65上升。使用该知识导致反相器的不相等间隔,其可以利用缓冲器晶体管设计中的偏置pfet/nfet比并且获得更好的延迟解。
因此,本发明可以基于输入极性计算通过缓冲器的延迟。例如,假设源点处输入的极性是下降的,并且候选α的极性是负的,那么上升延迟公式被使用,因为该缓冲器的输入应当是上升信号。一般地说,函数PolBufDelay(b,p(s0),α)如下给出:
1:如果b是缓冲器
2:如果p(α)=0且p(s0)=0
3:返回R(b,r)C(α)+K(b,r)
4:如果p(α)=0且p(s0)=1
5:返回R(b,f)C(α)+K(b,f)
6:如果p(α)=1且p(s0)=0
7:返回R(b,f)C(α)+K(b,f)
8:如果p(α)=1且p(s0)=1
9:返回R(b,r)C(α)+K(b,r)
10:对于b是反相器的情况做类似的分析。
在该函数中,p(s0)=0/1意味着源点处的上升/下降信号,并且p(α)=0/1意味着α的正/负极性(也就是,到候选α的输入信号与来自原始源点的信号同相还是异相)。PolBufDelay的输出是具有负载C(α)的缓冲器b的延迟。该函数也可以用于驱动器延迟计算。
返回图3A,输入信号极性的考虑可以改进上升信号的延迟计算,但是对于下降沿,反相器62和64之间的额外间隔可能引起应当满足的转换违背。在示范实现中,本发明对于互连使用称作斜坡输入的概率分布函数扩展(PERI)的转换准则,其在这里引用的名称为“METHODAND SYSTEM FOR EXTENDING DELAY AND SLEW METRICS TORAMP INPUTS(扩展斜坡输入的延迟和转换准则的方法和系统)”的美国专利申请号10/306,603中更完整地描述。PERI将对于阶跃输入而得到的转换准则扩展到在所有输入转换上有效的斜坡输入的准则。
对于导线e,e的转换是
SL(e)=2.2·R(e)[C(e)/2+C(vj)],其中C(vi)是vj处的下游电容。wp(u,v)的导线转换是
SL(wp(u,v))=∑e=(w,x)SL(e),其中求和遍及路径wp(u,v)中的所有边。对于解α,对任意汇点k∈Vs,Tα(v)从任意缓冲节点v(其中M(v)∈B)的转换是
SL(v,k,α)=V[SL(wp(v,k))2+SL(v)2],其中SL(v)是在节点v插入的缓冲器M(v)的输出转换。无论何时增加缓冲器,上游的转换速率是零,这意味着缓冲器下游的转换不被缓冲器的上游所见。对于给定网络,因为每个汇点s和每个缓冲器b的所需转换速率必须满足,我们必须具有
SL(v,k,α)≤SC(k),对于每个k∈Vs,Tα(v)。因此,具有转换约束的缓冲器插入问题可以使用如以前寻找使得Q(s0,α)≥RAT(s0)达到最大且总的缓冲器成本W(s0,α)达到最小的T的候选α相同的条件,使用候选转换速率必须小于所需转换速率的附加条件来重述。
缓冲器的输出转换传统地通过搜索缓冲器的查询表来计算。但是,这对于具有上百万门的现有技术水平设计中几十万次求值不是有效的。在本发明的一种实施方案中,输出转换使用简单且有效的新的转换准则计算。在节点v插入的缓冲器b的输出转换如下计算
SL(v)=RS(b)·C(v)+KS(b),其中C(v)是v处的下游电容,RS(b)是缓冲器b的转换电阻,且KS(b)是缓冲器b的固有转换。缓冲器的转换电阻在说明实施方案中定义为当负载电容从其最大负载电容的30%变为其最大负载电容的70%时其输出转换的变化与其负载电容的变化的比值,并且固有转换定义为当缓冲器不驱动任何负载时缓冲器的输出转换值。缓冲器输出转换的前述公式由在负载电容方面存在转换的线性效应的观察而导出,其已经使用不同缓冲器上的大量仿真来验证。
虽然缓冲器的转换电阻和固有转换也依赖于输入信号极性,关于转换约束本发明采用保守方法并且总是选择两种情况之间最差的转换电阻和固有转换,如图3B中所示。该图中看出,上升和下降信号66和68在每一步考虑。该方法意味着算法使得在总是使反相器在线路上相等间隔的任一情况下的最差延迟达到最小。因此,如果线路如图3A中对于从源点出来的上升信号而优化,那么下降信号将比图3B的设计中传播得慢,但是该行为是可接受的,因为上升信号预先确定为更关键的。
输出转换也依赖于缓冲器的输入转换。可以使用固定的输入转换值例如每个缓冲器200ps。当在自底向上的算法中插入缓冲器时,缓冲器上游的树的拓扑仍然未知。因为不能知道缓冲器的输入转换值,示范实现取决于固定值。200ps的值代表最佳优化路径上发现的典型转换。
在一些现有技术水平设计中,因为布线和物理障碍的存在,缓冲器的位置可能非常受限,特别是如果存在成千上万个缓冲器树时。因此,不存在可行解以满足转换约束,也就是缓冲器不能插入其中的布置障碍的长度大于与转换约束相对应的长度是可能的。在这种情况下,本发明的缓冲器插入工具仍然继续寻找最佳解,即使立即纠正转换违背是不可能的。例如,具有800ns转换约束的两引脚网络可能具有在网络路径上存在的障碍,并且即使两个缓冲器在障碍两侧插入转换仍然是900ns。然而,缓冲的候选解仍然是优选的,因为不插入缓冲器的解可能产生1,600ns的转换。对于随后的设计阶段,基于具有900ns的解来纠正转换可能更容易。现有转换恢复过程可以用来恢复解以处理这种情况,当没有另外的可行解存在时。如果遇到缓冲器位置并且所有可能类型缓冲器在该位置插入的所有新的候选都不能满足给定转换约束(这意味着所有新的候选都基于转换条件而删除),工具将假设没有转换约束而重新生成这些新的候选。然后所有解可以被标记并且在它们传播到源点之后,具有最佳时间余量和合理转换的解被选择。
但是,该传统转换恢复在某些情况下不很好地起作用,其中具有非常大转换的候选,例如插入零个缓冲器或一个缓冲器的解,可能在随后自底向上过程中删除转换接近时间余量方面约束的其他候选。这是因为所有新的候选被“恢复”且所有先前的候选仍然保持,并且最佳时序结果仍然在关键或接近关键的网络上期望。结果,最后选择的解可能具有不可接受的转换值。
为了产生更好的转换-时间余量折衷曲线,本发明优选地使用新的转换恢复技术。无论何时转换恢复被调用时,在自底向上过程中当前缓冲器位置之后总是存在大的障碍。为了实现更好的转换结果,当前阶段的所有部分候选需要具有在该障碍之后插入的至少一个缓冲器。该插入可以通过无论何时转换恢复被调用时删除具有最少缓冲器数目的所有解来简单地实现,也就是插入零个缓冲器的解在第一次转换恢复调用中删除,插入一个缓冲器的解在第二次转换恢复调用中删除,并且插入第i个缓冲器的解在第i+1次转换恢复调用中删除。
转换恢复可以进一步参考图4来理解,其说明大多数汇点70在图底部聚集在一起,一个汇点72在右上部的网络的实例。到汇点72的路径经过大的障碍74。因为障碍74的大小,对于该汇点纠正转换违背也许是不可能的。当运行van Ginneken式算法时,解将在它们不能满足约束时接连出局,并且一旦算法进行到障碍74之前的位置时(也就是图4中恰好障碍74的左侧),没有候选将剩余。如果这种过程后面是在Steiner点合并,没有候选将传播到源点,并且缓冲器插入将什么都不实现。本发明通过临时放宽转换约束并且允许违背转换约束的候选仅对一个候选插入点而存在来避免该问题。所以在图4中,恰好在障碍74之前的路径现在将具有候选,即使它们违背转换约束。如此,当在Steiner点的合并发生时,其他分支76的解将被传播,使得除经过障碍74的一个之外所有转换违背被纠正。该违背可以随后例如通过重新定位汇点来解决。
这些转换考虑可以通过增加两个域SL,SC到每个候选以代表其当前导线转换以及在该候选的最大子树中所有汇点中最紧的所需转换,在候选选择算法中实现。然后,除了传统次最优定义之外,如果SL(α)>SC(α),候选α被删除。该增强算法Find_Cands_Slew这样给出:
1:S+=S-=Sb +=Sb -=
2:If v∈vs并且p(v)=0
3:S+={(RAT(v),C(v),b~,0,SC(v)}
4:当p(v)=1时类似地计算S-
5:Else if v仅具有一个孩子
6:For每个(Q,C,M,SL,SC)∈Find_Cands(T.left(v))
7:S+=S+∪{(Q,C,M,SL,SC)}
8:类似地计算S-
9:Else if v具有两个孩子
10:Sl +=Find_Cands(T.left(v))
11:Sr +=Find_Cands(T.right(v))
12:设置i=1且j=1
13:While i≤|Sl|且j≤|Sr|
14:设αI=(Ql,Cl,Ml,SLl,SCl)为Sl中第i个候选
15:设αI=(Qr,Cr,Mr,SLr,SCr)为Sr中第j个候选
16:S+=S+∪{(min(Ql,Qr),Cl+Cr,Ml∪Mr),max(SLl+SLr),min(SCl,SCr)}
17:如果Ql≤Qr,那么i=i+1
18:如果Qr≤Ql,那么j=j+1
19:类似地计算S-
20:If v是可行的缓冲器位置
21:For每个缓冲器b∈B
22:If b是反相器
23:寻找α=(Q,C,M,SL,SC)∈S-使得Qb +=Q-PolBufDelay(b,p(s0),α)达到最大并且SL(v,k,α)≤SC(k)
24:Else
25:寻找α=(Q,C,M,SL,SC)∈S+使得Qb +=Q-PolBufDelay(b,p(s0),α)达到最大并且SL(v,k,α)≤SC(k)
26:If这种α存在
27:设置M(v)=b,Sb +=Sb +∪{(Qb +,C(b),M(v),0,SC(b))}
28:类似地计算Sb -
29:如果Sb +和Sb -都是空 //转换恢复
30:寻找|Ms|=minα∈s+∪s-{|M|使得α=(Q,C,M,SL,SC)}
31:删除S+和S-中|M|=|Ms|的每个候选α
32:重复步骤22~29但是条件SL(v,k,α)≤SC(k)不是必需
33:S+=S+∪Sb +,S-=S-∪Sb -
34:设e=(u,v)为v的父导线
35:For每个α=(Q,C,M,SL,SC)∈S+
36:S=S∪{(Q-D(u,v),C+C(e),M,SL+SL(e),SC)}-α
37:类似地计算S-
38:从S+和S-中删除劣解并且也删除使得SL(α)>SC(α)的任何候选α
39:返回S+和S-
具有300,000+对象的几个工业设计的仿真结果显示,如本发明讲授的缓冲器插入中时序参数的考虑可以显著地加速过程同时产生有竞争力的质量结果。
虽然本发明已经参考具体实施方案描述,该描述并不打算以限制的意义解释。当参考本发明的描述时,公开的实施方案的各种修改,以及本发明的备选实施方案将变得对本领域技术人员显然。例如,虽然本发明已经在van Ginneken算法的环境中描述,它同样可以在其他算法中实现。因此,应当设想,这种修改可以进行而不背离如附加权利要求中定义的本发明的本质或范围。
Claims (21)
1.一种确定集成电路设计的网络中的缓冲器插入位置的方法,包括:
定义网络的至少一个转换约束;
建立用于将一个或多个缓冲器插入到网络中的多个候选位置;以及
基于转换约束从候选位置中选择缓冲器插入位置。
2.根据权利要求1的方法,其中缓冲器插入位置的所述选择包括优化时间余量和缓冲器成本,同时保持从任意缓冲节点到任意汇点的转换小于所需转换速率。
3.根据权利要求2的方法,其中缓冲器插入位置的所述选择还包括如下计算在节点ν处插入的给定缓冲器b的输出转换SL(ν)
SL(ν)=RS(b)·C(ν)+KS(b)其中C(ν)是ν处的下游电容,RS(b)是缓冲器b的转换电阻,并且KS(b)是缓冲器b的固有转换。
4.根据权利要求1的方法,其中缓冲器插入位置的所述选择包括基于输入信号极性计算通过给定缓冲器的延迟。
5.根据权利要求4的方法,其中缓冲器插入位置的所述选择还包括基于相应候选位置的极性计算通过给定缓冲器的延迟。
6.根据权利要求5的方法,其中缓冲器插入位置的所述选择在考虑转换约束时使用最坏情况转换电阻和固有转换。
7.根据权利要求1的方法,还包括当缓冲器插入位置的所述选择因转换违背而没有选择任何位置时找到转换约束的部分解。
8.一种计算机系统,包括:
处理程序指令的一个或多个处理器;
连接到所述一个或多个处理器的存储设备;以及
位于所述存储设备中的程序指令,用于通过定义网络的至少一个转换约束,建立将一个或多个缓冲器插入到网络中的多个候选位置,以及基于转换约束从候选位置中选择缓冲器插入位置来确定集成电路设计的网络中的缓冲器插入位置。
9.根据权利要求8的计算机系统,其中缓冲器插入位置的选择包括优化时间余量和缓冲器成本,同时保持从任意缓冲节点到任意汇点的转换小于所需转换速率。
10.根据权利要求9的计算机系统,其中缓冲器插入位置的选择还包括如下计算在节点ν处插入的给定缓冲器b的输出转换SL(ν)
SL(ν)=RS(b)·C(ν)+KS(b)其中C(ν)是ν处的下游电容,RS(b)是缓冲器b的转换电阻,并且KS(b)是缓冲器b的固有转换。
11.根据权利要求8的计算机系统,其中缓冲器插入位置的选择包括基于输入信号极性计算通过给定缓冲器的延迟。
12.根据权利要求11的计算机系统,其中缓冲器插入位置的选择还包括基于相应候选位置的极性计算通过给定缓冲器的延迟。
13.根据权利要求12的计算机系统,其中缓冲器插入位置的选择在考虑转换约束时使用最坏情况转换电阻和固有转换。
14.根据权利要求8的计算机系统,其中所述程序指令还包括当缓冲器插入位置的选择因转换违背而没有选择任何位置时找到转换约束的部分解。
15.一种计算机程序产品,包括:
计算机可读介质;以及
位于所述介质中的程序指令,用于通过定义网络的至少一个转换约束,建立将一个或多个缓冲器插入到网络中的多个候选位置,以及基于转换约束从候选位置中选择缓冲器插入位置来确定集成电路设计的网络中的缓冲器插入位置。
16.根据权利要求15的计算机程序产品,其中缓冲器插入位置的选择包括优化时间余量和缓冲器成本,同时保持从任意缓冲节点到任意汇点的转换小于所需转换速率。
17.根据权利要求16的计算机程序产品,其中缓冲器插入位置的选择还包括如下计算在节点ν处插入的给定缓冲器b的输出转换SL(ν)
SL(ν)=RS(b)·C(ν)+KS(b)其中C(ν)是ν处的下游电容,RS(b)是缓冲器b的转换电阻,并且KS(b)是缓冲器b的固有转换。
18.根据权利要求15的计算机程序产品,其中缓冲器插入位置的选择包括基于输入信号极性计算通过给定缓冲器的延迟。
19.根据权利要求18的计算机程序产品,其中缓冲器插入位置的选择还包括基于相应候选位置的极性计算通过给定缓冲器的延迟。
20.根据权利要求19的计算机程序产品,其中缓冲器插入位置的选择在考虑转换约束时使用最坏情况转换电阻和固有转换。
21.根据权利要求15的计算机程序产品,其中所述程序指令还包括当缓冲器插入位置的选择因转换违背而没有选择任何位置时找到转换约束的部分解。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/996,292 US7392493B2 (en) | 2004-11-22 | 2004-11-22 | Techniques for super fast buffer insertion |
US10/996,292 | 2004-11-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1779686A true CN1779686A (zh) | 2006-05-31 |
CN100423012C CN100423012C (zh) | 2008-10-01 |
Family
ID=36462315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101246673A Expired - Fee Related CN100423012C (zh) | 2004-11-22 | 2005-11-14 | 确定缓冲器插入的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7392493B2 (zh) |
CN (1) | CN100423012C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339338A (zh) * | 2010-07-22 | 2012-02-01 | 上海华虹集成电路有限责任公司 | 一种时序修复方法 |
CN103164585A (zh) * | 2013-03-29 | 2013-06-19 | 龙芯中科技术有限公司 | 缓冲器的插入方法及装置 |
CN117113915A (zh) * | 2023-10-25 | 2023-11-24 | 深圳鸿芯微纳技术有限公司 | 缓冲器插入方法、装置和电子设备 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7673259B2 (en) * | 2005-12-30 | 2010-03-02 | Cadence Design Systems, Inc. | System and method for synthesis reuse |
US7761826B1 (en) * | 2006-07-24 | 2010-07-20 | Cadence Design Systems, Inc. | Method and system for crosstalk analysis |
US7941679B2 (en) * | 2007-08-10 | 2011-05-10 | Atrenta, Inc. | Method for computing power savings and determining the preferred clock gating circuit of an integrated circuit design |
US7895539B2 (en) | 2007-10-17 | 2011-02-22 | International Business Machines Corporation | System for improving a logic circuit and associated methods |
US20100257499A1 (en) * | 2009-04-02 | 2010-10-07 | International Business Machines Corporation | Techniques for fast area-efficient incremental physical synthesis |
US8151232B2 (en) * | 2009-04-10 | 2012-04-03 | Oracle America, Inc. | Repeater driven routing methodology |
JP2011134084A (ja) * | 2009-12-24 | 2011-07-07 | Renesas Electronics Corp | 半導体集積回路の設計方法、及びプログラム |
US8448123B2 (en) * | 2010-10-22 | 2013-05-21 | International Business Machines Corporation | Implementing net routing with enhanced correlation of pre-buffered and post-buffered routes |
CN102456087B (zh) * | 2010-11-03 | 2013-12-04 | 上海华虹集成电路有限责任公司 | 一种建立时序修复方法 |
US8365120B2 (en) | 2010-12-02 | 2013-01-29 | International Business Machines Corporation | Resolving global coupling timing and slew violations for buffer-dominated designs |
US8418108B2 (en) | 2011-06-17 | 2013-04-09 | International Business Machines Corporation | Accuracy pin-slew mode for gate delay calculation |
US10346558B2 (en) | 2017-06-22 | 2019-07-09 | International Business Machines Corporation | Integrated circuit buffering solutions considering sink delays |
WO2019162846A1 (en) | 2018-02-21 | 2019-08-29 | Amin Rassekh | Communication at the speed of light over an on-chip interconnect |
US10963620B1 (en) * | 2020-01-06 | 2021-03-30 | Cadence Design Systems, Inc. | Buffer insertion technique to consider edge spacing and stack via design rules |
US10936777B1 (en) * | 2020-01-30 | 2021-03-02 | Cadence Design Systems, Inc. | Unified improvement scoring calculation for rebuffering an integrated circuit design |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253356B1 (en) * | 1998-03-24 | 2001-06-26 | International Business Machines Corporation | System and method for improving logic synthesis in logic circuits |
US6347393B1 (en) * | 1999-05-24 | 2002-02-12 | International Business Machines Corporation | Method and apparatus for performing buffer insertion with accurate gate and interconnect delay computation |
US6493854B1 (en) * | 1999-10-01 | 2002-12-10 | Motorola, Inc. | Method and apparatus for placing repeaters in a network of an integrated circuit |
US6591411B2 (en) * | 2001-03-15 | 2003-07-08 | International Business Machines Corporation | Apparatus and method for determining buffered steiner trees for complex circuits |
US7062743B2 (en) * | 2002-09-24 | 2006-06-13 | The Regents Of The University Of California | Floorplan evaluation, global routing, and buffer insertion for integrated circuits |
US6915496B2 (en) * | 2002-09-26 | 2005-07-05 | International Business Machines Corporation | Apparatus and method for incorporating driver sizing into buffer insertion using a delay penalty estimation technique |
CN1275317C (zh) * | 2003-11-28 | 2006-09-13 | 清华大学 | 集成电路布图规划与缓冲器规划集成的布局方法 |
US7127696B2 (en) * | 2003-12-17 | 2006-10-24 | International Business Machines Corporation | Method and apparatus for generating steiner trees using simultaneous blockage avoidance, delay optimization and design density management |
-
2004
- 2004-11-22 US US10/996,292 patent/US7392493B2/en not_active Expired - Fee Related
-
2005
- 2005-11-14 CN CNB2005101246673A patent/CN100423012C/zh not_active Expired - Fee Related
-
2007
- 2007-11-29 US US11/947,706 patent/US7676780B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339338A (zh) * | 2010-07-22 | 2012-02-01 | 上海华虹集成电路有限责任公司 | 一种时序修复方法 |
CN103164585A (zh) * | 2013-03-29 | 2013-06-19 | 龙芯中科技术有限公司 | 缓冲器的插入方法及装置 |
CN103164585B (zh) * | 2013-03-29 | 2016-02-10 | 龙芯中科技术有限公司 | 缓冲器的插入方法及装置 |
CN117113915A (zh) * | 2023-10-25 | 2023-11-24 | 深圳鸿芯微纳技术有限公司 | 缓冲器插入方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US7676780B2 (en) | 2010-03-09 |
US20060112364A1 (en) | 2006-05-25 |
CN100423012C (zh) | 2008-10-01 |
US7392493B2 (en) | 2008-06-24 |
US20080072202A1 (en) | 2008-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1779686A (zh) | 确定缓冲器插入的方法和系统 | |
US6480991B1 (en) | Timing-driven global placement based on geometry-aware timing budgets | |
US8661374B2 (en) | Placement aware clock gate cloning and fanout optimization | |
US7484199B2 (en) | Buffer insertion to reduce wirelength in VLSI circuits | |
US9286433B2 (en) | Method of fast analog layout migration | |
US11853676B2 (en) | Layout context-based cell timing characterization | |
US8589848B2 (en) | Datapath placement using tiered assignment | |
US8365120B2 (en) | Resolving global coupling timing and slew violations for buffer-dominated designs | |
US20190065656A1 (en) | Integrated metal layer aware optimization of integrated circuit designs | |
CN1279480C (zh) | 考虑耦合效应进行时延优化的标准单元总体布线方法 | |
CN1862546A (zh) | 一个快速的集成电路可布性分析方法 | |
CN1539113A (zh) | 层次集成电路设计和分析系统中对子模块设计的表达 | |
CN1305127C (zh) | 用去耦合电容实现集成电路供电网络噪声优化的快速方法 | |
US11853682B2 (en) | Systems and methods for identification and elimination of geometrical design rule violations of a mask layout block | |
US6711720B2 (en) | Method of optimizing high performance CMOS integrated circuit designs for power consumption and speed through genetic optimization | |
US20100257499A1 (en) | Techniques for fast area-efficient incremental physical synthesis | |
US6785870B2 (en) | Method of optimizing high performance CMOS integrated circuit designs for power consumption and speed using global and greedy optimizations in combination | |
US20060101365A1 (en) | Method and apparatus for partitioning an integrated circuit chip | |
US20070050744A1 (en) | Method of selecting cells in logic restructuring | |
CN1540554A (zh) | 标准单元总体布线时障碍下时延驱动直角斯坦纳树方法 | |
US20230385507A1 (en) | Ai-based component placement technology for pcb circuits | |
Melikyan et al. | Ranking-based Placement of IC Logic Cells | |
TWI717727B (zh) | 設置巨集元件的方法 | |
CN1223955C (zh) | 基于空白区重分配的缓冲器规划方法 | |
Shih et al. | Symmetrical buffered clock-tree synthesis with supply-voltage alignment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081001 Termination date: 20161114 |