使用迭代伪网表改变的基于路径的定时驱动布局的制作方法

未命名 08-13 阅读:61 评论:0

使用迭代伪网表改变的基于路径的定时驱动布局


背景技术:

1.本发明涉及电气、电子和计算机领域,并且更具体而言,涉及半导体电子设计自动化(eda)等。
2.eda涉及使用软件工具设计电子系统,诸如集成电路(ic)和印刷电路板。一般地,ic有数据信号和时钟;数据信号需要在正确的时间到达某个节点,相对于相应的时钟在该节点循环设备的时间。如果数据信号没有及时到达,则时钟太快,或者数据信号传播时间太长(路径太慢)。
3.目前,半周长线长(hpwl)技术用于eda工艺中的布局(placement)。然而,hpwl没有定时(timing)意识,使得使用hpwl技术开发的ic设计可能不满足定时约束。以前解决hpwl不知道定时的问题的尝试计算量过大,受到全局布局质量和/或定时分析精度的限制,容易饱和,和/或容易在源(source)和宿(sink)之间产生曲折的路径。


技术实现要素:

4.本发明的原理提供了使用迭代伪网表改变的基于路径的定时驱动布局技术。在一个方面,一种用于改善使用电子设计自动化设计的电子电路的定时性能的示例性方法,包括:使用计算机化的布局器(placer),对未布局网表中体现的集成电路设计执行初始线长驱动布局,以获得表示逻辑门的初始布局的数据结构;标识表示初始布局的数据结构中的至少一个源-宿端点对之间的至少一条定时关键的源-宿路径;为至少一个源-宿端点对中的每一对创建新的伪二引脚网,以创建更新的网表;以及在更新的网表上执行修改的线长驱动布局,以获得表示修改的布局的数据结构。
5.在一个或多个实施例中,至少一个定时关键的源宿路径包括多个定时关键的源-宿路径,并且至少一个源-宿端点对包括多个源-宿端点对;标识多个定时关键的源-宿路径、为多个端点对中的每一对创建新的伪二管脚网、以及执行修改的线长驱动布局的步骤被重复用于多个总迭代。
6.执行初始线长驱动布局和执行修改的线长驱动布局均包括,例如,应用半周长线长驱动布局,并且计算机化的布局器包括半周长线长驱动计算机化的布局器。
7.另一方面,一种示例性计算机,包括存储器;以及至少一个处理器,其耦合到存储器,并且可操作用于通过以下方式来改善使用电子设计自动化设计的电子电路的定时性能:使用计算机化的布局器,对未布局网表中体现的集成电路设计执行初始线长驱动布局,以获得表示逻辑门的初始布局的数据结构;标识表示初始布局的数据结构中的至少一个源-宿端点对之间的至少一条定时关键的源-宿路径;为至少一个源-宿端点对中的每一对创建新的伪二引脚网,以创建更新的网表;以及在更新的网表上执行修改的线长驱动布局,以获得表示修改的布局的数据结构。
8.在另一个方面,一种用于改善使用电子设计自动化设计的电子电路的定时性能的示例性方法,包括:从计算机化的布局器获取未布局网表中体现的集成电路设计的初始线长驱动布局的结果,该结果包括表示逻辑门初始布局的数据结构;从计算机化的定时器获
得表示初始布局的数据结构中的至少一个源-宿端点对之间的至少一条定时关键的源-宿路径;为至少一个源-宿端点对中的每一对创建新的伪二引脚网,以创建更新的网表;以及向计算机化的布局器提供更新的网表,以便于计算机化的布局器在更新的网表上执行修改的线长驱动布局,以产生表示修改的布局的数据结构。
9.如本文所用,“促进”动作包括执行动作、使动作更容易、帮助执行动作或促使动作执行。因此,作为示例而非限制,在一个处理器上执行的指令可以通过发送适当的数据或命令来促使或帮助动作被执行,从而促进由在远程处理器上执行的指令执行的动作。为避免疑问,当行为人通过执行行为之外的方式促进某个行为时,该行为仍然由某个实体或实体组合执行。
10.本发明的一个或多个实施例或其要素可以计算机程序产品的形式实施,包括计算机可读存储介质,具有用于执行所示方法步骤的计算机可用程序代码。此外,本发明的一个或多个实施例或其元素可以以系统(或装置)的形式实现,该系统(或装置)包括存储器和至少一个处理器,该处理器耦合到该存储器并可操作来执行示例性方法步骤。此外,在另一方面,本发明的一个或多个实施例或其元素可以以用于执行本文描述的一个或多个方法步骤的装置的形式来实现;该装置可以包括(i)硬件模块,(ii)存储在计算机可读存储介质(或多个这样的介质)中并在硬件处理器上实现的软件模块,或(iii)(i)和(ii)的组合;(i)-(iii)中的任何一个实现本文阐述的特定技术。
11.本发明的技术提供了大量有益的技术效果。例如,在本发明内容部分中描述的实施例提供了以下益处:
12.与使用现有技术设计的芯片相比,使用本发明的方面设计的芯片更优越(例如,更好的定时一致性);
13.与现有技术相比,使用本发明的各方面运行eda的计算机可获得更好的结果,但至少在某些情况下,与现有技术相比,使用更少的资源(cpu、内存等)。
14.本发明的这些及其他特征和优点将从以下说明性实施例的详细描述中变得显而易见,应结合附图执行阅读。
附图说明
15.图1为eda工艺的框图,其中本发明的各方面可用于布局;
16.图2显示了根据本发明的各方面的全局布局;
17.图3显示了半周长线长布局的各方面,可根据本发明的各方面执行增强;
18.图4、图5和图6显示了根据本发明的各方面的定时驱动吸引(timing driven attraction,tda);
19.图7和图8为根据本发明的各方面的流图;
20.图9显示了示例性实验结果;
21.图10描绘了可用于实施本发明的一个或多个方面和/或要素的计算机系统;
22.图11为半导体设计、制造和/或测试中使用的设计过程的流图;
23.图12显示了根据物理设计数据制造io的其他方面;
24.图13显示了示例性高级电子设计自动化(eda)工具流,其中可采用本发明的方面;
25.图14显示了根据本发明的各方面的数据结构中的tda元素;和
26.图15为根据本发明的各方面的框图。
具体实施方式
27.图1显示了半导体设计中使用的物理合成流程。在步骤101中,以硬件描述语言(诸如vhdl)来呈现假定的设计。在步骤103中,执行逻辑合成以从硬件描述语言转换到实际的互连逻辑门。在步骤105中,执行初始(全局)布局;即,将硬件(互连的逻辑门)的抽象描述翻译成可以在芯片上布局的事物。在步骤107中,执行虚拟定时优化。在步骤109中,执行时钟优化。在步骤111中,执行线合成、粗略优化和精细优化。在步骤113中,执行路由(routing)。
28.图2显示了从网表201开始的全局布局过程的进展。最初,最小化总线长,这导致203处的“拥挤”布局。为了满足给定的密度目标,如205、207、209、211所示,逐渐“扩展”布局,最终产生服从约束并且没有任何重叠的合法布局213。
29.在全局布局步骤105和/或时钟优化步骤109中,一个或多个实施例是有用的,例如但不限于此。在步骤105中注意产生良好的全局布局通常会从物理合成流程中获得良好的最终结果。事实上,满足定时收敛的物理合成能力受到全局布局的限制。传统的全局布局算法是连接驱动的线性优化(采用半周长线长“hpwl”)。参考图3,在hpwl方法中,线长近似为包围网中所有终端303-1、303-2、303-3、303-4、303-5的最小边界矩形301的周长的一半。最先进的hpwl最小化使用力定向布局。更好的全局布局hpwl解决方案(满足相同的密度/拥塞约束)通常意味着更好的物理合成结果。hpwl布局还具有速度相对较快的优势。图3的表311显示了物理合成流程的示例性运行时分解。布局部分仅消耗1分40秒的运行时间,而优化部分需要10.5小时,路由部分需要17.3小时。
30.如技术人员所知,电路布图(layout)中的某些路径通常比其他路径更具定时关键性;即,为了使电路能够以期望的时钟频率成功操作,需要在那些路径中保持信号传播时间较短。然而,hpwl没有定时意识。对于复杂的高性能逻辑宏,这可能导致物理合成不足以满足周期时间约束的布局解决方案。
31.已经使用了许多尝试和技术来处理hpwl的这种局限性;各有利弊。在网(net)驱动的布局器中,高网优先考虑定时关键网,其好处是为hpwl优化提供定时信息。然而,这种方法很快饱和,对于高扇出网来说过于激进,过于依赖精确的定时,并且表现出修复一个问题可能导致另一个问题的行为。基于存储器元件(例如触发器)的超图布局有助于平衡定时端点之间的距离。然而,这种方法经常创建拥塞问题,并且可能导致组合逻辑的曲折路径,其中端点很近,但是路径很长。在全局布局发生一次并且可以标识关键路径之后,采用关键路径拉直算法(critical path straightening algorithm);它在减少定时端点之间的信号传播距离方面是强大的,但是受到全局布局解决方案的质量的限制。在布局过程内部实现的定时模型(基于路径)在数学上是有趣的,但是非常消耗cpu,并且过度受限于尚未优化的网表。
32.一个或多个实施例有利地提供了一种向hpwl布局器提供定时信息的全局布局技术;将定时端点(即,定时关键路径的端点)布局得更靠近;和/或拉直关键路径,通过使用迭代伪网表改变的基于路径的定时驱动布局(本文也称为定时驱动吸引(tda))。伪网表改变,在本文也称为“吸引”,是仅在hpwl模型内部创建的从宿到源的“假的”(“伪”)双引脚网。在基于定时估计选择最差“路径”(源定时端点到宿定时端点)的意义上,示例性方法是定时驱
动的,并且吸引沿着那些最差路径行进(每个源/宿对接收吸引)。例如,通过用新的吸引(即,其中已经添加了吸引的新的网表)重新运行全局布局,该示例性方法被实现到布局器中。该示例性方法是迭代的,例如,在运行多个全局布局的意义上,递增地创建更多的吸引和/或增加先前吸引的权重。
33.图4的视图401为逻辑图,显示了根据本发明的各方面的定时驱动吸引(tda)的示例,用于网表的示例性子集。矩形403-1、403-2、403-3、403-4、403-5是定时端点,右边的视图405表示物理布图(具有实际布局;即,由物理hpwl模型表示),对应于视图401的虚线框407内的元素。
34.有多个逻辑门;为了避免混乱,仅对与(and)门421和411以及或(or)门413、417、419执行编号
35.图5显示了具有三个定时端点503-1、503-2和503-3的逻辑图;503-2和503-3被确定为最差的端点。粗线505-1、505-2、505-3、505-4、505-5、505-6通过各种逻辑门(为了避免混乱,没有对所有的逻辑门执行单独编号)将端点503-1、503-3互连起来,这些线表示吸引。注意,或门599具有到与门597的输出和到与门595的另一个输出,但是只有从599到595的输出接收吸引,因为只有那个输出在关键路径上。因此,选择定时最关键的开始/结束点对,在网表中创建新的吸引,并迭代全局布局。
36.图6再现了图4的视图405(nhp驱动布局的默认模型),并添加了新的视图605,显示了吸引687、689的添加(具有关键源到宿对作为网的模型)。在没有吸引687的视图405中,没有动机让门419移动得更靠近源421,因为虚线边界框(以及hpwl)不会改变。然而,视图605中吸引687、689的添加促使将元素421、419和403-4移动得更靠近。
37.现参考图7的流图,该图描绘了根据本发明的各方面采用tda的布局流。存在没有布局的传入网表801。在步骤805中,使用任何当前已知的或以后开发的基于hpwl的布局算法来执行hpwl驱动的布局。在步骤807中,执行定时估计。有利地,在一个或多个实施例中,定时估计不需要在绝对意义上准确(这是有利的,因为在合成流的早期很难在绝对意义上获得准确的定时),只需要相对准确(即,能够确定哪些路径对于促进插入吸引是最关键的,但是不需要知道它们失败了多少皮秒)。此外,可以使用任何当前已知或以后开发的定时器(实现定时的程序)来采用一个或多个实施例(有利地允许该技术容易地适应改进的定时估计方法)。一个或多个实施例采用缓冲器估计(buffer estimation)和合理的金属层假设的组合。
38.在步骤809中,如所述执行吸引创建。如虚线框803和箭头811所示,以迭代的方式重复步骤805、807和809。在每次迭代中,所有的吸引都是一视同仁的;即它们都只是新的网。只希望将关键路径“微移”成直线并使端点更近。从一次迭代到另一次迭代,在一个或多个实施例中保留了所有先前的吸引。因此,已经被改进的路径保持了改进它们的hpwl力,并且重复的违规路径可以被进一步改进(即,被给予更高的优先级)。当完成迭代时,执行到基于定时的优化813。
39.图8给出了物理设计闭合流中tda使用的示例。一个或多个实施例从硬件描述语言(例如,vhdl 901)通过门(逻辑合成903到未布局网表905),并且在它们可用于(首先)全局布局907并通过tda迭代909的意义上是可重用的,然后在流的稍后阶段,在911,存储器元件可被聚集(cluster)和固定(因此它们不再是可移动的),然后剩余的电路元件(除了固定的
存储器元件之外)可通过重复布局913和tda 915来优化,以减少和拉直其他关键路径,在物理合成流的后期阶段,一旦完成了一定量的优化,难以路由的区域中的门可以在917处使用tda吸引展开。有利的是,在虚线框中的步骤期间,许多具有挑战性的复杂算法可以被tda布局完全取代。在步骤917之后,可以在919处执行额外的优化,并且可以在921处执行路由。
40.有利的是,与网驱动布局器相比,采用tda的一个或多个实施例增加了新的网,而不是简单地调整现有网的权重。与现有技术的锁存门技术相比,采用tda的一个或多个实施例提供了将端点拉得更近而不从布局模型中剥离任何组合逻辑的能力,因为调整了实际的网表。关键路径拉直算法是作为全局布局之后的“修补”优化来执行的,而采用tda的一个或多个实施例实际上是与修补优化相反的全局操作。此外,采用tda的一个或多个实施例并不寻求特别拉直关键路径或它们现有的直度;相反,更直的路径只是采用tda的一个或多个实施例的自然结果。采用tda的一个或多个实施例使用布局器的标准线长和密度/拥塞目标函数,并且仅使用定时来调整布局网表模型,这与布局器内部需要定时模型相反。
41.参考图9,一个或多个实施例提供:物理合成的最差松弛度和总负松弛度(品质因数=fom)输出的显著改善;和/或替换许多复杂修改布局算法的能力。注意,一个或多个实施例通常产生稍微更差的hpwl,即使有全面的改进。视图931显示了tda之前的路径939(具有可移动端点)和tda之后的路径941。视图933显示了tda之前的路径943(具有固定端点)和tda之后的路径945。视图935、937显示了七个不同示例定时挑战设计的实验结果的最差松弛(ps)和负松弛和的条形图(使用tda比较基线和结果)。
42.鉴于本文的讨论,本领域技术人员将理解,一个或多个实施例可使用tda技术产生定时驱动布局,其包括,在一个或多个实施例中,选择关键开始/结束点对(使用任何类型的定时估计);将“假的”双引脚网添加到这些标识端点之间的所有宿

源(sink

source)对的网列表中;并使用(任何线长驱动的布局器)运行布局。一个或多个实施例进一步迭代地执行这些步骤。
43.在一个或多个实施例中,选择关键开始/结束点对(使用任何定时估计):执行定时模拟,其中到达时间(at)和所需到达时间(rat)通过网(net)从存储器元件向前和向后传播,以获得网的每个宿引脚处的松弛值(at减去rat)。了解这些宿引脚处的松弛有助于确定关键的两引脚连接(即相关端点之间的连接)。
44.有利的是,一个或多个实施例可与任何线长驱动布局器和任何定时估计技术一起运行。此外,一个或多个实施例可以容易地扩展到n+1合成,其中来自先前物理合成流运行的最差结果被自动选择为最差端点。也就是说,在某些情况下,不一定需要布局点的定时信息;它可能来自以前的运行。此外,一个或多个实施例可扩展到不适合物理合成流。例如,参见图8,示出了在设计/合成过程中的多个点上使用的tda;例如909、915和917内。在一个或多个实施例中,可以在路由921和未布局网表905之间提供数据流;即,可以遍历图8中的整个流,并将结果反馈到下一轮。也就是说,用于创建吸引的智能可以利用路由步骤921的输出。一个或多个实施例在没有吸引的情况下执行初始布局以获得估计的定时,然后使用吸引(使用当前或先前的定时)对布局执行迭代。因此,如果需要,tda可以在物理合成流之外执行。
45.此外,一个或多个实施例可支持用户输入;用户可以指定已知的重要端点(即,关键端点可以但不一定来自定时程序)。此外,一个或多个实施例在任何布局优化期间是可重
用的,而不仅仅是全局布局。例如,在拥塞驱动传播期间,可以使用一个或多个实施例来减少定时影响
46.我们发现,仅关注由布局器(例如,使用hpwl)产生的总线长是不够的。一个或多个实施例有利地解决了通过灵活的方法将定时信息引入布局的挑战性问题,该灵活的方法可以扩展到任何hpwl驱动的布局器和任何定时估计技术(当然,如本领域技术人员将理解的,定时估计需要适当的关注)。在一个或多个实施例中,tda布局流已经被证明(基于实验评估)显著优于定时驱动布局的其他方法。
47.图15显示了包括布局器1501、定时器1503、吸引生成器1505和共享数据结构1507的示例性框图,共享数据结构1507允许框1501、1503和1505之间的数据通信和共享。
48.鉴于迄今为止的讨论,应理解,根据本发明的一个方面,用于改善使用电子设计自动化设计的电子电路的定时性能的示例性方法包括,例如,在步骤805,使用计算机化的布局器1501,对未布局网表中体现的集成电路设计执行初始线长驱动布局,以获得表示逻辑门初始布局的数据结构。布局器1501可以包括商业上可获得的或学术上的布局器,例如实现hpwl技术的布局器;合适的是,所选择的布局器允许添加不必对应于逻辑门的物理引脚的连接,以便允许创建本文描述的吸引,如下面进一步讨论的。
49.另一步骤807包括标识代表初始布局的数据结构中至少一个源-宿端点对之间的至少一条定时关键的源-宿路径。该步骤可以例如使用定时器1503来执行,合适的定时器的非限制性示例包括cadence tempus
tm
(美国加利福尼亚州圣何塞市cadence设计系统公司的商标)和synopsys(美国加利福尼亚州山景城市synopsys公司的注册商标)。
50.另一步骤809(参见图4和图5的讨论)包括为至少一个源-宿端点对中的每一对创建新的伪二引脚网(“吸引”),以创建更新的网表。这可以用吸引生成器1505来执行,吸引生成器1505实现本文阐述的用于创建伪网的逻辑步骤。
51.另一步骤(对更新的网表重复步骤805)包括对更新的网表执行修改的线长驱动布局,以获得表示修改的布局的数据结构。这可以使用布局器1501来完成。
52.现将提供关于一个或多个实施例中使用的吸引和更新的网表的进一步说明。传统上,当人们想到网表时,他们认为它是实际的技术门,其中,例如,与门具有2个输入。在一个或多个实施例中,当添加伪二引脚网时,例如在与门处终止(terminate),它并不真正代表新信号。相反,这是一个纯粹为了优化hpwl驱动的布局的新网。在一个或多个实例中,更新的网表是增加了吸引的修改的传统网表,其不与逻辑门的物理输入/输出(i/o)相关联,而是被提供来增强hpwl计算。传统的网表是实际逻辑信号的表示。例如,反相器的输出驱动与非(nand)门的输入——这种关系是2引脚网。根据本发明的一个或多个实施例的“吸引”是2引脚网,其不代表芯片上存在的实际逻辑信号,而是由hpwl驱动的布局引擎以等同于这种信号的方式使用。
53.现在还参考图14,其描绘了图15的数据结构1507的示例性部分,在一个或多个实施例中,为了创建吸引,在两个逻辑门之间创建新连接。在一个或多个实例中,伪2引脚网的端点是逻辑门。一个或多个实施例为连接分配权重。权重是新连接的属性(类似于标签)。现有网也可以有这样的标签。网上的权重的概念本身在布局算法中是众所周知的。在一个示例性方法中,每个网,包括对应于物理连接的传统网和对应于根据本发明方面的吸引的网,被分配统一的权重。在一个或多个示例性实施例中,执行迭代811,并且当第二次到达步骤
809,并且吸引已经存在时,权重增加(而不是产生新的吸引,尽管在替代方法中可以这样做)。在某些情况下,增加量是用户可配置的参数。一个或多个实施例简单地线性增加权重。
54.因此,通过审查,在一个或多个实施例中,最初,通过使用已知技术将两个逻辑门之间的连接编程到数据结构中,并为连接分配初始权重,来创建两引脚伪网。例如,在图14中,在第一次迭代中,在门1和门2之间创建具有权重“权重_1_2”的吸引;在门6和门4之间创建权重为“权重_6_4”的吸引;并且在门12和门99之间创建权重为“权重_12_99”的吸引。在一个示例性实施例中,所有连接被给予统一的权重(即,权重_1_2=权重_6_4=权重_12_99)。熟练的技术人员将熟悉这种用于实际逻辑信号的常规表示的统一加权,并且根据本文的教导,可以给创造性的“吸引”分配权重。当在迭代期间第二次到达步骤809时(第二次迭代),调整权重。当第二次重复步骤807时,将再次确定关键的源-宿路径。一些逻辑门对(比如门49和门51)第一次并没有吸引,但现在发现它们是关键的;它们得到一个初始权重权重_49_51(可以是1(unity)或另一个值)。一些逻辑门对在第一次是关键的,并且具有吸引,并且再次是关键的,比如门6和门4,它们获得增加的权重(比如,两倍的1或者更一般的2*权重_6_4)(而不是在门6和门4之间产生第二个吸引,但是这是替代方法)。熟悉hpwl的人都知道网加权(net weighting)(实际逻辑信号的常规表示)本身。有可能每次迭代增加固定的量,或者与所讨论的网的时间临界性成比例,或者甚至在某些情况下避免增加。在最简单的方法中,第一次权重=w,第二次2w,第三次3w,依此类推。如所讨论的,也可以只增加一部分权重,或者给具有最差负松弛度的连接更多的权重。同样,本领域技术人员知道如何在两个门之间建立连接,并为其分配权重(对于实际逻辑信号的传统表示),并且,根据本文的教导,可以为创造性的“吸引”分配权重已知加权技术的非限制性示例包括chentouf、mohamed和zine el abidine alaoui ismaili,a novel net weighting algorithm for power and timing-driven placement,vlsi设计,2018年10月18日;goplen,brent,prashant saxena和sachin sapatnekar,net weighting to reduce repeater counts during placement。第42届设计自动化会议论文集,2005年,2005年6月13日(第503-508页),ieee任,郝星,潘志刚,龚世伟,sensitivity guided net weighting for placement-driven synthesis,ieee集成电路与系统计算机辅助设计汇刊,2005年4月25日;24(5)711-21。因此,图14中的权重可以包括在数据结构1507中,并与布局器1501共享。由于吸引是用于增强布局的伪网,因此不需要指定物理引脚。
55.在一个或多个实施例中,至少一条定时关键的源-宿路径包括多条定时关键的源-宿路径,至少一个源-宿端点对包括多个源-宿端点对。
56.一个或多个实施例还包括重复以下步骤:标识多条定时关键的源-宿路径,为多个端点对中的每对端点创建新的伪二引脚网,以及执行修改的线长驱动布局用于多个总迭代。参见箭头811。如本文所使用的,多个总迭代包括第一次运行加上至少一次附加运行。停止迭代可以基于例如固定的迭代次数、“收敛”的标准(例如,定时度量已经停止改善-没有关键路径留下或者定时由于饱和而在后续迭代中变得更差),或者在一定量的cpu使用之后,等等。在非限制性示例中,参考图8,可以有八次迭代909和四次迭代915。
57.在一个或多个实施例中,执行初始线长驱动布局和执行修改的线长驱动布局均包括应用半周长线长驱动布局,其中计算机化的布局器1501包括半周长线长驱动计算机化的布局器。
58.在某些情况下,标识代表初始布局的数据结构中的源-宿端点对之间的多个定时关键的源-宿路径包括使用计算机化的用户界面从人类主题专家获得输入;然而,更典型地,标识表示初始布局的数据结构中的源-宿端点对之间的多个定时关键的源-宿路径包括使用计算机化的定时估计例程(定时器1503)。
59.在一个或多个实施例中,使用计算机化的定时估计程序包括使用计算机化的定时估计程序,以获得在源-宿端点对之间相对准确的结果。如本文别处所讨论的,“相对准确”具有明确的含义,因为源-宿端点对从最差到最好被准确地排序,但是实际到达时间/松弛值不一定是正确的。
60.参见图9中的931,在一个或多个实施例中,对更新的网表执行修改的线长驱动布局,以获得表示修改的布局的数据结构,包括将端点对移动到彼此更靠近。
61.在某些情况下,在更新的网表上执行修改的线长驱动布局,以获得表示修改的布局的数据结构,包括降低端点对之间的路径弯曲度(在931和933处均可见)。在一些这样的实例931中,在更新的网表上执行修改的线长驱动布局以获得表示修改的布局的数据结构还包括将端点对移动得彼此更靠近。
62.如933所示,在某些情况下,当在更新的网表上执行修改的线长驱动布局以获得表示修改的布局的数据结构时,端点对相对于彼此固定。
63.一个或多个实施例还包括在多个总迭代期间保留伪二引脚网;根据图14,权重_1_2和权重_12_99在第二次迭代中被保留,即使在第二次迭代中不是关键的。
64.一个或多个实施例还包括执行逻辑合成103,以获得未布局网表中体现的集成电路设计,以及在多个总迭代之后,对表示修订布局的数据结构的最终版本执行虚拟定时优化107、时钟优化109、布线合成和优化111和路由113。例如,数据结构“的最终版本”可以来自倒数第二次迭代或最终迭代——一般而言,无论哪一次迭代都具有最佳性能。
65.参考图8(从921回到905的虚线箭头),一个或多个实施例还包括,基于路由的结果,重复标识多个定时关键的源-宿路径,为每对端点对创建新的伪二引脚网,并执行修改的线长驱动布局用于新的多个总迭代的步骤。
66.一个或多个实施例还包括基于路由921制造物理集成电路;例如,结束步骤921,准备布图并将布图实例化为设计结构;可以根据设计结构制造物理集成电路。参考本文别处讨论的图11-13。
67.一个或多个实施例还包括,在911,在表示修订布局的数据结构的最终版本上聚集和固定存储器元件;以及重复以下步骤:标识多个定时关键的源-宿路径,为端点对中的每一对创建新的伪二引脚网,以及在存储器元件的聚集和固定之后,执行修改的线长驱动布局用于新的多个总迭代(参考915并注意步骤913以清除来自907和909的吸引)。还要注意,911包括物理聚集,也称为时钟优化或时钟合成。
68.再次考虑“拥塞驱动”扩散。布局算法通常在物理合成流中调用,其目标不仅仅是提高hpwl,而是使用布局引擎来确保hpwl尽可能少地劣化。在这种情况下采用本发明的方面有利地进一步增强了那些算法,以尽可能少地劣化定时。
69.关于缓冲和合理的金属层假设,物理合成流早期阶段的定时信息通常非常不准确。本领域技术人员将理解,应该采取适当的步骤来确保获得关键路径。长导线可能需要包括重复和加强信号的缓冲器。在知道终端位置之前,无法确定长线的最佳缓冲/中继器解决
方案,但是在知道特定网的临界状态之前,不知道终端将在哪里。需要定时信息来执行布局,但是为了执行精确的定时,有必要知道东西被布局在哪里以及它们是如何被优化的。这个问题是棘手的,因此可以基于特定的技术来执行飞行时间计算,如果连接被适当地优化,则提供给定终端(网的源和宿)之间的距离的延迟的近似值。如果路径很短,可以不去管它们。如果路径很长,假设放入一定数量的缓冲器。对于特定的金属层,可以估计飞行时间成本。飞行时间包括传播延迟以及与中间缓冲器/中继级相关联的延迟。熟练的技术人员熟悉当所有电路元件的位置还未知时在设计过程早期执行定时的问题,并且知道需要对插入缓冲器和金属层执行假设。更高的金属层可以使用更宽的导线。在低层布线的关键路径在高层布线时可能一点也不关键。假设所有的连接都在最低的金属层可能是不现实的。给定2引脚网(源和宿),技术估计路由器将做什么-路由器将如何绘制这些终端之间的线,以及优化将如何决定是否需要沿该线插入一些中继器。这是已知的问题,只要在设计过程的早期完成定时(虚拟定时、定时估计)。根据本文的教导,技术人员可以实现合适的缓冲和合理的金属层假设。
70.一个或多个实施例提供了一种用于改善使用电子设计自动化设计的电子电路的定时性能的方法,该方法包括:从计算机化的布局器1501获取未布局网表中体现的集成电路设计的初始线长驱动布局的结果,该结果包括表示逻辑门初始布局的数据结构;从计算机化的定时器1503获得数据结构中表示初始布局的至少一个源-宿端点对之间的至少一条定时关键的源-宿路径;为至少一个源-宿端点对中的每一对创建(例如,利用生成器1505)新的伪二引脚网,以创建更新的网表;以及向计算机化的布局器提供更新的网表,以便于计算机化的布局器在更新的网表上执行修改的线长驱动布局,以产生表示修改的布局的数据结构。
71.在一个或多个实施例中,所得布图实例化为设计结构。参见图11的讨论。然后根据设计结构制造物理集成电路。再次参见图11的讨论。也参考图12。一旦部分基于本文所述的分析过程获得了物理设计数据,就可以根据参考图12一般描述的已知过程来制造据此设计的集成电路。通常,制造并切割具有最终设计的多个副本的晶片(wafer),使得每个管芯(die)是集成电路的一个副本。在框1110,该过程包括基于最终确定的物理布图制造用于光刻的掩模。在框1120,制造晶片包括使用掩模来执行光刻和蚀刻。一旦晶片被切割,在1130执行每个管芯的测试和分类,以过滤掉任何有缺陷的管芯
72.一个或多个实施例包括计算机,该计算机包括存储器28;以及至少一个处理器16,其耦合到存储器,并且可操作来执行或以其他方式促进本文描述的方法步骤(如图10所示)中的任何一个、一些或全部。在一个或多个实施例中,使用本发明的方面,可以减少设计周期期间所需的计算机资源/cpu时间的数量,以及人类设计工程师的工作时间的数量。或者,利用相同的资源和设计工程师时间,可以设计出不同的和更好的(在定时性能等方面)芯片。
73.此外,参考图11,在一个或多个实施例中,至少一个处理器操作用于生成电路设计的设计结构,在至少一些实施例中,至少一个处理器还操作用于控制集成电路制造设备,以根据设计结构制造物理集成电路。因此,该布图可以被实例化为设计结构,并且该设计结构可以被提供给制造设备,以便于根据该设计结构制造物理集成电路。物理集成电路将得到改进(例如,与不使用本发明的eda方面的设计相比,由于增强的布局/定时性能)。
74.图13描绘了示例性高级电子设计自动化(eda)工具流,其负责创建待制造的优化微处理器(或其他ic)设计。设计者可以从电路的高级逻辑描述1201(例如,vhdl或verilog)开始。逻辑合成工具1203编译该逻辑,并在没有任何物理表示的情况下利用估计的定时信息对其执行优化。布局工具1205获取逻辑描述并布局每个组件,期望最小化设计的每个区域中的拥塞。时钟合成工具1207通过克隆/平衡/缓冲锁存器或寄存器来优化时钟树网。定时收敛步骤1209对设计执行许多优化,包括缓冲、线调谐和电路重新供电;它的目标是产生可路由的设计,没有定时违规,没有额外的功耗。路由阶段1211采用布局的/优化的设计,并确定如何创建导线来连接所有组件,而不导致制造违规。路由后定时关闭1213执行另一组优化来解决路由后剩余的任何违规。设计完成1215然后向网表添加额外的金属形状,以符合制造要求。检查步骤1217分析设计是否违规任何要求,例如制造、定时、功率、电迁移(例如,使用本文公开的技术)或噪声。当设计是干净的时,最后的步骤1219是生成用于设计的布图,表示在要制造的设计1221中要制造的所有形状。
75.本发明的一个或多个实施例或其元件可通过装置的形式实施,所述装置包括存储器和至少一个处理器,所述处理器连接至所述存储器,可操作以执行示例性方法步骤。图10描绘了可用于实现本发明的一个或多个方面和/或元素的计算机系统;它在本文被称为云计算节点,但也代表服务器、通用计算机等。这可以在云中或本地提供。
76.云计算节点10中有一个计算机系统/服务器12,可与众多其他通用或专用计算系统环境或配置一起运行。适用于计算机系统/服务器12的众所周知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。
77.计算机系统/服务器12可在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般环境下执行描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
78.如图10所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式显示。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28以及将包括系统存储器28在内的各种系统组件耦合到处理器16的总线18。
79.总线18代表多种类型总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口和使用多种总线架构中的任何一种的处理器或局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线和外围组件互连(pci)总线。
80.计算机系统/服务器12通常包括各种计算机系统可读介质。这种介质可以是可由计算机系统/服务器12访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
81.系统存储器28可包括易失性存储器形式的计算机系统可读介质,如随机存取存储器(ram)30和/或高速缓冲存储器32。计算机系统/服务器12还可以包括其他可移动/不可移
动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统34可以被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。虽然未示出,但是可以提供用于从可移动、非易失性磁盘(例如“软盘”)读取和向其写入的磁盘驱动器,以及用于从可移动、非易失性光盘(例如cd-rom、dvd-rom或其他光学介质)读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有被配置为执行本发明实施例的功能的一组(例如,至少一个)程序模块。
82.具有一组(至少一个)程序模块42的程序/实用程序40可存储在存储器28中,例如但不限于操作系统、一个或多个应用程序、其他程序模块和程序数据。操作系统、一个或多个应用程序、其他程序模块和程序数据或其某种组合中的每一个都可以包括网络环境的实现。程序模块42通常执行本文描述的本发明实施例的功能和/或方法。
83.计算机系统/服务器12还可与一个或多个外部设备14通信,诸如键盘、定点设备、显示器24等;使用户能够与计算机系统/服务器12交互的一个或多个设备;和/或任何设备(例如,网卡、调制解调器等。)使计算机系统/服务器12能够与一个或多个其他计算设备通信。这种通信可以通过输入/输出(i/o)接口22执行。此外,计算机系统/服务器12可以通过网络适配器20与一个或多个网络通信,例如局域网(lan)、通用广域网(wan)和/或公共网络(例如,互联网)。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微码、设备驱动程序、冗余处理单元和外部磁盘驱动器阵列、raid系统、磁带驱动器和数据归档存储系统等。
84.因此,一个或多个实施例可利用通用计算机或工作站上运行的软件。参考图10,这样的实现可以采用例如处理器16、存储器28和到显示器24和外部设备14(例如键盘、定点设备等)的输入/输出接口22。本文使用的术语“处理器”旨在包括任何处理设备,例如包括cpu(中央处理单元)和/或其他形式的处理电路的处理设备。此外,术语“处理器”可以指不止一个单独的处理器。术语“存储器”旨在包括与处理器或cpu相关联的存储器,诸如例如ram(随机存取存储器)30、rom(只读存储器)、固定存储设备(例如硬盘驱动器34)、可移动存储设备(例如磁盘)、闪存等。此外,本文使用的短语“输入/输出接口”旨在考虑到例如用于向处理单元(例如鼠标)输入数据的一个或多个机构的接口,以及用于提供与处理单元(例如打印机)相关联的结果的一个或多个机构。处理器16、存储器28和输入/输出接口22可以例如经由总线18互连,作为数据处理单元12的一部分。适当的互连,例如经由总线18,也可以被提供给网接口20,例如网卡,其可以被提供来与计算机网接口,并且被提供给介质接口,例如软盘或cd-rom驱动器,其可以被提供来与适当的介质接口。
85.因此,包括用于执行本发明方法的指令或代码的计算机软件,如本文所述,可存储在一个或多个相关联的存储设备(例如,rom、固定或可移动存储器)中,并在准备使用时,部分或全部加载(例如,加载到ram中)并由cpu实施。这种软件可以包括但不限于固件、常驻软件、微码等。
86.适用于存储和/或执行程序代码的数据处理系统包括至少一个处理器16,通过系统总线18直接或间接连接至存储器元件28。存储器元件可以包括在程序代码的实际执行期间使用的本地存储器、大容量存储器和高速缓冲存储器32,高速缓冲存储器32提供至少一
些程序代码的临时存储,以便减少在执行期间必须从大容量存储器检索代码的次数。
87.输入/输出或i/o设备(包括但不限于键盘、显示器、定点设备等)可直接或通过中间i/o控制器连接至系统。
88.网适配器20也可连接至系统,以使数据处理系统通过中间私有或公共网连接至其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是当前可用的网适配器类型中的几个。
89.如本文所用,包括权利要求,“服务器”包括运行服务器程序的物理数据处理系统(例如,图10所示的系统12)。将会理解,这样的物理服务器可以包括或不包括显示器和键盘。
90.应注意,本文所述的任何方法可包括提供系统的附加步骤,系统包括体现在计算机可读存储介质上的不同软件模块;这些模块可以包括例如在框图中描绘的和/或在此描述的任何或所有适当的元件;作为示例而非限制,所描述的模块/块和/或子模块/子块中的任何一个、一些或全部(例如,在图15中)。然后,如上所述,可以使用在一个或多个硬件处理器诸如16上执行的系统的不同软件模块和/或子模块来执行方法步骤。此外,计算机程序产品可以包括具有代码的计算机可读存储介质,该代码适于被实现来执行本文描述的一个或多个方法步骤,包括为系统提供不同的软件模块。
91.在某些情况下可采用的用户界面的一个示例是由服务器等向用户计算设备的浏览器提供的超文本标记语言(html)代码。html被用户计算设备上的浏览器解析以创建图形用户界面(gui)。
92.示例性系统和制品细节
93.本发明可为任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的(一个或多个)计算机可读存储介质,用于使处理器执行本发明的各方面。
94.计算机可读存储介质可为有形设备,可保留和存储供指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述设备的任何合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备,例如穿孔卡或其上记录有指令的凹槽中的凸起结构,以及前述的任何合适的组合。如此处所使用的,计算机可读存储介质本身不应被解释为瞬时信号,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
95.本文所述的计算机可读程序指令可通过网络,例如互联网、局域网、广域网和/或无线网络,从计算机可读存储介质下载至相应的计算/处理设备,或下载至外部计算机或外部存储装置。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
96.用于执行本发明操作的计算机可读程序指令可为汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据、集成电路配置数据,或以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的编程语言,如smalltalk、c++等,以及程序编程语言,如“c”编程语言或类似编程语言。计算机可读程序指令可以完全在用户计算机上执行,部分在用户计算机上执行,作为独立软件包,部分在用户计算机上执行,部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令,以个性化电子电路,从而执行本发明的方面。
97.本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流图和/或框图,描述了本发明的各方面。将会理解,流图和/或框图的每个框以及流图和/或框图中的框的组合可以由计算机可读程序指令来实现。
98.可将这些计算机可读程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,以生产机器,从而通过计算机或其他可编程数据处理装置的处理器执行的指令,可创建用于实施流图和/或框图方框中规定的功能/动作的装置。这些计算机可读程序指令也可以存储在计算机可读存储介质中,该计算机可读存储介质可以引导计算机、可编程数据处理装置和/或其他设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括一种制造品,该制造品包括实现流图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
99.计算机可读程序指令也可加载到计算机、其他可编程数据处理装置或其他装置上,以使一系列操作步骤在计算机、其他可编程装置或其他设备上执行,从而产生计算机实施的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实施流图和/或方框图方框中规定的功能/动作。
100.图中的流图和框图说明了根据本发明各种实施例的系统、方法和计算机程序产品的可能实施的架构、功能和操作。在这点上,流图或框图中的每个框可以表示指令的模块、片段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些替代实施方式中,方框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意到,框图和/或流图图示中的每个框以及框图和/或流图图示中的框的组合可以由基于专用硬件的系统来实现,该系统执行指定的功能或动作或者执行专用硬件和计算机指令的组合。
101.用于半导体设计、制造和/或测试的示例性设计工艺
102.一个或多个实施例将本文的tda技术与半导体集成电路设计模拟、测试、布图和/或制造相结合。在这点上,图11示出了例如在半导体ic逻辑设计、仿真、测试、布图和制造中使用的示例性设计流700的框图。设计流700包括用于处理设计结构或设备的过程、机器和/或机制,以生成设计结构和/或设备的逻辑上或功能上等效的表示,例如可以使用本文公开的技术等来分析的那些表示。由设计流700处理和/或生成的设计结构可以被编码在机器可
读存储介质上,以包括数据和/或指令,当在数据处理系统上执行或以其他方式处理时,这些数据和/或指令生成硬件组件、电路、设备或系统的逻辑、结构、机械或其他功能上等效的表示。机器包括但不限于在ic设计过程中使用的任何机器,例如设计、制造或模拟电路、组件、设备或系统。例如,机器可以包括:光刻机、用于生成掩模的机器和/或设备(例如电子束写入器)、用于模拟设计结构的计算机或设备、制造或测试过程中使用的任何装置、或者用于将设计结构的功能等效表示编程到任何介质中的任何机器(例如用于编程可编程门阵列的机器)。
103.设计流700可根据所设计的表示类型而变化。例如,用于构建专用ic(asic)的设计流700可以不同于用于设计标准组件的设计流700,或者不同于用于将设计实例化为可编程阵列的设计流700,例如由altera公司或xilinx公司提供的可编程门阵列(pga)或现场可编程门阵列(fpga)。
104.图11说明了多种此类设计结构,包括优选由设计过程710处理的输入设计结构720。设计结构720可以是由设计过程710生成和处理的逻辑仿真设计结构,以产生硬件设备的逻辑等效功能表示。设计结构720还可以或替代地包括数据和/或程序指令,当由设计过程710处理时,生成硬件设备的物理结构的功能表示。无论是表示功能和/或结构设计特征,设计结构720都可以使用电子计算机辅助设计(ecad)来生成,例如由核心开发者/设计者实现。当在门阵列或存储介质等上编码时,设计结构720可以被设计过程710内的一个或多个硬件和/或软件模块访问和处理,以模拟或以其他方式功能性地表示电子组件、电路、电子或逻辑模块、装置、设备或系统。这样,设计结构720可以包括文件或其他数据结构,包括人和/或机器可读的源代码、编译结构和计算机可执行代码结构,当由设计或仿真数据处理系统处理时,它们在功能上仿真或以其他方式表示电路或其他级别的硬件逻辑设计。这种数据结构可以包括硬件描述语言(hdl)设计实体或符合和/或兼容诸如verilog和vhdl的较低级hdl设计语言和/或诸如c或c++的较高级设计语言的其他数据结构。
105.设计过程710优选采用并结合硬件和/或软件模块,用于合成、翻译或以其他方式处理组件、电路、设备或逻辑结构的设计/模拟功能等效物,以生成可包含设计结构(诸如设计结构720)的网表780。网表780可以包括,例如,编译的或以其他方式处理的数据结构,表示一列导线、分立元件、逻辑门、控制电路、i/o设备、模型等。描述集成电路设计中与其他元件和电路的连接。可以使用迭代过程来合成网表780,在该迭代过程中,根据设备的设计规范和参数,网表780被重新合成一次或多次。如同本文描述的其他设计结构类型,网表780可以被记录在机器可读数据存储介质上或者被编程到可编程门阵列中。该介质可以是非易失性存储介质,例如磁盘或光盘驱动器、可编程门阵列、小型闪存或其他闪存。此外,或者可选地,该介质可以是系统或高速缓冲存储器、缓冲器空间或其他合适的存储器。
106.设计过程710可包括用于处理包括网表780在内的各种输入数据结构类型的硬件和软件模块。这种数据结构类型可以驻留在例如库元素730中,并且包括一组常用的元素、电路和设备,包括用于给定制造技术(例如,不同的技术节点,32纳米、45纳米、90纳米等)的模型、布图和符号表示。数据结构类型还可以包括设计规范740、表征数据750、验证数据760、设计规则770和测试数据文件785,测试数据文件785可以包括输入测试模式、输出测试结果和其他测试信息。设计过程710可以进一步包括例如标准机械设计过程,诸如应力分析、热分析、机械事件模拟、诸如铸造、模制和模压成形等操作的过程模拟。机械设计领域的
普通技术人员可以理解在设计过程710中使用的可能的机械设计工具和应用的范围,而不偏离本发明的范围和精神。设计过程710还可以包括用于执行标准电路设计过程的模块,诸如定时分析、验证、设计规则检查、布局和路由操作等。使用迭代伪网表改变的基于路径的定时驱动布局可以如本文所述来执行。
107.设计过程710采用并结合逻辑和物理设计工具,诸如hdl编译器和仿真模型构建工具,以处理设计结构720以及部分或全部所示支持数据结构和任何附加机械设计或数据(如适用),以生成第二设计结构790。设计结构790以用于机械设备和结构的数据交换的数据格式驻留在存储介质或可编程门阵列上(例如,存储在iges、dxf、parasolid xt、jt、drg中的信息,或者用于存储或呈现这种机械设计结构的任何其他合适的格式)。类似于设计结构720,设计结构790优选地包括一个或多个文件、数据结构或驻留在数据存储介质上的其他计算机编码数据或指令,并且当由ecad系统处理时,生成一个或多个ic设计等的逻辑或其他功能等效形式。在一个实施例中,设计结构790可以包括编译的、可执行的hdl仿真模型,其在功能上仿真待分析的设备。
108.设计结构790还可采用用于集成电路布图数据交换的数据格式和/或符号数据格式(例如,存储在gdsii(gds2)、gl1、oasis、地图文件中的信息,或用于存储此类设计数据结构的任何其他合适的格式)。设计结构790可以包括信息,诸如例如符号数据、地图文件、测试数据文件、设计内容文件、制造数据、布图参数、导线、金属层、通孔、形状、用于通过生产线路由的数据,以及制造商或其他设计者/开发者生产本文描述的设备或结构所需的任何其他数据(例如,lib文件)。设计结构790然后可以执行到阶段795,在该阶段,例如,设计结构790:执行到流片,被发布到制造,被发布到掩模工厂,被发送到另一个设计工厂,被发送回客户,等等。
109.本发明各种实施例的描述仅用于说明目的,但并非旨在穷尽或限制所公开的实施例。在不脱离所述实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择本文使用的术语是为了最好地解释实施例的原理、实际应用或对市场上发现的技术的技术改进,或者使本领域的其他普通技术人员能够理解本文公开的实施例。

技术特征:
1.一种用于改善使用电子设计自动化设计的电子电路的定时性能的方法,所述方法包括:使用计算机化的布局器,对未布局网表中体现的集成电路设计执行初始线长驱动布局,以获得表示逻辑门的初始布局的数据结构;标识表示所述初始布局的所述数据结构中的至少一个源-宿端点对之间的至少一条定时关键的源-宿路径;为所述至少一个源-宿端点对中的每一对创建新的伪二引脚网,以创建更新的网表;以及在所述更新的网表上执行修改的线长驱动布局,以获得表示修改的布局的数据结构。2.根据权利要求1所述的方法,其中所述至少一个定时关键的源宿路径包括多个定时关键的源-宿路径,并且所述至少一个源-宿端点对包括多个源-宿端点对。3.根据权利要求2所述的方法,还包括重复所述步骤:标识所述多个定时关键的源-宿路径,为所述多个端点对中的每一对创建所述新的伪二管脚网,以及执行所述修改的线长驱动布局用于多个总迭代。4.根据权利要求3所述的方法,其中执行所述初始线长驱动布局和执行所述修改的线长驱动布局各自包括应用半周长线长驱动布局,并且其中所述计算机化的布局器包括半周长线长驱动计算机化的布局器。5.根据权利要求3所述的方法,其中标识表示所述初始布局的所述数据结构中的所述源-宿端点对之间的所述多个定时关键的源-宿路径包括使用计算机化的用户界面从人类主题专家获得输入。6.根据权利要求3所述的方法,其中标识表示所述初始布局的所述数据结构中的所述源-宿端点对之间的所述多个定时关键的源-宿路径包括使用计算机化的定时估计例程。7.根据权利要求6所述的方法,其中使用所述计算机化的定时估计例程包括使用所述计算机化的定时估计例程来获得在所述源-宿端点对之间相对准确的结果。8.根据权利要求3所述的方法,其中在所述更新的网表上执行所述修改的线长驱动布局以获得表示修改的布局的所述数据结构包括将所述端点对彼此移动得更近。9.根据权利要求3所述的方法,其中在所述更新的网表上执行所述修改的线长驱动布局以获得表示修改的布局的所述数据结构包括降低所述端点对之间的路径的曲折度。10.根据权利要求9所述的方法,其中在所述更新的网表上执行所述修改的线长驱动布局以获得表示修改的布局的所述数据结构还包括将所述端点对彼此移动得更近。11.根据权利要求9所述的方法,其中当在所述更新的网表执行所述修改的线长驱动布局以获得表示修改的布局的所述数据结构时,所述端点对相对于彼此是固定的。12.根据权利要求3所述的方法,还包括在所述多个总迭代期间保留所述伪二引脚网。13.根据权利要求3所述的方法,还包括:执行逻辑合成以获得体现在所述未布局网表中的所述集成电路设计;以及在所述多个总迭代之后,对表示所述修改的布局的所述数据结构的最终版本执行虚拟定时优化、时钟优化、布线合成和优化以及路由。14.根据权利要求13所述的方法,还包括:基于所述路由的结果,重复所述步骤:标识所述多个定时关键的源-宿路径,为所述端
点对中的每一对创建所述新的伪二管脚网,以及执行所述修改的线长驱动布局用于新的多个总迭代。15.根据权利要求13所述的方法,还包括基于所述路由制造物理集成电路。16.根据权利要求3所述的方法,还包括:在表示所述修改的布局的所述数据结构的最终版本上聚集和固定存储元素;基于所述聚集和固定,执行进一步修改的线长驱动布局;以及重复所述步骤:标识所述多个定时关键的源-宿路径,为所述端点对中的每一对创建所述新的伪二管脚网,并且在基于所述聚集和固定的所述进一步修改的线长驱动布局之后,执行所述修改的线长驱动布局用于新的多个总迭代。17.一种计算机,包括:存储器;以及至少一个处理器,其耦合到所述存储器,并且可操作用于通过以下方式来改善使用电子设计自动化设计的电子电路的定时性能:使用计算机化的布局器,对未布局网表中体现的集成电路设计执行初始线长驱动布局,以获得表示逻辑门的初始布局的数据结构;标识表示所述初始布局的所述数据结构中的至少一个源-宿端点对之间的至少一条定时关键的源-宿路径;为所述至少一个源-宿端点对中的每一对创建新的伪二引脚网,以创建更新的网表;以及在所述更新的网表上执行修改的线长驱动布局,以获得表示修改的布局的数据结构。18.根据权利要求17所述的计算机,其中所述至少一个定时关键的源宿路径包括多个定时关键的源-宿路径,并且所述至少一个源-宿端点对包括多个源-宿端点对,并且其中,所述至少一个处理器还可操作来重复所述步骤:标识所述多个定时关键的源-宿路径、为所述多个端点对中的每一对创建所述新的伪二引脚网、以及执行所述修改的线长驱动布局用于多个总迭代。19.根据权利要求18所述的计算机,其中所述至少一个处理器还可操作用于:在所述多个总迭代之后,对表示所述修改的布局的所述数据结构的最终版本执行虚拟定时优化、时钟优化、布线合成和优化以及路由;并且基于所述路由准备布图;将所述布图实例化为设计结构;以及向制造设备提供所述设计结构,以便于根据所述设计结构制造物理集成电路。20.一种计算机程序产品,包括一个或多个计算机可读存储介质,其上存储有:可由计算机系统执行的第一程序指令,以使计算机系统使用计算机化的布局器对未布局网表中体现的集成电路设计执行初始线长驱动布局,以获得表示逻辑门的初始布局的数据结构;可由所述计算机系统执行的第二程序指令,以使所述计算机系统标识表示所述初始布局的所述数据结构中的至少一个源-宿端点对之间的至少一条定时关键的源-宿路径;可由所述计算机系统执行的第三程序指令,以使所述计算机系统为所述至少一个源-宿端点对中的每一对创建新的伪二引脚网,以创建更新的网表;以及
可由所述计算机系统执行的第四程序指令,以使计算机系统在所述更新的网表上执行修改的线长驱动布局,以获得表示修改的布局的数据结构。21.根据权利要求20所述的计算机程序产品,其中所述至少一个定时关键的源宿路径包括多个定时关键的源-宿路径,并且所述至少一个源-宿端点对包括多个源-宿端点对,还包括可由计算机系统执行的第五程序指令,以使计算机系统重复所述步骤:标识所述多个定时关键的源-宿路径、为所述多个端点对中的每一对创建所述新的伪二引脚网、以及执行所述修改的线长驱动布局用于多个总迭代。22.根据权利要求21所述的计算机程序产品,还包括:可由计算机系统执行的第六程序指令,以使计算机系统在所述多个总迭代之后,对表示所述修改的布局的所述数据结构的最终版本执行虚拟定时优化、时钟优化、布线合成和优化以及路由;以及可由计算机系统执行的第七程序指令,以使计算机系统基于所述路由准备布图;可由计算机系统执行的第八程序指令,以使计算机系统将所述布图实例化为设计结构;以及可由计算机系统执行的第九程序指令,以使计算机系统向制造设备提供所述设计结构,以便于根据所述设计结构制造物理集成电路。23.一种用于改善使用电子设计自动化设计的电子电路的定时性能的方法,所述方法包括:从计算机化的布局器获得未布局网表中体现的集成电路设计的初始线长驱动布局的结果,所述结果包括表示逻辑门的初始布局的数据结构;从计算机化的定时器获得表示所述初始布局的所述数据结构中的至少一个源-宿端点对之间的至少一条定时关键的源-宿路径;为所述至少一个源-宿端点对中的每一对创建新的伪二引脚网,以创建更新的网表;以及向所述计算机化的布局器提供所述更新的网表,以便于所述计算机化的布局器在所述更新的网表上执行修改的线长驱动布局,以产生表示修改的布局的数据结构。24.根据权利要求23所述的方法,其中所述至少一个定时关键的源宿路径包括多个定时关键的源-宿路径,并且所述至少一个源-宿端点对包括多个源-宿端点对。25.根据权利要求24所述的方法,还包括重复所述步骤:获得所述多个定时关键的源-宿路径,为所述多个端点对中的每一对创建所述新的伪二引脚网,以及提供所述更新的网表用于多个总迭代。

技术总结
使用计算机化的布局器,对体现在未布局网表中的集成电路设计执行初始线长驱动布局,以获得表示逻辑门的初始布局的数据结构。标识表示初始布局的数据结构中的至少一个源-宿端点对之间的至少一个定时关键的源-宿路径。为至少一个源-宿端点对中的每一对创建新的伪二引脚网,以创建更新的网表。在更新的网表上执行修改的线长驱动布局,以获得表示修改的布局的数据结构。数据结构。数据结构。


技术研发人员:B
受保护的技术使用者:国际商业机器公司
技术研发日:2021.12.15
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐