CN115769217A - 半导体电路设计和单元引脚布置 - Google Patents
半导体电路设计和单元引脚布置 Download PDFInfo
- Publication number
- CN115769217A CN115769217A CN202180047872.1A CN202180047872A CN115769217A CN 115769217 A CN115769217 A CN 115769217A CN 202180047872 A CN202180047872 A CN 202180047872A CN 115769217 A CN115769217 A CN 115769217A
- Authority
- CN
- China
- Prior art keywords
- cell
- pin
- pins
- chip
- unit
- 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
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/392—Floor-planning or layout, e.g. partitioning or placement
-
- 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
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
本发明提供了一种用于将单元引脚置于要设计的半导体电路的单元的边界上的半导体电路设计方法、系统和计算机程序产品。接收引脚位置数据,其中引脚位置数据包括单元引脚将被电连接到的半导体电路单元的外部的芯片区域内的芯片引脚的芯片引脚位置。确定单元的中心点的坐标以及相交叉中心点和芯片引脚位置的线。单元引脚布置在单元的边界与交叉中心点的线的交点上。
Description
技术领域
本发明一般涉及半导体的芯片布局,更具体地,涉及将单元引脚置于半导体电路单元边界上的半导体电路设计。
背景技术
即使开发者和芯片设计者得到高度复杂的工具和抽象语言(例如VHDL(超高速集成电路硬件描述语言))的支持,适当的芯片设计仍然是经验问题很大的领域之一。通常,大型复杂半导体电路和芯片的形式不是由一个开发者或小组设计的,而是由在半导体芯片的不同单元上工作的多个小组设计的。在设计过程开始时,集中于不同功能单元的团队可能仅松散地一起工作,即,他们开始设计他们的特定单元而不包含来自其他单元的直接要求。然而,在设计的稍后阶段期间,不同的团队可协作以优化最终半导体产品。例如,可以在开发过程的后期阶段设计在不同金属层上使用不同信号路径的不同单元之间的布线。此外,不同团队之间的协作可以优化最终产品。例如,为了在布线阶段期间实现不同单元之间的导线的短长度,考虑各个单元相对于彼此的位置。如果第二单元位于第一单元的“南”,则在最佳情况下,第一和第二单元之间的连接线不应在第一单元的“北”侧离开第一单元。
作为附加的方面,还可以考虑到,对单元的引脚布置的一些改变可能在设计过程中非常晚地发生。因此,在新设计的芯片上互连单元的方法可能需要高度灵活,但同时允许高度优化。在这种情况下,应当记住,正在设计的芯片的单元由若干宏块组成,例如,组合成单元的回归分析和线性模型(RLM)、寄存器、高速缓存等。多个单元可以被构造为核心或完成的半导体芯片。为了将这些单元彼此连接或连接到输入/输出(I/O)引脚,将位于单元边界处的单元引脚用作与其它单元电连接的端点。在开发的初始阶段,单元引脚可以被限定和定位,但是可以最初不具有到单元的电连接。
美国专利公开号2016/0232275A1公开了一种“方法、系统和计算机可读介质...”,其使得能够实现用于集成电路的高效设计过程。具体地,描述了这样的工具,其使集成电路设计者能够在没有组合逻辑的情况下可视化集成电路设计,并且根据这样的可视化来标识公共节点逻辑连接性的设计中的位置。
此外,美国专利公开号2006/0053396A1公开了一种“电子设计自动化系统”,其提供“电子设计”的寄存器传输级(RTL)模型的优化,以产生精确定义导致设计制造的后端流程的要求的详细约束和数据。该系统采用电子设计的RTL模型,并将其映射为该设计的硬件实现的高效高级层次表示。
然而,尽管US 2016/0232275和US 2006/0053396的教导,由于布线优化的复杂性,仍然存在定位单元引脚的问题。在最佳情况下,当优化金属线层时,应当考虑单元之间的布线和单元的内部结构。因此,需要一种在芯片设计过程中最佳地布置单元引脚的机制。
发明内容
本公开的实施例解决了在半导体电路的芯片设计过程期间最优地布置单元引脚的方式的需要。本公开的一个方面提供了一种用于设计半导体电路的方法,该方法通过在优化金属线层时考虑单元之间的布线和单元的内部结构来优化地布置单元引脚。该方法包括接收引脚位置数据,其中引脚位置数据包括位于单元引脚被配置为电连接到的单元外部的芯片区域内的芯片引脚的芯片引脚位置。该方法还包括确定单元的中心点的坐标,确定从单元的中心点延伸穿过芯片引脚位置的线的位置,以及将单元引脚布置在单元的边界与从单元的中心点延伸穿过芯片引脚位置的线相交的交点处。
设计半导体电路的方法的另一方面还可以包括通过函数定义从单元的中心点延伸通过芯片引脚位置的线,以及改变函数的至少一个参数,直到避免单元引脚的布置和先前布置的单元引脚的重叠。防止多个单元引脚布置在单元边界上的相同位置内。
用于设计半导体电路的方法的另一方面还可以包括迭代地布置多个单元引脚的步骤,其中基于设计约束信息来优先化布置单元引脚的顺序。在一些实施例中,设计约束信息包括半导体电路内的一组金属层位置,其可用于将单元引脚布置在其上。可选地,用于在其上布置单元引脚的该组金属层位置的可用性可以基于在芯片引脚和单元引脚之间延伸的线的长度,并且其中该方法包括根据在芯片引脚和正被布置的相应单元引脚之间延伸的线的长度来对单元引脚进行分类。
根据本公开的另一方面,可以提供一种用于设计半导体电路设计的系统。该系统可以包括被配置为接收引脚位置数据的接收器,其中引脚位置数据可以包括单元引脚被配置为电连接到的单元之外的芯片区域内的芯片引脚的芯片引脚位置。附加地,该系统包括确定模块,其被配置为确定所述单元的中心点的坐标;第二确定模块,其被配置为确定从所述单元的中心点延伸通过所述芯片引脚位置的线的位置;以及定位模块,其被配置为将单元引脚布置在单元的边界与从单元的中心点延伸通过芯片引脚位置的线相交的交点处。
此外,实施例可以采取用于设计半导体电路的相关计算机程序产品的形式,该相关计算机程序产品可从计算机可用或计算机可读介质访问,该计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合使用的程序代码。为了本说明书的目的,计算机可用或计算机可读介质可以是任何装置,其可以包含用于存储、传送、传播或传输程序的装置,该程序由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用。
本公开的另一方面包括一种计算机系统,该计算机系统包括至少一个处理器、耦合到该至少一个处理器的半导体设计系统,该半导体设计系统包括接收器、第一确定模块、第二确定模块和定位模块;以及耦合到所述至少一个处理器的计算机可读存储介质。计算机系统的计算机可读存储介质包含执行计算机实现的方法的程序指令,其中所述计算机实现的方法包括:由所述至少一个处理器从所述接收器接收引脚位置数据,所述引脚位置数据包括单元引脚被配置为电连接到的单元的外部的芯片区域内的芯片引脚的芯片引脚位置;由所述至少一个处理器接收由确定模块确定的所述单元的中心点的坐标;由所述至少一个处理器定位从所述单元的中心点延伸到所述芯片引脚位置的线;以及通过所述至少一个处理器指示将所述单元引脚布置在所述单元的边界上,在所述单元引脚处从所述单元的中心点延伸到所述芯片引脚位置的线与所述单元的边界相交。
本公开的另外的方面包括一种计算机实现的方法,包括:由处理器接收芯片引脚坐标文件,所述芯片引脚坐标文件包括单元的x、y坐标和芯片引脚的x、y坐标;由所述处理器基于所述单元的所述x、y坐标来建立所述单元的中心点;由所述处理器将引脚线从所述单元的中心点延伸到所述芯片引脚的x、y坐标;由所述处理器识别交点,其中当所述引脚线从所述单元的中心点延伸到所述芯片引脚的x、y坐标时,所述引脚线与所述单元的边界相交;以及由处理器确认引脚未位于所述交点处,并且在确认管脚未位于所述交点处时,由处理器将单元管脚布置在交点处的单元的边界上。
附图说明
参考不同的主题描述本发明的实施例。特别地,一些实施例是参考方法类型权利要求来描述的,而其他实施例是参考装置、计算机程序产品或系统类型权利要求来描述的。然而,本领域技术人员将从以上和以下描述中了解到,除非另外指出,除了属于一种类型的主题的特征的任何组合之外,与不同主题相关的特征之间的任何组合,特别是方法、系统、计算机程序产品和装置类型权利要求的特征之间的任何组合,也被认为是在本文献内公开的。
从下文将描述的实施例的示例中,本发明的上述方面和其它方面是显而易见的,并且将参考实施例的示例进行解释,但是本发明不限于此。
将仅通过示例并参考以下附图来描述本发明的优选实施例:
图1描述了描述用于将单元引脚置于半导体电路的单元的边界上的半导体电路设计方法的实施例的流程图。
图2描绘了单元的示例性实施例的图,描述了位于单元内部的单元引脚和芯片引脚的定位。
图3描绘了描述单元引脚和芯片引脚的布置的另一示例性实施例的图。
图4a描绘了描绘被配置为电连接在半导体管芯上的半导体电路的若干单元的实施例的图。
图4b描绘了半导体管芯的替换实施例的图,其描绘了被配置成在半导体管芯上电连接的多个单元。
图5a描述了描述用于在半导体电路中布置单元引脚的方法的实施例的流程图。
图5b描述了描述用于在半导体电路中布置单元引脚的方法的可选实施例的流程图。
图6描绘了描绘用于使用根据图5a、图5b中描绘的方法和/或如本申请中描述的方法设计的半导体电路制造的半导体电路的方法的实施例的流程图。
图7描述了用于设计半导体电路的系统的实施例的框图。
图8描绘了包括根据图7的系统的计算系统的实施例。
具体实施方式
在本说明书的上下文中,可以使用以下惯例、术语和/或表达:
术语“单元引脚”可以表示半导体电路的功能单元(芯片)的连接点,其中单元引脚位于单元的边界(通常为矩形)上。所有单元引脚可以被组合以定义单元到芯片的其余部分的接口。半导体电路通常可以包括多个单元,这些单元可以选择性地彼此连接。
术语“边界”可以表示单元的边界。例如矩形或形成围绕单元的周界的其它形状。在一些实施例中,单元的几何形状可以是凸形的。
术语“单元”可以表示半导体电路或芯片内的相互作用的器件的功能组。单元可以使用芯片内的金属层连接,并且可以连接到形成半导体电路的其他单元引脚。
术语“半导体电路”可以表示集成在载体材料上的半导体器件的互连集合。例如,载体材料可以包括半导体块体材料、衬底和/或绝缘体。半导体电路可以包括多个半导体器件,并且使用多个金属布线层来互连半导体器件。在一些情况下,一次可以互连高达数百万个半导体器件。在一些实施例中,半导体器件的子组可以被组合成完整器件内的单元。
术语“芯片引脚”可以表示较大集成半导体电路的半导体器件内的连接点。在一些情况下,仅芯片引脚的位置可以是已知的(在需要知道的基础上)。为了在半导体器件内建立连接,可以不需要知道芯片引脚属于哪个单元。在一些实施例中,芯片引脚还可以连接到I/O引脚。“I/O管脚”可以指位于芯片外表面上的连接器。在芯片引脚位置可能还未知的情况下,可以替代地使用相关单元的坐标。
术语“中心点”可以表示几何平衡点。在一些实施例中,中心点可以是单元的中心点。在单元的边界是矩形的实施例中,中心点可以是从矩形边缘处的角(即,顶点)延伸的两条对角线的交点(例如,如图2所示)。
术语“线”可以表示在两个方向上无限延伸的几何线,或者在一些情况下在几何平面上的两点之间延伸和/或在平面之间延伸的几何线。例如从单元的中心点延伸到芯片引脚的线。该线可以是直线,或者在一些实施例中,可以是曲线。
术语“交点”可以指从单元的中心延伸通过芯片引脚位置的线与单元边界相交的位置。换句话说,线与单元边界相交的交点。
所公开的用于在半导体电路上定位单元引脚的计算机实现的半导体电路设计方法、系统和计算机程序产品可以提供多个优点、技术效果、贡献和/或改进:
所公开的实施例,包括方法、计算机程序产品和系统,可以在芯片设计的不同阶段提供单元引脚的优化布置。通过集成单元的视图、其自身以及芯片引脚在设计中所处的方向,所公开的实施例使得可以确定单元引脚在单元边界上的最合适的位置。
这里的实施例所描述的所提出的解决方案不仅在设计过程的开始是有帮助的和有用的,而且在设计过程的稍后阶段也是有帮助的和有用的。即使在可以布置附加引脚以在可能需要集成到几乎最终的芯片设计中的单元之间建立附加连接的情况下。例如,在具有矩形边界的单元中,可以通过选择沿着从单元的中心延伸通过芯片引脚的线定位的单元引脚位置来建立电连接,从而设计半导体电路。然而,在一些情况下,其它引脚可能先前已被布置在被阻挡且不能接受期望的单元引脚位置的建议的单元引脚位置或区域中。本公开的实施例可以识别交叉点处的区域是否被另一引脚阻挡。例如由于存在另一个单元引脚、电源引脚或时钟引脚。本公开的实施例可以有助于找到单元引脚的下一空闲位置或搜索较高金属层以找到布置单元引脚的空闲位置。
在芯片设计的稍后阶段中,芯片开发者可以使用接口和电路的详细定时描述。根据芯片设计的这些阶段,本公开的实施例支持布置单元引脚以反映那些时序要求。例如通过将单元引脚布置在能够支持这些定时要求的金属层上。对于关键连接,可以使用更高的、更昂贵的金属层,这可以允许更快的互连和更长距离上的互连。
因此,本文描述的公开的实施例可以允许非常灵活的解决方案,用于新单元引脚的优化布置以及在半导体设计过程的稍后阶段期间重新定位先前存在的单元引脚。
下面描述适用于该方法的实施例以及相关系统和计算机程序产品:
在一些实施例中,单元的中心点可对应于单元的区域的几何或重心。单元的几何或重心可以是实际的选择,因为中心可以容易地确定,特别是如果单元的形状是简单的几何形状。例如矩形或三角形,因为数学中心是可确定的。对于凸形单元设计也是这种情况。
根据一些实施例,另一单元的中心点可以用作芯片引脚位置。如果另一个单元不是正好在单元引脚所布置的单元旁边或与之相邻,这可能是特别有用的。可选地,芯片引脚位置所属的引脚也可以是输入/输出引脚,即,到集成半导体器件外部的连接。基本上,可以由集成半导体器件的网表描述的任何位置可以用作芯片引脚位置。
根据该方法的示例性实施例,该单元可以具有凸几何形状,并且更具体地,该几何形状可以具有矩形形状。然而,其它形式和形状也是可能的。例如L形或U形。在这种具有替代形状的情况下,可以使用用于单元的中心或中心点的专门定义和确定方法来确保单元引脚意图连接到的内部连接点位于单元的边界内。考虑单元形状,因为通常凹形形状的重心(其也可以用作单元形状的中心)可以在单元的边界之外。
根据一些实施例,从单元的中心点延伸到(或穿过)芯片引脚的线可以是穿过单元的中心点和芯片引脚的直线。跨单元上延伸直线可能是确定该线与单元的边界或边界的交点的最容易的方式。例如两条线的点相交的地方。或者,且根据其它实施例,线还可由在x-y平面内形成半导体表面的平面所界定的函数界定。例如,该函数可以是符号y=F(x)(或任何其他,如sin、tan、ex、…)的多项式函数。在此描述的实施例可以改变函数的至少一个参数,直到避免要布置的单元引脚与先前布置的单元引脚的重叠。因此,防止了新的单元引脚和现有的单元引脚被布置在相同的位置。
在另外的实施例中,单元边界可以具有沿着单元边界的理论上可用的位置,其可以具有彼此的预定义的规则网格距离,使得可以选择从中心通过芯片引脚的线(基于函数的线)之间的交叉点的理论上可用的位置中的最接近的一个。
本文描述的实施例还可以包括迭代地布置多个单元引脚,其中布置单元引脚的顺序还可以基于设计约束信息。影响单元引脚的布置的设计约束信息可以包括定时约束、电压漏极(Vdd)和/或地的位置、阻塞区域等。到芯片引脚的不同所需连接可具有不同约束。因此,将单元引脚布置在具有更严格的基本约束或具有更难首先满足的约束的半导体电路上可能是有用的。在一些实施例中,用于布置单元引脚的约束可以是单元边界的预先选择的侧边。例如,芯片设计者可以出于上级原因预先选择或预先确定单元的特定侧(顶部、底部、左侧、右侧)。
根据另一实施例,设计约束信息还可包括半导体电路内的一组金属层位置,其可用于布置单元引脚(例如,与单元边界上的自由位置组合)。因此,约束可能是复杂的并且可能具有多个依赖性。预定规则可以帮助设置最佳优先级,从而设置迭代方法的优化顺序。在一些实施例中,可以基于布置在半导体上的芯片引脚和单元引脚之间的线路的长度来确定该组可用金属层位置。此外,该方法可以包括根据芯片引脚和各个单元引脚之间的线长度对布置在半导体上的单元引脚进行分类。此外,在一些实施例中,基于长度确定可用金属层位置可以被反映为约束,并且可以与一个或多个附加约束组合并一起考虑,如上文详细讨论的约束信息所描述的。
图1描述了用于将单元引脚置于半导体电路单元(即,通过该方法设计的芯片)的边界上的半导体电路设计方法100的流程图的示例性实施例。在方法100的步骤102期间,接收引脚位置数据。引脚位置数据可以作为网信息的一部分被接收,或者被称为“网表”。引脚位置数据可以包括位于单元引脚被配置为电连接到的单元的边界之外的芯片区域内的至少一个芯片引脚位置的描述。由位置数据描述的芯片位置的示例可以包括作为X-Y坐标的描述和作为半导体的相对位置(例如,半导体电路的左下角)的描述。实际单元和其它单元可以连接到互连部件的相同网络(称为“网”)。然而,在一些实例中,芯片引脚还可以表示另一单元的位置,或者芯片引脚还可以是芯片的I/O引脚(即,连接到芯片外部的引脚)。
在方法100的步骤104中,确定单元的中心点的坐标,并且在步骤106中,确定延伸或交叉单元的中心点并延伸到(或穿过)芯片引脚位置的线的位置。例如,在一些情况下,在步骤106中确定的线可以是直线,或者可以是包括一个或多个弯曲特征的多项式(polynomial)线。在步骤108中,方法100可将单元引脚布置在单元的边界与线的交点处(即,来自步骤106的线与单元的边界相交的位置)。例如,将单元引脚布置在单元边界与线的交叉点上的步骤可以通过从网表中选择新单元引脚的位置来执行。方法100的这个过程可以在整个芯片设计中使用,并且不限于芯片设计过程的特定阶段。应当注意,在示例性实施例中,单元引脚位置可以位于单元的中心和芯片引脚之间。
图2示出了示例性单元202的图200。如图所示,图200描绘了单元202内的引脚212和芯片引脚218和/或替代地芯片引脚220。可以假设单元202的子单元(在单元202内被指示为矩形)的引脚212可以连接到芯片引脚218或220。因此,问题是在单元202的边界204上何处布置单元引脚214、216、217?而似乎可直接将单元接脚214布置在单元202的边界204的顶部边界上所指示的位置处,或替代地将单元接脚214布置在边界204的左侧(未图示),因为这可被视为从引脚212到边界204的最短路径。单元202的这种结构是不利的,因为从单元引脚214到芯片引脚218或芯片引脚220的布线可能必须围绕单元202的边界。
因此,根据所提出的实施例,取决于是应该建立到芯片引脚218还是到芯片引脚220的连接,单元引脚216或单元引脚217可以位于单元边界204的“南”边界上。因此,如果与芯片引脚218连接,则已经定位的单元引脚214被重新定位到单元引脚216,如虚线214a所示。如图所示,找到单元引脚216的位置的方法是通过构造从单元202的中心点206到芯片引脚218的线208(并且在其中形成到芯片引脚220的连接的情况下类似地通过线210到芯片引脚220)。单元引脚216位于沿着边界204(单元的中心点206和芯片引脚218之间的单元侧)的交点(即,交叉点)上,其中边界204的边界被选择为与从单元202的中心点206到芯片引脚218所绘的线相交。
图3示出了单元引脚216和芯片引脚218的另一示例性布置的图300。线208和边界204之间的交点的确定可以通过确定单元202的中心点206和芯片引脚218之间的线208的倾斜度来进行。x-侧边的关系(Δxk/Δxs)等于y-侧边的关系(Δyk/Δys)=k。因此,如果x交叉≤x单元线,则单元202的垂直边界204上的交点(或交叉点)可确定为x PinxA=x重心;
因此,Y交叉=k*Δys+y重心。或者,如果交点位于单元202的水平边界204上,y交叉=y单元边界,x交叉=k*Δxs+y重心。
基于中心点206和芯片引脚218、220的位置确定边界204上的交叉点的信息可以被概括在芯片引脚坐标文件中。芯片设计确定网(即,在网表中)最初连接到单元202的位置(即,相应的源被定位的位置),或者它们结束的位置(即,汇点(sink)所在的位置)。这对于单元202之间的网是有效的,但是对于单元202和芯片连接器例如I/O引脚之间的网也是有效的。
这种相关联的引脚芯片坐标文件的格式的示例可以是:网_名称,xy坐标-单元(核心),单元(核心)内的xy-引脚-()坐标。
在其他实例中,引脚芯片坐标文件可以由以下格式管理:
网_名称、x-坐标-芯片、芯片内的xy-引脚-坐标、网_名称、xy-坐标-缓冲器(产生器)、缓冲器(或转换器)内的xy-引脚-坐标。
如果芯片上的精确引脚位置未知,则在芯片引脚坐标文件中仅可以获得单元的xy坐标。算法将相应地使用该信息。
如上所述,除了直线之外,单元202的重心和外部引脚即芯片引脚218、220之间的其它连接线也可使用。例如,可以使用包括平方函数或更高维函数的多项式函数,或包括一个或多个边缘和/或曲线的线的类型。这些函数可以穿过单元202的中心和芯片引脚218、220位置。另外,通过本文所述的所提出的方法和用于确定交点(例如,通过线性函数)的其它示例性实施例确定的单元引脚214、216、217位置之间的差异可为最小的。此外,半导体设计可以考虑到不存在与电源或其他信号引脚线的重叠。因此,所确定的单元引脚214、216、217位置可以例如根据单元引脚的预定义距离或单元引脚的预定义网格移动到自由引脚位置,以便避免与其他约束和引脚布置冲突。
图4A、4b示出了包括被配置成在半导体管芯420上电连接的多个单元A-G的图400、401。图4A示出了单元A、B、C、D、E、F和G,以更好地理解根据本文所述的所提出的实施例的单元引脚的布置。每个单元A-G的侧边的纵横比可以确定通过单元A-G的中心点的对角线407、409、410、412的长度,由通过单元A-G的中心的对角线407、409、410、412产生的这些分离的芯片区域形成四个部分区域402、404、406、408,在此表示为“对角(diagonal)”(三角形或其它产生的形状,其可以在芯片管芯的边界处被切割)。这以每个单元侧边涉及更大和更小区域的方式发生。可以假设单元A-G的所有网都连接到芯片引脚,在设计特定单元A、B、C、D、E、F或G期间,芯片引脚可以位于这四个部分区域402、404、406、408之一中。
使用四个对角的概念,确定每个单元侧边可以定位多少个单元引脚。这些引脚的数量对应于该区域内的芯片引脚的数量。然而,该功能可以被视为可选的,因为不总是需要确定芯片引脚位于哪个对角区域,因为线(参见上文)确定了用于布置单元引脚的单元的正确侧边。如果不是画一条环形线,而是画一条从单元的中心到单元引脚的距离线,则可以自动确定单元边界的正确边界侧边。
在图4b中,示出了描述对角概念的示例。在这种情况下,单元F连接到芯片引脚。例如,如果单元F的下侧边确定对角线410和412之间的区域,并确定哪些单元引脚应该位于单元F的下边界线上。同样,在图4a中,位于对角线407和409之间形成的包括区域404的对角上的芯片引脚可以具有位于沿着单元B的下侧延伸的边界线上的它们相应的单元引脚。由对角线407、409形成的区域406内的芯片引脚可以具有沿单元B的右侧边边界线定位的它们的单元引脚。
图5a示出了描述用于在半导体中布置单元引脚的方法的实施例的流程图500。使用包括芯片引脚位置、网名称、单元标识符和可选的一个或多个附加细节的列表502,并读取至开始504,布置过程。在步骤506中,确定单元的中心点。在步骤508中,该过程从第一单元引脚开始。在步骤510中,确定单元的中心点与芯片引脚位置之间的引脚线(即,如图2所示的线208)的位置。在步骤512中,执行引脚线和单元的边界之间的交点(即,如图2中的单元216、217所示)的确定。在步骤514中,将单元引脚定位在所确定的交点上,或者将单元引脚重新定位到交点的位置。
在步骤516中,确定是否所有的单元引脚都已经被定位。如果不是所有的单元引脚都已经被定位,则该方法返回到步骤508,并从下一个尚未被定位的单元引脚开始。相反,如果在步骤516中确定所有单元引脚都已经被定位,则过程进行到步骤518并结束。在一些实施例中,在步骤518完成用于设计半导体电路的方法时,可以输出和/或存储半导体电路的设计作为物理数据(即,半导体设计数据)。描述半导体电路的半导体设计数据的实施例可以用于根据由半导体设计数据描述的设计将半导体电路制造到物理芯片上。例如根据以下流程图600所描述的制造方法。
图5b示出了描述用于设计半导体的方法的替代实施例的流程图520。在替代实施例中,该方法可以进一步考虑半导体的正确金属层。这是因为引脚可能仅被布置在相应单元可用的金属层上。原则上,依赖于根据引脚线(单元中心和芯片引脚之间的线)的引脚到引脚距离的长度来选择金属层。因此,应当记住,对于一个单元,有限、预定数量的金属层是可用的,其中只有几个可以用于单元引脚(通常,八个层中的顶部四个)。因此,可以将引脚线分配给与半导体的可用金属层的数量相关的桶(bucket)。然后,可以根据长度按组对桶进行分类。可以以多种方式执行分类,包括自上而下或自下而上(即,通过增加长度或减少长度)。
图5b所描述的方法的实施例可以在步骤522开始,其中列表包括芯片引脚位置、至少一个网名称、单元引脚的可用位置、所需的单元引脚、一个或多个约束(例如,反映约束的净成本)以及可选地一个或多个附加变量。该过程开始于步骤524,并且在步骤526中,确定单元的中心点。
在步骤528中,根据分配了所有引脚线的基于长度的桶(bucket),确定并分配所有引脚线。在一些实施例中,在步骤530中可以提供附加输入,根据该附加输入,桶被分配给特定引脚线和相应的所选金属层。在步骤532中,根据其长度,将所有桶按照自上而下或自下而上进行分类。在步骤534中,选择第一桶,并且第一次运行开始于第一桶。
在步骤536中,选择第一(或下一)引脚线。确定交点,并且将单元引脚移动到新确定的交点。在步骤538中,对于在步骤534中选择的存储桶,确定是否所有的引脚线都已经被寻址。如果不是所有的引脚线都已经被寻址,则过程返回到步骤536,继续下一个引脚线,并绘制下一个交点以布置单元引脚。否则,如果在步骤538中确定已完成所选存储桶的所有引脚线,则该方法可进行到步骤540。在步骤540中,进一步确定是否所有桶都已被寻址。如果该单元的所有桶都没有被寻址,则该方法返回到步骤534,并且继续分配给半导体的下一个可用金属层的下一个桶。同样地,如果在步骤540中,确定所有桶都已完成,则该方法进行到步骤542并结束。在一些实施例中,在步骤542完成用于设计半导体电路的方法时,可以将半导体电路的设计输出和/或存储为物理数据。描述半导体电路的半导体设计数据的实施例可以用于根据由半导体设计数据描述的设计将半导体电路制造到物理芯片上。例如根据以下流程图600所描述的制造方法。
图6示出了流程图600,其描述了使用由流程图500、520和/或这里详细描述的实施例描述的一个或多个方法步骤设计的半导体电路的物理设计数据来制造半导体电路的方法。在一些例子中,流程图600所描述的方法的实施例可以是流程图500或流程图520的实施例所描述的半导体电路设计步骤的延续。例如,在半导体电路设计和根据通过如本文所述的用于设计半导体电路的方法输出的半导体设计数据制造半导体电路之间可能存在无缝集成的情况下。在替代实例中,半导体设计阶段和制造阶段可以由单独的和/或不同的实体执行。例如,设计者和制造者可以是不同的个人、企业、公司等。在半导体电路设计者和制造者是分开的实体的情况下,半导体设计者可以根据流程图500、520所描述的和/或如本文所描述的一个或多个方法步骤来设计半导体电路,并且生成描述半导体设计的半导体电路设计数据作为用于设计半导体电路的方法的输出。半导体电路设计数据可以被提供给制造者。基于半导体电路设计数据,制造者可以根据所提供的半导体设计将半导体电路制造到物理芯片上,如流程图600中描述的一个或多个方法步骤所描绘的。
在流程图600的步骤602中,获得或提供半导体电路设计数据,该数据基于(至少部分地基于通过流程图500和/或流程图520所述方法的一个或多个步骤输出的半导体设计的设计),可以使用在步骤602中获得或提供的半导体电路设计数据,根据流程图600的步骤所一般描述的一个或多个已知工艺来制造半导体电路的实施例,通常,可以制造并切割(即切割)具有最终半导体电路设计的多个副本的晶片,使得从晶片切割的每个管芯包括半导体电路的副本,在步骤604,制造半导体电路的工艺可以包括基于半导体电路的最终物理布局制造用于光刻的掩模,在步骤606,使用在步骤604中创建的掩模来制造晶片,以在晶片的每个管芯上执行半导体电路的光刻和蚀刻。可以将包括所制造的半导体电路的副本的晶片的单个管芯切割成每个单个管芯。在步骤608中,包括半导体电路的副本的每个单个管芯可以被测试和分类以过滤以任何潜在的故障管芯。
如上所述,一系列约束也可反映在单元边界上正确单元引脚位置的确定中。除了其它净约束之外,还可以考虑信号的松弛和摆动。如果存在可用的定时模型以及每个引脚的断言,则可以确定导线代码和金属层,并将正确的金属层分配给引脚。通常存在的问题是,设计半导体的用户可能只知道给定单元或核的定时信息。然而,如上所述,用户可以接收单元的xy位置,并且对于每个连接的网,通过引脚芯片坐标文件,可以将该位置存储在该引脚芯片坐标文件中。对于定时模型,到达时间TATFarEnd存储在引脚芯片坐标文件中。此外,利用相关近端TATNearEnd的到达时间,本文描述的实施例可将可用净定时延迟确定为:ΔT净=TATFarEnd-endT ATNearEnd。
利用定时模型和网长度,该算法为每个网确定用于布线和用于引脚的最佳金属层。对于上述给定定时,根据网的可用定时延迟ΔT净确定定时数据。在一些情况下,算法“知道”所使用的技术的细节,如每个金属层的具体电阻-电容(RC)延迟(通常取决于金属线在两个方向上的尺寸)和所选择的宽度,以计算层和宽度RC延迟Δt层宽度。利用这两个信息分量,算法为给定的网以及为引脚选择最佳的导线约束,以实现ΔT层宽度>ΔT净。
在一些实施例中,描述在芯片上不同单元之间哪些网连接和接口可用的逻辑可以被提供为网表、引脚芯片坐标文件和/或引脚位置数据的一部分。本文描述的一些实施例可以适于使用逻辑模型来获得关于半导体的每个净源或净汇点的信息。网表信息也可以用于获得芯片的布置信息。
在一些实施例中,所有逻辑可被布置在芯片的示意图上,使得示意图(或层面规划,ft)表示当前逻辑版本lt。名义上的逻辑开发可以是并行开发过程。在芯片示意图的逻辑内,接口可以在芯片上的单元之间定义,但是实现有时不在相同的时间帧内(例如,不具有相同的时间戳)。在一些情况下,网没有完全连接。然而,尽管半导体的网没有完全连接,包含在芯片的示意图中的逻辑定义了子网的接口从其连接的输入或输出连接。在一些其他情况下,芯片可以包括新逻辑lt+1和层面规划ft。基于此,可以确定单元引脚的新位置。所提出的概念可以有助于实现这一点。因此,所提出的概念不仅可以用于半导体的布线工艺的开始,而且可以用于芯片的不同开发步骤的结束和/或之间。在一些实例中,在单个逻辑块没有被完全定义的时间,单元引脚可能已经被布置到单元上,导致在底层模型中还没有被完全定义的逻辑块之间的接口。因此,对接口网的逻辑描述可能足以使用本文描述的所提出的概念。
参考附图,图7示出了用于将单元引脚置于半导体电路的单元的边界上的半导体电路设计系统700的实施例的框图。系统700包括接收器,特别是接收器702,其适于接收引脚位置数据。引脚位置数据的实施例可以包括单元引脚被配置为电连接到的单元的外部的芯片区域内的芯片引脚位置。引脚位置数据可以由描述芯片的所选有源和无源电子元件之间的位置和连接的基础网表来提供。
系统700的实施例可以进一步包括第一确定装置,其可以包括被配置或适于确定单元的中心点的坐标的第一确定模块704,并且可以包括被配置或适于确定交叉单元的中心点和芯片引脚位置的线的第二确定模块706。系统700的实施例可包括定位模块708,其适于或被配置成将单元引脚布置在单元与从单元的中心点延伸到芯片引脚的引脚线在边界处的交叉点处。
还可以注意到,单元和/或模块可以选择性地彼此连接,以便交换承载数据到一个或另一个单元和/或模块和/或从一个或另一个单元和/或模块传输数据的电信号。这主要涉及接收器702、第一确定单元模块704、第二确定模块706和定位模块708。或者,对于模块/单元之间的选择性连接,它们也可以连接到系统内部总线系统710。
半导体系统700的实施例可输出和/或存储描述半导体电路的物理布局的半导体电路设计数据。半导体电路设计数据可以是可共享和/或可传输到一个或多个半导体电路制造者或制造系统的,所述制造者或制造系统能够将由设计数据描述的半导体电路制造到物理芯片上。例如,将设计数据提供给能够根据由流程图600中描绘的制造方法一般描述的和/或如本文描述的一个或多个步骤执行制造的制造系统。在一些实施例中,系统700能够执行半导体电路设计和制造阶段。在替代实施例中,系统700可执行半导体电路设计功能,且一个或一个以上单独制造系统可将半导体电路设计制造到物理芯片(即,个别裸片)上。
本发明的实施例实际上可以与任何类型的计算机一起实现,而不管平台是否适于存储和/或执行程序代码。图8示出了作为示例的计算系统800,其适于执行与所提出的方法相关的程序代码。计算系统800仅是合适的计算机系统的一个示例,并且不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制,无论计算机系统800是否能够被实现和/或执行上文阐述的任何功能。
在计算机系统800中,存在可与众多其它通用或专用计算系统环境或配置一起操作的组件。适合与计算机系统800一起使用的公知的计算系统、环境和/或配置的示例包括但不限于,个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。计算机系统800可以在计算机系统800执行的诸如程序模块等计算机系统可执行指令的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统800的实施例可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于本地和远程计算机系统存储介质中,包括存储器存储设备。
如图所示,计算机系统800以通用计算设备的形式示出。计算机系统800的组件可以包括但不限于一个或多个处理器或处理单元802、系统存储器804、以及将包括系统存储器804在内的一个或多个系统组件耦合到处理单元802的总线806。总线806表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。计算机系统800可以包括一种或多种类型的计算机系统可读介质。这样的介质可以是可由计算机系统800访问的任何可用介质,并且它可包括易失性和/或非易失性介质、可移动和/或不可移动介质两者。
系统存储器804可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)808和/或高速缓存存储器810。计算机系统800还可以包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统812可被提供用于从不可移动、非易失性磁介质(未示出,并且通常可被称为“硬盘驱动器”、“硬盘”或“固态驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其它光学介质的可移动、非易失性光盘读取或向其写入的光盘驱动器。在这样的实例中,每个可以通过一个或多个数据介质接口连接到总线806。如下面将进一步描绘和描述的,存储器804可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置成执行本发明的实施例的功能,包括但不限于第一确定模块704、第二确定模块706和定位模块708(如图7所示)。
作为示例而非限制,具有一组(至少一个)程序模块816的程序/实用程序以及操作系统、一个或多个应用程序、其它程序模块和程序数据可被存储在存储器804中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块816一般执行如本文所述的本发明的实施例的功能和/或方法。
计算机系统800还可以与一个或多个外部设备818通信,诸如键盘、定点设备、显示器820等;一个或多个设备,其使得用户能够与计算机系统800交互;和/或使计算机系统800能够与一个或多个其它计算设备(例如,通过通信网络)通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口814发生。计算机系统800的实施例可以经由网络适配器822与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)之类的一个或多个网络通信。如所描绘的,网络适配器822可以经由总线806与计算机系统800的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统800结合使用。示例包括但不限于微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器、以及数据存档存储系统等。
另外,用于将单元引脚置于半导体电路的单元的边界处的半导体电路设计系统700可以被附接到总线系统806和/或被集成到计算机系统800中作为一个或多个组件和/或程序模块816。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
本发明可以被实现为系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
该介质可以是用于传播介质的电子、磁、光、电磁、红外或半导体系统。计算机可读介质的示例可以包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前例子包括光盘只读存储器(CD-ROM)、光盘读/写(CD-R/W)、DVD和蓝光盘。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器依赖指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(例如Smalltalk、C++等)以及常规的过程式编程语言(例如“C”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分地在用户的计算机上作为独立软件包执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或另一设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或另一设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和/或框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
本文所用的术语仅是为了描述特定实施例的目的,而不是要限制本发明。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
以下权利要求中的所有元件的相应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了本发明的描述,但是该描述不是穷举的或者将本发明限制为所公开的形式。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解本发明的具有各种修改的各种实施例,如适合于预期的特定使用。
Claims (25)
1.一种用于设计半导体电路的方法,所述方法包括:
接收引脚位置数据,所述引脚位置数据包括单元引脚被配置为电连接到的单元的外部的芯片区域内的芯片引脚的芯片引脚位置;
确定所述单元的中心点的坐标;
确定从所述单元的所述中心点延伸到所述芯片引脚位置的线的位置;以及
将所述单元引脚布置在所述单元的边界上,在所述单元引脚处从所述单元的所述中心点延伸到所述芯片引脚位置的所述线与所述单元的所述边界相交。
2.根据权利要求1所述的方法,其中所述中心点对应于所述单元的区域的几何中心。
3.根据权利要求1所述的方法,其中所述芯片引脚位置是另一单元的中心点。
4.根据权利要求1所述的方法,其中所述单元具有凸几何形状。
5.根据权利要求1所述的方法,其中所述线是交叉所述中心点和所述芯片引脚的直线。
6.根据权利要求1所述的方法,其中,所述线由函数定义,并且其中,所述方法还包括:
改变所述函数的至少一个参数,直到避免所述单元引脚的布置与先前布置的单元引脚的重叠。
7.根据权利要求1所述的方法,还包括
迭代地布置多个单元引脚,其中布置所述单元引脚的顺序基于设计约束信息。
8.根据权利要求7所述的方法,其中所述设计约束信息包括所述半导体电路内的可用于布置所述单元引脚的一组金属层位置。
9.根据权利要求8所述的方法,其中,基于所述芯片引脚和所述单元引脚之间的线的长度来确定用于布置所述单元引脚的所述一组金属层位置的可用性,并且其中,所述方法包括根据从所述芯片引脚和正被布置的相应单元引脚延伸的所述线的长度来对所述单元引脚进行分类。
10.根据权利要求1所述的方法,其中,用于布置所述单元引脚的约束是所述单元的边界的预先选择的侧边。
11.一种用于设计半导体电路的系统,所述系统包括:
接收器,其被配置为接收引脚位置数据,所述引脚位置数据包括单元引脚被配置为电连接到的单元的外部的芯片区域内的芯片引脚的芯片引脚位置;
确定模块,被配置为确定所述单元的中心点的坐标;
第二确定模块,被配置为确定从所述单元的所述中心点延伸到所述芯片引脚位置的线的位置;以及
定位模块,被配置为将所述单元引脚布置在所述单元的边界上,在所述单元引脚处从所述单元的所述中心点延伸到所述芯片引脚位置的所述线与所述单元的所述边界相交。
12.根据权利要求11所述的系统,其中,所述中心点对应于所述单元的区域的几何中心。
13.根据权利要求11所述的系统,其中所述芯片引脚位置是另一单元的中心点。
14.根据权利要求11所述的系统,其中所述单元具有凸几何形状。
15.根据权利要求11所述的系统,其中,所述线是交叉所述中心点和所述芯片引脚的直线。
16.根据权利要求11所述的系统,其中,所述线由函数限定,并且其中,所述定位模块被配置为改变所述函数的至少一个参数,直到避免所述单元引脚与先前布置的单元引脚的重叠。
17.根据权利要求11所述的系统,其中所述定位模块被配置为迭代地布置多个单元引脚,其中布置所述单元引脚的顺序基于设计约束信息。
18.根据权利要求17所述的系统,其中所述设计约束信息包括所述半导体电路内的可用于布置所述单元引脚的一组金属层位置。
19.根据权利要求18所述的系统,其中,用于布置所述单元引脚的所述一组可用金属层位置的可用性是基于所述芯片引脚与所述单元引脚之间的所述线的长度来确定的,并且其中,所述方法包括根据从所述芯片引脚和正被布置的相应单元引脚延伸的线的长度来对所述单元引脚进行分类。
20.一种用于设计半导体电路的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有由其体现的程序指令,所述程序指令是由一个或多个计算系统或控制器可执行的以使所述一个或多个计算系统执行计算机实现的方法,所述方法包括:
接收引脚位置数据,所述引脚位置数据包括单元引脚被配置为电连接到的单元的外部的芯片区域内的芯片引脚的芯片引脚位置;
确定所述单元的中心点的坐标;
确定从所述单元的所述中心点延伸到所述芯片引脚位置的线的位置;以及
将所述单元引脚置于所述单元的边界上,在所述单元引脚处从所述单元的所述中心点延伸到所述芯片引脚位置的所述线与所述单元的所述边界相交。
21.根据权利要求20所述的计算机程序产品,其中,执行所述计算机实现的方法还包括:
迭代地布置多个引脚,其中布置所述单元引脚的顺序基于设计约束信息,其中所述设计约束信息包括所述半导体电路内的可用于布置所述单元引脚的一组金属层位置。
22.根据权利要求21所述的计算机程序产品,其中,执行所述计算机实现的方法还包括:
基于所述芯片引脚和所述单元引脚之间的线的长度来确定用于布置所述单元引脚的所述一组金属层位置的可用性,并且其中,所述方法包括根据所述芯片引脚和正被布置的相应单元引脚之间的所述单元引脚的线的长度来对所述单元引脚进行分类。
23.一种计算机系统,包括:
至少一个处理器;
耦合到所述至少一个处理器的半导体设计系统,所述半导体设计系统包括接收器、第一确定模块、第二确定模块和定位模块;以及
耦合到所述至少一个处理器的计算机可读存储介质,其中所述计算机可读存储介质包含执行计算机实现的方法的程序指令,所述方法包括:
由所述至少一个处理器从所述接收器接收引脚位置数据,所述引脚位置数据包括单元引脚被配置为电连接到的单元的外部的芯片区域内的芯片引脚的芯片引脚位置;
由所述至少一个处理器接收由确定模块确定的所述单元的中心点的坐标;
由所述至少一个处理器定位从所述单元的所述中心点延伸到所述芯片引脚位置的线;以及
由所述至少一个处理器指示将所述单元引脚布置在所述单元的边界上,在所述单元引脚处从所述单元的所述中心点延伸到所述芯片引脚位置的所述线与所述单元的所述边界相交。
24.根据权利要求23所述的计算机系统,其中定位从所述单元的所述中心点延伸到所述芯片引脚位置的所述线的步骤由函数定义,并且所述计算机实现的方法还包括:
通过所述至少一个处理器改变所述函数的至少一个参数,直到避免所述单元引脚的布置与先前布置的单元引脚的重叠。
25.一种计算机实现的方法,包括:
由处理器接收芯片引脚坐标文件,所述芯片引脚坐标文件包括单元的xy坐标和芯片引脚的xy坐标;
由所述处理器基于所述单元的xy坐标建立所述单元的中心点;
由所述处理器将引脚线从所述单元的所述中心点延伸到所述芯片引脚的xy坐标;
由所述处理器识别交点,其中当所述引脚线从所述单元的所述中心点延伸到所述芯片引脚的xy坐标时,所述引脚线与所述单元的边界相交;以及
由所述处理器确认引脚未位于所述交点处,并且在确认所述引脚未位于所述交点处时,由所述处理器将单元管脚布置在所述交点处的所述单元的所述边界上。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/919,127 US10997350B1 (en) | 2020-07-02 | 2020-07-02 | Semiconductor circuit design and unit pin placement |
US16/919,127 | 2020-07-02 | ||
PCT/IB2021/054294 WO2022003438A1 (en) | 2020-07-02 | 2021-05-19 | Semiconductor circuit design and unit pin placement |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115769217A true CN115769217A (zh) | 2023-03-07 |
Family
ID=75689385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180047872.1A Pending CN115769217A (zh) | 2020-07-02 | 2021-05-19 | 半导体电路设计和单元引脚布置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10997350B1 (zh) |
JP (1) | JP2023530875A (zh) |
KR (1) | KR20230024325A (zh) |
CN (1) | CN115769217A (zh) |
DE (1) | DE112021002870T5 (zh) |
GB (1) | GB2611691A (zh) |
WO (1) | WO2022003438A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997350B1 (en) * | 2020-07-02 | 2021-05-04 | International Business Machines Corporation | Semiconductor circuit design and unit pin placement |
CN114021519B (zh) * | 2021-11-04 | 2022-11-29 | 北京百度网讯科技有限公司 | 链状量子芯片的布线方法、装置、电子设备及存储介质 |
CN114861587B (zh) * | 2022-04-07 | 2023-03-10 | 珠海妙存科技有限公司 | 一种芯片载板引脚排布设计方法、系统、装置与存储介质 |
CN117852486B (zh) * | 2024-03-04 | 2024-06-21 | 上海楷领科技有限公司 | 一种芯片二维模型线上交互方法、装置和存储介质 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006024A (en) * | 1996-11-01 | 1999-12-21 | Motorola, Inc. | Method of routing an integrated circuit |
US6145117A (en) * | 1998-01-30 | 2000-11-07 | Tera Systems Incorporated | Creating optimized physical implementations from high-level descriptions of electronic design using placement based information |
US6298468B1 (en) * | 1999-05-04 | 2001-10-02 | Prosper Design Systems Pte. Ltd. | Placement-based pin optimization method and apparatus for computer-aided circuit design |
US7275230B2 (en) * | 2004-06-11 | 2007-09-25 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Methods to gather and display pin congestion statistics using graphical user interface |
JP4508947B2 (ja) * | 2005-05-30 | 2010-07-21 | Okiセミコンダクタ株式会社 | 半導体装置の自動設計方法および自動設計装置 |
WO2007146966A2 (en) * | 2006-06-12 | 2007-12-21 | Otrsotech, Llc | Methods and systems for placement |
WO2007147150A2 (en) * | 2006-06-15 | 2007-12-21 | Lightspeed Logic, Inc. | Simultaneous dynamical integration applied to detailed placement |
US7752588B2 (en) * | 2005-06-29 | 2010-07-06 | Subhasis Bose | Timing driven force directed placement flow |
WO2007149717A2 (en) * | 2006-06-08 | 2007-12-27 | Lightspeed Logic, Inc. | Morphing for global placement using integer linear programming |
WO2008004346A1 (fr) * | 2006-07-06 | 2008-01-10 | Nec Corporation | Procédé et dispositif de conception d'une hiérarchie de circuit intégré semi-conducteur |
US7536665B1 (en) * | 2006-07-25 | 2009-05-19 | Cadence Design Systems, Inc. | User-guided autorouting |
US9747406B2 (en) * | 2010-11-29 | 2017-08-29 | Synopsys, Inc. | Spine routing with multiple main spines |
US8966425B1 (en) * | 2012-06-03 | 2015-02-24 | Pulsic Limited | Clock tree generation and routing |
CN103745475B (zh) | 2014-01-22 | 2017-02-08 | 哈尔滨工业大学 | 一种用于球形引脚元件的检测与定位方法 |
US9201999B1 (en) * | 2014-06-30 | 2015-12-01 | Cadence Design Systems, Inc. | Integrated circuit floorplan having feedthrough buffers |
US20160232275A1 (en) * | 2015-02-11 | 2016-08-11 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and apparatus for logical design connectivity-based automatic macro placement |
US10372860B2 (en) * | 2015-07-01 | 2019-08-06 | Synopsys, Inc. | Netlist abstraction for circuit design floorplanning |
US10133840B2 (en) | 2015-12-04 | 2018-11-20 | International Business Machines Corporation | Priority based circuit synthesis |
US9898571B2 (en) * | 2016-02-05 | 2018-02-20 | International Business Machines Corporation | Layout of interconnect lines in integrated circuits |
US10235490B1 (en) * | 2017-05-08 | 2019-03-19 | Cadence Design Systems, Inc. | Methods and systems for centering of pins during instance abutment |
US10592704B2 (en) | 2017-07-05 | 2020-03-17 | Brookshire Software, LLC | System and method for electronic automated printed circuit design |
US10559558B2 (en) | 2017-09-29 | 2020-02-11 | Taiwan Semiconductor Manufacturing Co., Ltd. | Pin modification for standard cells |
US10467373B2 (en) * | 2018-02-21 | 2019-11-05 | Xilinx, Inc. | Method of selecting routing resources in a multi-chip integrated circuit device |
US10810341B1 (en) * | 2019-06-17 | 2020-10-20 | Xilinx, Inc. | Method and system for making pin-to-pin signal connections |
CN111241775B (zh) | 2019-12-27 | 2023-05-30 | 成都锐成芯微科技股份有限公司 | 集成电路版图拼接方法 |
US10997350B1 (en) * | 2020-07-02 | 2021-05-04 | International Business Machines Corporation | Semiconductor circuit design and unit pin placement |
-
2020
- 2020-07-02 US US16/919,127 patent/US10997350B1/en active Active
-
2021
- 2021-03-09 US US17/196,548 patent/US11354478B2/en active Active
- 2021-05-19 WO PCT/IB2021/054294 patent/WO2022003438A1/en active Application Filing
- 2021-05-19 GB GB2300521.8A patent/GB2611691A/en active Pending
- 2021-05-19 DE DE112021002870.7T patent/DE112021002870T5/de active Pending
- 2021-05-19 JP JP2022574463A patent/JP2023530875A/ja active Pending
- 2021-05-19 CN CN202180047872.1A patent/CN115769217A/zh active Pending
- 2021-05-19 KR KR1020237000007A patent/KR20230024325A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
WO2022003438A1 (en) | 2022-01-06 |
DE112021002870T5 (de) | 2023-03-09 |
US11354478B2 (en) | 2022-06-07 |
KR20230024325A (ko) | 2023-02-20 |
US10997350B1 (en) | 2021-05-04 |
US20220004691A1 (en) | 2022-01-06 |
GB2611691A (en) | 2023-04-12 |
GB202300521D0 (en) | 2023-03-01 |
JP2023530875A (ja) | 2023-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115769217A (zh) | 半导体电路设计和单元引脚布置 | |
Kahng et al. | VLSI physical design: from graph partitioning to timing closure | |
CN107918694B (zh) | 用于减少集成电路上的延迟的方法 | |
Stroobandt | A priori wire length estimates for digital design | |
US11163932B2 (en) | Semiconductor process modeling to enable skip via in place and route flow | |
US20150331988A1 (en) | Wide pin for improved circuit routing | |
US20120290995A1 (en) | Changing the location of a buffer bay in a netlist | |
US10902175B1 (en) | Cross-hierarchical block pin placement | |
US10885260B1 (en) | Fin-based fill cell optimization | |
CN116306486B (zh) | 芯片设计的设计规则检查方法及相关设备 | |
US10908511B2 (en) | Systems and methods for patterning color assignment | |
Kubo et al. | Global routing by iterative improvements for two-layer ball grid array packages | |
CN110096725A (zh) | 用于单元交换的方法 | |
US8132141B2 (en) | Method and apparatus for generating a centerline connectivity representation | |
US11176303B2 (en) | Constrained cell placement | |
US8181143B2 (en) | Method and apparatus for generating a memory-efficient representation of routing data | |
Chen et al. | Simultaneous placement with clustering and duplication | |
US10885243B1 (en) | Logic partition reporting for integrated circuit design | |
US20210073347A1 (en) | Net routing for integrated circuit (ic) design | |
Lienig et al. | Methodologies for Physical Design: Models, Styles, Tasks, and Flows | |
US11775730B2 (en) | Hierarchical large block synthesis (HLBS) filling | |
US10831966B1 (en) | Multi-fanout latch placement optimization for integrated circuit (IC) design | |
US20230259684A1 (en) | Novel approach to child block pinning | |
US20220114321A1 (en) | Systems And Methods For Generating Placements For Circuit Designs Using Pyramidal Flows | |
US11106850B2 (en) | Flexible constraint-based logic cell placement |
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 |