新四季網

用於金屬堆棧的導線標記列表的自動生成的製作方法

2023-06-04 10:52:01

用於金屬堆棧的導線標記列表的自動生成的製作方法
【專利摘要】本發明公開提供了用於削減要在集成電路設計過程中的導線敷設中使用的層特徵庫的機制。所述機制接收多個導線代碼以及金屬堆棧定義。所述機制基於金屬堆棧定義的層和導線代碼的所有可能組合,生成詳細層特徵庫。所述機制通過削減詳細層特徵庫以從詳細層特徵庫中除去冗餘的層特徵來生成削減層特徵庫。此外,所述機制存儲削減層特徵庫以用於執行集成電路設計的導線敷設。
【專利說明】用於金屬堆棧的導線標記列表的自動生成
【技術領域】
[0001]本申請總體上涉及改進的數據處理設備與方法,並且更具體地說涉及用於為晶片設計優化自動生成導線標記(wire tag)列表和為給定技術金屬堆棧(metal stack)進行敷設(routing)的機制。
【背景技術】
[0002]當今的電子產品包括使用集成電路的部件。集成電路是利用矽作為襯底形成的電子電路,襯底中具有添加的雜質以形成固態電子設備,諸如電晶體、二極體和電阻器。通常被稱為「晶片」,集成電路一般是封裝在硬塑料中。當今電子產品中的部件一般看起來是矩形的黑色塑料片,具有從塑料封裝突出的連接器引腳。
[0003]電路設計者使用多種軟體工具來設計實現預期任務的電子電路。例如,數字電路可以設計成接受數字輸入、執行某種計算並且產生數字輸出。模擬電路可以設計成接受模擬信號、操縱模擬信號,諸如放大、過濾或混合信號,並且產生模擬或數字輸出。一般來說,任何類型的電路都可以設計作為集成電路(IC)。
[0004]用於設計IC的軟體工具產生、操縱非常小規模的電路布局或者以別的方式以其工作。當在矽中形成的時候,這種工具可以操縱的有些部件只能測量幾十納米的跨度。利用這些軟體工具產生和操縱的設計是複雜的,常常包括數百萬個互連的這種部件,以便形成預期的電子電路。這種互連的部件組被稱為網。
[0005]軟體工具在部件級或者在部件塊級,S卩,塊級,操縱這些部件。部件塊也被稱為單元。識別IC設計中的單元的一種途徑是覆蓋設計上假想的垂直與水平線的網格,並且把被這些水平和垂直線界定的IC設計的每一部分看作是一個單元。界定一個單元的水平或垂直線被稱為切割線。以這種方式形成的單元通常被稱為全局敷設單元,或者g-單元。在IC設計上強加這種網格遠離實際的導線實現來抽象全局敷設問題,並且給出了任務的更數學化的表示。網可以跨越一個或多個單元並且可以跨若干條切割線。
[0006]除其它功能之外,IC設計軟體工具還可以操縱單元,或者互連一個單元的部件與其它單元的部件,從而形成網。部件之間的互連被稱為導線。導線是電子部件的各部分之間的連接,而且是利用導電的金屬材料形成的。
[0007]IC設計的一方面被稱為放置問題,S卩,把晶片的單元放置成使設計滿足晶片的所有設計參數的問題。敷設是在放置之後連接引腳的過程。換句話說,放置導致各個單元的部件位於設計中的特定位置的呈現(rendering),而敷設導致各金屬層將如何用那种放置來填充的呈現。導線可以設計成採取設計中幾種可用路徑中的任何一種。導線在某條路徑,或軌跡,上的放置是敷設的一部分。
[0008]層一般被指定為容納某個寬度的導線(導線代碼(wirecode))。一般來說,層的導線寬度越寬,而且層的導線高度越厚,則用於在那一層上敷設的網的信號傳播速度越快。與具有較窄導線寬度的較慢的層相比,更快的層,即,具有更大導線寬度或更高導線高度的層,能容納更少的部件或網。[0009]敷設器是IC設計工具中執行敷設功能的部件。一旦被稱為「放置器」的放置部件已經執行了放置功能,敷設器就嘗試在不造成擁塞的情況下連接導線。例如,如果一個設計參數需要在給定區域中不超過五條導線,則敷設器嘗試在配置配線(wiring)時兌現那個約束。關於配線的這種限制是一類設計約束並且被稱為擁塞約束。其它類型的設計約束可以包括,例如,被阻塞的區域-其中導線不能被敷設的單元區域。
[0010]全局敷設器把敷設區劃分成小塊並且嘗試通過這些塊來敷設網,使得沒有塊溢出其容量。在全局敷設之後,導線必須被指定給每一塊中實際的軌道,之後是必須把每條全局路線連接到單元上的實際引腳形狀的具體敷設。另一種類型的敷設器,稱為「具體敷設器」,執行具體敷設。在設計過程中所產生的全局和具體敷設統稱為「敷設」並且通常在設計的優化過程中被進一步修改。

【發明內容】

[0011]在一種說明性實施例中,提供了一種在數據處理系統中用於削減(prune)要在集成電路設計過程中的導線敷設中使用的層特徵庫的方法。所述方法包括接收多個導線代碼以及金屬堆棧定義。所述方法還包括基於金屬堆棧定義的層和導線代碼的所有可能組合,生成詳細層特徵庫。所述方法還包括通過削減詳細層特徵庫以從詳細層特徵庫中除去冗餘的層特徵來生成削減層特徵庫。此外,所述方法包括存儲削減層特徵庫以用於執行集成電路設計的優化(諸如重複插入)和導線敷設。
[0012]在其它說明性實施例中,提供了一種包括具有計算機可讀程序的計算機可用或可讀介質的電腦程式產品。當在計算設備上執行時,計算機可讀程序使計算設備執行以上關於方法說明性實施例概述的各種操作及其組合。
[0013]在還有另一種說明性實施例中,提供了一種系統/裝置。該系統/裝置可以包括一個或多個處理器以及耦合到一個或多個處理器的存儲器。存儲器可以包括指令,當指令被一個或多個處理器執行時,使一個或多個處理器執行以上關於方法說明性實施例概述的各種操作及其組合。
[0014]本發明的這些及其它特徵和優點將在以下本發明的示例實施例的具體描述中描述,或者鑑於該具體描述而將對本領域普通技術人員變得顯而易見。
【專利附圖】

【附圖說明】
[0015]當結合附圖一起閱讀時,本發明及其優選的使用模式及其進一步的目的和優點,將通過參考以下說明性實施例的具體描述得到最好的理解,其中:
[0016]圖1是其中可以實現說明性實施例的各方面的分布式數據處理系統的示例圖;
[0017]圖2是其中可以實現說明性實施例的各方面的計算設備的示例框圖;
[0018]圖3是圖示了可以實現說明性實施例的集成電路(IC)設計中各種類型層的框圖;
[0019]圖4是根據一種說明性實施例的用於解釋層特徵定義的給定技術的單個金屬堆棧的框圖;
[0020]圖5說明了根據一種說明性實施例的處於不同削減層次的各個層特徵列表;
[0021]圖6說明了根據一種說明性實施例的層特徵的圖表610-640,用於進一步說明處於不同削減層次的削減過程;[0022]圖7是根據一種說明性實施例的層特徵庫削減引擎的示例框圖;及
[0023]圖8是根據一種說明性實施例的概述用於削減層特徵庫的示例操作的流程圖。
【具體實施方式】
[0024]說明性實施例提供了用於為晶片設計優化自動生成導線標記列表和為給定技術金屬堆棧進行敷設的機制。對於給定技術的金屬堆棧,說明性實施例的機制通過探索金屬堆棧的所有層和用於技術堆棧的所有可能導線代碼來確定初始的詳細全層特徵列表。這種初始的詳細全層特徵列表隨後根據定時與擁塞成本進行削減。基於處於設計流程不同階段的不同需求,不同層次的層特徵庫是通過群集非冗餘的層特徵從削減後的層特徵列表建立的。更粗略的層特徵庫可以在設計流程的早期使用,而更細粒度的層特徵庫可以在設計流程的後期階段中使用。
[0025]所屬【技術領域】的技術人員知道,本發明的各個方面可以實現為系統、方法或電腦程式產品。因此,本發明的各個方面可以具體實現為以下形式,即:完全的硬體實施方式、完全的軟體實施方式(包括固件、駐留軟體、微代碼等),或硬體和軟體方面結合的實施方式,這裡可以統稱為「電路」、「模塊」或「系統」。此外,在一些實施例中,本發明的各個方面還可以實現為在任意一個或多個計算機可讀介質中的電腦程式產品的形式,該計算機可讀介質中包含計算機可用的程序代碼。
[0026]可以採用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限於——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、可攜式計算機盤、硬碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或快閃記憶體)、光纖、可攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0027]計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以採用多種形式,包括——但不限於——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用於由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0028]計算機可讀介質上包含的程序計算機代碼可以用任何適當的介質傳輸,包括一但不限於——無線、有線、光纜、射頻(RF)等等,或者其任意合適的組合。
[0029]可以以一種或多種程序設計語言的任意組合來編寫用於執行本發明操作的電腦程式代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++等,還包括常規的過程式程序設計語言一諸如「C」語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟體包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或伺服器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括區域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用網際網路服務提供商來通過網際網路連接)。
[0030]下面將參照根據本發明說明性實施例的方法、裝置(系統)和電腦程式產品的流程圖和/或框圖描述本發明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由電腦程式指令實現。這些電腦程式指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些電腦程式指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。
[0031]也可以把這些電腦程式指令存儲在計算機可讀介質中,這些指令使得計算機、其它可編程數據處理裝置、或其他設備以特定方式工作,從而,存儲在計算機可讀介質中的指令就產生出包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的指令的製造品(article of manufacture)0
[0032]電腦程式指令也可以加載到計算機、其它可編程數據處理裝置或者其它設備上,使得一系列操作步驟在計算機、其它可編程裝置或者其它設備上執行,從而產生一種計算機實現的過程,使得在所述計算機或者其它可編程裝置上執行的指令提供用於實現在所述流程圖和/或框圖的一個或多個塊中所指定的功能/動作的過程。
[0033]附圖中的流程圖和框圖顯示了根據本發明的多個實施例的系統、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個連續的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基於硬體的系統來實現,或者可以用專用硬體與計算機指令的組合來實現。
[0034]因而,說明性實施例可以用在許多不同類型的數據處理環境中。為了提供用於描述說明性實施例的具體元件和功能性的上下文,在下文中作為示例環境提供了圖1和2,其中可以實現說明性實施例的各方面。應當認識到,圖1和2僅僅是例子而不是要斷言或暗示對於其中可以實現本發明各方面或實施例的環境的任何限制。在不背離本發明的主旨與範圍的情況下,可以對所述環境進行許多修改。
[0035]圖1繪出了其中可以實現說明性實施例的各方面的示例分布式數據處理系統的圖形表示。分布式數據處理系統100可以包括其中可以實現說明性實施例的各方面的計算機網絡。分布式數據處理系統100包含至少一個網絡102,網絡102是用於在分布式數據處理系統100中連接到一起的各種設備和計算機之間提供通信鏈路的介質。網絡102可以包括連接,諸如有線、無線通信鏈路或者光纖電纜。
[0036]在所繪出的例子中,伺服器104和106連同存儲單元108 —起連接到網絡102。此夕卜,客戶端110、112和114也連接到網絡102。這些客戶端110、112和114可以是,例如,個人計算機、網絡計算機等。在所繪出的例子中,伺服器104向客戶端110、112和114提供數據,諸如引導文件、作業系統圖像及應用。在所繪出的例子中,客戶端110、112和114是伺服器104的客戶端。分布式數據處理系統100可以包括未示出的附加伺服器、客戶端及其它設備。
[0037]在所繪出的例子中,分布式數據處理系統100是網際網路,其中網絡102代表使用傳輸控制協議/網際網路協議(TCP/IP)協議套件的世界範圍的網絡和網關的集合,以便彼此通信。位於網際網路中心的是主要節點或主機計算機之間的高速數據通信線路的骨幹網(backbone),包括數以千計的商業、政府、教育及路由數據和消息的其它計算機系統。當然,分布式數據處理系統100還可以實現成包括多種不同類型的網絡,諸如,例如內聯網、區域網(LAN)、廣域網(WAN)等。如上所述,圖1是要作為例子,而不是作為用於本發明不同實施例的體系架構限制,而且因此,圖1中所示的特定元件不應當被認為是對於其中可以實現本發明說明性實施例的環境的限制。
[0038]圖2是其中可以實現說明性實施例的各方面的示例數據處理系統的框圖。數據處理系統200是計算機的一個例子,諸如圖1中的客戶端110,實現用於本發明說明性實施例的過程的計算機可用代碼或指令可以位於其中。
[0039]在所繪出的例子中,數據處理系統200採用集線器體系架構,包括北橋和存儲器控制器集線器(NB/MCH) 202及南橋和輸入/輸出(I/O)控制器集線器(SB/ICH) 204。處理單元206、主存儲器208和圖形處理器210連接到NB/MCH202。圖形處理器210可以通過加速圖形埠(AGP)連接到NB/MCH202。
[0040]在所繪出的例子中,區域網(LAN)適配器212連接到SB/ICH204。音頻適配器216、鍵盤和滑鼠適配器220、數據機222、只讀存儲器(ROM) 224、硬碟驅動器(HDD) 226、CD-ROM驅動器230、通用串行總線(USB)埠和其它通信埠 232及PCI/PCIe設備234通過總線238和總線240連接到SB/ICH204。PCI/PCIe設備可以包括,例如,乙太網適配器、附加卡及用於筆記本電腦的PC卡。PCI使用卡總線控制器,但PCIe不使用。R0M224可以是,例如,快閃記憶體基本輸入/輸出系統(BIOS)。
[0041]HDD226 和 CD-ROM 驅動器 230 通過總線 240 連接到 SB/ICH204。HDD226 和 CD-ROM驅動器230可以使用,例如,集成式驅動電子設備(IDE)或者串行高級技術互連(SATA)接口 ο超級1/0 (SIO)設備236可以連接到SB/ICH204。
[0042]作業系統在處理單元206上運行。作業系統協調並提供對圖2中數據處理系統200內部的各種部件的操作。作為客戶端,作業系統可以是商業上可用的作業系統,諸如
Microsoft ' Windows 7?。面向對象的編程系統,諸如Java?編程系統,可以結合作業系統一起運行並且從在數據處理系統200上執行的Java?程序或應用提供對作業系統的調用。
[0043]作為伺服器,數據處理系統200可以是,例如,運行高級交互執行(AIXq)操作系
統或LINUX?作業系統的IBM? eServer? Systemp?計算機系統。數據處理系統200
可以是在處理單元206中包括多個處理器的對稱多處理器(SMP)系統。作為替代,也可以採用單處理器系統。
[0044]用於作業系統、面向對象的編程系統及應用或程序的指令位於諸如HDD226的存儲設備上,而且可以加載到主存儲器208中以供處理單元206執行。用於本發明說明性實施例的過程可以由處理單元206利用計算機可用的程序代碼執行,例如,這些程序代碼可以位於諸如例如主存儲器208、R0M224的存儲器中,或者位於一個或多個外圍設備226和230中。
[0045]總線系統,諸如圖2中所示的總線238或總線240,可以由一條或多條總線組成。當然,總線系統可以利用任何類型的通信架構或體系架構實現,此類通信架構或體系架構在附連到所述通信架構或體系架構的不同部件或設備之間提供數據傳輸。通信單元,諸如圖2的數據機222或網絡適配器212,可以包括用於發送和接收數據的一個或多個設備。存儲器可以是,例如,主存儲器208、R0M224或者諸如在圖2中的NB/MCH202中發現的高速緩存。
[0046]本領域普通技術人員將認識到,圖1和2中的硬體可以依賴於實現而變化。其它的內部硬體或外圍設備,諸如快閃記憶體存儲器、等效的非易失性存儲器或者光碟驅動器等,可以附加地或者代替圖1和2中繪出的硬體來使用。而且,在不背離本發明主旨與範圍的情況下,除前面提到的SMP系統之外,說明性實施例的過程還可以應用到多處理器數據處理系統。
[0047]而且,數據處理系統200可以採取多種不同數據處理系統中任意一種的形式,包括客戶端計算設備、伺服器計算設備、平板計算機、膝上型計算機、電話或其它通信設備、個人數字助理(PDA)等。例如,在有些說明性例子中,數據處理系統200可以是配置成具有快閃記憶體存儲器的可攜式計算設備,以便提供用於存儲作業系統和/或用戶生成的數據的非易失性存儲器。本質上講,數據處理系統200可以是任何已知的或者以後開發的數據處理系統,而沒有體系架構的限制。
[0048]再次參考圖1,伺服器計算設備104、106中的一個或多個可以操作來提供VLSI設計機制,這種機制可以包括用來幫助簡化合成和導線敷設設計流程的說明性實施例的機制。在執行說明性實施例的機制的操作中所使用的數據可以在與伺服器計算設備104、106關聯的存儲系統中提供、存儲在網絡附連的存儲裝置108中或者由客戶端計算設備110-114提供,其中客戶端計算設備110-114可以經網絡102與伺服器104、106通信,諸如提供配置或以別的方式指引VLSI設計機制的操作的用戶輸入。
[0049]伺服器104、106的VLSI設計機制包括根據說明性實施例的層特徵庫削減機制。層特徵庫削減機制減小當執行作為VLSI設計流程的一部分的合成和導線敷設時所考慮的層特徵庫的尺寸。層特徵庫削減機制的實現基於以下觀察:合成和導線敷設中所使用的優化工具的運行時間與優化工具執行期間所考慮的層特徵數量成比例,進行操作。因而,說明性實施例的層特徵庫削減機制設法減小層特徵庫的尺寸,同時仍然包括適當的層特徵以覆蓋期望技術的金屬堆棧配線可能性,其中適當的層特徵是非冗餘的而且具有最低定時和擁塞值以及最佳寄生(RC)值。
[0050]現在參考圖3,說明了可以實現說明性實施例的集成電路(IC)設計中各種類型的層的框圖。IC設計中實際使用的金屬層的特定集合基於設計中所使用的特定技術。越寬越厚的金屬堆棧允許越大的配線並減小電阻。參考圖3,敷設可以利用導線敷設工具或VLSI設計機制對層302、304、306、308或310執行,諸如可以在圖1中的伺服器104、106中的一個或多個上執行。
[0051]作為一個例子,典型存儲器單元的半節距(pitch)可以是45nm。IX層上最小金屬寬度通常大約是半節距的兩倍,因而在這個例子中等於大約90nm。1.3X層容納為IX層上寬度的百分之一百三十的路線寬度。類似地,2X層容納為IX層上寬度的兩倍的路線寬度。4X層容納為IX層上寬度的四倍的路線寬度。IOX層容納為IX層上寬度的十倍的路線寬度。16X層容納為IX層上寬度的十六倍的路線寬度。實際上,不同層的厚度是不同的,這是為什麼層具有不同傳播速度的另一個原因。
[0052]層302代表IX層的集合,其一般可用於敷設130納米(nm) IC設計。層304代表IX層和2X層的集合,其一般可用於敷設90納米(nm) IC設計。層306代表IX層、2X層和4X層的集合,其一般可用於敷設65納米(nm) IC設計。層308代表IX層、1.3X層、2X層、4X層和IOX層的集合,其一般可用於敷設45納米(nm) IC設計。層310代表IX層、2X層、4X層和16X層的集合,其一般可用於敷設32納米(nm) IC設計。
[0053]越寬的路線寬度變換成越快的網,這意味著在這種網上電信號發送得越快。相應地,在2X層上敷設的網上的信號將比在IX層上的同一個網上的信號更快;在4乂層上敷設的網將比在2X層上的同一個網更快;依此類推。
[0054]越快的層也具有越少的資源。換句話說,由于越大的路線寬度,因此越快的層容納越少的部件。因此,即使當期望快網時,諸如為了滿足定時約束,也不是所有網都可以放在最快的(頂部)層上,因為這麼做將造成那些層上的擁塞增加。把網放到較慢的(較低的)層上可以減少擁塞問題,但是使網執行得相對更慢。為了利用慢網滿足定時約束,網必須被緩衝,這又造成功耗和設計面積增加。
[0055]現代IC設計會包含多達數以千萬計的網。設計者通常對這些網中的一小部分,從幾百個網到幾萬個或者甚至更多,指定層約束以便實現時序收斂。對於具有處於3至5GHz頻率的設計,可能有超過20%的網具有層約束。IC設計過程的優化步驟不能預測敷設器將選擇什麼層用於給定的網。
[0056]如果優化步驟採取悲觀方法並且假設配線敷設器將把網放到較慢的層上,則優化步驟在網中引入緩衝器,以克服由於放置在較慢的層上所造成的定時延遲。通過這麼做,電路優化器增加了設計所消耗的功率和所佔用的面積。如果優化器採取樂觀方法並且假設敷設器將把網放到較高的層上,則優化器面對較高層上的擁塞和在難以恢復的敷設之後的定時問題。因而,當在IC設計中執行導線的敷設時,需要在擁塞和定時之間執行折中。
[0057]圖4是根據一種說明性實施例的用於解釋層特徵的定義的給定技術的單個金屬堆棧的框圖。如圖4中所示,金屬堆棧400由多個金屬層組成,這些層可以具有不同的寬度/厚度,例如,類似於圖3中所示出的。從金屬堆棧400自下而上遍歷,下面的層M1-M5代表最薄的金屬層(IX層),其中「lx」指單倍寬度/間距,「2x」指雙倍寬度/間距,「4x」是四倍寬度/間距,依此類推。出於敷設目的,這些下面的層具有相對最差的電阻-電容(RC)寄生。第二個層集合,命名為BI至B2,是2X層類型,接下來是第三個層集合,命名為El至E3,這是4x金屬層。最後,在這個例子中,最厚的金屬層Xl至X3是8x金屬層。
[0058]利用這種類型的金屬堆棧400布置,層特徵定義敷設層[L,U](其中,L是下面的層,而U是上面的層)和導線代碼,其中導線代碼定義每一層上的導線寬度與間距。層特徵基本上是導線敷設優化與合成工具之間的契約。即,範圍[L,U]是導線敷設器要遵守的硬約束。利用例如基於Steiner樹的定時與緩衝插入算法,合成使用下面的層L和下一個較高的層L+1上的RC用於定時估計。還可以使用所有層或者某個層集合的平均RC值用於定時估計和優化。
[0059]層特徵的一個例子可以是類型W10S10L1D M2 X3。「W10S10L1D」是導線代碼,而「M2 X3」是層範圍[L,U]。「W10」指示對應於這個層特徵的導線具有Ix寬度,而「S10」指示導線具有Ix間距。「L1D」指示層I至D (按十六進位格式-D對應於圖4中的金屬層X3)。在對IC設計執行配線優化的時候,導線代碼被配線敷設器使用。為了合成,在這個導線代碼例子中,堆棧400的M2和M3,S卩,L和L+1,層用於為Steiner樹定時與緩衝插入優化確定IC設計的RC寄生。在不損失一般性的情況下,Steiner路線也可以使用其它途徑來確定RC寄生,諸如所有層的平均。
[0060]作為層特徵的另一個例子,考慮層特徵W20S20L17 BI X3。層範圍BI至X3指示在層BI下面只給出了用於這個層特徵的一個通孔而且導線代碼指示這個通孔具有2x寬度。通過預設設置,層BI至B2 (即,導線代碼的「L17」部分中的層7)上的導線具有2x寬度和間距而且比B2高的層上的導線具有單倍寬度和間距。即,如果在層特徵中沒有規定一層的寬度,則可以利用預設設置,例如,預設設置可以設置成單寬度或者其它預定義的寬度設置。還可以增大定義並且確信所有層都被覆蓋,諸如W20S20L17_W10S10L8D。在這個例子中,為了 Steiner定時與緩衝插入優化,層BI和B2,即,層L和L+1,的雙倍寬度/間距用於為IC設計估計RC寄生,或者,如果使用不同的Steiner估計方法,則使用其它層的平均。
[0061]應當認識到,對於規定的技術,例如,規定的金屬堆棧配置,諸如圖3中用於32nm至130nm的堆棧的配置,可能存在大量在執行導線敷設優化和合成時可以使用的可能的層特徵。一般來說,詳細全層特徵列表是通過探索用於給定技術金屬堆棧的所有的層和可能導線代碼生成的。但是,合成運行時與所考慮的層特徵的數量呈線性關係。因而,為了減少合成運行時,期望減少合成期間所考慮的層特徵數量。本發明提供了用於削減詳細全層特徵列表以便由此減少合成運行時的機制。
[0062]為了圖示說明性實施例的層特徵列表削減機制的操作,考慮圖5,圖5說明了根據一種說明性實施例的處於不同削減層次的各個層特徵列表。這種削減過程的通用概述在這裡是參考圖5提供的,而且對用於執行削減操作的機制的更具體解釋在其後提供。
[0063]如圖5中所示,在這個例子中,初始的層特徵列表510包括12個層特徵。這個初始的層特徵列表510可以,例如,如前面所描述的,通過探索所有現有導線代碼與層特徵的所有組合來獲得。這些層特徵中的一些具有相同或者基本上相似的RC寄生特性而且,因此,初始的削減操作從層特徵列表中除去這些冗餘的層特徵,以便生成第一削減層特徵列表520。保持在第一削減層特徵列表520中的特定層特徵可以基於與層特徵關聯的特性的分析及比較來確定,以便識別冗餘的層特徵中的哪個為導線敷設和合成提供更好的特性。
[0064]應當指出,每個層特徵的RC寄生是基於與IC設計關聯的技術簡介知道的。例如,可以模擬一層上給定長度的導線片段的延遲並且確定這條導線的延遲值。如果在這麼做的時候確定一條導線具有層特徵A,而另一條導線具有層特徵B,而且在延遲模擬之後(可以使用任何延遲計算器,諸如SPICE或者Elmore Delay),發現一條導線在性能和定時方面比另一條導線更好並且具有相同或更少的資源成本(面積、功率等),則相對於更好執行的導線,不太好的導線是冗餘的。
[0065]例如,在所繪出的例子中,由於層範圍相同,即,BI至X3,所使用的軌道數、延遲和定時以及資源成本,層特徵W20S20L17 B1X3和W30S15L17 BI X3是冗餘的。即,看這兩個層特徵,確定這兩個層特徵覆蓋相同的層範圍[B1,X3]。導線代碼指示W20S20層特徵使用4條軌道而W30S15使用4.5條軌道(W30S15指示具有1.5x間距的3x寬配線層)。通過定時模擬,可以確定W20S20層特徵具有比W30S15層特徵更好的延遲與定時性能。而且,W20S20使用更少的面積而且因此具有更低的資源成本。因此,W20S20是要保持的更好的層特徵,而W30S15層特徵可以作為冗餘的層特徵被削減掉。
[0066]在考慮這兩個冗餘層特徵中的哪個要保持在第一削減層特徵列表520中時,作為分析的一部分,可以考慮諸如飛行時間、到達限制、耦合定時、敷設成本等的各種特性。在這種上下文中,飛行時間指,給定非常長的導線而且如果存在理想緩衝的話,用於這個導線代碼的延遲/mm。到達限制指,對於給定的迴轉限制(slew limit),在沒有對於這個層特徵的另一個緩衝器的情況下一條導線可以前進多遠。耦合定時指在考慮耦合容量的時候的飛行時間/到達限制。敷設成本通常是這個層特徵的導線節距。例如,在兩個層特徵W20S20L17BI X3和W30S15L17 BI X3之間,W20S20L17的飛行時間、到達長度、耦合和敷設成本比W30S15L17層特徵更好。因而,對於這兩個冗餘的層特徵,要保留在削減層特徵列表520中的一個是W20S20L17 B1X3層特徵。
[0067]這第一削減層特徵列表520包括對於大部分在RC寄生方面不冗餘的那些層特徵。在所繪出的例子中,第一削減層特徵列表520包括7個層特徵。應當認識到,當存在不平衡的堆棧時,第一削減層特徵列表520可以包括一些冗餘。這些冗餘可以用於在第一削減層特徵列表520中保留的邊界層特徵。例如,假設有層BI B2 B3 El,這意味著有三個2X層和一個4X層,而且需要有一個「B3 E1」對,對於W20S20L18,假設有五個IX層和三個2X層。「W20S20L18 B3E1」意味著有一個2X層「B3」和一個IX層「E1」。由於只有一個4X層,因此這將獲得更好的RC寄生平衡。
[0068]第二削減層特徵列表530可以通過進一步削減第一削減層特徵列表520以除去具有相同或相似擁塞的層特徵來生成。擁塞可以基於用於每個層特徵的配線資源來測量。例如,W20S20採用4條軌道,而W10S10採用2條軌道。
[0069]在所繪出的例子中,基於相同或相似擁塞水平的削減導致具有4個層特徵的第二削減層特徵列表530。關於在第二削減層特徵列表530中維持具有相同或相似的擁塞水平的哪些層的選擇可以基於如上所述的延遲和所有其它統計數據來執行。例如,該方法可以只基於非耦合的定時來選擇層特徵並且選擇具有最佳非耦合定時的層特徵。作為替代,該方法可以基於敷設面積、和/或定時成本等選擇要維持的層特徵。前面討論過的特性中的一個或多個的任意組合,或者其它類型的導線特性,都可以用作相對於一個層特徵而選擇另一個層特徵以在第二削減層特徵列表530中保持的決定點。
[0070]第三削減層特徵列表540可以通過進一步削減第二削減層特徵列表530來生成,使得有單個層特徵覆蓋技術金屬堆棧的每一層。如果有多於一個層特徵可供選擇,則,例如,覆蓋層的單個層特徵的選擇可以是任意的。如圖5中所示,在這個例子中,這導致2個層特徵。
[0071]這些層特徵列表510-540中的每一個都具有不同的粒度水平。詳細全層特徵列表510具有最細的粒度,這是因為全部範圍的層特徵都可用於考慮。第三削減層特徵列表540代表最粗的粒度,因為只給出了兩個可能的層特徵用於在導線敷設和合成中考慮。因此,第三削減層特徵列表540對於在導線敷設和合成操作(諸如放置、閂鎖運動、緩衝、調整尺寸和vt優化)中早期使用是有益的,而第一削減層特徵列表520可以在導線敷設和合成操作的後期階段中更好地使用,以便提高可以執行這種導線和合成的速度。
[0072]圖6說明了根據一種說明性實施例的用於進一步說明處於不同削減層次的削減過程的層特徵的圖表610-640。圖6中的圖表610代表初始的詳細全層特徵列表,其中層特徵根據其定時成本(或者飛行時間)在I軸上繪製,而擁塞成本在X軸上繪製。應當認識至丨J,雖然圖6說明了兩維的圖表610-640,但是所考慮的特性的實際數量可以導致三維或更多維的分析,如下文所描述的。圖6中的圖表610-640簡單地示為兩維,以使其更容易繪圖
並容易理解。
[0073]如圖6中的圖表610中所示,各個層特徵具有相同或相似的定時成本和擁塞成本。可以通過例如將具有相同或相似擁塞成本、相同或相似的敷設面積、和/或相同的層組等的層特徵看作為冗餘的來確定層特徵的冗餘性。在一種說明性實施例中,如果兩個或更多個層特徵具有相同或相似的敷設面積,或者相同或相似的層組,則這兩個或更多個層特徵被認為是冗餘的而且這些中的一個或多個可以基於相對定時成本和導線擁塞被選擇以供削減。因而,看圖6中的集合624、626和628,例如,在這些基於具有相同或相似的敷設面積的集合中的每一個當中,存在具有相近的定時成本和擁塞成本,即,處於彼此的預定容限內,的層特徵,其中一個層特徵具有比另一個更高的定時成本和/或擁塞。在這種情況下,這兩個層特徵中的一個相對於另一個層特徵是冗餘的。例如,在集合624中,一個層特徵(最右邊的層特徵)具有較高的擁塞但較低的定時成本,而另一個層特徵具有較高的定時成本和較低的擁塞。在集合626和628中,這兩個層特徵具有相同的擁塞但是一個層特徵具有比另一個高的定時成本。在這種情況下,集合624中具有較高的定時成本但較低的擁塞的層特徵被選擇(即,層特徵W10S10L1D BI X3),而在集合626和628中,具有較低定時成本的層特徵(即,層特徵W20S10L17 BI X3和W30S10L17 BI X3)被選擇,如在集合634中所示出的,這個集合634是基於具有相同層組的層特徵。
[0074]如圖6的圖表620中所示,這些冗餘層特徵中的一些從層特徵列表中被除去,以便生成第一削減層特徵列表。應當認識到,不是所有冗餘的層特徵都需要除去,這是由於為了確定是否在第一削減層特徵列表中保留層特徵,也可以考慮諸如耦合定時、敷設成本等的其它標準。例如,如果一個層特徵具有比另一個層特徵更好的相對耦合定時,但這另一個層特徵具有更好的相對敷設成本,則這兩個層特徵都可以在第一削減層特徵列表中保留,以便能夠既考慮導線敷設又考慮合成期間的優化。
[0075]應當指出,關於圖表620,集合622-628是基於具有相同或相似敷設面積的層特徵確定的。相同或相似的敷設面積指在層特徵的大多數層上具有相同或相似的敷設面積的層特徵。例如,W10S20L17 B1X3和W20S10L17 BI X3都在B層及以下使用3條軌道,並且在層8及以上使用兩條軌道。對於W10S10L1D BI X3和W20S20L15 B1X3,這些層特徵對於層6及以上具有相同的敷設資源。對於層I至5,這通常僅僅是用於這個特定層特徵的通孔,敷設資源是2條軌道對4條軌道,但是由於它們僅僅是通孔,因此整體擁塞成本仍然相似。
[0076]圖6中的圖表630示出了由說明性實施例的機制執行的第二級削減,其中,具有相同或相似擁塞成本的層特徵被削減。因而,看圖表620中的第一個區域622,只存在一個層特徵而且因此,它被選擇包括在圖表630中所代表的第二削減層特徵列表中。圖表620中的第二個區域624具有兩個擁有相似擁塞成本的層特徵而且因此,這兩個層特徵中的一個被選擇包括在圖表630中所繪出的第二削減層特徵列表中。這對於區域626和628同樣成立,其中區域626和628每個都具有多於一個擁有相同擁塞成本的層特徵。一般來說,要在削減層特徵集合中保留的層特徵可以基於包括如上所述的定時成本和其它特性的多個因素來選擇。
[0077]在第三級削減中,用於相同層組的代表性層特徵從圖表630中表示的第二削減層特徵列表中所給出的那些當中選擇,由此生成在圖表640中給出的那些。如圖表630中所示出的,存在覆蓋層組632的部分的單個層特徵和覆蓋層組634的部分的三個層特徵。由於對於層組632的部分只有一個層特徵,因此它被選擇包括在第三削減層特徵列表中。由於對於層組634的部分存在三個層特徵,因此這些當中任何一個都可以被任意選擇包括在第三削減層特徵列表中。
[0078]如以上所提到的,由說明性實施例的機制執行的各種級別的削減提供了關於導線敷設和合成操作的不同級別的粗糙度。因此,第一、第二和第三削減層特徵列表、或庫,中不同的列表或庫可以在導線敷設和合成操作的不同階段使用。
[0079]S卩,自底向上,第三削減層特徵列表提供了關於導線敷設的最低準確度,但是可以應用到更大的規模,而不會顯著影響導線敷設和合成操作的運行時。這第三削減層特徵列表可以與例如利用基於Steiner樹的配線對集成電路設計的大規模部分進行的優化、及相對不太準確的定時延遲模型,諸如Elmore延遲近似模式,一起使用。利用更準確的定時延遲模型,諸如RICE延遲模型,第二削減層特徵列表,或者庫,可以與利用基於Steiner樹/全局配線的配線對集成電路設計的中等規模區域進行的優化一起使用。第一削減層特徵列表可以與利用具體配線對集成電路設計的相對小區域進行的優化和更準確的定時延遲模型,諸如RICE等,一起使用。因而,當對於削減層特徵列表自下而上遍歷時,第三削減層特徵列表代表在執行導線敷設和合成中所使用的最不準確但最快的列表,而第一削減層特徵列表代表在執行導線敷設和合成中所使用的最準確但最慢的列表。
[0080]圖7是根據一種說明性實施例的層特徵庫削減引擎的示例框圖。圖7中所示的元件可以以硬體、軟體或者硬體與軟體的任意組合來實現。在一種說明性實施例中,圖7中所示的元件是作為加載到一個或多個存儲器中並且隨後被一個或多個數據處理系統的一個或多個處理器執行的軟體指令實現的。例如,層特徵庫削減引擎可以與集成電路設計系統的導線敷設機制一起工作,作為其預處理器或者作為其一部分工作。層特徵庫削減引擎可以集成到集成電路設計系統中或者可以是通信耦合到集成電路設計系統並且可以通過一個或多個接口與集成電路設計系統交換信息的獨立部件。應當認識到,圖7中的一個或多個部件可以代替地實現為硬體邏輯,諸如在專用集成電路(ASIC)等當中的硬體邏輯。
[0081]如圖7中所示,層特徵庫削減引擎700包括控制器710、通信接口 720、初始層特徵庫生成引擎730、削減引擎740及削減層特徵庫存儲系統750。控制器控制層特徵庫削減引擎700的整體操作並且編排其它元件720-750的操作。通信接口 720提供通信通路,通過該通信通路,數據可以被接收和發送或傳遞到其它計算設備、其它軟體模塊、向用戶輸出,
坐坐寸寸ο
[0082]例如,通過通信接口 720,技術堆棧規範可以連同可以在集成電路設計中使用的可能導線代碼的列表一起提供給層特徵庫削減引擎700。技術堆棧規範的命名和可能導線代碼的列表可以由例如用戶經用戶接口或客戶端計算機、自動化工具,諸如集成電路設計系統,作為設計規範的輸入的一部分提供,等等。這種信息向層特徵庫削減引擎700的提供可以是響應於集成電路設計操作的初始化,諸如導線敷設和合成操作,響應於由用戶、自動化工具等提供的對於生成要與集成電路設計過程一起使用的削減層特徵庫的具體請求,等等。[0083]在控制器710的指引下,初始層特徵庫生成引擎730基於技術堆棧的規範和用於集成電路設計的可能導線代碼,執行建立初始層特徵庫的操作。即,初始層特徵庫生成引擎730生成包括用於層堆棧範圍和導線代碼的每種可能組合的條目的詳細全層特徵庫。堆棧中的層可以從技術堆棧的規範確定,而導線代碼可以從傳遞到層特徵庫削減引擎700的或者已經存儲在層特徵庫削減引擎700中的可能導線代碼的指定,諸如預設的導線代碼集合等,來確定。
[0084]因而,例如,假設在技術堆棧中有M個層,即,層U、L2、L3'…、LM,則存在層範圍[L1, LJ , [L2, LJ ,…、[Lsh, LJ。層範圍的例子包括[M3 X3]、[BI X3]、[El X3]等。假設集成電路設計系統的配線敷設器所支持的最大導線寬度是K,而且K還定義最大的間距和通孔寬度,則對於每一層有K2種導線代碼的組合,其中導線代碼由[W,S]定義,其中W是可以設置為從I到K的寬度,而S是可以設置為從I到K的間距。此外,每一層對於通孔寬度都有K種可能的選擇。給定M個金屬層和配線敷設器支持的最大導線寬度K,存在還考慮了所有可能通孔堆棧的0(Μ*Κμ)種可能組合。因而,初始層特徵庫生成引擎730利用導線代碼和層範圍的這各種組合生成這個初始的層特徵庫。
[0085]削減引擎740執行說明性實施例的操作以把初始層特徵庫削減成一個或多個削減層特徵庫。這些削減層特徵庫對於導線敷設提供了各種層次的粗糙度和準確度而且可以被提供來在集成電路設計過程或流程的各個階段使用。
[0086]為了執行削減操作,削減引擎740首先分組具有相同RC寄生的所有層。各個層的RC寄生可以在技術手冊中、或作為SPIC模擬的結果等規定。例如,再次參考圖4,層Ml至M5全部都被認為具有相同的RC寄生特性,層BI至B2全部都被認為具有相同的RC寄生特
性,等等。
[0087]假設這種分組生成N個唯一的RC組,[L1,…,Ld J、[Ld.1+1,...,Ld 2]、[L(1—{N-1}+1,...LJ,削減引擎740從M層範圍被削減成N層範圍。例如,層範圍[M2 X3]削減了所有層範圍[M3 X3]、[M4 X3]、[M5 X3]。類似地,層範圍[BI X3]削減了層範圍[B2 X3]和[B3 X3]。但是,應當指出,如果存在不平衡的層堆棧,則邊界層範圍可以保持而不被削減,例如,如果只有一個El層,則層範圍[B3X3]可以保留。因而,具有以這種方式被削減的層範圍的層特徵可以從由削減引擎740生成的第一削減層特徵庫中消除,例如,具有層範圍[M2 X3]的層特徵可以作為第一削減層特徵庫的一部分保留,而初始層特徵庫中具有層範圍[M3 X3]、[M4 X3]、[M5 X3]的其它層特徵被除去並且不包括在第一削減層特徵庫中。以這種方式,只有其層範圍被具有其它層範圍的層特徵涵蓋的層特徵才可以被消除。
[0088]為了通過利用說明性實施例的削減機制減小配線敷設器的複雜性並且最大化運行時節約,削減引擎740削減任何複雜的通孔堆棧。即,用於層範圍下的層的通孔堆棧應當是統一的(對於該層範圍下的所有這種層都相同)或者是單調增加/減小的。如果層特徵規定了不滿足這些標準的通孔堆棧,則該層特徵可以被除去,不包括在第一削減層特徵庫中。例如,如果層範圍是[BI X3],則所有Ml至M5層都應當具有相同的通孔寬度,或者具有單調變化的通孔寬度,例如,層M2上的2x寬通孔,層M3上的3x寬通孔,層M4上的4x寬通孔,或者反之亦然。
[0089]下界L之上的層和層L+1使用預設的導線代碼,這是由於預設的導線代碼利用更好的擁塞和相同的Steiner定時來削減所有其它組合。例如,對於層範圍[BI X3],層特徵中所規定的導線代碼只適用於層Ml至B2 (層L+1)。層B3至X3全都假設單寬度和單間距的預設導線編碼。該層特徵只對L和L+1層適用依賴於假設Steiner定時只看L和L+1層。因此,例如,如果層特徵現在只對Xl規定雙倍寬度、雙倍間距,則由於Steiner定時仍然相同(由於在這裡只關注BI和B2),而且敷設成本相對於Xl上的單倍寬度、單倍間距來說更高,則確定不需要為已經冗餘的Xl定義複雜的導線寬度、間距。
[0090]然後,層特徵庫中剩餘的層特徵基於擁塞和定時特性來削減。例如,擁塞可以定義為由層特徵的導線代碼規定的軌道數。定時可以關於飛行時間(ps/mm)、用於迴轉約束的到達長度、具有耦合的飛行時間等來定義。對於兩個層特徵,如果一個層特徵的所有度量都比另一個好,則這個層特徵優於另一個。例如,如果Q是定時而W是擁塞,則如果Qi〈Qj而且Wi>Wj,則層特徵I是冗餘的,因為它沒有一個特徵優於另一個。作為一個更具體的例子,考慮兩個層特徵,其中這兩個層特徵在B層和通孔堆棧上都具有相同的敷設節距(3條軌道)。假設一個層特徵,W10S20L17 BI X3,具有81ps/mm的定時參數,而另一個層特徵,W20S10L17 BI X3,具有70ps/mm的定時參數。在這種情況下,第一個層特徵W10S20L17 BIX3削減掉第二個層特徵W20S10L17 BI X3,這是由於第一個層特徵具有更好的定時度量。但是,如果第二個層特徵具有更好的額定定時,但第一個層特徵具有更好的耦合定時,則兩個層特徵都需要在削減層特徵庫中保留,而不是消除第二個層特徵。另一個例子可以是層特徵W20S20LBD Xl X3削減掉層特徵W30S15LBD Xl X3,這是由於它具有更好的飛行時間(45ps/mm對48ps/mm)和更少的敷設軌道,這可以基於具有一個層特徵的長網上的理想緩衝,根據飛行時間估計來確定。例如,如果有IOmm的導線,而且確定理想緩衝是每0.5mm插入一個緩衝器,則在給定最佳緩衝的情況下IOmm導線的延遲可以按照ps/mm,通過使用延遲/IOmm來計算,如本領域中眾所周知的。
[0091]以上由削減引擎740進行的操作導致第一削減層特徵列表或庫,其中冗餘的層特徵被除去或削減掉。然後,削減引擎740可以對第一削減層特徵庫執行中等水平的群集,以便生成第二削減層特徵庫。中等水平的群集可以涉及,例如,找出具有顯著差別的RC寄生的所有層特徵。RC寄生中差別的「顯著性」可以基於預定閾值來確定,該預定閾值定義一個值,差別為這個值或者高於這個值就被認為是顯著的。例如,如果飛行時間差只有lps/mm,則該差值可以被認為小,但是如果差值是5ps/mm,則該差值可以被認為是顯著的,其中閾值可以是例如4ps/mm。
[0092]中等水平群集的結果是具有相似RC寄生的層特徵群集的集合。在每個群集中,用於每個導線寬度(導線節距)值的一個層特徵被選擇以包括在第二削減層特徵庫中。為了選擇用於每個導線寬度(或者導線節距)的層特徵,如果對於每個導線寬度存在多於一個層特徵,則額定定時可以代替耦合定時用於選擇要保留的層特徵並且削減其它層特徵。而且,如果任何層特徵都具有規定的通孔堆棧,則它們可以被削減掉。
[0093]然後,削減引擎740可以通過為每個層組選擇單個/預設層特徵,從第二削減層特徵庫生成第三削減層特徵庫(例如,可以存在具有4個層組的單個13層堆棧,其中每個層組具有相同的RC寄生值,使得Ml至M4具有一個RC寄生值,後面跟著包括所有2X層的層組,包括所有4X層的層組及包括所有8X層的層組)。對於層堆棧中每個不平衡的層,選擇單個層特徵。對於每個其它層,選定的層特徵可以被任意選擇。[0094]因而,削減引擎740提供了多個層次的削減層特徵庫,由集成電路設計系統的導線敷設器在執行各級導線敷設的時候使用,如上所討論的。這些削減層特徵庫可以存儲在削減層特徵庫存儲系統750中,供以後使用。例如,這些削減層特徵庫可以經通信接口 720提供給集成電路設計系統790的導線敷設器780,用於在集成電路設計過程或流程中執行各個層次的導線敷設。
[0095]因而,說明性實施例提供了用於把詳細全層特徵庫削減成相對更小尺寸的層特徵庫的機制,由於要處理的庫的較小尺寸,這減少了導線敷設的運行時。說明性實施例通過從詳細全層特徵庫除去冗餘的層特徵並且隨後執行群集來執行削減,以便生成具有不同粒度水平的附加層特徵庫。
[0096]圖8是根據一種說明性實施例的概述用於削減層特徵庫的示例操作的流程圖。作為一個例子,圖8中概述的操作可以由層特徵庫削減引擎,諸如圖7中所示出的層特徵庫削減引擎,來實現,這種操作在用於製造的集成電路設備的設計過程中或者作為預處理操作或者作為導線敷設和合成操作的一部分來實現。
[0097]如圖8中所示,操作以接收可以在執行導線敷設的時候使用的技術金屬堆棧的標識和導線代碼開始(步驟810)。利用層範圍和導線代碼的所有可能組合建立詳細全層特徵庫(步驟820)。全層特徵庫被削減,以便除去冗餘的層特徵並且生成第一削減層特徵庫(步驟830)。中等水平的群集基於RC寄生對第一削減層特徵庫執行,使得在具有相似RC寄生的層特徵的群集中,針對每個導線寬度選擇要包括的層特徵(步驟840)。這導致第二削減層特徵庫。粗級別的群集對第二削減層特徵庫執行,由此為每個層堆棧選擇單個/預設層特徵並且由此生成第三削減層特徵庫(步驟850)。各個削減層特徵庫都被存儲,供以後在導線敷設過程中使用(步驟860)。在其後某個時間,削減層特徵庫提供給導線敷設器,該導線敷設器使用處於不同導線敷設粒度水平的各個削減層特徵庫來生成集成電路設計(步驟870)。然後,結果產生的集成電路設計可以輸出到製造系統,用於實際製造集成電路設備(步驟880)。
[0098]如上所述的機制在集成電路晶片的製作中使用。特別地,說明性實施例的機制可以用於生成在IC設計流程的導線敷設操作中使用的層特徵庫,這種設計流程產生製作好的集成電路晶片或設備。結果產生的集成電路晶片可以由製作者以原始晶片形式(即,作為具有多個未包裝晶片的單個晶片)、作為裸管芯、或者以包裝形式分發。在後一種情況下,晶片安裝在單晶片包裝中(諸如塑料載體,具有固定到母板或另一個更高級載體的引線)或者多晶片包裝中(諸如具有任一或兩個表面互連或掩埋互連的陶瓷載體)。在任何一種情況下,晶片隨後都與其它晶片、離散電路元件和/或其它信號處理設備集成,作為(a)半成品,諸如母板,或者(b)成品,的一部分。成品可以是包括集成電路晶片的任何產品,範圍從玩具和其它低端應用到具有顯示器、鍵盤或其它輸入設備和中央處理器的高級計算機產品。而且,其中可以提供集成電路晶片的成品可以包括遊戲機、遊戲控制臺、手持式計算設備、個人數字助理、諸如無線電話等的通信設備、膝上型計算設備、臺式計算設備、伺服器計算設備或者任何其它計算設備。
[0099]如以上所指出的,應當認識到,說明性實施例可以採取完全硬體實施例、完全軟體實施例或者包含硬體和軟體元素的實施例的形式。在一種示例實施例中,說明性實施例的機制是以軟體或程序代碼實現的,這包括但不限於固件、駐留軟體、微代碼等。[0100]適於存儲和/或執行程序代碼的數據處理系統將包括至少一個直接地或通過系統總線間接地耦合到存儲器元件的處理器。存儲器元件可以包括在程序代碼實際執行過程中採用的本地存儲器、大容量存儲裝置以及提供至少一些程序代碼的臨時存儲以便減少在執行過程中必須從大容量存儲裝置檢索代碼的次數的高速緩存存儲器。
[0101]輸入/輸出或I/O設備(包括但不限於鍵盤、顯示器、定點設備等)可以直接地或者通過中間I/o控制器耦合到系統。網絡適配器還可以耦合到系統,以便使數據處理系統能夠變得通過中間的私有或公共網絡耦合到其它數據處理系統或遠端印表機或存儲設備。數據機、電纜數據機和乙太網卡僅僅是目前可用的一些類型的網絡適配器。
[0102]本發明的描述是為了說明和描述的目的而給出的,而不是要詳盡無遺的或者要把本發明限定到所公開的形式。對本領域的普通技術人員來說,許多修改與變化都是顯而易見的。實施例的選擇與描述是為了最好地解釋本發明的原理、實踐應用,並且使本領域的其他普通技術人員能夠理解本發明具有適於預期特定用途的各種修改的各種實施例。
【權利要求】
1.一種在數據處理系統中用於削減要在集成電路設計過程中的導線敷設中使用的層特徵庫的方法,包括: 接收多個導線代碼以及金屬堆棧定義; 基於金屬堆棧定義的層和導線代碼的所有可能組合,生成詳細層特徵庫; 通過削減詳細層特徵庫以從詳細層特徵庫中除去冗餘的層特徵來生成削減層特徵庫;及 存儲削減層特徵庫以用於執行集成電路設計的導線敷設。
2.如權利要求1所述的方法,還包括: 基於所存儲的削減層特徵庫,執行集成電路設計的導線敷設。
3.如權利要求2所述的方法,還包括: 基於集成電路設計,製作集成電路設備,其中包括基於所存儲的削減層特徵庫執行的導線敷設。
4.如權利要求1所述的方法,其中生成削減層特徵庫包括: 削減詳細層特徵庫以除去冗餘的層特徵,從而生成第一削減層特徵庫; 在第一削減層特徵庫中執行層特徵的群集;及 基於第一削減層特徵庫中層特徵的群集來削減第一層特徵庫以生成第二削減層特徵庫。
5.如權利要求4所述的方法,其中削減詳細層特徵庫以除去冗餘的層特徵包括: 識別詳細層特徵庫中具有相似電阻-電容(RC)特性的層特徵,以生成一個或多個具有相似RC特性的層特徵組 '及 從一個或多個層特徵組中的每一組中選擇代表該組中要包括在第一削減層特徵庫中的層特徵的代表性層特徵。
6.如權利要求5所述的方法,其中從每一組中選擇的代表性層特徵是基於與該組中的層特徵關聯的資源成本、該組中的層特徵的延遲與定時特性、該組中的層特徵的飛行時間、該組中的層特徵的到達限制、該組中的層特徵的耦合定時或者該組中的層特徵的敷設成本中的一個或多個來選擇的。
7.如權利要求4所述的方法,其中生成削減層特徵庫進一步包括: 在第二削減層特徵庫中執行層特徵的群集;及 基於第二削減層特徵庫中層特徵的群集來削減第二削減層特徵庫以生成第三削減層特徵庫。
8.如權利要求7所述的方法,其中: 在第二削減層特徵庫中執行層特徵的群集包括:根據相似擁塞水平來群集層特徵以使得生成層特徵的一個或多個群集,其中每個群集包括具有相似擁塞水平的層特徵;及 基於第二削減層特徵庫中層特徵的群集來削減第二削減層特徵庫以生成第三削減層特徵庫包括:削減一個或多個群集中的每個群集。
9.如權利要求8所述的方法,其中基於第二削減層特徵庫中層特徵的群集來削減第二削減層特徵庫以生成第三削減層特徵庫包括:針對一個或多個群集中的每個群集,基於該群集的層特徵的資源成本或定時和延遲特性中的至少一個從該群集的層特徵中選擇代表性層特徵。
10.如權利要求7所述的方法,還包括: 利用第一、第二和第三削減層特徵庫對集成電路設計執行導線敷設處理,其中第一、第二和第三削減層特徵庫中的每一個用在不同粒度的導線敷設處理。
11.如權利要求10所述的方法,其中第三削減層特徵庫用在最粗粒度水平的導線敷設處理中,而第一削減層特徵庫用在最細粒度水平的導線敷設處理中。
12.如權利要求1所述的方法,其中層特徵中的每一個都包括導線代碼與層範圍的組合。
13.—種設備,包括: 處理器;及 耦合到處理器的存儲器,其中存儲器包括指令,所述指令在被處理器執行時,使處理器執行如權利要求1至12中任一項所述的方法。
【文檔編號】G06F17/50GK103914585SQ201410009272
【公開日】2014年7月9日 申請日期:2014年1月9日 優先權日:2013年1月9日
【發明者】C·J·阿爾伯特, R·M·埃弗裡爾三世, E·J·弗拉爾, 李卓, T·馬瑪德, J·L·P·尼夫斯, S·T·奎伊, C·N·塞, 魏耀廣 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀