CN114417771A - 芯片电路的布局方法、电路设计方法、装置、设备及介质 - Google Patents
芯片电路的布局方法、电路设计方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114417771A CN114417771A CN202011176392.9A CN202011176392A CN114417771A CN 114417771 A CN114417771 A CN 114417771A CN 202011176392 A CN202011176392 A CN 202011176392A CN 114417771 A CN114417771 A CN 114417771A
- Authority
- CN
- China
- Prior art keywords
- layout
- coordinate information
- macro
- polygons
- circuit
- 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 119
- 238000013461 design Methods 0.000 title claims abstract description 88
- 125000001475 halogen functional group Chemical group 0.000 claims abstract description 120
- 230000008439 repair process Effects 0.000 claims description 70
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000012300 Sequence Analysis Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 11
- 239000002699 waste material Substances 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 5
- 229920005591 polysilicon Polymers 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004804 winding Methods 0.000 description 3
- 239000004429 Calibre Substances 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012795 verification 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/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
- 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]
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)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请实施例公开了一种芯片电路的布局方法、电路设计方法、装置、设备及介质,该方法包括:获取待设计电路的初始布局结果,待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;确定至少两个宏模块对应的布局晕环图形坐标信息;对至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将至少两个宏模块组合为一个或多个多边形,得到一个或多个多边形的坐标信息;计算一个或多个多边形中的每相邻两个点的坐标差值;以及基于一个或多个多边形中的每相邻两个点的坐标差值,确定至少两个宏模块是否存在布局违例。这样,可以减少因宏模块摆放引起设计规则检查而导致的布局迭代次数,节约整个芯片设计的时间。
Description
技术领域
本申请涉及芯片设计技术领域,尤其涉及一种芯片电路的布局方法、电路设计方法、装置、设备及介质。
背景技术
随着工艺尺寸的缩减,芯片的集成度增强,设计规模和难度也相应增大。通常情况下,芯片内一个模块的规模动辄为几百万个标准单元,数百个宏模块,一轮自动布局布线(Auto Place and Route,APR)的时间高达数十小时。而随着工艺制程逐步从12nm向7nm甚至5nm演进,芯片的设计规则检查(Design Rule Check,DRC)种类越来越多,类型也越来越复杂,项目中常因宏模块摆放的细微问题未被发现而迭代耽误大量的时间。如何减少因布局不当产生DRC而导致重新一轮布局迭代,用以缩短项目进程,变得尤为重要。
在7nm的布局中DRC愈发严格。针对因宏模块摆放未完全对齐而产生的物理单元类型不正确或者多晶硅宽度过小等DRC问题,这些问题经常存在而且在APR工具中无法被轻易解决。虽然目前存在一些解决方案,但是这些解决方案要么比较繁琐且耗费时间,要么需要增加布局阻塞,但是会浪费两个阻塞大小的面积且使得时序变化,需要新一轮时序优化进行修复,甚至还会导致重新布局布线,存在一定的局限性。
发明内容
本申请提出一种芯片电路的布局方法、电路设计方法、装置、设备及介质,可以减少因宏模块摆放引起DRC而导致的布局迭代次数,节省芯片设计中宏模块摆放的工作量,还可以避免宏模块两侧同时增加布局阻塞而造成的面积浪费。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提供了一种芯片电路的布局方法,该方法包括:
获取待设计电路的初始布局结果,其中,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;
确定所述至少两个宏模块对应的布局晕环图形坐标信息;
对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;
计算所述一个或多个多边形中的每相邻两个点的坐标差值;以及
基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。
第二方面,本申请实施例提供了一种基于电子设计自动化EDA工具的电路设计方法,该方法包括:
接收待设计电路的至少两个宏模块,且宏模块的四周设置有布局晕环;
生成所述待设计电路的初始布局结果;
确定所述至少两个宏模块对应的布局晕环图形坐标信息;
根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,并基于所获取的布局修复结果更新所述初始布局结果,返回执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例,以确定所述待设计电路的目标布局结果;
基于所述目标布局结果对所述待设计电路进行布线操作,得到所述待设计电路的布线结果。
第三方面,本申请实施例提供了一种芯片电路的布局装置,所述芯片电路的布局装置包括获取单元、确定单元和运算单元;其中,
所述获取单元,配置为获取待设计电路的初始布局结果,其中,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;
所述确定单元,配置为确定所述至少两个宏模块对应的布局晕环图形坐标信息;
所述运算单元,配置为对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;以及计算所述一个或多个多边形中的每相邻两个点的坐标差值;
所述确定单元,还配置为基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。
第四方面,本申请实施例提供了一种电路设计装置,所述电路设计装置包括接收单元、布局单元和布线单元;其中,
所述接收单元,配置为接收待设计电路的至少两个宏模块,且宏模块的四周设置有布局晕环;
所述布局单元,配置为生成待设计电路的初始布局结果;以及确定所述至少两个宏模块对应的布局晕环图形坐标信息;根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,并基于所获取的布局修复结果更新所述初始布局结果,返回执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例,以确定所述待设计电路的目标布局结果;
所述布线单元,配置为根据所述目标布局结果对所述待设计电路进行布线操作,得到所述待设计电路的布线结果。
第五方面,本申请实施例提供了一种芯片电路的布局设备,所述芯片电路的布局设备包括存储器和处理器;其中,
所述存储器,用于存储能够在所述处理器上运行的可执行指令;
所述处理器,用于在运行所述可执行指令时,执行如第一方面所述的方法。
第六方面,本申请实施例提供了一种EDA设备,所述EDA设备包括存储器和处理器;其中,
所述存储器,用于存储能够在所述处理器上运行的可执行指令;
所述处理器,用于在运行所述可执行指令时,执行如第二方面所述的方法。
第七方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被芯片电路的布局设备执行时实现如第一方面所述的方法、或者被EDA设备执行时实现如第二方面所述的方法。
本申请实施例所提供的一种芯片电路的布局方法、电路设计方法、装置、设备及介质,通过获取待设计电路的初始布局结果,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;确定所述至少两个宏模块对应的布局晕环图形坐标信息;对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;计算所述一个或多个多边形中的每相邻两个点的坐标差值;以及基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。这样,利用一个或多个多边形中的每相邻两个点的坐标差值来确定至少两个宏模块是否存在布局违例,如此可以减少因宏模块摆放引起DRC而导致的布局迭代次数,节省芯片设计中宏模块摆放的工作量,从而能够节约整个芯片设计的时间;另外,在确定存在布局违例的情况下,本申请的布局违例修复还可以避免宏模块两侧同时增加布局阻塞而造成的面积浪费。
附图说明
图1为相关技术提供的一种宏模块摆放的常见问题示意图;
图2为相关技术提供的一种设计规则检查的流程示意图;
图3为本申请实施例提供的一种芯片电路的布局方法的流程示意图;
图4为本申请实施例提供的一种预设修复策略的应用场景示意图;
图5为本申请实施例提供的另一种预设修复策略的应用场景示意图;
图6为本申请实施例提供的另一种芯片电路的布局方法的流程示意图;
图7为本申请实施例提供的一种芯片电路的布局方法的详细流程示意图;
图8为本申请实施例提供的一种基于EDA工具的电路设计方法的流程示意图;
图9为本申请实施例提供的一种芯片电路的布局装置的组成结构示意图;
图10为本申请实施例提供的一种芯片电路的布局设备的硬件结构示意图;
图11为本申请实施例提供的一种电路设计装置的组成结构示意图;
图12为本申请实施例提供的一种EDA设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
随着集成电路设计技术的快速发展,一个电子系统或分系统可以完全集成在一个芯片之上,即系统级芯片(System on Chip,SoC)集成。而且随着设计规模的增大、电路性能的提高和设计的复杂度大大增加,相应地,对芯片的设计也提出了更高的要求。
应理解,随着工艺尺寸的缩减,集成度的增强,设计规模和难度也相应增大,芯片内一个模块规模动辄为几百万标准单元,数百个宏模块,一轮布局布线(Auto Place andRoute,APR)的时间也大幅增加,高达数十小时。而随着工艺制程逐步从12nm、7nm到5nm的演进,芯片设计规则检查(Design Rule Check,DRC)种类越来越多,类型越来越复杂,项目中常因宏模块摆放的细微问题未被发现而迭代耽误大量的时间,这在项目后期将会是非常棘手的问题。这时候,如何减少因布局不当产生DRC而导致重新一轮布局迭代,用以缩短项目进程,变得尤为重要。
在7nm的布局中设计规则检查愈发严格。参见图1,其示出了相关技术提供的一种宏模块摆放的常见问题示意图。如图1所示,在当前页面10中,网格填充的矩形区域表示宏模块,黑色填充的区域表示布局晕环(Placement Halo),白色填充的小矩形区域为物理单元。在图1中可以明显看出其中两个宏模块的摆放处于未完全对齐状态。
针对宏模块摆放未完全对齐,这时候边沿间距(用Δd表示)小于设计规则要求的第一预设特征值(可以用w1表示)而产生的物理单元类型不正确、或者边沿间距(用Δd表示)小于设计规则要求的第二预设特征值(可以用w2表示)而产生的多晶硅宽度过小等DRC问题,这种DRC问题经常存在且在APR工具中无法被轻易解决。针对上述的问题,目前已有的技术方案包括如下两种:一种是每次布局结束后均进行插与逻辑无关填充物,抽取版图,如抽图形设计系统(Graphic Design System,GDS),插虚设氧化物和多晶硅(Dummy Oxideand Poly,Dummy ODPO),利用预设工具(如Calibre工具)检查DRC的迭代过程;另一种是到设计后期发现问题,在进行完布局布线的设计中,针对上述问题区域来挪动物理单元及其附近的标准单元,并增加布局阻塞。
然而,目前这两种技术方案分别具有其各自的缺点。对于第一种技术方案而言,图2示出了相关技术提供的一种设计规则检查的流程示意图。如图2所示,该流程可以包括:
S201:初始化数据库系统(Data Base System,DBS);
S202:插滤波器(Filter);
S203:抽取版图;
S204:插入虚设氧化物和多晶硅;
S205:利用预设工具检查基层(Base Layer)的设计规则问题;
S206:判断基层是否不存在设计规则问题;
S207:若判断结果为否,则调整布局,重新进行迭代检查;
S208:若判断结果为是,则摆放标准单元。
需要说明的是,在初始化DBS后,插Filter,然后抽取版图,具体地,可以通过抽取GDS实现抽取版图;然后再基于版图,插入虚设氧化物和多晶硅(Dummy ODPO),并利用预设工具(即Calibre工具)检查Base Layer的设计规则问题(即DRC问题);如果Base Layer存在DRC问题,那么将会继续调整布局,并且重新迭代检查,直至Base Layer不存在DRC问题,这时候可以进行标准单元的摆放。
还需要说明的是,在该技术方案中,一轮迭代时间为数小时,而且S204和S205为签核工具执行,剩下的步骤为自动布局布线(Auto Place and Route,APR)工具执行。这里,APR工具只是给签核工具提供数据,以便签核工具判断Base Layer存在DRC问题。
也就是说,对于图2的流程来讲,其示出了数百万标准单元模块在布局结束后的数据上利用签核工具快速进行设计规则检查的流程示例,一轮快速检查需耗时数小时,而每次进行布局后均需要重复上述步骤,十分繁琐且耗费时间。
对于第二种技术方案而言,若在布局布线结束,且优化过时序后才发现存在上述DRC问题,这时候重新进行布局布线,但是会将花费大量时间。另一种解决方式是在有设计规则违例的具体位置手工挪动物理单元及附近的标准单元,且加上布局阻塞,从而防止有标准单元在后续步骤中摆放进去产生违例。这种解决方式会浪费两个阻塞大小的面积,且使得时序发生变化,需要新一轮时序优化进行修复,而且如果附近没有空间用以挪动标准单元,该解决方式还将无法实施,此时只能重新布局布线,存在一定的局限性。
基于此,本申请实施例提供了一种芯片电路的布局方法,该方法的基本思想是:获取待设计电路的初始布局结果,待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;确定至少两个宏模块对应的布局晕环图形坐标信息;对至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将至少两个宏模块组合为一个或多个多边形,得到一个或多个多边形的坐标信息;计算一个或多个多边形中的每相邻两个点的坐标差值;以及基于一个或多个多边形中的每相邻两个点的坐标差值,确定至少两个宏模块是否存在布局违例。这样,利用一个或多个多边形中的每相邻两个点的坐标差值来确定至少两个宏模块是否存在布局违例,如此可以减少因宏模块摆放引起DRC而导致的布局迭代次数,节省芯片设计中宏模块摆放的工作量,从而能够节约整个芯片设计的时间;另外,在确定存在布局违例的情况下,本申请的布局违例修复还可以避免宏模块两侧同时增加布局阻塞而造成的面积浪费。
下面将结合附图对本申请各实施例进行详细说明。
本申请的一实施例中,参见图3,其示出了本申请实施例提供的一种芯片电路的布局方法的流程示意图。如图3所示,该方法可以包括:
S301:获取待设计电路的初始布局结果,其中,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环。
需要说明的是,该芯片电路的布局方法应用于芯片电路的布局装置,或者集成有该装置的芯片电路的布局设备或者电子设计自动化(Electronics Design Automation,EDA)设备。
还需要说明的是,针对芯片的待设计电路,按照功能块细分,可以包括有多个宏模块。这里,宏模块可以是存储器、阵列、功能模块等,本申请实施例不作任何限定。
另外,本申请实施例的方法是针对已经初步完成宏模块摆放的初始布局设计后进行的。在初始布局结果中,为了防止绕线DRC,如避免宏模块的连接线接口与周围标准单元的连接线接口对接上,这时候每一个宏模块的四周均会设置有布局晕环(即Halo)。
S302:确定所述至少两个宏模块对应的布局晕环图形坐标信息。
需要说明的是,针对待设计电路的初始布局结果,可以抓取每一个宏模块四周halo的图形坐标,即确定出这至少两个宏模块中每一宏模块对应的布局晕环图形坐标信息。
这里,对于宏模块而言,布局晕环图形可以有两个点来确定,那么布局晕环图形坐标信息也可以是由这两个点的坐标信息组成的。通常情况下,这两个点可以包括左下角点(坐标为(xlli,ylli))和右上角点(坐标为(xuri,yuri))。也就是说,第i个宏模块对应的布局晕环图形坐标信息可以是(xlli,ylli,xuri,yuri),i为大于零的整数。
还需要说明的是,该方法还可以包括:设置第一列表。其中,所述第一列表用于存储至少两个宏模块对应的布局晕环图形坐标信息。换句话说,在得到这至少两个宏模块宏模块对应的布局晕环图形坐标信息后,可以将其放置于第一列表。
S303:对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息。
需要说明的是,在得到这至少两个宏模块对应的布局晕环图形坐标信息后,可以对至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,能够将至少两个宏模块组合为一个或多个多边形,可以得到一个或多个多边形的坐标信息。具体地,在一些实施例中,对于S303来说,所述对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息,可以包括:
对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标扩展,得到多个新的图形坐标信息;以及
对所述至少两个宏模块对应的布局晕环图形坐标信息和所述多个新的图形坐标信息进行相与操作,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息。
这里,坐标扩展可以包括坐标向上扩展,和/或,坐标向下扩展。而扩展的距离值为预设值,即设计人员自行设定的任意值,或者该预设值也可以是最小宏模块高度的一半,本申请实施例对此不作任何限定。
还需要说明的是,该方法还可以包括:设置第二列表。其中,所述第二列表用于存储所得到的多个新的图形坐标信息。换句话说,在对这至少两个宏模块对应的布局晕环图形坐标信息进行坐标扩展后,可以将所得到的多个新的图形坐标信息放置于第二列表。
这样,在一些实施例中,所述对所述至少两个宏模块对应的布局晕环图形坐标信息和所述多个新的图形坐标信息进行相与操作,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息,可以包括:对所述第一列表中放置的布局晕环图形坐标信息和所述第二列表中放置的新的图形坐标信息进行相与操作,将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息。
具体来讲,一方面,将所得到的至少两个宏模块对应的布局晕环图形坐标信息放置于第一列表;另一方面,还可以对这些布局晕环图形坐标信息进行向下和向上各扩展预设值(例如,最小宏模块高度h的一半,即h/2),这时候可以得到多个新的图形坐标信息(xlli,ylli-h/2,xuri,yuri+h/2),并且将这些新的图形坐标信息放置于第二列表。然后将这两个列表中图形坐标分别进行相与操作,可以得到一个或多个多边形的坐标信息,这里的一个或多个多边形可以为能够覆盖宏模块和halo的区域。该具体过程的方程如下式(1)所示。
(xll1,yll1,xur1,yur1)&&(xll2,yll2,xur2,yur2)&&......&&(xlln,ylln,xurn,yurn)→(x11,y11.....x1i,y1i),......,(xj1,yj1......xji,yji) (1)
其中,“&&”表示与操作符,“→”表示蕴涵操作符。
根据式(1)可以看出,在这两个列表中的图形坐标进行相与操作后,可以得到一个或多个多边形的坐标信息。例如,(x11,y11......x1i,y1i)表示第一多边形的坐标信息,(xj1,yj1......xji,yji)表示第j多边形的坐标信息,j为大于零的整数。另外,针对每一个多边形,以第j多边形为例,该多边形的坐标信息可以包括有多个点的坐标信息,比如(xj1,yj1)、...、(xji,yji)等i个点的坐标信息,i为大于零的整数。
S304:计算所述一个或多个多边形中的每相邻两个点的坐标差值。
需要说明的是,在得到一个或多个多边形的坐标信息后,这时候所得到的图像为一个或多个多边形。通过遍历每一个多边形中的每一点的坐标信息,可以计算得到一个或多个多边形中的每相邻两个点的坐标差值。
还需要说明的是,坐标信息(x,y)可以包括水平坐标信息(用x表示)和垂直坐标信息(用y表示)。在一些实施例中,对于S304来说,所述计算所述一个或多个多边形中的每相邻两个点的坐标差值,可以包括:
遍历所述一个或多个多边形中的每一个点的水平坐标信息,对每相邻两个点的水平坐标信息进行差值计算,得到所述一个或多个多边形中的每相邻两个点的水平坐标差值;
遍历所述一个或多个多边形中的每一个点的垂直坐标信息,对每相邻两个点的垂直坐标信息进行差值计算,得到所述一个或多个多边形中的每相邻两个点的垂直坐标差值;以及
根据所述一个或多个多边形中的每相邻两个点的所述水平坐标差值和所述垂直坐标差值,得到所述一个或多个多边形中的每相邻两个点的坐标差值。
需要说明的是,遍历一个或多个多边形中的每一点的坐标信息,针对水平坐标差值的计算,可以通过遍历一个或多个多边形中的每一个点的水平坐标信息,并对每相邻两个点的水平坐标信息求差值,能够得到一个或多个多边形中的每相邻两个点的水平坐标差值;针对垂直坐标差值的计算,可以通过遍历一个或多个多边形中的每一个点的垂直坐标信息,并对每相邻两个点的垂直坐标信息求差值,能够得到一个或多个多边形中的每相邻两个点的垂直坐标差值。
这样,在得到一个或多个多边形中的每相邻两个点的水平坐标差值和垂直坐标差值后,可以确定出一个或多个多边形中的每相邻两个点的坐标差值,以便后续判断这至少两个宏模块是否存在布局违例。
S305:基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。
需要说明的是,对于S305来说,所述基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例,可以包括:
将所述每相邻两个点的坐标差值与第一预设特征值进行比较,其中,所述坐标差值包括水平坐标差值和垂直坐标差值;
若相邻两个点的水平坐标差值大于0且小于所述第一预设特征值、或者所述相邻两个点的垂直坐标差值大于0且小于所述第一预设特征值,则确定所述至少两个宏模块存在布局违例;以及
若相邻两个点的水平坐标差值大于或等于所述第一预设特征值且所述相邻两个点的垂直坐标差值大于或等于所述第一预设特征值,则确定所述至少两个宏模块均不存在布局违例。
这里,第一预设特征值是预先设定的特征值,可以用w1表示。其中,w1的取值可以为满足设计规则要求的DRC检查的最小距离。如果每相邻两个点的水平坐标差值或者垂直坐标差值(即边沿间距,可用Δd表示)小于w1,这时候就会存在布局违例。反之,如果每相邻两个点的水平坐标差值和垂直坐标差值均大于或等于w1,那么说明了这至少两个宏模块均不存在布局违例。该具体过程的方程如下式(2)所示。
0<xn-xn-1<w1||0<yn-yn-1<w1 (2)
也就是说,如果满足上述式(2),说明了这至少两个宏模块中存在布局违例。进一步地,在一些实施例中,该方法还可以包括:设置第三列表。这里,所述第三列表用于存储满足上述式(2)的相邻两个点的坐标信息以及对应的水平坐标差值或者垂直坐标差值。
换句话说,对于S305来说,在得到一个或多个多边形中的每相邻两个点的坐标差值之后,该方法还可以包括:
设置预设列表,其中,若相邻两个点的水平坐标差值大于0且小于第一预设特征值、或者相邻两个点的垂直坐标差值大于0且小于第一预设特征值,则将所述相邻两个点的坐标信息以及对应的水平坐标差值或者垂直坐标差值放置于所述预设列表。
需要说明的是,这里的预设列表即是本申请实施例所说的第三列表。在设置预设列表(或称为第三列表)后,如果相邻两个点的水平坐标差值大于0且小于第一预设特征值,那么可以将相邻两个点的坐标信息以及对应的水平坐标差值放置于预设列表;或者,如果相邻两个点的垂直坐标差值大于0且小于第一预设特征值,那么可以将相邻两个点的坐标信息以及对应的垂直坐标差值放置于预设列表。
还需要说明的是,在设置预设列表之后,该方法还可以包括:清空预设列表。这样,在一些实施例中,在将所述相邻两个点的坐标信息以及对应的水平坐标差值或者垂直坐标差值放置于所述预设列表之后,该方法还可以包括:
判断预设列表是否为空;
若所述预设列表为非空,则确定所述至少两个宏模块存在布局违例;
若所述预设列表为空,则确定所述至少两个宏模块均不存在布局违例。
需要说明的是,如果预设列表为空,表明不存在水平坐标差值或者垂直坐标差值小于第一预设特征值(w1)的情况,那么该初始布局结果中不存在布局违例情况;如果预设列表为非空,表明存在水平坐标差值或者垂直坐标差值小于第一预设特征值(w1)的情况,那么该初始布局结果中存在布局违例情况。
在一些实施例中,对于S305来说,在确定所述至少两个宏模块是否存在布局违例之后,该方法还可以包括:
在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复。
需要说明的是,在一些实施例中,该方法还可以包括:在所述至少两个宏模块均不存在布局违例时,确定所述待设计电路的目标布局结果。
也就是说,在得到一个或多个多边形中的每相邻两个点的坐标差值后,具体可以是在得到一个或多个多边形中的每相邻两个点的水平坐标差值和垂直坐标差值后,将其与第一预设特征值(w1)进行比较,根据比较的结果,确定至少两个宏模块是否存在布局违例。具体地,如果确定至少两个宏模块存在布局违例,那么可以根据预设修复策略对所述布局违例进行修复;如果确定至少两个宏模块均存在布局违例时,那么可以确定出待设计电路的目标布局结果。
在本申请实施例中,当确定至少两个宏模块存在布局违例时,在根据预设修复策略对所述布局违例进行修复之后,这时候还需要返回步骤S302,直至所述至少两个宏模块均不存在布局违例。在一些实施例中,该方法还可以包括:
获取所述待设计电路的布局修复结果;
基于所述布局修复结果更新所述初始布局结果,返回执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例。
也就是说,根据预设修复策略对所述布局违例进行修复后,可以获取到待设计电路的布局修复结果;然后基于该布局修复结果更新初始布局结果,返回执行确定至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例。
还需要说明的是,在确定出这至少两个宏模块存在布局违例时,这时候可以根据预设修复策略对布局违例进行修复。这里,预设修复策略是根据不同的违例情况设置对应的修复策略,比如通过调整两个宏模块进行位置对齐,或者在布局违例对应的区域添加布局阻塞等。下面将结合三种布局违例情况进行详细描述。
在一种可能的实施方式中,所述在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,可以包括:
若所述预设列表中存在两个相同大小的坐标差值且所述坐标差值小于第二预设特征值,则从所述预设列表中获取所述两个相同大小的坐标差值对应的四个点的坐标信息;
根据所获取的四个点的坐标信息,确定所述四个点包含的两个宏模块,并调整所述两个宏模块进行位置对齐,以实现对所述布局违例的修复。
需要说明的是,第二预设特征值可以用w2表示。这里,w2的取值可以为满足设计规则要求的十倍最小标准单元宽度。
具体来讲,如果预设列表中存在两个相同大小的水平坐标差值且小于w2,那么从所述预设列表中获取所述两个相同大小的水平坐标差值对应的四个点的坐标信息;然后根据所获取的四个点的坐标信息,确定所述四个点包含的两个宏模块,并沿着水平方向调整这两个宏模块进行位置对齐,以实现对所述布局违例的修复。或者,如果预设列表中存在两个相同大小的垂直坐标差值且小于w2,那么从所述预设列表中获取所述两个相同大小的垂直坐标差值对应的四个点的坐标信息;然后根据所获取的四个点的坐标信息,确定所述四个点包含的两个宏模块,并沿着垂直方向调整这两个宏模块进行位置对齐,以实现对所述布局违例的修复。
示例性地,如图4所示,针对(a)中所示的两个宏模块,在圆圈标识的位置可以看出,这两个宏模块可能存在布局违例。这时候对这两个宏模块对应的布局晕环图形坐标信息进行坐标扩展,得到四个新的图形坐标信息;在将这两个宏模块对应的布局晕环图形坐标信息和这四个新的图形坐标信息进行相与操作,能够得到一个如(b)所示的多边形。通过遍历该多边形中的每一个点,计算每相邻两个点的坐标差值,如果存在相邻两个点的水平坐标差值或者垂直坐标差值大于0且小于w1,即符合上述式(2),那么将这相邻两个点的坐标信息以及对应的水平坐标差值或者垂直坐标差值放置于预设列表中,而且表明这两个宏模块存在布局违例。这时候可以通过进一步判断预设列表中是否存在两个相同大小的坐标差值且该坐标差值小于第二预设特征值(w2),如果预设列表中存在两个相同大小的水平坐标差值且该坐标差值小于w2,具体如图4中(b)所示的两个圆圈标识处,这两个标识处的水平坐标差值(用Δd表示)大小相同且Δd<w2;那么可以获取这四个点的坐标信息,然后根据这四个点的坐标信息确定出其所覆盖的两个宏模块,再将这两个宏模块进行位置对齐,具体如图4中(c)所示,这时候两个宏模块已经处于对齐状态,即实现了对该布局违例的修复。
在另一种可能的实施方式中,所述在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,可以包括:
若所述预设列表中存在四个点的水平坐标信息相同或者垂直坐标信息相同,则确定所述四个点包含的两个宏模块,并调整所述两个宏模块进行位置对齐,以实现对所述布局违例的修复。
在又一种可能的实施方式中,所述在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,可以包括:
若所述预设列表中不存在四个点的水平坐标信息相同或者垂直坐标信息相同,则确定所述四个点包含的两个宏模块,并在所述布局违例对应的区域添加布局阻塞,以实现对所述布局违例的修复。
需要说明的是,在得到预设列表之后,如果预设列表中存在四个水平坐标信息相同或垂直坐标信息相同的点,这时候可以先将对应的两个宏模块进行位置对齐,以实现对该布局违例的修复,得到待设计电路的布局修复结果。如果预设列表中不存在四个水平坐标信息相同或垂直坐标信息相同的点,那么可以将坐标差值小于w1的宏模块处于布局违例一侧加上坐标差值大小的布局阻塞(如halo),这样不仅实现了对该布局违例的修复,得到待设计电路的布局修复结果,而且还可避免在宏模块左右两侧同时增加布局阻塞而导致的面积浪费。
还需要说明的是,针对待设计电路的布局修复结果,还可以利用布局修复结果更新初始布局结果,然后返回重复执行S302~S305,直至一个或多个多边形中每相邻两个点的坐标差值均不会出现小于第一预设值(w1)的情况,以使得待设计电路中不存在宏模块摆放引起的布局违例。
示例性地,如图5所示,经过相与操作之后,针对(a)中所示的两个宏模块,在圆圈标识的位置可以看出,由于水平坐标差值Δd<w1,表明这两个宏模块存在布局违例。这时候需要移动这两个宏模块进行位置对齐,具体如图5中(b)所示,两个宏模块的左侧已经处于对齐状态,得到待设计电路的布局修复结果。这时候,将此时得到的布局修复结果作为初始布局结果,返回重新执行S302~S304,可以得到新的坐标差值,如图5中(b)所示圆圈标识的位置。然后根据新的坐标差值继续执行S305,这时候可以得到两种情况:如果新的坐标差值Δd>w1,表明这时候的两个宏模块不存在布局违例,可以不作任何处理,即图5中(c)所示;如果新的坐标差值Δd<w1,表明这时候的两个宏模块存在布局违例,这时候可以在该布局违例对应的区域添加布局阻塞,以实现对所述布局违例的修复,即图5中(d)所示。
本实施例提供了一种芯片电路的布局方法,通过获取待设计电路的初始布局结果,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;确定所述至少两个宏模块对应的布局晕环图形坐标信息;对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;计算所述一个或多个多边形中的每相邻两个点的坐标差值;以及基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。这样,利用每相邻两个点的坐标差值来确定至少两个宏模块是否存在布局违例,并且根据预设修复策略对布局违例进行修复,如此可以减少因宏模块摆放引起DRC而导致的布局迭代次数,节省芯片设计中宏模块摆放的工作量,从而能够节约整个芯片设计的时间;另外,在修复布局违例时,还可以避免宏模块两侧同时增加布局阻塞而造成的面积浪费。
本申请的另一实施例中,参见图6,其示出了本申请实施例提供的另一种芯片电路的布局方法的流程示意图。如图6所示,该方法可以包括:
S601:获取待设计电路的初始布局结果;其中,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;
S602:确定至少两个宏模块对应的布局晕环图形坐标信息;
S603:对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;
S604:计算所述一个或多个多边形中的每相邻两个点的坐标差值;
需要说明的是,针对芯片的待设计电路,按照功能块细分,可以包括有多个宏模块。另外,本申请实施例的方法是针对已经初步完成宏模块摆放的初始布局设计后进行的。在初始布局结果中,为了防止绕线DRC,这时候每一宏模块的四周均会设置有Halo。
还需要说明的是,S601~S604的执行步骤与前述实施例中S301~S304的执行步骤相同,具体执行操作可以详见前述内容。这样,在计算得到一个或多个多边形中每相邻两个点的坐标差值后,可以根据这些坐标差值来确定出待设计电路中的至少两个宏模块是否存在布局违例。
S605:基于所述一个或多个多边形中的每相邻两个点的坐标差值,判断所述至少两个宏模块是否存在布局违例;
S606:若判断结果为是,则根据预设修复策略对所述布局违例进行修复,并返回执行S602;
S607:若判断结果为否,则将当前的布局结果确定为所述待设计电路的目标布局结果。
需要说明的是,对于S605来说,针对判断至少两个宏模块是否存在布局违例,如果判断结果为是,即确定至少两个宏模块存在布局违例,那么可以执行S606,即根据预设修复策略对所述布局违例进行修复,得到待设计电路的布局修复结果,然后可以将该布局修复结果作为初始布局结果,继续执行确定至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至确定出这至少两个宏模块均不存在布局违例。也就是说,如果判断结果为否,即确定至少两个宏模块不存在布局违例,那么可以执行S607,这时候当前得到的布局结果即为待设计电路的目标布局结果,可以继续执行后续的其他操作,比如布线操作、时序分析操作等。
换句话说,获取待设计电路的初始布局结果后,可以获得这至少两个宏模块对应的布局晕环图形坐标信息;然后对这些宏模块的布局晕环图形坐标信息进行向下、向上坐标扩展,以得到新的图形坐标信息;再利用这些图形坐标信息的与或非运算,自动化的实现检查并修正宏模块摆放时易出现而后端工具无法解决的DRC问题,从而减少了该DRC问题导致的反复布局迭代。
本实施例提供了一种芯片电路的布局方法,通过上述实施例对前述实施例的具体实现进行了详细阐述,从中可以看出,通过前述实施例的技术方案,可以减少因宏模块摆放引起DRC而导致的布局迭代次数,节省芯片设计中宏模块摆放的工作量,从而能够节约整个芯片设计的时间;另外,在修复布局违例时,还可以避免宏模块两侧同时增加布局阻塞而造成的面积浪费。
本申请的又一实施例中,参见图7,其示出了本申请实施例提供的一种芯片电路的布局方法的详细流程示意图。如图7所示,该方法可以包括:
S701:初始化数据库系统;
S702:获取至少两个宏模块对应的布局晕环图形坐标信息;
需要说明的是,初始化DBS后,可以根据已经初步完成宏模块摆放的初始布局结果,来获取这至少两个宏模块中每一宏模块对应的halo图形坐标信息。这里,每一宏模块的四周均设置有halo。
S703:对所述布局晕环图形坐标信息进行向下和向上扩展,得到多个新的图形坐标信息;
S704:对所述布局晕环图形坐标信息和多个新的图形坐标信息进行坐标相与操作,得到一个或多个多边形的坐标信息;
S705:计算一个或多个多边形中每相邻两个点的坐标差值Δd;
S706:判断Δd是否小于w1;
S707:若判断结果为否,则结束流程;
S708:若判断结果为是,则判断是否存在两个相同大小的Δd且小于w2;
S709:若判断结果为是,则对齐这两个宏模块,并返回执行S702;
S710:若判断结果为否,则判断是否存在Δd是否小于w1且四个点的水平坐标信息相同或垂直坐标信息相同;
S711:若判断结果为是,则移动对齐对应的宏模块,并返回执行S702;
S712:若判断结果为否,则在布局违例的区域增加布局阻塞,并返回执行S702。
也就是说,本申请实施例是针对已初步完成宏模块摆放的设计,这时候都会在宏模块的四周加上halo,以防止绕线DRC,本申请实施例的技术方案是通过抓取每个宏模块四周halo图形坐标(xlli,ylli,xuri,yuri)以放置于第一列表,且将halo图形坐标向上、向下各扩展最小宏模块高度的一半,得到多个新的图形坐标(xlli,ylli-h/2,xuri,yuri+h/2)以放置于第二列表,将这两个列表中图形坐标分别进行与操作,得到被宏模块和halo覆盖的至少一个多边形的图形坐标信息,即如上述式(1)所示。
进一步地,由于所得到的图形为一个或多个多边形,遍历这些多边形中的每一个点,将相邻两个点的水平坐标(x)和垂直坐标(y)各自求差值,如上述式(2),如果存在相邻两个点的x或y的坐标差值大于0且小于w1,那么将这两个相邻点的坐标信息和对应的坐标差值分别放置于第三列表;如果不存在相邻两个点的x/y坐标差值大于0且小于w1的情况,那么表明该初始布局没有上述的违例情况发生。
进一步地,对于第三列表,如果第三列表中存在两个相同大小的坐标差值且小于w2,那么这时候抓取出这四个点包含的两个宏模块,将其对齐,具体如图4所示。如果第三列表中存在四个点的x或y的坐标信息相同,那么需要先将对应的宏模块进行一侧对齐,再重复上述步骤;如果不存在四个点的x或y的坐标信息相同,那么需要将坐标差值小于w1的宏模块在违例一侧增加该坐标差值大小的halo,然后再重复上述步骤,直至这一个或多个多边形无相邻两个点的坐标差值小于w1的情况出现,具体如图5所示。需要注意的是,在本申请实施例中,针对布局违例的检查及修复,只需要数分钟即可完成,从而能够节约整个芯片设计的时间。
除此之外,本申请实施例的技术方案是基于7nm的先进工艺,其他工艺(如12nm、5nm等)节点具有相同的DRC规则要求也可应用,用以减少布局的迭代次数。
本实施例提供了一种芯片电路的布局方法,通过上述实施例对前述实施例的具体实现进行详细阐述,从中可以看出,通过前述实施例的技术方案,利用宏模块的图形坐标进行与或非运算,自动化的实现检查并修正宏模块摆放时易出现而后端工具无法解决的DRC问题,可减少因宏模块摆放引起DRC而导致的多次布局迭代,节省后端设计中宏模块摆放的工作量,避免项目后期手动解决该问题导致的时序变差,且可以避免宏模块左右同时加阻塞导致的面积浪费。
本申请的再一实施例中,参见图8,其示出了本申请实施例提供的一种基于EDA工具的电路设计方法的流程示意图。如图8所示,该方法可以包括:
S801:接收待设计电路的至少两个宏模块,且宏模块的四周设置有布局晕环;
S802:生成所述待设计电路的初始布局结果;
S803:确定所述至少两个宏模块对应的布局晕环图形坐标信息;
S804:根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,并基于所获取的布局修复结果更新所述初始布局结果,返回执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例,以确定所述待设计电路的目标布局结果;
S805:根据所述目标布局结果对所述待设计电路进行布线操作,得到所述待设计电路的布线结果。
需要说明的是,该电路设计方法应用于电路设计装置,或者集成有该电路设计装置的EDA设备。这里,电路设计装置中不仅可以实现布局功能,而且还可以实现布局违例修复功能,并且针对布局违例修复后的目标布局结果进行布线操作。
在一些实施例中,所述根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,可以包括:
对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;
遍历所述一个或多个多边形中的每一个点的坐标信息,确定所述一个或多个多边形中的每相邻两个点的坐标差值;以及
基于所述一个或多个多边形中的每相邻两个点的坐标差值,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复。
进一步地,在一些实施例中,在得到所述待设计电路的布线结果之后,该方法还可以包括:
对所述布线结果进行时序分析,输出所述待设计电路的时序分析报告。
也就是说,电路设计装置还可以具有时序分析功能。这样,在布线结果之后,还可以对布线结果进行时序分析,用以得到待设计电路的时序分析报告。
还需要说明的是,本申请实施例的电路设计方法是基于EDA工具实现的,其执行主体可以是电路设计装置,或者集成有该电路设计装置的EDA设备。具体来讲,EDA可以是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术而研制成的计算机辅助设计(Computer Aided Design,CAD)通用软件包。随着集成电路(Integration Circuit,IC)规模的扩大、半导体技术的发展,EDA的重要性急剧增加。具体表现为利用EDA工具,电子工程师可以将电子产品由电路设计、性能分析到IC设计图或印制电路板(Printed CircuitBoard,PCB)设计图整个过程在计算机上自动处理完成,从而能够完成超大规模集成电路(Very Large Scale Integration Circuit,VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等设计,即通过EDA设备用以实现对芯片中待设计电路的布局、布局违例修复、布线和时序分析等电路设计。
本实施例提供了一种基于EDA工具的电路设计方法,通过接收待设计电路的至少两个宏模块,且宏模块的四周设置有布局晕环;生成所述待设计电路的初始布局结果;确定所述至少两个宏模块对应的布局晕环图形坐标信息;根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,并基于所获取的布局修复结果更新所述初始布局结果,返回执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例,以确定所述待设计电路的目标布局结果;基于所述目标布局结果对所述待设计电路进行布线操作,得到所述待设计电路的布线结果。这样,不仅可以实现电路设计,而且还具有布局违例修复功能,可减少因宏模块摆放引起DRC而导致的多次布局迭代,节省后端设计中宏模块摆放的工作量,避免项目后期手动解决该问题导致的时序变差,且可以避免宏模块左右同时加阻塞导致的面积浪费。
本申请的再一实施例中,基于前述实施例相同的发明构思,参见图9,其示出了本申请实施例提供的一种芯片电路的布局装置90的组成结构示意图。如图9所示,芯片电路的布局装置90可以包括:获取单元901、确定单元902和运算单元903;其中,
获取单元901,配置为获取待设计电路的初始布局结果,其中,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;
确定单元902,配置为确定至少两个宏模块对应的布局晕环图形坐标信息;
运算单元903,配置为对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;以及计算所述一个或多个多边形中的每相邻两个点的坐标差值;
确定单元902,还配置为基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。
在一些实施例中,参见图9,芯片电路的布局装置90还可以包括修复单元904,配置为在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复。
在一些实施例中,获取单元901,还配置为获取所述待设计电路的布局修复结果;
确定单元902,还配置为基于所述布局修复结果更新所述初始布局结果,返回执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例。
在一些实施例中,确定单元902,还配置为在所述至少两个宏模块均不存在布局违例时,确定所述待设计电路的目标布局结果。
在一些实施例中,确定单元902,还配置为将所述每相邻两个点的坐标差值与第一预设特征值进行比较,其中,所述坐标差值包括水平坐标差值和垂直坐标差值;若相邻两个点的水平坐标差值大于0且小于所述第一预设特征值、或者所述相邻两个点的垂直坐标差值大于0且小于所述第一预设特征值,则确定所述至少两个宏模块存在布局违例;以及若相邻两个点的水平坐标差值大于或等于所述第一预设特征值且所述相邻两个点的垂直坐标差值大于或等于所述第一预设特征值,则确定所述至少两个宏模块均不存在布局违例。
在一些实施例中,确定单元902,还配置为对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标扩展,得到多个新的图形坐标信息;以及对所述至少两个宏模块对应的布局晕环图形坐标信息和所述多个新的图形坐标信息进行相与操作,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息。
在一些实施例中,所述坐标信息包括水平坐标信息和垂直坐标信息;
运算单元903,具体配置为遍历所述一个或多个多边形中的每一个点的水平坐标信息,对每相邻两个点的水平坐标信息进行差值计算,得到所述一个或多个多边形中的每相邻两个点的水平坐标差值;遍历所述一个或多个多边形中的每一个点的垂直坐标信息,对每相邻两个点的垂直坐标信息进行差值计算,得到所述一个或多个多边形中的每相邻两个点的垂直坐标差值;以及根据所述一个或多个多边形中的每相邻两个点的所述水平坐标差值和所述垂直坐标差值,得到所述一个或多个多边形中的每相邻两个点的坐标差值。
在一些实施例中,参见图9,芯片电路的布局装置90还可以包括设置单元905,配置为设置预设列表,其中,若相邻两个点的水平坐标差值大于0且小于第一预设特征值、或者相邻两个点的垂直坐标差值大于0且小于第一预设特征值,则将所述相邻两个点的坐标信息以及对应的水平坐标差值或者垂直坐标差值放置于所述预设列表。
在一些实施例中,确定单元902,还配置为判断所述预设列表是否为空;若所述预设列表为非空,则确定所述至少两个宏模块存在布局违例;以及若所述预设列表为空,则确定所述至少两个宏模块均不存在布局违例。
在一些实施例中,修复单元904,具体配置为若所述预设列表中存在两个相同大小的坐标差值且所述坐标差值小于第二预设特征值,则从所述预设列表中获取所述两个相同大小的坐标差值对应的四个点的坐标信息;以及根据所获取的四个点的坐标信息,确定所述四个点包含的两个宏模块,并调整所述两个宏模块进行位置对齐,以实现对所述布局违例的修复。
在一些实施例中,修复单元904,具体配置为若所述预设列表中存在四个点的水平坐标信息相同或者垂直坐标信息相同,则确定所述四个点包含的两个宏模块,并调整所述两个宏模块进行位置对齐,以实现对所述布局违例的修复。
在一些实施例中,修复单元904,具体配置为若所述预设列表中不存在四个点的水平坐标信息相同或者垂直坐标信息相同,则确定所述四个点包含的两个宏模块,并在所述布局违例对应的区域添加布局阻塞,以实现对所述布局违例的修复。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现前述实施例中任一项所述的方法的步骤。
基于上述芯片电路的布局装置90的组成以及计算机存储介质,参见图10,其示出了本申请实施例提供的芯片电路的布局设备100的硬件结构示意图。如图10所示,可以包括:第一通信接口1001、第一存储器1002和第一处理器1003;各个组件通过第一总线系统1004耦合在一起。可理解,第一总线系统1004用于实现这些组件之间的连接通信。第一总线系统1004除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为第一总线系统1004。其中,
第一通信接口1001,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器1002,用于存储能够在第一处理器1003上运行的计算机程序;
第一处理器1003,用于在运行所述计算机程序时,执行:
获取待设计电路的初始布局结果,其中,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;
确定所述至少两个宏模块对应的布局晕环图形坐标信息;
对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;
计算所述一个或多个多边形中的每相邻两个点的坐标差值;以及
基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。
可以理解,本申请实施例中的第一存储器1002可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器1002旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器1003可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器1003中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器1003可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器1002,第一处理器1003读取第一存储器1002中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital SignalProcessing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(ProgrammableLogic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器1003还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
本实施例提供了一种芯片电路的布局装置,该装置可以应用于芯片电路的布局设备。该装置可以包括获取单元、确定单元和运算单元。这样,利用每相邻两个点的坐标差值来确定至少两个宏模块是否存在布局违例,并且根据预设修复策略对布局违例进行修复,如此可以减少因宏模块摆放引起DRC而导致的布局迭代次数,节省芯片设计中宏模块摆放的工作量,从而能够节约整个芯片设计的时间;另外,在修复布局违例时,还可以避免宏模块两侧同时增加布局阻塞而造成的面积浪费。
本申请的再一实施例中,基于前述实施例相同的发明构思,参见图11,其示出了本申请实施例提供的一种电路设计装置110的组成结构示意图。如图11所示,该电路设计装置110可以包括:接收单元1101、布局单元1102和布线单元1103;其中,
接收单元1101,配置为接收待设计电路的至少两个宏模块,且宏模块的四周设置有布局晕环;
布局单元1102,配置为生成待设计电路的初始布局结果;以及确定至少两个宏模块对应的布局晕环图形坐标信息;根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,并基于所获取的布局修复结果更新所述初始布局结果,返回执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例,以确定所述待设计电路的目标布局结果;
布线单元1103,配置为根据所述目标布局结果对所述待设计电路进行布线操作,得到所述待设计电路的布线结果。
在一些实施例中,布局单元1102,具体配置为对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;遍历所述一个或多个多边形中的每一个点的坐标信息,确定所述一个或多个多边形中的每相邻两个点的坐标差值;以及基于所述一个或多个多边形中的每相邻两个点的坐标差值,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复。
在一些实施例中,参见图11,电路设计装置110还可以包括时序分析单元1104,配置为对所述布线结果进行时序分析,输出所述待设计电路的时序分析报告。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被第二处理器执行时实现前述实施例中任一项所述的方法。
基于上述电路设计装置110的组成以及计算机存储介质,参见图12,其示出了本申请实施例提供的EDA设备120的硬件结构示意图。如图12所示,可以包括:第二通信接口1201、第二存储器1202和第二处理器1203;各个组件通过第二总线系统1204耦合在一起。可理解,第二总线系统1204用于实现这些组件之间的连接通信。第二总线系统1204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为第二总线系统1204。其中,
第二通信接口1201,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器1202,用于存储能够在第二处理器1203上运行的计算机程序;
第二处理器1203,用于在运行所述计算机程序时,执行:
接收待设计电路的至少两个宏模块,且宏模块的四周设置有布局晕环;
生成所述待设计电路的初始布局结果;
确定所述至少两个宏模块对应的布局晕环图形坐标信息;
根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,并基于所获取的布局修复结果更新所述初始布局结果,返回执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例,以确定所述待设计电路的目标布局结果;
基于所述目标布局结果对所述待设计电路进行布线操作,得到所述待设计电路的布线结果。
可选地,作为另一个实施例,第二处理器1203还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
可以理解,第二存储器1202与第一存储器1002的硬件功能类似,第二处理器1203与第一处理器1003的硬件功能类似;这里不再详述。
本实施例提供了一种电路设计装置,该装置应用于EDA设备。该装置可以包括接收单元、布局单元和布线单元。这样,不仅可以实现电路设计,而且还具有布局违例修复功能,可减少因宏模块摆放引起DRC而导致的多次布局迭代,节省后端设计中宏模块摆放的工作量,避免项目后期手动解决该问题导致的时序变差,且可以避免宏模块左右同时加阻塞导致的面积浪费。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种芯片电路的布局方法,其特征在于,所述方法包括:
获取待设计电路的初始布局结果,其中,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;
确定所述至少两个宏模块对应的布局晕环图形坐标信息;
对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;
计算所述一个或多个多边形中的每相邻两个点的坐标差值;以及
基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复。
3.根据权利要求2所述的方法,其特征在于,在所述根据预设修复策略对所述布局违例进行修复之后,所述方法还包括:
获取所述待设计电路的布局修复结果;
基于所述布局修复结果更新所述初始布局结果,返回至执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述至少两个宏模块均不存在布局违例时,确定所述待设计电路的目标布局结果。
5.根据权利要求3所述的方法,其特征在于,所述基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例,包括:
将所述每相邻两个点的坐标差值与第一预设特征值进行比较,其中,所述坐标差值包括水平坐标差值和垂直坐标差值;
若相邻两个点的水平坐标差值大于0且小于所述第一预设特征值、或者所述相邻两个点的垂直坐标差值大于0且小于所述第一预设特征值,则确定所述至少两个宏模块存在布局违例;以及
若相邻两个点的水平坐标差值大于或等于所述第一预设特征值且所述相邻两个点的垂直坐标差值大于或等于所述第一预设特征值,则确定所述至少两个宏模块均不存在布局违例。
6.根据权利要求1所述的方法,其特征在于,所述对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息,包括:
对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标扩展,得到多个新的图形坐标信息;以及
对所述至少两个宏模块对应的布局晕环图形坐标信息和所述多个新的图形坐标信息进行相与操作,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息。
7.根据权利要求1所述的方法,其特征在于,所述坐标信息包括水平坐标信息和垂直坐标信息,所述计算所述一个或多个多边形中的每相邻两个点的坐标差值,包括:
遍历所述一个或多个多边形中的每一个点的水平坐标信息,对每相邻两个点的水平坐标信息进行差值计算,得到所述一个或多个多边形中的每相邻两个点的水平坐标差值;
遍历所述一个或多个多边形中的每一个点的垂直坐标信息,对每相邻两个点的垂直坐标信息进行差值计算,得到所述一个或多个多边形中的每相邻两个点的垂直坐标差值;以及
根据所述一个或多个多边形中的每相邻两个点的所述水平坐标差值和所述垂直坐标差值,得到所述一个或多个多边形中的每相邻两个点的坐标差值。
8.根据权利要求5所述的方法,其特征在于,在得到所述一个或多个多边形中的每相邻两个点的坐标差值之后,所述方法还包括:
设置预设列表,其中,若相邻两个点的水平坐标差值大于0且小于所述第一预设特征值、或者相邻两个点的垂直坐标差值大于0且小于所述第一预设特征值,则将所述相邻两个点的坐标信息以及对应的水平坐标差值或者垂直坐标差值放置于所述预设列表。
9.根据权利要求8所述的方法,其特征在于,还包括:
判断所述预设列表是否为空;
若所述预设列表为非空,则确定所述至少两个宏模块存在布局违例;以及
若所述预设列表为空,则确定所述至少两个宏模块均不存在布局违例。
10.根据权利要求8所述的方法,其特征在于,所述在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,包括:
若所述预设列表中存在两个相同大小的坐标差值且所述坐标差值小于第二预设特征值,则从所述预设列表中获取所述两个相同大小的坐标差值对应的四个点的坐标信息;
根据所获取的四个点的坐标信息,确定所述四个点包含的两个宏模块,并调整所述两个宏模块进行位置对齐,以实现对所述布局违例的修复。
11.根据权利要求8所述的方法,其特征在于,所述在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,包括:
若所述预设列表中存在四个点的水平坐标信息相同或者垂直坐标信息相同,则确定所述四个点包含的两个宏模块,并调整所述两个宏模块进行位置对齐,以实现对所述布局违例的修复。
12.根据权利要求8所述的方法,其特征在于,所述在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,包括:
若所述预设列表中不存在四个点的水平坐标信息相同或者垂直坐标信息相同,则确定所述四个点包含的两个宏模块,并在所述布局违例对应的区域添加布局阻塞,以实现对所述布局违例的修复。
13.一种基于电子设计自动化EDA工具的电路设计方法,其特征在于,所述方法包括:
接收待设计电路的至少两个宏模块,且宏模块的四周设置有布局晕环;
生成所述待设计电路的初始布局结果;
确定所述至少两个宏模块对应的布局晕环图形坐标信息;
根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,并基于所获取的布局修复结果更新所述初始布局结果,返回至执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例,以确定所述待设计电路的目标布局结果;
基于所述目标布局结果对所述待设计电路进行布线操作,得到所述待设计电路的布线结果。
14.根据权利要求13所述的方法,其特征在于,所述根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,包括:
对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;
遍历所述一个或多个多边形中的每一个点的坐标信息,确定所述一个或多个多边形中的每相邻两个点的坐标差值;以及
基于所述一个或多个多边形中的每相邻两个点的坐标差值,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复。
15.根据权利要求13所述的方法,其特征在于,在所述得到所述待设计电路的布线结果之后,所述方法还包括:
对所述布线结果所述布局布线结果进行时序分析,输出所述待设计电路的时序分析报告。
16.一种芯片电路的布局装置,其特征在于,所述芯片电路的布局装置包括获取单元、确定单元和运算单元;其中,
所述获取单元,配置为获取待设计电路的初始布局结果,其中,所述待设计电路包括至少两个宏模块,且宏模块的四周设置有布局晕环;
所述确定单元,配置为确定所述至少两个宏模块对应的布局晕环图形坐标信息;
所述运算单元,配置为对所述至少两个宏模块对应的布局晕环图形坐标信息进行坐标运算,并将所述至少两个宏模块组合为一个或多个多边形,得到所述一个或多个多边形的坐标信息;以及计算所述一个或多个多边形中的每相邻两个点的坐标差值;
所述确定单元,还配置为基于所述一个或多个多边形中的每相邻两个点的坐标差值,确定所述至少两个宏模块是否存在布局违例。
17.一种电路设计装置,其特征在于,所述电路设计装置包括接收单元、布局单元和布线单元;其中,
所述接收单元,配置为接收待设计电路的至少两个宏模块,且宏模块的四周设置有布局晕环;
所述布局单元,配置为生成待设计电路的初始布局结果;以及确定所述至少两个宏模块对应的布局晕环图形坐标信息;根据所确定的布局晕环图形坐标信息,在确定所述至少两个宏模块存在布局违例时,根据预设修复策略对所述布局违例进行修复,并基于所获取的布局修复结果更新所述初始布局结果,返回至执行确定所述至少两个宏模块对应的布局晕环图形坐标信息的步骤,直至所述至少两个宏模块均不存在布局违例,以确定所述待设计电路的目标布局结果;
所述布线单元,配置为根据所述目标布局结果对所述待设计电路进行布线操作,得到所述待设计电路的布线结果。
18.一种芯片电路的布局设备,其特征在于,所述芯片电路的布局设备包括存储器和处理器;其中,
所述存储器,用于存储能够在所述处理器上运行的可执行指令;
所述处理器,用于在运行所述可执行指令时,执行如权利要求1至12任一项所述的方法。
19.一种EDA设备,其特征在于,所述EDA设备包括存储器和处理器;其中,
所述存储器,用于存储能够在所述处理器上运行的可执行指令;
所述处理器,用于在运行所述可执行指令时,执行如权利要求13至15任一项所述的方法。
20.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被芯片电路的布局设备执行时实现如权利要求1至12任一项所述的方法、或者被EDA设备执行时实现如权利要求13至15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011176392.9A CN114417771A (zh) | 2020-10-28 | 2020-10-28 | 芯片电路的布局方法、电路设计方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011176392.9A CN114417771A (zh) | 2020-10-28 | 2020-10-28 | 芯片电路的布局方法、电路设计方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114417771A true CN114417771A (zh) | 2022-04-29 |
Family
ID=81260520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011176392.9A Pending CN114417771A (zh) | 2020-10-28 | 2020-10-28 | 芯片电路的布局方法、电路设计方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114417771A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114781318A (zh) * | 2022-06-16 | 2022-07-22 | 飞腾信息技术有限公司 | 芯片的模块引脚布线方法、装置、电子设备及存储介质 |
CN115879410A (zh) * | 2022-12-16 | 2023-03-31 | 华芯巨数(杭州)微电子有限公司 | 一种掩模版图违例自动修复方法、数据库训练方法、系统及计算机设备 |
CN118114621A (zh) * | 2024-04-30 | 2024-05-31 | 北京壁仞科技开发有限公司 | 用于芯片设计的规划导引方法和布局规划方法 |
-
2020
- 2020-10-28 CN CN202011176392.9A patent/CN114417771A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114781318A (zh) * | 2022-06-16 | 2022-07-22 | 飞腾信息技术有限公司 | 芯片的模块引脚布线方法、装置、电子设备及存储介质 |
CN115879410A (zh) * | 2022-12-16 | 2023-03-31 | 华芯巨数(杭州)微电子有限公司 | 一种掩模版图违例自动修复方法、数据库训练方法、系统及计算机设备 |
CN115879410B (zh) * | 2022-12-16 | 2024-05-17 | 华芯巨数(杭州)微电子有限公司 | 一种掩模版图违例自动修复方法、数据库训练方法、系统及计算机设备 |
CN118114621A (zh) * | 2024-04-30 | 2024-05-31 | 北京壁仞科技开发有限公司 | 用于芯片设计的规划导引方法和布局规划方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114417771A (zh) | 芯片电路的布局方法、电路设计方法、装置、设备及介质 | |
CN108490735B (zh) | 全芯片掩模图案生成的方法、装置及计算机可读介质 | |
He et al. | Ripple: An effective routability-driven placer by iterative cell movement | |
US6425112B1 (en) | Auto correction of error checked simulated printed images | |
US8103983B2 (en) | Electrically-driven optical proximity correction to compensate for non-optical effects | |
US8381160B2 (en) | Manufacturing method, manufacturing program and manufacturing system for semiconductor device | |
US20070101303A1 (en) | Method and apparatus for integrated circuit layout optimization | |
JPH07334565A (ja) | 物体の配置方法 | |
JP5619210B2 (ja) | レイアウト設計データの増分分析 | |
US10747938B2 (en) | Method for integrated circuit manufacturing | |
US20090291512A1 (en) | Semiconductor device pattern verification method, semiconductor device pattern verification program, and semiconductor device manufacturing method | |
US8893069B2 (en) | Method of schematic driven layout creation | |
US7380227B1 (en) | Automated correction of asymmetric enclosure rule violations in a design layout | |
CN105488244B (zh) | 用于设计半导体装置的方法和系统 | |
US20060225017A1 (en) | Integrated circuit layout design system, and method thereof, and program | |
EP3239865A1 (en) | Method for analyzing ir drop and electromigration of ic | |
TW202008438A (zh) | 產生積體電路元件之佈局圖之方法 | |
WO2014127123A1 (en) | Look-up based fast logic synthesis | |
TWI557584B (zh) | 設計半導體裝置的方法、準備積體電路裝置佈局的方法及電腦可讀取儲存媒體 | |
US9965579B2 (en) | Method for designing and manufacturing an integrated circuit, system for carrying out the method, and system for verifying an integrated circuit | |
CN115755522A (zh) | 一种掩模图形优化方法及掩模板 | |
US8683394B2 (en) | Pattern matching optical proximity correction | |
US9811615B2 (en) | Simultaneous retargeting of layout features based on process window simulation | |
JP2003344985A (ja) | レイアウトパターンデータ補正装置 | |
US20130132917A1 (en) | Pattern Matching Hints |
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 |