TW202336625A - 用於電子設計自動化的交互式壓縮工具 - Google Patents
用於電子設計自動化的交互式壓縮工具 Download PDFInfo
- Publication number
- TW202336625A TW202336625A TW111145522A TW111145522A TW202336625A TW 202336625 A TW202336625 A TW 202336625A TW 111145522 A TW111145522 A TW 111145522A TW 111145522 A TW111145522 A TW 111145522A TW 202336625 A TW202336625 A TW 202336625A
- Authority
- TW
- Taiwan
- Prior art keywords
- design
- design layout
- contours
- variation
- manufacturing
- Prior art date
Links
- 238000013461 design Methods 0.000 title claims abstract description 389
- 230000002452 interceptive effect Effects 0.000 title abstract description 77
- 238000005056 compaction Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 466
- 230000008569 process Effects 0.000 claims description 397
- 238000004519 manufacturing process Methods 0.000 claims description 135
- 238000013528 artificial neural network Methods 0.000 claims description 119
- 230000006835 compression Effects 0.000 claims description 80
- 238000007906 compression Methods 0.000 claims description 80
- 238000004088 simulation Methods 0.000 claims description 55
- 238000012549 training Methods 0.000 claims description 50
- 239000004065 semiconductor Substances 0.000 claims description 17
- 238000009877 rendering Methods 0.000 claims description 15
- 238000012800 visualization Methods 0.000 claims description 14
- 238000004804 winding Methods 0.000 claims description 14
- 239000004020 conductor Substances 0.000 claims 1
- 238000010191 image analysis Methods 0.000 claims 1
- 238000001459 lithography Methods 0.000 abstract description 22
- 230000000694 effects Effects 0.000 abstract description 11
- 235000012431 wafers Nutrition 0.000 description 96
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 40
- 229910052710 silicon Inorganic materials 0.000 description 40
- 239000010703 silicon Substances 0.000 description 40
- 239000010410 layer Substances 0.000 description 38
- 238000012545 processing Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 28
- 230000015654 memory Effects 0.000 description 27
- 239000002184 metal Substances 0.000 description 17
- 229910052751 metal Inorganic materials 0.000 description 17
- 238000003860 storage Methods 0.000 description 16
- 238000012937 correction Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 13
- 238000005530 etching Methods 0.000 description 11
- 230000008439 repair process Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 238000012938 design process Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 238000013475 authorization Methods 0.000 description 8
- 230000003749 cleanliness Effects 0.000 description 8
- 238000011960 computer-aided design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 8
- 239000003550 marker Substances 0.000 description 8
- 239000000758 substrate Substances 0.000 description 8
- 238000000059 patterning Methods 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 125000006850 spacer group Chemical group 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 6
- 238000011068 loading method Methods 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 4
- 238000006062 fragmentation reaction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000001900 extreme ultraviolet lithography Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003071 parasitic effect Effects 0.000 description 2
- 229920001296 polysiloxane Polymers 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 241000251131 Sphyrna Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000000889 atomisation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 150000002739 metals Chemical class 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000012634 optical imaging Methods 0.000 description 1
- 238000002039 particle-beam lithography Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F7/00—Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
- G03F7/70—Microphotolithographic exposure; Apparatus therefor
- G03F7/70483—Information management; Active and passive control; Testing; Wafer monitoring, e.g. pattern monitoring
- G03F7/70491—Information management, e.g. software; Active and passive control, e.g. details of controlling exposure processes or exposure tool monitoring processes
- G03F7/705—Modelling or simulating from physical phenomena up to complete wafer processes or whole workflow in wafer productions
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F1/00—Originals for photomechanical production of textured or patterned surfaces, e.g., masks, photo-masks, reticles; Mask blanks or pellicles therefor; Containers specially adapted therefor; Preparation thereof
- G03F1/36—Masks having proximity correction features; Preparation thereof, e.g. optical proximity correction [OPC] design processes
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F1/00—Originals for photomechanical production of textured or patterned surfaces, e.g., masks, photo-masks, reticles; Mask blanks or pellicles therefor; Containers specially adapted therefor; Preparation thereof
- G03F1/68—Preparation processes not covered by groups G03F1/20 - G03F1/50
- G03F1/70—Adapting basic layout or design of masks to lithographic process requirements, e.g., second iteration correction of mask patterns for imaging
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F1/00—Originals for photomechanical production of textured or patterned surfaces, e.g., masks, photo-masks, reticles; Mask blanks or pellicles therefor; Containers specially adapted therefor; Preparation thereof
- G03F1/68—Preparation processes not covered by groups G03F1/20 - G03F1/50
- G03F1/76—Patterning of masks by imaging
- G03F1/78—Patterning of masks by imaging by charged particle beam [CPB], e.g. electron beam patterning of masks
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F7/00—Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
- G03F7/70—Microphotolithographic exposure; Apparatus therefor
- G03F7/70425—Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning
- G03F7/70433—Layout for increasing efficiency or for compensating imaging errors, e.g. layout of exposure fields for reducing focus errors; Use of mask features for increasing efficiency or for compensating imaging errors
- G03F7/70441—Optical proximity correction [OPC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- 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
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Plasma & Fusion (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一種用於由預期製造形狀驅動之電路佈局之製造感知編輯的方法,該預期製造形狀是有關於由機器訓練網路產生的預期製造晶圓輪廓。該方法允許在交互式編輯時幀內進行快速編輯循環,其中對應於設計編輯的預期製造晶圓輪廓在編輯中的幾秒之內呈現。在一些實施例中,晶圓輪廓考量了如由機器訓練網路所決定的光罩OPC/ILT以及微影效應。
Description
本案係關於一種用於電子設計自動化的交互式壓縮工具與方法。
在電子工程中,設計規則是施加在電路板、半導體裝置與積體電路(integrated circuit,IC)設計者的幾何約束,以確保它們的設計正確、可靠地運行,並且可以用能接受的產率生產。生產設計規則由製程工程師根據製程之實現設計內容的能力來設計。電子設計自動化(electronic design automation,EDA)被廣泛地用於確保設計者不會違反設計規則;一程序稱為設計規則檢查(design rule checking,DRC)。DRC是設計的物理驗證簽核過程的一個主要步驟,其還涉及佈局圖對電路圖(layout versus schematic,LVS)檢查、XOR檢查、電性規則檢查(electrical rule check,ERC)以及天線檢查。設計規則與DRC的重要性對於具有奈米級幾何結構的積體電路以及處於更小幾何製程節點的先進製程而言最為重要。
新製程幾何結構的變異、邊緣放置錯誤以及各種其他問題迫使晶片製造商與EDA供應商面臨日益複雜並且有時相互關聯的設計規則以確保晶片是可製造的。特別是,在更小的幾何製程(例如,目前在28奈米以及以下),許多晶圓廠還堅持使用更嚴苛的規則來提升產率。
規則的數量已經增加到不再可能手動追蹤所有規則的程度,導致了極端的設計規則膨脹。此增加了所需檢查的數量,並且使得除錯更加困難。此外,一些規則依賴於其他規則,此對於某些製程中的某些晶圓廠而言是一日益嚴重的問題。
通用IC設計規則在本質上必需有些悲觀/保守,以便迎合各種設計,因為在IC佈局期間中,事前並不知道哪些多邊形將會與其他多邊形相鄰,所以規則必需要能夠適應幾乎所有的可能性。
另一方面,標準單元設計者(例如,SRAM設計者)因其設計的極端規律性,傳統上能夠利用「DRC豁免」(例如,每一SRAM單元在所有方向上被位在記憶體陣列之外圍的相同單元或近乎相同的虛擬單元所包圍)。此種規律性意味著事先地知道哪些多邊形將與其他多邊形相鄰,因此規則可被稍微「放寬」,從而允許比限制性規則所允許的更密集的多邊形填料。將一單元填充得夠緊密這件事情在重複多次時更有意義,因此這些豁免通常是由設計者與晶圓代工廠/晶圓廠之間進行協商。即使在位元單元(bit-cell)(或在高度重複方式中所使用的任何其他類型的單元,例如標準單元庫單元(Standard Cell Library cells))之面積中非常小的損失也會導致在晶片密度與面積中的極大改善以晶片級下降。過去也曾在其他設計領域中努力將DRC豁免與規律結構設計/製物結合使用,從而提升填充密度及/或提升製造產率。於此,由設計製物執行的規律性導致設計規則約束有所鬆綁。然而,此方法有點不夠彈性,因為此方法要求設計製物具有顯著的規律性,因而降低了設計與佈局工程師的選擇。
當今的佈局與產率工程師所面臨的另一個問題是微影熱點。微影熱點(以下,簡稱為「熱點」)是設計中之一個因設計佈局中某些圖案之印刷適應性差而可能容易受到致命的寬度縮減(開路)或橋接錯誤(短路)之影響的位置。尋找熱點的一種方式是在佈局上運行一微影模擬。然而,對於全晶片設計而言,微影模擬的計算代價太大。此外,在較小的幾何製程中,於可以運行微影模擬之前,必需為多重圖案化對佈局進行著色以及OPC校正,從而增加了額外的計算費用。
光學鄰近校正(optical proximity correction,OPC)是一種通常用於補償因繞射或製程效應所引起之圖案錯誤的微影增強技術。對於OPC的需求主要是出現在半導體裝置的製造中,且這是由於為保持原始設計在處理後到矽晶圓上之蝕刻圖案之邊緣放置完整性的光侷限性。此些投射圖案出現不規則,例如線寬比設計的更窄或更寬,並且可藉由改變用於成像之光罩上的圖案來進行補償。諸如圓角等其他失真是由光學成像工具的解析度所驅動,且更加難以補償。如果不加以校正,此種失真可能會大幅改變正在製造之產品的電器特性。光學鄰近校正透過移動邊緣或向寫在光罩上的圖案添加額外的多邊形來校正此些錯誤。此些可能藉由基於特徵之間之寬度與間距的預先計算查找表來驅動(稱為規則式OPC),或者藉由使用緊密模型動態地模擬最終圖案,從而驅動光罩圖案(通常分成多個部分)的移動,以找到最佳方案(此稱為模型式OPC)。目的是在半導體晶圓上盡可能地再現由設計者繪製的原始佈局。
OPC的最顯著效益是校正在不同環境之區域中接觸點之間的面積差異、不同密度之區域中特徵之間的線寬差異(例如,一陣列的中心與邊緣,或者嵌套線(nested line)與孤立線(isolated line))以及線末端減縮(例如,場氧化物上的閘極重疊)。此些可以和解析度增強技術一起使用,例如,鄰置於可解析線的次解析度輔助特徵(sub-resolution assist features,SRAFs)和特徵尺寸調整一起使用。此外,在設計中的線末端可能會產生「狗耳」特徵(襯線(serif)或錘頭線(hammerhead))。OPC對光罩製造(如對於可變形光束(VSB)光罩寫入機)有成本影響,光罩寫入時間和光罩形狀以及資料檔案的複雜度有關,並且因更精細的邊緣控制需要更小的光點尺寸,類似地光罩缺陷檢查需要更長的時間。對於多重射束光罩寫入機,寫入時間和光罩形狀的複雜度無關。
在前緣技術中,OPC校正需要諸如反向微影技術(Inverse Lithography Technology,ILT)等的先進技術,而此增加了更多的計算費用(眾所周知,ILT工具是CPU和GPU密集型)。ILT可以產生曲線的或分段多邊形的光罩形狀,或者,特別是針對VSB光罩寫入機上的寫入,ILT可被「曼哈頓化」(Manhattanized)以產生軸平行的正交形狀。
在執行微影模擬之前先對光罩執行OPC校正,以調查一候選佈局修復是否會導致期望的改進。對於最關鍵的層以及圖案,OPC採用計算成本更高的曲線ILT。由於轉迴時間(turnaround-time)是商業成功的關鍵因素,更耗時的技術通常會使用在微影表現最差的區域。在OPC或ILT的製程期間,此些通常被稱為熱點或微影熱點,但是,此二用語在本案中都是用於指代即使在OPC可以做到最好的情況下仍然存在的問題區域,其包含由ILT或者甚至全晶片曲線ILT修復的那些。當今製程節點之任何類型的OPC與微影模擬的計算成本意味著在熱點修復候選方案上之反饋的獲取上存在著很大的延遲。此些成本已經消除了以真正交互方式執行此類修復的能力。
一些實施例提供了一種EDA方法,其在設計過程中利用設計組件的預期製造輪廓來做出設計決策。在一些實施例中,預期製造輪廓是由機器訓練網路(例如,已訓練的神經網路)所生成,該機器訓練網路在編輯本身的短時間(例如,幾秒)內產生對應於設計編輯的多個預期晶圓輪廓。在一些實施例中所用的機器訓練網路允許在交互式編輯時幀中進行快速編輯循環。在下文中,機器訓練網路被稱為替設計產生一組光罩之製程的或使用該組光罩所生成之晶圓或IC晶片的「數位分身」。由機器訓練網路所生成的預期製造晶圓輪廓也被稱為由該組光罩所生成之設計的或生成在IC晶片/晶圓上之設計的「數位分身」。
一些實施例的方法藉由使用預先計算技術,例如使用已訓練的神經網路來預測製造規則符合性,以加速處理時間。在一些實施例中,該方法用以實施一壓縮器,該壓縮器允許設計者快速地查看用於自動或手動驅動之壓縮編輯的預期製造晶圓輪廓。結合地或替代地,一些實施例的方法允許由製造規則驅動之佈局的快速自動詳細繞線最終由預期晶圓輪廓驅動。此外,在一些實施例中之數位分身推斷的晶圓輪廓考量了著色、光罩OPC/ILT以及微影效應(例如,藉由使用已訓練的神經網路)。此些方法藉由快速評估每一迭代來加速EDA工具的迭代優化,並且在它們個別設計階段的每一者中提供更深入的製造考量。
一些實施例提供一種EDA架構,該EDA架構藉由執行與為預先計算之評估設立資料之問題有關的不同任務(可能藉由神經網路)並且使用同步執行流程以及GPU加速去後處理其結果,以利用高度同步性來實現交互式且迭代的時幀。一些實施例之交互式佈局設計方法的進階運用包含匯流排繞線壓縮以及交互式微影熱點修復等。一些實施例的方法將設計級熱點降低至即使是最好的曲線ILT方案也無法在製程中解決的級別。
一些實施例的方法是用在一或多個EDA工具快速地向設計者呈現用戶驅動編輯之結果以接收來自設計者之額外編輯或指令的交互式佈局設計過程之中。一些實施例的交互式設計架構大幅減少了由設計者所執行之佈局編輯與所製造之矽水輪廓之後續OPC/ILT感知可視化之間的延遲,從而允許了緊密的交互式反饋循環並且大幅提升熱點修復過程中的產能。
此外,對於交互式客製IC設計,一些實施例提供一種新的EDA方法,該新的EDA方法在設計佈局期間中將DRC豁免的概念與應用拓展到任意設計場景(例如,任意客製IC設計)。此些方法有效地簡化用於佈局設計者的設計規則,並提升了最終的設計產量與可製造性。一些實施例的EDA方法為客製IC設計提供了DRC豁免但不損害佈局靈活性,即不強迫佈局設計者使用少量的預定義佈局模板。
一些實施例還使用機器學習製程(例如美國專利申請第16/949,270號中所公開的深度神經網路製程,其透過引用併入本文)向設計者呈現「所見即所得」(What You See Is What You Get,WYSIWYG)範例。此些實施例允許更新交互式設計,同時實時地可視化預期製造的矽結果。一些實施例提供最小化由設計者所執行之佈局編輯與所製造之矽水輪廓之可視化之間之延遲的架構,從而允許在DRC豁免設計壓縮中的緊密反饋循環。一些實施例的方法用於其他形式的佈局設計,其包含自動佈局設計及/或合成。
對於如本文中所述之此些實施例而言,使用神經網路(或許透過神經網路技術)是有用的,因為神經網路是一種統計技術。雖然神經網路可能在輸出中包含一些錯誤,但某些神經網路技術中包含錯誤,所以最差的輸出並不是異常的糟糕。在僅將神經網路方法用於估計目的的實施例中,輸出的統計性質對於它們所執行的任務而言是足夠的。
神經網路式方法的極快運行時間使得傳統上可能需要數週計算的製程在現在可以在幾秒內便合理準確地近似/估計。此些快速運行時間與通常需要數週或數天才能完成的模擬式分析形成鮮明對比,特別是在將一系列之圖像至圖像轉換鏈接在一起以執行特別長串的建設性與模擬式製程之時,例如各種著色可能性的蒙特卡羅(Monte Carlo)分析、各種鄰域可能性的蒙特卡羅分析、OPC/ILT、MPC、光罩模擬以及晶圓模擬。在考量更複雜分析(例如蒙特卡羅分析)的各種型態以改進其預測時,神經網路式方法甚至提供快速的運行時間。這是因為考量更複雜分析的所需時間可被完全地或大部分地包含在神經網路的訓練時間中,此使得此些網路得以繼續其快速運行時間操作。雖然一些實施例使用神經網路,但本領域中具有通常知識者將理解到其他實施例使用其他類型的機器訓練網路或製程。
前方發明內容旨在作為對本發明之一些實施例的簡要介紹,其並非相當於本文件中揭露的所有發明標的介紹或總結。下方的實施方式以及實施方式中所參考的圖式將進一步描述發明內容中所描述的實施例以及其他實施例。因此,為了理解本文件描述的所有實施例,需要對發明內容、實施方式、圖式以及申請專利範圍全面審視。此外,請求的標的不受發明內容、實施方式以及圖式中說明性細節所限制。
以下的實施方式闡述和描述了本發明的許多細節、示例與實施例。然而,本發明不限於所闡述的實施例並且本發明可在不具有一些所討論的具體細節和例示之下實施,此對於本技術領域中具有通常知識者而言是清楚且明顯的。
一些實施例提供了用於由數位分身指定之製造晶圓輪廓的知識所驅動之電路佈局編輯的系統與方法,其中該數位分身是透過機器訓練製程,例如神經網路為電路佈局所產生的。此種系統與方法在下文中被稱為數位分身引導的電路佈局系統與方法。在一些實施例中,此些系統與方法用於交互式編輯工具,以在交互式編輯時幀中提供快速編輯循環,其中對應於設計編輯的製造晶圓輪廓在編輯本身的幾秒內呈現。在一些實施例中,晶圓輪廓考量了光罩OPC/ILT以及微影效應(例如,透過使用已訓練的神經網路來考量此些效應)。
在一些實施例中,機器訓練網路或製程產生設計組建的多個預期製造輪廓以加速設計決策的制定。在一些實施例中所生成之不同的製造輪廓對應於不同的製程變異,例如不同劑量以解決光罩變異或者用於晶圓生產變異之不同的聚焦深度與曝光強度。在下文中,機器訓練網路或製程被稱為替設計產生一組光罩之製程的或使用該組光罩所生成之晶圓或IC晶片的「數位分身」。由機器訓練網路所生成的預期製造晶圓輪廓也被稱為由該組光罩所生成之設計的或生成在IC晶片/晶圓上之設計的「數位分身」。
一些實施例的設計系統之架構使用高度同步性來實現交互式時幀,其是藉由執行與為神經網路設立資料之問題有關的不同任務,並且使用同步執行流程以及GPU加速去後處理其結果。一些實施例之交互式佈局設計方法的進階運用包含匯流排繞線壓縮以及交互式微影熱點修復等。
一些實施例提供由數位分身引導的交互式繞線及/或壓縮方法。在一些實施例中,製程的數位分身被利用以提供關於將在製造後出現之詳細矽輪廓的資訊,此資訊之後將導引設計與佈局的各方面。雖然下文在交互式佈局設計的段落中給出了多個示例,但一些實施例的系統與方法同樣適用於其他形式的佈局設計,其包含佈局合成、自動擺放、繞線以及壓縮等。
此外,下文描述了關於以深度學習式實施之數位分身技術的數個實施例,此些實施例是製造感知的。然而,本技術領域中具有通常知識者將理解到,一些實施例並不限於深度學習式數位分身,而是還包含其他形式的數位分身,例如基於淺層學習的數位分身、不限於神經網路的其他方法及/或其他形式的預先計算。
圖1繪示了交互式IC佈局編輯工具之使用者介面100的示例。此種工具的商業示例包含新思科技股份有限公司(Synopsys Inc.)的客製編輯器以及益華電腦股份有限公司(Cadence Design Systems Inc.)的Virtuoso。一客製或全客製IC設計製程使用專為所需功能創建的獨特建構塊。在半客製或ASIC設計製程中使用了許多在客製IC設計製程中所用的相同工具。不同之處在於,組裝的建構塊通常是為了提供特定功能而客製的。IC佈局編輯器是此類設計製程的重要工具。
用於組裝此些裝置的方法也可以不同,以適應IC或開發中之塊的獨特要求。削邊設計的關鍵組件通常使用如上所述的客製IC設計製程以及工具來進行設計。示例可包含SRAM位元單元、標準單元庫單元以及類比/RF設計單元。一種使用模型是交互式設計,其中設計者在佈局中擺放代表區塊、電晶體等的多邊形或多邊形組,並繪製接線將它們連接在一起。
在一些實施例的交互式IC佈局編輯工具中,還存在自動化,例如本地繞線工具可以幫助完成繞線。別的東西就先不提,此些工具提供了一編輯使用者設計的畫布區域、一允許選擇各種製程層來進行編輯及/或顯示的層選擇器窗口,以及各種選單、工具欄與用以執行各種佈局設計編輯的綁定鍵操作,其通常與鼠標輸入結合使用,以圖形方式指定幾何座標。此類工具也不限於單一個單元的編輯,還允許分層式佈局(放置在單元中的單元)的編輯與組裝。
此些工具通常用於一次編輯單一個單元,而且是在不知道所編輯的單元最終要在何種背景下被使用的前提下。此些單元也通常被用於編輯被放置在另一個大單元內的一單元。後面這種形式的編輯操作被稱為「就地編輯」,其中編輯器除顯示正在編輯之單元外,也顯示了周圍背景(即,分層結構「上方」或正在編輯之單元旁邊)。在就地編輯中,使用者與工具都知道正在編輯之單元的周遭,其可大幅促進某些操作。
在一些實施例中,工具/使用者可以在沒有周圍背景之下自己編輯一單元,此在本文中將被稱為「無背景」(context-free)編輯。在其他實施例中,在周圍背景可以使用之下,工具/使用者可以使用就地編輯範例來編輯單元。一些實施例同時支持無背景以及就地編輯範例。當光柵化一編輯中的單元時,如果背景因就地編輯範例的使用而已經可用時,在一些實施例中的光柵化製程可被擴展以不僅包含正在編輯的單元,還包含周圍背景的一些或全部。光柵化是取得以幾何/向量圖形格式(形狀)描述的影像並且將其轉換成光柵化影像(一系列像素、點或線,當一起顯示時,創建透過形狀表示的影像)的製程。擴展部分可以僅包含影響編輯中之設計單元之輪廓的周圍背景區域。在一些實施例中,周圍背景區域與編輯中的單元相距太遠(因此對其製造輪廓沒有影響)而被排除在擴展部分之外。在一些實施例中,微影範圍尺寸可以設置成已知的固定量,或可以由使用者來指定。
當編輯工具內以無背景範例編輯單元時,可以為該單元推斷一背景,即對該單元最終會擺放到的周圍背景之環境做出某些假設。例如,對於記憶體位元單元,該方法可以假設編輯中的單元是被可能具有相同的定向或具有不同的定向(例如,在X或Y上的鏡像)的相似單元所包圍。對於將會形成標準單元庫且最終以列擺放並繞線的標準單元,該方法可假設編輯中的單元在任何可能的有效定向上被其自身的其他實例或標準單元庫中之其他單元的實例所包圍。
在這種情況下,當單元被光柵化時,被那些不同背景包圍的複製物也會同時被光柵化,此有效地為編輯中的單元合成不同的鄰域。一些實施例還組合(有效地疊加)了跨此些不同鄰域的預期晶圓輪廓,即有效地預測與考慮鄰域引起的變異。在一些實施例中,結果計算中所呈現並使用的輪廓是統計決定的,或簡單地被視為是最可能的(最大可能的「外」輪廓以及最小可能的「內」輪廓)。內/標稱輪廓也將在下文中加以更詳細地描述。
為了簡化討論,下文所討論並且由它們所附之圖式說明的數個實施例是呈現成如果編輯的設計是在沒有如上所述之背景的推斷下,以無背景方式來編輯。然而,本技術領域中具有通常知識者將理解本發明的實施例會擴展至就地編輯範例,因為此些實施例同樣適用於無背景範例以及就地編輯範例。
圖2概念性地繪示了一些實施例的交互式編輯製程200。此交互式製程提供關於設計物件輪廓的製造感知預測給設計者,以允許設計者評估透過交互式設計工具查看、生產及/或編輯設計的品質。如圖所示,製程200涉及三個操作的一或多個迭代。此些操作是(1)設計者執行(在步驟205)手動編輯操作、(2)交互式工具提供(在步驟210)晶圓輪廓的快速可視化表示,因為其將在製造後出現在矽上,以及(3)設計者評估(在步驟215)設計者是否滿意此編輯。當設計者滿意時,製程結束。否則,製程返回步驟205以供設計者執行另一手動編輯,一但積體電路被製造,伴隨著預期晶圓輪廓的另一快速可視化表示。
在一些實施例中,製程200由交互式設計工具使用,該交互式設計工具採用交互式DRC豁免使用模型以允許設計者在步驟205執行各種手動編輯。此外,在一些實施例中,手動編輯是透過一些自動化工具操作來促進。再者,在一些實施例中的快速可視化表示是在手動編輯操作的數秒內產生,從而允許了使用者去快速吸收輪廓資訊並實時進行後續的輪廓驅動編輯。
在一些實施例中的可視化表示旨在藉由在小製程幾何結構處考量OPC/ILT光罩校正與微影效應來準確地表示出在製造之後的矽。有了這樣的可視化,使用者可在視覺上檢查輪廓並決定進行下一個編輯操作,例如響應於觀察到的輪廓,將一些形狀移得更近或更遠。當矽晶圓輪廓未被足夠快地決定與呈現時,交互式使用模型範例將會失敗,且生產量將會減少。由於生產力下降,最終佈局便不太可能是最佳的。
圖3至圖10繪示了由一些實施例之交互式設計工具所提供的交互式設計製程。此製程被呈現成各種使用者介面階段,其呈現了設計者與工具交互的各個階段。圖3示出了在顯示金屬層1上之D型正反器(DFF)標準單元設計302之數個IC設計組件的交互式設計工具的使用者介面100。此些組件包含數個曼哈頓繞線(Manhattan routes)(例如,E型繞線305、F型繞線310等)以及在單元302之頂部與底部的長水平電源軌315。
圖4繪示了在使用雙重圖案化技術(Double Patterning Technique,DPT)將其分成兩個顏色光罩之後的設計302。此二顏色光罩為紅色光罩組件405以及藍色光罩組件410。此些顏色光罩在圖式中以不同的灰色陰影顯示,並使用不同的點畫圖案(stipple patterns),一個具有用於紅色光罩的由左至右的剖面線,且另一個具有用於藍色光罩的由右至左的剖面線。
此種將晶圓層分離成多個光罩層的製程通常稱為「著色」。各種金屬形狀被分成兩個顏色光罩以增強特徵密度,被稱為多重圖案化的製程是一類為微影開發的IC製造技術,以增強特徵密度。目前,多重圖案化對於10奈米與7奈米節點半導體製程以及更高的節點半導體製程而言是必需的。前提是單次微影曝光可能不足以提供足夠的解析度。因此,將需要額外的曝光,否則定位圖案將必需使用蝕刻特徵側壁(使用間隔物)。
試圖推擠設計規則的使用者將試圖將此些形狀擠壓的更緊密,同時維持形狀的可製造性、連接到層的上方與下方之形狀的能力等。在沒有本發明之一些實施例的益處之下,標準的受限設計規則通常會約束使用者去採用悲觀的間距規則。然而,利用一些實施例的DRC豁免特徵,使用者可減少一些悲觀並壓縮間距到受限設計規則所允許的最小值之下。
圖5繪示了一些實施例之交互式設計工具的驗證工具500的選擇。此工具允許設計者選擇一或多個半到體層,並且指示該工具去呈現跨製程變異之製造矽形狀輪廓的可視化。在此實施例中,設計者選擇了兩個金屬1顏色光罩520,並且透過選擇(例如,單擊)UI控件550(例如,UI按鈕)來指示該工具去呈現可視化。
圖6繪示了預期設計602,預期設計602表示了一旦設計302被製造時其將如何呈現的預測。此種設計在下文被稱為預期製造設計。在一些實施例中的交互式設計工具透過使用機器訓練網路(例如,神經網路)來產生此設計,該機器訓練網路已被訓練以EDA設計作為輸入並且產生作為輸出的預期製造設計,該些預期製造設計代表輸入設計的預期形狀。在一些實施例中,機器訓練網路是透過使用已知輸入設計(例如,著色後的輸入設計)與已知輸出設計(例如,光罩製造或光罩模擬後的輸出設計)來訓練網路之機器可訓練參數(例如,神經網路的權重值)的學習製程來進行訓練的。
如圖所示,預期設計602包含針對圖5中所選之層之形狀的晶圓輪廓(隨製程變異)的詳細影像。交互式設計工具因使用了機器訓練網路(例如,神經網路)來產生此詳細影像而非常快速地呈現出此詳細影像。在圖6中,所產生的矽晶圓輪廓被疊加在設計以及原始設計佈局組件之上,因此可以在整個設計內看到它們。快速地向使用者呈現此資訊是非常有利的,以便允許交互式編輯被快速地執行。
下文描述之其他圖式中所繪的多個其他示例也顯示了疊加在設計佈局以及它們在設計佈局中之對應組件之上的機器生成的預期輪廓。本技術領域中具有通常知識者將理解,其他實施例沒有繪製疊加在設計佈局以及它們對應之佈局組件之上的預期輪廓,而是僅繪製預期輪廓形狀。
在圖6以及下文描述的其他示例中,每一組件的預期製造形狀被繪製成多個輪廓(即,被繪製成具有多組曲線段的多個形狀)。每一組件的每一輪廓代表用於特定製程變異之組件的預期形狀。如前所述,一些實施例的交互式設計工具採用機器訓練網路(例如,神經網路),該機器訓練網路已被訓練為一設計之選擇部分的組件在一製程變異範圍內產生一系列的預期形狀。舉例而言,在一些實施例中,交互式設計工具不僅向設計者呈現了標稱製程晶圓輪廓,還呈現了對應於反映最大製程變異與最小製程變異之外輪廓(最大)與內輪廓(最小)的晶圓輪廓。
在此示例中,兩個標尺605與610指示初始設計的尺寸在X方向上大約為1.7微米,且在Y方向上大約為0.55微米。圖7繪示了UI 100的縮放等級之變化,設計者做出該變化以便更詳細的檢查預期製造設計602的輪廓,並插入允許製造輪廓之寬度與間距待定的量測標尺。
圖8繪示了標尺擺放操作之結果的示例。於此,使用者透過標尺操作很快地確定了兩個特定金屬1之間的最大可能間距(製造後)。如標尺805所示,內部晶圓輪廓之間的此間距被識別成0.037901629微米,或大約38奈米。設計者可能還希望去確定最小可能間距,例如,透過擺放標尺在如箭頭810所指示的外部製造輪廓之間。
設計者可以決定執行一些編輯以超越設計規則,例如在DRC豁免場景中,當輪廓準確且充分反映OPC/ILT光罩校正以及當今小幾何製程節點的製造(微影)真實性/非理想性,並且理想地將設計背景(在同一層上的鄰近形狀)納入考量。舉例而言,設計者可以決定進一步地減少直線金屬形狀之間的間距,並且重新計算/可視化將相應製造的輪廓。隨著形狀被推擠得更近,對所得輪廓的影響增加,並且輪廓的形狀與間距會大幅改變,但是此些結果可以根據本發明之一些實施例的製造感知設計範例來立即確定與可視化。
為了說明這一點,一種極端且天真的第一次壓縮設計嘗試可能採用整個設計,並且以一些比例因子縮小整個設計。圖9繪示了天真地嘗試以0.75倍縮放設計的結果。在此示例中,擺放了第二對標尺905與910(原始標尺605與610也被保留),其顯示了縮小設計的尺寸。新設計在X維度上量到1.29微米(比之前設計的1.7微米小),並且在Y維度上量到0.4微米(比之前設計的0.56微米小)。
圖10顯示了天真縮小設計上的放大圖,該放大圖具有指示電源軌在一製程角狹縮(內輪廓)的四個圓圈區域1002-1008。雖然現在的相鄰形狀對的外輪廓之間的距離可能是合理的,但圓圈區域表示這是由電源軌上之大量金屬擠壓所導致的,而此將導致良率及/或長期可靠性問題。
當設計者在執行諸如全局設計縮小的編輯之後幾乎可以瞬間看到這樣的輪廓時,設計者可以快速取消縮小並尋求其他方式使設計更加可製造。舉例而言,使用者可以選擇去增加電源軌的寬度以提供額外的裕度。作為另一示例,可以選擇擴大單元的尺寸以使得其在所有鄰域之下的良率更容易處理。或者,有可能在創造性操作以縮小設計之後,還提升了製造可能性。只有當用於確定與呈現預期製造輪廓的反饋循環足夠快時,例如在5秒內或更少,才能交互地執行此類操作與決策。
一些實施例使用美國專利申請第16/949,270號中所描述的神經網路模型,其透過引用併入本文。此些模型允許代表使用者編輯之佈局設計的影像被呈現成輸入,並且將產生的矽晶圓輪廓作為輸出。圖11A繪示了使用神經網路1100從電腦輔助設計(computer aided design,CAD)資料輸入推斷製造形狀。在前述併入的專利申請中描述了此神經網路。當神經網路在現今的GPU架構上執行時,即使對於相對較大的設計,推斷時間可以降低至交互式時幀(即,幾秒內)。一些實施例採用神經網路,而其他實施例則使用其他機器學習製程來制定對於一但設計製造後將會產生之最終形狀的預測。
當輸入影像太大而不能一次處理時,可以將其分割成一組(重疊的)圖塊。每一個較小的圖塊可隨後由網路處理,且收集輸出圖塊並重新組裝成最終輸出影像。在一些實施例中,使用受原始U-Net模型架構啟發的神經網路架構。圖11B繪示了U-Net模型架構的一示例。在U-Net模型架構1102中,每一陰影框1104對應到一多通到特徵圖。通道的數量標示在框的頂部。x-y大小位於框的左下邊緣。白框1106代表複製的特徵圖。箭頭表示不同的操作。在最後一層上,使用1x1卷積將每一64分量特徵向量映射到所需數量的類別。原始網路總共具有23卷積層。
該架構本質上是一種編碼器-解碼器網路,其中編碼側(左側)以及瓶頸層(底部)導引該模型去學習輸入影像的低維編碼。在右側的解碼網路隨後將影像的低維表示解碼回完整的輸出解析度,並且兩側在訓練期間合作學習輸入影像至輸出影像的轉換。複製與裁剪作為跳過連接,其從網路的編碼側提供額外資訊到解碼側以幫助本定位x,y空間中的資訊。
在一些實施例中,神經網路的輸入代表了表示設計意圖的輸入影像,即,假設在「理想的」(而非實際的)製程下打算製造什麼。在一些實施例中,輸出影像表示了實際製程將實際製造的東西,其中尖角將被圓化,繪製成小方形的通孔或金屬形狀將被製造成圓形或橢圓形等。在使用半導體製造影像資料訓練CNN之後,網路模型權重將被調整以產生反映整個製程的輸出影像。
圖11C繪示了在一些實施例中使用已啟發之U-Net模型架構1102從表示由使用者所繪製之佈局的光柵化圖塊去預測製造的晶圓空拍影像。圖11D繪示了對應於D型正反器(D-type Flip Flop,DFF)標準單元內多個金屬層之一之期望印刷金屬之光柵化影像的示例。白色像素顯示了矽基板上要製造金屬的位置。相反地,黑色像素顯示了不打算製造金屬的位置。
在一些實施例中,對原始U-Net架構做了一些修改,以促進創建反映製造之半導體形狀的輸出影像。一修改涉及將U-Net的最終輸出層從使用sigmoid激活函數更改成使用線性激活函數。藉由此修改,現在U-Net可以產生具有包含從0.0連續到1.0之浮點數值之灰階像素的影像,該影像更能反映半導體晶圓曝光影像。
在一些實施例中,對於半導體製造應用,使用了如前所述的U-Net架構,但將過濾器的初始數量從64減少到32,其在每一最大池操作之後繼續過濾器加倍。此具有大幅降低網路之可訓練參數之總數的效果,並同時為半導體製造應用保留足夠等級的精確度。在一些實施例中,使用了不同輸入圖塊尺寸以及輸出圖塊尺寸,例如,256x256(具有128x128的內核圖塊)。在另一實施例中,為了準確度所需,可進一步藉由移除一些層(更短的「U」深度)或藉由添加額外的層(更深的「U」)來改變網路。在另一實施例中,在每一下取樣(最大池)或上取樣卷積之後,過濾器的數量不是加倍,而是可以使用不同的比率。在一實施例中,每一層可以使用一固定比率(例如,2.0),並且在一替代實施例中,每一層可以使用不同的特定層比率。舉例而言,當我們越接近「U」形狀的底部瓶頸層時,該比率可能會逐漸增加,然後當我們遠離瓶頸層並向輸出上升時,該比率可能再次對應地下降。此些比率以及其他網路參數可以在訓練階段期間中作為超參數搜尋的一部份來進行調整。在一實施例中,可以針對每個不同製程及/或針對製程中的每個不同層來重複調整。
在一些實施例中,網路具有單輸入與單輸出,其代表對應於單組製程條件(即,獨特的製程角)的製造輸出影像。網路的輸入包含對應於CAD資料的影像(由電路設計者繪製之CAD影像中的圖塊),並且輸出包含對應於相應獨特組製程條件所製造之矽的影像。圖11D中顯示了代表期望之DFF電路金屬層之重新組合圖塊組的示例。
圖11E繪示了對應之製造輸出(組裝的圖塊組)的示例。如圖所示,每一白色像素代表製造矽晶圓上存在金屬的區域,且每一黑色像素代表不存在金屬的區域。然而,像素值實際上是灰階且實值的,使得在多邊形之「邊緣」處的一些像素值是介在數值0與數值1.0之間。此影像是藉由重新組裝由如前所述之單輸入、單輸出之已完全訓練的深度卷積神經網路所產生之圖塊來生成的。
為了處理製程變異,即多組製程條件的情況,在一些實施例中可以產生單輸出網路的多個複製物,即每一獨特組製程條件(製造參數值)一個網路,並且此些單輸出網路的每一者可並行訓練。圖11F繪示了多個網路1108,各網路1108都經過訓練以產生對應於不同製造參數(manufacturing parameters,MP)之不同製程角(process corner,PC)的輸出1110。在訓練之後,此些網路的每一者都可用於推斷給定之CAD資料輸入影像的一獨特組製程條件(即,特定製程角)的輸出。
圖11G繪示了推斷輸出的示例,其中重新組裝的圖塊表示了在三種不同的獨特製程條件下,代表DFF設計之製造形狀的影像。雖然乍看之下很近似,但仔細觀察就會發現這三個影像是不同的。舉例而言,每一者中明顯有不同數量的「角圓化」。最上方的影像1112的形狀是「最接近」先前所示之影像中所繪製的直線CAD形狀。最下方的影像1116之形狀具有更顯著程度的角圓化與形狀窄化而可能差距最大。中間的影像1114位於此二極端之間的某處。為了簡潔起見,雖然在此示例中我們僅展示了三個代表半導體製程條件的範例,但更全面性的設置可包含代表光罩與晶圓製造中不同極端情況的其他製程參數。
在一些實施例中,這種按製程角推斷可以連續地進行(例如,使用單個GPU),而在其他實施例中,這種按製程角推斷可以並行地進行(使用多個GPU)。在一優選實施例中,不同製程角的輸出可以由單個多輸出GPU來推斷,例如圖22所示。
為了使神經網路能夠去產生輸出影像,必需先對網路進行訓練。訓練是藉由將網路暴露於大量的輸入/輸出影像樣本來執行,其中每一樣本包含輸入影像(反映IC設計的一部份)以及一或多個輸出影像(響應於給定的輸入,反映將要製造的東西)。為了獲得樣本,一些輸入設計可被選擇或生成。相應的輸出影像可透過涉及數值計算的詳細模擬製程從輸入設計中產生。對於每個輸入樣本,可以產生反映標稱製程條件的單輸出樣本。或者,可以產生反映不同製程條件的多個輸出樣本。下文將參照圖11H、圖11I與圖58描述用於產生輸入與輸出訓練資料的示例性製程(即,從訓練輸入資料產生訓練輸出資料)。
不同的製造條件可能產生實質上不同的製造晶圓形狀。可能不同的製造參數(manufacturing parameters,MPs)包含著色工具和參數、OPT/ILT工具和包含光源與晶圓製程模型參數的參數、MPC工具和包含光罩製程模型參數的參數、破碎化工具和參數、光罩寫入工具和參數、光罩處理參數,以及晶圓製程和包含光源與晶圓處理參數的參數。雖然此些參數有些會相互依賴並共同形成一高維度空間,但在半導體製造領域中通常會嘗試將此降低至較低的維度空間。相關於光罩製造的參數被共同降低至由劑量裕度變異表示的單一維度,並且相關於晶圓製造的參數被降低至兩個主要維度:劑量裕度變異以及聚焦深度變異。因此,由原始(大)參數組所引入之總變異的大部分可以由此很小的獨立參數組中的變異來表示。
圖11H繪示了在一些實施例中用以為接收之輸入設計訓練樣本產生輸出訓練樣本的模擬製程1120。在一些實施例中,輸入樣本是整個IC設計,而在其他實施例中,輸入樣本是一些實施例中之IC設計的一部份。
如圖所示,製程1120開始於執行(在步驟1122)將輸入樣本分成多個光罩層的著色操作。在著色操作中,標線層上之輸入樣本的每個特徵都被著色以反映特徵至特定光罩層的分配。在著色操作之後,製程1120執行(在步驟1124)光學鄰近校正(optical proximity correction,OPC)操作以產生一或多個可能光罩設計組,其中每個光罩設計組對應於輸入樣本。
對於輸入樣本,所產生的光罩設計在一些實施例中包含具有變異的標稱光罩設計。在一些實施例中,於步驟1124產生的可能光罩設計可被組合以創建具有變異的標稱光罩設計。通常,標稱光罩設計可以使用標稱劑量,例如1.0並且在閾值,例如0.5處計算光罩設計的標稱輪廓來確定。在一些實施例中,光罩設計的標稱輪廓可根據多個可能光罩設計來計算。在一些實施例中,OPC操作包含反向微影技術(Inverse Lithography Technology,ILT)操作。在一些實施例中的ILT操作創建了理想的曲線ILT圖案,而在其他實施例中,ILT操作則直線化了曲線圖案。
製程1120執行(在步驟1126)光罩模擬操作以產生為光罩寫入器準備光罩設計的光罩資料準備(mask data preparation,MDP)。在一些實施例中,此操作包含將資料「破碎化」成梯形、矩形或三角形。此操作在一些實施例中還包含光罩處理校正(Mask Process Correction,MPC),其在幾何上修改形狀及/或指派劑量給形狀以使得在光罩上的所得形狀更接近於期望形狀。MDP可使用可能光罩設計或MPC的結果來作為輸入。MPC可作為破碎化或其他MDP操作的一部份來執行。
在光罩模擬之後,製程1120執行(在步驟1128)晶圓模擬操作,該晶圓模擬操作計算使用生成的光罩將產生的可能IC圖案。在一些實施例中,晶圓模擬操作(在步驟1128)包含使用所計算之光罩影像的微影模擬。在步驟1128的操作根據複數光罩影像計算了在基板上的多個可能圖案。
對於輸入樣本,在一些實施例中所生成的IC圖案代表一輸出圖案或一系列輸出圖案(當所產生的圖案具有多個輪廓以解決製程變異與製造參數變異時)。輸入樣本與所產生的輸出圖案代表了在一些實施例中用以訓練機器訓練神經網路的已知輸入與已知輸出。一但經過訓練,神經網路就可以在壓縮期間中使用,以按照前述方式協助壓縮操作。
本技術領域中具有通常知識者將理解製程1120可能比所示的涉及更多或更少。通常,光罩製程模擬軟體可以被參數化,即,被指示在一組光罩製程參數值(例如,劑量圖變異)下執行光罩製程模擬。同樣地,晶圓模擬軟體可以被參數化,即,被指示在一組晶圓製程參數值(例如,劑量圖變異與聚焦深度變異)下執行晶圓製程模擬。
圖11I繪示了提供在製造參數中的此些製程變異(例如,劑量圖變異與聚焦深度變異)作為模擬製程的輸入,該模擬製程用以根據輸入訓練資料產生輸出訓練資料。除了提供給光罩製程模擬1126的劑量圖變異以及提供給晶圓製程模擬1128的劑量圖變異與聚焦深度變異之外,圖11I中所示的製程1140與圖11H的製程1120相似。
作為響應,圖11I中的光罩製程模擬操作1126可產生代表在各種光罩製程變異(劑量圖變異)下製造光罩的多個影像檔。在一些實施例中,這是代表標稱產生之光罩(在標稱值的劑量圖參數)的多個光罩檔以及一些極端角條件(在一些「極端」值的劑量圖參數,例如,標稱值的一些百分比,例如+/-10%)。百分比值可被指定成代表真實光罩製程極值的百分比值,或者百分比值可被指定成代表其他限制,例如統計限制的百分比值,例如1-sigma值、2-sigma值或3-sigma值。
對於每個如此產生的製造光罩影像(如透過模擬確定的),可隨後執行圖11I中的晶圓製程模擬操作1128。至於光罩製程模擬操作,晶圓製程模擬操作1128產生代表在各種晶圓製程變異(劑量圖變異以及聚焦深度變異)下使用光罩來製造矽晶圓層的多個晶圓影像。在一些實施例中,這是代表標稱產生之晶圓表面的多個晶圓影像檔(在標稱值的劑量圖參數以及在標稱值的聚焦深度)以及一些極端角條件(在一些「極端」值的劑量圖參數與聚焦深度參數,例如, 標稱值的一些百分比,例如+/-10%)。百分比值可被指定成代表真實晶圓製程極值的百分比值,或者百分比值可被指定成代表其他限制,例如統計限制的百分比值,例如1-sigma值、2-sigma值或3-sigma值。
在一些實施例中,光罩與晶圓製造參數分佈可以作為聯合分佈,並且選擇百分比值來反映1-sigma、2-sigma或3-sigma聯合機率限制。(在給定定義在機率空間上的隨機變數X,Y,…之下,用於X,Y,…的聯合機率分佈是一種機率分佈,該機率分佈給出了每一個X,Y,…在特定範圍中或為該變數所指定的離散組值中的機率。在只有兩個隨機變數的情況下,此稱為雙變數分佈,但概念念概括至任意數量的隨機變數(給定多變數分佈)對於本技術領域中具有通常知識者而言將是熟悉的)。在一些實施例中,可以執行蒙特卡羅模擬,其中獨立參數是從它們的分佈或聯合機率分佈中隨機抽取出來的。
如此產生的晶圓影像組隨後反映在極端限制或在+/-N-sigma值的製程變異。此影像組可隨後進一步地向下聚合成標稱影像、(逐像素)最小影像以及(逐像素)最大影像,其反映了在相應+/-N-sigma值的製程參數。可以針對不同的N值,例如N=1,2,3,重複該製程。
由於此製程,在給定反映設計之一部分的任何輸入設計光罩之下,模擬製程會產生在標稱製程值以及在反映絕對極限值或諸如1、2或3 sigma之統計值的極端值反映整個製程的多個影像。我們將此些輸出中的每一個稱為一「組」製程條件,例如標稱、最小或最大。
然後,可以透過暴露神經網路於對應到在各種N sigma級的標稱值、最小值與最大值的影像組來訓練不同的統計神經網路模型。在訓練結束時,此些神經網路的每一者隨後已經可以產生反映統計N-sigma值的影像,即反映在相應之N-sigma值之製造中的變異。
圖11G顯示了為嚴格控制製程所產生的標稱影像、最小影像與最大影像,其中變異與標稱條件相比相對較小。該變異很小但不為零。然而,用於現代小幾何奈米時代製程的相應影像將展現比圖11G中所示要大得多的影像變異,並且此些較大的變異將以在各種電路設計應用之背景下在本案中透過所附的圖式來說明。
圖11I的製程可能需要很長的時間,但對於已知的參數變異的每一個製程僅需執行一次。然而,它不需要在製程中執行意圖被製造的每設計一次(once-per-design),因此生成資料以訓練模型的計算成本可被多個設計分攤。
現在回到關於設計壓縮的討論,為了加速產生預期形狀的製程,一些實施例在先前關於圖11A所述之操作外執行額外操作。需要此些額外操作是因為,即使使用快速的神經網路推斷製程,涉及設立問題並傳輸資料到神經網路以及隨後對由神經網路所產生之結果進行後處理以使其可在佈局編輯器中呈現的各種開銷,使得整個製程耗費更長的時間。一些實施例針對移除或大幅降低設立成本而客製化,從而允許諸如美國專利申請第16/949,270號中所述之神經網路與交互式佈局編輯器在真正的交互式時幀中(數秒或更短)、在緊密的交互式循環(編輯、可視化、編輯、可視化…)中結合使用。因此,各種不同的潛在布局修正方案可由電路佈局設計者非常快速地列舉並評估,從而使得最佳方案可被快速地確定並採用。
圖12繪示了一製程1200,製程1200為圖2之製程200的更詳細表示。製程1200顯示了可視化操作210是由兩個子操作組成,此二子操作為(1)在所選之設計部分中計算每一組件之矽輪廓的計算操作1202,以及(2)顯示所計算之矽輪廓之可視化的呈現操作1204。
在一些實施例中,為了以一種使矽晶圓輪廓可在佈局編輯器中呈現的形式來計算矽晶圓輪廓,需要大量額外的計算操作。圖13繪示了關於一些實施例中之計算操作1202的進一步細節。此圖說明了,為了計算輪廓,首先必需準備來自佈局編輯器的資料,以適合神經網路所用的形式,神經網路必需執行其處理,並且神經網路的輸出隨後必需被後處理成適合在交互式層編輯器工具中渲染的形式。
具體而言,圖13繪示了計算矽輪廓還需要額外的(1)偏置操作1302,其將資料預處理成適合神經網路使用的形式,接續是(2)使用神經網路來產生所選之設計部分中之每一組件之矽輪廓的計算操作1304,然後是(3)向下蝕刻輪廓操作1306,其將資料後處理成適用於在交互式層編輯器工具中渲染的形式。在一些實施例中,偏置增加了設計中之組件形狀的尺寸(例如,使得形狀更易於製造),而蝕刻操作則縮小了設計中之組件形狀的尺寸。
作為在先進之小幾何製程節點之半導體製造的一部份,IC布局資料庫中的形狀在尺寸放大或「向上偏置」(bias-up)操作中進行了預處理以及角圓化,其在光罩創造之前放大形狀並產生更適合製造的目標晶圓形狀(因為幾乎不可能製造出90度角)。在幾何域中執行向上偏置操作的一示例是計算所有多邊形的所有邊緣,然後以一定長度增加所有邊緣。在應用標線縮放之前,尺寸調整通常是在繪製尺寸處(1X)。尺寸調整通常應用於「每一邊」,其意味著多邊形之每一邊緣向多邊形之內部或外部移動的距離。舉例而言,每邊尺寸調整-0.125微米的正方形(其每邊為1.25微米)將縮小該正方形成每邊1.00微米,其X與Y維度的總收縮量皆為-0.25微米。
為相應之向上偏置形狀的角圓化版本產生光罩,並且使用稱為光學鄰近校正(optical proximity correction,OPC)的製程進行最佳化,以確保印刷在矽晶圓上時的最佳保真度。在先進製程節點,通常會執行OPC的先進形式,其稱為反向微影技術(Inverse Lithography Technology,ILT),以實現最佳的可印刷性。ILT有時會產生曼哈頓化的形狀,且有時會產生曲線形狀。ILT是對計算要求非常高的製程,其包含(1)預測晶圓製造(也許還有光罩製造)如何系統地偏離所需的目標形狀,以及(2)補償它們的模擬或仿真。為了在此些操作之後決定最終的矽輪廓,一些實施例在執行多重圖案化時在每一顏色光罩之計算中反映了所有的這些步驟。舉例而言,在圖4中,涉及了兩個顏色光罩。
一些實施例採用了在佈局編輯工具自身中所評估的用於向上偏置與蝕刻製程的簡單模型,例如晶圓蝕刻製程在一些實施例中被建模成恆定蝕刻,其是互補向上偏置模型的向下偏置操作。當需要更複雜的模型時,一些實施例使用製造模擬軟體以及硬體以執行向上偏置及/或蝕刻建模。其他實施例與極紫外光微影(Extreme Ultraviolet Lithography,EUV)製造結合使用。在此些實施例中,偏置步驟與蝕刻步驟被省略或實施成穿過(pass-thru)操作。
在創建了向上偏置的光罩形狀(在步驟1302)之後,製程1300計算(在步驟1304)晶圓上輪廓。如前所述,在一些實施例中使用製造計算軟體以執行此些步驟,然而,這樣的軟體在計算上有點昂貴,並且即使有GPU支持,其操作時間線也不適合交互式使用模型。因此,一些實施例使用機器訓練製程(例如,機器訓練神經網路或其他機器訓練網路)代替此種計算軟體來執行晶圓輪廓確定步驟。如前所述,當在GPU裝置上執行神經網路推斷操作時,可使用如美國專利申請第16/949,270號中所述之已訓練的神經網路,以大幅地改善輪廓確定步驟的成果。
為了讓神經網路執行其處理,需要將向上偏置光罩資料從其幾何形式(在幾何域中的邊緣與點陣列)轉換到光柵域,即轉換成像素影像形式。多邊形的光柵化是一種幾何資料處理的基本技術,其廣泛地應用在電子設計自動化(EDA)行業,尤其是許多其他行業。EDA中的一組多邊形通常以GDSII或OASIS格式表示成頂點的陣列,並且光柵化製程試圖透過網格上的灰階像素來表示它們。一些實施例使用大解析度曲線格式,其使用諸如樣條(splines)的技術。許多格式以壓縮方式表示像素劑量資料,以最小化資料大小和傳輸時間。不同實施例使用不同方法來表達形狀,然而,許多實施例使用對精確度影響最小同時盡可能緊密的傳動機構。
一旦神經網路接收到光柵域中的資料,它就會處理資料並產生製造矽輪廓的光柵影像來作為輸出。為了讓光柵影像與神經網路模型一起放進GPU記憶體,如美國專利申請第16/949,270號所述的,需要將影像分解成更小的圖塊。圖14繪示了神經網路1400的一示例,神經網路1400在稱為推斷的操作中接收代表向上偏置(biased-up)光罩形狀的圖塊,並且產生代表對應之矽晶圓輪廓的圖塊。
在一些實施例中的製程1300執行後處理,以將神經網路產生的(推斷的)輸出圖塊拼接成製造設計的最終全尺寸光柵影像。在一些實施例中,製程1300還執行了額外的後處理操作以轉換光柵影像成適用於在佈局編輯工具渲染的幾何影像,其中該佈局編輯工具不在光柵域中操作。後處理的最後一種形式被稱為「輪廓化」,並且可由諸如TrueMask® DS的製造計算軟體及/或硬體來執行。
圖15繪示了一整個製程1500的示例,該製程1500結合了所有前述的操作以藉由利用神經網路來產生輪廓。此製程1500是由多個不同的製程來執行,該些不同的製程是藉由放置在各操作旁的文字符號來識別的。此些製程是佈局編輯軟體、製造軟體製程以及深度學習軟體製程。如圖所示,佈局編輯軟體在一開始保存了(在步驟1505)設計的副本。
接續,在步驟1510,製造軟體製程啟動、獲取授權、為多個顏色中之一向上偏置設計組件、轉換設計成光柵化格式,並且圖塊化成圖塊。在步驟1515,深度學習軟體製程啟動、載入其神經網路以及其權重、迭代地讀取並處理輸入的圖塊以產生預期輸出設計,然後將其為處理後的圖塊所產生的輸出拼接在一起。在一些實施例中,神經網路為N(例如,3)個不同的製程變異產生N(例如,3)個不同的預期輸出設計,其中每一預期輸出設計以像素值來表示,且該些像素值需要經過處理才能得到每一製程變異的組件輪廓。其他實施例使用N個神經網路來代替一個神經網路,其中每一神經網路針對N個不同製程變異之一產生N個不同預期輸出設計之一。
在步驟1520,製造軟體製程(1)再次啟動,(2)分析由神經網路產生之每一預期輸出設計中的像素值以產生預期輸出設計的組件輪廓(例如,標稱輪廓、最大輪廓與最小輪廓),然後(3)向下蝕刻預期輪廓設計。在步驟1525,製造軟體製程確定它是否已經處理了所有顏色的設計組件。如果是這樣,它就會結束。否則,它會返回到步驟1510以對另一顏色的另一組組件重複其操作。
其他實施例對製程1500的子操作進行了不同的劃分。圖16繪示一製程1600,製程1600以與圖15之製程1500有些不同的方式劃分這些子操作。在製程1600中,偏置與蝕刻子操作是由佈局編輯軟體來執行而不是製造軟體製程。具體而言,佈局編輯軟體執行了在步驟1505的偏置操作,並且執行了在步驟1605的蝕刻操作。
製造軟體製程的啟動時間與獲取授權以及神經網路製程的啟動時間與網路加載時間對製程1500的整體速度增加了延遲。神經網路的推斷工作(一旦載入模型並且已使其輸入可用後,產生其輸出的所費時間)可能非常短暫(通常不到一秒)。然而,啟動製造軟體製程以準備該輸入(獲取授權、執行光柵化與圖塊化(tiling)步驟)以及轉換網路產生的輸出成適用於佈局工具中渲染的形式(根據圖塊重建製造輪廓影像、獲取授權與從光柵域到幾何域的輪廓化以及模擬蝕刻步驟)會產生各種開銷。
在某些情況下,與此些開銷相關的時間延遲是不可接受的。此外,每一顏色光罩需要執行一次光柵化步驟、圖塊化步驟、神經網路推斷步驟、重建步驟、輪廓操作步驟。另外,如前所述,一些實施例不僅向使用者呈現標稱製造製程晶圓輪廓,還呈現了對應於反映了製程變異之外(最大)輪廓與內(最小)輪廓的那些晶圓輪廓。
此外,當涉及兩個顏色光罩(雙重圖案化)並且針對每一個光罩考量三個製程條件(標稱、最大與最小)時,即總共需要執行六組輪廓確定操作。當製造軟體製程僅需要3秒來啟動並獲取其授權時,此需要最少18秒的開銷。如果神經網路軟體需要額外的20~40秒來啟動、載入其資料庫、神經網路模型與神經網路權重,則會額外增加120~240((20~40)*6)秒的開銷。
因此,一些實施例不使用圖15之製程1500或圖16之製程1600的順序資料處理流程,該順序資料處理流程在需要時啟動必需的製程,並且等待每個製程依序完成。取而代之的是,一些實施例使用圖17之新穎的軟體架構1700,該軟體架構1700藉由改善佈局編輯器、製造軟體伺服器製程以及神經網路軟體伺服器製程的操作與通信來大幅改善交互式編輯製程的通量時間。
在此示例中,資料流被修改成允許三個同步獨立執行序列(以下稱之為流)。在一些實施例中,此些可以映射到多個執行線程,而在其他實施例中,他們映射到多個相應的操作系統製程。舉例而言,在圖17所示的示例以其圖18-21所示的示例中,獨立執行序列是(1)一個製程的單獨線程,(2)單獨製程,以及(3)二或多個製程的單獨一或多個線程。為了利用多個GPU資源,可能需要多個操作系統製程。
在圖17中,第一執行流1702代表佈局編輯器軟體,其中使用者使用佈局編輯器軟體執行該編輯並可視化該結果。在一些實施例中,佈局編輯軟體製程是在無GPU啟用的系統上運行。第二執行流1704代表製造軟體製程伺服器。此伺服器執行光柵化操作與圖塊化操作以及輪廓操作,其中由神經網路軟體伺服器展生的光柵影像在該輪廓操作中被轉換回到幾何域,以便在佈局編輯軟體中進行渲染。在一些實施例中,製造軟體製程伺服器是由佈局編輯器軟體預先啟動的,例如當設計者選擇圖5中所示的驗證工具500時。
第三同步執行流1706是包含已訓練之神經網路的神經網路軟體本身,其負責根據由製造軟體伺服器所產生的光柵化且圖塊化影像來推斷晶圓輪廓。為了達到所需的性能,此製程是在GPU啟用的系統上執行。在一些實施例中,神經網路軟體製程是由佈局編輯器軟體來啟動的,例如當設計者選擇圖5中所示的驗證工具時。
如圖17所示,神經網路軟體伺服器取得由神經網路所產生的輸出圖塊,並且重新組裝它們以重建全尺寸光柵影像。在替代實施例中,此重建製程從神經網路軟體伺服器轉移到製造軟體製程伺服器。
在一些實施例中,三個製程1702、1704與1706是同時啟動的(例如,藉由用於啟動佈局編輯器的包裝指令檔)。在進一步的實施例中,製造軟體伺服器製程1704與神經網路軟體伺服器製程1706作為伺服器來操作,一旦它們完成它們的初始化製程,就等待指令通過網路套接字(例如,互聯網套接字)到達。因此,當佈局編輯器軟體正在獲取其授權並載入IC佈局設計時,製造軟體伺服器也可能同樣地啟動並獲取其授權,且神經網路軟體伺服器也可能同樣地進行其初始化,該初始化包含載入神經網路模型並設立神經網路權重的相對冗長的步驟。由於此三個製程是同時執行它們的初始化,而不是如圖15所示的連續地執行,因此這些初始化時間從內部循環時間移到在使用者執行交互式編輯之後處理設計並渲染輪廓,從而大幅改善了一些實施例之交互式編輯工具每次迭代編輯、計算與可視化操作的周轉時間。因此,在圖17的架構中,三個主要製程的初始化時間已經提前到交互式編輯循環之前,因而從在編輯、計算、可視化循環中的每一個使用者編輯之後所執行的計算步驟中移除。
在圖17以及下文所討論的其他序列圖中,繞著消耗大量CPU或GPU時間的子製程繪製了方框。虛線的垂直箭頭線代表實質上閒置時間的週期,其中相應的軟體製程等待來自使用者或所涉及之其他製程之一的一輸入。水平箭頭線代表從一製程到另一個的資料傳輸。在一些實施例中,製程之間的通訊是互聯網/網路套接字通訊。此外,在一些實施例中,由左至右的水平箭頭線代表對要執行之服務的一客戶端套接字式請求。另一方面,由右至左的水平箭頭線代表了指示已執行該服務且結果可用的一伺服器端套接字式響應。伺服器產生的結果可儲存在連網的磁碟文件中,例如,其隨後可被客戶訪問的。在接收到一伺服器響應後,佈局編輯器客戶可執行額外的處理、準備供一伺服器製程/多個伺服器製程使用的另一組文件、發起另一個服務請求、等待一響應及/或使用表示了一伺服器端服務/多個伺服器端服務的文件。
在圖17中,製造軟體伺服器1704在其已經初始化、獲取其授權等之後開始監聽並接受套接字通訊。同樣地,神經網路伺服器1706在其已經初始化並載入神經網路模型與權重之後開始監聽並接受套字接通訊。在一些實施例中,此三個製程1702、1704與1706可在同一個機器上運行,或在單獨的連網機器上運行。理想地,神經網路軟體伺服器1706在具有GPU硬體支持的機器上運行,以允許在神經網路推斷期間中的最大通量。
在使用者使用佈局編輯軟體且執行佈局編輯並請求查看製造輪廓之後,佈局軟體1702保存設計的副本(反映最新編輯)、確保形狀已經適當地向上偏置以反映製造,然後發送客戶請求到製造軟體伺服器1704以光柵化並圖塊化設計,以便準備給神經網路去進行神經網路推斷。在其他實施例中,向上偏置製程是由製程伺服器1704來執行而不是佈局編輯軟體客戶端1702。一旦製程伺服器透過套接字響應指示給深度學習推斷用的資料已經準備好,在一些實施例中的佈局編輯器發送套接字式客戶端請求給神經網路軟體伺服器,其通知它代表光柵化、向上偏置之設計的資料圖塊檔的位置,並請求經計算的輪廓。
作為響應,神經網路軟體伺服器1706載入圖塊中的資料,使用已訓練的神經網路去快速地執行推斷操作,該推斷操作產生代表光柵空間中之矽晶圓形狀的輸出圖塊。在一些實施例中,於向客戶端響應指示該資料可用的訊息之前,神經網路軟體伺服器隨後重新組裝此些圖塊以在光柵空間中形成矽晶圓形狀的更大影像。在其他實施例中,神經網路軟體伺服器1706並未重新組裝圖塊,並且在它們被計算出來就立即響應。在此些實施例的一些實施例中,影像重建是由製造軟體伺服器1704透過佈局編輯軟體1702的單獨客戶端請求(圖未示)來執行。
一旦矽晶圓形狀的重建光柵影像為可用的,就需要將其從光柵域轉換到幾何域,即需要將其轉換回適合在佈局編輯器中進行渲染的形式。在一些實施例中,此操作是由製造軟體伺服器1704響應於佈局編輯器客戶端1702的請求而執行的。此操作涉及檢查重建的光柵域影像中的各種像素值,以及產生包含輪廓的幾何資料庫,例如,藉由使用步進方陣演算法(Marching Square algorithm)。
需要對每一個感興趣的製程條件(例如,標程製程角、分別對應於外輪廓與內輪廓的最大角與最小角)執行前述的操作序列,並且還需要透過多圖案分解操作所產生的每一顏色光罩重複該前述的操作序列,其中該多圖案分解操作在一些實施例中是由佈局編輯器在使用者編輯之前或結合使用者編輯來執行。在一些實施例中,對於顏色光罩與感興趣之製程條件的每一組合,簡單地按順序重複該序列。舉例而言,當涉及如圖4所示的兩個顏色光罩,且有三個感興趣的輪廓(標稱、最大/外部、最小/內部)待確定時,則前述的序列需要重複六次。
如前所述,可在無背景範例中或已知背景之就地編輯範例中編輯設計。在就地編輯範例中,輪廓生成操作可擴展設計以包含零、部分或所有的周圍背景。在無背景範例中(例如,標準單元或記憶體位元單元的無背景、獨立編輯),輪廓生成操作可擴展設計以推斷背景。
舉例而言,在標準單元編輯場景中,推斷的背景可包含標準單元的複製物或其他標準單元以其各種合法的定向包圍被分析之單元的擺放。在記憶體位元單元場景中,推斷的背景可能包含編輯中之單元的其他複製物及/或虛擬單元的擺放,該虛擬單元通常以其各種合法的定向擺放在外圍。在蝕刻計算出來的輪廓之後可進行相應的操作,從而確定出編輯中之單元的最終輪廓。於此,編輯中之單元之每一實例的內輪廓與外輪廓(其因不同的推斷鄰域而改變)將被聚合以產生最終的內/外輪廓,其中最終的內/外輪廓除了製程變異之外,還將設計鄰域所引起的變異納入考量。然而,為了簡化討論,此些推斷背景步驟並未顯示於圖式之中。
為了進一步提升通量,一些實施例使用不同的架構,該架構中部署了多個製造軟體伺服器以及多個神經網路伺服器。此增加了同步性/平行性,並降低了整體處理「掛鐘」時間。圖18繪示了一個這樣的實施例,其中多個軟體伺服器同時執行,且其中一個專用於製程條件的每一組合。在此方法下,(1)第一神經網路伺服器可用於推斷「第一顏色光罩,標稱製程條件」組合的晶圓輪廓,(2)第二伺服器可用於「第二顏色光罩,標稱製程條件」組合,(3)第三伺服器可用於「第一顏色光罩,最大製程條件」組合,以此類推。
一些實施例使用和要評估之顏色光罩與製程條件對的獨特組合一樣多的神經網路軟體伺服器。每一神經網路軟體都分配有一專用的GPU。在一些實施例中,多個伺服器再次同步操作,且每一伺服器負責針對一個顏色光罩與製程條件組合來計算晶圓輪廓。在其他實施例中,伺服器的數量被減少以匹配於製程角條件的數量,使得每一神經網路軟體伺服器執行多個推斷循環,每一顏色光罩一個。在其他實施例中,神經網路軟體伺服器的數量匹配於顏色光罩的數量(在此示例中為兩個),其中每一個神經網路軟體伺服器負責執行多個推斷,每個感興趣的製程條件一個。
在一些實施例中,同步操作的多個製造軟體伺服器為每一顏色光罩與製程條件組合執行光柵化、圖塊化以及輪廓化操作。舉例而言,在一些實施例中,(1)第一製造軟體伺服器用於第一顏色光罩與標稱製程條件組合的光柵化圖塊化以及輪廓化操作,(2)第二製造軟體伺服器用於第二顏色光罩與標稱製程條件組合,(3)第三製造軟體伺服器用於第一顏色光罩與最大製程條件組合,以此類推。
在一些實施例中,製造軟體伺服器的數量和要評估的顏色光罩與製程條件對的獨特組合一樣多。在一些實施例中的伺服器同步操作,且每一伺服器負責針對一個顏色光罩與製程條件組合的光柵化、圖塊化以及輪廓化操作。在其他實施例中,伺服器的數量被減少以匹配於製程角條件的數量,使得每一製造軟體伺服器執行多個光柵化、圖塊化以及輪廓化操作,其中每一顏色光罩一個。在其他實施例中,製造軟體伺服器的數量匹配於顏色光罩的數量(例如,兩個),其中每一個製造軟體伺服器負責執行多個光柵化、圖塊化以及輪廓化操作,每個感興趣的製程條件一個。
圖19繪示了一個佈局編輯伺服器和多個製造軟體製程伺服器以及單一神經網路軟體伺服器一起操作的實施例。本實施例中的單一神經網路伺服器依序地為每一顏色光罩與製程條件組合產生輸出。
圖20繪示了一個佈局編輯伺服器和一個製造軟體製程伺服器以及多個神經網路軟體伺服器一起操作的另一實施例。單一製造軟體製程伺服器連續地執行該多個光柵化、圖塊化以及輪廓化操作,每一顏色光罩與感興趣之製程條件組合一個。在此示例中,每一神經網路軟體製程針對一個顏色光罩與製程條件執行推斷操作,其中不同的神經網路軟體製程針對不同的顏色光罩與製程條件同步執行不同的推斷操作。
圖21繪示了一個佈局編輯伺服器和多個製造軟體製程伺服器以及一個神經網路製程伺服器一起操作的另一實施例,其中神經網路同時產生不是一個而是多個輸出,其中每一感興趣之製程條件一個。此模型也用在使用多個神經網路製程伺服器的一些實施例中,其中各神經網路同時產生不是一個而是多個輸出,每一感興趣之製程條件一個。在此些實施例以及圖21的實施例中,每一神經網路軟體都分配有一專用的GPU,因為可以高度利用GPU裝置的極端同步性來提供非常快的推斷時間,例如,基本上與單輸出案例相同的時間量。
圖22A繪示了執行一次產生多個輸出之單一神經網路的神經網路軟體伺服器,其中每一輸出對應於不同的感興趣製程條件。於此,神經網路已被訓練來計算內(最小)輪廓、標稱輪廓以及外(最大)輪廓,即,內輪廓與外輪廓是相對於整個製程極端。在給定代表特定層/顏色光罩組合之光柵化布局設計的單通道輸入影像之下,此些輪廓是由神經網路根據三通道輸出影像所產生的。
在一實施例中,如關於圖11H的討論所述,可以訓練網路產生對應於統計限制,例如1-sigma、2-sigma或3-sigma製程限制值的影像。於此,從由網路產生之影像導出的內/外輪廓線在對應於相應的sigma值。圖22B繪示了允許使用者去選擇要使用之模型的圖形化使用者介面2220。當選擇了「製程極端」選擇鈕2222時,最小/最大值將對應於製程極端。然而,當選擇了「統計限制」選擇鈕2224時,使用者可在表現出要反映多少製程變異(根據N-signa限制值)的可用模型中進行選擇。
圖23至圖28繪示了根據本發明之一些實施例所實施的交互式設計的更詳細示例。此些影像中所示的輪廓將相對於製程極端,並且本技術領域中具有通常知識者將能理解對應於各種N-sigma限制值的不同輪廓可透過不是圖22B的使用者介面來配置。在此示例中,如圖23所示之佈局編輯器顯示器中所示,在匯流排從上至下橫移時,64位元匯流排2300向左移動一個繞線網隔。圖24顯示了佈局編輯器中所顯示之初始設計的左上部分的特寫。此圖式還繪示了多個標尺2405,繪製的標尺2405顯示了遵循40奈米最小寬度與最小間距規則的設計。它還顯示了具有表示不同顏色光罩之交替對角線點畫方向(例如,由上而下左到右或由上而下右到左)的兩個顏色光罩(例如紫色和青色)。
在此示例中,設計者想要壓縮繞線之間的空間,同時保持繞線軌道本身的寬度。在圖23中,設計者選擇虛線圈起的輪廓UI按鈕550以指示佈局編輯器根據製程變異計算製造晶圓輪廓。作為響應,佈局編輯器與一或多個製造軟體伺服器以及一或多個神經網路軟體伺服器一起工作以計算此些輪廓,然後如圖25所示,向設計者呈現預期匯流排2500之設計輪廓的高空(縮小)視圖,因為它是在製程變異下製造的。圖26隨後顯示了在設計者執行縮放操作以查看顯示了預期匯流排2500之最小輪廓、標稱輪廓以及最大輪廓的三組生成輪廓之後,該匯流排的左上角。
在查看圖25與圖26的設計時,使用者確定製造輪廓已充分地表示出來,並確定可透過擠壓繞線形狀之間的一些空間、「超越」受限的設計規則來實現設計區域中的一些額外減縮。特別地,繞線在水平(X)維度與垂直(Y)維度上皆可移動的更靠近彼此。舉例而言,如圖27所示,設計者可移動繞線,使得繞線之間的水平間距從40奈米縮減至38奈米,且對角線間距從52奈米有效地縮減至48奈米。此可以透過垂直地移動形狀並裁減頂部使他們全部水平對齊來實現。新的尺寸由此圖式中的標尺2705與2710來繪示。
在執行了一系列編輯以獲得圖27中所示的設計間距之後,使用者可藉由再次選擇虛線圈起的輪廓按鈕550來指示佈局編輯器啟動一系列的操作(例如前方參閱圖12-22所述的那些)以產生在壓縮設計中之匯流排線之不同的預期製造輪廓,而快速地確定此縮小設計的製造矽輪廓是否可被接受。
所產生的輪廓很快地出現。圖28繪示了壓縮設計2800之左上角的此些輪廓線。設計者已縮放到此位置以檢查幾個感興趣之位置處之外輪廓之間的間距。此間距由標尺2805指示,該標尺2805在一些實施例中是自動顯示的標尺,在其他實施例中是使用者選擇的標尺,並且在另一些實施例中是自動顯示的標尺以及使用者選擇的標尺。
使用者可繼續壓縮設計、超越設計規則,直到相應擺放的標尺指示出了線盡可能靠近但在外輪廓之間仍具有足夠的空間,其以產量角度來看是合宜的。使用者也可例如在確定輪廓於水平和對角線方向上都是等距時終止編輯循環。此處未顯示出其他可用於確定等距目的的工具與標尺。
一些實施例的交互式佈局編輯器包含在X與Y方向上移動繞線的交互式壓縮工具,其壓縮(或擴展)繞線之間的水平與垂直空間,其中使用者指定的deltaX與deltaY空間減縮值以負值擴展空間。在每次壓縮/擴展操作之後,此工具可在必要時在垂直方向上裁減所生成的線以維持原始的對齊。
圖29繪示了在一些實施例中之交互式壓縮工具的圖形化使用者介面2900。如圖所示,使用者介面具有(1)允許使用者指定X方向與Y方向上之空間減縮量(以奈米為單位)的一組尺寸控件2905,(2)允許使用者執行壓縮操作的壓縮按鈕2910,以及(3)指示佈局編輯器計算交互式壓縮操作所產生之輪廓並顯示疊加在佈局上之此些輪廓的自動輪廓核取方塊2915。
透過這個工具,佈局編輯器不僅根據使用者所指定的X值與Y值在X方向與Y方向上將形狀移動必要的量以壓縮/擴展空間,佈局編輯器還裁減或擴展線,使得它們在垂直方向上盡可能短或盡可能長,同時仍能相符對角線凸部(diagonal jogs)。當勾選了自動輪廓核取方塊(如圖29所示)時,壓縮操作還會快速地確定交互式壓縮操作產生的輪廓,並且顯示出疊加在佈局上的輪廓。由於隨著製程變異的製造晶圓輪廓可在幾秒內確定並顯示,即使對於給定尺寸與複雜性的設計,快速顯示在當今是可能的。
圖30繪示了當使用者透過使用者介面2900請求交互式壓縮操作時佈局編輯器執行的製程3000。如圖所示,製程3000執行三個操作的一或多次迭代,其中該三個操作是壓縮(在步驟3005)設計、產生(在步驟3010)矽輪廓的可視化,然後確定(在步驟3015)設計是否應該被壓縮得更多。當製程確定(在步驟3015)設計不應該被壓縮得更多時,製程確定(在步驟3020)設計是否過度壓縮。如果是,製程反轉一或多個先前的壓縮,並且選擇其透過步驟3005-3015之先前迭代中所識別之多個壓縮方案的一個。如果不是,則製程選擇(在步驟3025)其最後識別的壓縮方案然後結束。
圖31繪示了在多次使用圖29的交互式壓縮工具之後,對產生的輪廓進行多次檢查後所得到之壓縮的匯流排繞線設計3100。有了此設計,佈局編輯器顯示了多個標尺3105以對比壓縮設計與原始設計2300的尺寸。
圖32繪示了具有用於最終的壓縮設計之預期輪廓的預期製造設計3200。所顯示的輪廓是沿著數個製程變異來定義的。如圖所示,與原始未壓縮的設計相比,已經減少了大量的設計面積(大約23%)。圖33繪示了設計3200之左上角的放大視圖3300。如圖所示,一些量測結果顯示了最終壓縮形狀之外輪廓之間的減縮空間。此外,如圖所示,形狀之間沒有顯著的明顯橋接,即使在此間距等級下,形狀也沒有明顯的收縮(窄化)。
在一些實施例中,使用者可交互地壓縮設計並且可視化生成的輪廓、量測輪廓等,並且指示交互式佈局編輯器重複圖30的製程3000,直到做出了設計被過度壓縮的決定。此時,可重新擴展設計(例如,藉由為X與Y空間減縮值指定負值,並最後一次單擊「壓縮」按鈕)。或者,可以使用「復原」編輯操作以達到相同的目標,從而使設計盡可能緊湊。
一些實施例提供利用多目標優化器壓縮設計的自動壓縮工具。在此些實施例的一些中,優化器的目標包含(1)最小化設計面積,以及(2)最小化DRC違規。一些實施例的自動壓縮器在不引入DRC違規下最小化設計面積。結合地或可替代地,一些實施例的自動壓縮器在優化或受到寄生效應、因影響電路互連延遲之最顯著的電阻與電容的約束之同時,最小化了曲線的製造矽形狀之間的可製造性違規。
對於前述之匯流排繞線示例,自動壓縮器的優化器在一些實施例中是用以搜尋設計空間,以識別在不引入曲線可製造性問題下之壓縮設計最佳的X值與Y值。一些實施例的優化器嘗試最小化成本函數,其在可用的搜索空間中(在一些實施例中,此透過一組約束來定義的)變動輸入變數(此實施例中的X與Y空間減縮值),直到最小化成本函數值。在一些實施例中,成本函數是壓縮設計的面積以及與壓縮設計之曲線可製造性清潔度相關之值的組合。
在一些實施例中的可製造性清潔度以DRC清潔度來表示,或者是指示製造輪廓與其統計變異之模擬的或仿真的曲線輪廓的曲線DRC,或者是指示可製造性較高之設計超過可製造性較低之設計的任何測量。在一些實施例中,可製造性清潔度值是曲線DRC標記多邊形之面積的函數,使得組合的曲線DRC錯誤的面積越大,成本就越高。另一方面,可製造性清潔度值在一些實施例中是曲線DRC標記多邊形之數量的函數。在其他實施例中,DRC清潔度值是曲線DRC標記多邊形的數量以及組合面積的函數。曲線DRC標記多邊形在一些實施例中是對應於製造矽形狀之曲線多邊形之邊緣的函數,而非作為所繪製之佈局之邊緣的函數(DRC的傳統情況)。在本文中,DRC清潔度是曲線的製造設計輪廓之清潔程度的量測。此些函數可為線性的、平方的或任何其他函數。輪廓越不乾淨(即,曲線DRC違規量越大),增添到成本函數的懲罰就越高。
圖34繪示了將由一些實施例之佈局編輯器的自動壓縮工具進行自動壓縮的設計3400。標尺3405提供了此設計之Y維度的指示。在此示例中,使用了略微不同的製程,並且此導致了與之前看到略有不同的輪廓。對應於原始設計的製造輪廓如圖35所示。在此圖式中繪示了少量的標尺3505,以提供在一些感興趣位置之外輪廓之間的間距的比例指示。
圖36繪示了透過在X方向和Y方向上移除多邊形之間的6奈米空間來天真地嘗試手動壓縮設計而產生的壓縮設計3600。如圖所示,當將壓縮設計之右下角位置與最初擺放在原始未壓縮設計旁邊的標尺3405相比時,設計確實已被壓縮了一定量。
圖37繪示了和圖36的天真壓縮設計3600相似的壓縮設計3700,但更繪示了具有在設計3600中之曲線DRC違規的預期製造矽輪廓。輪廓與違規在一些實施例中是以不同的顏色來顯示,例如紅色表示輪廓,而藍色表示違規。在圖37中,黑白途中圈起來的多個著色位置(例如,藍色位置)標識了DRC違規。在此示例中,曲線DRC規則檢查包含25奈米的曲線最小間距檢查。製造矽輪廓之間觀察到的任何小於此數值的間距都被標記成違規。圖式中指示出了大量的曲線DRC違規多邊形。
圖38繪示了圖37之壓縮設計3700的放大視圖。圖38中的視圖顯示了對應於圖37之設計3700之左上部分的輪廓3820以及DRC違規標記多邊形3825。標尺3805也被繪示出以顯示比例。違規標記多邊形更詳細地顯示了已識別違規。此些多邊形指示出了外輪廓邊緣彼此在25奈米內或更小的位置。其中一個標記3825a以顯示了23.3奈米(0.0233微米)間距的標尺來繪製。在一些實施例中,此標尺相應於設計者之進一步調查標記3825a的輸入而顯示,而在其他實施例中,它是由工具自動地顯示。在另一些實施例中,工具自動地顯示一些或全部的標尺,同時還允許設計者調用指定違規標記多邊形之尺寸的標尺之顯示。
一些實施例的目標是能夠盡可能地自動壓縮設計,同時最小化曲線DRC違規。為了達到此目標,一些實施例將黑盒優化製程與成本函數組合,該成本函數包含(1)壓縮設計的面積以及(2)曲線DRC標記違規多邊形的組合面積。舉例而言,此允許優化器去找到產生最小可能設計面積的壓縮方案,同時保持製造矽晶圓輪廓之間的空間大於設計規則最小值。
黑盒優化製程只需要成本函數評估函數,並且在某些情況下可選地需要描繪搜索空間的界線。此些製程在搜索參數空間中的各種試驗點上執行多個成本函數評估,以嘗試確定在多維度空間中之成本函數的整體形狀。結果通常與在最低成本點附近運行的本地優化器結合,以嘗試達到全局最小值。
一些實施例使用單純性同源全局優化(Simplicial Homology Global Optimisation,SHGO)演算法,其是一種有前途的、最近發布的全局優化(Global Optimization, GO)演算法,例如,https://stefan-endres.github.io/shgo/。與當前最先進的商業與開源優化軟體相比,該演算法的軟體實施已顯示出高度競爭力。其他實施例使用其它優化製程(例如,差分進化優化製程(differential evolution optimization process),例如,https://en.wikipedia.org/wiki/Differential_evolution)。
圖39繪示了用於一些實施例之自動壓縮工具的UI。透過此UI 3900,設計者可以設立搜索空間參數來搜尋用於自動壓縮優化的方案空間。X最小字段3902與X最大字段3904允許使用者指定X空間減縮參數的可能值範圍,而Y最小字段3906與Y最大字段3908允許使用者指定Y空間減縮參數的可能值範圍。自動壓縮按鈕3910允許使用者在佈局編輯器中編輯的當前設計上啟動優化器。
圖40繪示了一些實施例之自動壓縮器所執行的製程4000。如圖所示,製程4000識別(在步驟4005)使用者指定搜索空間邊界內的潛在壓縮方案。製程4000(在步驟4010)使用識別的壓縮方案以合適的量壓縮設計,然後使用神經網路來為所生成之壓縮設計產生製造晶圓輪廓。
在步驟4015,曲線DRC工具也在曲線晶圓輪廓形狀上運行以確定例如製造形狀之間的間距,並且在發現空間違反設計規則的地方產生標記多邊形。在一些實施例中,壓縮設計以及任何DRC標記多邊形的面積被組合在懲罰過度面積或DRC違規的成本函數中,並且該製程運行其優化子製程以最小化此成本函數值。
接續,在步驟4020,當製程4000在本次迭代中或先前迭代中已經找到滿意的方案,製程4000確定它是否應該終止。在不同的實施中,製程4000使用不同的基準來確定何時應停止其對方案空間的搜索。基準取決於製程4000所使用的優化子製程的類型。
製程4000在已找到滿意的方案時確定(在步驟4020)其應終止,製程4000結束。否則,當製程4000確定(在步驟4020)其不應終止其搜索時,製程返回步驟4005以識別另一潛在壓縮方案,然後為此方案重複其操作4010與4015。對於每一潛在方案,製程基於該方案產生壓縮、為此壓縮產生晶圓輪廓、應用曲線DRC規則並重新計算成本函數,以評估由已識別之壓縮方案所產生的壓縮。
在多次的這樣的迭代之後,優化器可為問題找到好的方案,即對應於低成本函數值的一組輸入參數值(在此特定實驗中的X與Y空間減縮值),其具有很少或沒有DRC違規。此時,製程確定(在步驟4020)其應該終止、選擇其最佳識別的方案作為滿意方案,然後結束。在一些實施例中,製程4000在達到指定的最大迭代次數或達到其他終止條件之後終止。在一些實施例中的製程4000執行100-200次迭代(其中因使用了已訓練的神經網路來產生製造晶圓輪廓值,故每次迭代僅需要幾秒鐘),並在10分鐘的量級內完成其設計的自動壓縮。
一些實施例中的自動壓縮工具具有額外的使用者介面控件以允許使用者去進一步配置優化器,例如,藉由指定評估點的最大數量或初始搜索網格的尺寸等。在一些實施例,此UI還為額外合適的優化器提供了一或多個介面,以及允許使用者從合適優化器列表之間進行選擇的一介面。
圖41繪示了由SHGO優化器自動壓縮圖34之設計一次所產生之對應於自動壓縮方案的製造矽輪廓,其具有成本函數的特定公式以及特定的初始搜索空間。如圖所示,此壓縮導致了單個DRC違規,該DRC違規是由單個小的DRC違規標記多邊形4120標識,該DRC違規標記多邊形4120是由與用以顯示輪廓之顏色(例如,紅色)不同的顏色(例如,藍色)來標識。為了說明圖41的黑白圖式,圓圈4110用以突顯DRC違規多邊形標記4120的位置。
圖42顯示了DRC違規標記多邊形4120的放大視圖。如圖所示,DRC多邊形具有如標尺4205所示的24.169107奈米的寬度。在優化器的成本函數中對DRC面積項應用更高的權重將消除此DRC違規。替代地,設計者透過手動調整操作或藉由為自動壓縮操作提供替代值來消除此違規。
圖43繪示了由SHGO優化器自動壓縮圖34之設計一次所產生之對應於另一自動壓縮方案的製造矽輪廓。這個其他方案被識別為具有不同的初始搜索空間(例如,X與Y空間壓縮值為X=2.64奈米,且Y=5.92奈米),並且具有零DRC錯誤。在此示例中,設計被成功壓縮,使得整體Y維度從4.62微米縮減至4.25微米,而X維度也相應地被壓縮(未顯示標尺)。此外,在此示例中,自動壓縮器並未產生任何DRC違規多邊形來識別任何25奈米曲線間距DRC錯誤。
在一些實施例中,啟用神經網路的交互式佈局編輯系統可用以手動地修復設計的良率限制部分(微影熱點)。製程從檢查已知或可疑熱點位置的輪廓開始。此後,迭代地修改設計,以及可視化並檢查生成的輪廓。許多潛在的候選編輯以及它們對製造設計輪廓造成的影響可以此方式來快速地評估。
圖44繪示了用於手動修復設計之良率限制部分的交互式編輯製程4400。如圖所示,設計者執行(在步驟4405)一編輯操作,即指示工具執行一編輯操作。此類操作的示例包含執行單元翻轉或移動,或透過修改(藉由單獨的多邊形編輯)設計的良率限制部分。製程4400(在步驟4410)基於設計者的輸入修改設計,並提供具有相關於設計之預期製造輪廓的生成設計的可視化。設計者(在步驟4415)校閱設計並確認是否需要對設計進行更多編輯。如果是,製程在設計執行另一設計時返回至步驟4405。否則,製程結束。
圖45至圖57繪示使用了啟用神經網路的交互式佈局編輯系統來手動修復良率限制部分的示例。圖45繪示了涉及為數位邏輯所擺放之一些標準單元的客製設計的一部份。在中央的加框區域4550顯示了相關於設計之良率限制部分的輪廓(其中內單元繞線已移除),如由已訓練的神經網路所確定的。在此示例中,為了清楚起見,已省略標稱輪廓,而僅顯示出內輪廓與外輪廓。
圖46繪示了設計4600本身的對應部分。加框區域4550對應於圖46中的區域4650。此區域4650是在兩個特定的對稱單元4605與4610的鄰接處,具有背對背「E」形多邊形。圖47繪示了在單元邊界處之問題區域4650的放大視圖,以便更詳細地顯示出問題區域。於此,我們可以看到單元邊界處的背對背「E」形多邊形彼此靠的太近。此種擺放可能因例如,顏色衝突而發生。
圖48繪示了由已訓練之神經網路快速確定的製造晶圓輪廓的對應特寫。在此圖式中,圈出了三個區域4805、4810與4815,其為神經網路確定之外部製造輪廓實際上正在橋接的地方。
可以選擇各種方法來修復此種熱點,此取決於用於創建原始佈局的工具與方法,以及所涉及之層與單元的性質等。當已使用例如擺放與繞線工具創建原始佈局時,可以指示工具逐步地重新繞線部分的設計。然而,此種方法可能會導致足夠劇烈的變化,從而改變了電路時序,因此只能作為最後的手段。即使對包含不良擺放之設計(例如,圖46中所示的設計)重新繞線,也可能無法修復主要取決於擺放的熱點。重新運行放置器(placer)也可能是解決圖45中所示之問題的一種方法,但將會再次導致需要重新繞線新的重新擺放設計,並且可能再次引起時序挑戰。
更局部化的熱點修復形式,例如單元翻轉與移動,或在交互式編輯器中對個別的多邊形所執行的外科變動,可以產生更好的方案,既修復熱點,又對時序及/或寄生參數進行最小的變動。一些實施例的交互式編輯工具被設計成支援此種局部化的修復方案。佈局設計者可執行手動/交互式局部化編輯以修復熱點。舉例而言,所執行的編輯可包含編輯違規單元及/或他們鄰居的實例,例如交互地將違規單元實例進一步分隔開、翻轉單元實例,或執行其他編輯(例如,與手動多邊形編輯組合的單元重新製作)。
在此些編輯之後,預期製造輪廓是由工具透過已訓練的神經網路來重新運行輪廓萃取所產生的,其使用例如,前方參考圖5與圖6所述之驗證工具窗的輪廓按鈕。負責修復熱點的工程師可能會逐步地增加,例如單元間距,並快速地重新運行輪廓萃取、繼續進行緊密編輯、可視化、編輯、可視化循環,直到神經網路確定的輪廓足夠遠以至於橋接不再是問題。
替代地,如圖49所示,設計者可插入來自單元庫一預定義間隔單元4905(例如,標準單元庫通常包含用於諸如此類目的的一或多個間隔單元)。於此,間隔單元是一個狹窄的單元,其除了井區與電源軌區之外什麼都沒有。此單元已被使用者插入到兩個違規單元實例之間,因而將兩個背對背「E」形多邊形向中心分開。
圖50繪示了編輯工具提供關於新輪廓的快速反饋,如其已訓練之神經網路所確定的。從可製造性的角度來看,多虧了間隔單元,兩個背對背「E」形多邊形朝向中心的輪廓線再表現得更好。圖51繪示了間隔單元的放大視圖,而圖52繪示了在間隔單元附近之神經網路確定的製造晶圓輪廓的放大視圖。顯然,因為相應設計形狀之間的大間距,在此場景下的外輪廓不再有機會短接在一起。
使用者交互地重做連接單元實例的內單元繞線,因而在移除熱點下重新建立完全連接。整個交互式熱點修復流程(如圖44中所示)於使用者交互式時幀中(數秒或更短的編輯與可視化週期)透過使用已訓練之神經網路進行輪廓預測以及參考圖17-21所描述的架構而再次被啟用,其中每一感興趣之製程條件一個以及它們隨附的描述,從而允許了對大同步性以及啟動開銷的攤還。
對於圖46的設計,設計者可能希望嘗試另一個熱點修復方案,該熱點修復方案是簡單地透過交互地翻轉兩個單元實例中的最右側,如圖53所示。於此,翻轉最右側單元實例意味著先前的兩個背對背「E」形狀現在分別被有效地替換成「E」形狀與「C」形狀(在最右單元實例4610的「E」形狀現在已經一路移動到圖式中的右側)。
圖54繪示了一些實施例中之編輯工具對生成之輪廓所提供的即時反饋。此反饋表明了像這樣對最右邊的單元實例進行簡單的單元翻轉可能足以解決問題,而不會引入任何額外空間。圖54中的箭頭標識了「E」形狀與「C」形狀之間的空間比圖45與圖48中背對背「E」形狀之間的空間更大。
圖55繪示了圖53之兩個單元實例之間之區域的特寫,而圖56則繪示了兩個單元實例之間之區域處的相應輪廓的特寫。圖56中的箭頭顯示了在最左邊單元的倒「E」形狀與最右邊單元的「C」形狀之間之外輪廓的明確分離。然而,由於最右邊單元已被翻轉,可以想像到的是一個新的熱點可能已被引入到它以及它右邊的鄰居之間。圖57顯示了如何透過縮小視圖來快速地檢查此點,以查看最右邊單元鄰居的多邊形。如圖57所示,單元邊界5705在此示例中沒有問題。
如前所述,不同實施例使用不同類型的機器訓練網路並且對此些網路進行不同的訓練。舉例而言,如前所述,在一些實施例中的機器訓練網路是神經網路。一些實施例透過使用具有已知輸出資料組的多個輸入資料組訓練神經網路的可配置參數(例如,權重值)來訓練神經網路去根據當前的實體設計佈局產生預期的實體設計佈局。在一些實施例中,輸入/輸出組是特定IC製程(例如,X奈米設計)之IC設計的部分,其中輸入部分為實體設計工具所產生之實體設計的部分,且輸出部分是為實體設計部分產生的相應晶圓模擬部分或電路部分。前方描述了此種方法的數個示例,例如,透過參考圖11H與圖11I。此種方法的另一個詳細示例將在下方參閱圖58來進行描述。
一些實施例讓機器訓練神經網路經歷了學習過程,該學習過程考量了(1)一或多個製造參數(例如,劑量與聚焦深度)的製造變異及/或(2)解釋鄰近於輸入組件圖案之不同可能組件的鄰域變異,該輸入組件圖案為用於學習過程之輸入的一部份。為了訓練神經網路,一些實施例透過神經網路饋送每個已知輸入以產生預期輸出,然後比較預期輸出與輸入的已知輸入以識別一組一或多個錯誤值。已知輸入/輸出的一組錯誤值隨後可用以計算一損失函數,隨後該損失函數透過神經網路反向傳播以訓練神經網路的可配置參數(例如,權重值)。一旦透過處理大量已知輸入/輸出來進行了訓練,神經網路隨後可用於促進壓縮操作,例如,根據參考前述實施例所描述的任何前述操作。
圖58繪示了一些實施例用來產生訓練資料以訓練一或多個神經網路產生用於IC設計或IC設計之一部分之輸入形狀之多輪廓輸出形狀的製程5800。訓練資料包含已知輸入IC設計部分以及由製程5800所產生之模擬的輸出IC設計部分。此製程因模擬該製程而被稱為數位分身製程,並且產生實際製造晶圓形狀之數位分身的預期製造晶圓形狀。
由於製程5800需要產生一或多個預期輸出圖案,製程5800開頭選擇(在步驟5805)積體電路之樣本實體設計的一部份來作為輸入圖案。在一些實施例中,製程5800使用其在步驟5805所萃取之樣本輸入圖案中的多個不同樣本實體設計。所萃取之輸入圖案是先前定義的實體設計的一部份,其可能用於或未用於在基板(例如,矽晶圓)上製造IC。此圖案可包含電路組件(例如,邏輯閘、電晶體、金屬層以及需要在IC的實體設計中找到的其他項目)的可製造形狀。實體設計可為直線的、分段線性的、部分曲線的或完全曲線的。曲線圖案(每一個具有至少一曲線段)的計算是極其密集的,因此能夠藉由計算來自多個製造階段之變異的累積效應來優化圖案,而此對於曲線圖案來說是非常有價值的。
在步驟5810,如果適用於所選之實體設計輸入圖案,製程5800產生鄰近於在步驟5805中所選之實體設計輸入圖案的多個可能鄰近圖案。在一些實施例中,於步驟5810中所選之實體設計圖案可用於一或多個後續之IC設計,並且以此些後續之IC設計中的不同鄰近圖案來結束。一些實施例透過使用列舉數個可能方案之蒙特卡羅技術來合成鄰域變異。
在一些實施例中,於步驟5810中所選之實體設計圖案以及其每一合成的鄰域變異代表了製程5800的不同輸入,該製程5800機器訓練網路的訓練製程(也稱為學習過程)產生不同輸出。在其他實施例中,所選之實體設計入只是一個輸入資料,並且其鄰域變異僅用於在製程5800的後續模擬操作期間中識別輪廓變異。
識別此種鄰域變異的一個有用例子是當輸入圖案是標準單元設計的一部分時,該標準單元設計可隨機擺放在它可能最終進入的任何可能鄰域中,即在後續電路設計中被可能包圍其的各種鄰近單元所包圍。在一些實施例中,實體設計圖案的所選部分是實體設計圖案的一實例,並且生成的附近圖案包含此實例的可能鄰域。因此,感興趣單元的實例在其各種合法定向上將與各種定向的各種鄰近單元並排擺放,其中那些不同的鄰域擺放在上方/下方、左側或右側,並在擺放上具有不同的偏移量。在一些實施例中,所選的輸入圖案是包含數個標準單元之標準單元設計的整個設計,並且可能鄰域包含標準單元的所有合法定向。
在步驟5815,製程執行將輸入圖案(例如,在步驟5805選擇的圖案或在步驟5810為所選之圖案產生的圖案)分成多個光罩層的著色操作。在著色操作中,標線層上之輸入圖案的每一個特徵都被著色以反映特徵到特定光罩層的分配。在著色操作之後,製程5800執行(在步驟5820)一光學鄰近校正(optical proximity correction,OPC)操作以產生一或多組可能的光罩設計,其中每一組光罩設計對應於步驟5805中所選的輸入圖案或步驟5810中所產生的鄰域。
對於所選的輸入圖案,一些實施例中之生成的光罩設計包含具有變異的標稱光罩設計。在一些實施例中,於步驟5820產生的多個可能光罩設計可被結合以創建具有變異的標稱光罩設計。通常,可以使用標稱劑量,例如1.0,並在閾值,例如0.5處計算光罩設計的標稱輪廓來確認標稱光罩設計。在一些實施例中,光罩設計的標稱輪廓是根據數個可能光罩設計計算的。可以為步驟5810所產生的所有可能鄰域計算變異。
在一些實施例中,OPC操作包含反向微影技術(Inverse Lithography Technology,ILT)操作。ILT操作在一些實施例中創建理想的曲線ILT圖案,而在其他實施例中,ILT操作將曲線圖案直線化。同一實體設計圖案的OPC特徵或ILT圖案將隨鄰域而變。一些實施例是根據諸多可能鄰域中之每一者的多個可能光罩設計計算多組可能的光罩影像。在一些實施例中,標稱光罩設計是根據諸多可能鄰域中所計算之OPC特徵或ILT圖案來計算的。
製程5800執行(在步驟5825)光罩模擬操作以產生光罩資料準備(mask data preparation,MDP),其為光罩寫入機準備光罩設計。此操作在一些實施例中包含將資料「破碎化」成梯形、矩形或三角形。此操作在一些實施例中還包含光罩處理校正(Mask Process Correction,MPC),其在幾何上修改形狀及/或指派劑量給形狀以使得在光罩上的所得形狀更接近於期望形狀。MDP可使用可能光罩設計或MPC的結果來作為輸入。MPC可作為破碎化或其他MDP操作的一部份來執行。其他校正也可作為破碎化或其他MDP操作之一部分來執行,可能的校正包含:前向散射、阻劑擴散、庫倫效應、蝕刻、反向散射、霧化、加載、阻劑充電以及EUV中程散射。也可以在光罩模擬操作期間中應用像素級劑量校正(pixel-level dose correction,PLDC)在其他實施例中,可變形光束(variable shaped beam,VSB)射束表或多重射束的曝光資訊可被產生以從可能光罩設計產生多個可能光罩影像。在一些實施例中,為複數所計算之光罩圖案中之計算光罩圖案產生一組VSB射束。在一些實施例中,MPC及/或MDP可在可能光罩設計上執行。
在一些實施例中,光罩模擬操作透過使用帶電粒子束模擬來計算多個可能光罩影像。可被模擬的效應包含前向散射、反向散射、阻劑擴散、庫倫效應、霧化、加載以及阻劑充電。光罩模擬在一些實施例中還包含計算各種後曝光製程之影響的光罩製程模擬。此些後曝光製程可包含阻劑烘烤、阻劑顯影與蝕刻。當對任何給定層上之光罩執行帶電粒子束模擬時,可在一系列的製程變異上執行該模擬以建立光罩本身的可製造性輪廓。輪廓可延伸自標稱輪廓,其中標稱輪廓可基於在特定阻劑閥值,例如在0.5的閥值處所產生的圖案。在一些實施例中,計算曝光劑量中的給定百分比差異,例如+/-10%劑量變異,創建了用於在視埠中顯示之具變異的光罩影像。此些變異包含圍繞標稱輪廓之製程變異帶的上限與下限。在一些實施例中,正變異與負變異可彼此不同,例如+10%與-8%。帶電粒子束模擬與光罩製程模擬可彼此分開執行。
在光罩模擬之後,製程5800執行(在步驟5830)晶圓模擬操作,該晶圓模擬操作計算使用生成之光罩將產生的可能IC圖案。對於在步驟5805選擇的輸入圖案,生成的IC圖案代表了輸出圖案或一系列的輸出圖案(當生成的形狀具有多個輪廓以考量製程變異與製造參數變異)。所選的輸入圖案與生成的輸出圖案代表了用以訓練一些實施例中之機器訓練神經網路的已知輸入與已知輸出。一旦經過訓練,神經網路隨後可在壓縮期間中使用,以按照前述方式來協助壓縮操作。
在一些實施例中,晶圓模擬操作(在步驟5830)包含使用計算光罩影像的微影模擬。在步驟5830的操作跟具複數光罩影像計算基板上的多個可能圖案。在一些實施例中,基板上的每個圖案對應到一組製程變異參數。在標題為「使用帶電粒子束微影形成圖案的方法與系統」的美國專利第8,719,739號中描述了從計算的光罩影像計算圖案,其透過引用併入本文。
IC上的可能圖案可被組合以創建具有變異的標稱IC圖案。在一些實施例中,IC圖案變異的來源將包含曝光(劑量)中之一些給定變異與聚焦深度中之一些給定變異的組合,例如在曝光中+/-10%,且在聚焦深度中+/-30奈米。在一些實施例中,正變異與與負變異可彼此不同,+5%/-7%以及30奈米/-28奈米。通常,統計方法用以根據標稱輪廓創建3-sigma變異。該變異包含比最小的標稱輪廓小3-sigma的下限以及比最大的標稱輪廓大3-sigma的上限。一些實施例藉由組合包含具有上限與下限之製程變異帶的多個光罩影像來創建具有變異的光罩影像,而不是計算從標稱輪廓延伸的3-sigma變異。
在一些實施例中,可以利用使用具變異之光罩影像的光學微影製程將圖案形成在晶圓上。晶圓模擬在一些實施例中包含圖案上的晶圓製程模擬。晶圓製程模擬在一些實施例中包含阻劑烘烤、阻劑顯影與蝕刻的模擬。製程5800在一些實施例中執行將為影模擬與晶圓製程模擬作為單獨的步驟來執行,可選地,其中每個步驟考量了製程變異。
在一些實施例中,製程5800將以統計累積的方式將不同操作的變異納入考量,使得該製程在後續操作中考量來自先前操作的變異。以此方式,後續操作中的圖案將不僅結合了確定基板上之可能圖案的變異,也結合了光罩製程與光罩設計中的變異。
在晶圓模擬之後,製程5800在一些實施例中根據晶圓模擬所產生之可能圖案計算製程變異帶。為了更有效地計算許多可能的變異組合,可以藉由使用對某些變異與圖案參數如何相互影響的見解來累積變異。舉例而言,輸入到下一步驟的最差情況變異可將一圖案至另一圖案的距離納入考量,而不是簡單地將一步驟的最小3-sigma值與最大3-sigma值反饋至下一個步驟。這是因為彼此相距較近的特徵比相距較遠的特徵的相互影響更大。由於此些變異對設計性能與製造可靠度的影響,可能需要讓設計者在實際電路設計之背景下可視化出不同變異的影響。預期在基板上之統計累積變異之影響的可視化可在計算變異帶之後或藉由可視化每一步驟中之不同變異的影響來顯示出。
在步驟5835,製程確認它是否已經產生足夠量的已知輸入與輸出圖案。如果不是,製程返回步驟5805以從先前定義的實體設計中選擇另一輸入圖案,然後重複其操作5810-5830以產生此輸入圖案的模擬輸出圖案。如前所述,所選的輸入圖案及其相應生成的輸出圖案代表了具已知輸出的已知輸入,其用以訓練一些實施例中的機器訓練神經網路。
藉由從多個計算光罩影像計算多個晶圓模擬圖案來計算待製造於基板上的圖案可花費大量時間,其中該些計算光罩影像是從多個光罩設計算來的。因此,一些實施例使用圖58的製程5800來產生多組已知輸入/輸出圖案,然後使用此些已知輸入/輸出圖案(在步驟5840)來訓練神經網路,使得此神經網路之後可用以從壓縮操作期間中被檢查的輸入圖案快速產生預期輸出圖案。
為了訓練神經網路,一些實施例透過神經網路饋送每一已知輸入以產生預期輸出,然後比較預期輸出與輸入的已知輸入以識別一組一或多個錯誤值。已知輸入/輸出的一組錯誤值隨後可用以計算一損失函數,隨後該損失函數透過神經網路反向傳播以訓練神經網路的可配置參數(例如,權重值)。一旦透過處理大量已知輸入/輸出來進行了訓練,神經網路隨後可用於促進壓縮操作。
在一些實施例中,壓縮工具執行它們的一些或全部操作,並且是在像素域而不是輪廓域中定義它們的設計。這是因為像素式設計適合給機器訓練網路來進行分析,因為此些網路通常經過優化以處理像素式資料組而不是輪廓式描述。像素式設計也使得設計中之曲線形狀的表示與處理更加容易。因此,透過在像素域而不是在輪廓域中表示壓縮操作的結果,一些實施例使得壓縮工具更容易使用機器訓練網路並快速地處理設計中的曲線形狀。
同樣地,為了便於創建它們的光罩,一些實施例使用像素域來執產生它們的光罩所需的處理,因為曲線使得像素域中的操縱與任何曼哈頓設計所費的時間量相同。此外,此處理通常在像素域中的GPU上執行。由於GPU是在像素域中表現出色的單指令多資料(SIMD)機器,GPU強大的處理能力適合此類的像素操作,因為單指令流可均勻地應用於大量的像素。可以依靠SIMD架構產生更高的計算通量來處理具有曲線形狀的實體設計與光罩。
輪廓(也稱為幾何圖形)通常被表示成分段的線性多邊形,但有時用像是樣條(splines)的無窮解析度曲線格式。在給定解析度限制之下,操縱輪廓是操縱像素資料的數學對偶。數學對偶是指,在功能上,可在一個中完成的任何東西都可在另一個中完成。然而,於考量運行時間性能或效率時,在給定一結果的特定精確度作為目標之下,一個的計算形為可能與另一個完全不同。
一般來說,在輪廓域(即,幾何域)中操作大部分是大矩形的形狀會很快,而在像素域中操作大部分是多邊形或具高頂點密度之曲線的形狀會更快。在像素域中,像素大小當然是從解析度限制來定義的。一旦定義了像素大小,處理的形狀是曲線或直線的都無關緊要。兩個計算方式都是固定的時間。在輪廓式操作中,情並非如此,因為計算時間取決於用以表示輪廓之分段線性的邊數。此外,鑑於處理此些資料的大部分資料是由高功率的GPU執行,像素式分析因GPU是在像素域中表現出色的SIMD機器而優於輪廓式分析。
許多前述特徵與應用被實施成軟體製程,該些軟體製程被指定成記錄在電腦可讀取儲存媒體(也稱為電腦可讀取媒體)上的一組指令。當此些指令由一或多個處理單元(例如,一或多個處理器、處理器核心或其他處理單元)執行時,此些指令致使處理單元執行指令中所指示的動作。電腦可讀取媒體的示例包含但不限於光碟片(CD-ROMs)、快閃記憶體、RAM晶片、硬體、可抹除可程式唯讀記憶體(EPROMs)等。電腦可讀取媒體不包含無線傳遞或透過有線連接傳遞的載波與電子訊號。
在本說明書中,術語「軟體」是指包含駐留在唯讀記憶體中的韌體或儲存在磁性儲存器中的應用程式,其可被讀入到記憶體中以由處理器處理。此外,在一些實施例中,多個軟體發明可被實施成較大程式的子部分,同時保留特殊的軟體發明。在一些實施例中,多個軟體發明也可被實施成單獨的程式。最後,共同實施描述於本文中之軟體發明的單獨程式的任何組合都在本發明的範疇內。在一些實施例中,當軟體程式被安裝以在一或多個電子系統上運行時,定義運行並執行軟體程式之操作的一或多個特定機器實施態樣。
圖59概念性地繪示了實施本發明之一些實施例的電子系統5900。電子系統5900可為電腦(例如,桌上型電腦、個人電腦、平板電腦、伺服器電腦、大型電腦、刀鋒電腦等)、電話、PDA或任何其他種類的電子裝置。如圖所示,電子系統包含各種類型的電腦可讀取媒體以及用於其他類型之電腦可讀取媒體的介面。具體而言,電子系統5900包含匯流排5905、處理單元5910、系統記憶體5925、唯讀記憶體5930、永久儲存裝置5935、輸入裝置5940以及輸出裝置5945。
匯流排5905共同代表通訊地連接到電子系統5900之眾多內部裝置的系統匯流排、周邊匯流排與晶片組匯流排。舉例而言,匯流排5905通訊地連接到處理單元5910與唯讀記憶體5930、系統記憶體5925以及永久儲存裝置5935。從此些不同的記憶體單元中,處理單元5910擷取要執行的指令以及要處理的資料以執行本發明的程序。處理單元在不同的實施例中可以是單個處理器或多核心處理器。
ROM 5930儲存處理單元5910與電子系統之其他模組所需的靜態資料與指令。另一方面,永久儲存裝置5935是讀寫記憶體裝置。此裝置是非揮發性記憶體,即使電子系統5900關機時也能儲存指令與資料。本發明之一些實施例使用大量儲存裝置(例如,磁碟或光碟及其相應的磁碟驅動器)作為永久儲存裝置5935。
其他實施例使用可移除儲存裝置(例如,軟性磁碟、快閃記憶體等)作為永久儲存裝置。與永久儲存裝置5935一樣,系統記憶體5925是讀寫記憶體裝置。然而,與永久儲存裝置5935不同的是,系統記憶體是揮發性讀寫記憶體裝置,例如隨機存取記憶體。系統記憶體儲存處理器在運行時需要的一些指令與資料。在一些實施例中,本發明的製程是儲存在系統記憶體5925、永久儲存裝置5935及/或唯讀記憶體5930之中。從此些不同的記憶體單元中,處理單元5910擷取要執行的指令以及要處理的資料以執行一些實施例的程序。
匯流排5905還連接輸入裝置5940與輸出裝置5945。輸入裝置使使用者能夠向電子系統傳送訊息和選擇命令。輸入裝置5940包含文數鍵盤以及指標裝置(也稱為「游標控制裝置」)。輸出裝置5945顯示由電子系統產生的影像。輸出裝置包含印表機裝置與顯示裝置,例如陰極射線管(cathode ray tubes,CRT)或液晶顯示器(liquid crystal display,LCD)。一些實施例包含同時作為輸入與輸出裝置的裝置,例如觸控螢幕。
最後,如圖59所示,匯流排5905還透過網路轉接器(圖未示)將電子系統5900耦接至網路5965。以此種方式,電腦可以是電腦之網路的一部分(例如,區域網路(local area network,LAN)、廣域網路(wide area network,WAN)),或內網,或網路的網路,例如互聯網。電子系統5900的任何或所有組件可以與本發明結合使用。
一些實施例包含電子組件,例如微處理器、將電腦程式指令儲存在機器可讀取或電腦可讀取媒體(或者可稱為電腦可讀取儲存媒體、機器可讀取媒體,或機器可讀取儲存媒體)中的儲存器與記憶體。此種電腦可讀取媒體的一些示例包含RAM、ROM、唯獨光碟(read-only compact disc,CD-ROM)、可燒錄光碟(recordable compact disc,CD-R)、可讀寫光碟(rewritable compact disc,CD-RW)、唯讀數位通用光碟(read-only digital versatile disc)(例如,DVD-ROM,雙層DVD-ROM)、各種可記錄/可讀寫DVD(例如DVD RAM、DVD-RW、DVD+RW等)、快閃記憶體(如SD卡、迷你SD卡,微SD卡等)、磁性和/或固態硬碟、唯讀和可燒錄藍光®(Blu-Ray®)盤、超高密度光碟和其他任何光學介質或磁介質,以及軟性磁碟。電腦可讀取媒體可以儲存由至少一個處理單元執行的電腦程式,並且包括用於執行各種操作的指令集。電腦程式或電腦碼的示例包括機器碼,例如由編譯器產生的機器碼,以及包含由電腦、電子組件或使用譯碼器(interpreter)的微處理器所執行之高級碼的檔案。
當以上討論主要是指執行軟體的微處理器或多核處理器時,一些實施例是由一個或多個積體電路執行,例如特定應用積體電路(application specific integrated circuit,ASIC)或現場可程式設計閘陣列(field programmable gate array,FPGA)。在一些實施例中,這種積體電路執行存儲在該電路自身上的指令。
如本說明書所使用,術語“電腦”、“伺服器”、“處理器”和“記憶體”均指電子裝置或其他技術裝置。這些術語不包括人或群體。為了本說明書的目的,術語顯示或展示是指在電子裝置上進行顯示。如本說明書所使用,術語“電腦可讀取介質”、“電腦可讀取媒體”和“機器可讀取介質”完全局限於有形的、實體的物體,其以電腦可讀取的形式儲存資訊。這些術語不包括任何無線訊號、有線下載訊號和其他任何短暫或暫時的訊號。
在結合許多具體細節的情況下描述了本發明時,本技術領域中具有通常知識者將認識到,本發明可以以其他具體形式來實施,而不脫離本發明的精神。例如,許多圖式概念性地繪示了製程。這些製程的具體操作可以不以所示以及所描述的確切順序來執行。這些具體操作可不在一個連續的操作系列中執行,並且不同的具體操作可以在不同的實施例中執行。此外,該製程可使用多個子製程,或作為更大巨集製程的部分來實施。因此,本技術領域中具有通常知識者將能理解的是,本發明不受前述說明性細節的限制,而是由所附之申請專利範圍加以界定。
100:使用者介面
200:製程
205:步驟
210:步驟
215:步驟
302:單元(設計)
305:E型繞線
310:F型繞線
315:電源軌
405:紅色光罩組件
410:藍色光罩組件
500:驗證工具
520:顏色光罩
550:UI控件
602:設計
605:標尺
610:標尺
805:標尺
810:箭頭
905:標尺
910:標尺
1002-1008:圓圈區域
1100:神經網路
1102:U-Net模型架構
1104:陰影框
1106:白框
1108:網路
1110:輸出
1112:影像
1114:影像
1116:影像
1120:製程
1122:步驟
1124:步驟
1126:步驟
1128:步驟
1140:製程
1200:製程
1202:計算操作
1204:呈現操作
1300:製程
1302:偏置操作
1304:計算操作
1306:向下蝕刻輪廓操作
1400:神經網路
1500:製程
1505:步驟
1515:步驟
1520:步驟
1525:步驟
1600:製程
1605:步驟
1700:軟體架構
1702:第一執行流
1704:第二執行流
1706:第三同步執行流
2220:圖形化使用者介面
2222:選擇鈕
2224:選擇鈕
2300:匯流排
2405:標尺
2500:預期匯流排
2705:標尺
2710:標尺
2800:壓縮設計
2805:標尺
2900:圖形化使用者介面
2905:尺寸控件
2910:壓縮按鈕
2915:自動輪廓核取方塊
3000:製程
3005:步驟
3010:步驟
3015:步驟
3020:步驟
3025:步驟
3100:匯流排繞線設計
3105:標尺
3200:預期製造設計
3300:放大視圖
3400:設計
3405:標尺
3505:標尺
3600:設計
3700:設計
3805:標尺
3820:輪廓
3825:標記多邊形
3825a:標記
3900:UI
3902:X最小字段
3904:X最大字段
3906:Y最小字段
3908:Y最大字段
3910:自動壓縮按鈕
4000:製程
4005:步驟
4010:步驟
4015:步驟
4020:步驟
4110:圓圈
4120:DRC違規標記多邊形
4205:標尺
4400:製程
4405:步驟
4410:步驟
4415:步驟
4550:加框區域
4600:設計
4605:對稱單元
4610:對稱單元
4650:區域
4805:區域
4810:區域
4815:區域
4905:間隔單元
5405:E形狀
5410:C形狀
5705:單元邊界
5800:製程
5805:步驟
5810:步驟
5815:步驟
5820:步驟
5825:步驟
5830:步驟
5835:步驟
5840:步驟
5900:電子系統
5905:匯流排
5910:處理單元
5925:系統記憶體
5930:唯讀記憶體
5935:永久儲存裝置
5940:輸入裝置
5945:輸出裝置
5965:網路
本發明的新穎特徵係記載於申請專利範圍中。然而,本發明的數個實施例係公開於以下圖式中,目的在解釋本發明。
[圖1]繪示了交互式IC佈局編輯工具之使用者介面的示例。
[圖2]概念性地繪示了一些實施例的交互式編輯製程。
[圖3至圖10]繪示了由一些實施例之交互式設計工具所提供的交互式設計製程。
[圖11A]繪示了使用神經網路從電腦輔助設計(computer aided design,CAD)資料輸入推斷製造形狀。
[圖11B]繪示了U-Net模型架構的示例。
[圖11C]繪示了在一些實施例中使用已啟發之U-Net模型架構從表示由使用者所繪製之佈局的光柵化圖塊去預測製造的晶圓空拍影像。
[圖11D]繪示了對應於D型正反器(D-type Flip Flop,DFF)標準單元內多個金屬層之一之期望印刷金屬之光柵化影像的示例。
[圖11E]繪示了對應之製造輸出(組裝的圖塊組)的示例。
[圖11F]繪示了多個網路,各網路都經過訓練以產生對應於不同製造參數(manufacturing parameters,MP)之不同製程角(process corner,PC)的輸出。
[圖11G]繪示了推斷輸出的示例,其中重新組裝的圖塊表示了在三種不同的獨特製程條件下,代表DFF設計之製造形狀的影像。
[圖11H]繪示了整個模擬的製程,其中在給定了一接收輸入設計樣本之下可以產生輸出樣本。
[圖11I]繪示了資料流程圖的示例,其中此些輸入被提供給光罩以及晶圓製程模擬步驟。
[圖12]繪示了一製程,該製程為圖2之製程的更詳細表示。
[圖13]繪示了關於一些實施例中之計算操作的進一步細節。
[圖14]繪示了神經網路的一示例,該神經網路在稱為推斷的操作中接收代表向上偏置(biased-up)光罩形狀的圖塊,並且產生代表對應之矽晶圓輪廓的圖塊。
[圖15]繪示了一整個製程的示例,該製程結合了所有操作以藉由利用神經網路來產生輪廓。
[圖16]繪示了劃分出與圖15之製程有些不同之子操作的製程。
[圖17]繪示了一種新穎軟體架構的使用,該新穎軟體架構藉由改善佈局編輯器、製造軟體伺服器製程以及神經網路軟體伺服器製程的操作與通信來大幅改善交互式編輯製程的通量時間。
[圖18]繪示了一個這樣的實施例,其中多個軟體伺服器同時執行,且其中一個專用於製程條件的每一組合。
[圖19]繪示了一個佈局編輯伺服器和多個製造軟體製程伺服器以及單一神經網路軟體伺服器一起操作的實施例。
[圖20]繪示了一個佈局編輯伺服器和一個製造軟體製程伺服器以及多個神經網路軟體伺服器一起操作的另一實施例。
[圖21]繪示了一個佈局編輯伺服器和多個製造軟體製程伺服器以及一個神經網路軟體伺服器一起操作的另一實施例,其中神經網路同時產生不是一個而是多個輸出,其中每一感興趣之製程條件一個。
[圖22A]繪示了執行一次產生多個輸出之單一神經網路的神經網路軟體伺服器,其中每一輸出對應於不同的感興趣製程條件。
[圖22B]繪示了允許使用者去選擇要使用之模型的圖形化使用者介面。
[圖23至圖28]繪示了根據本發明之一些實施例所實施的交互式設計的更詳細示例。
[圖29]繪示了在一些實施例中之交互式壓縮工具的圖形化使用者介面。
[圖30]繪示了當使用者透過圖29的使用者介面請求交互式壓縮操作時佈局編輯器執行的製程。
[圖31]繪示了在多次使用圖29的交互式壓縮工具之後,對產生的輪廓進行多次檢查後所得到之壓縮的匯流排繞線設計。
[圖32]繪示了具有用於最終的壓縮設計之預期輪廓的預期製造設計。
[圖33]繪示了圖32之設計中左上角的放大視圖。
[圖34]繪示了將由一些實施例之佈局編輯器的自動壓縮工具進行自動壓縮的設計。
[圖35]繪示了對應於原始設計的製造輪廓。
[圖36]繪示了透過在X和Y方向上移除多邊形之間的6奈米空間來天真地嘗試手動壓縮設計而產生的壓縮設計。
[圖37]繪示了和圖36的天真壓縮設計相似的壓縮設計,但更繪示了具有在圖36之設計中之曲線DRC違規的預期製造矽輪廓。
[圖38]繪示了圖37之壓縮設計的放大視圖。
[圖39]繪示了用於一些實施例之自動壓縮工具的UI。
[圖40]繪示了一些實施例之自動壓縮器所執行的製程。
[圖41]繪示了由SHGO優化器自動壓縮圖34之設計一次所產生之對應於自動壓縮方案的製造矽輪廓,其具有成本函數的特定公式以及特定的初始搜索空間。
[圖42]顯示了DRC違規標記多邊形的放大視圖。
[圖43]繪示了由SHGO優化器自動壓縮圖34之設計一次所產生之對應於另一自動壓縮方案的製造矽輪廓。
[圖44]繪示了用於手動修復設計之良率限制部分的交互式編輯製程。
[圖45至圖57]繪示使用了啟用神經網路的交互式佈局編輯系統來手動修復良率限制部分的示例。
[圖58]繪示了一些實施例用來產生訓練資料以訓練一或多個神經網路產生用於IC設計或IC設計之一部分之輸入形狀之多輪廓輸出形狀的製程。
[圖59]概念性地繪示了實施本發明之一些實施例的計算機系統。
200:製程
205:步驟
210:步驟
215:步驟
Claims (41)
- 一種用以編輯積體電路之設計佈局的方法,該方法包含: 接收由一第一組設計編輯操作所產生的一設計佈局,其中該佈局包含複數組件; 利用一機器訓練網路為各該組件產生表示該組件之複數預期製造形狀的複數輪廓,其中各該組件的該些輪廓包含一第一組輪廓與一第二組輪廓,該第一組輪廓包含對應用於一製程參數之一第一變異之該組件之一第一預測形狀的一或多個該輪廓,該第二組輪廓包含對應用於該製程參數之一第二變異之該組件之一第二預測形狀的一或多個該輪廓,且相關於一製程的該製程參數將用於從該設計佈局製造一積體電路; 使用該些輪廓形狀執行一第二組設計編輯操作。
- 如請求項1所述的方法,其中利用該機器訓練網路包含在:利用該設計佈局執行一製程之後,利用該機器訓練網路產生表示該設計佈局的一組影像,其中該製程為用於根據該設計佈局製造一半導體晶片之一完整過程的一部分。
- 如請求項2所述的方法,更包含: 對由該機器訓練網路產生的該組影像執行一影像分析,以產生該些輪廓。
- 如請求項1所述的方法,其中該機器訓練網路係一神經網路。
- 如請求項1所述的方法,其中該機器訓練網路作為用於根據該設計佈局製造一半導體晶片之一製程的數位分身,且該製程參數為相關於該製程的參數。
- 如請求項5所述的方法,其中該設計佈局為一第一設計佈局,且該機器訓練網路產生一第二設計佈局,其中該第二設計佈局係在對該第一設計佈局執行該製程之後所產生之一設計的數位分身。
- 如請求項1所述的方法,其中該製程為一光罩製造製程,且該參數與在該光罩製造製程中所使用的劑量有關。
- 如請求項1所述的方法,其中該製程為一晶圓模擬製程,且該參數與在該晶圓生產製程中所用之曝光強度與聚焦深度中的至少一者有關。
- 如請求項1所述的方法,其中各該組件的該些輪廓包含與該製程參數之最大變異有關的一第一輪廓以及與該製程參數之最小變異有關的一第二輪廓。
- 如請求項9所述的方法,其中各該組件的該些輪廓更包含與該製程參數之標稱變異有關的一第三輪廓。
- 如請求項1所述的方法,其中各該組件的該些輪廓包含與該製程參數之最大變異有關的一第一輪廓以及與該製程參數之標稱變異有關的一第二輪廓。
- 如請求項1所述的方法,更包含: 產生一顯像,其中該顯像將各該組件的該些輪廓形狀與該些組件疊加在該設計佈局上。
- 如請求項1所述的方法,其中該第一組編輯操作與該第二組編輯操作為壓縮操作。
- 如請求項1所述的方法,其中該第一組編輯操作與該第二組編輯操作為繞線操作。
- 如請求項1所述的方法,其中該些預測形狀包含在一晶圓模擬操作之後該些組件的形狀。
- 如請求項1所述的方法,其中該些預測形狀包含在利用該設計佈局製造一積體電路之後該些組件的形狀。
- 一種用於壓縮一積體電路設計佈局的方法,其中該積體電路設計佈局包含複數組件,該方法包含 對該設計佈局迭代地執行以下步驟: 執行一壓縮操作以壓縮該設計佈局; 利用一機器訓練網路產生多個繞線的多個預期製造形狀; 利用該些預期製造形狀評估是否應執行另一壓縮操作。
- 如請求項17所述的方法,其中該些繞線的該些預期製造形狀表示在執行一系列之製造操作以從該設計佈局產生一積體電路之後的該些繞線之形狀。
- 如請求項17所述的方法,其中利用該些預期製造形狀包含根據所產生的該些預期製造形狀對該設計佈局執行設計規則檢查(DRC)。
- 如請求項17所述的方法,其中利用該機器訓練網路包含利用該機器訓練網路為各該繞線產生一多輪廓顯像,其中各該多輪廓顯像表示用於該繞線之該些預期製造形狀的範圍並具有對應相關於用以從該積體電路設計佈局產生一積體電路之一製程之一參數之複數變異的複數輪廓。
- 如請求項20所述的方法,更包含: 利用一機器訓練網路產生該些多輪廓顯像,其中該些輪廓包含對應於該製程參數之一第一變異的第一組輪廓與對應於該製程參數之一第二變異的第二組輪廓。
- 如請求項20所述的方法,其中利用該機器訓練網路包含在利用該設計佈局執行一製程之後,利用該機器訓練網路產生表示該設計佈局的複數像素式影像,以便基於該設計佈局製造一半導體晶片;以及該方法更包含根據各該影像之像素式定義產生各該組件的複數輪廓。
- 如請求項20所述的方法,其中該機器訓練網路係一神經網路。
- 如請求項20所述的方法,其中該製程為一光罩製造製程,且該參數與在該光罩製造製程中所使用的劑量有關。
- 如請求項20所述的方法,其中該製程為一晶圓生產製程,且該該參數與在該晶圓生產製程中所用之曝光強度與聚焦深度中的一者有關。
- 如請求項20所述的方法,其中該些輪廓包含與該製程參數之最大變異有關的一第一組輪廓以及與該製程參數之最小變異有關的一第二組輪廓。
- 如請求項26所述的方法,其中該些輪廓更包含與該製程參數之標稱變異有關的一第三組輪廓。
- 如請求項17所述的方法,其中該些輪廓包含與該製程參數之最大變異有關的一第一組輪廓以及與該製程參數之標稱變異有關的一第二組輪廓。
- 一種壓縮一積體電路設計佈局的方法,該方法包含: 在一圖形化使用者介面中: 呈現用於顯示該積體電路設計佈局之至少一部份的一第一顯示區域; 呈現一組壓縮參數控件以指定應應用於該積體電路設計佈局的一壓縮量; 呈現用於該積體電路設計佈局之複數組件中之每一者的一輪廓控制引導的一多輪廓顯像,其中各該組件的該多輪廓顯像表示各該組件之多個預期製造形狀的範圍並具有對應相關於用以從該積體電路設計佈局產生一積體電路之一製程之一參數之複數變異的複數輪廓。
- 如請求項29所述的方法,更包含: 在該第一顯示區域中呈現該些多輪廓顯像。
- 如請求項30所述的方法,其中呈現該些多輪廓顯像包含將各該組件的該多輪廓顯像疊加在(i)由一積體電路設計工具產生並且(ii)不考慮相關於該製程之一參數中之多個變異的一組件顯像。
- 如請求項31所述的方法,更包含: 於透過該組壓縮參數控件接收到一修正壓縮參數時,對該積體電路設計佈局執行一壓縮操作;以及 在該第一顯示區域中顯示該壓縮操作的結果。
- 如請求項29所述的方法,其中該些組件包含該積體電路設計佈局中的多個繞線,以及複數多輪廓顯像包含基於該些繞線產生在該積體電路上之多個導線之多個預期製造形狀的複數範圍。
- 如請求項29所述的方法,更包含: 利用一機器訓練網路產生該些多輪廓顯像,其中該些輪廓包含對應於該製程參數之一第一變異的一第一組輪廓以及對應於該製程參數之一第二變異的一第二組輪廓。
- 如請求項29所述的方法,其中利用該機器訓練網路包含在利用該設計佈局執行一製程之後,利用該機器訓練網路產生表示該設計佈局的複數像素式影像,以便基於該設計佈局製造一半導體晶片;以及該方法更包含根據各該影像之像素式定義產生各該組件的複數輪廓。
- 如請求項29所述的方法,其中該機器訓練網路係一神經網路。
- 如請求項29所述的方法,其中該製程為一光罩製造製程,且該參數與在該光罩製造製程中所使用的劑量有關。
- 如請求項29所述的方法,其中該製程為一晶圓生產製程,且該該參數與在該晶圓生產製程中所用之曝光強度與聚焦深度中的一者有關。
- 如請求項29所述的方法,其中該些輪廓包含與該製程參數之最大變異有關的一第一組輪廓以及與該製程參數之最小變異有關的一第二組輪廓。
- 如請求項39所述的方法,其中該些輪廓更包含與該製程參數之標稱變異有關的一第三組輪廓。
- 如請求項29所述的方法,其中該些輪廓包含與該製程參數之最大變異有關的一第一組輪廓以及與該製程參數之標稱變異有關的一第二組輪廓。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163283520P | 2021-11-28 | 2021-11-28 | |
US63/283,520 | 2021-11-28 | ||
US202263408832P | 2022-09-21 | 2022-09-21 | |
US63/408,832 | 2022-09-21 | ||
US202217983372A | 2022-11-08 | 2022-11-08 | |
US17/983,372 | 2022-11-08 | ||
US17/992,876 US20230169246A1 (en) | 2021-11-28 | 2022-11-22 | Interactive compaction tool for electronic design automation |
US17/992,876 | 2022-11-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202336625A true TW202336625A (zh) | 2023-09-16 |
TWI845039B TWI845039B (zh) | 2024-06-11 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
WO2023097068A1 (en) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318697B2 (en) | Sub-resolution assist feature implementation for shot generation | |
JP4999013B2 (ja) | 集積化されたopc検証ツール | |
JP4822330B2 (ja) | 集積化検証および製造適応ツール | |
US11379647B2 (en) | Multilayer optical proximity correction (OPC) model for OPC correction | |
US8359562B2 (en) | System and method for semiconductor device fabrication using modeling | |
JP2004502973A (ja) | モデルベース光近接補正用収束技術 | |
WO2005109257A2 (en) | Method and apparatus for designing integrated circuit layouts | |
CN106200273B (zh) | 检测光刻热点的方法 | |
US7080349B1 (en) | Method of developing optimized optical proximity correction (OPC) fragmentation script for photolithographic processing | |
TW202213166A (zh) | 用於生成用於電子設計之形狀資料之方法及系統 | |
US7082588B2 (en) | Method and apparatus for designing integrated circuit layouts | |
TW202145053A (zh) | 微影遮罩之開發之佈局的骨架表示 | |
JP2003203849A (ja) | リソグラフィプロセスマージン評価装置、リソグラフィプロセスマージン評価方法およびリソグラフィプロセスマージン評価プログラム | |
US7711504B2 (en) | Method and system for performing optical proximity correction with process variations considerations | |
TW200820033A (en) | Method and apparatus for designing an integrated circuit | |
JP7443501B2 (ja) | 欠陥確率分布および限界寸法変動に基づくリソグラフィ改良 | |
US7254798B2 (en) | Method and apparatus for designing integrated circuit layouts | |
TWI845039B (zh) | 使用機器訓練網路執行設計佈局編輯操作 | |
TW202336625A (zh) | 用於電子設計自動化的交互式壓縮工具 | |
Chan et al. | Benchmarking of mask fracturing heuristics | |
TW202420138A (zh) | 使用機器訓練網路執行設計佈局編輯操作 | |
US20230169246A1 (en) | Interactive compaction tool for electronic design automation | |
US20230168660A1 (en) | Based on multiple manufacturing process variations, producing multiple contours representing predicted shapes of an ic design component | |
Agarwal et al. | Integrated model-based retargeting and optical proximity correction | |
KR20240105405A (ko) | 전자 설계 자동화를 위한 상호작용적 압축 툴 |