CN114925646A - 布线后壅塞优化方法与壅塞优化平台 - Google Patents
布线后壅塞优化方法与壅塞优化平台 Download PDFInfo
- Publication number
- CN114925646A CN114925646A CN202110813208.5A CN202110813208A CN114925646A CN 114925646 A CN114925646 A CN 114925646A CN 202110813208 A CN202110813208 A CN 202110813208A CN 114925646 A CN114925646 A CN 114925646A
- Authority
- CN
- China
- Prior art keywords
- congestion
- cluster
- box
- target unit
- routing
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000013461 design Methods 0.000 claims abstract description 124
- 239000000872 buffer Substances 0.000 claims description 52
- 239000002184 metal Substances 0.000 claims description 30
- 238000009826 distribution Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 description 46
- 238000010586 diagram Methods 0.000 description 36
- 239000004065 semiconductor Substances 0.000 description 26
- 230000008439 repair process Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 230000003139 buffering effect Effects 0.000 description 19
- 238000012795 verification Methods 0.000 description 18
- 238000002360 preparation method Methods 0.000 description 16
- 238000000605 extraction Methods 0.000 description 15
- 230000015572 biosynthetic process Effects 0.000 description 14
- 238000003860 storage Methods 0.000 description 14
- 238000003786 synthesis reaction Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 7
- 239000000758 substrate Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 5
- 238000001459 lithography Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000005067 remediation Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000010894 electron beam technology Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000010363 phase shift Effects 0.000 description 2
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 2
- 229920005591 polysilicon Polymers 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 239000005350 fused silica glass Substances 0.000 description 1
- 238000005468 ion implantation Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- -1 oxide Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 229920002120 photoresistant polymer Polymers 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 239000002699 waste material Substances 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/06—Structured ASICs
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)
Abstract
一种布线后壅塞优化方法与壅塞优化平台,方法包括以下步骤:在集成电路布局上的群集盒中识别第一设计规则检查违例;将第一目标单元定位在群集盒中的第一原始位置,第一目标单元连接至第一设计规则检查违例;在群集盒中检测第一目标单元的多个第一候选位置;计算与所述多个第一候选位置相关联的多个资源成本;在所述多个第一候选位置中判定与第一目标单元的最小资源成本相关联的第一重定位位置;及将第一目标单元自第一原始位置重定位至第一重定位位置。
Description
技术领域
本揭露的实施例是关于一种方法与平台,且特别是关于一种布线后壅塞优化方法与壅塞优化平台。
背景技术
半导体集成电路(integrated circuit,IC)产业经历了快速增长。IC材料及设计的技术进步已经产生了数代IC,其中每一代都比上一代具有更小、更复杂的电路。然而,这些进步增加了处理及制造IC的复杂性,且为了实现这些进步,需要对IC处理及制造进行类似发展。在IC演化的主流过程中,功能密度(functional density)(即,每个晶片面积的互连装置数量)通常增加,而几何尺寸(即,可以使用制造制程创建的最小元件)减少。然而,此主流演化需要遵循摩尔定律(Moore's rule),在设施建设投入巨资。因此,一直需要开发具有更小晶片面积、更低成本及更短回转时间(turn-around-time)的IC。
发明内容
本揭露的实施例的目的在于提出一种布线后壅塞优化方法。该方法包括以下步骤:在集成电路布局上的群集盒中识别第一设计规则检查(DRC)违例;将第一目标单元定位在群集盒中的第一原始位置,第一目标单元连接至第一DRC违例;在群集盒中检测第一目标单元的多个第一候选位置;计算与所述多个第一候选位置相关联的资源成本;在所述多个第一候选位置中判定与第一目标单元的最小资源成本相关联的第一重定位位置;及将第一目标单元自第一原始位置重定位至第一重定位位置。
本揭露的实施例的目的在于另提出一种布线后壅塞优化方法。该方法包括以下步骤:识别集成电路布局上的限制区域,布线壅塞盒位于限制区域中,多个群集设计规则检查违例位于布线壅塞盒中;产生连接第一端点与第二端点的迂回路径,迂回路径围绕限制区域;识别迂回路径上的多个候选点;在所述多个候选点中选择锚点缓冲,使得连接锚点缓冲与第一端点的第一飞线及连接锚点缓冲与第二端点的第二飞线不穿过布线壅塞盒;及储存锚点缓冲的位置。
本揭露的实施例的目的在于另提出一种壅塞优化平台。壅塞优化平台包括:分类引擎、壅塞优化引擎及工程变更命令(ECO)工具,分类引擎用以接收关于集成电路布局的设计规则检查违例信息且检测多个群集DRC违例,所述多个群集DRC违例包括群集盒中的第一DRC违例;壅塞优化引擎连接至分类引擎且用以基于DRC违例信息产生优化计划;工程变更命令工具连接至壅塞优化引擎且用以根据优化计划修复第一DRC违例。
附图说明
结合附图,根据以下详细描述可以最好地理解本揭示内容的各态样。注意,根据行业中的标准实务,各种特征未按比例绘制。实际上,为了讨论清楚起见,各种特征的尺寸可任意增加或减小。此外,附图作为本揭露的实施例的实例为说明性的,而非限制性的。
图1为根据一些实施例的电子装置设计系统的方块图;
图2为根据一些实施例的例示性DRC违例图的附图;
图3为根据一些实施例的DRC违例的分类的附图;
图4为根据一些实施例的布线后壅塞优化的方法的流程图;
图5为根据一些实施例的单元重定位的附图;
图6为根据一些实施例的连接网盒的计算的附图;
图7A为根据一些实施例的在单元重定位之前的两个目标单元的附图;
图7B为根据一些实施例的具有连接网的图7A的两个目标单元的附图;
图8A为根据一些实施例的单元重定位之后的图7A的两个目标单元的附图;
图8B为根据一些实施例的在具有连接网的单元重定位之后的图7A的两个目标单元的附图;
图9为根据一些实施例的锚点缓冲的附图;
图10为根据一些实施例的锚点缓冲的附图;
图11为根据一些实施例的锚点缓冲的附图;
图12为根据一些实施例的在锚点缓冲之前的群集DRC违例的附图;
图13为根据一些实施例的在锚点缓冲之后的图12的群集DRC违例的附图;
图14为根据一些实施例的计算机系统的方块图;
图15为根据一些实施例的IC制造系统的方块图。
【符号说明】
10:电子装置设计系统
20:电子设计平台
22:合成工具
24:置放工具
25:特征提取工具
26:布线工具
28:验证工具
30:布线后壅塞优化平台
32:分类引擎
34:ECO工具
36:布线后壅塞优化引擎
37:优化计划
38:单元重定位引擎
40:锚点缓冲引擎
42:线移动引擎
202:DRC违例图
204:DRC违例
204a:结构DRC违例
204b:分散DRC违例
204c:群集DRC违例
302:实体验证错误
402、404、406:步骤
408:锚点缓冲
410:单元重定位
412:线移动
414、416、418、420、422、424、426、428、430、432、436、438:步骤
440:方法
442、444、446:步骤
501:连接网
502:连接网分布
504、504a、504b:目标单元
506a:原始位置
506b、506c:候选位置
506d:原始位置
506e:重定位位置
506f:原始位置
506g:重定位位置
590:群集盒中心区域
592:单位区域
602:矩形
702:区域
902:群集盒
910:限制区域
912:迂回路径
914:第一端点
916:第二端点
918:布线壅塞盒
920a~920e:候选点
921:锚点缓冲
922:矩形
922a、922b:三角形区域
924:矩形
924a、924b:三角形区域
952、954:飞线
1400:计算机系统
1401:处理器
1402:记忆体
1404:总线
1406:网络接口
1408:输入/输出装置
1410:储存器
1414:内核
1416:使用者空间
1418:硬件元件
1450:制造工具
1500:IC制造系统
1520:设计室
1522:IC设计布局图
1530:罩幕室
1532:数据准备
1544:罩幕制造
1545:罩幕
1550:IC晶圆厂
1552:晶圆制造
1553:半导体晶圆
1560:IC装置
A1、A2:边长
具体实施方式
以下揭示内容提供了用于实现提供的标的的不同特征的许多不同的实施例或实例。以下描述元件及布置的特定实例用以简化本揭示内容。当然,这些仅为实例,并不旨在进行限制。例如,在下面的描述中在第二特征上方或之上形成第一特征可包括其中第一及第二特征直接接触形成的实施例,并且亦可包括其中在第一与第二特征之间形成附加特征的实施例,以使得第一及第二特征可以不直接接触。此外,本揭示内容可以在各个实例中重复元件符号或字母。此重复是出于简单及清楚的目的,其本身并不指定所讨论的各种实施例或组态之间的关系。
此外,为了便于描述,本文中可以使用诸如“在...下方”、“在...下”、“下方”、“在...上方”、“上方”之类的空间相对术语,来描述如图中所示的一个元件或特征与另一元件或特征的关系。除了在附图中示出的方位之外,空间相对术语意在涵盖装置在使用或操作中的不同方位。设备可以其他方式定向(旋转90度或以其他方位),并且在此使用的空间相对描述语亦可被相应地解释。
在电子电路设计制程中,一或多个电子设计自动化(electronic designautomation,EDA)工具可用于设计、优化及验证半导体装置设计,诸如半导体晶片中的电路设计。在置放期间,置放器(placer tool)工具可基于给定的电路设计产生(电子电路)置放布局,该给定的电路设计可由电路设计者开发并且可包括例如电路设计信息,诸如电路图、电路设计的高级电气描述、合成电路网络连线表(synthesized circuit netlist)等。置放布局包括指示半导体装置的各种电路元件的实体位置的信息。装置置放完成后,可进行时脉树合成(clock-tree synthesis)及布线(routing)。在布线期间,可形成导线或互连以连接置放布局的各种电路元件。
在置放布局经布线之后,可检查所得的电子装置设计是否符合各种设计规则、设计规格等。例如,可针对各种设计规则检查(design rule check,DRC)违例(violations)检查电子装置设计。一些DRC违例可由布线壅塞(routing congestion)所引起,例如,因为布线线路可能会在电子装置设计的某些区域变得壅塞(congested),这会导致DRC违例。布线壅塞会严重阻碍在各种设计中减小或最小化晶片尺寸的努力。
在布局后模拟(post-layout simulation)阶段,考虑在诸如预布局模拟(pre-layout simulation)的先前阶段中所获取的参数来执行实体验证(physicalverification,PV)。进行晶体管级行为的模拟以检查晶片性能是否满足所需的系统规格。基于实体验证的结果,可能会修复一些DRC违例。可采用工程变更命令(engineeringchange order,ECO)操作来纠正DRC违例。ECO操作为在网络连线表(netlist)由自动工具处理后将逻辑变更直接插入网络连线表中的制程。在制作晶片罩幕(chip masks)之前,通常会进行ECO以节省时间,避免需要完整的ASIC逻辑合成(logic synthesis)、技术映射(technology mapping)、置放、布线、特征提取(feature extraction)及时序验证(timingverification)。EDA工具通常采用增量操作模式(incremental modes of operation)构建,以促进此类ECO。内建ECO布线可有助于实施实体级(physical-level)ECO。
一些DRC违例难以修复,称为难以修复(hard-to-fix,HTF)DRC违例。IC设计者可能很难基于PV结果来判断DRC违例是否为HTF DRC违例。DRC违例的群集(cluster)内的一些DRC违例可能为HTF DRC违例,并且即使经过多次修复迭代(fix iterations)亦可能无法修复。一些分散(scatter)DRC违例也可能为HTF DRC违例。
在没有现有统一修复方法的情况下,群集内的DRC违例通常难以修复。修复群集内的DRC违例取决于工程师的经验。即使经验丰富的工程师亦不知如何系统地解决此潜在问题。手动DRC违例修复可能无法清除由工具限制(tool limitation)及布线壅塞引起的DRC违例。修复制程可能需要多次迭代及一周以上才能收敛。
根据一些实施例,提供了一种用于布线后(post-routing)壅塞优化的系统及方法。该系统及方法利用包括将目标单元(target cell)自原始位置重定位(relocating)至重定位位置(称为单元重定位)及插入/选择锚点缓冲(anchor buffers)(称为锚缓冲(anchor buffering))及基于优化计划来优化布线后壅塞的技术。因此,可以显著减少IC布局上的DRC违例,并且可以显著提高DRC违例的修复率。
图1为根据一些实施例的电子装置设计系统10的方块图。电子装置设计系统10为可操作地以优化布线后壅塞。电子装置设计系统10包括电子设计平台20及布线后壅塞优化平台30等。在一些实施例中,电子设计平台20及/或布线后壅塞优化平台30可以硬件、固件、软件或其任何组合实现。例如,在一些实施例中,电子设计平台20及/或布线后壅塞优化平台30可至少部分地实现为储存在计算机可读储存媒体上的指令,这些指令可由一或多个计算机处理器或处理电路读取及执行。计算机可读储存媒体可为例如只读记忆体(read-onlymemory,ROM)、随机存取记忆体(random access memory,RAM)、快闪记忆体、硬式磁盘机、光学储存装置、磁式储存装置、可电气抹除可程序只读记忆体(electrically erasableprogrammable read-only memory,EEPROM)、有机储存媒体等。
电子设计平台20可包括多个电子装置设计工具,所述多个电子装置设计工具可至少部分地实现为软件工具,当由一或多个计算装置、处理器等执行时,这些电子装置设计工具可用于设计且产生一或多个电子电路布局,包括电子电路置放布局及用于电子装置电路的相关布线,这些电子装置电路可包括例如一或多个集成电路(integrated circuit,IC)。
在一些实施例中,电子设计平台20及布线后壅塞优化平台30可包括在相同设备中或以其他方式由相同设备实现,诸如相同的计算系统或装置。在其他实施例中,电子设计平台20及布线后壅塞优化平台30可包括在单独的设备中或以其他方式由单独的设备实现,诸如单独的及远程定位的计算系统或装置。
电子设计平台20包括电子装置设计工具,这些电子装置设计工具可用于例如设计电子装置的模拟及/电路或数字电路的高级(high-level)程序化描述。在一些实施例中,可以使用高级程序化语言(诸如C、C++、LabVIEW、MATLAB)、通用系统设计或建模语言(诸如SysML、SMDL及/或SSDL)或任何其他合适的高级程序化语言来实现高级程序化描述。在一些实施例中,电子设计平台20可包括各种附加特征及功能,包括例如适合于模拟、分析及/或验证电子装置的电路的高级程序化描述的一或多种工具。
在一些实施例中,电子设计平台20包括合成工具22、置放工具24、特征提取工具25、布线工具26及验证工具28,这些工具中的每一者可至少部分地实现为可由一或多个计算装置、处理器等存取及执行的软件工具。
合成工具22将电子装置的一或多个特性、参数或属性转换成一或多种逻辑运算、一或多种算术运算、一或多种控制运算等,然后可转换成关于模拟电路及/或数字电路的高级程序化描述。
置放工具24产生对应于或以其他方式实现由合成工具22产生的一或多种逻辑运算、一或多种算术运算、一或多种控制运算等的单元。单元可包括对应于半导体装置的各种特征的几何形状,包括例如扩散层、多晶硅层、金属层及/或层之间的互连。在一些实施例中,置放工具24可提供几何形状、几何形状的位置及/或几何形状之间的互连的一或多个高级软件级描述。
在一些实施例中,一些模拟电路及/或数字电路的几何形状可以根据来自与技术库(technology library)相关联的标准单元(standard cells)的预定义库(predefinedlibrary)中的标准单元来界定。标准单元代表一或多个半导体装置及其互连结构,这些半导体装置及其互连结构经组态及布置以提供逻辑功能,诸如AND、OR、XOR、XNOR或NOT,或储存功能,诸如正反器或锁存器(latch)。可根据对应于扩散层、多晶硅层、金属层及/或层之间的互连的几何形状来界定标准单元的预定义库。此后,置放工具24为印刷电路板(printed circuit board,PCB)及/或半导体基板上的几何形状分配位置。
电子设计平台20可对例如由置放工具24产生的设计来执行时脉树合成(clocktree synthesis,CTS)。在一些实施例中,置放工具24可执行时脉树合成。在其他实施例中,CTS工具可包括在电子设计平台20中以对自置放工具24接收的设计执行CTS。时脉树合成通常是指合成时脉树以实现零或最小偏斜(skew)及插入延迟(insertion delay)的制程,且可包括沿着电子装置设计的时脉路径(clock paths)插入一或多个缓冲或反向器。
布线工具26在由置放工具24提供的置放布局中的单元或几何形状之间产生实体互连。在一些实施例中,布线工具26利用描述模拟电路、数字电路、技术库的基于文本或影像的网络连线表、用于制造电子装置的半导体铸造厂及/或用于制造电子装置的半导体技术节点以分配几何形状之间的互连。
验证工具28可例如在置放及布线之后对电子电路置放布局执行各种验证或检查。例如,在一些实施例中,验证工具28可以分析电子电路置放布局并且可提供静态时序分析(static timing analysis,STA)、压降分析(亦称为IREM分析)、时脉域交叉验证(ClockDomain Crossing Verification,CDC检查)、形式验证(亦称为模型检查)、等效性检查或任何其他合适的分析及/或验证。在一些实施例中,验证工具28可执行交流电(alternatingcurrent,AC)分析,诸如线性小讯号频域分析,及/或直流电(direct current,DC)分析,诸如非线性静态点(quiescent point)计算或在扫描电压、电流及/或参数以执行STA、IREM分析等时所计算的非线性工作点序列。
验证工具28验证电子装置设计,包括由置放工具24提供的单元或几何形状的布局以及由布线工具26提供的单元或几何形状之间的互连,满足与电子装置设计相关的一或多个规格、规则等。验证工具28可执行实体验证,其中验证工具28验证电子装置设计是否可实体制造,并且所得的晶片将满足设计规格且不会具有妨碍晶片按设计运作的实体缺陷。
验证工具28可执行DRC以判定电子装置设计,包括几何形状、几何形状的位置及/或由置放工具24及/或布线工具26分配的几何形状之间的互连,是否满足一系列推荐的参数,称为设计规则(design rules),如可由用于制造电子装置的半导体铸造厂及/或半导体技术节点所界定。验证工具28可判定电子装置设计中一或多个DRC违例的存在,并且在一些实施例中,验证工具28可产生指示电子装置设计中一或多个DRC违例的位置的DRC违例图(DRC-violation map)。
特征提取工具25可对电子电路置放布局进行特征提取,包括由布线工具26产生的置放布局中的单元或几何形状之间的实体互连。换言之,在布线后(post-routing)阶段进行特征提取。在一些实施例中,特征提取工具25可提取与电子电路置放布局的一或多个特征相关联的信息。提取的特征可包括与电子电路置放布局相关联的任何特性或参数。在一些实施例中,特征提取工具25分析电子电路置放布局的多个区域并且提取与所述多个区域中的每一者相关联的特征。例如,特征提取工具25可对电子电路置放布局的多个网格单元(grid units)中的每一者及/或电子电路置放布局的多个相邻网格单元(neighboringgrid units)中的每一者进行特征提取。特征提取工具25可至少部分地实现为可由一或多个计算装置、处理器等存取及执行的软件工具。在一些实施例中,特征提取工具25可实现为可操作以执行本文关于特征提取工具25描述的任何功能的电路。
图2为根据一些实施例的例示性DRC违例图202的附图。在该实例中,DRC违例图202包括与特定电子电路置放布局相关联的、由验证工具28识别的DRC违例204。DRC违例204可分为三个类别,即结构(structural)DRC违例204a、分散(scatter)DRC违例204b及群集(cluster)DRC违例204c。结构DRC违例204a为与结构因素相关的DRC违例,诸如错误的布线限制创建、不友善的输入/输出(input/output,I/O)引脚(pin)设置、电源接地(powerground,PG)违例。结构DRC违例204a通常不适用于以工程变更命令(engineering changeorder,ECO)方式修复,并且需要在早期阶段进行大的变更。结构DRC违例204a通常由使用者修复。分散DRC违例204b为分散在设计的电子电路置放布局中的DRC违例。分散DRC违例204b通常与EDA布线器(router)算法相关联。分散DRC违例204b通常通过EDA布线器或(自动DRC违例修复)ADF工具修复,并且修复率通常在85-95%左右。分散DRC违例204b不一定容易修复。一些分散DRC违例204b可为难以修复(hard-to-fix,HTF)的DRC违例。群集DRC违例204c为群集在小区域中的DRC违例,如图2所示。如图2的放大部分所示,在该实例中,存在位于群集盒(cluster box)902中的许多群集DRC违例204c。群集DRC违例204c通常与诸如布线资源不足、群集复杂单元置放等因素相关联。群集DRC违例204c通常通过EDA布线器或ADF工具修复,并且修复率通常在40-60%左右。群集DRC违例204c通常为潜在的HTF DRC违例,但不一定为HTF DRC违例。一些群集DRC违例204c可能不是HTF DRC违例。
图3为根据一些实施例的DRC违例的分类的附图。一般而言,DRC违例可分为不同的修复难度级别,以促进布线后壅塞优化平台30执行的布线后壅塞优化制程。基于实体验证错误302,DRC违例分为四种修复难度级别,即L1、L2、L3及L4。L1 DRC违例为可以由EDA布线器修复的DRC违例,并且根据EDA布线器的稳定性具有中到高的修复率。L2 DRC违例为可以由ADF工具修复的DRC违例,并且具有高修复率。L1及L2 DRC违例不被视为HTF DRC违例。图2中所示的分散DRC违例204b为L1及L2 DRC违例的候选。
另一方面,L3 DRC违例为ADF工具试图修复的DRC违例并且不保证高修复率。图2中所示的群集DRC违例204c为L3 DRC违例的候选。L4 DRC违例为无法以ECO方式修复的DRC违例。图2所示的结构DRC违例204a通常为L4 DRC违例。L3及L4 DRC违例被视为HTF DRC违例。
参看图1,布线后壅塞优化平台30用以优化特定电子电路置放布局中的布线后壅塞(包括由布线工具26产生的置放布局中的单元或几何形状之间的实体互连)并相应地修复DRC违例204。
如图1的实例所示,布线后壅塞优化平台30可包括分类引擎32、布线后壅塞优化引擎36及ECO工具34等。布线后壅塞优化引擎36包括单元重定位引擎38、锚点缓冲引擎40及线移动(wire movement)引擎42等。
分类引擎32用以将DRC违例分类为不同的修复难度级别(即,L1、L2、L3及L4)以促进由布线后壅塞优化引擎36执行的布线后壅塞优化制程。如上所述,分散DRC违例204b不一定为L1或L2 DRC违例;群集DRC违例204c不一定为L3 DRC违例。若L3 DRC违例被错误地分类为L2 DRC违例,则ADF平台30可能会浪费资源来修复具有低修复率的DRC违例。因此,在L2DRC违例与L3 DRC违例之间划线并准确预测HTF DRC违例可能会增加布线后壅塞优化平台30的效率。此外,分类引擎32用以产生用于群集DRC违例204c的群集盒902,如图2所示。
在非限制性实例中,可以采用人工智能(artificial intelligence,AI)或机器学习(machine learning,ML)技术来识别DRC违例的严重性以预测DRC违例是否为HTF DRC违例。“人工智能(artificial intelligence,AI)”在本文中用于广泛地描述可学习知识(例如,基于训练数据)的任何计算智能系统及方法,并使用这些学习到的知识来调整用于解决一或多个问题的方法,例如,通过基于接收到的输入(诸如置放布局)进行推断。“机器学习(machine learning,ML)”通常指人工智能的子领域或类别,且在本文中用于泛指在一或多个计算机系统或电路(诸如处理电路)中实现的任何算法、数学模型、统计模型等,并基于样本数据(或训练数据)构建一或多个模型以进行预测或决策。
具体地,利用机器学习技术的HTF DRC违例预测平台可通过实施一或多种机器学习方法预测所有DRC违例中HTF DRC违例的存在(即,DRC违例包括HTF DRC违例及非HTF DRC违例),例如,利用过去的数据(例如表明电子装置设计中HTF DRC违例的存在及/或位置的数据)来训练机器学习模型以基于新电子电路置放布局与过去数据之间的相似性或偏差来预测DRC违例的存在。
如本文将进一步详细讨论,布线后壅塞优化引擎36用以基于L3 DRC违例204c及由分类引擎32产生的群集盒902来选择优化计划37以优化布线后壅塞。基于布线后壅塞优化引擎36选择的优化计划37,可以单独或组合使用单元重定位引擎38、锚点缓冲引擎40及线移动引擎42来优化布线后壅塞。在非限制性实例中,根据优化计划37使用单元重定位引擎38。在另一个非限制性实例中,根据优化计划37使用锚点缓冲引擎40。在另一个非限制性实例中,根据优化计划37使用单元重定位引擎38及锚点缓冲引擎40两者。在又一非限制性实例中,根据优化计划37使用单元重定位引擎38、锚点缓冲引擎40及线移动引擎42。基于布线后壅塞优化引擎36的输入(即,分类引擎32的输出)选择优化计划37。L3 DRC违例204c及群集盒902的不同情况导致不同的优化计划37。
ECO工具34用以根据优化计划37相应地修复DRC违例204。如本文将详细描述,单元重定位引擎38、锚点缓冲引擎40及线移动引擎42可产生ECO工具34要使用的ECO文档。
布线后壅塞优化平台30可包括多个电子装置分析及/或设计工具,所述多个电子装置分析及/或设计工具可至少部分地实现为多个软件工具,当由一或多个计算装置、处理器等执行时,所述多个软件工具可用于分析可以例如自电子设计平台20(例如,自布置工具24)接收的一或多个电子电路置放布局。此外,在一些实施例中,布线后壅塞优化平台30可用于调整或以其他方式向电子设计平台20提供信息,所述信息指示对置放布局进行的一或多个调整以避免或以其他方式减少置放布局中存在DRC违例。
在一些实施例中,分类引擎32、布线后壅塞优化引擎36及ECO工具34可至少部分地实现为一或多个计算系统(如图14所示)、处理器等可存取及执行的软件工具。在一些实施例中,分类引擎32、布线后壅塞优化引擎36及ECO工具34可实现为可操作以执行本文关于分类引擎32、布线后壅塞优化引擎36及ECO工具34描述的任何功能的电路。在一些实施例中,电子设计平台20及布线后壅塞优化平台30可结合,并且可以在同一平台中实现。例如,本文关于电子设计平台20及布线后壅塞优化平台30所描述的各种工具中的每一者可至少部分地由相同设备(例如计算机装置)存取或以其他方式实现。
图4为根据一些实施例的布线后壅塞优化的方法440的流程图。方法440可由布线后壅塞优化平台30执行。通常,基于自分类引擎32接收的输入(即,L3 DRC违例分类及群集盒分类)来选择优化计划37。可以根据需要基于优化计划37使用单元重定位410、锚点缓冲408及线移动412。ECO工具34可利用产生的ECO文档来修复DRC违例。
布线后壅塞优化引擎36自分类引擎32接收晶片上的DRC违例信息。在一个实例中,DRC违例信息包括关于群集DRC违例204c的信息及关于群集盒902的信息等。在步骤402,布线后壅塞优化引擎36接收关于群集DRC违例204c的信息。在步骤404,布线后壅塞优化引擎36接收关于群集盒902的信息。在另一实例中,DRC违例信息包括关于L3 DRC违例的信息及关于群集盒902的信息等。
在步骤406,布线后壅塞优化引擎36然后基于在步骤402及步骤404接收的布线后壅塞优化引擎36的输入(即,分类引擎32的输出)选择或产生如图1所示的优化计划37。换言之,选择或产生的优化计划37经定制用于分类引擎32的不同输出。例如,由单元重定位引擎38执行的单元重定位410可为分类引擎32的一些输出的优化计划37。锚点缓冲引擎40执行的锚点缓冲408可为分类引擎32的其他输出的优化计划37。有时,单元重定位410、锚点缓冲408及线移动412中的至少两者的组合可为当单元重定位410或锚点缓冲408单独仍然不能修复群集DRC违例204c时的优化计划37。下面将参考图5至图8B描述单元重定位410的细节。下面将参考图9至图13描述锚点缓冲408的细节。在步骤414,ECO工具34可利用通常以*.tcl文件形式产生的ECO文档来修复群集DRC违例204c。
图5为根据一些实施例的单元重定位410的附图。图6为根据一些实施例的连接网盒的计算的附图。图7A为根据一些实施例的在单元重定位410之前的两个目标单元的附图。图7B为根据一些实施例的具有连接网的单元重定位410之前的图7A的两个目标单元的附图。图8A为根据一些实施例的单元重定位410之后的图7A的两个目标单元的附图。图8B为根据一些实施例的在具有连接网的单元重定位410之后的图7A的两个目标单元的附图。
如图4及图5所示,在步骤428识别IC布局上的多个DRC违例204。在步骤430,可使用标准检查器来识别在步骤430的多个DRC违例204的不同分类。例如,标准检查器可识别位于群集盒902中的所有群集DRC违例204c。如图5的实例所示,在群集盒902中识别群集DRC违例204c。具体地,在群集盒中心区域590中识别群集DRC违例204c。群集盒中心区域590为边长为A1的正方形。在一个非限制性实例中,边长A为10μm。群集盒中心区域590可划分为网格中的多个单位区域592。每一单位区域592位边长为A2的正方形。在一个非限制性实例中,边长A2为1μm。因此,群集盒中心区域590包括网格中的100个单位区域592。
如图5所示,在步骤432定位原始位置506a处的目标单元504。在一个实施方式中,使用连接网(connection net)501来定位目标单元504,所述连接网501将群集DRC违例204c及目标单元504电连接。连接网501为连接路径,所述连接路径由位于一或多个金属层(例如,第一金属层M1及第二金属层M2)中的一或多个金属轨(metal tracks)组成。在一些实例中,连接网501还包括在垂直方向上连接不同金属层中的那些金属轨的垂直互连通路(vertical interconnect accesses)(通孔(vias))。如下图6所示,多个连接网501统称为连接网分布502。换言之,通过沿着连接至群集DRC违例204c的连接网501搜索来定位目标单元504。
在步骤438,检测群集盒902中的多个候选位置。候选位置为可重定位目标单元504的位置。候选位置通常为具有低DRC违例密度及较少布线壅塞的位置,有时称为空白空间(white spaces)。在图5的实例中,检测到两个候选位置506b及506c。换言之,目标单元506a可重定位至候选位置506b或候选位置506c。
在步骤440,提取与候选位置相关的特征。在一个实施方式中,使用图1所示的特征提取工具25提取特征。基于在步骤440提取的与候选位置相关的特征,可以计算与候选位置相关联的资源成本。在图5所示的实例中,计算候选位置506b的资源成本及候选位置506c的资源成本。亦可计算原始位置506a的资源成本。资源成本为对特定区域中布线资源的度量(measure)。在一个实施例中,资源成本与三个因素有关:(i)DRC违例密度;(ii)连接网分布;(iii)非预设规则(non-default rule,NDR)感知(aware)金属层密度。在一个实施方式中,资源成本为在每一单位区域592中计算的三个因素的乘积之和。
在一个实例中,连接网分布由“连接网络盒(connection net box)”测量,计算为(L1*L2)/(L1+L2),其中L1及L2分别为覆盖连接网分布的矩形的长度及高度。在图6所示的实例中,覆盖连接网分布502的矩形602具有等于8μm的长度L1及等于6μm的高度L2。因此,连接网络盒等于(8*6)/(8+6)μm。应注意,在其他实施例中,资源成本可能与上述三个以外的因素有关。
在一个实施例中,提取的特征为可调整的。在非限制性实例中,若群集DRC违例204c在低金属层(例如,金属一(M1)层)上,则提取金属零(M0)层至金属三(M3)层的金属层密度,而若群集DRC违例204c在中或高金属层(例如,金属八(M8)层)上,则提取金属四(M4)层至金属十(M10)层的金属层密度。换言之,当群集DRC违例204c在低金属层上时,最相关的特征为M0层至M3层的金属层密度,并且当群集DRC违例204c在中或高金属层上时,最相关的特征为M4层至M10层的金属层密度。
在步骤442,在多个候选位置中判定或选择与最小资源成本相关联的重定位位置。在图5的实例中,与候选位置506b相关联的资源成本低于与候选位置506c相关联的资源成本及与原始位置506a相关联的资源成本。因此,候选位置506b经判定或选择为重定位位置。若与任何候选位置相关联的资源成本高于与原始位置相关联的资源成本,这意味着没有理想的候选位置,则可以扩展群集盒以允许考虑更多候选位置。
然后,可以将目标单元506a自原始位置506a重定位至重定位位置,该重定位位置为图5所示的实例中的候选位置506b。在步骤436处更新诸如资源成本及空白空间之类的重定位之后的关于IC布局的信息。制程可继续以识别另一目标单元并重复上述步骤并以类似方式重定位该目标单元。在制程结束时,会产生反映IC布局上的所有重定位的ECO文档。ECO工具34可利用产生的ECO文档来修复群集DRC违例204c。
例示性单元重定位在图7A至图8B中示出。如图7A所示,在步骤432,基于关于群集DRC违例204c的信息,定位两个目标单元504a及504b。目标单元504a具有原始位置506d。在步骤442之后,判定或选择与最小资源成本相关联的重定位位置506e。同样,目标单元504b具有原始位置506f。在步骤442之后,判定或选择与最小资源成本相关联的重定位位置506g。如图8A所示,在单元重定位之后,目标单元504a重定位至重定位位置506e,并且在单元重定位之后,目标单元504b重定位至重定位位置506g。换言之,通过将目标单元504a自原始位置506d重定位至重定位位置506e以及将目标单元504b自原始位置506f重定位至重定位位置506g,如图8A所示,降低了总资源成本,因此减轻了布线后壅塞。
如图7B所示,区域702中存在许多群集DRC违例204c及复杂的连接网络分布502,表明区域702中的布线壅塞严重。相反,如图8B所示,在该区域中没有群集DRC违例204c及不太复杂的连接网络分布502,表明在单元重定位之后区域702中的布线壅塞已经得到改善。
应注意,单元重定位410亦可应用于分散DRC违例204b。当识别出分散DRC违例204b时,建立以分散DRC违例204b为中心的中心区域,而非如图5所示的群集盒中心区域590。如图5所示,中心区域可具有比群集盒中心区域590小的尺寸,并且尺寸可根据需要配置。为每一候选位置维护资源成本,并在多个候选位置中判定或选择重定位位置。
图9为根据一些实施例的锚点缓冲408的附图。图10为根据一些实施例的锚点缓冲408的附图。图11为根据一些实施例的锚点缓冲408的附图。图12为根据一些实施例的在锚点缓冲408之前的群集DRC违例204c的附图。图13为根据一些实施例的在锚点缓冲408之后的图12的群集DRC违例204c的附图。
如图4所示,锚点缓冲408可以在步骤416开始,其中获得与DRC违例相关的连接网分布。在步骤418,基于DRC违例对连接网进行优先级排序。例如,优先考虑与群集DRC违例相关的连接网。在步骤420,创建资源图(resource maps)。资源图反映不同位置的布线资源。
如图9所示,识别IC布局上的限制区域(blockage area)910。布线壅塞盒(routingcongestion box)918位于限制区域910中。布线壅塞盒918内部存在多个群集DRC违例204c。如图4及图9所示,在步骤422产生迂回路径(detour path)912。在图9的实例中,迂回路径912具有第一端点(亦称为第一实例项)914及第二端点(亦称为第二实例项)916,并且迂回路径912为限制区域910周围的最短路径,连接第一端点914及第二端点916。
如图10所示,在迂回路径912上识别了多个候选点920a、920b、920c、920d、920e(统称为920)。候选点920为迂回路径912上的缓冲锚(buffer anchor)的候选位置。应注意,图10所示的五个候选点920仅为一个实例,并且其他候选点920可由不同位置识别。对于每一候选点920,产生连接候选点920与第一端点914的第一飞线(fly line)952及连接候选点920与第二端点914的第二飞线954。
如图10及图4所示,在步骤424,在候选点920中选择锚点缓冲921,使得第一飞线952及第二飞线954不穿过布线壅塞盒918。在图10的实例中,候选点920c选择为锚点缓冲921。应注意,在其他实例中,可能有不止一个候选点920有资格成为锚点缓冲921,换言之,具有不穿过布线壅塞盒918的第一飞线952及第二飞线954。储存选择的锚点缓冲921的位置,图10的实例中的候选点920c。ECO工具34可使用选择的锚点缓冲921的位置。
如图11所示,产生两个矩形922及924。矩形922为具有两个相对顶点的矩形:锚点缓冲921及第一端点914。矩形924为具有两个相对顶点的矩形:锚点缓冲921及第二端点916。判定矩形922及924是否与布线壅塞盒918重迭。在图11的实例中,矩形922及924两者皆与布线壅塞盒918重迭。因此,在步骤426,产生迂回导件(detour guide)且可由ECO工具34使用。迂回导件提供可由ECO工具34使用的导件/指令(guidelines/instructions),以分别避开三角形区域922b及924b中的任何布线路径。换言之,迂回导件指定三角形区域922a及924a,即矩形922的一半及矩形924的一半,可用于布线路径。因此,迂回导件可减轻布线壅塞盒918中的布线壅塞。
应注意,可以根据需要重复步骤420、422、424及426。换言之,可以识别多个迂回路径,可以选择多个对应的锚点缓冲,并储存所述多个锚点缓冲的位置以供ECO工具34使用。每次选择新的锚点缓冲时,更新资源图。该制程可以继续进行,直到某个区域(例如,图11中所示的三角形区域924a)中的剩余布线资源不够或变得耗尽。
如图12及图13所示,位于布线壅塞盒918中的群集DRC违例204c的数量在锚点缓冲408之后减少。换言之,已优化布线壅塞盒918中的布线后壅塞。如图13所示,插入或选择了多个锚点缓冲921,并且产生了对应的飞线952/954。因此,ECO工具34可利用这些锚点缓冲921的位置及相应的迂回导件来优化布线后壅塞。
参看图4,亦可采用线移动412,尤其是当单独或组合使用锚点缓冲408及单元重定位410仍然不够时。在一个实施方式中,在步骤446,可添加布线限制以告诉DEA工具避免布线限制。添加布线限制通常在没有空白空间用于重定位目标单元或资源成本在单元重定位后实际上增加而非减少的情况下很有用。在另一实施方式中,在步骤444,可自IC布局去除短形状。应注意,除了在步骤446添加布线限制及在步骤444去除短形状之外的实施方式均在本揭示内容的范围内。
使用执行图4所示的布线后壅塞优化的方法440的布线后壅塞优化平台30可以显著减少IC布局上的DRC违例。在一个实例中,与常规优化后的464个DRC违例(即减少7.39%)相比,最初具有501个DRC违例的IC布局在使用布线后壅塞优化平台30进行优化后只有116个DRC违例(即减少76.85%)。在另一实例中,与常规优化后的354个DRC违例(即减少21.5%)相比,最初具有451个DRC违例的IC布局在使用布线后壅塞优化平台30进行优化后只有85个DRC违例(即减少81.16%)。
另一方面,使用执行图4所示的布线后壅塞优化的方法440的布线后壅塞优化平台30可以显著提高IC布局的修复率。在一个实例中,最初使用常规优化具有30.69%的L3 DRC违例修复率的IC布局在使用布线后壅塞优化平台30进行优化后具有41.58%的L3 DRC违例修复率。在另一实例中,最初使用常规优化具有46.44%的L3 DRC违例修复率的IC布局在使用布线后壅塞优化平台30进行优化后具有75.09%的L3 DRC违例修复率。L2 DRC违例修复率及L1 DRC违例修复在使用布线后壅塞优化平台30进行优化之后亦变得更高。
图14为根据一些实施例的计算机系统1400的方块图。在一些实施例中,关于图1至图13描述的一或多个工具及/或系统及/或操作由图14的一或多个计算机系统1400实现。系统1400包括经由总线1404或其他互连通讯机制通讯耦合的处理器1401、记忆体1402、网络接口(network interface,I/F)1406、储存器1410、输入/输出(input/output,I/O)装置1408及一或多个硬件元件1418。
在一些实施例中,记忆体1402包括随机存取记忆体(random access memory,RAM)及/或其他动态储存装置及/或只读记忆体(read only memory,ROM)及/或其他静态储存装置,耦合至总线1404以用于储存由处理器1401执行的数据及/或(处理)指令,例如内核(kernel)1414、使用者空间1416、内核及/或使用者空间的部分及其元件。在一些实施例中,记忆体1402亦用于在由处理器1401执行的指令的执行期间储存暂时变量(temporaryvariables)或其他中间(intermediate)信息。
在一些实施例中,储存装置1410(诸如磁盘或光盘)耦合至总线1404以用于储存数据及/或指令,例如内核1414、使用者空间1416等。I/O装置1408包含输入装置、输出装置及/或组合输入/输出装置,用于使使用者能够与系统1400交互。输入装置包含例如键盘、小键盘、鼠标、轨迹球、轨迹板及/或游标方向键用于向处理器1401传送信息及命令。输出装置包含例如显示器、列印机、语音合成器等,用于向使用者传送信息。
在一些实施例中,关于图1至图13所描述的工具及/或系统的一或多个操作及/或功能性由处理器1401实现,该处理器1401经程序化用于执行这些操作及/或功能。记忆体1402、I/F 1406、储存器1410、I/O装置1408、硬件元件1418及总线1404中的一或多者可操作以接收指令、数据、设计规则、网络连线表、布局、模型及/或由处理器1401处理的其他参数。
在一些实施例中,关于图1至图14所描述的工具及/或系统的一或多个操作及/或功能由与处理器1401分开或代替处理器1401的具体组态的硬件(例如,由一或多个专用集成电路或ASIC)来实现。一些实施例合并了一个以上所描述的操作及/或单个ASIC中的功能。
在一些实施例中,操作及/或功能实现为储存在非暂时性计算机可读记录媒体中的程序的功能。非暂时性计算机可读记录媒体的实例包括但不限于外部/可移动及/或内部/内置储存器或记忆体单元,例如,诸如DVD的光盘、诸如硬盘的磁盘、诸如ROM、RAM、记忆卡等的半导体记忆体或其他合适的非暂时性计算机可读记录媒体中的一或多者。
计算机系统1400可进一步包括用于实施储存在储存器1410中的制程及/或方法的制造工具1450。例如,可对设计执行合成,其中通过将设计与自布局单元库中选择的标准单元进行匹配,设计期望的行为及/或功能转换为功能等效的逻辑门级电路描述。合成产生功能等效的逻辑门级电路描述,诸如门级网络连线表。基于门级网络连线表,可产生用于通过制造工具1450制造集成电路的微影术罩幕。结合图15揭示装置制造的其他态样,图15为根据一些实施例的IC制造系统1500及与其相关联的IC制造流程的方块图。在一些实施例中,基于布局图,使用制造系统1500制造(A)一或多个半导体罩幕或(B)半导体集成电路层中的至少一个元件中的至少一者。
图15为根据一些实施例的IC制造系统1500的方块图。在图15中,IC制造系统1500包括在设计、开发及制造周期及/或与制造IC装置1560有关的服务彼此相互作用的实体,诸如设计室1520、罩幕(mask)室1530及IC制造商/制造者(“晶圆厂”)1550。系统1500中的实体由通讯网络连接。在一些实施例中,通讯网络为单个网络。在一些实施例中,通讯网络为各种不同的网络,诸如内部网络及网际网络。通讯网络包括有线及/或无线通讯通道。每一实体与一或多个其他实体彼此相互作用,并向一或多个其他实体提供服务及/或自其接收服务。在一些实施例中,设计室1520、罩幕室1530及IC晶圆厂1550中的两者或两者以上由单个较大公司拥有。在一些实施例中,设计室1520、罩幕室1530及IC晶圆厂1550中的两者或两者以上在公用设施中共存并使用公用资源。
设计室(或设计团队)1520产生IC设计布局图1522。IC设计布局图1522包括各种几何图案,或设计用于IC装置1560的IC布局图。几何图案对应于构成待制造的IC装置1560的各种元件的金属、氧化物或半导体层的图案。各个层组合形成各种IC特征。例如,IC设计布局图1522的一部分包括各种IC特征,诸如主动区、栅电极、源极及漏极、层间互连的金属线或通孔以及用于接合垫的开口,将形成于半导体基板(例如硅晶圆)及设置于半导体基板上的各种材料层中。设计室1520实施设计程序以形成IC设计布局图1522。设计程序包括逻辑设计、实体设计或置放及布线操作中的一或多者。IC设计布局图1522呈现在具有几何图案信息的一或多个数据文件中。例如,IC设计布局图1522可以GDSII文件格式或DFII文件格式表达。
罩幕室1530包括数据准备1532及罩幕制造1544。罩幕室1530使用IC设计布局图1522来制造一或多个罩幕1545,以根据IC设计布局图1522来制造IC装置1560的各个层。罩幕室1530执行罩幕数据准备1532,其中IC设计布局图1522翻译为代表性数据文件(representative data file,RDF)。罩幕数据准备1532为罩幕制造1544提供RDF。罩幕制造1544包括罩幕写入器。罩幕写入器将RDF转换为基板上的影像,诸如罩幕(网线(reticle))1545或半导体晶圆1553。设计布局图1522由罩幕数据准备1532操纵以符合罩幕写入器的特定特性及/或IC晶圆厂1550的要求。在图15中,罩幕数据准备1532及罩幕制造1544被示为单独的元件。在一些实施例中,罩幕数据准备1532及罩幕制造1544可统称为罩幕数据准备。
在一些实施例中,罩幕数据准备1532包括光学邻近校正(optical proximitycorrection,OPC),该OPC使用微影术增强技术来补偿影像误差,诸如可能由衍射、干涉、其他处理效果等引起的影像误差。OPC调整IC设计布局图1522。在一些实施例中,罩幕数据准备1532包括其他解析度增强技术(resolution enhancement technique,RET),诸如离轴照明(off-axis illumination)、次级解析辅助特征(sub-resolution assist features)、相转移罩幕(phase-shifting masks)、其他合适的技术等或其组合。在一些实施例中,亦使用反微影术技术(inverse lithography technology,ILT),该ILT技术将OPC视为反成像(inverse imaging)问题。
在一些实施例中,罩幕数据准备1532包括罩幕规则检查器(mask rule checker,MRC),所述MRC使用一组罩幕建立规则来检查已在OPC中处理过的IC设计布局图1522,所述罩幕建立规则含有某些几何及/或连通性限制以确保足够边界,从而解决半导体制造制程等中的变化性。在一些实施例中,MRC修改IC设计布局图1522以补偿罩幕制造1544期间的限制,此举可以取消由OPC执行的修改的一部分以满足罩幕建立规则。
在一些实施例中,罩幕数据准备1532包括微影术制程检查(lithography processchecking,LPC),该LPC模拟将由IC晶圆厂1550实施以制造IC装置1560的处理。LPC基于IC设计布局图1522来模拟该处理以建立模拟制造装置,诸如IC装置1560。LPC模拟中的处理参数可包括与IC制造周期的各种制程相关的参数、与用于制造IC的工具相关的参数及/或制造制程的其他态样。LPC考虑了各种因素,诸如虚拟影像(aerial image)对比度、焦点深度(depth of focus,DOF)、罩幕误差增强因素(mask error enhancement factor,MEEF)、其他合适的因素等或其组合。在一些实施例中,在通过LPC建立了模拟制造装置之后,若模拟装置在形状上不够接近以满足设计规则,则重复OPC及/或MRC以进一步完善IC设计布局图1522。
应当理解,为了清楚起见,已经简化了罩幕数据准备1532的以上描述。在一些实施例中,数据准备1532包括诸如逻辑操作(logic operation,LOP)之类的附加特征,以根据制造规则来修改IC设计布局图1522。另外,可以各种不同的顺序来执行在数据准备1532期间应用于IC设计布局图1522的制程。
在罩幕数据准备1532之后以及在罩幕制造1544期间,基于修改的IC设计布局图1522来制造罩幕1545或一组罩幕1545。在一些实施例中,罩幕制造1544包括基于IC设计布局图1522进行一或多次微影术曝光。在一些实施例中,基于修改的IC设计布局图1522,使用电子束(e-beam)或多个电子束的机构在罩幕(光罩(photomask)或网线(reticle))1545上形成图案。罩幕1545可以各种技术形成。在一些实施例中,使用二元技术形成罩幕1545。在一些实施例中,罩幕图案包括不透明区及透明区。用于曝光已经涂覆在晶圆上的影像敏感材料层(例如,光阻剂)的辐射束(诸如紫外线(ultraviolet,UV)束)被不透明区阻挡并且透射穿过透明区。在一个实例中,罩幕1545的二元罩幕版本包括透明基板(例如,熔融石英)及涂覆在二元罩幕的不透明区中的不透明材料(例如,铬)。在另一实例中,使用相转移技术形成罩幕1545。在罩幕1545的相转移罩幕(phase shift mask,PSM)版本中,形成在相转移罩幕上的图案中的各种特征用以具有适当的相差以增强解析度及成像品质。在各种实例中,相转移罩幕可为衰减的PSM或交替的PSM。由罩幕制造1544产生的罩幕用于各种制程中。例如,在离子布植制程中使用此罩幕,以在半导体晶圆1553中形成各种掺杂区,在蚀刻制程中使用此罩幕,以在半导体晶圆1553中形成各种蚀刻区,及/或在其他合适的制程中使用。
IC晶圆厂1550包括晶圆制造1552。IC晶圆厂1550为包括用于制造各种不同IC产品的一或多个制造设施的IC制造企业。在一些实施例中,IC晶圆厂1550为半导体铸造厂。例如,可能存在用于多个IC产品的前端制造(FEOL制造)的制造设施,而第二制造设施可为IC产品(BEOL制造)的互连及封装提供后端制造,并且第三制造设施可为铸造企业提供其他服务。
IC晶圆厂1550使用由罩幕室1530制造的罩幕1545来制造IC装置1560。因此,IC晶圆厂1550至少间接地使用IC设计布局图1522来制造IC装置1560。在一些实施例中,半导体晶圆1553由IC晶圆厂1550使用罩幕1545制造,以形成IC装置1560。在一些实施例中,IC制造包括至少间接地基于IC设计布局图1522进行一或多次微影术曝光。半导体晶圆1553包括硅基板或在其上形成有材料层的其他合适的基板。半导体晶圆1553进一步包括各种掺杂区、介电特征、多层互连等中的一或多者(在随后的制造步骤中形成)。
根据一些揭示的实施例中,提供了一种方法。该方法包括以下步骤:在集成电路布局上的群集盒中识别第一设计规则检查(DRC)违例;将第一目标单元定位在群集盒中的第一原始位置,第一目标单元连接至第一DRC违例;在群集盒中检测第一目标单元的多个第一候选位置;计算与所述多个第一候选位置相关联的资源成本;在所述多个第一候选位置中判定与第一目标单元的最小资源成本相关联的第一重定位位置;及将第一目标单元自第一原始位置重定位至第一重定位位置。在一些实施例中,该方法还包括以下步骤:在群集盒中识别第二设计规则检查违例;将第二目标单元定位在群集盒中的第二原始位置,第二目标单元连接至第二设计规则检查违例;在群集盒中检测第二目标单元的多个第二候选位置;计算与所述多个第二候选位置相关联的多个资源成本;在所述多个第二候选位置中判定与第二目标单元的最小资源成本相关联的第二重定位位置;及将第二目标单元自第二原始位置重定位至第二重定位位置。在一些实施例中,该方法还包括以下步骤:储存第一重定位位置。在一些实施例中,储存第一重定位位置的步骤在计算与所述多个第二候选位置相关联的所述多个资源成本的步骤之前。在一些实施例中,该方法还包括以下步骤:储存第二重定位位置。在一些实施例中,第一重定位位置及第二重定位位置由工程变更命令工具所使用。在一些实施例中,该方法还包括以下步骤:使用工程变更命令工具来修复第一设计规则检查违例及第二设计规则检查违例。在一些实施例中,第一目标单元经由连接网连接至第一设计规则检查违例。在一些实施例中,连接网包括一或多个金属层中的一或多个金属轨。在一些实施例中,连接网还包括一或多个垂直互连通路。在一些实施例中,所述多个资源成本至少基于以下之一:群集盒中的违例密度;群集盒中的连接网分布;及非预设规则感知金属层密度。在一些实施例中,该方法还包括以下步骤:提取有关集成电路布局的多个特征的信息。在一些实施例中,该方法还包括以下步骤:识别集成电路布局上的限制区域,布线壅塞盒位于限制区域中,多个群集设计规则检查违例位于布线壅塞盒中;产生连接第一端点与第二端点的迂回路径,迂回路径围绕限制区域;识别迂回路径上的多个候选点;在所述多个候选点中选择锚点缓冲,使得连接锚点缓冲与第一端点的第一飞线及连接锚点缓冲与第二端点的第二飞线不穿过布线壅塞盒;及储存锚点缓冲的位置。
根据一些揭示的实施例,提供了一种方法。该方法包括以下步骤:识别集成电路布局上的限制区域,布线壅塞盒位于限制区域中,多个群集设计规则检查违例位于布线壅塞盒中;产生连接第一端点与第二端点的迂回路径,迂回路径围绕限制区域;识别迂回路径上的多个候选点;在所述多个候选点中选择锚点缓冲,使得连接锚点缓冲与第一端点的第一飞线及连接锚点缓冲与第二端点的第二飞线不穿过布线壅塞盒;及储存锚点缓冲的位置。在一些实施例中,该方法还包括以下步骤:基于锚点缓冲的位置产生迂回导件。在一些实施例中,当第一矩形及第二矩形中的至少一者与布线壅塞盒重迭时产生迂回导件,锚点缓冲及第一端点为第一矩形的两个相对顶点,锚点缓冲及第二端点为第二矩形的两个相对顶点。在一些实施例中,该方法还包括以下步骤:基于锚点缓冲的位置及迂回导件,使用工程变更命令工具来修复所述多个群集设计规则检查违例。
根据进一步揭示的实施例,提供了一种壅塞优化平台。壅塞优化平台包括:分类引擎、壅塞优化引擎及工程变更命令(ECO)工具,分类引擎用以接收关于集成电路布局的设计规则检查违例信息且检测多个群集DRC违例,所述多个群集DRC违例包括群集盒中的第一DRC违例;壅塞优化引擎连接至分类引擎且用以基于DRC违例信息产生优化计划;工程变更命令工具连接至壅塞优化引擎且用以根据优化计划修复第一DRC违例。在一些实施例中,壅塞优化引擎包括单元重定位引擎,用以:将第一目标单元定位在群集盒中的第一原始位置,第一目标单元连接至第一设计规则检查违例;在群集盒中检测第一目标单元的多个第一候选位置;计算与所述多个第一候选位置相关联的多个资源成本;在所述多个第一候选位置中判定与第一目标单元的最小资源成本相关联的第一重定位位置;及将第一目标单元自第一原始位置重定位至第一重定位位置。在一些实施例中,壅塞优化引擎包括锚点缓冲引擎,用以:识别集成电路布局上的限制区域,布线壅塞盒位于限制区域中,多个群集设计规则检查违例位于布线壅塞盒中;产生连接第一端点与第二端点的迂回路径,迂回路径围绕限制区域;识别迂回路径上的多个候选点;在所述多个候选点中选择锚点缓冲,使得连接锚点缓冲与第一端点的第一飞线及连接锚点缓冲与第二端点的第二飞线不穿过布线壅塞盒;及储存锚点缓冲的位置。
本揭示内容概述了数个实施例,使得熟悉此项技术者可以更好地理解本揭示内容的各态样。熟悉此项技术者应理解,熟悉此项技术者可以容易地将本揭示内容用作设计或修改其他制程及结构的基础,以实现与本文介绍的实施例相同的目的及/或实现相同的优点。熟悉此项技术者亦应认识到,这些等效构造不脱离本揭示内容的精神及范畴,并且在不脱离本揭示内容的精神及范畴的情况下,这些等效构造可以进行各种改变、替代及变更。
Claims (10)
1.一种布线后壅塞优化方法,其特征在于,包括:
在一集成电路布局上的一群集盒中识别一第一设计规则检查违例;
将一第一目标单元定位在该群集盒中的一第一原始位置,该第一目标单元连接至该第一设计规则检查违例;
在该群集盒中检测该第一目标单元的多个第一候选位置;
计算与所述多个第一候选位置相关联的多个资源成本;
在所述多个第一候选位置中判定与该第一目标单元的一最小资源成本相关联的一第一重定位位置;及
将该第一目标单元自该第一原始位置重定位至该第一重定位位置。
2.根据权利要求1所述的布线后壅塞优化方法,其特征在于,还包括:
在该群集盒中识别一第二设计规则检查违例;
将一第二目标单元定位在该群集盒中的一第二原始位置,该第二目标单元连接至该第二设计规则检查违例;
在该群集盒中检测该第二目标单元的多个第二候选位置;
计算与所述多个第二候选位置相关联的多个资源成本;
在所述多个第二候选位置中判定与该第二目标单元的一最小资源成本相关联的一第二重定位位置;及
将该第二目标单元自该第二原始位置重定位至该第二重定位位置。
3.根据权利要求1所述的布线后壅塞优化方法,其特征在于,其中该第一目标单元经由一连接网连接至该第一设计规则检查违例。
4.根据权利要求1所述的布线后壅塞优化方法,其特征在于,其中所述多个资源成本至少基于以下之一:
该群集盒中的一违例密度;
该群集盒中的一连接网分布;及
一非预设规则感知金属层密度。
5.根据权利要求1所述的布线后壅塞优化方法,其特征在于,还包括:
提取有关该集成电路布局的多个特征的信息。
6.根据权利要求1所述的布线后壅塞优化方法,其特征在于,还包括:
识别该集成电路布局上的一限制区域,一布线壅塞盒位于该限制区域中,多个群集设计规则检查违例位于该布线壅塞盒中;
产生连接一第一端点与一第二端点的一迂回路径,该迂回路径围绕该限制区域;
识别该迂回路径上的多个候选点;
在所述多个候选点中选择一锚点缓冲,使得连接该锚点缓冲与该第一端点的一第一飞线及连接该锚点缓冲与该第二端点的一第二飞线不穿过该布线壅塞盒;及
储存该锚点缓冲的一位置。
7.一种布线后壅塞优化方法,其特征在于,包括:
识别一集成电路布局上的一限制区域,一布线壅塞盒位于该限制区域中,多个群集设计规则检查违例位于该布线壅塞盒中;
产生连接一第一端点与一第二端点的一迂回路径,该迂回路径围绕该限制区域;
识别该迂回路径上的多个候选点;
在所述多个候选点中选择一锚点缓冲,使得连接该锚点缓冲与该第一端点的一第一飞线及连接该锚点缓冲与该第二端点的一第二飞线不穿过该布线壅塞盒;及
储存该锚点缓冲的一位置。
8.根据权利要求7所述的布线后壅塞优化方法,其特征在于,还包括:
基于该锚点缓冲的该位置产生一迂回导件。
9.一种壅塞优化平台,其特征在于,包含:
一分类引擎,用以接收关于一集成电路布局的一设计规则检查违例信息且用以检测多个群集设计规则检查违例,所述多个群集设计规则检查违例包括一群集盒中的一第一设计规则检查违例;
一壅塞优化引擎,连接至该分类引擎且用以基于该设计规则检查违例信息来产生一优化计划;及
一工程变更命令工具,连接至该壅塞优化引擎且用以根据该优化计划修复该第一设计规则检查违例。
10.根据权利要求9所述的壅塞优化平台,其特征在于,其中该壅塞优化引擎包括一单元重定位引擎,用以:
将一第一目标单元定位在该群集盒中的一第一原始位置,该第一目标单元连接至该第一设计规则检查违例;
在该群集盒中检测该第一目标单元的多个第一候选位置;
计算与所述多个第一候选位置相关联的多个资源成本;
在所述多个第一候选位置中判定与该第一目标单元的一最小资源成本相关联的一第一重定位位置;及
将该第一目标单元自该第一原始位置重定位至该第一重定位位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/232,491 US11853681B2 (en) | 2021-04-16 | 2021-04-16 | Post-routing congestion optimization |
US17/232,491 | 2021-04-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114925646A true CN114925646A (zh) | 2022-08-19 |
Family
ID=82804246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110813208.5A Pending CN114925646A (zh) | 2021-04-16 | 2021-07-19 | 布线后壅塞优化方法与壅塞优化平台 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11853681B2 (zh) |
CN (1) | CN114925646A (zh) |
TW (1) | TW202242701A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220004900A1 (en) * | 2018-11-26 | 2022-01-06 | Agency For Science, Technology And Research | Method and system for predicting performance in electronic design based on machine learning |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017127276A1 (de) * | 2017-08-30 | 2019-02-28 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standardzellen und abwandlungen davon innerhalb einer standardzellenbibliothek |
KR20230118486A (ko) * | 2022-02-04 | 2023-08-11 | 주식회사 마키나락스 | 반도체 소자의 배치를 평가하는 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090106715A1 (en) * | 2007-05-15 | 2009-04-23 | Fedor Pikus | Programmable Design Rule Checking |
US7725850B2 (en) * | 2007-07-30 | 2010-05-25 | International Business Machines Corporation | Methods for design rule checking with abstracted via obstructions |
US9652579B1 (en) * | 2015-03-31 | 2017-05-16 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing DRC clean multi-patterning process nodes with parallel fills in electronic designs |
US10678988B2 (en) * | 2017-12-18 | 2020-06-09 | Qualcomm Incorporated | Integrated circuit (IC) design methods using engineering change order (ECO) cell architectures |
US10943049B2 (en) * | 2018-09-28 | 2021-03-09 | Taiwan Semiconductor Manufacturing Co., Ltd. | Rule check violation prediction systems and methods |
-
2021
- 2021-04-16 US US17/232,491 patent/US11853681B2/en active Active
- 2021-07-19 CN CN202110813208.5A patent/CN114925646A/zh active Pending
- 2021-08-26 TW TW110131746A patent/TW202242701A/zh unknown
-
2023
- 2023-08-10 US US18/447,567 patent/US20240126973A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220004900A1 (en) * | 2018-11-26 | 2022-01-06 | Agency For Science, Technology And Research | Method and system for predicting performance in electronic design based on machine learning |
US12099788B2 (en) * | 2018-11-26 | 2024-09-24 | Agency For Science, Technology And Research | Method and system for predicting performance in electronic design based on machine learning |
Also Published As
Publication number | Publication date |
---|---|
TW202242701A (zh) | 2022-11-01 |
US11853681B2 (en) | 2023-12-26 |
US20240126973A1 (en) | 2024-04-18 |
US20220335197A1 (en) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11928415B2 (en) | Hard-to-fix (HTF) design rule check (DRC) violations prediction | |
US11853681B2 (en) | Post-routing congestion optimization | |
US20230401370A1 (en) | Method, system and computer program product for integrated circuit design | |
US11853675B2 (en) | Method for optimizing floor plan for an integrated circuit | |
CN110852032A (zh) | 产生集成电路元件的布局图的方法 | |
US12093629B2 (en) | Method of manufacturing semiconductor device and system for same | |
US20240176944A1 (en) | Semiconductor process technology assessment | |
US20230376660A1 (en) | Integrated circuit design method, system and computer program product | |
US11620426B2 (en) | Automated system and method for circuit design | |
CN220984174U (zh) | 半导体装置及集成电路 | |
US20240346225A1 (en) | System for physical verification runtime reduction and method of using same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20220819 |