CN103930891A - 利用已有预布线算法,使用直线斯坦纳最小树(rsmt)确定节点之间的线路长度的方法 - Google Patents

利用已有预布线算法,使用直线斯坦纳最小树(rsmt)确定节点之间的线路长度的方法 Download PDF

Info

Publication number
CN103930891A
CN103930891A CN201280055760.1A CN201280055760A CN103930891A CN 103930891 A CN103930891 A CN 103930891A CN 201280055760 A CN201280055760 A CN 201280055760A CN 103930891 A CN103930891 A CN 103930891A
Authority
CN
China
Prior art keywords
node
limit
connection
candidate
minimum
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
Application number
CN201280055760.1A
Other languages
English (en)
Other versions
CN103930891B (zh
Inventor
M·赵
J·左
Y-Y·摩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN103930891A publication Critical patent/CN103930891A/zh
Application granted granted Critical
Publication of CN103930891B publication Critical patent/CN103930891B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

用于创建直线斯坦纳最小树的方法包括确定从终端节点到不同的终端节点或到图形的边的一组候选连接。每个候选连接的长度可用来确定以最小总长度跨越图形的一组候选连接。

Description

利用已有预布线算法,使用直线斯坦纳最小树(RSMT)确定节点之间的线路长度的方法
技术领域
本公开涉及集成电路设计,更特别地,涉及集成电路上的线路的物理布线。
背景技术
在现代集成电路设计中,随着设备的几何尺寸持续缩小,线路布线和线路长度已变得头等重要。相应地,为了尽可能使用最短的线路长度,开发了电子设计自动化工具以优化复杂电路设计中的线路长度。
在物理线路布线领域,有时需要使用最短线路长度来互连若干节点。数学上,此问题可以表述为确定图形的最小斯坦纳(Steiner)树。因此,做了大量工作以创建使用斯坦纳树的各种变体的算法。更特别地,开发了解决直线斯坦纳最小树(RSMT)问题的多种算法。
这些常规RSMT算法使用各种技术解决线路长度问题。例如,一种这样的直线斯坦纳最小树技术是已知的使用预计算的查找表的快速查找表估计(FLUTE)。另一种常规技术是已知的节点中断技术。这些常规技术可以准确地创建RSMT结构。然而,它们具有缺点。例如,当使用查找表时,有不灵活性,特别是在具有预布线或者由设计人员之前确定的布线的设计中。另外,一些常规RSMT算法不易适应灌电流驱动器(sink-driver)约束。
发明内容
本公开提供用于生成直线斯坦纳最小树的系统和方法。为此,这里公开的系统和方法提供允许从已有图形数据创建直线斯坦纳最小树的算法表达。
在非限制性实施例中,该算法可接收包括一组终端节点和一组边的图形。确定该组终端节点和该组边之间的一组候选连接,并且可以为每个候选连接计算距离。包括给定终端节点的候选连接可以储存在给定终端节点特定的存储器位置(“节点堆栈”)。可以检查每个终端节点的节点堆栈以确定该终端节点的具有最小距离的候选连接。可以组合每个终端节点的最小候选连接以形成最小斯坦纳树。
在一种实现方式中,图形可以表示半导体设计中的可行线路布线,并且包括一个或多个预定义的连接(例如,“预布线”),所计算的距离可以是终端节点之间的直线距离。在某些实施例中,与预布线相关联的距离可以等于零。
在另一非限制性实施例中,该算法可以将一个或多个斯坦纳节点添加到图形中,可允许终端节点连接到预定义的连接之一或已生成的连接。
附图说明
图1是集成电路的一实施例的框图。
图2示出了用于布线的图形的实施例。
图3是表格,示出了当对图2所示的图形进行布线时所生成的节点和边的列表。
图4示出了具有预布线的边和斯坦纳节点的用于布线的图形的实施例。
图5是表格,示出了当对图4所示的图形进行布线时所生成的节点和边的列表。
图6示出了具有预布线的边的用于布线的图形的实施例。
图7是表格,示出了当对图6所示的图形进行布线时所生成的节点和边的列表。
图8是流程图,示出了构建直线斯坦纳最小树的算法的实施例。
图9示出了用于处理图形的节点和边的算法的实施例。
图10示出了用于分析图9所示的节点和边的处理的结果的算法的实施例。
图11示出了具有非最优解决方案的用于布线的图形的实施例。
图12示出了对由图8所示的算法产生的结果进行后处理的算法的实施例。
图13是计算机系统的一实施例的框图,其包括实施图8的构建直线斯坦纳最小树算法的集成电路设计工具。
通过附图中的示例示出了特定实施例,此处将详细描述它们。然而应了解,附图和详细描述无意将权利要求限制到所公开的特定实施例,即使关于特定特征只描述了单个实施例。相反,可以覆盖对所属技术领域的专业人员而言显而易见的所有修改、等效内容和替代方案。本发明中所提供的特征的示例只是说明性的,而非限制性的,除非特别声明。
贯穿本申请使用时,措辞“可”的含义是允许(即,表示有可能做某事),而不意味着强制(即,表示必须)。类似地,措辞“包括”、“包含”、“具有”表示包括但不限于。
各种单元、电路或其他组件可描述成“配置为”执行一项或更多任务。在这样的上下文中,“配置为”是结构的广义描述,一般意味着具有在操作期间执行所述任务的“电路”。如此,单元/电路/组件可配置为执行任务,即使当单元/电路/组件当前未启动时。一般而言,形成与“配置为”对应的结构的电路可以包括硬件电路。类似地,在描述中,为了方便起见,各种单元/电路/组件可描述为执行任务。这样的描述应理解为包括短语“配置为”。描述单元/电路/组件配置为执行一项或多项任务明确地无意调用35U.S.C.§112第六款的解释用于该单元/电路/组件。
具体实施方式
现代集成电路(IC)中的互连布线可能会影响性能和功率二者。IC中的线路可以由诸如金属(例如铝或铜)或多晶形态的硅(一般称为多晶硅)构建,线路的内禀电阻、电感以及电容可能会通过束缚线路可充电和放电的速率来限制IC的性能。随着半导体工艺的几何尺寸持续缩小,相邻线路之间的距离缩短,导致相邻线路之间的耦合(电容耦合和电感耦合)增强。相邻线路之间的耦合增强可能会导致较高的信号串扰,即,线路上的转变引起相邻线路上不希望有的转变,导致额外的功耗或逻辑故障。提供IC上的最佳布线的技术对于维护功率和性能目标而言是必不可少的。下面描述的实施例示出了用于对线路进行布线的某些技术。
图1示出了集成电路的一实施例的框图。IC100包括若干电路块(例如102、104、106、108、110以及112)和将各种电路块耦接在一起的互连网络114。在某些实施例中,电路块可以包括诸如存储器(例如静态随机存取存储器(SRAM))、混合信号模拟电路(例如锁相环(PLL))、可实现任何合适的指令集体系架构(ISA)的中央处理单元(CPU)(例如ARMTM、PowerPCTM、SPARCTM或x86ISA)、或者它们的组合。
电路块102、104、106、108、110以及112可通过不同方法来构建。在某些实施例中,块可以是“完全定制”设计,其中电路设计人员和布局设计人员协作以创建电路和用于创建制造电路块所需的光掩模的掩模设计原图。在另一些实施例中,可以使用诸如Verilog或VHDL之类的语言从电路块功能的软件描述来创建块。软件描述可以从标准单元库编译和综合成逻辑门的实例。然后,可以通过一般称为“布局和布线”的过程来优化逻辑门的布局和逻辑门之间的布线互连。
在IC100的某些实施例中,互连网络114可包括数千的个网和子网。在这样的情况下,由电路或芯片设计人员执行连接是不切实际的。相反,可以使用电子设计自动化(EDA)工具。在一实施例中,如下面更详细描述的那样,EDA工具可实施直线斯坦纳最小树(RSMT)算法来对线路进行布线。为了实施RSMT算法,EDA工具可以将每个布线表示为图形,然后基于RSMT算法来确定最小斯坦纳树。最小斯坦纳树可包括连接图形的所有顶点使得沿指定边所有顶点之间的距离之和最小化的边的列表。
注意,图形是通过一系列链路(也称为“边”)连接一组顶点的数学抽象。在某些实施例中,顶点可以表示布线的终端节点,布线可表示互连网络114中包括的布线,链路可表示终端节点之间的直线距离。在另一些实施例中,链路可表示顶点之间的成本。成本可包括顶点之间的直线距离和顶点之间的布线拥塞的度量。在链路或边具有相关联的成本的情况下,图形可称为“加权图形”。
还应注意,树是其中图形的某些顶点通过单个简单路径连接的图形,即,树是不包含闭合路径的图形。生成树(spanning tree)是包括图形的全部顶点的树。
在某些实施例中,IC100中的某些信号可具有特殊要求。例如,可能希望使IC100的系统时钟与其他信号隔离。为了实现隔离,可能要求使用与系统时钟相邻延伸的地电位线路(一般称为“屏蔽”),或者隔离可能要求系统时钟遵循IC100上的特殊路径,从而系统时钟可以避免不期望地耦合到噪声信号。当信号需要遵循特殊路径或具有特殊性能需求时,可以在应用EDA工具的布线算法之前由电路或芯片的设计人员确定信号路径的全部或一部分。其路径由电路或芯片的设计人员确定的信号一般称为“预布线”。在某些实施例中,电路或芯片的设计人员可以指定信号路径的全部或一部分应实现在半导体制造工艺的特定线路层上。
可以将指示预布线路径(例如将用于预布线的线路层)的信息传递到EDA工具。另外,还可以向边集合添加可迫使EDA工具对于横跨图形的树的某些部分遵循期望路径的边。在某些实施例中,与预布线相关联的成本可以是零。在另一些实施例中,来自EDA工具操作迭代的布线解可用作预布线信息用于随后的EDA工具的操作迭代。
图2示出了可表示IC100中的互连网络114的单个布线的布线图形的实施例。图形200包括终端节点A201、B202、C203、D204和距离205、206、207、208、209以及210。图形200的最小生成树可以使用Prim的最小生成树算法来确定,如下面的示例代码段所示。Prim算法针对每个终端节点确定到当前所选终端节点的最近终端节点,并且在该过程中,确定形成图形的生成树的一组边。
Prim的最小生成树算法
可以通过检查节点列表V和边集合E的状态来监视应用Prim的最小生成树算法的进度。因此,图3示出一表格,该表格示出算法迭代过程中的节点列表和边集合。共同地参考上面的代码段中的算法、图2的图形200以及图3所示的表格,在算法开始之前(迭代0),节点列表包括终端节点A201、B202、C203以及D204,边列表为空。算法可以从任何终端节点开始。为了说明,最初将选择终端节点A201。然后,检查终端节点A201和其他终端节点之间的距离(例如,从终端节点A201到终端节点C203的距离是距离209)。为了说明,假设距离205小于距离208和距离209。由于距离205是从终端节点A201到任意终端节点的最短距离,所以它被选中。距离205表示终端节点A210和终端节点B202之间的距离。边(A,B)被添加到边集合,终端节点A201和B202被从节点列表去除。
随着终端节点A201和B202被从节点列表去除,算法然后选择终端节点C203。然后,计算从终端节点C203到每个其他终端节点的距离。在此示例中,距离206小于距离209和距离207,因此从终端节点C203到终端节点B202的边(B,C)被添加到边列表,从节点列表去除终端节点C203,如图3所示的图表中的迭代2条目所示。仅终端节点D204保留在节点列表中,计算终端节点D204和其他终端节点之间的距离。在此示例中,距离207小于距离210和距离208,因此边(C,D)被添加到边列表,从节点列表去除终端节点D204,如图3所示的图表中的迭代3条目所示。当已经处理完所有终端节点时,算法完成。边集合{(A,B),(B,C),(C,D)}横跨(即,连接)图形的所有顶点,与每条边对应的距离的总和导致最小值。注意,在图形200的其他实施例中,终端节点之间的不同距离可导致不同的边集合。
图4示出IC100中的网络114的代表性布线的图形的替选实施例。所示实施例包括终端节点A401、B402、C403、D404以及H412,距离406、407、408、409、410、411以及413。另外,实施例包括斯坦纳节点G405。包含斯坦纳节点的树通常称为“斯坦纳树”。注意,斯坦纳树可包括一个或多个中间节点或边,其减小了横跨图形的树的长度。在某些实施例中,斯坦纳节点可对应于线路中由于线路需要存在于满足半导体工艺设计规则的直线网格内而导致的自然“弯曲”。
如上面结合对图2所示实施例的描述描述的那样,可以通过检查节点列表和边集合的内容来跟踪直线斯坦纳最小树算法的进度。图5是示出当向图形400应用上面的示例代码段所示的算法时,节点列表和边集合的内容的表格。共同地参考示例代码段、图4的图形400以及图5所示的表格,如算法的迭代0所示,操作始于边列表包括边(A,H),因为它被定义为预布线。在终端节点A401和H412已经包括在预布线中的情况下,节点列表包含终端节点B402、C403和D404。
在下一迭代期间,终端节点B402被选中,计算终端节点B402和其他终端节点之间的距离。在此示例中,距离406是最短距离,因此边(A,B)被添加到边列表,从节点列表去除终端节点B402,如图5所示图表的迭代1所示。在下一迭代中,计算终端节点C403和其他终端节点之间的距离。在此示例中,距离408是从终端节点C403到另一节点的最短距离,因此边(B,C)被添加到边列表,从节点列表去除终端节点C403,如图5所示图表的迭代2所示。在最后的迭代中,终端节点D404被选中,到另一终端节点的最小距离被确定为通过斯坦纳节点G405到终端节点A401的距离。此连接将边(A,G)和(G,B)添加到边集合,替代边(A,B)。处理完所有终端节点之后,算法完成,最终的边集合为{(A,H),(B,C),(G,D),(A,G),(G,B)},如图5所示图表的迭代3所示。在另一些实施例中,可以使用不同的斯坦纳节点,导致不同的最终边集合。
图6示出了图1的IC100中的网络114的代表性布线的图形的替选实施例。图形600包括终端节点A601、B602、C603、D604、E607和H617,距离608、609、610、611、612、613、614、615和616,以及预布线618。注意,在某些实施例中,预布线618可以不连接到终端节点A601、B602、C603、D604、E607和H617中的任何一个。例如,预布线618可对应于终端节点A601、B602、C603、D604、E607和H617上方或下方的金属层的全部或一部分,并且可以不连接前述终端节点,但是可用来确定最小生成树。另外,图形600包括斯坦纳节点G605和F606。在包括预布线618以及斯坦纳节点G605和F606的情况下,Prim基本算法不能确定最小生成树。下面在示例代码段中示出了确定包括预布线和斯坦纳节点的最小生成树的算法的示例,并将结合图8所示的流程图的说明来更详细地进行描述。
直线斯坦纳最小树(具有预布线)构造算法
图7是示出当向图形600应用直线斯坦纳最小树(RSMT)构造算法时的节点列表和边集合的内容的表格。共同地参考图形600、上面的代码段以及图7所示的表格,如RSMT构造算法的迭代0所示,操作始于边列表包括边(A,H),因为它被定义为预布线。从终端节点B602开始,距离608是到另一节点的最小距离,因此将边(A,B)添加到边列表中,从节点列表(V)去除终端节点B602,如图7所示的表格的迭代1所示。然后,选择终端节点C603,重复该过程,导致边(B,C)被添加到边集合,从节点列表(V)去除终端节点C603,如图7所示的表格的迭代2所示。
两个潜在的连接(终端节点D604和斯坦纳节点G605,终端节点E607到斯坦纳节点F606)中的每一个都利用不同的斯坦纳节点。选择要使用哪个斯坦纳节点将影响其他可能的连接。当可能的连接以此方式彼此影响时,连接被称为“冲突的”。在此示例中,距离615小于距离610,导致使用斯坦纳节点F606,其将边(A,F)和(E,F)添加到边列表。然而,在生成树解决方案中包括斯坦纳节点F606,使边(A,B)无效,其被边(A,F)和(B,F)代替,如图7所示的图表的迭代3所示。
然后,去除边(A,B)防止了终端节点D604和终端节点A601之间通过斯坦纳节点G605的先前考虑的连接被添加到边集合。相反,终端节点D604必须通过到终端节点C603的连接而被添加到生成树,导致最终的边集合{(A,H),(B,C),(A,F),(B,F),(E,F),(C,D)},如图7所示的图表的迭代4所示。注意,在另一些实施例中,处理冲突连接的不同方法也是可行并且可预期的。
转向图8,示出了上面的示例代码段中描绘的RSMT构造算法的实施例的流程图。操作在框800中开始。在框801中,接收节点列表(V)和预布线边集合(Epre-route)作为输入。在框802中,初始化两个边集合Eadd和ERSMT以包含Epre-route的元素。然后,操作取决于节点列表V中的元素数量(框803)。当节点列表V为空时,输出RSMT的边集合(ERSMT)(框806),然后操作结束(框807)。当节点列表V不为空时,处理由V和Epre-route定义的图形的节点和边(框804),如下面将结合图9的说明而更详细地描述的那样。然后,分析在框804中执行的操作的结果(框805),如下文参考图10所描述的那样,然后检查节点列表V中的节点数量(框803)。注意,在所示实施例中,操作中的某些或全部可以按与所示顺序不同的顺序进行,或者可以同时进行,而非按顺序进行。
如上文在图8的框804的说明中所述,图9示出了RSMT算法的实施例的一部分。在框900中开始,然后,从Eadd选择边ee(框901)。在某些实施例中,可以初始化Eadd以包含预布线边集合,如图8的框802所示。然后,从节点列表V选择节点n(框902)。然后,为候选连接计算节点n和边ee之间的成本D(框903)。如前所述,成本可以包括节点n和边ee之间的直线距离。在另一些实施例中,成本也可以包括布线拥塞的度量。然后,操作取决于成本D和变量minDefinite之间的比较(框904)。在某些实施例中,将变量minDefinite初始化为计算机可存储的最大数。当成本D大于或等于变量minDefinite时,从节点列表V选择新节点(框902)。
当成本D小于变量minDefinite时,候选连接的信息存储在用于节点n的堆栈上(框905)。然后,操作取决于候选连接信息和变量minCand之间的比较(框906)。当候选连接的成本小于存储在minCand变量中的成本时,用候选连接信息更新minCand变量(框907)。然后,操作取决于判断候选连接是否明确的检查(框908)。当候选连接大于或等于minCand变量时,操作也取决于判断候选连接是否明确的检查(框908)。当候选连接明确时,更新minDefinite变量以包含当前选择的边ee和节点n之间的成本(框909)。然后,尝试选择另一节点(框910)。当候选连接不明确时,尝试选择另一节点(框910)。
然后操作取决于是否从选择过程返回了有效节点(框911)。当选择了有效新节点时,计算新节点和当前边之间的新成本(框903)。当选择过程没有返回有效新节点时,所有节点已经被处理,尝试选择新边(框912)。然后,操作取决于是否从选择过程返回了有效新边。当从选择过程返回了有效新边时,节点选择过程再次开始(框902)。当选择过程没有返回有效新边时,所有边已经被处理,操作完成(框914)。注意,在另一些实施例中,可以使用不同的变量名称,所示操作可以按不同顺序执行。
如上文在图8的框805的说明中描述的那样,在图10所示的流程图中描绘了RSMT算法的一部分。操作在框1000中开始。可以将success变量初始化为零,可以清空变量Eadd(框1001)。然后,操作取决于success变量的值(框1002)。当success变量等于1时,操作结束(框1010)。当success变量等于零时,可以获取存储在变量minCand中的有关连接的信息(框1003)。然后,操作取决于是否有用于存储在变量minCand中的连接的边信息(框1004)。当没有边信息可用时,可以搜索其他节点堆栈以查找另一可行候选连接(框1009)。在某些实施例中,节点堆栈可以是图9的框905所示操作的结果。然后,可以检查变量success的值(框1002)。
当存在边用于存储在变量minCand中的连接时,从节点列表V去除作为连接的一部分包括的节点(框1005)。然后,将存储在变量minCand中的Enew边存储在ERSMT边集合和Eadd边集合中(框1006)。然后,从ERSMT边集合去除存储在变量minCand中的eold边(框1007)。变量success的值被设置为等于1(框1008),然后,检查变量success的值(框1002)。注意,在另一些实施例中,变量和操作的其他布置是可行和可预期的。
参照图11,示出了可以表示图1中的IC100的网络114中的布线的图形的实施例。与先前考虑的图形的实施例不同,已经在图形1100上完成了初始布线,并且已经确定了生成树。该实施例包括终端节点A1101、B1102、C1103、D1104和E1105。斯坦纳节点F1106也包括在实施例中。在所示实施例中,边1107、1108、1109、1110以及1114被确定为形成图形的生成树的边集合。然而,由于图8所示流程图中示出的RSMT算法对图形的节点和边进行分析的顺序,有可能所确定的边不是最优解决方案。在某些实施例中,边1107和1114可以被替换为边1111、1112和1113以提供最优解决方案。注意,在某些实施例中,节点和边的其他配置也可以导致算法检测到非最佳生成树即,存在具有更小的总距离的生成树。
图12示出了补偿非最佳生成树的后处理算法的实施例。操作在框1200中开始。然后,选择预期边(Ep)(框1201)。然后,操作取决于所选边Ep和阈值之间的比较结果(框1202)。当所选边Ep小于或等于阈值时,选择新边(框1201)。
当所选边Ep大于阈值时,选择先前生成的边(Eg)(框1203),并且计算Ep和Eg之间的成本D(框1204)。然后,操作取决于成本D和沿由Ep和Eg确定的路径的任何预布线成本之间的比较(框1205)。当成本D大于或等于当前路径上的任何非预布线成本时,尝试选择下一条所生成的边(框1207)。当成本D小于当前路径上的任何非预布线成本时,则预期边Ep被替换(框1206),然后,尝试选择下一条所生成的边(框1207)。然后,操作取决于尝试选择下一条所生成的边的结果(框1208)。
当返回有效边时,计算Ep和新选择的所生成的边之间的新成本(框1204)。当没有返回有效边时,尝试选择新的预期边(框1209)。然后,操作取决于尝试选择下一条预期边的结果(框1210)。当返回有效预期边时,对照阈值检查新的预期边(框1202)。当没有返回有效的预期边时,操作结束(框1211)。注意,在另一些实施例中,对生成树进行后处理的其他操作或操作顺序也是可行的。
参照图13,示出了包括集成电路设计工具的计算机系统的一实施例的框图。计算机系统1300包括表示为1302A到1302D的多个工作站。工作站通过网络1301耦合在一起,并且耦合到表示为1307A到1307C的多个储存器。在一实施例中,工作站1302A-1302D中的每一个都可以表示任何独立计算平台,其可以包括例如一个或多个处理器、本地系统存储器(包括任何类型的随机存取存储器(RAM)设备)、监视器、输入输出(I/O)装置,诸如网络连接、鼠标、键盘、监视器等等(为简明起见,许多未示出)。
在一实施例中,储存器1307A-1307C可以表示任何类型的大容量储存设备,诸如硬盘系统、光学介质驱动器、磁带驱动器、RAM磁盘储存器等。如此,包括诸如构建RSMT算法工具之类的设计工具的程序指令可以存储在储存器1307A-1307C中的任何一个内,并在执行过程中加载到任何一个工作站的本地系统存储器中。作为示例,如图13所示,布局和布线工具1306被示为存储在储存器1307A内,网表1304和设备库1303存储在储存器1307C内。进一步地,构建RSMT算法工具1305存储在储存器1307B内。在一实施例中,构建RSMT算法工具1305可以通过布局和布线工具1306人工地在用户干预下调用,或者使用诸如脚本指令之类的额外的程序指令自动地调用。另外,程序指令可以存储在便携式/可移动储存介质中。程序指令可以直接从可移动介质执行或传输到本地系统存储器或大容量储存器1307,供随后执行。如此,便携式储存介质、本地系统存储器以及大容量储存器可以被称为非暂时性计算机可读储存介质。程序指令可以由给定工作站上的一个或多个处理器执行,或者,根据需要,可以在多个工作站中以分布式方式执行。
虽然非常详细地描述了上文的实施例,但是一旦完全理解了上面的说明,很多变化和修改方案对于那些本领域的技术人员将变得显而易见。下面的权利要求应被解释为包括所有这样的变化和修改方案。

Claims (21)

1.一种计算机可访问的存储介质,其中存储有程序指令,所述程序指令响应于计算机系统的运行而使所述计算机系统以下操作:
接收多个终端节点,每个终端节点对应于集成电路的信号布线的顶点;
接收一条或多条预布线的边,每条边对应于所述多个终端节点中的给定终端节点和所述多个终端节点中的另一终端节点之间的预先确定的连接;
确定每条预布线的边上的特定点和所述多个终端节点中的任何其余终端节点之间的一个或多个候选连接;
确定所述一个或多个候选连接中的每个的连接距离;
在多个节点堆栈中的相应一个节点堆栈中存储具有比多个预先确定的阈值距离中的相应一个更小的连接距离的每个候选连接,其中每个节点堆栈对应于所述其余终端节点中的相应节点,并且其中每个预先确定的阈值距离对应于所述其余终端节点中的相应节点;
形成最小斯坦纳树,其中所述最小斯坦纳树包括来自所述多个节点堆栈中的每个节点堆栈的最小候选连接。
2.如权利要求1所述的计算机可访问的存储介质,其中,所述连接距离是每条预布线的边上的所述特定点和任何其余终端节点之间的直线距离。
3.如权利要求1所述的计算机可访问的存储介质,其中,所述操作还包括响应于确定给定候选连接不受任何其余候选连接的影响,而将所述多个预先确定的阈值距离中的所述相应一个更新为等于所述给定候选连接的连接距离。
4.如权利要求1所述的计算机可访问的存储介质,其中,所述操作还包括使用所述最小斯坦纳树,创建所述信号布线的制造掩模设计数据,其中所述制造掩模数据被用来创建在集成电路的制造期间使用的光掩模。
5.如权利要求1所述的计算机可访问的存储介质,其中,来自每个节点堆栈的最小候选连接是具有最小连接距离的候选连接。
6.如权利要求1所述的计算机可访问的存储介质,其中,所述操作还包括用其余候选连接替换所述最小斯坦纳树的具有比预先确定的最大距离更大的连接距离的最小候选连接。
7.一种方法,包括:
由一台或多台计算机执行:
接收一组节点,每个节点对应于集成电路的信号布线的顶点;
接收一组预布线的边,每条边对应于所述一组节点中的节点和所述一组节点中的另一节点之间的预先确定的连接;
确定所述一组预布线的边中的每条预布线的边上的特定点和所述一组节点中的任何其余节点之间的一组跨越连接;
计算所述一组跨越连接中的每个跨越连接的连接成本;
在多个节点列表中的相应一个中,添加具有比多个预先确定的阈值成本中的相应一个更小的连接成本的每个候选连接,其中每个节点列表对应于所述其余节点中的相应节点,并且其中每个预先确定的阈值成本对应于所述其余节点中的相应节点;
形成最小斯坦纳树,其中所述最小斯坦纳树包括来自所述一组节点列表中的每个节点列表的最小跨越连接。
8.如权利要求7所述的方法,其中,所述连接成本包括每条预布线的边上的所述特定点和任何其余节点之间的直线距离。
9.如权利要求7所述的方法,其中,所述连接成本包括布线拥塞因子。
10.如权利要求7所述的方法,其中,所述执行还包括使用所述最小斯坦纳树创建所述信号布线的制造掩模设计数据,其中所述制造掩模数据被用来创建在集成电路制造期间使用的光掩模。
11.如权利要求7所述的方法,其中,所述执行还包括用其余候选连接替换所述最小斯坦纳树的具有比预先确定的最大成本更大的连接成本的最小跨越连接。
12.如权利要求7所述的方法,其中,每条预布线的边具有零连接成本。
13.如权利要求7所述的方法,其中,所述执行还包括确定所述一组跨越连接中的给定跨越连接不受所述一组跨越连接中的任何其余跨越连接的影响。
14.如权利要求13所述的方法,其中,所述执行还包括将所述多个预先确定的阈值成本中的所述相应一个更新为等于所述给定跨越连接的连接成本。
15.一种计算机可访问的存储介质,其中储存有程序指令,所述程序指令响应于计算机系统的运行而使所述计算机系统执行以下操作:
接收多个终端节点,每个终端节点对应于集成电路的信号布线的顶点;
接收一条或多条预布线的边,每条边对应于所述信号布线的路径的预先确定的部分;
确定每条预布线的边上的特定点和所述多个终端节点中的一个之间的一个或多个候选连接;
确定所述一个或多个候选连接中的每个的连接成本;
在多个节点堆栈中的相应一个中存储具有比多个预先确定的阈值成本中的相应一个更小的连接成本的每个候选连接,其中每个节点堆栈对应于所述其余终端节点中的相应的节点,并且其中每个预先确定的阈值成本对应于所述其余终端节点中的相应节点;
形成最小斯坦纳树,其中所述最小斯坦纳树包括来自所述多个节点堆栈中的每个节点堆栈的最小候选连接。
16.一种系统,包括:
被配置成存储指令的一个或多个存储器,以及,
被配置成执行所述指令并且使所述系统执行以下操作的一个或多个处理器:
接收集成电路的信号布线的一组顶点;
接收一条或多条预布线的边,每条边对应于所述一组顶点中的给定顶点和所述一组顶点中的另一顶点之间的预先确定的连接;
确定每条预布线的边上的特定点和所述一组顶点中的任何其余顶点之间的一个或多个候选连接;
计算所述一个或多个候选连接中的每个的连接距离;
在多个节点堆栈中的相应一个中存储具有比多个预先确定的阈值距离中的相应一个更小的连接距离的每个候选连接,其中每个顶点堆栈对应于所述其余顶点中的相应顶点,并且其中每个预先确定的阈值距离对应于所述其余顶点中的相应顶点;
形成最小斯坦纳树,其中所述最小斯坦纳树包括来自所述多个节点堆栈中的每个节点堆栈的最小候选连接。
17.如权利要求16所述的系统,其中,所述连接距离包括每条预布线的边上的所述特定点和任何其余顶点之间的直线距离。
18.如权利要求16所述的系统,其中,所述一个或多个处理器被配置成执行所述指令以使所述系统使用所述最小斯坦纳树生成用于所述信号布线的制造掩模设计数据,其中所述制造掩模数据被用来创建在集成电路制造期间使用的光掩模。
19.如权利要求16所述的系统,其中,所述一个或多个处理器被配置成执行所述指令以使所述系统用其余候选连接替换所述最小斯坦纳树的具有比预先确定的最大距离更大的连接距离的最小候选连接。
20.如权利要求16所述的系统,其中,所述一个或多个处理器被配置成执行所述指令以使所述系统响应于确定所述一个或多个候选连接中的给定候选连接不受任何其余候选连接的影响而将所述多个预先确定的阈值距离中的所述相应一个更新为等于所述给定候选连接中的所述给定一个的连接距离。
21.如权利要求16所述的系统,其中,来自每个节点堆栈的所述最小候选连接是具有最小连接距离的候选连接。
CN201280055760.1A 2011-09-30 2012-09-27 利用已有预布线算法,使用直线斯坦纳最小树(rsmt)确定节点之间的线路长度的方法 Active CN103930891B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161541171P 2011-09-30 2011-09-30
US61/541,171 2011-09-30
US13/486,061 2012-06-01
US13/486,061 US8635576B2 (en) 2011-09-30 2012-06-01 Method for determining wire lengths between nodes using a rectilinear steiner minimum tree (RSMT) with existing pre-routes algorithm
PCT/US2012/057454 WO2013049283A1 (en) 2011-09-30 2012-09-27 Method for determining wire lengths between nodes using a rectilinear steiner minimum tree (rsmt) with existing pre-routes algorithm

Publications (2)

Publication Number Publication Date
CN103930891A true CN103930891A (zh) 2014-07-16
CN103930891B CN103930891B (zh) 2017-07-14

Family

ID=47993887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280055760.1A Active CN103930891B (zh) 2011-09-30 2012-09-27 利用已有预布线算法,使用直线斯坦纳最小树(rsmt)确定节点之间的线路长度的方法

Country Status (4)

Country Link
US (1) US8635576B2 (zh)
EP (1) EP2761512A1 (zh)
CN (1) CN103930891B (zh)
WO (1) WO2013049283A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021082867A1 (zh) * 2019-10-30 2021-05-06 福州大学 偏差驱动的总线感知总体布线方法
CN113947057A (zh) * 2021-12-20 2022-01-18 南京集成电路设计服务产业创新中心有限公司 一种基于查找表的完备最优斯坦纳树构建方法
CN114244774A (zh) * 2022-02-23 2022-03-25 武汉烽火凯卓科技有限公司 一种基于群体智能的leo卫星网络拥塞规避组播路由算法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601425B2 (en) * 2012-04-12 2013-12-03 International Business Machines Corporation Solving congestion using net grouping
US10817641B1 (en) * 2017-09-29 2020-10-27 Cadence Design Systems, Inc. Method and system to implement topology integrity throughout routing implementations
US10521097B1 (en) 2017-09-29 2019-12-31 Cadence Design Systems, Inc. User interface to implement topology integrity throughout routing implementations
US10551431B1 (en) 2017-12-22 2020-02-04 Cadence Design Systems, Inc. EM-compliance topology in a tree router
US10489549B1 (en) 2017-12-22 2019-11-26 Cadence Design Systems, Inc. Tree-routing for specific areas of an electronic design
GB2571333B (en) 2018-02-26 2021-12-01 Advanced Risc Mach Ltd Integrated circuit design
CN112395822B (zh) * 2020-11-26 2022-08-09 福州大学 时延驱动的非曼哈顿结构Steiner最小树构建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117468B1 (en) * 2002-01-22 2006-10-03 Cadence Design Systems, Inc. Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts
US20090296710A1 (en) * 2008-05-29 2009-12-03 Dakshi Agrawal System and Method for Obtaining Network Link State Information From Sequential Distance Vector Routing Tables
CN101689215A (zh) * 2008-01-19 2010-03-31 新思科技有限公司 用于多边形断裂的基于斯坦纳树的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117468B1 (en) * 2002-01-22 2006-10-03 Cadence Design Systems, Inc. Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts
CN101689215A (zh) * 2008-01-19 2010-03-31 新思科技有限公司 用于多边形断裂的基于斯坦纳树的方法
US20090296710A1 (en) * 2008-05-29 2009-12-03 Dakshi Agrawal System and Method for Obtaining Network Link State Information From Sequential Distance Vector Routing Tables

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHRISTOPHER S. HELVIG,ET AL: "New Approximation Algorithms for Routing with Multiport Terminals", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 *
YEN-HUNG LIN,ET AL: "Critical-Trunk-Based Obstacle-Avoiding Rectilinear Steiner Tree Routings and Buffer Insertion for Delay and Slack Optimization", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 *
林健良等: "求解欧氏距离斯坦纳最小树的逐步调优法", 《2011年青年通信国际会议论文集》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021082867A1 (zh) * 2019-10-30 2021-05-06 福州大学 偏差驱动的总线感知总体布线方法
CN113947057A (zh) * 2021-12-20 2022-01-18 南京集成电路设计服务产业创新中心有限公司 一种基于查找表的完备最优斯坦纳树构建方法
CN113947057B (zh) * 2021-12-20 2022-04-01 南京集成电路设计服务产业创新中心有限公司 一种基于查找表的完备最优斯坦纳树构建方法
CN114244774A (zh) * 2022-02-23 2022-03-25 武汉烽火凯卓科技有限公司 一种基于群体智能的leo卫星网络拥塞规避组播路由算法
CN114244774B (zh) * 2022-02-23 2022-05-06 武汉烽火凯卓科技有限公司 一种基于群体智能的leo卫星网络拥塞规避组播路由方法

Also Published As

Publication number Publication date
WO2013049283A1 (en) 2013-04-04
US8635576B2 (en) 2014-01-21
EP2761512A1 (en) 2014-08-06
US20130086534A1 (en) 2013-04-04
CN103930891B (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
CN103930891A (zh) 利用已有预布线算法,使用直线斯坦纳最小树(rsmt)确定节点之间的线路长度的方法
US7571411B2 (en) Methods and apparatus for providing flexible timing-driven routing trees
US7484199B2 (en) Buffer insertion to reduce wirelength in VLSI circuits
US7676780B2 (en) Techniques for super fast buffer insertion
US20140068542A1 (en) Systems and Methods for Designing and Making Integrated Circuits with Consideration of Wiring Demand Ratio
US20020144227A1 (en) Datapath design methodology and routing apparatus
US7721245B2 (en) System and method for electromigration tolerant cell synthesis
US9147030B2 (en) Multiple-instantiated-module (mim) aware pin assignment
US8108819B2 (en) Object placement in integrated circuit design
US9026976B2 (en) Congestion aware routing using random points
US6567966B2 (en) Interweaved integrated circuit interconnects
US20060041852A1 (en) Targeted optimization of buffer-tree logic
JP4696988B2 (ja) レイアウト設計装置、方法、及び、プログラム
US8479138B1 (en) Global constraint optimization
US10146902B2 (en) Sharing global route topologies in detailed routing
US6654943B2 (en) Method, system, and computer program product for correcting anticipated problems related to global routing
US20070204255A1 (en) Net routing
US20110239180A1 (en) Method and apparatus for laying out power wiring of semiconductor
Shirota et al. A new rip-up and reroute algorithm for very large scale gate arrays
JP5194461B2 (ja) 電流密度制限チェック方法及び電流密度制限チェック装置
Sangwan et al. An efficient approach to VLSI circuit partitioning using evolutionary algorithms
JP5473557B2 (ja) 集積回路(ic)のレイアウト図および配線図を作り出すシステムならびにフラット配置済みレイアウトを作り出すための方法およびコンピュータ・プログラム
JP4778339B2 (ja) 自動配置方法、装置、及びプログラム
CN113919273A (zh) 一种减少布线图占用内存的fpga布线方法
CN117236242A (zh) 一种时序驱动分割方法、装置、介质和计算设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant