通过保留长线路和共享长线路进行fpga布线的制作方法

文档序号:6454349阅读:250来源:国知局
专利名称:通过保留长线路和共享长线路进行fpga布线的制作方法
技术领域
本发明总体上涉及电路设计领域,并且更具体地涉及通过硬件描述语言 的自动电路设计合成。
背景技术
对于在集成电路(IC)上的电路设计,设计者通常使用计算机辅助设计 技术。被称为硬件描述语言(HDL)的标准语言被开发用来在复杂电路的设 计和模拟中帮助描述电路。一些诸如VHDL和Verilog的HDL逐渐成为工业 标准。VHDL和Verilog是通用目标硬件描述语言,它们允许使用抽象的数 据类型在门级、寄存器传输级(RTL)或行为级定义硬件模型。
在使用HDL编译器设计电路时,设计者首先描述在HDL源代码中的电 路元件,然后编译源代码以产生合成的RTL网络表。该RTL网络表对应于 电路元件的图示。包括合成电路元件的电路通常被优化以改善定时关系并消 除不必要的或多余的逻辑元件。这些优化通常包括替换不同的门类型或在电 路中结合或消除门。图1显示了用于设计特定类型IC的代表性的流程图, 所述特定类型的IC例如具有被称为目标结构的预定结构的现场可编程门阵 列(FPGA)。操作101包括通过编译器接收IC的描述(如写在HDL中的描 述),所述编译器在操作103中执行从HCL描述到RTL描述的合成。在操 作105中,RTL描述被映射到如赛灵思(Xmnx) FPGA结构的目标结构上, 并且在目标结构中执行最优化。在最优化被完成后,用于目标结构的网络表被生成。用于IC计算机辅助设计的各种方法和系统在美国专利6,438,735、 6,449,762和6,973,632中被描述,所有这些专利被作为参考结合于此。
图2进一步显示了关于现有技术中用于优化IC设计的方法的细节。在 操作151中,通过特定组件驱动的负载被确定,并且在操作153中,这些负 载中的大部分关键负载被确定。然后特定关键组件被复制(操作155)并且 大部分关键负载被连接(操作157)到复制的关键组件。这将会减少原始的 关键组件的配线网络资源的扇出。如果负载对用于IC的定时约束或需求有 不利的影响(或负载具有负的延迟),该负载被认为很关键,并且该组件也 被认为很关键因为组件驱动关键负载。然后在操作159中再次计算IC的延 迟,并且确定延迟是否被改善(操作161)。如果延迟没有被改善,那么复制 被放弃(操作163)并且程序返回操作151。如果延迟被改善,那么如图2 所示程序从操作161返回到操作151来优化具有其它关键组件的其它路线。 图3A、 3B和3C显示了图2的优化方法的示例。
图3A显示了可以根据图1的方法并利用根据图2的方法执行的优化设 计的集成电路的至少一部分的示意图。图3A显示的在此阶段的设计包括在 集成电路的表示图201上的9个开关阵列(SM)。开关阵列是在某些类型的 现场可编程门阵列中使用的公共互连装置,如Xilinx的门阵列。开关阵列 202-210允许用于多个组件的互连,诸如将信号输出到接收这些信号的负载 的驱动组件。在图3A中显示的设计包括一个驱动器215和7个负载L1-L7。 特别地,驱动器215通过在图3A中显示的包括配线Wl、 W2和W3的布线 网络来驱动负载216-222。布线网络包括所述三条配线,该三条配线是在IC 上现有的配线资源。配线通过开关矩阵209上的开关被连接,所述开关矩阵 209上的开关被标记为SW1、 SW2和SW3,并且在驱动器的开关被标记为 SWD。在设计中的关键负载按照重要性为Ll、 L2、 L3和L4,最关键的是 第一个。在每个负载上的网络的滞后取决于配线滞后、开关滞后和在每个开关上的扇出。在开关SWD上的扇出等于3,因为有3根配线连接到开关SW1 、 SW2和SW3,所述开关SW1、 SW2和SW3由它们的电容导致配线滞后。 驱动器D215的网络的总扇出等于7,但是在开关SWD的根扇出只有3。开 关SWD的根扇出的详情在图3B中显示,图3B显示了为开关矩阵209提供 输入的驱动器组件215,该输入被驱动器230接收,如图3B所示该驱动器 230依次驱动在开关SWD中的3个传输门(225、 226和227)。每个传输门 具有寄生电容,所述寄生电容的示例显示为传输门225上的寄生电容231。 所述寄生电容增加了根扇出的滞后。应当理解,驱动器组件215可以是各种 不同逻辑组件中的一种,这些逻辑组件诸如触发器、查找表或包括数字逻辑 电路的其它类型的逻辑组件。
先前用于复制的方法集中于减少扇出,特别是在网络根部的扇出,而不 考虑怎样使用现有的配线资源来连接网络。例如,如果我们想通过隔离关键 负载Ll和L2来减少扇出,驱动器D可以被复制并且复制的驱动器215A可 以驱动剩余的负载。由驱动器215驱动的网络的总扇出将是2 (从7减少), 并且由驱动器215A驱动的网络的总扇出将是5。这些在图3C中被描述。然 而,在滞后方面,对于关键负载L3和L4将几乎没有变化,因为由驱动器 215A驱动的网络的根滞后与复制前的一样仍然是3,并且如果配线Wl被更 快的连接Ll和L2,那么开关254和连接负载L3和L4的配线W1A的滞后 将会更大。
希望提供改善的自动电路设计技术,该技术包括这里描述的包括改善的 布线和优化技术的技术。

发明内容
本发明涉及用于设计集成电路的各种方法和装置,并且特别涉及使用数 据处理系统来设计一个或多个集成电路的自动设计。根据本发明的一个方面,用于设计包括布线的集成电路的示例性的方法,在作为设计IC过程的 一部分的第一布线级中,在IC示意图上的连接使用第一组配线资源,并且 一旦在第一组中的配线资源被用于布线就将该接线资源标记为已用;在使用
第二配线资源的第二布线级中,IC示意图上的连接不用检测第二组中的配线
资源是否是以前用于路线连接,其中第二组中的配线资源的平均物理尺寸不 同于第一组中的配线资源。通常,第二组中的配线资源的平均长度长于在第 一组的配线资源,其中一旦所述配线资源作为线路操作的部分被使用,在不 将所述第二组中的配线资源标记为保留的情况下使用所述第二组执行布线。
根据本发明的另一个方面,示例性的方法包括在将被设计的ic示意图
中确定驱动组件的扇出;确定在IC示意图中由驱动组件驱动的用于驱动组 件的负载;确定用于将负载连接到驱动组件的现有的配线资源的使用;并且 基于现有配线资源的使用和驱动组件以及由驱动组件驱动的负载的扇出来 优化IC的设计。通常,优化包括确定是否通过复制驱动组件来减少在驱动 组件的扇出,以及是否通过数据处理系统自动执行复制,该数据处理系统可 配置有机器可读的媒体来执行复制。
根据本发明的另一个方面,作为设计集成电路过程的一部分,示例性方 法包括确定从负载到驱动组件的布线网络以及确定用于驱动组件的复制版 本的可用位置;在集成电路的示意图中,基于布线网络和可用位置创建驱动 组件的复制版本;并且在示意图中的复制版本和负载之间产生连接。该方法 可以被用于执行基于负载的复制,其中通过经由可用配线从关键负载返回并 通过检查用于复制的驱动器的可用位置而执行复制。此外,在区域中的可以 由相同的复制驱动器驱动的其它负载也可以通过下面描述的改进的布线方 法被连接。
在这里将描述根据本发明的另一个方面,作为设计集成电路过程的一部 分,示例性的方法包括复制在IC示意图中的组件;将组件标记为具有输出端的复制的组件,该输出端等同于组件的输出端;以及在示意图中对复制的 组件和复制组件的负载之间的连接进行布线;并且确定是否使用复制的组件 作为资源来驱动组件的至少一个现有的负载。为了驱动负载,该方面的至少 某些实施方式允许从等效资源布线而不是原始资源的布线。通过经由合成过 程在复制的实例上放置一个标签,能够识别先前已经被复制的等效资源,以 便于布线操作可以使用等效资源而不是原始资源。
在这里将描述根据本发明的另一个方面,示例性的方法包括确定用于配 线滞后的值是否可以基于被设计的集成电路的示意图中的配线网络布局而 被调整,并且如果布局是第一种类型就调整该值;并在设计集成电路的过程 中,基于调整之后的值确定布线决策。该示例性的实施方式可以被用来对被 表征的配线滞后进行调整,所述配线滞后可以基于特定的长距离配线网络是 否主要是经过开关阵列的多个组的直的连线,或者是经过开关阵列的另一组 的阶梯式的路径被测量或被评估。
本发明提供能够执行本发明各种方法的计算机系统,并且本发明也提供 了计算机可读的介质,诸如可用机器可读的介质,该介质包括可执行的程序 指令,当通过诸如计算机系统的数据处理系统促使数据处理系统来执行这里 描述的一个或多个方法时,该可执行的程序指令被执行。通过附图和下面详 细的描述,本发明的其它特征将是显而易见的。


本发明将通过示例的方式来说明,并且不局限于附图中的图示,在附图 中相同的参考标记表示相同的元件。
图1是示出了可在本发明的至少某些实施方式中使用的HDL合成的过 程的流程图2是显示了自动计算机辅助设计系统中用于优化集成电路设计的现有技术方法的流程图3A显示了在自动设计过程中的集成电路的示意图3B进一步显示了在图3A中显示的开关矩阵中的细节;
图3C显示了在现有技术中根据图2所示的方法执行的优化的结果;
图4是示出了用于执行集成电路设计的优化的本发明的一个实施方式的 流程图5显示了由图4中所示方法的一个实施方式产生的优化的示意图; 图6是示出了用于优化集成电路设计的特定实施方式的流程图,其中在
所述集成电路设计中至少一部分基于关于连接到根部的现有配线网络知识 减少根扇出。
图7是示出了在此描述的本发明的另一个方面的实施方式的流程图; 图8显示了至少某些类型的IC中的互连设计;
图9是示出了根据本发明的某些实施方式的布线过程的示例性方法的流 程图10是显示了与图9显示的方法相似的布线过程的特定示例的另一流
程图,并且该布线过程使用诸如图8所示的集成电路的结构;
图IIA、 IIB禾B IIC说明了在时间序列中设计特定集成电路的过程; 图12是示出了根据在此描述的某些实施方式的示例性方法的流程图,
该方法将产生在图IIA、 11B和11C中显示的变化;
图13显示了具有多个开关矩阵的集成电路的设计的示例;
图14是说明根据本发明的某些实施方式的示例性方法的流程图,所述
方法基于布线网络的布局调整配线滞后,所述布线网络的布局例如图13中
所述的两个不同布局;
图15是数据处理系统的框图,该数据处理系统例如是可以被用来执行
在此描述的一个或多个实施方式并可以包括一种或多种形式的机器可读介质的计算机系统,所述机器可读介质存储使数据处理系统执行在此描述的一 种或多种方法的可执行程序指令。
具体实施例方式
描述通过自动设计过程用于设计集成电路的方法、系统和机器可读介质。
将参照关于下面提出的许多细节描述本发明,并且附图将用于说明本发 明。下面的描述和附图是说明性的并且不用于限制本发明。描述各种特定的 细节以为本发明提供完全的理解。然而,在特定的实例中,己知的或传统的 细节将不被描述,以便于不在细节上使本发明变得不明确。
通过基于现有的配线资源的复制致使扇出减少
当执行复制来减少诸如在布线网络的根部的扇出时,通过利用关于现有
的配线资源的信息,可以实现与图3C相关的图5所示的改善的布线决策和 改善的结果。特别地,通过在复制驱动器215之前考虑现有的配线资源,可 以确定关键负载L1、 L2、 L3和L4要与来自驱动器D (驱动器215)的配线 Wl相连接,并且其它的负载由驱动器D的复制的副本来驱动,该复制的副 本在图5中表示为驱动器311。在开关SWD的根扇出仍然是1,因为负载 Ll-L4由相同的配线Wl驱动。驱动器311的复制的副本的根扇出被减少1, 由于在复制驱动器的根扇出的减少所以由驱动器311驱动的其它负载将具有 较好的网络滞后。关键负载L1-L4和图3A所示的原始网络表相比在网络滞 后方面有所改善,造成相比于图3C所示的仅在2个关键线路中仅有的改善 图5在4个不同线路中有改善。
图4显示了当在根扇出位置或在经过布线网络的中间扇出位置复制驱动 器处时,用于使用关于布线树(routing tree)的信息来执行布线操作的通用 方法。操作301包括为诸如驱动器215的关键驱动器确定由关键负载,所述关键负载由关键驱动器驱动。该操作通常包括确定某些负载是否是关键负 载,并且然后确定驱动所述关键负载的驱动器。所述驱动器是关键驱动器, 因为它们驱动关键负载。例如,负载是关键负载因为它们影响定时约束或需 求。例如,如果在特定负载扇出的延迟测量是负的或不是足够的正值,那么 负载可能是关键的。在如图5所示的设计情况中,负载L1-L4是由关键驱动
器215驱动的关键负载。当然操作301基于该优化之前的原始设计执行该决 定操作,并且由此在图3A中显示的集成电路被用于操作301来为关键驱动 器215确定哪些负载是关键的。然后,使用相同的非优化的设计,操作303 确定关于布线树的信息,该布线树将关键驱动器与其所有负载相连。因此, 在图3A所示的设计情况中,操作303确定关于布线树的信息,所述布线树 将关键驱动器连接到负载Ll-L7的所有7个负载。然后在操作305中,使用 关于负载的信息和关于布线树的信息布线树从关键驱动器开始被优化。因 此,在确定怎样复制驱动器和怎样将复制的驱动器和与原始负载相关的原始 驱动器布线时,优化过程考虑了实际现存的配线资源,该配线资源被用来将 关键驱动器215和它的各个负载耦合。因此,在操作305的优化过程中改变 在图3A中显示的设计来创建在图5中显示的设计,图5中复制的驱动器311 具有减少的扇出并且驱动除了关键负载之外的所有负载,同时原始的驱动器 215继续使用与图3A中所示的相同的布线网络,并具有减少的根扇出。如 前所述,本方法可以被执行来在设计中减少设计中的所有关键驱动器的根扇 出,并且可选的被用来通过布线树在中间驱动器执行扇出的减少。本方法可 以通过使用操作研究领域中己知的技术来执行,来使用关于负载、驱动器以 及实际现有的配线资源的信息完成优化的或近似优化的布线,所述配线资源 将负载耦合到驱动器并且可以被使用以耦合到通过复制新创建的驱动器。通 过操作研究技术的优化的参数可以被定时。
图6是显示图4所示方法的一个特定示例的流程图,该示例中图4所示的方法可以通过从驱动器减少根扇出来被执行以优化集成电路的设计,该驱 动器在图6所示的情况中被假定为关键驱动器或组件。可以理解,"驱动器" 或"组件"指逻辑元件,诸如触发器或査找表或产生信号的其它数字逻辑组 件,所述信号依次被输出到其它元件,所述其他元件接收作为该其他元件的
输入的所述信号。图6所示的方法从操作351开始,在操作351中为特定的 关键组件确定哪些负载由特定的关键组件驱动。在操作353中,为了被特定 关键组件驱动的每个网络计算或确定布线树。例如,确定在所述布线树中的 每个分支点的输入,并且确定在网络上的哪些节点是关键的或哪些节点是非 关键的。然后在操作355中,在收集到关于实际布线树的信息之后,为在布 线网络树的一个分支上的所有关键负载创建复制的驱动器,所述复制的驱动 器是特定的关键组件的复制版本,并且所述复制的驱动器被用于驱动所述负 载。可替换地,原始的驱动器可以被用来驱动在布线网络树的一个分支上的 所述负载,并且是特定的关键组件的复制品的复制驱动器被用来驱动布线网 络树的所有其它负载。该替换可以被执行来创建图5所示的设计,其中原始 的驱动器215保持在它的位置来驱动4个关键负载,同时通过修改的布线网 络树复制的驱动器311被用来驱动剩余的负载。在操作357中,关键负载连 接到复制的驱动器,并且然后在操作359中,延迟被重新计算。如果在操作 361中,延迟被确定有改善,那么该方法经过操作365返回以尝试在从操作 351开始通过重复图6所示的操作来优化其它的布线网络。如果在操作361 中,确定延迟没有改善,那么在操作363中放弃复制并且过程返回到操作351 以尝试用其它的方法来优化设计。 基于负载的复制
当网络上有少量关键负载时,基于负载的复制被执行。为每个负载创建 专用副本。在如图3A所示的示例中,如果负载L3和L4不是关键负载,那 么仅对Ll和L2创建驱动器的副本是个好的解决方法。在触发器作为驱动器的情况下,驱动器可以被放置在非常靠近负载的位置,并且负载被连接到尽 可能牢固的配线。在执行基于负载复制时,过程从负荷端开始并且通过经由 可用的现有配线从负载返回到驱动器来检査布线网络。该过程也可以考虑在 经由现有配线网络的返回过程中用于复制驱动器的放置的可用位置。此外, 程序可以评估是否由相同的驱动器驱动的其它关键负载也可以相同的区域 出现,并且使用下面描述的改进的布线技术来将其它关键负载也连接到复制 的驱动器。这不同于现有的解决方法,现有的解决方法仅为特定关键负载来 复制驱动器,并且然后将复制的驱动器连接到关键负载。该基于负载复制过 程的描述如图7所示。可以理解的是图7所示的方法是优化过程的一部分,
和在图1中的操作105所示的优化过程一样。图7所示的方法可以从操作401 开始,在操作401中关键负载被选择用于可能的基于负载的复制。在操作403 中,确定来自关键负载的布线网络回到原始驱动器,并且也确定了哪些位置 可用于该原始驱动器的新副本。然后在操作405中,基于用于复制副本的布 线网络和可用位置,该方法创建了复制的驱动器并将该复制的驱动器连接到 选择的关键负载。然后该方法继续到操作407,在选择的关键负载的范围内 检查在来自原始驱动器的相同布线网络中的其它关键负载,并且确定是否将 所述其它关键负载连接到复制的驱动器。 改进的布线
图8、 9和IO涉及用于执行布线操作的方法,该布线操作可以在布置操 作之后执行或与布置操作同时执行。该布线技术通常比现有的技术更快地产 生可接受的IC设计,因为用于合成和优化设计的编译器的运行时间通常通 过使用在这里描述的改进的布线技术被改善。该技术可以利用在特定ic结 构中的表征的配线滞后,并且所述表征的配线滞后可以是实际测量的配线滞 后或是基于有关特定芯片结构的知识预测或估计的配线滞后。有时特定的芯 片结构也被称为目标结构,该目标结构通常被可编程集成电路的供应商确定。目标结构的一个示例是来自加利福尼亚的圣何塞(Inc.of San Jose)的赛 灵思(Xilinx)公司的程序查找表和某些可用集成电路的关联逻辑。目标结 构的其它示例包括来自诸如奥特(Altera)公司或其它供应商的现场可编程 门阵列和复杂的可编程逻辑装置中己知的结构。图8显示了利用开关矩阵的 阵列的特定IC结构的示例,该开关矩阵的阵列与图3A和3B中显示的开关 阵列相似。通过可用来在不同的开关矩阵之间使用的现有配线资源连接所述 开关矩阵。在设计完成之后,开关矩阵中的开关可以连接或可以不连接到所 述各种现有配线资源。如图8所示的集成电路451的结构包括开关矩阵 452-459,该开关矩阵452-459通过可以基于在一组配线资源中的配线资源的 平均物理尺寸被表征为不同的3组配线资源来耦合。特别地,配线461A、 461B、 461C、 461D可以看作是第一组配线资源的一部分,因为所述配线资 源的平均长度比图8所示的其它配线资源的平均长度短。此外,配线资源 461E和461F的长度短,也被看作是第一组配线资源的一部分。较长的配线 资源组以及因而第二组配线资源可以包括配线资源463A、 463B、 463C、 463D。所述配线资源可以被看作中间配线资源或配线资源组,因为它们的长 度比较长的配线资源短但是比第一组配线资源中的较短配线资源长。图8所 示的最长的配线资源组的第三组配线资源包括配线资源465A、 465B和 465C。所述配线资源比图8所示的任何其他配线资源都长。可以理解的是, 由图8表示的集成电路可能更大并且还有没有显示出来的开关矩阵,并且同 样可以理解的是没有显示的附加配线资源被用来使显示的开关矩阵互连。为 了简化图8,这些附加的配线资源没有被显示。所述三组配线资源中的每组 都可以被用来定义布线如何执行的和如何估计经由布线网络的滞后。在图8 所示的情况下,基于网络需要被布线经过的距离定于每组配线资源。第一组 是用于跨越最短距离的网络,并且在给所述网络布线的过程中,配线资源在 其被使用时被经过。有将短线路的一端连接到另一端的有限的少量配线。当所述网络被布线时,由已经完成的路线使用的配线被标记为保留的配线,并 且在完成随后的路线以前,本方法核査以确定配线资源是否可用(这可以通 过査看配线资源是否被标记为保留的或是否不再列在可用的配线资源清单 上)。较短的配线距离通常意味着经由配线网络的滞后比较精确,并且可以 通过实际测量配线或基于特定集成电路上的配线的物理结构而预测配线滞
后而获得。在集成电路的Xilinx FPGA Virtex家族中,第一组配线资源被定 义在5X5 CLB逻辑单元上,因为那些逻辑单元是在该距离上连接插头的最 短最快的配线。第二组配线资源被定义用于比第一配线资源平均较短的距离 长的距离。例如,第二组配线资源可以用于具有2个或多个短配线的网络。 尽管图8中没有显示该特定的示例,但是某些IC结构允许开关矩阵将两个 短配线互相来产生一个较长的配线。在该第二组配线资源中,估计网络的滞 后,但是如下所述的,配线资源没有如它们在布线过程中使用的那样被保留。 这是可接受的情况,因为有在布线过程中通过更长的距离可以使用配线的更 多选择。滞后预测仍然是精确的,因为一些配线选择导致相同的网络滞后, 并且在滞后预测中相对误差较小。在XmnxFPGAVirtex家族中,该配线资 源组被定义在13X13逻辑单元上。可以从逻辑单元中的点对点的滞后中获 得预测的滞后,并且被在查找表中保存滞后的值。第三组配线资源可以用于 比第二组大的距离,并且可以跨越整个芯片。对于该配线资源组,可以被用 具有统计迂回分析的估计量来估计配线滞后。
图9显示了布线方法的通用示例,该布线方法基于在每组的配线资源之 间的平均物理尺寸的不同来区别配线资源之间的群或组。图9所示的方法可 以在自动设计过程期间,在集成电路示意图中的组件放置之后被执行,或与 如操作501所示的放置同时被执行。在操作503中,将被标记为被保留的短 路线在操作503中被定义。在图8所示的示例中,配线资源461A-461F被定 义为短路线,该短路线将在执行使用一个或多个所述配线资源的布线操作之后被标记为保留。在操作505中,当布线或放置被执行时,不被保留的长路 线被定义,并由此在使用更长的路线进行布线的同时,布线过程对于任何更 长路线的保留都不会检査。当然,这提高了相同路线被使用两次或多次的可 能性,因为没有尽力来检査是否特定的长路线以前被用于为经过的连接布
线。在如图8所示的示例中,配线资源463A-463D是由操作505定义的长路 线组的示例。在初始的布线和放置被完成之后,然后在操作507中检査被执 行来确定是否有更长路线的任何重复使用,该更长路线在执行布线操作时被 标记为保留路线。可以预见,需要来执行操作507的软件操作比需要将已使 用的路线标记为保留并且随后在进行随后的布线时检查配线资源是否以前 被使用过的软件操作花费的时间少。换句话说,可以预见,当进行更长布线 时通过忽略是否用于较长路线的先前布线操作被用于某些路线的布线操作 会比在实际检查是否先前布线操作使用了任何更长布线更快。如果有更长路 线的重复使用,那么在操作509中,本方法通过经由其它的路径为每个重复 使用布线来纠正所述重复使用,选择具有最大正延迟的优选信号用于再次布 线来避免重复使用。
图IO显示了改进的布线方法的更详细的示例,该方法与图9所示的方 法相似,并且可以被用于如图8所示的结构。图10所示的方法从操作551 开始,在操作551中配线滞后为至少一组互连被表征,所述互连例如是集成 电路的短互连。在图8的示例中,通过实际测量所述滞后或通过估计或预测 所述滞后,开关矩阵和现场可编程门阵列之间的互连被表征。在操作553中, 已被表征的短连接的布线通过确定驱动器和用于所述驱动器的负载之间的 布线来执行。在每种情况中,当路线被执行,所述路线被标记为保留,以便 于用于短连接的随后的布线可以检査是否需要的路线在使用之前已经在先 前被使用。先前使用通过它是否被保留而显示。可以理解的是,在可选的实 施方式中,可用布线资源的列表被保持,并且一旦布线资源被使用,该布线资源就被从列表中移去,从而在布线操作结束之前的随后的布线操作可以检 査该列表根据布线资源是否在列表上确定该配线资源是否可用。这可以被看 作是在布线操作中保留或显示配线资源己被使用的另一种方法。在操作555 中,可以被表征的中间连接被布线,但是所述布线操作在没有用于布线的中 间连接的任何保留标记的情况下被执行,所以用于中间连接的随后布线在没 有检查的情况下被执行,该检查是为了查看是否需要的布线因为它被用于先
前的布线操作而先前被保留。在操作557中,然后通过确定长连接的布线在 没有任何保留和任何检查以査看是否需要的路线被先前的布线操作标记为 保留而显示为已被使用的情况下被执行。最后,在操作559中,在初始的布 线和放置被完成之后,如上所述的对于相同路线的重复使用以及被纠正的所 述重复使用的检査被执行。 等效资源的布线
图IIA、 11B以及IIC和图12涉及用于等效资源布线的方法。当网络 需要布线时,使用该方法,系统可以用该网络的任何等效资源动态的布线, 所述等效资源例如是用于特定网络的所有节点的驱动器的复制的实例。与图 11A、11B以及11C所示的电路相关的图12所示的方法将被用来描述用于等 效资源布线的一种特定的方法。该方法将在优化或随时执行复制的时候执 行。此外,在尝试优化集成电路的设计的时候,可以在随时放置如复制的物 体的时候或将所述物体移动到周围的时候使用该方法。在操作701中,确定 是否复制特定的组件。在如图IIA所示的电路中,是否复制驱动器601的决 策被做出,所述驱动器通常驱动如图11A所示的在6个查找表604的阵列中 的3个负载L1、 L2和L3以及在集成电路的另一部分的负载L5和605中的 关键负载L4。因为关键负载14在延迟方面需要改善,所以决定复制驱动器 601,如图11A所示该驱动器601具有驱动所述5个负载的输出信号A。复 制操作被执行得到如图11B所示的电路,其中驱动器601现在被复制以产生复制驱动器601A,该复制驱动器601A在它的输出端产生A',该A'等效 于或等同于来自驱动器601的输出。新的复制驱动器经由开关矩阵609连接 到负载605。驱动器601经由开关矩阵603继续驱动负载Ll、 L2和L3并且 还继续驱动负载L5。如图IIB所示的设计至少是在图IIA所示设计上的改 善,因为实际上对于驱动器601在到开关矩阵603的入口的根扇出被减少, 并且现在负载605具有它自己专用的驱动器,该专用的驱动器是驱动器601 的复制的副本。如在操作703中所示,当组件被复制时,它被标记为复制的 组件,该复制的组件显示它具有被复制的等效组件的相等输出。当在优化集 成电路的设计的过程中布线和移动周围的组件时,该标签允许系统识别作为 与原始的组件等效复制组件。图11B所示的设计是操作705的结果,在操作 705中复制的组件被放置在设计中并且复制的组件之间的连接被布线,在该 示例中,所述复制的组件是驱动器601A和负载605。在继续优化布线和/或 组件的放置的过程中,在操作707中,确定是否将复制的组件作为资源使用 来驱动原始组件的一些负载。例如,在优化过程的期间在系统放置或布线时, 它可以自动地确定是否给到负载的连接布线,该连接是从当前指定驱动所述 负载的组件或者是从该组件的信号的另一个等效资源连接到负载。该操作和 操作709的结果被显示在图11C中,其中负载L5也被耦合到复制的驱动器 601A,因为驱动器601A是驱动器601的等效资源。这产生的结果是驱动器 601A的根扇出被减少为3,并且在没有可能地重大影响负载605的驱动的情 况下,可能的更短的布线资源可用于驱动负载L5。当放置或移动组件的时 候图12所示的方法可以被执行,并且图12所示的方法在集成电路设计周围 放置物体中给予"放置者"更大的灵活性,因为用于驱动所述负载的等效资 源现在可以被利用。
对于布线布局的调整
图13和14涉及本发明的一个方面,其中基于配线网络布局的表征的配线滞后被调整。在至少某些芯片结构中,注意到经由基本上水平或基本上垂 直配线路径的配线滞后可能比期望的配线路径稍微的长,该期望的配线路径 是基本上斜的或阶梯式的配线路径。在布线网络中所述两个几何结构之间的
不同点如图13所示。驱动器D2 (驱动器819)和负载L2 (负载821)之间 的布线网络是基本水平的布线路径。另一方面,驱动器Dl和负载Ll(驱动 器815和负载817)之间的布线路径是沿着在集成电路上的基本上斜的路径。 集成电路包括9个开关矩阵802-810,所述开关矩阵用于允许负载和驱动器 穿过集成电路被互连。在水平或斜方向或垂直方向的开关矩阵之间的配线滞 后如在操作851中显示的被表征。所述表征可以是邻近的或沿着一排或沿着 斜的路径或基本上斜的路径的一些开关矩阵之间的定时滞后的实际测量。可 以使用预测或者估计而不是实际测量来执行所述表征。对于长的配线网络, 在操作853中基于网络的布局确定表征的配线滞后是否需要被调整。例如, 确定是否长配线网络将主要沿着诸如水平或垂直线的直线还是主要沿着阶 梯式的路径,该阶梯式的路径诸如是由将驱动器815耦合到负载817的配线 网络采用的路径。如果实际上在操作853中确定被表征的配线滞后需要被调 整,那么在操作855中配线滞后将被调整并且在操作857中基于调整的配线 滞后确定布线决策。
在物体被移动或放置在不同开关矩阵周围时定时,滞后的调整可以被动 态执行。表征的配线滞后是否需要被调整的决策可以通过计算可能性来执 行,该可能性是特定的网络不会沿着水平线被配线而是通过通向负载的水平 和垂直线的线段被配线的可能性。该割阶可能性(jogprobability)可以通过 静态地考虑已被用于路径的特定部分的配线来计算,并且该可能性可以在计 算负载和驱动器之间的布线操作之前被计算。可以考虑对于在水平或垂直线 上具有负载的一定数量的驱动器的分布设计(或对于设计集合的静态计算)。 布线结构具有有限数量的水平和垂直的布线资源,所以不是所有的负载可以使用直的配线来布线。作为代替, 一些负载的配线将使用基于水平或垂直线 的弯路。基于一定数量的水平或垂直配线以及在设计中对于驱动器的一定数 量负载(例如,20个单元具有7个负载;30个单元具有IO个负载;等等) 的分布,所述弯路的可能性被计算。因此,基于所述割切可能性,附加的配 线滞后被添加到所有长的配线。 数据处理系统
图15显示了可以用于执行本发明的实施方式的计算机系统的框图。计 算机系统可以包括一个或多个存储可执行计算机程序指令的机器可读介质, 当由如计算机系统的数据处理系统执行所述可执行计算机程序指令时,使计 算机系统执行一个或多个这里描述的方法。例如,计算机系统可以被用来执 行作为这里描述的集成电路合成一部分的改进的布线方法。计算机系统包括
处理器902,该处理器902经由总线901连接到随机存取存储器904、只读 存储器(ROM) 906和大容量存储装置907。大容量存储装置907代表诸如 软盘驱动器、硬盘驱动器或如闪存的其它非挥发的存储机械的持久数据存储 装置。处理器902可以被封装在如因特尔奔腾处理器的通用目的处理器或专 用处理器或特殊的编程逻辑装置中。显示装置920通过总线901耦合到处理 器卯2,并且为计算机系统卯0提供图形输出。键盘921和光标控制单元922 被耦合到总线901用于将信息和命令选择通信与处理器902通信。经由总线 901耦合到处理器的还有输入/输出接口 123,该输入/输出接口 123可以被用 来控制并传输数据到诸如打印机、其它计算机等等的电子装置,所述电子装 置被连接到计算机系统900。应该注意,如图15所示的计算机系统的结构仅 被提供用于说明的目的,并且结合本发明使用的计算机不局限于该特殊的结 构。
在前面的说明中,关于本发明的特殊示例的实施方式被描述。在不脱离 各项权利要求阐明的本发明的广泛的精神和范围的情况下,显然可以做出各 种改变。因此,说明书和附图起到描述的作用而不是限制的作用。
权利要求
1、一种机器实现的方法,该机器实现的方法包括作为设计集成电路过程的一部分,使用第一组配线资源并且一旦在所述第一组中的配线资源已经被用于布线就将所述配线资源标记为已用,从而为所述集成电路的示意图上的连接进行布线;以及使用集成电路示意图中的第二组配线资源,在不检查第二组中的配线资源是否先前已被用于对连接进行布线的情况下对所述集成电路上的连接布线,其中在所述第二组中的配线资源在物理尺寸上平均起来不同于第一组中的配线资源。
2、 根据权利要求1所述的方法,其中在所述第二组中的配线资源平均 起来比所述第一组中的配线资源长,并且其中一旦所述配线资源被使用,在 不将所述第二组中的配线资源标记为保留的情况下使用所述第二组执行布 线。
3、 一种机器实现的方法,该机器实现的方法包括 确定被设计的集成电路的示意图中的驱动组件的扇出; 确定驱动组件、和集成电路的示意图中被所述驱动组件驱动的负载; 确定用于将所述负载连接到所述驱动组件的现有配线资源的使用; 基于现有配线资源的使用和所述驱动组件的扇出以及被所述驱动组件驱动的负载,优化所述集成电路的设计。
4、 根据权利要求3所述的方法,其中所述优化包括确定是否通过复制驱动组件来减少所述驱动组件的扇出,并且其中响应所述确定而自动执行所 述复制。
5、 一种机器实现的方法,该机器实现的方法包括作为设计集成电路过程的一部分,确定从负载到驱动组件的布线网络, 并且为所述驱动组件的复制版本确定可用的位置;以及在集成电路示意图中,基于所述布线网络和所述可用的位置来创建所述 驱动组件的复制版本,并在示意图中,在所述复制版本和所述负载之间创建 连接。
6、 根据权利要求5所述的方法,还包括确定是否将源于所述驱动组件的相同布线网络和相同区域中的其它负 载作为将被连接到所述复制版本的负载。
7、 一种机器实现的方法,该机器实现的方法包括作为设计集成电路过程的一部分,复制集成电路示意图中的组件并将所述组件标记为复制组件,所述复制组件具有等效于所述组件输出的输出; 在示意图中对所述复制组件和该复制组件的负载之间的连接进行布线;以及确定是否使用所述复制组件作为资源来驱动所述组件的至少一个现有 负载。
8、 根据权利要求7所述的方法,其中所述确定在所述布线之后,并且 在示意图中创建连接来将所述复制组件连接到从所述组件断开的至少一个 现有负载。
9、 一种机器实现的方法,该机器实现的方法包括基于集成电路示意图中的配线网络布局,来确定是否应该调整用于配线滞后的值;如果所述布局是第 一类型则调整所述值;在设计集成电路的过程中,基于调整之后的值确定布线的决策。
10、 一种机器可读的介质,该介质包括可执行的程序指令,当该可执行 的程序指令被数据处理系统执行时,使该数据处理系统执行一种方法,该方 法包括作为设计集成电路过程的一部分,使用第一组配线资源并且一旦所述第 一组中的配线资源已经被用于布线就将该配线资源标记为已用,从而对所述 集成电路的示意图上的连接进行布线;以及使用所述集成电路示意图中的第二组配线资源,在不检查第二组中的配 线资源是否先前已被用于对连接进行布线的情况下,对所述集成电路上的连 接进行布线,其中所述第二组中的配线资源在物理尺寸上平均起来不同于所 述第一组中的配线资源。
11、 根据权利要求10所述的介质,其中所述第二组中的配线资源平均 起来比所述第一组中的配线资源长,并且其中一旦所述配线资源被使用,在 不将所述第二组中的配线资源标记为保留的情况下,使用所述第二组执行布 线。
12、 一种机器可读的介质,该介质包括可执行的程序指令,当该可执行的程序指令被数据处理系统执行时,使该数据处理系统执行一种方法,该方法包括确定被设计的集成电路的示意图中的驱动组件的扇出;确定所述驱动组件、和在集成电路的示意图中被所述驱动组件驱动的负载;确定用于将所述负载连接到所述驱动组件的现有配线资源的使用; 基于现有配线资源的使用和所述驱动组件的扇出以及被所述驱动组件 驱动的负载,优化所述集成电路的设计。
13、 根据权利要求12所述的介质,其中所述优化包括确定是否通过复制所述驱动组件来减少所述驱动组件的扇出,并且其中响应所述确定而自动 执行所述复制。
14、 一种机器可读的介质,该介质包括可执行的程序指令,当该可执行 的程序指令被数据处理系统执行时,使该数据处理系统执行一种方法,该方法包括作为设计集成电路过程的一部分,确定从负载到驱动组件的布线网络,并且为所述驱动组件的复制版本确定可用的位置;以及在集成电路示意图中,基于所述布线网络和所述可用的位置来创建所述 驱动组件的复制版本,并在示意图中,在所述复制版本和所述负载之间创建 连接。
15、 根据权利要求14所述的介质,其中所述方法还包括确定是否将源于所述驱动组件的相同布线网络和相同区域中的其它负 载作为将被连接到所述复制版本的负载。
16、 一种机器可读的介质,该介质包括可执行的程序指令,当该可执行的程序指令被数据处理系统执行吋,使该数据处理系统执行一种方法,该方法包括作为设计集成电路过程的一部分,复制集成电路示意图中的组件并将所 述组件标记为复制组件,所述复制组件具有等效于所述组件输出的输出;在示意图中对所述复制组件和该复制组件的负载之间的连接进行布线;以及确定是否使用所述复制组件作为资源来驱动所述组件的至少一个现有 负载。
17、 根据权利要求16所述的介质,其中所述确定在所述布线之后,并 且在示意图中创建连接来将所述复制组件连接到从所述组件断开的至少一 个现有负载。
18、 一种机器可读的介质,该介质包括可执行的程序指令,当该可执行 的程序指令被数据处理系统执行时,使该数据处理系统执行一种方法,该方 法包括基于集成电路示意图中的配线网络布局,来确定是否应该调整用于配线 滞后的值;如果所述布局是第一类型则调整所述值;在设计集成电路的过程中,基于调整之后的值来确定布线的决策。
19、 一种数据处理系统,该数据处理系统包括用于布线的装置,所述布线作为设计集成电路过程的一部分,使用第一 组配线资源并且一旦所述第一组中的配线资源已经被用于布线就将所述配 线资源标记为已用,从而对所述集成电路的示意图上的连接进行布线;以及用于布线的装置,所述布线使用集成电路示意图中的第二组配线资源, 在不检查所述第二组中的配线资源是否先前已被用于对连接进行布线的情况下,对所述集成电路上的连接进行布线,其中所述第二组中的配线资源在 物理尺寸上平均起来不同于所述第一组中的配线资源。
20、 一种数据处理系统,该数据处理系统包括用于确定被设计的集成电路的示意图中的驱动组件的扇出的装置; 用于确定所述驱动组件、和集成电路的示意图中被所述驱动组件驱动的 负载的装置;用于确定用于将所述负载连接到所述驱动组件的现有配线资源的使用 的装置;用于基于现有配线资源的使用以及所述驱动组件的扇出以及被驱动组 件驱动的负载,优化所述集成电路的设计的装置。
21、 一种数据处理系统,该数据处理系统包括用于作为集成电路设计过程的一部分,确定从负载到驱动组件的布线网 络,并且为所述驱动组件的复制版本确定可用的位置的装置;以及用于在集成电路示意图中,基于所述布线网络和所述可用的位置来创建 所述驱动组件的复制版本,并在示意图中在所述复制版本和所述负载之间创 建连接的装置。
22、 一种数据处理系统,该数据处理系统包括用于复制的装置,该复制作为设计集成电路过程的一部分,复制集成电 路示意图中的组件并将所述组件标记为复制组件,所述复制组件具有等效于所述组件输出的输出;用于示意图中对所述复制组件和该复制组件的负载之间的连接进行布 线的装置;以及用于确定是否使用所述复制组件作为资源来驱动所述组件的至少一个 现有负载的装置。
23、 一种数据处理系统,该数据处理系统包括-用于基于集成电路示意图中的配线网络布局,来确定是否应该调整用于 配线滞后的值的装置;如果所述布局是第一类型则调整所述值的装置;以及 在设计集成电路的过程中基于调整之后的值来确定布线的决策的装置。
全文摘要
一种用于优化和/或设计集成电路的方法和系统。一个示例性的方法包括作为设计集成电路过程的一部分,使用第一组配线资源并且一旦在所述第一组中的配线资源已经被用于布线就将所述配线资源标记为已用,从而为所述集成电路的示意图上的连接进行布线;以及使用集成电路示意图中的第二组配线资源,在不检查第二组中的配线资源是否先前已被用于对连接进行布线的情况下,对所述集成电路上的连接进行布线,其中在所述第二组中的配线资源在物理尺寸上平均起来不同于所述第一组中的配线资源。还描述了用于优化和/或设计IC其它方法和系统,并且还描述了包括可执行程序指令的机器可读介质,所述可执行程序指令使系统来执行一个或多个所述方法。
文档编号G06F17/50GK101421733SQ200780010647
公开日2009年4月29日 申请日期2007年3月23日 优先权日2006年3月24日
发明者J·C·武伊科维奇, K·S·麦克尔文 申请人:新思公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1