TW202242701A - 佈線後壅塞優化方法 - Google Patents
佈線後壅塞優化方法 Download PDFInfo
- Publication number
- TW202242701A TW202242701A TW110131746A TW110131746A TW202242701A TW 202242701 A TW202242701 A TW 202242701A TW 110131746 A TW110131746 A TW 110131746A TW 110131746 A TW110131746 A TW 110131746A TW 202242701 A TW202242701 A TW 202242701A
- Authority
- TW
- Taiwan
- Prior art keywords
- cluster
- location
- box
- violation
- design rule
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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。
無
以下揭示內容提供了用於實現提供之標的的不同特徵的許多不同的實施例或實例。以下描述元件及佈置的特定實例用以簡化本揭示內容。當然,該些僅為實例,並不旨在進行限制。例如,在下面的描述中在第二特徵上方或之上形成第一特徵可包括其中第一及第二特徵直接接觸形成的實施例,並且亦可包括其中在第一與第二特徵之間形成附加特徵的實施例,以使得第一及第二特徵可以不直接接觸。此外,本揭示內容可以在各個實例中重複元件符號或字母。此重複係出於簡單及清楚的目的,其本身並不指定所討論之各種實施例或組態之間的關係。
此外,為了便於描述,本文中可以使用諸如「在...下方」、「在...下」、「下方」、「在...上方」、「上方」之類的空間相對術語,來描述如圖中所示的一個元件或特徵與另一元件或特徵的關係。除了在附圖中示出的方位之外,空間相對術語意在涵蓋裝置在使用或操作中的不同方位。設備可以其他方式定向(旋轉90度或以其他方位),並且在此使用的空間相對描述語亦可被相應地解釋。
在電子電路設計製程中,一或多個電子設計自動化(electronic design automation,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)的先前階段中所獲取的參數來執行實體驗證(physical verification,PV)。進行電晶體級行為的模擬以檢查晶片性能是否滿足所需的系統規格。基於實體驗證的結果,可能會修復一些DRC違例。可採用工程變更命令(engineering change order,ECO)操作來糾正DRC違例。ECO操作為在網路連線表(netlist)由自動工具處理後將邏輯變更直接插入網路連線表中的製程。在製作晶片罩幕(chip masks)之前,通常會進行ECO以節省時間,避免需要完整的ASIC邏輯合成(logic synthesis)、技術映射(technology mapping)、置放、佈線、特徵提取(feature extraction)及時序驗證(timing verification)。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-only memory,ROM)、隨機存取記憶體(random access memory,RAM)、快閃記憶體、硬式磁碟機、光學儲存裝置、磁式儲存裝置、可電氣抹除可程式唯讀記憶體(electrically erasable programmable 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)的預定義庫(predefined library)中的標準單元來界定。標準單元代表一或多個半導體裝置及其互連結構,該些半導體裝置及其互連結構經組態及佈置以提供邏輯功能,諸如AND、OR、XOR、XNOR或NOT,或儲存功能,諸如正反器或鎖存器(latch)。可根據對應於擴散層、多晶矽層、金屬層及/或層之間的互連的幾何形狀來界定標準單元的預定義庫。此後,置放工具24為印刷電路板(printed circuit board,PCB)及/或半導體基板上的幾何形狀分配位置。
電子設計平台20可對例如由置放工具24產生的設計來執行時脈樹合成(clock tree synthesis,CTS)。在一些實施例中,置放工具24可執行時脈樹合成。在其他實施例中,CTS工具可包括在電子設計平台20中以對自置放工具24接收的設計執行CTS。時脈樹合成通常係指合成時脈樹以實現零或最小偏斜(skew)及插入延遲(insertion delay)的製程,且可包括沿著電子裝置設計的時脈路徑(clock paths)插入一或多個緩衝或反向器。
佈線工具26在由置放工具24提供的置放佈局中的單元或幾何形狀之間產生實體互連。在一些實施例中,佈線工具26利用描述類比電路、數位電路、技術庫的基於文本或影像的網路連線表、用於製造電子裝置的半導體鑄造廠及/或用於製造電子裝置的半導體技術節點以分配幾何形狀之間的互連。
驗證工具28可例如在置放及佈線之後對電子電路置放佈局執行各種驗證或檢查。例如,在一些實施例中,驗證工具28可以分析電子電路置放佈局並且可提供靜態時序分析(static timing analysis,STA)、壓降分析(亦稱為IREM分析)、時脈域交叉驗證(Clock Domain Crossing Verification,CDC檢查)、形式驗證(亦稱為模型檢查)、等效性檢查或任何其他合適的分析及/或驗證。在一些實施例中,驗證工具28可執行交流電(alternating current,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)中的每一者及/或電子電路置放佈局的多個相鄰網格單元(neighboring grid 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)設置、電源接地(power ground,PG)違例。結構DRC違例204a通常不適用於以工程變更命令(engineering change order,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違例。因此,在L2 DRC違例與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。佈線壅塞盒(routing congestion 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執行的指令的執行期間儲存暫時變量(temporary variables)或其他中間(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 proximity correction,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 process checking,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違例。
本揭示內容概述了數個實施例,使得熟習此項技術者可以更好地理解本揭示內容的各態樣。熟習此項技術者應理解,熟習此項技術者可以容易地將本揭示內容用作設計或修改其他製程及結構的基礎,以實現與本文介紹的實施例相同的目的及/或實現相同的優點。熟習此項技術者亦應認識到,這些等效構造不脫離本揭示內容的精神及範疇,並且在不脫離本揭示內容的精神及範疇的情況下,這些等效構造可以進行各種改變、替代及變更。
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:邊長
結合附圖,根據以下詳細描述可以最好地理解本揭示內容的各態樣。注意,根據行業中的標準實務,各種特徵未按比例繪製。實際上,為了討論清楚起見,各種特徵的尺寸可任意增加或減小。此外,附圖作為本揭露的實施例的實例為說明性的,而非限制性的。
第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:線移動引擎
Claims (20)
- 一種方法,包括: 在一積體電路佈局上的一群集盒中識別一第一設計規則檢查違例; 將一第一目標單元定位在該群集盒中的一第一原始位置,該第一目標單元連接至該第一設計規則檢查違例; 在該群集盒中檢測該第一目標單元的複數個第一候選位置; 計算與該些第一候選位置相關聯的複數個資源成本; 在該些第一候選位置中判定與該第一目標單元的一最小資源成本相關聯的一第一重定位位置;及 將該第一目標單元自該第一原始位置重定位至該第一重定位位置。
- 如請求項1所述之方法,更包括: 在該群集盒中識別一第二設計規則檢查違例; 將一第二目標單元定位在該群集盒中的一第二原始位置,該第二目標單元連接至該第二設計規則檢查違例; 在該群集盒中檢測該第二目標單元的複數個第二候選位置; 計算與該些第二候選位置相關聯的複數個資源成本; 在該些第二候選位置中判定與該第二目標單元的一最小資源成本相關聯的一第二重定位位置;及 將該第二目標單元自該第二原始位置重定位至該第二重定位位置。
- 如請求項2所述之方法,更包括: 儲存該第一重定位位置。
- 如請求項3所述之方法,其中儲存該第一重定位位置之步驟在計算與該些第二候選位置相關聯的該些資源成本之步驟之前。
- 如請求項4所述之方法,更包括: 儲存該第二重定位位置。
- 如請求項5所述之方法,其中該第一重定位位置及該第二重定位位置由一工程變更命令工具所使用。
- 如請求項6所述之方法,更包括: 使用該工程變更命令工具來修復該第一設計規則檢查違例及該第二設計規則檢查違例。
- 如請求項1所述之方法,其中該第一目標單元經由一連接網連接至該第一設計規則檢查違例。
- 如請求項8所述之方法,其中該連接網包括一或多個金屬層中的一或多個金屬軌。
- 如請求項9所述之方法,其中該連接網更包括一或多個垂直互連通路。
- 如請求項1所述之方法,其中該些資源成本至少基於以下之一: 該群集盒中的一違例密度; 該群集盒中的一連接網分佈;及 一非預設規則感知金屬層密度。
- 如請求項1所述之方法,更包括: 提取有關該積體電路佈局的複數個特徵的資訊。
- 如請求項1所述之方法,更包括: 識別該積體電路佈局上的一限制區域,一佈線壅塞盒位於該限制區域中,複數個群集設計規則檢查違例位於該佈線壅塞盒中; 產生連接一第一端點與一第二端點的一迂迴路徑,該迂迴路徑圍繞該限制區域; 識別該迂迴路徑上的複數個候選點; 在該些候選點中選擇一錨點緩衝,使得連接該錨點緩衝與該第一端點的一第一飛線及連接該錨點緩衝與該第二端點的一第二飛線不穿過該佈線壅塞盒;及 儲存該錨點緩衝的一位置。
- 一種方法,包括: 識別一積體電路佈局上的一限制區域,一佈線壅塞盒位於該限制區域中,複數個群集設計規則檢查違例位於該佈線壅塞盒中; 產生連接一第一端點與一第二端點的一迂迴路徑,該迂迴路徑圍繞該限制區域; 識別該迂迴路徑上的複數個候選點; 在該些候選點中選擇一錨點緩衝,使得連接該錨點緩衝與該第一端點的一第一飛線及連接該錨點緩衝與該第二端點的一第二飛線不穿過該佈線壅塞盒;及 儲存該錨點緩衝的一位置。
- 如請求項14所述之方法,更包括: 基於該錨點緩衝的該位置產生一迂迴導件。
- 如請求項15所述之方法,其中當一第一矩形及一第二矩形中的至少一者與該佈線壅塞盒重疊時產生該迂迴導件,該錨點緩衝及該第一端點為該第一矩形的兩個相對頂點,該錨點緩衝及該第二端點為該第二矩形的兩個相對頂點。
- 如請求項16所述之方法,更包括: 基於該錨點緩衝的該位置及該迂迴導件,使用一工程變更命令工具來修復該些群集設計規則檢查違例。
- 一種壅塞優化平台,包含: 一分類引擎,用以接收關於一積體電路佈局的一設計規則檢查違例資訊且用以檢測複數個群集設計規則檢查違例,該些群集設計規則檢查違例包括一群集盒中的一第一設計規則檢查違例; 一壅塞優化引擎,連接至該分類引擎且用以基於該設計規則檢查違例資訊來產生一優化計劃;及 一工程變更命令工具,連接至該壅塞優化引擎且用以根據該優化計劃修復該第一設計規則檢查違例。
- 如請求項18所述之壅塞優化平台,其中該壅塞優化引擎包括一單元重定位引擎,用以: 將一第一目標單元定位在該群集盒中的一第一原始位置,該第一目標單元連接至該第一設計規則檢查違例; 在該群集盒中檢測該第一目標單元的複數個第一候選位置; 計算與該些第一候選位置相關聯的複數個資源成本; 在該些第一候選位置中判定與該第一目標單元的一最小資源成本相關聯的一第一重定位位置;及 將該第一目標單元自該第一原始位置重定位至該第一重定位位置。
- 如請求項18所述之壅塞優化平台,其中該壅塞優化引擎包括一錨點緩衝引擎,用以: 識別該積體電路佈局上的一限制區域,一佈線壅塞盒位於該限制區域中,複數個群集設計規則檢查違例位於該佈線壅塞盒中; 產生連接一第一端點與一第二端點的一迂迴路徑,該迂迴路徑圍繞該限制區域; 識別該迂迴路徑上的複數個候選點; 在該些候選點中選擇一錨點緩衝,使得連接該錨點緩衝與該第一端點的一第一飛線及連接該錨點緩衝與該第二端點的一第二飛線不穿過該佈線壅塞盒;及 儲存該錨點緩衝的一位置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/232,491 | 2021-04-16 | ||
| US17/232,491 US11853681B2 (en) | 2021-04-16 | 2021-04-16 | Post-routing congestion optimization |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202242701A true TW202242701A (zh) | 2022-11-01 |
Family
ID=82804246
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110131746A TW202242701A (zh) | 2021-04-16 | 2021-08-26 | 佈線後壅塞優化方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (3) | US11853681B2 (zh) |
| CN (1) | CN114925646A (zh) |
| TW (1) | TW202242701A (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI873978B (zh) * | 2023-11-14 | 2025-02-21 | 瑞鼎科技股份有限公司 | 電路布局驗證方法及系統 |
| TWI875397B (zh) * | 2023-11-23 | 2025-03-01 | 韓商韓領有限公司 | 提供與腳本驗證相關之資訊之裝置及其方法 |
Families Citing this family (3)
| 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 |
| WO2020112023A1 (en) * | 2018-11-26 | 2020-06-04 | Agency For Science, Technology And Research | Method and system for predicting performance in electronic design based on machine learning |
| 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/US12321682B2/en active Active
-
2025
- 2025-05-19 US US19/212,218 patent/US20250284873A1/en active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI873978B (zh) * | 2023-11-14 | 2025-02-21 | 瑞鼎科技股份有限公司 | 電路布局驗證方法及系統 |
| TWI875397B (zh) * | 2023-11-23 | 2025-03-01 | 韓商韓領有限公司 | 提供與腳本驗證相關之資訊之裝置及其方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20220335197A1 (en) | 2022-10-20 |
| US20250284873A1 (en) | 2025-09-11 |
| US20240126973A1 (en) | 2024-04-18 |
| US11853681B2 (en) | 2023-12-26 |
| US12321682B2 (en) | 2025-06-03 |
| CN114925646A (zh) | 2022-08-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12299376B2 (en) | Hard-to-fix (HTF) design rule check (DRC) violations prediction | |
| US12321682B2 (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 | |
| US12093625B2 (en) | Integrated circuit design method, system and computer program product | |
| US11727177B2 (en) | Integrated circuit design method, system and computer program product | |
| US12299375B2 (en) | Semiconductor process technology assessment | |
| CN113536728A (zh) | 制造半导体器件的方法、系统以及非暂时性计算机可读介质 | |
| US20240378367A1 (en) | Static voltage drop prediction system and method | |
| US20260036970A1 (en) | Method of manufacturing integrated circuit (ic) device having stand-alone feed-through via and system for same | |
| TWI875444B (zh) | 檢查標準細胞間隔品質的方法及系統 | |
| US20250245414A1 (en) | Method and system for generating adaptive power delivery network in integrated circuit layout diagram |