TW201541272A - 利用具以較小基本單元建置可變驅動強度時脈驅動器可變驅動強度時脈反相器建構之時脈網路的調整系統與方法 - Google Patents
利用具以較小基本單元建置可變驅動強度時脈驅動器可變驅動強度時脈反相器建構之時脈網路的調整系統與方法 Download PDFInfo
- Publication number
- TW201541272A TW201541272A TW103145439A TW103145439A TW201541272A TW 201541272 A TW201541272 A TW 201541272A TW 103145439 A TW103145439 A TW 103145439A TW 103145439 A TW103145439 A TW 103145439A TW 201541272 A TW201541272 A TW 201541272A
- Authority
- TW
- Taiwan
- Prior art keywords
- clock
- size
- current
- slew
- integrated circuit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000004088 simulation Methods 0.000 claims abstract description 25
- 238000009826 distribution Methods 0.000 claims description 43
- 238000013461 design Methods 0.000 claims description 35
- 239000004065 semiconductor Substances 0.000 claims description 21
- 230000015572 biosynthetic process Effects 0.000 claims description 11
- 238000003786 synthesis reaction Methods 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 6
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 230000003750 conditioning effect Effects 0.000 claims description 2
- 238000000605 extraction Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 37
- 239000000872 buffer Substances 0.000 description 6
- 238000005259 measurement Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 239000002184 metal Substances 0.000 description 4
- 229910052751 metal Inorganic materials 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
製備利用可變驅動強度的時脈驅動器構造的時脈網路以用於調節。時脈驅動器從基礎標準單元的更小集合構建。巨集單元的輸入網表和輸出網表的位置被標記並且被保留,即使通過程序萃取程序。巨集單元能夠被平面化從而產生具有基礎單元的網表,並且能夠在電路模擬期間被重新組合,由此減小了反覆運算的次數,使得調節流程更有效率。時脈網路通過在網中增加或移除交叉連接來平衡時脈網的每個驅動器上的電容性負載。
Description
本發明涉及積體電路。更特別地,本發明涉及半導體裝置上的時脈分佈網路。
對於合適地運行的半導體裝置而言,其必須在近似相同時間分佈時脈信號至其並行的「時序元件」,諸如正反器、鎖存器和記憶體。當時脈信號在不同時間到達這些並行元件時,所產生的「時脈歪斜」可以引起多種問題,包含設置時間和保持時間違規,其可以危害沿著裝置傳輸的資料的完整性。
大型半導體裝置通過使用時脈分佈網路向裝置上的元件分佈時脈信號來減小歪斜。為了確保時脈信號的上升時間和下降時間滿足設計要求,以規則間隔插入CMOS反相器或緩衝器(因為反相器和緩衝器在時脈分佈網路中具有相似的功能,所以這些術語在該應用中可互換地使用,並且也稱作時脈驅動器或時脈驅動元件)。該網路可以在多個點分叉。時脈網路的這一分叉以及在時脈中CMOS反相器的插入引起時脈歪斜增加。時脈歪斜可以由於其它原因而增加,諸如結構問題、沿著時脈分佈網路的負載中的變化、程序中的
變化、電壓、或反相器的溫度,以及時脈分佈網路中的互連中的其它效應。
用於減小時脈歪斜的一種結構是時脈網(clock mesh),其引入互連元件(稱作交叉連接)以短路時脈分佈網路中的反相器的輸出。這些交叉連接減小了在時脈驅動元件之間的時脈信號的延遲,由此減小了時脈歪斜,儘管以短路功率為代價。用於減小時脈歪斜的第二種結構是混合樹網(hybrid-tree mesh),諸如第一A圖至第一B圖的混合樹網100。第一A圖中所示的混合樹網100的網部分包含支援肋部120和130的脊部110、在肋部120上的反相器121A-D、耦合肋部120和130上的時脈驅動元件的交叉連接121和122、以及非直線時脈網區域140。雖然第一A圖示出了沿著肋部120和130在元件之間的交叉連接,但是在其它結構中,在時脈分佈網路中的其它位置處或者位置的組合處插入交叉連接,諸如在時脈分佈網路內、在其端部處或者二者。網部分100又由第一B圖中所示的分層二進位樹結構150驅動,其中時脈驅動元件145(層級L2)驅動4個時脈驅動元件120A-C(層級L1),並且時脈驅動元件160(層級L3)驅動元件145和層級L2上的其它元件。
雖然第一A圖與第一B圖示出了若干反相器、肋部和交叉連接以簡化附圖,但是時脈分佈網路典型地具有幾十萬個這種元件,引導時脈信號至成千上萬個時脈接收(時序)元件。這些元件呈現至時脈分佈網路的不同負載,從而導致更高的歪斜,正如諸如第一A圖中的非直線部件140之類的其它結構。
為了減小短路功率,重要的是保持在其輸出被短路的反相器的輸入之間的歪斜盡可能低。因此,重要的是在設計時減小時脈分佈網路的結構歪斜。可能不能保證時脈分佈網路的其輸出與交叉連接短路的反相器具有相同的負載特性。因此,需要可調節的時脈反相器來減小結構歪斜。時脈
反相器被調節,從而使得驅動大負載的那些時脈反相器具有,大驅動強度,並且驅動小負載的那些時脈反相器具有更小的驅動器強度。在混合樹網時脈分佈網路的最末級中,負載可以由於各種原因而顯著變化,包含正反器密度和非直線時脈網區域的變化。
可調節的時脈反相器可以通過組合多個基礎單元並且連接/斷開連接它們的輸出以形成不同的有效驅動強度來構造。這種方式,輸入電容保持相同並且僅輸出驅動強度改變,因此使得時脈網路的調節更容易並且更可預知。製作可調節的時脈反相器的一種方式是將它們組合以製作一個巨集單元並且隨後在需要的地方使用巨集單元。這種方式的一個缺點是由電子設計自動化(EDA)工具通過實體設計的所有層級將這一巨集單元視為單一單元。這可能需要精確地電晶體層級萃取以及巨集單元特性分析。此外,為了將巨集單元維持為單一單元,必須產生時序資料庫、實體單元視圖、佈局圖對電路圖檢查(LVS)網表以及用於該單元的其它附屬品。然而,將巨集單元分解為它們的部件基礎單元將使得使用這些巨集單元調節時脈分佈網路極為困難。
在本發明的第一方面中,一種製備積體電路以用於調節的方法包含:產生在積體電路設計中被產生實體的巨集單元的集合,其中積體電路設計包含用於驅動積體電路上的電容性負載的驅動器;選擇用於每個巨集單元的輸入網表和輸出網表的位置並且產生標記位置的端子;確定端子和用於巨集單元的引腳的名稱;以及通過根據預定條件平衡驅動器上的電容性負載來初始地調節積體電路。
在一個實施例中,該方法進一步包含使用佈局和佈線(PnR)工具打開積體電路的實體資料庫。積體電路包含包含交叉連接的時脈網路。作為一些示例,時脈網路包含時脈網、時脈樹網或者混合樹網。時脈網路通過增加交叉連接、
移除交叉連接或二者來調節。
在一個實施例中,每個巨集單元僅包含一個或多個對應的標準尺寸的基礎單元。在一個實施例中,該方法進一步包含平面化每個巨集單元以產生包含對應的基礎單元的網表,並且調節積體電路包含在電路模擬期間使用端子名稱和巨集單元引腳的名稱將基礎單元重新組合成對應的巨集單元。較佳地,端子名稱和巨集單元的名稱被儲存在檔案中。可替換地,端子名稱和巨集單元引腳名稱被嵌入在對應的端子名稱中。在一個實施例中,端子的實體位置資訊也被嵌入在對應的端子名稱中。
在一個實施例中,該方法進一步包含引入刺激物至積體電路的網表,並且測量在巨集單元的輸入和輸出處的電路參數。調節包含均衡在積體電路的模擬期間測量的一個或多個參數。作為一些示例,一個或多個參數包含延遲、電壓擺動(slew)、電流、電荷或者其任意組合。
較佳地,調節包含縮放巨集單元直至滿足退出標準。退出標準的一些示例包含巨集單元的尺寸等於目標尺寸、測量的電壓擺動在預定範圍內、縮放的次數已經達到預定限度或者其任意組合。在一個實施例中,縮放基於公式New_size=Current_size*(1+(Current_slew-Target_slew)/(Target_slew)),其中New_size是巨集單元的新尺寸,Current_size是巨集單元的當前尺寸,Current_slew是當前電壓擺動以及Target_slew是預定目標電壓擺動。在另一實施例中,縮放基於公式New_size=Current_size*(1+(Current_slew-Target_slew)/(Current_slew)),其中New_size是巨集單元的新尺寸,Current_size是巨集單元的當前尺寸,Current_slew是當前電壓擺動以及Target_slew是預定目標電壓擺動。
在第二方面中,一種用於調節積體電路設計的系統包含:處理器;合成模組,被配置成產生在積體電路設計中被產生實體的巨集單元的集合,其中積體電路設計包含用
於驅動積體電路上的電容性負載的驅動器;佈局和佈線模組,被配置成選擇用於每個巨集單元的輸入網和輸出網的位置、產生標記位置的端子、以及確定和用於巨集單元的端子引腳的名稱;以及驗證模組,被配置成調節積體電路以根據預定條件平衡驅動器上的電容性負載。系統進一步包含被耦合至合成模組的巨集單元庫,其中巨集單元庫僅包含標準尺寸的巨集單元。在一個實施例中,積體電路包含包含交叉連接的時脈網路。作為一些示例,時脈網路包含時脈網、時脈樹網或混合樹網。
在本發明的第三方面中,具有在其上的時脈分佈網路的半導體裝置包含從巨集單元形成的時脈驅動元件,巨集單元僅包含標準尺寸的基礎單元,其中針對每個巨集單元,對應的基礎單元相對於巨集單元根據預定佈局被佈置,並且進一步地,其中巨集單元已經在模擬期間根據一個或多個電路模擬參數被縮放。作為一些示例,一個或多個電路模擬參數包含延遲、電壓擺動、電流、電荷或者其任意組合。作為一些示例,時脈分佈網路包含時脈樹、時脈網或混合樹網。
100‧‧‧混合樹網
110‧‧‧脊部
120‧‧‧支援肋部
120A‧‧‧時脈驅動元件
120B‧‧‧時脈驅動元件
120C‧‧‧時脈驅動元件
120D‧‧‧時脈驅動元件
120E‧‧‧時脈驅動元件
121‧‧‧交叉連接
122‧‧‧交叉連接
130‧‧‧支援肋部
140‧‧‧非直線部件
150‧‧‧分層二進位樹結構
160‧‧‧時脈驅動元件
145‧‧‧驅動元件
200‧‧‧分散式時脈網路
400‧‧‧佈局
410A‧‧‧反相器
420A‧‧‧反相器
430A‧‧‧反相器
440A‧‧‧反相器
450A‧‧‧反相器
410B‧‧‧輸出引腳
420B‧‧‧輸出引腳
430B‧‧‧輸出引腳
440B‧‧‧輸出引腳
450B‧‧‧輸出引腳
480‧‧‧導通孔
500‧‧‧佈局
510A‧‧‧反相器
520A‧‧‧反相器
530A‧‧‧反相器
540A‧‧‧反相器
550A‧‧‧反相器
510B‧‧‧輸出引腳
520B‧‧‧輸出引腳
530B‧‧‧輸出引腳
540B‧‧‧輸出引腳
550B‧‧‧輸出引腳
580‧‧‧導通孔
600‧‧‧佈局
610A‧‧‧反相器
620A‧‧‧反相器
630A‧‧‧反相器
640A‧‧‧反相器
650A‧‧‧反相器
610B‧‧‧輸出引腳
620B‧‧‧輸出引腳
630B‧‧‧輸出引腳
640B‧‧‧輸出引腳
650B‧‧‧輸出引腳
680‧‧‧導通孔
700‧‧‧步驟
701‧‧‧步驟
705‧‧‧步驟
710‧‧‧步驟
715‧‧‧步驟
720‧‧‧步驟
725‧‧‧步驟
730‧‧‧步驟
735‧‧‧步驟
740‧‧‧步驟
750‧‧‧Verilog/VHDL庫
755‧‧‧標準單元庫
760‧‧‧查閱資料表
765‧‧‧Tech檔
770‧‧‧Tech檔
800‧‧‧步驟
801‧‧‧步驟
803‧‧‧步驟
805‧‧‧步驟
807‧‧‧步驟
809‧‧‧步驟
900‧‧‧網表
1000‧‧‧網表
1100‧‧‧步驟
1101‧‧‧步驟
1105‧‧‧步驟
1110‧‧‧步驟
1200‧‧‧步驟
1201‧‧‧步驟
1205‧‧‧步驟
1210‧‧‧步驟
1215‧‧‧步驟
1220‧‧‧步驟
1225‧‧‧步驟
1230‧‧‧步驟
1235‧‧‧步驟
1300‧‧‧輸入佈線
1301‧‧‧標準單元
1305‧‧‧標準單元
1310‧‧‧標準單元
1315‧‧‧標準單元
1320‧‧‧標準單元
1380‧‧‧導通孔
1390‧‧‧輸入端子
1400‧‧‧結構
1401‧‧‧標準單元
1405‧‧‧標準單元
1410‧‧‧標準單元
1415‧‧‧標準單元
1420‧‧‧標準單元
1445‧‧‧輸出引腳
1450‧‧‧輸出引腳
1455‧‧‧輸出引腳
1460‧‧‧輸出引腳
1465‧‧‧輸出引腳
1470‧‧‧VIA堆疊
1500‧‧‧步驟
1501‧‧‧步驟
1503‧‧‧步驟
1505‧‧‧步驟
1507‧‧‧步驟
1509‧‧‧步驟
1600‧‧‧電子設計工具
1610‧‧‧記憶體
1615‧‧‧電腦可執行指令
1620‧‧‧區域
1630‧‧‧處理器
以下附圖用於說明本發明的實施例。在所有附圖中,相同的附圖標記指代相同或相似的元件。
第一A圖與第一B圖是現有技術的網狀-樹狀混合時脈分佈網路的高階圖。
第二圖示意性地示出了驅動呈現不同負載的時序元件的時脈分佈網路的一部分。
第三A圖至第三D圖是用於說明如何根據本發明的原理組合標準尺寸的單元以調節時脈分佈網路的圖。
第四圖至第六圖是根據本發明的實施例的分別示出64X、32X和0X強度時脈反相器的規畫的半導體裝置佈局。
第七圖是數位設計流程的步驟的流程圖,包含根據本發明的一個實施例組合時脈分佈網路中的時脈驅動元件。
第八圖是根據本發明的一個實施例的用於組合標準尺寸的時脈驅動元件的程序的步驟的流程圖。
第九圖和第十圖是根據本發明的一個實施例的說明如何構造可調節的時脈反相器的Verilog硬體描述語言網表。
第十一圖是根據本發明的一個實施例的用於在半導體佈局中佈局單元的步驟的流程圖。
第十二圖是根據本發明的一個實施例的用於在單元之間佈線互連的步驟的流程圖。
第十三圖是根據本發明的一個實施例的說明用於巨集單元的輸入佈線的示意圖。
第十四圖是根據本發明的一個實施例的說明用於巨集單元的輸出佈線的示意圖。
第十五圖是根據本發明的一個實施例的用於製備佈局和佈線時脈分佈網路的實體資料庫以用於調節的程序的步驟的流程圖。
第十六圖是根據本發明的一個實施例的用於執行數位設計流程的設計工具的方塊圖。
根據本發明的原理,在電子設計自動化(EDA)程序的電阻器-電晶體邏輯(RTL)級產生可調節的時脈驅動器的軟巨集單元。EDA程序流程中的所有工具將單元分解成部件基礎單元,因此消除了維持時序資料庫、實體單元視圖、LVS網表和用於巨集單元的其它附屬品(collateral)的需要。
根據本發明,產生可調節的時脈驅動器的軟巨集,但是巨集單元在流程中不被維持。軟巨集在RTL級產生且在流程中使用的工具以將單元分解成其部件基礎單元,因
此消除了對於維持時序資料庫、實體單元視圖、LVS網表和用於巨集單元的其它附屬品的需要。
以下描述首先解釋來自標準單元庫的巨集單元如何被組合以產生用於驅動時脈分佈網路中的時脈接收元件的驅動強度信號的可調節的範圍。第二,該描述解釋這些巨集單元如何被佈局和佈線。第三,該描述根據本發明的原理解釋由巨集單元構建的這些時脈網路如何被調節。
根據本發明的原理,半導體裝置時脈分佈網路僅使用標準尺寸的反相器,而不管用於驅動裝置上的時序(時脈接收)元件所需的驅動強度。因為定制尺寸的反相器無需從協力廠商製作或購買,所以設計程序比現有技術程序便宜。此外,因為這些標準尺寸的反相器已經被更徹底地測試並且運行更可預測,所以用於使用這些時脈分佈網路調試半導體裝置的時間減小了,從而允許產品更快地投放到市場。
作為一個示例,在電子設計自動化期間,用於時脈接收部件的驅動強度被確定。系統判斷定制尺寸的CMOS反相器的組合,使得它們的組合驅動強度足夠大以驅動時序元件,而足夠小以最小化短路功率。定制尺寸的部件的組合隨後被模擬,並且隨後佈局和佈線對應的反相器以形成實體半導體裝置。所得的時脈反相器驅動單個半導體裝置上的各種負載而維持低歪斜,並且具有驅動強度範圍以及足夠的細微性以維持低歪斜。
在一個實施例中,標準尺寸的反相器(或者其它「時脈驅動」元件)具有0X、8X、12X和16X的驅動強度。這些反相器能夠組合以形成可調節的反相器,驅動強度為0X、8X、12X、16X、20X(8X+12X)、24X(12X+12X)、28X(20X+8X)、32X(16X+16X)、36X(8X+12X+16X)、40X(8X+16X+16X)、44X(12X+16X+16X)、48X(16X+16X+16X)、52X(8X+12X+16X+16X)、56X(8X+16X+16X+
16X)和64X(16X+16X+16X+16X)。將理解的是,其它反相器驅動強度能夠組合以形成這些值,例如24X驅動強度能夠有具有8X驅動強度的3個反相器形成。較佳地,驅動強度通過組合最小數目的反相器來確定。換而言之,在一個實施例中,驅動強度D通過根據等式(1)組合反相器來確定:DX=8X*a+12X*b+16X*c 等式(1)其中a+b+c(反相器的總數目)被最小化。根據本發明的原理,使用其它設計限制,能夠使用其它選擇條件。
通過將反相器組合成各種群組,分散式時脈網路能夠產生具有預定值範圍的「成組的」反相器。在這一示例中,時脈反相器能夠具有在範圍0X(例如,其中僅需要虛設負載以用於對稱)至64X中的任何值,具有值0X、8X、12X、16X至56X,以4X增量,以及64X。將理解的是使用不同的標準尺寸的反相器,能夠產生以其它增量的其它信號強度範圍。
第二圖示出了驅動三個不同負載L1、L2和L3的分散式時脈網路200的一部分。時脈網路200能夠形成任何半導體裝置(諸如微處理器)的一部分。在半導體裝置200的合成期間,負載值L1、L2和L3被確定。在這一示例中,值L1、L2和L3彼此不同,這是因為正反器密度和非直線時脈網的變化。本領域技術人員將理解到負載能夠由於其它原因而變化。
負載L1需要具有20X驅動強度的時脈信號,負載L2需要具有24X驅動強度的時脈信號,以及負載L3需要具有52X驅動強度的時脈信號。時脈分佈網路的反相器僅使用驅動強度值為8X、12X和16X的標準尺寸的單元來製作。具有20X驅動強度的時脈信號通過組合或「成組(ganging)」分別具有8X和12X的驅動強度的兩個標準尺寸的反相器來製作。具有24X驅動強度的時脈信號通過組合分別具有8X和16X的驅動強度的兩個標準尺寸的反相器來製作。具有52X
驅動強度的時脈信號通過組合分別具有16X、16X、12X和8X的驅動強度的四個標準尺寸的反相器來製作。在這個示例中,合成步驟之後是模擬、時序分析、佈局和佈線、萃取和驗證步驟。
第三A圖至第三D圖示出了具有8X、12X和16X的驅動強度(圖3A)的僅三個單元的標準單元庫如何能夠被組合以產生具有20X(圖3B)、32X(圖3C)和52X(圖3D)的驅動強度的單元,僅給出了可能的組合的幾個示例。
在一個示例中,標準尺寸的反相器全部被製作於半導體裝置的一個或多個層上。反相器由VIA程式設計來組合或「調節」,也就是說,通過增加或移除導通孔,該導通孔將反相器電耦合在一起且電耦合至驅動時序元件的外部引腳。參照第一B圖,以此方式調節並不影響時脈分佈網路中的上游元件(例如145和160)。
在一個實施例中,基礎單元被組合以產生使用「VIA34程式設計」可調節的時脈反相器。基礎單元在彼此的頂部地被佈局在半導體裝置的相鄰行上,並且在半導體裝置的金屬層4(M4)中繪圖連接至輸出網(output net)的帶(strap)。M4帶又能夠通過更高金屬層被連接。因此,基礎單元的輸出能夠通過分別插入或移除從金屬層3(M3)至M4的導通孔而連接至輸出網或者從輸出網斷開連接。所有其它金屬層或導通孔保持未被觸碰。因此,時脈反相器的驅動強度能夠僅通過增加或移除在兩層(M3和M4)之間的導通孔(VIA34)來調節。
第四圖至第六圖是分別示出64X、32X和0X驅動強度時脈反相器的VIA34程式設計的佈局,在M4和用於M3中的每個單元的輸出引腳中使用相同(基礎)標準尺寸的時脈單元。每個佈局示出了包含M4中的16X、12X、8X、12X和16X反相器的左手側、包含M3中的相應反相器的輸出引腳的右手側以及在M3和M4之間用於電耦合左手側上的反相
器至它們相應的輸出引腳的導通孔。
第四圖例如是具有被程式設計為連接所有M3輸出引腳(410B、420B、430B、440B、450B)至所有16X、12X、8X、12X和16X反相器(410A、420A、430A、440A、450A)的導通孔480的佈局400,由此在輸出引腳上產生了具有16X+12X+8X+12X+16X或64X的組合驅動強度的時脈信號。第五圖是具有被程式設計為連接兩個M3輸出引腳(510B和550B)至兩個對應的16X反相器(510A和550A)的輸出的導通孔580的佈局500,由此產生了具有16X+16X或32X的組合驅動強度的時脈信號。第六圖是其中移除了將M3輸出引腳連接至16X、12X、8X、12X和16X反相器的導通孔680的佈局600,由此產生了0X(虛設)驅動強度時脈反相器。本領域技術人員將理解到用於組合時脈元件以產生具有其它時脈強度的時脈信號的其它VIA34程式設計。
第七圖示出了在根據本發明的實施例中所使用的,用於具有對應的硬體部件的半導體裝置的數位設計流程的步驟700的流程圖。使用硬體描述語言和Verilog/VHDL庫750的設計分析、設計規範和設計實現分別發生在步驟701、705和710中。合成步驟發生在步驟715,使用標準單元庫755。在該步驟中,其可以包含多個子步驟,部件(包含時脈分佈網路和時序部件)的構建模組被合成。時脈分佈網路僅使用標準尺寸的單元來合成。在這一階段,確定了邏輯電路。合成步驟715的輸出是網表,即指示裝置以及在裝置之間的互連的ASCII檔。模擬發生在步驟720中,使用網表來驗證設計,並且如果不符合規範,則程序迴圈回步驟710。相反地,程序繼續在步驟725中的時序分析,其中例如確定了歪斜。步驟725之後進行在步驟730中的佈局和佈線、在步驟735中的萃取(其中萃取並且檢查影響性能的部件)和驗證步驟740(其中裝置被製作並且設計被改進以優化或修改)。如果設計必須被修改,則程序迴圈回至步驟720。
如第七圖中所示,時序分析步驟725存取用於時序的查閱資料表760,佈局和佈線步驟730存取用於佈局值765的Tech檔,以及萃取步驟735存取用於RC寄生萃取770的Tech檔。
將理解的是,步驟700僅為本發明的一個實施例的示例。在其它實施例中,增加其他步驟,組合一些步驟以及以不同循序執行步驟序列,僅舉幾個修改示例。
第八圖示出了用於判斷儲存於第七圖中的標準單元庫755中的標準單元反相器的步驟800。在程序的這一階段,每個時脈反相器(並且因此所需的或「目標」驅動強度)已經被確定,諸如在合成步驟715、驗證步驟740或一些其它步驟中。在開始步驟801中,選擇由目標驅動強度驅動的第一時脈接收元件。在步驟803中,判斷儲存於標準單元庫中的標準尺寸的巨集單元的組合,以產生合適的時脈驅動強度信號,諸如如上等式1所示。在步驟805中,程序確定設計中是否存在另一時脈接收元件,並且如果存在則迴圈回步驟803;相反地,程序結束於步驟809。
將理解的是,步驟800僅為本發明的一個實施例的示例。在其它實施例中,增加其他步驟,組合一些步驟以及以不同循序執行步驟序列,僅舉幾個修改示例。
第九圖是根據本發明的一個實施例的示出了如何構造可調節的時脈反相器的Verilog硬體描述語言網表900。網表900示出了具有時脈反相器的二進位樹的構造,時脈反相器具有短路時脈反相器的輸出的交叉連接。在這一示例中,巨集單元驅動強度為0X、8X、12X、16X、20X、24X、28X、32X、36X、40X、44X、48X、52X、56X和64X,僅使用來自標準單元庫的8X、12X和16X驅動強度時脈反相器單元。它們被連接以形成時脈站(clock station)。網狀時脈分佈網路由驅動時脈網的一個或多個這種時脈站構成。在這一示例中,可調節的時脈反相器是xp_ckinvx0、xp_ckinvx8、
xp_ckinvx12、xp_ckinvx16、xp_ckinvx20、xp_ckinvx24、xp_ckinvx28、xp_ckinvx32、xp_ckinvx36、xp_ckinvx40、xp_ckinvx44、xp_ckinvx48、xp_ckinvx52、xp_ckinvx56和xp_ckinvx64,其分別表示0X、8X、12X、16X、24X、28X、32X、36X、40X、44X、48X、52X、56X和64X的驅動強度。用來構造可調節的時脈反相器的基礎標準單元是兩個stdcell_ckinv_x16單元,兩個stdcell_ckinv_x12單元和一個stdcell_ckinv_x8單元。stdcell_ckinv_x16、stdcell_ckinv_x12和stdcell_ckinv_x8單元分別表示來自標準單元庫的16X、12X和8X驅動強度時脈反相器。輸入網(input net)是「A」,並且輸出網是「Z」。
雖然以上示例示出了可調節的反相器的構造,但是可以將本發明擴展至其它單元,例如包含緩衝器或任何其他邏輯閘。可調節緩衝器或時脈驅動元件也能夠通過組合基礎標準單元的小集合並且僅通過導通孔改變使得它們的輸出連接可程式設計。
第十圖根據本發明的一個實施例的具有交叉連接的二進位時脈樹的Verilog硬體描述語言網表1000,用於說明實例名稱如何被嵌入有佈局資訊。模組「clkstationSample」是使用可調節的時脈反相器之一由時脈驅動器構成的時脈站。模組「clkstationSample」具有一個輸入「CLK_L5」和一個輸出「clk」。輸出埠clk_L4、clk_L3也能夠被增加用於時脈分佈的中間節點。將這些埠增加至網表有助於在時脈站的每級進行調節。此外,在時脈站中被產生實體的每個時脈反相器的實例名稱在其中具有時脈站中的驅動器的層級以及驅動器的佈局的實體X座標和Y座標。在這一示例中,以xL2開頭的所有實例名稱表示時脈站的最末(葉)級。xL2驅動器由xL3驅動器驅動,而xL3驅動器又由xL4驅動器驅動。X座標和Y座標在實例名稱中緊跟驅動器的層級數目。例如實
例xp_ckinvx64 xL3_5094p600_8p100(.A(clk_L4),Z(clk_L3));描述了在X座標5094.6和Y座標8.1處在層級3的、具有輸入網clk_L4和輸出網clk_L3的64X驅動強度驅動器。實例名稱(具有層級和實體座標資訊)在佈局和調節流程中起作用,如下所述。
對於時脈站的佈局,網表被讀取到PnR(佈局和佈線)工具中,並且作為單元的一部分的實體座標資訊用於引導佈局。例如,單元xL3_5094p600_8p100是巨集單元xp_ckinvx64的實例,巨集單元xp_ckinvx64由5個單元xinv1、xinv2、xinv3、xinv4、xinv5構成。當網表被讀取到PnR工具中時,PnR工具將識別以下5個基礎單元:xL3_5094p600_8p100/xinv1
xL3_5094p600_8p100/xinv2
xL3_5094p600_8p100/xinv3
xL3_5094p600_8p100/xinv4
xL3_5094p600_8p100/xinv5以替代識別它們作為一個實體單元的一部分。為了將這五個單元佈局在一起,佈局資訊被嵌入在實例的名稱中,以首先以(X,Y)座標5094.6,8.1為中心或距該座標一些偏移來佈局單元xL3_5094p600_8p100/xinv5。隨後,單元xL3_5094p600_8p100/xinv4被佈局在xL3_5094p600_8p100/xinv5上方的一個標準單元行(或者標準單元行的一些整數倍數)。最後將xL3_5094p600_8p100/xinv3、xL3_5094p600_8p100/xinv2、xL3_5094p600_8p100/xinv1全部在彼此的頂部佈局。可替換地,能夠在相同行上彼此相鄰佈局單元或者將一些單元保持在一個行中並且將其它單元保持在另一行中。單元的任何佈
置是允許的,只要單元不重疊並且每個巨集單元內的基礎單元的相對位置保持相同。要求這一點以使得巨集單元的佈線是確定的。巨集單元內的每個基礎單元的相對佈局確保了基礎單元的輸入和輸出引腳位置是已知的。
第十一圖示出了根據本發明的一個實施例的用於佈局巨集單元內的所有基礎單元的程序。在步驟1101中,在時脈站設計中被產生實體的所有巨集單元的集合被創建。隨後,在步驟1105中,程序迴圈經過該集合中的所有巨集單元實例,並且隨後從實例名稱萃取(X,Y)座標資訊。隨後,在步驟1110中,檢索巨集單元內的基礎單元,並且佈局在距在步驟1105中判斷的(X,Y)座標固定的相對位置/偏移處。
一旦佈局了所有單元,它們被實例唯一化(uniquified)並且連結至實體資料庫。在來自Synopsys的IC Compiler PnR工具中利用以下命令完成這一點:uniquify_fp_mw_cel
link
link_physical_library
單元的輸入和輸出的佈線也借助於實例名稱和Verilog硬體描述語言網表被引導。這一佈線使用佈局資訊並且隨後將單元連接在一起。這是可能的,只是因為巨集單元內的每個基礎單元的佈局處於距被嵌入在單元的實例名稱中的(X,Y)座標已知的偏移處。
第十二圖示出了根據本發明的一個實施例的用於佈線的程序的步驟1200。在步驟1201中,在時脈站設計中被產生實體的巨集單元的集合被創建。隨後,在步驟1205中,程序迴圈經過該集合中的所有巨集單元實例,並且隨後從實例名稱萃取(X,Y)座標資訊。最後,在步驟1210中,用於每個基礎單元的引腳位置被檢索。隨後,在步驟1215中,使
用來自步驟1205的佈局資訊計算用於基礎單元的實例的引腳的位置,以計算每個引腳的偏移。隨後,在步驟1220中,創建實體佈線以將巨集單元內的所有基礎單元的輸入引腳彼此連接並且利用端子標記一個或多個位置,以說明將巨集單元的輸入連接在一起。隨後在步驟1225中,創建實體佈線以將巨集單元內的所有基礎單元的輸出引腳彼此連接並且利用端子標記一個或多個位置,以說明將巨集單元的輸出連接在一起。隨後在步驟1230中,根據網表中的連線來連接巨集單元輸入和輸出。最後,在步驟1235中,均衡佈線長度以維持低歪斜。
在一個實施例中,步驟1100和1200在圖7的步驟730中被執行。
第十三圖和第十四圖是根據本發明的一個實施例分別用來說明輸入佈線1300和輸出佈線1400的結構1300和1400。結構1300示出了驅動強度為16X(1301和1320)、12X(1305和1315)以及8X(1310)的標準單元,連接M3輸入引腳至M4帶的VIA34導通孔(1380),以及被標記為巨集單元的輸入的在M4上的輸入端子(1390)。結構1400示出了驅動強度為16X(1401和1420)、12X(1405和1415)以及8X(1410)的標準尺寸的單元,16X反相器(1445和1465)、12X反相器(1450和1460)以及8X反相器(1455)的輸出引腳,通過VIA堆疊(1470)連接M3輸出的M8帶,連接M8輸出接線(1430)的M9帶,以及被標記為巨集單元的輸出的在M9上的輸入端子(1425)。
在第十三圖和第十四圖的示例中,巨集單元中的基礎單元被佈局在單個行中,其中每個基礎單元被佈局在另一個上面。可替換的佈置也是可能的,但是要求不同的輸入和輸出佈線圖案。所有巨集單元將具有相同的(或相似的)佈線圖案,因為巨集單元內的每個基礎單元的佈局(並且因此輸入和輸出引腳)相對於被嵌入在巨集單元的實例名稱中
的(X,Y)座標是相同的。
第十三圖和第十四圖示出了反相器如何能夠使用被嵌入在實例名稱中的實體位置資訊一起被佈局和佈線,並且使得它們在邏輯上表現得如同一個巨集單元,但是在實體資料庫中表示為多個基礎單元。這一結構也能夠被擴展至其它單元,包含緩衝器或任何其它邏輯閘。可調節的緩衝器或時脈驅動元件也可以以此方式被佈局和佈線。
在本發明的一個實施例中,由巨集單元(其又由基礎單元的小集合組成)構建的時脈網路被調節,同時巨集單元被分解成它們的基礎單元。在一個實施例中,基於以下假設進行調節:
A1.在電阻器-電晶體邏輯(RTL)級創建巨集單元的軟巨集。
A2.巨集單元被佈局和佈線,並且實體資料庫是可獲得的,其中巨集單元的佈局和佈線被固定。
A3.在時脈網路中被產生實體的巨集單元的實例名稱已經被嵌入其內,層級資訊(時脈樹中的層級)以及唯一識別碼(例如可以使用實體位置作為唯一識別碼)。
此外,在網表900中示出了用於這一示例的巨集單元,並且網表800示出了具有交叉連接的二進位時脈樹。如上所述,在時脈站中被產生實體的每個時脈反相器的示例名稱在其中具有時脈站中的驅動器的層級,以及驅動器的佈局的實體X座標和Y座標。因此,實例名稱是唯一的,如在第三假設A3中那樣。
第十五圖示出了根據本發明的一個實施例的、用來製備被佈局和佈線的時脈分佈網路的實體資料庫以用於調節的步驟1500。在步驟1501中,在PnR工具中打開時脈網路(或時脈站)的實體資料庫。隨後,在步驟1503中,選擇
每個巨集單元的輸入網上的位置並且創建端子以標記該位置。隨後在步驟1505中,選擇每個巨集單元的輸出網上的位置並且創建端子以標記該位置。能夠在非常接近巨集單元或者在巨集單元上面的區域中選擇這一位置。隨後,在步驟1507中,對於創建的所有端子,將端子名稱和巨集單元引腳名稱諸如維持在檔案中。可選地,巨集單元引腳的方向同樣被維持。可替換地,這一資訊在端子名稱被創建時被嵌入在端子名稱中。實體位置資訊同樣能夠被維持。最後,在步驟1509中,通過在時脈網中增加或移除交叉連接來初始地調節時脈網,以盡可能多地均衡時脈網的每個驅動器上的電容性負載。初始調節能夠在沒有模擬的情況下僅通過比較接線長度或估計的互連電容來進行,僅舉兩個這種參數為例,由時脈網的每個時脈驅動器驅動。第十三圖和第十四圖分別示出了已經在第十五圖中執行的步驟1503和1503之後的實體資料庫。
在步驟1509之後,實體佈線資訊(互連的電阻和電容)使用萃取工具來萃取。萃取工具被假設為保存在步驟1505和1507中的實體資料庫中創建的端子。萃取工具產生網表,該網表隨後用於模擬和調節時脈網路。因此,巨集單元僅被創建為軟巨集並且其本身不存在巨集單元的實體佈局視圖,萃取工具將平面化(flatten)巨集單元並且產生具有基礎單元的網表。表1示出了一個示例,巨集單元的基礎單元在萃取的網表中:
表1
在使用這些巨集單元的時脈分佈網路的調節期間,這些單元在電路模擬期間必需被重新組合。在不能將基礎單元重新組合回巨集單元的情況下,調節流程將包含中繼出(relay out)和重新萃取時脈分佈網路。這可以使得調節流程不方便並且限制了反覆運算的次數。表2說明了這一點,示出了表1的基礎單元如何收摺(collapse)成巨集單元以用於調節目的:
在1503和1505中創建的端子用來連接萃取的網表中的收摺的巨集單元。在表2中示出的示例中,clk_L4_in1是在步驟1503中創建的端子,而clk_L3_out1是在步驟1505中創建的端子。端子被選擇為使得它們(實體地)位於巨集單元上面或者非常接近巨集單元。這一資訊可從步驟1507(其產生將每個端子匹配至巨集單元引腳名稱的檔案或者包含端子的實體位置)獲得。可替換地,這一資訊被嵌入在端子名稱本身中。在一個實施例中,使用腳本來進行待調節的巨集單元的這一收摺。同時,檔案能夠被產生以用於創建至時脈網路網表的刺激物和用於創建測量聲明以測量在巨集單元的輸入和輸出處的各種電路參數。因此,每個巨集單元的輸入和輸出利用端子被標記(例如在步驟1503和1505中),測量聲明能夠在這些端子處產生。僅作為一些示例,測量包含延遲、電壓擺動、電荷、電流或這些參數的任意組合。
在一個實施例中,時脈網路通過改變一些巨集單元的有效驅動強度來調節,以便均衡在時脈分佈的相同層級在所有驅動器的輸出處的延遲和電壓擺動。這一調節借助於
電路模擬工具(例如Hspice)來進行。時脈網路也能夠通過比較並且嘗試均衡在電路模擬期間測量的一個或多個參數來進行調節。僅作為一些示例,這些參數包含延遲、電壓擺動、電流或電荷。在以下示例中,電壓擺動用作該參數,但是也能夠使用任何其它參數或參數的組合。
在這一示例中,「Target_slew」是用於特定巨集單元的輸出的目標電壓擺動值,並且「Currrent_slew」是在巨集單元的輸出處從電路模擬測量的電壓擺動。「Current_size」是巨集單元的當前尺寸(或驅動強度)。等式(2)用於匯出巨集單元的新尺寸,以基於電壓擺動測量來調節時脈網路:New_size=Current_size*(1+(Current_slew-Target_slew)/(Target_slew)) 等式(2)
在不同的實施例中,使用不同的等式來匯出巨集單元的新尺寸,諸如由等式(3)給出:New_size=Current_size*(1+(Current_slew-Target_slew)/(Current_slew)) 等式(3)
在可替換實施例中,使用查表來查找測量的電壓擺動值並且從該表確定新單元尺寸。不同的單元尺寸能夠與電壓擺動值的不同範圍相關聯。
一旦計算了新單元尺寸,新單元尺寸將被併入到用於模擬的網表中。具有新單元尺寸的時脈網路電路隨後再次被模擬並且驗證單元尺寸的影響。如果電壓擺動(或其它測量值)仍然未處於目標,則再次進行單元縮放。對此重複直至滿足退出標準。作為一些示例,退出標準包含以下退出條件中的一個或多個:對於所有巨集單元,New_size=Current_size。
電壓擺動(或任何其它測量變數)距目標值使用者定義的範圍內。
反覆運算的次數達到用於定義的限度。
本領域技術人員將理解到根據本發明的原理能夠使用的其它退出條件或者退出條件的組合。
一旦滿足退出標準,在用於模擬的電路網表以及用於時脈網路的RTL網表中更新所有的新尺寸。新單元尺寸將影響時脈網路中的佈局(具體而言為佈線)。更新的RTL網表用來引導佈局改變。
第十六圖是根據本發明的一個實施例的電子設計工具1600的方塊圖。參照第七圖、第八圖、第十一圖、第十二圖和第十五圖,電子設計工具1600包含處理器1630和記憶體1610。記憶體1610儲存包含用於執行步驟700、800、1100、1200和1500以及包含資料750、755、760、765和770的區域1620的電腦可執行指令1615的電腦可讀儲存介質。
在操作中,電子設計工具用於製作包含時脈分佈網路的半導體裝置。時脈分佈網路上的時序元件上的負載被確定,並且驅動強度被確定,以減小時脈分佈網路上的歪斜。時脈分佈網路上的反相器由來自標準單元庫的標準或「基礎」單元製作,由此減小了成本和用於製作時脈分佈網路以及因此用於製作作為整體的半導體裝置的製造時間。有利地,這些基礎單元可以用於在一定值範圍內「調節」驅動強度。
在佈局和佈線期間,包含基礎單元的巨集單元被產生實體,並且從實例名稱萃取(X,Y)座標資訊。巨集單元內的基礎單元隨後被佈局在距(X,Y)座標固定的相對位置/偏移處。隨後,通過以下步驟佈線巨集單元:產生在時脈站設計中被產生實體的巨集單元的集合,從實例名稱萃取(X,Y)座標資訊,取得每個基礎單元的引腳位置,使用(X,Y)座標資訊計算引腳的位置,創建實體佈線以將去往巨集單
元內的基礎單元的輸入引腳彼此連接並且利用端子標記一個或多個位置以說明將巨集單元的輸入連接在一起,產生實體佈線以將巨集單元內的所有基礎單元的輸出引腳彼此連接並且利用端子標記一個或多個位置以說明將巨集單元的輸出連接在一起,根據網表中的連線性連接巨集單元輸入和輸出,以及平衡佈線長度以維持低歪斜。
為了製備佈局和佈線時脈分佈網路的實體資料庫以用於調節,每個巨集單元的輸入和輸出網表被創建,並且端子被選擇以標記這些位置。對於所創建的所有端子,端子的名稱的清單,巨集單元引腳以及可選地引腳的方向被儲存,較佳地儲存於檔案中。可替換地,資訊在創建時被嵌入在端子名稱中。實體位置也能夠被包含。隨後,通過在時脈網中增加或移除交叉連接來初始地調節時脈網,以平衡時脈網的每個驅動器上的電容性負載。這一初始調節能夠僅通過比較接線長度或由時脈網中的每個驅動器驅動的估計的互連電容來進行。
雖然本說明書描述了本發明的不同實施例,但是將理解的是這些實施例能夠以任何數目的組合形式進行組合。在上文中給出的實施例僅用於說明目的並且並不意在限制本發明的範圍。本領域技術人員明顯的可以對實施例進行其它修改,而不背離由所附申請專利範圍請求項限定的本發明的精神和範圍。
1200‧‧‧步驟
1201‧‧‧步驟
1205‧‧‧步驟
1210‧‧‧步驟
1215‧‧‧步驟
1220‧‧‧步驟
1225‧‧‧步驟
1230‧‧‧步驟
1235‧‧‧步驟
Claims (35)
- 一種製備用於調節的一積體電路的方法,所述方法包含:產生在該積體電路之設計中樣例化的一巨集單元集合,其中該積體電路之設計包含用於驅動該積體電路上的電容性負載之驅動器;選擇用於各該巨集單元的輸入與輸出網表的位置,並且產生標記所述位置的端子;確定所述端子和用於所述巨集單元的引腳的名稱;以及藉由根據預定條件平衡所述驅動器上的一電容性負載以初始地調節該積體電路。
- 如申請專利範圍第1項所述的方法,進一步包含使用佈局和佈線(PnR)工具開啟該積體電路的一實體資料庫。
- 如申請專利範圍第2項所述的方法,其中該積體電路包含一時脈網路,該時脈網路含有交叉連接。
- 如申請專利範圍第3項所述的方法,其中該時脈網路包含一時脈網、一時脈樹網和一混合樹網中其一。
- 如申請專利範圍第3項所述的方法,其中所述調節該積體電路包含增加和移除所述交叉連接之任意組合。
- 如申請專利範圍第3項所述的方法,其中各所述巨集單元僅包含一個或多個對應的標準尺寸的基礎單元。
- 如申請專利範圍第6項所述的方法,進一步包含平面化各所述巨集單元以產生包含對應的基礎單元之一網表。
- 如申請專利範圍第7項所述的方法,其中所述調節該積體電路係包含:使用所述端子的名稱和所述巨集單元引腳的名稱,在電路模擬期間將所述基礎單元重新組合至對應的 巨集單元。
- 如申請專利範圍第8項所述的方法,進一步包含將所述端子名稱和所述巨集單元的名稱儲存在一檔案中。
- 如申請專利範圍第8項所述的方法,進一步包含將所述端子名稱和所述巨集單元引腳名稱嵌入對應的端子名稱中。
- 如申請專利範圍第10項所述的方法,進一步包含將一端子的實體位置資訊嵌入一對應端子名稱中。
- 如申請專利範圍第1項所述的方法,進一步包含對該積體電路的一網表引入刺激物,並且測量在所述巨集單元的輸入和輸出處之電路參數。
- 如申請專利範圍第12項所述的方法,其中所述調節包含平衡在該積體電路的模擬期間所測量的一個或多個參數。
- 如申請專利範圍第13項所述的方法,其中該一個或多個參數包含延遲、電壓擺動、電流、電荷或者其任意組合。
- 如申請專利範圍第14項所述的方法,其中所述調節包含縮放所述巨集單元,直至滿足一退出標準為止。
- 如申請專利範圍第15項所述的方法,其中該退出標準包含:所述巨集單元的尺寸等於一目標尺寸、所測量的電壓擺動是在一預定範圍內、縮放的次數已經達到一預定限度、或者其任意組合。
- 如申請專利範圍第16項所述的方法,其中所述縮放是基於公式:New_size=Current_size*(1+(Current_slew-Target_slew)/(Target_slew)),其中New_size是一巨集單元的新尺寸,Current_size是該巨集單元的當前尺寸,Current_slew是當前電壓擺動,以及Target_slew是一預定目標電壓擺動。
- 如申請專利範圍第16項所述的方法,其中所述縮放是基於 公式:New_size=Current_size*(1+(Current_slew-Target_slew)/(Current_slew)),其中New_size是一巨集單元的新尺寸,Current_size是該巨集單元的當前尺寸,Current_slew是當前電壓擺動,以及Target_slew是一預定目標電壓擺動。
- 一種用於調節一積體電路設計的系統,該系統包含:一處理器;一合成模組,配置以產生該積體電路設計中所樣例化之一巨集單元集合,其中該積體電路設計包含用於驅動該積體電路上的電容性負載的驅動器;一佈局和佈線模組,配置以選擇各該巨集單元的輸入和輸出網的位置,產生標記所述位置的端子,以及確定所述端子和所述巨集單元之引腳的名稱;以及一驗證模組,配置以調節該積體電路,以根據預定條件而平衡所述驅動器上的一電容性負載。
- 如申請專利範圍第19項所述的系統,進一步包含一巨集單元庫,其係耦合至該合成模組,其中該巨集單元庫僅包含標準尺寸的基礎單元。
- 如申請專利範圍第20項所述的系統,其中該積體電路包含一時脈網路,該時脈網路包含交叉連接。
- 如申請專利範圍第21項所述的系統,其中該時脈網路包含一時脈網、一時脈樹網和一混合樹網中其一。
- 如申請專利範圍第21項所述的系統,其中該合成模組係進一步配置以平面化各該巨集單元,以產生包含對應的基礎單元的一網表,且該驗證單元係進一步配置以於電路模擬期間使用所述端子名稱和所述巨集單元引腳的名稱將所述基礎單元重新組合至對應的所述巨集單元。
- 如申請專利範圍第23項所述的系統,進一步包含一模擬模組,其係配置以對該積體電路之一網表引入刺激物,並測量在所述巨集單元的輸入和輸出處的電路參數。
- 如申請專利範圍第24項所述的系統,其中該合成模組係進一步配置以藉由平衡在該積體電路的模擬期間所測量的一個或多個參數,以調節該積體電路設計。
- 如申請專利範圍第25項所述的系統,其中該一個或多個參數包含延遲、電壓擺動、電流、電荷、或者其任意組合。
- 如申請專利範圍第26項所述的系統,其中該合成模組係進一步配置以藉由縮放該基礎單元以調節該積體電路,直至滿足一退出標準為止。
- 如申請專利範圍第27項所述的系統,其中該退出標準包含:該巨集單元的尺寸等於一目標尺寸、所測量的電壓擺動是在一預定範圍內、該巨集單元的縮放次數已經達到一預定限度、或者其任意組合。
- 如申請專利範圍第27項所述的系統,其中所述縮放該巨集單元是基於一電路模擬參數而行。
- 如申請專利範圍第29項所述的系統,其中該電路模擬參數包含延遲、電壓擺動、電流、電荷、或者其任意組合。
- 如申請專利範圍第27項所述的系統,其中所述縮放是基於公式:New_size=Current_size *(1+(Current_slew-Target_slew)/(Target_slew)),其中New_size是一巨集單元的新尺寸,Current_size是該巨集單元的當前尺寸,Current_slew是當前電壓擺動,以及Target_slew是預定目標電壓擺動。
- 如申請專利範圍第27項所述的系統,其中所述縮放是基於公式: New_size=Current_size *(1+(Current_slew-Target_slew)/(Current_slew)),其中New_size是一巨集單元的新尺寸,Current_size是該巨集單元的當前尺寸,Current_slew是當前電壓擺動,以及Target_slew是一預定目標電壓擺動。
- 一種半導體裝置,其具有在其上的一時脈分佈網路,該時脈分佈網路包含:時脈驅動元件,其由僅包含標準尺寸的基礎單元之巨集單元所形成,其中針對各所述巨集單元,對應的基礎單元係根據一預定佈局相對於所述巨集單元而排列,且其中所述巨集單元已經在模擬期間根據一個或多個電路模擬參數而予以縮放。
- 如申請專利範圍第33項所述的半導體裝置,其中該一個或多個電路模擬參數包含延遲、電壓擺動、電流、電荷、或者其任意組合。
- 如申請專利範圍第33項所述的半導體裝置,其中該時脈分佈網路包含一時脈樹、一時脈網或一混合樹網。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/141,104 | 2013-12-26 | ||
US14/141,104 US9305129B2 (en) | 2013-12-26 | 2013-12-26 | System for and method of tuning clock networks constructed using variable drive-strength clock inverters with variable drive-strength clock drivers built out of a smaller subset of base cells |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201541272A true TW201541272A (zh) | 2015-11-01 |
TWI661325B TWI661325B (zh) | 2019-06-01 |
Family
ID=53482083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103145439A TWI661325B (zh) | 2013-12-26 | 2014-12-25 | 利用具以較小基本單元建置可變驅動強度時脈驅動器可變驅動強度時脈反相器建構之時脈網路的調整系統與方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9305129B2 (zh) |
JP (1) | JP6544923B2 (zh) |
KR (1) | KR20150076133A (zh) |
CN (1) | CN104750906A (zh) |
HK (1) | HK1207438A1 (zh) |
TW (1) | TWI661325B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305129B2 (en) | 2013-12-26 | 2016-04-05 | Cavium, Inc. | System for and method of tuning clock networks constructed using variable drive-strength clock inverters with variable drive-strength clock drivers built out of a smaller subset of base cells |
US9443053B2 (en) | 2013-12-26 | 2016-09-13 | Cavium, Inc. | System for and method of placing clock stations using variable drive-strength clock drivers built out of a smaller subset of base cells for hybrid tree-mesh clock distribution networks |
US9390209B2 (en) * | 2013-12-26 | 2016-07-12 | Cavium, Inc. | System for and method of combining CMOS inverters of multiple drive strengths to create tune-able clock inverters of variable drive strengths in hybrid tree-mesh clock distribution networks |
CN106649898B (zh) * | 2015-10-29 | 2019-12-13 | 京微雅格(北京)科技有限公司 | 一种加法器的打包布局方法 |
CN106209681B (zh) * | 2016-06-28 | 2019-05-10 | 华为技术有限公司 | 一种队列管理方法和装置 |
CN108614796B (zh) * | 2016-12-12 | 2021-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 加速1394物理层虚拟仿真的方法 |
CN106960087B (zh) * | 2017-03-13 | 2020-05-19 | 上海华力微电子有限公司 | 一种时钟分布网络结构及其生成方法 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10246754A (ja) * | 1997-03-03 | 1998-09-14 | Mitsubishi Electric Corp | クロックドライバ回路及び半導体集積回路装置 |
JPH10242396A (ja) * | 1997-03-03 | 1998-09-11 | Mitsubishi Electric Corp | クロックドライバ回路及び半導体集積回路装置 |
US6166564A (en) * | 1999-07-09 | 2000-12-26 | Intel Corporation | Control circuit for clock enable staging |
US6434731B1 (en) * | 1999-10-26 | 2002-08-13 | International Business Machines Corporation | Automated placement of signal distribution to diminish skew among same capacitance targets in integrated circuits |
US6629298B1 (en) * | 1999-11-10 | 2003-09-30 | International Business Machines Corporation | Automated programmable process and method for the improvement of electrical digital signal transition rates in a VLSI design |
US6574781B1 (en) * | 2000-08-21 | 2003-06-03 | Oki Electric Industry Co., Ltd. | Design methodology for inserting RAM clock delays |
JP3420195B2 (ja) * | 2000-09-26 | 2003-06-23 | エヌイーシーマイクロシステム株式会社 | クロック配線の設計方法 |
JP2002198430A (ja) * | 2000-12-26 | 2002-07-12 | Nec Microsystems Ltd | 駆動力可変ブロックおよびこれを用いたlsi設計方法 |
US6698006B1 (en) * | 2001-12-14 | 2004-02-24 | Sequence Design, Inc. | Method for balanced-delay clock tree insertion |
US6763513B1 (en) * | 2001-12-18 | 2004-07-13 | Cadence Design Systems, Inc. | Clock tree synthesizer for balancing reconvergent and crossover clock trees |
US6981233B2 (en) * | 2003-02-24 | 2005-12-27 | Cadence Design Systems, Inc. | Method for analyzing path delays in an IC clock tree |
US6951002B2 (en) * | 2003-06-05 | 2005-09-27 | International Business Machines Corporation | Design techniques for analyzing integrated circuit device characteristics |
US7810061B2 (en) * | 2004-09-17 | 2010-10-05 | Cadence Design Systems, Inc. | Method and system for creating a useful skew for an electronic circuit |
US20060080632A1 (en) * | 2004-09-30 | 2006-04-13 | Mathstar, Inc. | Integrated circuit layout having rectilinear structure of objects |
TWI274266B (en) * | 2005-05-26 | 2007-02-21 | Faraday Tech Corp | Verilog HDL simulation model for retain time |
US7761275B2 (en) * | 2005-12-19 | 2010-07-20 | International Business Machines Corporation | Synthesizing current source driver model for analysis of cell characteristics |
US20080229266A1 (en) * | 2006-12-14 | 2008-09-18 | International Business Machines Corporation | Design Structure for a Clock Distribution Network, Structure, and Method for Providing Balanced Loading in Integrated Circuit Clock Trees |
JP2009187104A (ja) * | 2008-02-04 | 2009-08-20 | Panasonic Corp | 半導体集積回路 |
JP5045595B2 (ja) * | 2008-07-28 | 2012-10-10 | 富士通株式会社 | 回路設計支援装置、回路設計支援プログラム、回路設計支援方法 |
JP4784786B2 (ja) * | 2009-03-27 | 2011-10-05 | 日本電気株式会社 | クロック分配回路及びクロックスキュー調整方法 |
JP4918934B2 (ja) * | 2009-08-21 | 2012-04-18 | 日本電気株式会社 | 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム |
US9219005B2 (en) | 2011-06-28 | 2015-12-22 | Monolithic 3D Inc. | Semiconductor system and device |
US8957398B2 (en) | 2010-12-22 | 2015-02-17 | Easic Corporation | Via-configurable high-performance logic block involving transistor chains |
US8627263B2 (en) | 2011-02-23 | 2014-01-07 | International Business Machines Corporation | Gate configuration determination and selection from standard cell library |
US8407654B2 (en) | 2011-02-23 | 2013-03-26 | International Business Machines Corporation | Glitch power reduction |
US8536921B2 (en) | 2011-08-16 | 2013-09-17 | Lsi Corporation | Uniform-footprint programmable-skew multi-stage delay cell |
US8461893B2 (en) | 2011-08-16 | 2013-06-11 | Lsi Corporation | Uniform-footprint programmable multi-stage delay cell |
US8984467B2 (en) * | 2011-08-17 | 2015-03-17 | Synopsys, Inc. | Method and apparatus for automatic relative placement generation for clock trees |
TWI472941B (zh) * | 2012-04-18 | 2015-02-11 | Global Unichip Corp | 晶片輸出入設計的方法 |
US8629548B1 (en) * | 2012-10-11 | 2014-01-14 | Easic Corporation | Clock network fishbone architecture for a structured ASIC manufactured on a 28 NM CMOS process lithographic node |
US9443053B2 (en) | 2013-12-26 | 2016-09-13 | Cavium, Inc. | System for and method of placing clock stations using variable drive-strength clock drivers built out of a smaller subset of base cells for hybrid tree-mesh clock distribution networks |
US9305129B2 (en) | 2013-12-26 | 2016-04-05 | Cavium, Inc. | System for and method of tuning clock networks constructed using variable drive-strength clock inverters with variable drive-strength clock drivers built out of a smaller subset of base cells |
-
2013
- 2013-12-26 US US14/141,104 patent/US9305129B2/en not_active Expired - Fee Related
-
2014
- 2014-12-25 TW TW103145439A patent/TWI661325B/zh active
- 2014-12-25 JP JP2014263371A patent/JP6544923B2/ja active Active
- 2014-12-26 CN CN201410835814.7A patent/CN104750906A/zh active Pending
- 2014-12-26 KR KR1020140191072A patent/KR20150076133A/ko not_active Application Discontinuation
-
2015
- 2015-08-18 HK HK15107952.4A patent/HK1207438A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
KR20150076133A (ko) | 2015-07-06 |
HK1207438A1 (zh) | 2016-01-29 |
JP6544923B2 (ja) | 2019-07-17 |
JP2015125779A (ja) | 2015-07-06 |
US9305129B2 (en) | 2016-04-05 |
CN104750906A (zh) | 2015-07-01 |
TWI661325B (zh) | 2019-06-01 |
US20150186583A1 (en) | 2015-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI661325B (zh) | 利用具以較小基本單元建置可變驅動強度時脈驅動器可變驅動強度時脈反相器建構之時脈網路的調整系統與方法 | |
US9443053B2 (en) | System for and method of placing clock stations using variable drive-strength clock drivers built out of a smaller subset of base cells for hybrid tree-mesh clock distribution networks | |
CN109684755B (zh) | 一种数模混合芯片异步电路全定制方法及系统 | |
Wang et al. | Electronic design automation: synthesis, verification, and test | |
US9495506B2 (en) | Methods for layout verification for polysilicon cell edge structures in FinFET standard cells using filters | |
CN103310028B (zh) | 考虑器件老化的设计集成电路的方法 | |
Kuon et al. | Design, layout and verification of an FPGA using automated tools | |
TWI497330B (zh) | 用於確認與一通孔可定製積體電路之一設計相關聯的一組定製通孔之方法及確認一通孔可定製積體電路之一設計之時序及功能的方法 | |
TWI833036B (zh) | 產生電路佈局之方法及系統 | |
US9390209B2 (en) | System for and method of combining CMOS inverters of multiple drive strengths to create tune-able clock inverters of variable drive strengths in hybrid tree-mesh clock distribution networks | |
JP2005158075A (ja) | 相互接続対応の集積回路設計 | |
US9507903B2 (en) | Method for estimation of delays and slews during circuit optimization | |
US8966429B2 (en) | Bit slice elements utilizing through device routing | |
US8947120B2 (en) | Latch array utilizing through device connectivity | |
US11704467B2 (en) | Automated balanced global clock tree synthesis in multi level physical hierarchy | |
Baskaya et al. | A generic reconfigurable array specification and programming environment (GRASPER) | |
JP2004013821A (ja) | 半導体集積回路設計方法および設計装置 | |
Gore et al. | A Scalable and Area-Efficient Configuration Circuitry for Semi-Custom FPGA Design | |
TWI856519B (zh) | 用於記憶體模組電路之瞬態分析的方法、系統及非暫時性電腦可讀媒體 | |
JP3908172B2 (ja) | シミュレーション方法及びその装置 | |
TW202347160A (zh) | 將局部穿線電阻轉變為全域分佈式電阻 | |
Chiolino et al. | Digital Logic Synthesis for 470 Celsius Silicon Carbide Electronics | |
Lomelí-Illescas et al. | A tool for the automatic generation and analysis of regular analog layout modules | |
Anne | Design and characterization of a standard cell library for the FREEPDK45 process | |
Wong | Non-Rectangular Embedded Programmable Logic Cores |