CN105868438A - 重新分配单元密度的方法及计算机 - Google Patents
重新分配单元密度的方法及计算机 Download PDFInfo
- Publication number
- CN105868438A CN105868438A CN201510989151.9A CN201510989151A CN105868438A CN 105868438 A CN105868438 A CN 105868438A CN 201510989151 A CN201510989151 A CN 201510989151A CN 105868438 A CN105868438 A CN 105868438A
- Authority
- CN
- China
- Prior art keywords
- cell density
- layout
- initial
- density distribution
- area
- 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 45
- 238000009826 distribution Methods 0.000 claims abstract description 123
- 238000003860 storage Methods 0.000 claims description 20
- 230000006872 improvement Effects 0.000 claims description 18
- 230000008602 contraction Effects 0.000 claims description 7
- 239000004744 fabric Substances 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000009499 grossing Methods 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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
Abstract
本发明实施例公开了在集成电路的布局区域重新分配单元密度的方法及计算机。其中一种方法包括:获取所述集成电路的初始的布局中的初始的单元密度分布和布线密度分布;将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;根据所述获取的布线密度分布识别所述集成电路的至少一个第一区域,并增加所述第一区域的单元密度,以获取改善后的单元密度分布,所述第一区域在所述获取的布线密度大于预先设定的密度阈值;平滑所述改善后的单元密度分布来获取校准后的单元密度分布;从所述校准后的单元密度分布中移除所述空白来获取最终的布局;以及,根据所述最终的布局实施所述集成电路。通过实施本发明实施例可减少整个集成电路的布局区域的尺寸。
Description
本发明要求申请日为2015年2月9日,专利号为62/113,602的美国临时专利的优先权,该美国专利的全部内容均包含在本发明中。
【技术领域】
本发明涉及集成电路领域,尤其涉及在集成电路的布局区域重新分配单元密度的方法及计算机。
【背景技术】
近年来,集成电路(例如,超级大规模集成电路(Larger Scale IntegratedCircuits,LSIC))的开发流程(development process)已普遍地采用计算机辅助设计(Computer Assisted Design,CAD)。根据基于CAD的开发流程,通过使用所谓的硬件描述语言(Hardware Description Language,HDL)来定义抽象电路数据,所述抽象电路数据与要开发的集成电路的功能相对应,此外,用于定义所述抽象电路数据的电路形成具体的电路结构被安装到芯片上。
在制造或实施一个集成电路芯片前,所述集成电路芯片的布局(placement)和布局区域(layout area)应该首先被确定,以便确定每一个集成电路芯片的尺寸。通常,尺寸将会影响集成电路芯片的制造成本。因此,为了最小化集成电路芯片的布局区域,有必要优化所述集成电路芯片的布局。
【发明内容】
本发明提供在集成电路的布局区域重新分配单元密度的方法及计算机,可减少整个集成电路的布局区域的尺寸。
本发明的提供的一种在集成电路的布局区域重新分配单元密度的方法,可包括:获取所述集成电路的初始的布局中的初始的单元密度分布;获取所述集成电路的初始的布局中的布线密度分布;将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;根据所述获取的初始的布局中的布线密度分布识别所述集成电路的至少一个第一区域,并通过在所述第一区域中插入空白增加所述第一区域的单元密度,以获取改善后的单元密度分布,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值;平滑所述改善后的单元密度分布来获取校准后的单元密度分布;从所述校准后的单元密度分布中移除所述空白来获取最终的布局;以及,根据所述最终的布局实施所述集成电路。该方案可减少整个集成电路的布局区域的尺寸。
本发明提供的另一种在集成电路的布局区域中重新分配单元密度的方法,可包括:获取所述集成电路的初始的布局中的初始的单元密度分布;获取所述集成电路的初始的布局中的布线密度分布;将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;根据所述获取的初始的布局中的布线密度分布识别所述集成电路中的至少一个第一区域,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值;扩大所述第一区域中的至少一个第一单元,以增大所述第一单元的单元尺寸;收缩所述第一区域之外的至少一个第二单元,以减小所述第二单元的单元尺寸;根据所述扩大后的所述第一单元和所述收缩后的所述第二单元重新分配所述初始的布局的单元密度,以获取校准后的单元密度分布;恢复所述校准后的单元密度分布中的所述第一单元和所述第二单元的单元尺寸,以获取最终的布局;以及,根据所述最终的布局实施所述集成电路。该方案也可减少整个集成电路的布局区域的尺寸。
本发明提供的一种计算机可包括处理器、内存和存储设备,其中,所述存储设备用于存储应用程序;所述处理器用于将所述存储设备中的应用程序加载到所述内存中,以执行如下步骤:获取所述集成电路的初始的布局中的初始的单元密度分布;获取所述集成电路的初始的布局中的布线密度分布;将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;根据所述获取的初始的布局中的布线密度分布识别所述集成电路的至少一个第一区域,并通过在所述第一区域中插入空白增加所述第一区域的单元密度,以获取改善后的单元密度分布,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值;平滑所述改善后的单元密度分布来获取校准后的单元密度分布;从所述校准后的单元密度分布中移除所述空白来获取最终的布局;以及,根据所述最终的布局实施所述集成电路。该方案也可减少整个集成电路的布局区域的尺寸。
本发明提供的另一种计算机可包括处理器、内存和存储设备,其中,所述存储设备用于存储应用程序;所述处理器用于将所述存储设备中的应用程序加载到所述内存中,以执行如下步骤:获取所述集成电路的初始的布局中的初始的单元密度分布;获取所述集成电路的初始的布局中的布线密度分布;将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;根据所述获取的初始的布局中的布线密度分布识别所述集成电路的至少一个第一区域,并通过在所述第一区域中插入空白增加所述第一区域的单元密度,以获取改善后的单元密度分布,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值;平滑所述改善后的单元密度分布来获取校准后的单元密度分布;从所述校准后的单元密度分布中移除所述空白来获取最终的布局;以及,根据所述最终的布局实施所述集成电路。该方案也可减少整个集成电路的布局区域的尺寸。
【附图说明】
图1为集成电路的典型的分层设计流程的示意图。
图2为依据本发明的一个实施例的在集成电路的布局中重新分配单元密度的方法的流程图。
图3为依据图2的步骤S210的初始的布局的一个实施例。
图4为图3中的初始的布局中的初始的单元密度分布的一个实施例。
图5为图2中步骤S220获取的平坦的单元密度分布的一个实施例。
图6为图2中的步骤S240获取的改善后的单元密度分布的一个实施例。
图7为图2中的步骤S260获取的校准后的单元密度分布的一个实施例。
图8为图2中的步骤S270获取的最终的布局的最终的单元密度分布的一个实施例。
图9为依据本发明的一个实施例的计算机系统100的示意图。
【具体实施方式】
图1为集成电路的典型的分层设计(hierarchical design)流程的示意图。
在步骤S110,获取用于描述所述集成电路所执行的功能的寄存器传输级(Register-Transfer-Level,RTL)代码。
在步骤S120,综合所述RLT代码来生成所述集成电路的门(gates)。
在步骤S130,执行自动布局和布线(Auto Place And Route,APR)程序以形成所述门在所述集成电路的芯片区域中的布局。
在步骤S140,判断所述形成的布局中是否存在拥塞,如果判断为否,执行步骤S160,如果判断为是,执行步骤S150。
在步骤S150,增大所述集成电路的芯片区域来解决所述拥塞,并返回步骤S130,以形成所述门在所述集成电路的芯片区域中的新的布局。
在步骤S160,根据所述布局实施所述集成电路。
图2为依据本发明的一个实施例的在集成电路的布局中重新分配单元密度(cell density)的方法的流程图。图2中的方法可由有能力操作电子设计自动化(Electronic Design Automation,EDA)工具的计算机所执行。
在步骤S210,所述计算机的处理器获取所述集成电路的初始的布局(initialplacement),且可通过一个用户图形界面(GUI)显示所述初始的布局。
在步骤S220,所述处理器根据所述初始的布局中的初始的单元密度分布(cell density distribution)执行单元密度预处理,以便使所述初始的单元密度分布平坦(flat),并获取平坦后的单元密度分布。作为举例,具体实现中,可通过在所述初始布局中插入空白(white space)来将所述初始的单元密度分布平坦。
在步骤S230,所述处理器获取所述集成电路的初始的布局的布线密度分布(routing density distribution),并根据所述布线密度分布识别出至少一个布线拥塞区域。此处采样布线拥塞区域进行举例说明,实际应用中,在步骤S230,具体可根据所述获取的初始的布局中的布线密度分布识别所述集成电路的至少一个第一区域,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值,当然所述第一区域可为所述布线拥塞区域,具体实现中,所述密度阈值可为所述初始的布局的布线密度分布的所有布线密度的平均值或比所述平均值略大的布线密度的值,或者,可为多次实践总结出的可导致布线拥塞的一个布线密度值。在一些实施例中,步骤S220和S230可以互换。
在步骤S240,所述处理器通过在所述布线拥塞区域增加单元密度来重新分配所述平坦的单元密度分布的单元密度,以便获取改善后的单元密度分布。具体实现中,可采用在所述布线拥塞区域插入空白的方式来增加所述布线拥塞区域的单元密度。当然,此处同样仅用布线密度区域作为第一区域的举例,实际应用中,在步骤S240是在所述第一区域中插入空白的方式来增加所述第一区域的单元密度。
在步骤S250,所述处理器根据所述改善后的单元密度分布执行单元膨胀和收缩(inflation and deflation calibration)校准程序,以便根据所述改善后的单元密度分布调整单元的尺寸。例如,所述处理器可在所述改善后的单元密度分布中具有高布线密度、低单元密度的区域扩大(expand)单元的单元尺寸,而在所述具有高布线密度、低单元密度的区域之外的区域收缩(shrink)单元的单元尺寸,此处所述高布线密度为所述改善后的单元密度分布中在布线密度分布中布线密度较高的区域,比如,布线拥塞区域,或者,布线密度大于平均布线密度的区域,或者,其他布线密度超过预设的密度阈值的区域;而此处所述低单元密度为所述改善后的单元密度分布中设定的低单元密度区域中的单元密度,比如,单元密度小于平均单元密度的区域,或者,单元密度小于预设的单元密度阈值的区域。通常,可预先设定单元密度分布中的高单元密度区域和低单元密度区域。例如,图6所示的区域CR1和CR2即为此处所述的所述改善后的单元密度分布中具有高布线密度、低单元密度的区域。
在步骤S260,所述处理器根据具有调整后的尺寸的单元再次执行自动布局和布线程序,以便获取校准后的布局。
此处步骤S250和S260列举了一种对所述改善后的单元密度分布进行平滑处理的方式。具体实现中,也可通过其他手段实现平滑处理。
在步骤S270,所述处理器恢复(recover)所述校准后的布局中的单元的单元尺寸并从所述校准后的布局中移除所述空白,以便获取一个新的布局,所述新的布局的布局区域小于所述初始的布局的布局区域。如果所述新的布局为合法的布局,比如,对于所述新的布局而言,设计规则校验(Design Rule Checking,DRC)和布局对照图(Layout Versus Schematic,LVS)验证均是正常的,则所述新的布局为实施所述集成电路的最终布局。
图3为依据图2的步骤S210的初始的布局10的一个实施例。所述初始的布局10包括布线区域20和多个宏模块30。所述多个宏模块30可为完全相同的模块或不同的模块,且所述多个宏模块30排布在所述布线区域20外围。所述布线区域20由多个单元(例如,各种类型的由单个或多个门构成的标准单元)和多个用于连接所述多个单元和所述多个宏模块30的布线所构成。
图4为图3中的初始的布局中的初始的单元密度分布的一个实施例。在图4中,标号400表示处理器从图3的所述初始的布局10中获取的一个初始的单元密度分布。此外,所述单元密度分布的水平轴表示所述布线区域20的一个宽度方向或长度方向,所述单元密度分布的纵轴表示所述水平轴上的各位置的单元密度。在该实施例中,假设在所述初始的布局10中所述布线区域20的长度为Li,宽度为Wi,且所述单元密度分布的水平轴表示所述布线区域20的宽度方向。另外,在图4中,标号450表示图2中步骤S230中获取的所述集成电路的所述初始的布局的布线密度分布。
图5为图2中步骤S220获取的平坦的单元密度分布的一个实施例。在该实施例中,根据一个特定的密度值CD将空白插入所述初始布局10中,以便获取一个平坦的单元密度分布500。在图5中,通过插入空白550,所述初始的单元密度分布400被填入所述特定的密度值CD,并且所述处理器可获取所述平坦的单元密度分布500。值得注意的是,所述特定的密度值CD大于所述初始的单元密度分布400的最大的单元密度值。
图6为图2中的步骤S240获取的改善后的单元密度分布的一个实施例。在该实施例中,处理器可识别出存在于位置W1和W2之间的第一布线拥塞区域CR1,以及存在与位置W3和W4之间的第二布线拥塞区域CR2。识别出所述第一布线拥塞区域CR1和所述第二布线拥塞区域CR2之后,所述处理器通过在所述布线拥塞区域CR1和CR2中增加额外的单元密度(如610和620所示,可通过插入空白的方式来在布线拥塞区域CR1和CR2增加单元密度),重新分配所述平坦的单元密度分布的单元密度,以便获取一个改善后的单元密度分布600。
图7为图2中的步骤S260获取的校准后的单元密度分布的一个实施例。在该实施例中,位于所述布线拥塞区域CR1和CR2的单元的单元尺寸被扩大了,而位于所述布线拥塞区域CR1和CR2之外的单元的单元尺寸被收缩。因此,当再次执行所述APR程序之后,所述处理器可获取一个校准后的布局,也即,所述改善后的单元密度分布600中的所述额外的单元密度被平滑处理,其中,所述校准后的布局包括一个校准后的单元密度分布700。在该实施例中,对应所述校准后的布局的布线区域的宽度为Wf,且所述Wf小于图3中的布线区域20的宽度Wi。
图8为图2中的步骤S270获取的最终的布局的最终的单元密度分布的一个实施例。同时参考图7-图8,在该实施例中,所述处理器从所述校准后的单元密度分布700中移除所述空白750以便获取一个最终的布局的单元密度分布800。此外,恢复扩大的单元和减小的单元的单元尺寸,以获取最终的布局。此外,在图8中,标号850表示图2的步骤S270获取的所述集成电路的最终的布局中的最终的布线密度分布。因此,如标号810和830所示,在所述布线拥塞区域CR1,所述最终的布局的布线密度和单元密度被减小。相似的,如标号820和840所示,在所述布线拥塞区域CR2,所述最终的布局的布线密度和单元密度被减小。进一步,在获取集成电路的布线区域(例如,图3中的布线区域20)的最终的布局之后,所述处理器可在所述减小后的布线区域的邻近位置排布所述宏模块(例如,图3中的宏模块30),因此,所述集成电路的布局区域被减小。另外,如标号860所示,所述初始的布局中的最大的单元密度小于所述最终的布局中的最大的单元密度。另外,如标号870所示,所述初始的布局中的最小的布线密度小于所述最终的布局中的最小的布线密度。
图9为依据本发明的一个实施例的计算机系统100的示意图。所述计算机系统100包括计算机110、显示设备120和用户输入接口130,其中,所述计算机110包括处理器140、内存(memory)150和存储设备(storage device)160。所述计算机110耦接至所述显示设备120和所述用户输入接口130,且所述计算机110有能力操作EDA工具。另外,所述计算机110有能力从所述用户输入接口130接收输入的指令并在所述显示设备120上显示所述集成电路的布局和布线。在一个实施例中,所述显示设备120为计算机110的用户图形界面。另外,所述显示设备120和所述用户输入接口130可实施在所述计算机110内部。所述用户输入接口130可为键盘,鼠标等。在计算机110中,所述存储设备160可存储操作系统(Operating Systems,OS),应用程序(application),以及数据,所述数据包括由所述应用程序请求的数据和所述应用程序输出的数据。所述计算机110的处理器140可在本发明明确揭露或暗示的任意方法中执行一个或多个操作(自动地执行或由用户输入)。例如,在操作时,所述处理器140可将所述存储设备160中的应用程序加载至所述内存150中,随后用户可使用所述应用程序来创建、查看、和/或退出一个电路设计的布局。
本发明所揭露的数据结构和所提及的代码可全部或部分地存储在一个计算机可读存储介质、硬件模块或硬件装置中。所述计算机可读存储介质包括,但不限于,易失性存储器、非易失性存储器,磁性或光学存储设备(例如,硬盘、磁带、光碟机,数字光碟机),或者其他现在已知或者将来会发展的有能力存储代码和/或数据的介质。本发明所揭露的硬件模块或硬件装置包括,但不限于,专用集成电路(Application-Specific Integrated Circuits,ASICs)、现场可编程门阵列(Field-Programmable Gate Arrays,FPGAs)、专用的或共享的处理器,以及其他当前已知或将来会发展的硬件模块或装置。
本发明所揭露的方法和所提及的流程可全部或部分地表现为存在在一个计算机可读存储介质中的代码和/或数据,因此,当一个计算机系统读取并执行所述代码和/或数据时,所述计算机系统执行本发明相关的方法和流程。所述方法和流程还可全部或部分地在硬件模块或装置被体现,因此,当所述硬件模块或装置被激活后,可执行本发明相关的方法和流程。请注意,本发明的方法和流程可表现为代码、数据以及硬件模块或装置的结合。
权利要求书中用以修饰元件的“第一”、“第二”等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或所执行方法的时间次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本发明已经通过举例的方式以及根据优选实施例作了描述,但应当理解的是本发明不限于此。本领域技术人员还可以做各种变化和修改而不脱离本发明的范围和精神,因此本发明的保护范围当视权利要求所界定者为准。
Claims (18)
1.一种在集成电路的布局区域重新分配单元密度的方法,包括:
获取所述集成电路的初始的布局中的初始的单元密度分布;
获取所述集成电路的初始的布局中的布线密度分布;
将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;
根据所述获取的初始的布局中的布线密度分布识别所述集成电路的至少一个第一区域,并通过在所述第一区域中插入空白增加所述第一区域的单元密度,以获取改善后的单元密度分布,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值;
平滑所述改善后的单元密度分布来获取校准后的单元密度分布;
从所述校准后的单元密度分布中移除所述空白来获取最终的布局;以及,
根据所述最终的布局实施所述集成电路。
2.如权利要求1所述的方法,其特征在于,所述将所述初始的单元密度分布平坦包括:
在所述初始的布局中插入空白来将所述初始的单元密度分布平坦。
3.如权利要求2所述的方法,其特征在于,所述在所述初始的布局中插入空白来将所述初始的单元密度分布平坦包括:
以特定的密度值在所述初始的布局中插入所述空白来将所述初始的单元密度分布平坦;
所述通过在所述第一区域中插入空白增加所述第一区域的单元密度包括:
以所述特定的密度值在所述第一区域中插入所述空白;
其中,所述特定的密度值大于所述初始的单元密度分布的最大的单元密度。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述第一区域为所述获取的初始的布局的布线密度分布中的布线拥塞区域,所述布线拥塞区域对应所述初始的单元密度分布中的一个低单元密度区域。
5.如权利要求1-3中任一项所述的方法,其特征在于,所述最终的布局的布局区域小于所述获取的所述初始的布局的布局区域。
6.如权利要求1-3中任一项所述的方法,其特征在于,所述平滑所述改善后的单元密度分布包括:
扩大所述第一区域的单元的单元尺寸;以及
收缩所述所述第一区域之外的第二区域中的单元的单元尺寸。
7.如权利要求6所述的方法,其特征在于,所述获取的所述初始的布局中的最大的单元密度小于所述最终的布局中的最大的单元密度。
8.如权利要求6所述的方法,其特征在于,所述获取的所述初始的布局中的最小的布线密度小于所述最终的布局中的最小的布线密度。
9.如权利要求4所述的方法,其特征在于,所述方法还包括:从所述校准后的单元密度分布中移除所述空白之后,恢复所述校准后的单元密度分布中的所述第一单元和所述第二单元的单元尺寸,以获取最终的布局。
10.一种在集成电路的布局区域中重新分配单元密度的方法,其特征在于,包括:
获取所述集成电路的初始的布局中的初始的单元密度分布;
获取所述集成电路的初始的布局中的布线密度分布;
将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;
根据所述获取的初始的布局中的布线密度分布识别所述集成电路中的至少一个第一区域,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值;
扩大所述第一区域中的至少一个第一单元,以增大所述第一单元的单元尺寸;
收缩所述第一区域之外的至少一个第二单元,以减小所述第二单元的单元尺寸;
根据所述扩大后的所述第一单元和所述收缩后的所述第二单元重新分配所述初始的布局的单元密度,以获取校准后的单元密度分布;
恢复所述校准后的单元密度分布中的所述第一单元和所述第二单元的单元尺寸,以获取最终的布局;以及,
根据所述最终的布局实施所述集成电路。
11.如权利要求10所述的方法,其特征在于,所述根据所述扩大后的所述第一单元和所述收缩后的所述第二单元重新分配所述初始的布局的单元密度,以获取校准后的单元密度分布,包括:
根据所述扩大后的所述第一单元和所述收缩后的所述第二单元执行自动布局和布线程序,重新分配所述初始的布局的单元密度,以获取校准后的单元密度分布。。
12.一种计算机,其特征在于,包括:处理器、内存和存储设备,其中,所述存储设备用于存储应用程序;
所述处理器用于将所述存储设备中的应用程序加载到所述内存中,以执行如下步骤:
获取所述集成电路的初始的布局中的初始的单元密度分布;
获取所述集成电路的初始的布局中的布线密度分布;
将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;
根据所述获取的初始的布局中的布线密度分布识别所述集成电路的至少一个第一区域,并通过在所述第一区域中插入空白增加所述第一区域的单元密度,以获取改善后的单元密度分布,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值;
平滑所述改善后的单元密度分布来获取校准后的单元密度分布;
从所述校准后的单元密度分布中移除所述空白来获取最终的布局;以及,
根据所述最终的布局实施所述集成电路。
13.如权利要求12所述的计算机,其特征在于,所述处理器执行将所述初始的单元密度分布平坦的步骤具体包括:
在所述初始的布局中插入空白来将所述初始的单元密度分布平坦。
14.如权利要求13所述的计算机,其特征在于,所述处理器具体用于以特定的密度值在所述初始的布局中插入所述空白来将所述初始的单元密度分布平坦,并以特定的密度值在所述第一区域中插入所述空白,其中,所述特定的密度值大于所述初始的单元密度分布的最大的单元密度。
15.如权利要求12-14中任一项所述的计算机,其特征在于,所述处理器执行所述所述平滑所述改善后的单元密度分布的步骤包括:
扩大所述第一区域的单元的单元尺寸;以及
收缩所述所述第一区域之外的第二区域中的单元的单元尺寸。
16.如权利要求15所述的计算机,其特征在于,所述处理器执行从所述校准后的单元密度分布中移除所述空白的步骤之后,还执行如下步骤:
恢复所述校准后的单元密度分布中的所述第一单元和所述第二单元的单元尺寸,以获取最终的布局。
17.一种计算机,其特征在于,包括处理器、内存和存储设备,其中,所述存储设备用于存储应用程序;
所述处理器用于将所述存储设备中的应用程序加载到所述内存中,以执行如下步骤:
获取所述集成电路的初始的布局中的初始的单元密度分布;
获取所述集成电路的初始的布局中的布线密度分布;
将所述初始的单元密度分布平坦,并获取平坦后的单元密度分布;
根据所述获取的初始的布局中的布线密度分布识别所述集成电路中的至少一个第一区域,其中,所述第一区域在所述获取的初始的布局中的布线密度大于预先设定的密度阈值;
扩大所述第一区域中的多个第一单元,以增大所述第一单元的单元尺寸;
收缩所述第一区域之外的多个第二单元,以减小所述第二单元的单元尺寸;
根据所述扩大后的所述第一单元和所述收缩后的所述第二单元重新分配所述初始的布局的单元密度,以获取校准后的单元密度分布;
恢复所述校准后的单元密度分布中的所述第一单元和所述第二单元的单元尺寸,以获取最终的布局;以及,
根据所述最终的布局实施所述集成电路。
18.如权利要求17所述的计算机,其特征在于,所述处理器执行根据所述扩大后的所述第一单元和所述收缩后的所述第二单元重新分配所述初始的布局的单元密度,以获取校准后的单元密度分布的步骤,包括:
根据所述扩大后的所述第一单元和所述收缩后的所述第二单元执行自动布局和布线程序,重新分配所述初始的布局的单元密度,以获取校准后的单元密度分布。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562113602P | 2015-02-09 | 2015-02-09 | |
US62/113,602 | 2015-02-09 | ||
US14/932,165 US9946829B2 (en) | 2015-02-09 | 2015-11-04 | Methods for redistributing cell densities in layout area of IC |
US14/932,165 | 2015-11-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105868438A true CN105868438A (zh) | 2016-08-17 |
Family
ID=56566889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510989151.9A Pending CN105868438A (zh) | 2015-02-09 | 2015-12-24 | 重新分配单元密度的方法及计算机 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9946829B2 (zh) |
CN (1) | CN105868438A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7448012B1 (en) | 2004-04-21 | 2008-11-04 | Qi-De Qian | Methods and system for improving integrated circuit layout |
US11545495B2 (en) * | 2017-06-29 | 2023-01-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Preventing gate-to-contact bridging by reducing contact dimensions in FinFET SRAM |
US11120192B1 (en) * | 2020-04-20 | 2021-09-14 | International Business Machines Corporation | White space insertion for enhanced routability |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818729A (en) * | 1996-05-23 | 1998-10-06 | Synopsys, Inc. | Method and system for placing cells using quadratic placement and a spanning tree model |
GB9929084D0 (en) * | 1999-12-08 | 2000-02-02 | Regan Timothy J | Modification of integrated circuits |
US6993738B2 (en) * | 2002-06-18 | 2006-01-31 | Ip-First, Llc | Method for allocating spare cells in auto-place-route blocks |
US7305641B2 (en) * | 2005-01-12 | 2007-12-04 | International Business Machines Corporation | Method and system to redistribute white space for minimizing wire length |
US7444609B2 (en) * | 2006-06-29 | 2008-10-28 | International Business Machines Corporation | Method of optimizing customizable filler cells in an integrated circuit physical design process |
US7895548B2 (en) * | 2007-10-26 | 2011-02-22 | Synopsys, Inc. | Filler cells for design optimization in a place-and-route system |
WO2014186803A1 (en) * | 2013-05-17 | 2014-11-20 | Cornell University | Automated layout for integrated circuits with nonstandard cells |
-
2015
- 2015-11-04 US US14/932,165 patent/US9946829B2/en active Active
- 2015-12-24 CN CN201510989151.9A patent/CN105868438A/zh active Pending
-
2018
- 2018-03-08 US US15/915,172 patent/US10162927B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9946829B2 (en) | 2018-04-17 |
US10162927B2 (en) | 2018-12-25 |
US20160232272A1 (en) | 2016-08-11 |
US20180196910A1 (en) | 2018-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4477632B2 (ja) | 自動回路設計のための方法と装置 | |
US6557145B2 (en) | Method for design optimization using logical and physical information | |
EP1543449B1 (en) | Method for eliminating routing congestion in an ic layout | |
US20020069396A1 (en) | Method for automated design of integrated circuits with targeted quality objectives using dynamically generated building blocks | |
US8079004B2 (en) | Efficient exhaustive path-based static timing analysis using a fast estimation technique | |
US8429589B2 (en) | Generating net routing constraints for place and route | |
US8266566B2 (en) | Stability-dependent spare cell insertion | |
US9165102B1 (en) | Routing standard cell-based integrated circuits | |
US8719752B1 (en) | Hierarchical crosstalk noise analysis model generation | |
US9740815B2 (en) | Electromigration-aware integrated circuit design methods and systems | |
US6651232B1 (en) | Method and system for progressive clock tree or mesh construction concurrently with physical design | |
US8719746B1 (en) | Reduction of metal fill insertion time in integrated circuit design process | |
US8661391B1 (en) | Spare cell insertion based on reachable state analysis | |
EP3239865A1 (en) | Method for analyzing ir drop and electromigration of ic | |
CN105868438A (zh) | 重新分配单元密度的方法及计算机 | |
CN114861575B (zh) | 元素集合的获取方法、装置、设备及存储介质 | |
CN112232016A (zh) | Ssd主控芯片高效总线设计迭代方法、系统以及平台 | |
US10891411B2 (en) | Hierarchy-driven logical and physical synthesis co-optimization | |
US9940422B2 (en) | Methods for reducing congestion region in layout area of IC | |
US10073944B2 (en) | Clock tree synthesis based on computing critical clock latency probabilities | |
US9965581B1 (en) | Fanout optimization to facilitate timing improvement in circuit designs | |
US20090019412A1 (en) | Design method and design apparatus for semiconductor integrated circuit | |
CN107315863B (zh) | 布局优化方法及装置、终端及存储介质 | |
US20040163068A1 (en) | Logic circuit diagram input device | |
US7076759B2 (en) | Methodology for generating a modified view of a circuit layout |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160817 |