CN114556352A - 用于执行自动布线的方法和系统 - Google Patents
用于执行自动布线的方法和系统 Download PDFInfo
- Publication number
- CN114556352A CN114556352A CN202080057020.6A CN202080057020A CN114556352A CN 114556352 A CN114556352 A CN 114556352A CN 202080057020 A CN202080057020 A CN 202080057020A CN 114556352 A CN114556352 A CN 114556352A
- Authority
- CN
- China
- Prior art keywords
- routing
- nets
- triangulation
- net
- cost
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000013461 design Methods 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 description 24
- 239000010410 layer Substances 0.000 description 22
- 230000001154 acute effect Effects 0.000 description 18
- 238000003860 storage Methods 0.000 description 13
- 238000004519 manufacturing process Methods 0.000 description 9
- 238000013439 planning Methods 0.000 description 8
- 238000012795 verification Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008439 repair process Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000002356 single layer Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000004100 electronic packaging Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013440 design planning Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 235000013599 spices Nutrition 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/39—Circuit design at the physical level
- G06F30/394—Routing
-
- 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
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/48—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor
- H01L23/488—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor consisting of soldered or bonded constructions
- H01L23/498—Leads, i.e. metallisations or lead-frames on insulating substrates, e.g. chip carriers
- H01L23/49811—Additional leads joined to the metallisation on the insulating substrate, e.g. pins, bumps, wires, flat leads
- H01L23/49816—Spherical bumps on the substrate for external connection, e.g. ball grid arrays [BGA]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/48—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor
- H01L23/488—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor consisting of soldered or bonded constructions
- H01L23/498—Leads, i.e. metallisations or lead-frames on insulating substrates, e.g. chip carriers
- H01L23/49838—Geometry or layout
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L24/00—Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
- H01L24/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L24/18—High density interconnect [HDI] connectors; Manufacturing methods related thereto
- H01L24/19—Manufacturing methods of high density interconnect preforms
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L24/00—Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
- H01L24/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L24/18—High density interconnect [HDI] connectors; Manufacturing methods related thereto
- H01L24/20—Structure, shape, material or disposition of high density interconnect preforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/18—Chip packaging
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Manufacturing & Machinery (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
提供了一种用于晶片级封装布线的方法、系统和非暂态计算机可读介质。该方法包括对线网集合执行三角剖分以生成布线资源图。在三角剖分期间,线网集合的对象由相应的中心点表示。该方法还包括至少基于总成本来生成线网集合的对象之间的布线。总成本至少基于布线资源图而被确定。该方法还包括:基于对未满足约束规则的确定来改变布线,以及输出布线信息,布线信息包括针对该线网集合的布线。
Description
相关申请的交叉引用
本申请要求于2019年8月12日提交的美国临时专利申请号62/885504的权益,上述申请出于所有目的通过引用以其整体并入本文。
技术领域
本公开涉及自动化的集成扇出晶片级封装布线。
背景技术
集成扇出(InFO)晶片级封装从传统的电子封装消除了衬底,从而实现更小的尺寸、更低的功率和更高的互连密度。它还有助于以紧凑的格式集成逻辑、存储器和无源部件。InFO技术在移动应用和其他中高端应用中越来越受欢迎。
InFO封装设计周期涉及许多步骤,包括针脚分配、信号布线、电源/接地布线、电源/接地平面生成、泪滴创建等。布线是设计周期的主要部分。由于复杂的设计规则和InFO封装中使用的I/O针脚数目不断增加,现有的封装再分布层(RDL)布线器或印刷电路板(PCB)布线器没有容量或能力进行全自动布线。需要大量的人工干预。
发明内容
在一个方面,一种方法包括对线网集合执行三角剖分以生成布线资源图。在三角剖分期间,线网集合的对象由相应的中心点表示。该方法还包括:至少基于总成本来生成线网集合的对象之间的布线。总成本至少基于布线资源图而被确定。该方法还包括:基于对未满足约束规则的确定来改变布线,以及输出布线信息,布线信息包括针对该线网集合的布线。
在一个方面,一种系统包括存储指令的存储器,并且包括与该存储器耦合并且执行指令的处理器。指令在被执行时使处理器:对线网集合执行三角剖分以生成布线资源图;至少基于总成本来生成线网集合的对象之间的布线;基于对未满足约束规则的确定来改变布线;以及输出布线信息,布线信息包括针对该线网集合的布线。在三角剖分期间,线网集合的对象由相应的中心点表示。总成本至少基于布线资源图而被确定。
在一个方面,一种非暂态计算机可读介质包括被存储的指令。该指令在被处理器执行时使处理器:对线网集合执行三角剖分以生成布线资源图,其中在三角剖分期间,线网集合的对象由相应的中心点表示;至少基于总成本来生成线网集合的对象之间的布线,其中总成本至少基于布线资源图而被确定;基于对未满足约束规则的确定来改变布线;以及输出布线信息,布线信息包括针对该线网集合的布线。
附图说明
根据下面给出的具体实施方式以及根据本公开的实施例的附图,本公开将更全面地被理解。附图用于提供对本公开的实施例的知识和理解,并不将本公开的范围限制于这些特定实施例。此外,附图并不一定按比例绘制。
图1描绘了根据本公开的一个实施例的集成扇出(InFO)封装布线流程。
图2A描绘了根据本公开的一个实施例的实际布局形状。
图2B描绘了利用八边形来近似圆形形状。
图2C描绘了根据本公开的一个实施例使用中心点来表示圆形形状。
图3描绘了根据本公开的一个实施例的布线通道。
图4描绘了根据本公开的一个实施例的搜索图节点和边。
图5描绘了根据本公开的一个实施例的考虑了障碍物大小的容量调整。
图6描绘了根据本公开的一个实施例的考虑了障碍物大小的容量调整。
图7描绘了根据本公开的一个实施例的考虑了现有预布线的容量调整。
图8描绘了根据本公开的一个实施例的考虑了现有预布线的容量调整。
图9描绘了根据本公开的一个实施例的针脚引出布线示例。
图10描绘了根据本公开的一个实施例的针脚引出布线流程。
图11描绘了根据本公开的一个实施例的交叉检测的示例。
图12描绘了根据本公开的一个实施例的在连接的中间修复锐角的示例。
图13描绘了根据本公开的一个实施例的修复在连接的开始或末端处出现的锐角。
图14描绘了根据本公开的一个实施例的电源/接地布线示例。
图15描绘了根据本公开的一些实施例的在集成电路的设计和制造期间使用的各种过程的流程图。
图16描绘了实施例可以在其中操作的示例计算机系统的抽象图。
具体实施方式
本公开的各方面涉及执行自动化集成扇出晶片级封装布线的方法和系统。
由于意外的需求改变、网表改变或未能通过所有签核检查,常规的集成扇出(InFO)封装布线可能需要多次迭代。每次迭代可能需要长的运行时间,随着可用于InFO技术的I/O针脚和布线层的数目增加,运行时间会增加。
常规的封装布线解决方案通常只能进行45度或90度的自动布线。某些封装布线器或印刷电路板(PCB)布线器可以交互地解析任何角度布线,但不能以批处理模式进行解析。随着InFO封装中层数目和针脚数目的增加,至关重要的是针对每个线网(net)具有准确的布线资源估计和适当的层分配以实现成功布线并且实现自动任意角度布线。
本文描述了用于对InFO晶片级封装自动化布线的方法。与常规的电子封装相比,所描述的自动布线方法实现更小的尺寸、更低的功率和更高的互连密度,同时改进了设计生产率。“任意角度”布线可以用于最大化布线资源(例如,平面布置图)的利用。本文描述的方法对任何角度路径所需的资源估计准确地建模,并且支持自动的任何角度布线。此外,本文描述的方法以系统的方式为相交路径之间的锐角违规提供了确定性的通用修复解决方案。
本文描述了自动布线流程。自动布线流程将复杂的InFO布线问题分解为多个步骤。本文描述了方法,以用于对任何角度路径进行精确布线资源估计,在考虑堆叠过孔规则的情况下进行针脚引出布线,在粗略布线中进行交叉成本/长度成本考虑,在详细布线期间进行锐角修复,以及在考虑不相交的电源/接地平面的情况下进行电源/接地布线。
常规的布线资源规划(全局规划)涉及将可用布线区域划分为不相交的全局布线单元(gcell)的集合,并且分析在每个gcell的边界处的供给/需求。通常的InFO设计具有高针脚数,并且相邻针脚之间的空间小,最多可以容纳一些最小宽度的布线迹线。如果分区创建了太多的gcell,则gcell的大小可能会太小,甚至无法容纳一个封装布线迹线。本文描述的方法提供了一种方法来避免布线资源相对于针脚或障碍物的过度破坏,并且将一大块布线资源保留为一个gcell。在下文中,gcell也可以被称为布线通道。
在一个实施例中,在全局规划之后,粗略布线被执行,粗略布线顺序地生成针对两针脚线网的布线。交叉成本被引入,以使粗略布线对线网布线顺序不那么敏感。粗略布线还考虑了用户定义的约束(例如,长度匹配约束)。粗略布线的输出定义了每个两针脚连接相对于现有针脚或障碍物的确切拓扑(即,在粗略布线之后,确定连接在针脚或障碍物左侧或右侧的相对关系)。
在一个实施例中,详细布线器可以在不违反设计规则的情况下拉直粗略布线结果。本文描述的详细布线器提供了一种通用解决方案来修复两个相交布线路径之间的锐角,这可能发生在封装布线中并且需要大量的人工努力通过添加补丁来修复它们。
在一个实施例中,电源/接地平面感知和电源/接地布线被执行。电源/接地布线优化到对应电源/接地平面的布线图案,并且连接相同线网的不相交平面。
图1描绘了根据本公开的一个实施例的InFO封装布线流程100。布线流程100输出布线路径/过孔,该布线路径/过孔连接所有线网并且满足设计规则和用户约束,同时最小化包括凸块集合、I/O针脚和宏针脚的InFO设计的总导线长度和过孔数。
在步骤102处,生成紧邻的针脚之间的短布线。短布线在布线资源建模之前被执行。换句话说,短连接在布线资源建模之前被连接。当两个针脚在相同层上直接相邻(即,两个针脚之间不存在第三针脚)并且可以通过非常短的导线被连接时,这两个针脚被认为是紧邻的。当两个针脚在x/y位置(即水平位置或层中的定位)重叠但位于相邻层上并且可以通过过孔连接时,该两个针脚也被视为紧邻。
在步骤104处,针对凸块集合、针脚和/或过孔执行三角剖分(例如,德劳内(Delaunay)三角剖分)以构建布线资源图(即,布线搜索图)。三角剖分是封装布线中使用的一种技术,用于将布线区域划分为不相交的布线区域,每个区域都是三角形。三角剖分采用点的集合作为输入并且输出三角形的集合,使得三角形的并集等于布线区域。除了在两个相邻三角形共享公共边的边界处之外,三角形彼此不重叠。本文描述的方法通过对圆形或接近圆形的针脚/过孔对象进行建模,来最小化从三角剖分创建的三角形的数目,这简化了在步骤108处的全局规划。
在步骤106处,执行试验布线,以确定针对每个两针脚线网的主布线层。封装布线主要是单层布线。可以添加其他层上的有限布线,以到达位于不同层上的源针脚或目标针脚。试验布线在线网上被顺序执行。线网的布线顺序可以是基于线网的关键性。例如,具有屏蔽/匹配/时序约束的线网具有更高的关键性,并且可以在其他线网之前被布线。试验布线的输出为每个两针脚线网分配布线层(即主布线层)。
在步骤108处,独立于每个布线层的布线顺序,执行每个信号线网的全局规划。由于布线搜索图的所有边的拥塞导致的布线容量和布线成本如下面进一步描述的那样被确定。本文描述的方法为任何角度路径布线准确地确定了布线搜索图的所有边的布线容量,无论是否存在现有的预布线。
在步骤110处,对每个两针脚线网执行顺序粗略布线,以标识两针脚线网连接交叉的所有三角形边。执行针脚引出布线,针脚引出布线进行从针脚层到在106中建立的指定布线层的短布线。单层粗略布线器可以基于在108中建立的布线搜索图来执行最小成本搜索。粗略布线输出对于每个两针脚线网的现有针脚/障碍物具有确定性拓扑。
在步骤112处,执行详细布线,以在不违反设计规则的情况下拉直每个粗略布线连接。对每个交叉边确定交叉点的精确坐标,其将导线长度最小化,同时满足设计规则。粗略布线结果可能具有不必要的弯曲。详细布线在不违反设计规则的情况下拉直/收紧松弛的连接。
在步骤114处,对电源/接地线网执行布线,以将电源/接地针脚连接到最近的电源/接地平面,或连接两个不相交的电源/接地平面。本文描述的电源/接地布线方法处理不相交的电源/接地平面之间的连接,如下文进一步描述的那样,这些连接不被常规封装布线器处理。
在一个实施例中,如下文进一步描述的,基于未满足约束规则(例如,锐角)的确定而改变布线。此外,可以输出布线信息,布线信息包括针对线网的布线。
应当理解,图1的流程图的上述步骤中的一些步骤,可以按照与图中所示和描述的顺序不同的顺序或次序而被实行或执行。此外,上述步骤中的一些步骤可以远早于其他步骤被执行,或者可以基本同时或并行地被实行或执行。例如,步骤106和步骤108可以被同时执行。
图2A描绘了根据本公开的一个实施例的InFO封装设计中的凸块或针脚的实际布局形状。在InFO封装设计中,凸块或针脚通常是圆形(例如,202a、202b、202c)或接近圆形(例如,长方形)。由于三角剖分的输入通常采用点的集合,因此在进行三角剖分之前,每个布局多边形被转换为点。通常,选择多边形的顶点作为三角剖分的输入。传统地,圆形凸块/针脚用八边形来近似。对八边形的顶点执行约束德劳内三角剖分(CDT)将自由布线区域分解为许多小三角形,如图2B中所示。
图2B描绘了利用八边形204a、204b、204c来近似圆形形状。执行CDT在三个圆形对象(例如,202a、202b、202c)之间产生许多小三角形。每个三角形(例如208)是gcell。小三角形使资源规划(图1的步骤108)更加困难并且效率较低,因为小三角形可能甚至无法容纳一个封装布线迹线。在针脚数高并且封装尺寸小的典型InFO封装设计中,两个相邻针脚之间的空间最多可以容纳一对最小宽度迹线。
图2C描绘了根据本公开的一个实施例使用中心点来表示圆形形状。圆形形状202a、202b、202c使用圆形形状的中心点206a、206b、206c而被表示。针对中心点执行CDT。针对中心点206a、206b、206c执行CDT导致更简单的三角剖分。三角形210比图2B中的三角形(例如,三角形208)大得多。更大的三角形有利于资源全局规划(例如,在图1的步骤108处)。换句话说,三个圆形对象之间的布线区域被保留为一个gcell。
当确定布线资源图的边容量时,考虑了由于圆形形状的大小对布线资源的影响,如下所述。
(例如,在图1的步骤108处执行的)全局规划的目标之一是建立布线容量值,该布线容量值可以确定在不对在步骤104处创建的所有三角形引起短路或间距违规的情况下,可以同时穿过三角形边缘的迹线数目。在步骤104处生成的每个三角形表示布线通道。
图3描绘了根据本公开的一个实施例的布线通道300。AD、BE、CF分别是布线通道300的对应底边的高线。基于交叉边的对,存在三种可能的方式来布线通过三角形通道300。针对每对边,确定通道容量。布线通道300与三个通道容量数目相关联。例如,针对AB和AC对、BC和BA对、CA和CB对的通道容量被确定。
在一个实施例中,当障碍物(对象A、B、C)具有0尺寸时,当布线垂直于高线时,以下关系成立。AB和AC对的容量等于AD的长度。BC和BA对的容量等于BE的长度。CA和CB对的容量等于CF的长度。
图4描绘了根据本公开的一个实施例的搜索图节点和边。布线搜索图节点包括(例如,在图1的步骤104处)从CDT生成的每个三角形的中点,并且包括(例如,在图1的步骤104处)由CDT生成的源/目标节点。对于布线搜索图400,边(v1,v2)表示从边AB进入布线通道300并且从边AC离开三角形的布线。边(v1,v3)表示从边AB进入布线通道300并且从边BC离开布线通道300的布线。边(v2,v3)表示从边AC进入布线通道300并且从边BC离开布线通道300的布线。
图5描绘了根据本公开的一个实施例的考虑了障碍物大小的容量调整。布线通道容量确定也是障碍物大小的函数。障碍物A是圆形对象,并且具有半径C。假设A是点,令C(R1)是布线R1的容量。考虑A是圆,令C’(R1)是R1的实际容量。因此,C’(R1)=C(R1)-C(圆)。
图6描绘了根据本公开的一个实施例的考虑了障碍物大小的容量调整。在一个实施例中,C(圆A)、C(圆B)和C(圆C)分别表示在顶点A、B和C处的圆形障碍物形状的半径。考虑A、B、C障碍物的大小,R1的实际容量为C”(R1)=C(R1)-C(圆A)-max(C(圆B),C(圆C)),其中C(R1)是当A、B和C障碍物是单个点时布线R1的容量。
在一个实施例中,InFO设计可以包括现有的导线/过孔(即,预布线)。当现有的预布线不能被移动或修改时,根据三角形通道中的现有预布线,确定剩余通道容量。
图7描绘了根据本公开的一个实施例的基于现有预布线的容量调整。示意图700示出了与BC平行的预布线a-a’和与AC平行的b-b’(R2)。R1和R2表示在不同方向上行进的布线。R1表示与边AB和AC交叉的布线。R2表示与边AB和BC交叉的布线。
令C(R1|R2)表示在存在预布线R2的情况下R1的剩余容量,继而C(R1|R2)=C(R1)-F(R2),其中C(R1)是在R2不存在的情况下R1的总容量,并且F(R2)是由于R2的存在而减少的容量。
图8描绘了根据本公开的一个实施例的考虑了现有预布线的容量调整。示意图800示出了:预布线a-a’与BC平行,b-b’与AC平行,并且c-c’与AB平行。R1表示与边AB和AC交叉的布线。R2表示与边AB和BC交叉的布线。R3表示与边AC和BC交叉的布线。令C(R1|{R2,R3})是在存在预布线R2和R3的情况下R1的剩余容量,于是C(R1|{R2,R3})=C(R1)-max(F(R2),F(R3)),其中C(R1)是在R2/R3不存在的情况下R1的总容量,F(R2)是由于R2的存在而减少的容量,并且F(R3)是由于R3的存在而减少的容量。
粗略布线(图1的步骤110)包括在图1的步骤106处确定的主布线层上的针脚引出布线和单层布线。针脚引出布线的目的是为图1的步骤106中建立的两针脚线网创建从针脚到达主布线层的短连接(即试验布线)。本文描述的针脚引出布线考虑了过孔的堆叠规则和任何角度要求,以到达特定线网的指定层,同时优化接线长度。
图9描绘了根据本公开的一个实施例的针脚引出布线示例。在一个示例中,M3针脚A可以朝向M1针脚B布线,如902中所示。在一个示例中,M3-M2和M2-M1具有非堆叠过孔规则。在图1的步骤110(即,粗略布线)中执行一般单层布线之前,首先在针脚A上执行针脚引出布线以将其从M3引出到M1。
在一个实施例中,M3可能需要锯齿形45度非堆叠过孔,并且M2可能需要任意角度非堆叠过孔。对于从M3引出到M2,由于规则可能需要锯齿形图案,因此针脚引出布线器创建设计规则检查(DRC)合规的朝向针脚B的45度锯齿形路径,并且在A’处创建M3-M2过孔。注意,如果任何形状具有DRC违规,则针脚引出布线器创建其他具有最短导线长度的备选锯齿形路径。在M3-M2过孔如由904所示那样被创建之后,针脚引出布线器继续创建朝向针脚B的引出路径和过孔。从A’朝向针脚B重复引出过程,区别在于M2具有任意角度规则而不是锯齿形45度规则。因此,布线器创建朝向针脚B的直线路径,并且在A”处创建M2-M1过孔,并且完成针脚引出过程,如906中所示。
图10描绘了根据本公开的一个实施例的针脚引出布线流程1000。在一个实施例中,针脚引出布线流程在粗略布线之前被执行。目标层是在图1中的步骤106处确定的两针脚线网的指定层。
在步骤1002处,当前形状被设置为起始针脚。
在步骤1004处,确定当前形状是否在目标层上。响应于确定当前形状在目标层上,过程结束。响应于确定当前形状不在目标层上,过程进行到步骤1006。
在步骤1006处,确定起始针脚是否可以被堆叠。响应于确定起始针脚可以被堆叠,过程进行到步骤1014。响应于确定针脚不能被堆叠,过程进行到步骤1008。
在步骤1008处,选择具有最短导线长度的引出路径。
在步骤1014处,在当前形状的中心处创建过孔。
在步骤1010处,执行DRC(设计规则检查)检查。响应于确定DRC合规,过程进行到步骤1012。响应于确定DRC不合规,过程返回到步骤1018。
在步骤1012处,在引出路径图案的末端创建过孔。然后,过程进行到步骤1016。在步骤1016处,将当前形状设置为过孔。然后,过程返回到步骤1004。
单层粗略布线是粗略布线(即,图1中的步骤110)中的第二步。来自被布线在相同层上的不同线网的连接之间不允许交叉。本文描述的粗略布线具有内置的交叉和长度成本,以在长度匹配和屏蔽约束下优化整体布线图案。
粗略布线器是基于成本的布线器,其通过图4中描述的搜索图从源节点搜索到目标节点。每个搜索图边具有其初始容量,在不存在现有预布线时,由图6中描述的等式计算该初始容量,或者在存在现有预布线时,以图7和图8中描述的方式计算该初始容量。通过搜索图边来对线网进行布线通过线网的布线间距增加了对搜索图边的需求。粗略布线可以依次一个接一个地对所有线网进行布线。考虑了以下成本:估计的布线导线长度、估计的从当前点到目标所需的导线长度、绕行、溢出、交叉和长度匹配。屏蔽约束添加了由屏蔽设置(例如间隙、间距等)计算的额外需求,它可以通过溢出成本而被建模。
成本包括交叉成本和长度匹配成本。通过检查搜索图节点上记录的布线顺序来检测两个线网之间的交叉。
图11描绘了根据本公开的一个实施例的交叉检测的示例。在一个示例中,线网A首先被布线,如图1102中所示。当将线网B通过搜索图节点3布线到节点1时,粗略布线器检查当前和之前的三角剖分线网格搜索图节点(即节点1到5),以确定当前布线是否会导致与先前已布线的线网交叉。在图1104中,由于每个搜索图节点记录已布线的线网的顺序,检查搜索图节点1到5可以检测到线网B与线网A交叉。当检测到交叉时,交叉被建模为成本。
通过计算在给定搜索图节点处的当前估计导线长度和目标导线长度之间的差,来建模长度匹配成本。在一个示例中,两个线网A和B具有长度匹配约束。线网A具有10的针脚到针脚距离,线网B具有5的针脚到针脚距离。于是,线网B具有10的目标导线长度。当确定针对线网B的搜索图节点的成本时,粗略布线器可以首先计算针对线网B的从源节点经过当前节点到目标节点的估计导线长度L。然后,粗略布线器可以计算L和线网A针脚到针脚距离之间的绝对差作为成本。
两个相交路径之间的锐角通常被认为是封装布线中的设计规则违反。锐角是大于0°但小于90°的角。锐角可能在详细布线中被生成(例如,在图1中的步骤112处)。本文描述了两阶段锐角修复启发法,其从布线消除锐角,同时满足最小线段长度或间距规则。
图12描绘了根据本公开的一个实施例的在连接的中间修复锐角的示例。在详细布线期间,在连接的中间生成了锐角∠ABC。锐角可以通过添加第三线段B1-B2而被修复。B-B1的长度等于B-B2的长度。此外,第三线段B1-B2的长度不小于最小工艺间距或最小工艺线段长度。新形成的路径A-B1-B2-C没有锐角。角BB1B2和角BB2B1两者是锐角。因此,角CB2B1=角AB1B2=180°-角BB1B2>90°。
图13描绘了根据本公开的一个实施例的修复在连接的开始或末端处出现的锐角。假设CD是预先存在的线段并且不能被修改。新连接AB正在被生成。连接AB在B点处与CD相交。在一个示例中,所得的角ABD是锐角。可以通过添加一系列邻接的修补线段B1B1’、B2B2’、B3B3’等,使得长度(BBi)=长度(BBi’)(i=1,2,3...),来修复锐角。当最后的线段BiBi’具有不小于最小工艺间距或最小工艺线段长度的长度BiBi’时,修补过程停止。
本文描述了电源/接地平面感知的电源/接地布线器。电源/接地布线器优化电源/接地布线图案,以获得直接到平面的短连接以及通过启发法连接相同线网的不相交平面。
图14描绘了根据本公开的一个实施例的电源/接地布线示例。在一个示例中,设计可能需要用于电源域的两个电源平面,M1平面引导1402和M2平面引导1404。M2电源针脚在M1平面引导1402中,M3电源针脚在M2平面引导1404中。
电源/接地布线器可以首先使用图10中所示和描述的针脚引出布线的方法,将电源针脚分别引出到最近的平面。然后,布线器可以标识用作源的针脚,并且可以创建虚拟针脚作为连接不相交平面的目标。从源到目标的布线使用与粗略布线中描述的相同的布线技术(即,图1中的步骤110)。
图15图示了在诸如集成电路的制品的设计、验证和制造期间使用的过程的示例集合1500,其用于转换和验证表示集成电路的设计数据和指令。这些过程中的每个过程可以被结构化和实现为多个模块或操作。术语‘EDA’表示术语‘电子设计自动化’。这些过程从利用设计师提供的信息创建产品构思1510开始,该信息被转换以使用EDA过程1512的集合来产生制品。在完成设计时,设计被流片1534,这是将集成电路的原图(例如,几何图案)发送到制造工厂以制造掩模组的时间,然后掩模组被用来制造集成电路。在流片之后,制造1536半导体裸片,并且执行封装和组装过程1538以生产成品集成电路1540。
电路或电子结构的规格范围可能从低级晶体管材料布局到高级描述语言。通过使用诸如VHDL、Verilog、SystemVerilog、SystemC、MyHDL或OpenVera的硬件描述语言(‘HDL’),可以使用高级抽象来设计电路和系统。HDL描述可以被转换为逻辑水平的寄存器传输级(‘RTL’)描述、门级描述、布局级描述或掩模级描述。每个较低的抽象级别(即不太抽象的描述)将更多有用的细节添加到设计描述中,例如,针对包括该描述的模块的更多细节。较低的抽象级别(即不太抽象的描述)可以由计算机生成,从设计库导出或由另一个设计自动化过程创建。用于指定更多详细描述的较低抽象语言级别的规范语言的一个示例是SPICE,它用于具有许多模拟部件的电路的详细描述。在每个抽象级别处的描述被实现,以供该层的对应工具使用(例如形式验证工具)。设计过程可以使用图15中描述的序列。所描述的过程由EDA产品(或工具)实现。
在系统设计1514期间,指定要制造的集成电路的功能。可以针对诸如功耗、性能、面积(物理和/或代码行)以及成本降低等的期望特性来优化设计。在这个阶段,可以将设计划分为不同类型的模块或部件。
在逻辑设计和功能验证1516期间,以一种或多种描述语言指定电路中的模块或部件,并且检查该规格的功能准确性。例如,可以验证电路的部件以生成与正在设计的电路或系统的规格的要求相适配的输出。功能验证可以使用模拟器和其他程序,诸如测试台生成器、静态HDL检查器和形式验证器。在一些实施例中,被称为“仿真器”或“原型系统”的部件的特殊系统被用于加速功能验证。
在用于测试的综合和设计1518期间,HDL代码被转换成网表。在一些实施例中,网表可以是图结构,其中图结构的边表示电路的部件,并且其中图结构的节点表示部件如何互连。HDL代码和网表都是分级制品,该分级制品可以由EDA产品用来验证集成电路在制造时是否根据指定设计运行。可以针对目标半导体制造技术优化网表。另外,可以测试完成的集成电路以验证集成电路是否满足规格的要求。
在网表验证1520期间,检查网表与时序约束的一致性以及网表与HDL代码的对应性。在设计规划1522期间,构造并分析集成电路的总体布局图以用于时序和顶层布线。
在布局或物理实现1524期间,进行物理放置(诸如晶体管或电容器之类的电路部件的定位)和布线(通过多个导体连接电路部件),并且可以执行从库中选择单元以实现特定逻辑功能。如本文所使用的,术语“单元”可以指定提供布尔逻辑功能(例如,与、或、非、异或)或存储功能(诸如触发器或锁存器)的一组晶体管、其他部件和互连。如本文所使用,电路“块”可以指代两个或更多个单元。单元和电路块都可以被称为模块或部件并且被实现为物理结构和在仿真中实现。为被选择的单元(基于“标准单元”)指定参数,诸如尺寸,并且使参数在数据库中可访问以供EDA产品使用。
在分析和提取1526期间,在布局级验证电路功能,这允许布局设计的精细化。在物理验证1528期间,检查布局设计以确保制造约束是正确的,诸如DRC约束、电气约束、光刻约束,并且确保电路功能与HDL设计规格适配。在分辨率增强1530期间,转换布局的几何形状以改进电路设计的制造方式。
在流片期间,创建数据以用于(在适当的情况下应用光刻增强之后)光刻掩模的生产。在掩模数据准备1532期间,“流片”数据用于产生光刻掩模,该光刻掩模用于产生完成的集成电路。
计算机系统(诸如图16的计算机系统1600)的存储子系统可以用于存储由本文描述的EDA产品中的一些或全部EDA产品使用的程序和数据结构、以及用于开发库的单元和用于使用库的物理和逻辑设计的产品。
图16示出了计算机系统1600的示例机器,在该示例机器内可以执行用于使该机器执行本文所讨论的方法中的任何一个或多个方法的一组指令。在备选实现方式中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其他机器。机器可以作为客户端-服务器网络环境中的服务器或客户端机器、作为对等(或分布式)网络环境中的对等机器、或者作为云计算基础设施或环境中的服务器或客户端机器来操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、或者能够执行指定机器要采取的动作的一组指令(顺序的或其他方式)的任何机器。此外,虽然示出了单个机器,但是术语“机器”还应被理解为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或多个方法的机器的任何集合。
示例计算机系统1600包括处理装置1602、主存储器1604(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)之类的动态随机存取存储器(DRAM)、静态存储器1606(例如,闪存、静态随机存取存储器(SRAM)等)以及数据存储装置1618,它们经由总线1630彼此通信。
处理装置1602表示一个或多个处理器,诸如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集的组合的处理器。处理装置1602还可以是一个或多个专用处理装置,诸如专用集成电路(ASIC)、现场可以编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置1602可以被配置成执行用于执行本文描述的操作和步骤的指令1626。
计算机系统1600还可以包括网络接口装置1608,以通过网络1620进行通信。计算机系统1600还可以包括视频显示单元1610(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入装置1612(例如,键盘)、光标控制装置1614(例如,鼠标)、图形处理单元1622、信号生成装置1616(例如,扬声器)、图形处理单元1622、视频处理单元1628、以及音频处理单元1632。
数据存储装置1618可以包括机器可读存储介质1624(也称为非暂态计算机可读介质),在该机器可读存储介质上存储有体现本文描述的方法或功能中的任何一项或多项的一组或多组指令1626或软件。指令1626在由计算机系统1600执行期间也可以完全或至少部分地驻留在主存储器1604内和/或处理装置1602内,主存储器1604和处理装置1602也构成机器可读存储介质。
在一些实现方式中,指令1626包括用于实现与本公开相对应的功能的指令。虽然机器可读存储介质1624在示例实现方式中被示为单个介质,但是术语“机器可读存储介质”应当被认为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的缓存和服务器)。术语“机器可读存储介质”还应当被理解为包括能够存储或编码用于由机器执行的一组指令并且使机器和处理装置1602执行本公开的方法中的任何一个或多个方法的任何介质。术语“机器可读存储介质”因此应当被理解为包括但不限于固态存储器、光学介质和磁介质。
已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的方式。算法可以是导致期望结果的操作序列。这些操作是需要对物理量进行物理操作的操作。这种量可以采取能够被存储、组合、比较和以其他方式操纵的电信号或磁信号的形式。这样的信号可以被称为位、值、元素、符号、字符、项、数字等。
然而,应当记住,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从本公开中显而易见的是,应当理解,在整个说明书中,某些术语是指计算机系统或类似的电子计算装置的动作和处理,该动作和处理将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储装置内的物理量的其他数据。
本公开还涉及用于执行本文的操作的设备。该设备可以是为预期目的而专门构造的,或者该设备可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于包括软盘、光盘、CD-ROM和磁光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或适于存储电子指令的任何类型的介质,各自耦合到计算机系统总线。
本文提出的算法和显示与任何特定计算机或其他设备并非本质地相关。各种其他系统可以与根据本文教导的程序一起使用,或者可以证明构造更专用的设备来执行该方法是方便的。另外,本公开不是参考任何特定编程语言来描述的。将理解的是,各种编程语言可以用于实现如本文描述的本公开的教导。
本公开可以作为计算机程序产品或软件来提供,计算机程序产品或软件可以包括存储有指令的机器可读介质,该指令可以用于对计算机系统(或其他电子装置)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存装置等。
在前述公开中,已经参考其特定示例实现方式描述了本公开的实现方式。显然可以对这些实现方式进行各种修改而不偏离如所附权利要求中阐述的本公开的实施方式的范围和广义精神。在本公开以单数形式提及一些元件的情况下,在附图中可以描绘多于一个的元件,并且相同的元件用相同的数字标记。因此,本公开和附图应被认为是说明性意义的而不是限制性意义的。
Claims (20)
1.一种方法,包括:
由一个或多个处理设备对线网集合执行三角剖分,以生成布线资源图,其中在三角剖分期间,所述线网集合的对象由相应的中心点表示;
由所述一个或多个处理设备至少基于总成本来生成所述线网集合的所述对象之间的布线,其中所述总成本至少基于所述布线资源图而被确定;
由所述一个或多个处理设备基于对未满足约束规则的确定来改变所述布线;以及
由所述一个或多个处理设备输出布线信息,所述布线信息包括针对所述线网集合的所述布线。
2.根据权利要求1所述的方法,还包括:
在执行所述三角剖分之前,生成第一对象和第二对象之间的短布线,所述第一对象和所述第二对象在层上相邻、或者所述第一对象和所述第二对象在两个相邻层上具有相同的水平位置。
3.根据权利要求1所述的方法,其中生成布线还包括:
基于过孔堆叠规则和角度要求,确定从对象到布线层的针脚引出布线。
4.根据权利要求3所述的方法,其中确定所述针脚引出布线包括:
将当前形状与所述对象相关联;
当所述对象基于所述过孔堆叠规则能够被堆叠时,在所述当前形状的中心处创建过孔;以及
当所述对象基于所述过孔堆叠规则不能被堆叠时,生成引出路径并且在所述引出路径的末端处创建第二过孔。
5.根据权利要求1所述的方法,其中所述总成本包括交叉成本和长度匹配成本。
6.根据权利要求5所述的方法,还包括:
对所述布线资源图执行检查,以确定当前布线是否与已布线的线网交叉;以及
当所述当前布线与所述已布线的线网交叉时,将交叉建模为所述交叉成本。
7.根据权利要求5所述的方法,还包括:
从针对所述布线资源图的估计导线长度和目标导线长度之间的差确定所述长度匹配成本。
8.根据权利要求1所述的方法,其中生成布线基于所述总成本和布线容量。
9.根据权利要求8所述的方法,其中所述布线容量基于障碍物大小和预布线。
10.根据权利要求1所述的方法,其中改变所述布线还包括:
确定第一线段和第二线段之间的角度是否违反设计规则,所述第一线段和第二线段在所述对象之间的布线上是连续的;以及
在所述第一线段和所述第二线段之间插入第三线段,其中所述第三线段的长度满足所述设计规则的最小线段长度。
11.根据权利要求1所述的方法,其中改变所述布线还包括:
确定现有连接与由所述布线生成的连接之间的角度是否违反设计规则;所述角度在所述连接的远端;以及
当所述角度违反所述设计规则时,添加一个或多个修补线段。
12.根据权利要求1所述的方法,还包括:
通过将电源针脚引出到平面,来执行电源/接地布线;以及
通过将所述电源针脚连接到虚拟针脚来连接不相交的平面。
13.一种系统,包括:
存储器,存储指令;以及
处理器,与所述存储器耦合并且执行所述指令,所述指令在被执行时使所述处理器:
对线网集合执行三角剖分,以生成布线资源图,其中在三角剖分期间,所述线网集合的对象由相应的中心点表示;
至少基于总成本来生成所述线网集合的所述对象之间的布线,其中所述总成本至少基于所述布线资源图而被确定;
基于对未满足约束规则的确定,改变所述布线;以及
输出布线信息,所述布线信息包括针对所述线网集合的所述布线。
14.根据权利要求13所述的系统,其中所述处理器还被配置成执行包括以下项的操作:
在执行所述三角剖分之前,生成第一对象和第二对象之间的短布线,所述第一对象和所述第二对象在层上相邻、或者所述第一对象和所述第二对象在两个相邻层上具有相同的水平位置。
15.根据权利要求13所述的系统,其中生成布线还包括:
基于过孔堆叠规则和角度要求,确定从对象到布线层的针脚引出布线。
16.根据权利要求15所述的系统,其中确定针脚引出布线包括:
将当前形状与所述对象相关联;
当所述对象基于所述过孔堆叠规则能够被堆叠时,在所述当前形状的中心处创建过孔;以及
当所述对象基于所述过孔堆叠规则不能被堆叠时,生成引出路径并且在所述引出路径的末端处创建第二过孔。
17.根据权利要求13所述的系统,其中所述总成本包括交叉成本和长度匹配成本。
18.根据权利要求17所述的系统,其中所述处理器还被配置成执行包括以下项的操作:
对所述布线资源图执行检查,以确定当前布线是否与已布线的线网交叉;以及
当所述当前布线与所述已布线的线网交叉时,将交叉建模为所述交叉成本。
19.根据权利要求17所述的系统,其中所述处理器还被配置成执行包括以下项的操作:
确定针对所述布线资源图的估计导线长度与目标导线长度之间的差。
20.一种非暂态计算机可读介质,包括被存储的指令,所述指令在被处理器执行时使所述处理器:
对线网集合执行三角剖分,以生成布线资源图,其中在三角剖分期间,所述线网集合的对象由相应的中心点表示;
至少基于总成本,生成所述线网集合的所述对象之间的布线,其中所述总成本至少基于所述布线资源图而被确定;
基于对未满足约束规则的确定,改变所述布线;以及
输出布线信息,所述布线信息包括针对所述线网集合的所述布线。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962885504P | 2019-08-12 | 2019-08-12 | |
US62/885,504 | 2019-08-12 | ||
PCT/US2020/045978 WO2021030468A1 (en) | 2019-08-12 | 2020-08-12 | Methods and systems to perform automated routing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114556352A true CN114556352A (zh) | 2022-05-27 |
Family
ID=72193684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080057020.6A Pending CN114556352A (zh) | 2019-08-12 | 2020-08-12 | 用于执行自动布线的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11176306B2 (zh) |
EP (1) | EP3953852A1 (zh) |
KR (1) | KR20220042305A (zh) |
CN (1) | CN114556352A (zh) |
TW (1) | TW202113656A (zh) |
WO (1) | WO2021030468A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11675960B2 (en) * | 2021-11-01 | 2023-06-13 | X Development Llc | Machine learning based layout nudging for design rule compliance |
US11790147B1 (en) * | 2021-11-22 | 2023-10-17 | Cadence Design Systems, Inc. | System and method for routing in an electronic design |
CN114896940B (zh) * | 2022-07-13 | 2022-09-20 | 之江实验室 | 一种软件定义的晶圆级交换系统设计方法及装置 |
TWI831584B (zh) * | 2023-01-19 | 2024-02-01 | 和碩聯合科技股份有限公司 | 引線處理裝置以及引線布局方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0121043D0 (en) * | 2000-09-07 | 2001-10-24 | Shinko Electric Ind Co | Wiring method for semiconductor package |
US6829757B1 (en) * | 2001-06-03 | 2004-12-07 | Cadence Design Systems, Inc. | Method and apparatus for generating multi-layer routes |
US6877146B1 (en) * | 2001-06-03 | 2005-04-05 | Cadence Design Systems, Inc. | Method and apparatus for routing a set of nets |
US7069530B1 (en) * | 2001-06-03 | 2006-06-27 | Cadence Design Systems, Inc. | Method and apparatus for routing groups of paths |
US7971173B1 (en) * | 2006-04-28 | 2011-06-28 | Cadence Design Systems, Inc. | Method and system for implementing partial reconfiguration and rip-up of routing |
US8006216B1 (en) * | 2008-06-06 | 2011-08-23 | Magma Design Automation, Inc. | Dynamic push for topological routing of semiconductor packages |
US8288871B1 (en) * | 2011-04-27 | 2012-10-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Reduced-stress bump-on-trace (BOT) structures |
TW201520801A (zh) * | 2013-09-03 | 2015-06-01 | 台灣新思科技股份有限公司 | 利用佈局重用並保存佈線之高效率類比佈局 |
CN104750885A (zh) * | 2013-12-29 | 2015-07-01 | 北京华大九天软件有限公司 | 集成电路版图布线中引脚布线资源预分配方法 |
CN104981805A (zh) * | 2012-12-26 | 2015-10-14 | 美商新思科技有限公司 | 自动时钟树布线规则生成 |
Family Cites Families (2)
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 |
US6938234B1 (en) * | 2002-01-22 | 2005-08-30 | Cadence Design Systems, Inc. | Method and apparatus for defining vias |
-
2020
- 2020-08-12 WO PCT/US2020/045978 patent/WO2021030468A1/en unknown
- 2020-08-12 KR KR1020217039280A patent/KR20220042305A/ko active Search and Examination
- 2020-08-12 US US16/991,653 patent/US11176306B2/en active Active
- 2020-08-12 TW TW109127398A patent/TW202113656A/zh unknown
- 2020-08-12 CN CN202080057020.6A patent/CN114556352A/zh active Pending
- 2020-08-12 EP EP20761100.5A patent/EP3953852A1/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0121043D0 (en) * | 2000-09-07 | 2001-10-24 | Shinko Electric Ind Co | Wiring method for semiconductor package |
US6829757B1 (en) * | 2001-06-03 | 2004-12-07 | Cadence Design Systems, Inc. | Method and apparatus for generating multi-layer routes |
US6877146B1 (en) * | 2001-06-03 | 2005-04-05 | Cadence Design Systems, Inc. | Method and apparatus for routing a set of nets |
US7069530B1 (en) * | 2001-06-03 | 2006-06-27 | Cadence Design Systems, Inc. | Method and apparatus for routing groups of paths |
US7971173B1 (en) * | 2006-04-28 | 2011-06-28 | Cadence Design Systems, Inc. | Method and system for implementing partial reconfiguration and rip-up of routing |
US8006216B1 (en) * | 2008-06-06 | 2011-08-23 | Magma Design Automation, Inc. | Dynamic push for topological routing of semiconductor packages |
US8288871B1 (en) * | 2011-04-27 | 2012-10-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Reduced-stress bump-on-trace (BOT) structures |
CN104981805A (zh) * | 2012-12-26 | 2015-10-14 | 美商新思科技有限公司 | 自动时钟树布线规则生成 |
TW201520801A (zh) * | 2013-09-03 | 2015-06-01 | 台灣新思科技股份有限公司 | 利用佈局重用並保存佈線之高效率類比佈局 |
CN104750885A (zh) * | 2013-12-29 | 2015-07-01 | 北京华大九天软件有限公司 | 集成电路版图布线中引脚布线资源预分配方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210049315A1 (en) | 2021-02-18 |
TW202113656A (zh) | 2021-04-01 |
US11176306B2 (en) | 2021-11-16 |
KR20220042305A (ko) | 2022-04-05 |
WO2021030468A1 (en) | 2021-02-18 |
EP3953852A1 (en) | 2022-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11176306B2 (en) | Methods and systems to perform automated Integrated Fan-Out wafer level package routing | |
US11694016B2 (en) | Fast topology bus router for interconnect planning | |
TWI789911B (zh) | 用於電容值提取的系統、方法及儲存媒體 | |
TW201926217A (zh) | 針對設計半導體裝置的資源規劃的方法、系統及儲存媒介 | |
US20110173579A1 (en) | Rectilinear Covering Method With Bounded Number of Rectangles for Designing a VLSI Chip | |
US20230260591A1 (en) | Transforming local wire thru resistances into global distributed resistances | |
US20220391566A1 (en) | Machine learning models for predicting detailed routing topology and track usage for accurate resistance and capacitance estimation for electronic circuit designs | |
US20220405458A1 (en) | Machine-learning-based power/ground (p/g) via removal | |
US11704467B2 (en) | Automated balanced global clock tree synthesis in multi level physical hierarchy | |
US11100271B2 (en) | Seamless transition between routing modes | |
US9293450B2 (en) | Synthesis of complex cells | |
US11144700B1 (en) | Grouping nets to facilitate repeater insertion | |
US11080450B1 (en) | Calculating inductance based on a netlist | |
US20230061120A1 (en) | Routing of high-speed, high-throughput interconnects in integrated circuits | |
US11416661B2 (en) | Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow | |
US11972192B2 (en) | Superseding design rule check (DRC) rules in a DRC-correct interactive router | |
US20230252208A1 (en) | Transforming a logical netlist into a hierarchical parasitic netlist | |
US20230267261A1 (en) | Design system, design method and method of manufacture of semiconductor device | |
US11829698B2 (en) | Guided power grid augmentation system and method | |
US11972191B2 (en) | System and method for providing enhanced net pruning | |
US20240070367A1 (en) | Selection and placement of safety mechanisms | |
EP4220471A1 (en) | Method of designing layout of semiconductor integrated circuit and design system performing same | |
US20230315967A1 (en) | Color graph reduction on a line of connected structures | |
Ferguson et al. | Automated, Scalable Silicon Photonics Design and Verification | |
CN113935265A (zh) | 使用设计引导偏移的掩模合成 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |