TW202129529A - 積體電路佈局 - Google Patents

積體電路佈局 Download PDF

Info

Publication number
TW202129529A
TW202129529A TW109130271A TW109130271A TW202129529A TW 202129529 A TW202129529 A TW 202129529A TW 109130271 A TW109130271 A TW 109130271A TW 109130271 A TW109130271 A TW 109130271A TW 202129529 A TW202129529 A TW 202129529A
Authority
TW
Taiwan
Prior art keywords
height
cell
area
unit
design
Prior art date
Application number
TW109130271A
Other languages
English (en)
Inventor
陳勝雄
陳俊臣
王紹桓
楊國男
王中興
廖人政
李孟祥
Original Assignee
台灣積體電路製造股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 台灣積體電路製造股份有限公司 filed Critical 台灣積體電路製造股份有限公司
Publication of TW202129529A publication Critical patent/TW202129529A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/12Sizing, e.g. of transistors or gates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一種積體電路佈局包括一或多個第一單元列,第一單元列沿第一方向部分地延伸跨越經配置用於積體電路佈局的空間。第一單元列中的每一者沿垂直於第一方向的第二方向具有第一高度。積體電路佈局包括一或多個第三單元列,第三單元列沿第一方向部分地延伸跨越空間。第三單元列中沿第二方向具有第二高度,第二高度不同於第一高度。

Description

積體電路佈局
本揭示之文件實施例是關於一種佈局,特別是關於包含具有不同高度的單元列的積體電路佈局。
通常,電子設計自動化(electronic design automation; EDA)工具輔助半導體設計者對所需電路進行純粹的行為描述,且致力於形成準備好製造的電路的最終佈局。此過程通常採用電路的行為描述,且將其轉換為功能描述,接著將其分解為數個布爾函數(Boolean function),且使用標準單元庫將其映射至各別單元列(row)中。一旦映射,便執行合成以將結構設計轉換為實體佈局,構建時脈樹以同步結構元素,且最佳化設計的後期佈局(post layout)。
本揭示案之實施例是關於一種積體電路佈局,包含一或多個第一單元列及一或多個第二單元列。第一單元列沿第一方向部分地延伸跨越經配置用於積體電路佈局的空間。第一單元列中的每一者沿垂直於第一方向的第二方向具有第一高度。第二單元列沿第一方向部分地延伸跨越空間。第二單元列中的每一者沿第二方向具有第二高度。第二高度不同於第一高度。
以下揭示內容提供用於實施所提供的主題的不同特徵的許多不同的實施例或實例。以下描述組件及配置的特定實例以簡化本揭示案之一實施例。當然,此等僅為實例,並不旨在進行限制。舉例而言,在下文的描述中在第二特徵之上或上的第一特徵的形成可包括其中第一特徵與第二特徵直接接觸形成的實施例,且亦可包括其中在第一特徵與第二特徵之間形成額外特徵使得第一特徵與第二特徵可不直接接觸的實施例。另外,本揭示案之一實施例可在各個實例中重複參考數字及/或字母。此重複係出於簡單及清楚的目的,且其本身並不指示所論述的各種實施例及/或組態之間的關係。
此外,為了便於描述一個元素或特徵與另一(些)元素或特徵的關係(如圖所示),本文中可使用空間相對術語,諸如「在...下方」、「下方」、「下部」、「上方」、「上部」等。除了在圖中描述的定向之外,空間相對術語亦旨在涵蓋裝置在使用或操作中的不同定向。設備可以其他方式定向(旋轉90度或以其他定向),且本文中使用的空間相對描述語同樣可相應地進行解釋。
為了避免跨越來自各別不同單元庫(cell library)的單元之錯位(misalignment),通常使用來自標準單元庫的單元,其單元高度等於單元列的高度(以下稱為「高度」)。由此,通常在相對較早的設計階段決定使用哪個單一高度用於設計,藉此亦固定對應高度。然而,由於僅使用單一高度,必須在電路效能、電路功率與製造製程之間作出一些取捨。舉例而言,可藉由沿單元列並排設定在(dispose)複數個單元來形成以效能為導向的電路,每一單元具有較高數目個主動區(例如,鰭片);可藉由沿單元列並排配置複數個單元來形成以功率/面積為導向的電路,每一單元具有較少數目個主動區。
由此,為了設計功耗低且佔用面積小的電路而不犧牲其效能(例如,以平衡為導向的電路),通常會作出各種設計取捨。舉例而言,具有較少數目個鰭片的第一數目個單元交替地設定在具有較高數目個主動區的第二數目個單元之間。此種佈局導致第二數目個單元中的一或多個主動區(通常稱為「間斷(broken)鰭片」,或更通常地稱為「間斷主動區」)的延伸不連續,此可能不利地降低電路的效能(由於鰭片間斷而引起的鬆弛應變/應力)。
已經提出使用混合高度的概念來緩解此種問題。本質上,給定用於電路設計的空間,此空間可包括數個具有第一高度的第一單元列及數個具有第二不同高度的第二單元列。第一單元列可用於置放(place)具有第一高度的第一類型單元,且第二單元列可用於置放具有第二高度的第二類型單元。應注意,在使用混合高度的現有電路設計技術中,第一單元列及第二單元列中的每一者完全延伸跨越給定空間。換言之,在設計電路時,只能經由沿垂直於第一單元列及第二單元列延伸的第二方向(例如,X方向)的第一方向(例如,Y方向)置放不同數目個第一單元列與第二單元列,來提供設計具有不同功率/時序/效能要求的電路的靈活性。由此,例如,共用類似時序要求(其在集群(cluster)而彼此靠近時可有利地最佳化電路的設計)的一些單元可能被迫分散至不同區域。舉例而言,由於互連結構的額外佈線(routing),分散的單元可能不利地影響電路的速度。因此,現有電路設計技術可能仍不能完全令人滿意。
本揭示案之一實施例提供使用具有第一高度的複數個第一單元列及具有不同的第二高度的複數個第二單元列來設計積體電路的系統及方法的各種實施例。此外,第一單元列及第二單元列中的每一者可部分地或完全地延伸跨越經配置用於積體電路的設計(例如,積體電路的佈局)的給定空間。如本文中所揭示,此系統可識別將由複數個單元共用的共同功率/時序/效能要求,且在給定空間中配置由(一或多個)第一列或(一或多個)第二列組成的區域以供置放此些單元。由於不需要第一列及第二列完全延伸跨越給定空間,因此可為此些單元特別地配置此區域,具有至少一個額外靈活性。由此,共用共同功率/時序/效能要求的單元可集群在此區域中,此可有利地解決現有電路設計技術所遇到的問題。
第1A圖說明根據一些實施例的由本揭示案之一實施例的系統及方法設計的實例積體電路(佈局)100的示意圖。然而,並非所有所說明的組件皆為必需的,且本揭示案之一實施例可包括第1A圖中未展示的額外組件。在不脫離本文中所闡述的本揭示案之一實施例的範圍的情況下,可進行組件的配置及類型的變化。可包括額外的、不同的或更少的組件。
參考第1A圖,積體電路100包括相對於經配置用於積體電路100的設計的空間、柵格(grid)或平面規劃(floorplan)102而配置(例如,佈置(laid out))的複數個單元列110、112、114、116、118、120、122、124、126、128、130、132、134、136、140、142、144、146、148、150、152、154、156、158、160、162、164、166、168、170、172、174、176、178、180、182及184。在一些實施例中,積體電路100的單元列110-184可呈現至少兩個各別的不同列高度或高度。如圖所示,單元列110-114、118、122、126、130、134、158、162、166及170-184可共用基本上類似的列高度,下文稱為「高度A」;且單元列116、120、124、128、132、136、140-152、160、164及168可共用基本上類似的列高度,下文稱為「高度B」,其中列高度B大於列高度A。此種列高度對應於將在下文論述的待置放在其中的單元(有時稱為標準單元)的單元高度。
在一些實施例中,可具有高度A或高度B的一些單元列沿第一方向(例如,X方向)完全延伸跨越空間102,而可具有高度A或高度B的另一單元列沿第一方向部分地延伸跨越空間102。舉例而言,具有高度A的單元列110-114及118各自完全延伸跨越空間102,而具有相同高度A的單元列122、126、130、134、154、158、162、166及170-184各自部分地延伸跨越空間102。具有高度B的單元列116、120及140-142完全延伸跨越空間102,而具有相同高度B的單元列124、128、132、136、144-152、156、160、164及168各自部分地延伸跨越空間102。
參考第1B圖,說明根據一些實施例的處於特定金屬化層級(例如,M0層級)的積體電路100的一部分的示意圖。如圖所示,沿垂直於第一方向(例如,Y方向)的第二方向,每一單元列在各別側面處由第一金屬軌及第二金屬軌定界。第一金屬軌可為用以向置放在單元列內的每一單元提供VDD的VDD電力軌,且第二金屬軌可為用以向置放在單元列內的每一單元提供VSS的VSS電力軌。沿第二方向彼此相鄰的單元列可組合、毗連或以其他方式共用相同的VDD電力軌或VSS電力軌。舉例而言,在第1B圖中,單元列110可與單元列112共用相同的VSS電力軌。由於VDD/VSS電力軌可沿對應單元列延伸,因此可瞭解,一些VDD/VSS電力軌(例如,由單元列110與112共用的VSS電力軌)可沿X方向完全延伸跨越空間102(繪示於第1A圖),而其他VDD/VSS電力軌(例如,由單元列164與166共用的VDD電力軌)可沿X方向部分地延伸跨越空間102。
如上所述,每一單元列110-184用以置放具有相同高度的一或多個單元。現在參考第1C圖,示意性地說明積體電路100的一部分(例如,單元列158及160)。單元列158可包括置放在其中的各自具有相同高度A的單元192、193及194,且單元列160可包括置放在其中的各自具有相同高度B的單元195及196。儘管如第1C圖所示,三個單元(例如,192-194)置放在單元列158中且兩個單元(例如,195及196)置放在單元列160中,但可瞭解,每一單元列,包括單元列158及160,可包括設定在其中的具有相同高度的任何數目個單元。
在一些實施例中,單元列的高度對應於可設定在或形成於單元列中的單元的主動區的數目。舉例而言,與具有較矮高度(例如,高度A)的單元列相比,具有較高高度(例如,高度B)的單元列可允許在其中形成更多的主動區。與單元列平行延伸的此種主動區可為一或多個三維場效應電晶體(例如,FinFET、環繞閘極(gate-all-around; GAA)電晶體)的鰭形區或一或多個平面金屬氧化物半導體場效應電晶體(metal-oxide-semiconductor field-effect-transistor; MOSFET)的氧化物定義(oxide-definition; OD)區,其中主動區可用作各別電晶體的源極特徵或汲極特徵。舉例而言,在第1A圖中,設定在單元列158中的單元192-194可具有兩個主動區158-1及158-2;且設定在單元列160中的單元195及196可具有四個主動區160-1、160-2、160-3及160-4。
在一些實施例中,如本文中所揭示之實施例,此系統可在空間102中配置一或多個鄰接區域,此些區域有時可稱為均勻高區域(若構成些區域的所有單元列共用相同的高高度)或均勻矮區域(若構成此區域的所有單元列具有相同的矮高度)。此系統可基於積體電路100的所識別的電路模組來配置此種鄰接區域。舉例而言,電路模組可基於判定電路模組先前被指定(例如,由使用者指定)為以效能為導向的電路模組而被識別為由高度高的單元組成。在另一實例中,可基於判定電路模組先前被指定為以功率為導向的電路模組來將電路模組識別為由高度矮的單元組成。如本文中所論述,電路模組可指用以執行特定功能的一組電路組件。舉例而言,積體電路100可包括中央處理單元(central processing unit; CPU)、圖形處理單元(graphic processing unit; GPU)、輸入/輸出(input/output; I/O)介面及記憶體。由此,複數個電路模組可共同形成CPU,每一電路模組可執行特定功能(例如,指令的計算、接收等)。此系統可基於所識別的時序約束、所識別的效能約束或所識別的功率約束中的至少一者來配置此種鄰接區域,此些所識別約束可由設定在鄰接區域中的單元共用。應瞭解,此種單元不一定對應於相同的電路模組。在一些實施例中,此種共用的時序/效能/功率約束可由設計指定或藉由使用電路模擬器(例如,具有積體電路重點的模擬程式(Simulation Program with Integrated Circuit Emphasis; SPICE)對積體電路100的電路設計執行一或多個模擬來識別。
再次參考第1A圖,如本文實施例中所揭示,此系統可配置:由單元列110-114組成(或由其擴展)的鄰接區域103,每一單元列完全地延伸跨越空間102;由單元列144-152組成(或由其擴展)的鄰接區域104,每一單元列部分地延伸跨越空間102;由單元列170-184組成(或由其擴展)的鄰接區域105,每一單元列部分地延伸跨越空間102;及由單元列140-142組成(或由其擴展)的鄰接區域106,每一單元列完全地延伸跨越空間102。每一鄰接區域103-106由具有相同高度的一或多個單元列組成,其有時稱為均勻高區域或均勻矮區域。舉例而言,鄰接區域103及105可各自稱為均勻矮區域,且鄰接區域104及106可各自稱為均勻高區域。均勻高區域可用以群集、聚集(aggregate)或以其他方式整合以效能為導向(例如,經受高效能)、不以面積為取向(例如,較少經受大面積)、不以功率為導向(例如,較少經受高功耗)及/或時間關鍵(timing-critical)(例如,經受較低延時)的單元;且均勻矮區域可用以群集、聚集或以其他方式整合不以效能為導向(例如,較少經受低效能)、以面積為導向(例如,經受小面積)、以功率為導向(例如,經受低功耗)及/或非時間關鍵(例如,較少經受高延時)的單元。
除了均勻矮區域103及105以及均勻高區域104及106之外,所揭示的系統可配置各自由具有混合高度或單一高度的單元列組成的一或多個區域。此種區域可設定在由部分延伸的單元列組成的兩個均勻矮/高區域之間。舉例而言,在第1A圖中,系統可配置區域107,區域107由具有高度A的單元列158、162及166及具有高度B的單元列160、164及168組成。區域107可設定在均勻高區域104與均勻矮區域105之間。此種區域107可用以群集、聚集或以其他方式整合以平衡為導向的單元,例如,在速度/效能(不過高或過低)與面積/功率效能(其中面積不會過大或過小,且功耗不會過高或過低)之間保持平衡。
第2A圖說明根據本揭示案之一實施例的產生包括一或多個均勻高區域及/或一或多個均勻矮區域的積體電路佈局的實例方法200的流程圖。在一些實施例中,方法200可統稱為EDA。方法200的操作由第5圖所說明的各別組件執行。為了論述的目的,將結合第5圖描述方法200的以下實施例。方法200的所說明實施例僅為實例。因此,應理解,可在保持在本揭示案之一實施例的範圍內的同時省略、重新排序及/或添加多種操作中的任一者。
根據一些實施例,方法200以「輸入網表202」及「設計約束204」的提供操作開始。輸入網表202可為經由合成過程提供的功能上等效的邏輯閘級電路描述。合成過程藉由使一或多個行為及/或功能與一組單元庫中的(標準)單元匹配來形成功能上等效的邏輯閘級電路描述。基於施加至積體電路(例如,積體電路100)的總體設計的輸入的各種信號或刺激來指定(specify)行為及/或功能,且可用諸如硬體描述語言(hardware description language; HDL)的適當語言來編寫行為及/或功能。輸入網表202可經由I/O介面528(第5圖)上載至處理單元510,諸如由使用者在執行EDA的同時建立檔案。或者,可將輸入網表202上載及/或儲存在記憶體522或大容量儲存裝置524上,或可經由網路介面540自遠端使用者上載輸入網表202(第5圖)。在此等情況下,CPU 520將在執行EDA期間存取輸入網表202或與之交互。
使用者亦提供設計約束204,以便約束輸入網表202的實體佈局的總體設計。在一些實施例中,設計約束204可例如經由I/O介面528輸入、經由網路介面540下載等。設計約束204可指定時序、過程參數及其他合適的約束,一旦輸入網表202實體地形成為積體電路,則必須遵守此些約束。
根據一些實施例,方法200進行至操作206以「識別電路模組」。基於輸入網表202及/或設計約束204,所揭示的系統可辨識、識別或以其他方式判定由使用者指定的一或多個電路模組,此一或多個電路模組例如由具有高高度的單元(下文稱為「高單元」)、具有矮高度的單元(下文稱為「矮單元」)或具有混合高度的單元構成。
舉例而言,系統可回應於輸入網表202指定第一電路模組為以效能為導向的電路模組(其應由高單元(例如,僅具有高度B的單元)組成)來識別第一電路模組。在另一實例中,系統可回應於輸入網表202指定第二電路模組為以功率為導向的電路模組(其應由矮單元(例如,僅具有高度A的單元)組成)來識別第二電路模組。替代地或另外,系統可藉由判定對應於電路模組的時序約束、效能約束或功率約束中的至少一者來識別應由高單元或矮單元組成的電路模組。系統可存取設計約束204、與設計約束204通信或以其他方式與設計約束204交互來判定此類時序/效能/功率約束。在一些實施例中,系統可基於輸入網表202來識別不應僅由高單元或矮單元組成的一或多個電路模組。繼續以上實例,系統可回應於輸入網表202指定第三電路模組為以平衡為導向的電路模組(其不應僅由高單元或矮單元組成)來識別第三電路模組。
根據一些實施例,方法200進行至操作208以「配置均勻高/矮區域」。回應於識別將由高單元或矮單元組成的一或多個電路模組(例如,在操作206中),系統可配置對應的均勻高或均勻矮區域。在一些實施例中,均勻高區域可由一或多個部分地延伸跨越空間102的具有高高度(例如,高度B)的單元列(例如,144-152等)或一或多個完全延伸跨越空間102的具有高高度(例如,高度B)的單元列(例如140-142等)組成;均勻矮區域可由一或多個部分地延伸跨越空間102的具有矮高度(例如,高度A)的單元列(例如170-184等)或一或多個完全延伸跨越空間102的具有矮高度的單元列(例如110-114等)組成。在一些其他實施例中,系統可配置均勻高區域,其由具有高高度的部分地延伸跨越空間102的第一組單元列及具有高高度的完全延伸跨越空間102的第二組單元列組成。繼續第一電路模組被識別為由高單元組成的以上實例,系統可在空間102中配置均勻高區域(例如,104、106等)以置放高單元。在第二電路模組被識別為由矮單元組成的實例中,系統可在空間102中配置均勻矮區域(例如,103、105等)以置放矮單元。對於已被識別為由高單元及矮單元的混合構成的電路模組(例如,上述第三電路模組),系統可在空間102中配置一區域(例如,107)以置放高單元及矮單元。
根據一些實施例,方法200進行至操作210以「置放及佈線」。回應於為各別電路模組配置均勻高及/或矮區域,系統可置放各單元且為其佈線以產生總體積體電路的實際實體設計。操作210用以藉由自單元庫獲取所選擇的單元且將其置放至各別單元列中來形成實體設計。繼續相同實例,系統可基於識別出的第一電路模組自單元庫中提取(extract)、擷取(retrieve)或獲得一或多個高單元以待置放在均勻高區域104及106的單元列中;且基於識別出的第二電路模組,自相同或不同單元庫獲得一或多個矮單元以待置放在均勻矮區域103及105的單元列中。每一單元在單元列內的置放及每一單元列相對於其他單元列的置放可由成本函數來指導,以便最小化所得積體電路的佈線長度及面積要求。此置放可經由操作210自動完成,或者亦可部分地經由手動過程執行,藉此使用者可手動地將一或多個單元插入至單元列中。
根據一些實施例,方法200接著進行至操作212以判定用於總體積體電路的實際實體設計是否「匹配設計要求」。回應於產生總體積體電路的實際實體設計(在操作210中),系統可檢查、監視或以其他方式判定是否匹配設計要求。可藉由使用電路模擬器(例如具有積體電路重點的模擬程式(SPICE))執行一或多個模擬來檢查各種要求,諸如用於總體積體電路的實際實體設計的時序品質、用於總體積體電路的實際實體設計的功率品質、是否存在局部擁塞問題等。
若滿足所有設計要求,則方法200繼續至「製造工具」的操作214。另一方面,若並非滿足所有設計要求,則方法200繼續進行至「查找根本原因」的操作216。
系統可執行操作216以在判定操作212中查找導致未能滿足設計要求的原因。各種原因可能導致未能滿足要求。基於此些原因,方法200可進行至各別操作以重新執行此操作。舉例而言,當原因係由於單元列的不正確配置時,方法200可進行至操作(例如,操作204)以重新評估其中指定的約束。當原因係由於不能合成功能上等效的邏輯閘級電路描述時,方法200可進行操作(例如,操作204)以重新評估其中指定的約束。當原因係由於不能產生實際的實體設計時,方法200可進行至操作(例如,操作210)以重新置放及/或重新佈線。
此系統可執行製造工具214以產生例如光微影遮罩(photolithographic mask),其可用於在實體上製造實體設計。實體設計可經由LAN/WAN 516發送至製造工具214。
第2B圖說明根據本揭示案之一實施例的產生包括一或多個均勻高區域及/或一或多個均勻矮區域的積體電路佈局的實例方法250的流程圖。在一些實施例中,方法250可統稱為EDA。方法250的操作由第5圖所示的各別組件執行。為了論述的目的,將結合第5圖描述方法250的以下實施例。方法250的所說明實施例僅為實例。因此,應理解,可在保持在本揭示案之一實施例的範圍內的同時省略、重新排序及/或添加多種操作中的任一者。
根據一些實施例,方法250以「行為/功能設計252」及「設計約束254」的提供操作開始。行為/功能設計252基於施加至積體電路的總體設計的輸入的各種信號或刺激來指定積體電路(例如,積體電路100)的期望行為或功能,且可用諸如硬體描述語言(HDL)的語言編寫。行為/功能設計252可經由I/O介面528(第5圖)上載至處理單元510中,諸如由使用者在執行EDA時建立檔案。或者,可將行為/功能設計252上載及/或儲存在記憶體522或大容量儲存裝置524上,或可經由網路介面540自遠端使用者上載行為/功能設計252(第5圖)。在此等情況下,CPU 520將在執行EDA期間存取行為/功能設計252。設計約束254的操作基本上類似於操作204,且因此本文中將不再重複論述。
根據一些實施例,方法250進行至操作256以「識別電路模組」。基於行為/功能設計252及/或設計約束254,所揭示的系統可辨識、識別或以其他方式判定由使用者指定或預定義的一或多個電路模組,例如由高單元或矮單元組成。舉例而言,系統可回應於行為/功能設計252指定第一電路模組係以效能為導向的電路模組(其應由高單元(例如,具有高度B的單元)組成)而識別第一電路模組。在另一實例中,系統可回應於行為/功能設計252指定第二電路模組係以功率為導向的電路模組(其應由矮單元(例如,具有高度A的單元)組成)而識別第二電路模組。替代地或另外,系統可藉由判定與電路模組相對應的共同時序約束、共同效能約束或共同功率約束中的至少一者來識別應由高單元或矮單元組成的電路模組。系統可存取設計約束254、與設計約束254通信或以其他方式與設計約束254交互以判定此類時序/效能/功率約束。在一些實施例中,系統可基於行為/功能設計252來識別不應僅由一種類型的高單元或矮單元組成的一或多個電路模組。繼續以上實例,系統可回應於行為/功能設計252指定第三電路模組係以平衡為導向的電路模組(其不應僅由高單元或矮單元組成)而識別第三電路模組。
根據一些實施例,方法250接著進行至「合成」的操作258。回應於識別電路模組(操作256),系統可使行為/功能設計252所需的行為及/或功能與來自一或多個單元庫的(標準)單元相匹配,同時滿足由設計約束254及由所識別的電路模組指定的單元高度(操作256)指定的約束,以建立功能上等效的邏輯閘級電路描述,諸如網表(操作260)。在操作258中,系統可藉由為已識別為由高單元或矮單元組成的每一電路模組配置均勻高區域或均勻矮區域來形成網表。在配置均勻高/矮區域的同時,系統可為已識別為由高單元與矮單元的混合構成的每一電路模組配置一或多個區域。操作258有時可稱為「具實體意識的(physically aware)」合成。
在一些實施例中,在產生網表的同時,系統可視情況產生參考平面規劃(操作262)。參考平面規劃可包括數個區域,每一區域配置為均勻高區域、均勻矮區域或具有混合高度的區域。每一區域可包括置放在其中的對應單元。此種參考平面規劃可用作後續操作(例如,操作264)的初始值或猜測,此可有利地減少計算(例如,收斂)時間。
方法250的其餘操作與關於第2A圖論述的操作基本上類似。舉例而言,操作264、266、268及270分別與操作210、212、214及216基本上類似。因此,本文中將不再重複對此種操作的論述。
第3A圖說明根據本揭示案之一實施例的產生包括一或多個均勻高區域及/或一或多個均勻矮區域的積體電路佈局的實例方法300的流程圖。在一些實施例中,方法300可統稱為EDA。方法300的操作由第5圖所示的各別組件執行。為了論述的目的,將結合第5圖描述方法300的以下實施例。方法300的所說明實施例僅為實例。因此,應理解,可在保持在本揭示案之一實施例的範圍內的同時省略、重新排序及/或添加多種操作中的任一者。
根據一些實施例,方法300以「輸入網表302」及「設計約束304」的提供操作開始。輸入網表302可為經由合成過程提供的功能上等效的邏輯閘級電路描述。合成過程藉由使一或多個行為及/或功能與一組單元庫中的(標準)單元匹配來形成功能上等效的邏輯閘級電路描述。基於施加至積體電路(例如,積體電路100)的總體設計的輸入的各種信號或刺激來指定行為及/或功能,且可用諸如硬體描述語言(HDL)的適當語言來編寫行為及/或功能。輸入網表302可經由I/O介面528(第5圖)上載至處理單元510,例如由使用者在執行EDA的同時建立檔案。或者,可將輸入網表302上載及/或儲存在記憶體522或大容量儲存裝置524上,或可經由網路介面540自遠端使用者上載輸入網表302(第5圖)。在此等情況下,CPU 520將在執行EDA期間存取輸入網表302或與之交互。
使用者亦提供設計約束304,以約束輸入網表302的實體佈局的總體設計。在一些實施例中,設計約束304可例如經由I/O介面528輸入、經由網路介面540下載等。設計約束304可指定時序、過程參數及其他合適的約束,一旦輸入網表302實體地形成為積體電路,則必須遵守此些約束。
根據一些實施例,方法300進行至「交替混合高度」的操作306。在操作306中,系統可獲得、擷取由數個具有高高度(例如,高度B)的第一單元列及數個具有矮高度(例如,高度A)的第二單元列組成的空間或以其他方式與之交互。第一單元列及第二單元列中的每一者完全延伸跨越此空間。有時可將此種空間稱為具有交替混合高度的平面規劃。
根據一些實施例,方法300接著進行至操作308以「置放及佈線」。回應於獲得具有交替混合高度的平面規劃,系統可執行操作308以產生總體積體電路的實際實體設計。操作308用以藉由自單元庫獲取所選擇的單元且將其以交替的高度置放至平面規劃的各別單元列中來形成實體設計。舉例而言,系統可基於網表(操作302)自單元庫提取、擷取或獲得一或多個高單元,以待置放在具有高高度的單元列中;且根據網表自相同或不同單元庫中獲取一或多個矮單元,以待置放在具有矮高度的單元列中。每一單元在單元列內的置放及每一單元列相對於其他單元列的置放可由成本函數來指導,以便最小化所得積體電路的佈線長度及面積要求。此置放可經由操作308自動完成,或者亦可部分地經由手動過程執行,藉此使用者可手動地將一或多個單元插入至單元列中。
回應於在交替高度的平面規劃上產生總體積體電路的實際實體設計(在操作308中),系統可檢查、監視或以其他方式判定設計要求是否匹配。可藉由使用電路模擬器(例如具有積體電路重點的模擬程式(SPICE))執行一或多個模擬來檢查各種要求,諸如用於總體積體電路的實際實體設計的時序品質、用於總體積體電路的實際實體設計的功率品質、是否存在局部擁塞問題等。
根據一些實施例,方法300繼續進行至操作310以「配置均勻高/矮區域」。此系統可自模擬來識別空間上的一或多個區域,此一或多個區域包括與預定效能要求的數個衝突。此衝突可能對應於對時序品質要求、電源品質要求等中的至少一者的違反。系統可辨識、識別或以其他方式判定空間上的一或多個區域,其數個衝突滿足(例如,超過)預定臨限值。在識別出此種區域後,系統可替換或以其他方式更新此空間(由交替混合高度擴展)以由具有不同高度的單元列擴展,但不需要單元列完全延伸跨越此空間。換言之,至少部分地構成此空間的新單元列可包括具有高高度(例如,高度B)的部分延伸跨越此空間的一或多個單元列、具有高高度的完全延伸跨越此空間的一或多個單元列、具有矮高度(例如,高度A)的部分延伸跨越此空間的一或多個單元列,及具有矮高度的完全延伸跨越此空間的一或多個單元列。基於所識別的違反數目過多的區域,系統可在所識別的區域的相同位置周圍配置一或多個均勻高或矮區域。舉例而言,在模擬之後,回應於識別出此空間上包括一定數目個時序違反的區域,系統可配置均勻高區域(例如,第1A圖的104、106),其中僅高單元可設定在其中。以此方式,由於置放在均勻高區域中的單元通常具有更好的效能,因此可解決時序衝突。
在一些實施例中,均勻高/矮區域(或待置放在此區域中的單元)共用共同時序約束、共同效能約束或共同功率約束中的至少一者。舉例而言,均勻高區域可用以群集、聚集或以其他方式整合以效能為導向(例如,經受高效能)、不以面積為取向(例如,較少經受大面積)、不以功率為導向(例如,較少經受高功耗)及/或時間關鍵(例如,經受較低延時)的單元;且均勻矮區域可用以群集、聚集或以其他方式整合不以效能為導向(例如,較少經受低效能)、以面積為導向(例如,經受小面積)、以功率為導向(例如,經受低功耗)及/或非時間關鍵(例如,較少經受高延時)的單元。
根據一些實施例,方法300進行至操作312以「置放及佈線」。回應於配置均勻高及/或矮區域,系統可執行操作312以再次產生總體積體電路的實際實體設計。操作312用以藉由自單元庫獲取所選擇的單元且將其置放在均勻矮/高區域的各別單元列中來形成實體設計。每一單元在單元列內的置放及每一單元列相對於其他單元列的置放可由成本函數來指導,以便最小化所得積體電路的佈線長度及面積要求。此置放可經由操作312自動完成,或者亦可部分地經由手動過程執行,藉此使用者可手動地將一或多個單元插入至單元列中。
根據一些實施例,方法300接著進行至操作314以判定用於總體積體電路的實際實體設計是否「匹配設計要求」。回應於產生總體積體電路的實際實體設計(在操作312中),系統可再次檢查、監視或以其他方式判定是否匹配設計要求。可藉由使用電路模擬器(例如具有積體電路重點的模擬程式(SPICE))執行一或多個模擬來檢查各種要求,諸如用於總體積體電路的實際實體設計的時序品質、用於總體積體電路的實際實體設計的功率品質、是否存在局部擁塞問題等。
若滿足所有設計要求,則方法300繼續至「製造工具」的操作316。另一方面,若並不滿足所有設計要求,則方法300繼續進行至操作318以「查找根本原因」。
系統可執行操作318以在判定操作314中查找導致未能滿足設計要求的原因。各種原因可能導致未能滿足要求。基於此些原因,方法300可進行各別操作以重新執行此操作。舉例而言,當原因係由於單元列的不正確配置時,方法300可進行至操作(例如,操作304)以重新評估其中指定的約束。當原因係由於不能合成功能上等效的邏輯閘級電路描述時,方法300可進行操作(例如,操作304)以重新評估其中指定的約束。當原因係由於不能產生實際的實體設計時,方法300可進行至操作(例如,操作312)以重新置放及/或重新佈線。
系統可執行製造工具316以產生例如光微影遮罩,其可用於在實體上製造實體設計。實體設計可經由LAN/WAN 516發送至製造工具316。
第3B圖說明根據本揭示案之一實施例的產生包括一或多個均勻高區域及/或一或多個均勻矮區域的積體電路佈局的實例方法350的流程圖。在一些實施例中,方法350可統稱為EDA。方法350的操作由第5圖所示的各別組件執行。為了論述的目的,將結合第5圖描述方法350的以下實施例。方法350的所說明實施例僅為實例。因此,應理解,可在保持在本揭示案之一實施例的範圍內的同時省略、重新排序及/或添加多種操作中的任一者。
根據一些實施例,方法350以「行為/功能設計352」及「設計約束354」的提供操作開始。行為/功能設計352基於施加至積體電路的總體設計的輸入的各種信號或刺激來指定積體電路(例如,積體電路100)的期望行為或功能,且可用諸如硬體描述語言(HDL)的適當語言編寫。行為/功能設計352可經由I/O介面528(第5圖)上載至處理單元510中,諸如由使用者在執行EDA時建立檔案。或者,可將行為/功能設計352上傳及/或儲存在記憶體522或大容量儲存裝置524上,或者可經由網路介面540自遠端使用者上載行為/功能設計352(第5圖)。在此等情況下,CPU 520將在執行EDA期間存取行為/功能設計352。設計約束354的操作基本上類似於第3A圖中的操作304,且因此本文中將不再重複論述。
根據一些實施例,方法350進行至「交替混合高度」的操作356。在操作356中,系統可獲得、擷取由數個具有高高度(例如,高度B)的第一單元列及數個具有矮高度(例如,高度A)的第二單元列組成的空間或以其他方式與之交互。第一單元列及第二單元列中的每一者完全延伸跨越此空間。有時可將此種空間稱為具有交替混合高度的平面規劃。
根據一些實施例,方法350接著進行至「合成」的操作358。回應於獲得具有交替混合高度的平面規劃(操作356),系統可使行為/功能設計352所需的行為及/或功能與來自一或多個單元庫的(標準)單元相匹配,同時滿足由設計約束354指定的約束以建立功能上等效的邏輯閘級電路描述,諸如初始網表。
根據一些實施例,方法350進行至操作360以「置放及佈線」。回應於產生初始網表,系統可執行操作360以產生總體積體電路的實際實體設計。操作360用以藉由自單元庫獲取所選擇的單元且將其置放在具有交替混合高度的平面規劃的各別單元列中來形成實體設計。每一單元在單元列內的置放及每一單元列相對於其他單元列的置放可由成本函數來指導,以便最小化所得積體電路的佈線長度及面積要求。此置放可經由操作360自動完成,或者亦可部分地經由手動過程執行,藉此使用者可手動地將一或多個單元插入至單元列中。
回應於在交替高度的平面規劃上產生總體積體電路的實際實體設計(在操作360中),系統可檢查、監視或以其他方式判定設計要求是否匹配。可藉由使用電路模擬器(例如具有積體電路重點的模擬程式(SPICE))執行一或多個模擬來檢查各種要求,諸如用於總體積體電路的實際實體設計的時序品質、用於總體積體電路的實際實體設計的功率品質、是否存在局部擁塞問題等。
根據一些實施例,方法350繼續至操作362以「配置均勻高/矮區域」。此系統可自模擬來識別空間上的一或多個區域,此一或多個區域包括與預定效能要求的數個衝突。此衝突可能對應於對時序品質要求、電源品質要求等中的至少一者的違反。系統可辨識、識別或以其他方式判定空間上的一或多個區域,其數個衝突滿足(例如,超過)預定臨限值。在識別出此種區域後,系統可替換或以其他方式更新此空間(由交替混合高度擴展)以由具有不同高度的單元列擴展,但不需要單元列完全延伸跨越此空間。換言之,至少部分地構成此空間的新單元列可包括具有高高度(例如,高度B)的部分延伸跨越此空間的一或多個單元列、具有高高度的完全延伸跨越此空間的一或多個單元列、具有矮高度(例如,高度A)的部分延伸跨越此空間的一或多個單元列,及具有矮高度的完全延伸跨越此空間的一或多個單元列。基於所識別的違反數目過多的區域,系統可在所識別的區域的相同位置周圍配置一或多個均勻高或矮區域。舉例而言,在模擬之後,回應於識別出此空間上包括一定數目個時序違反的區域,系統可配置均勻高區域(例如,第1A圖的104、106),其中僅高單元可設定在其中。以此方式,由於置放在均勻高區域中的單元通常具有更好的效能,因此可解決時序衝突。
在一些實施例中,均勻高/矮區域(或待置放在此區域中的單元)共用共同時序約束、共同效能約束或共同功率約束中的至少一者。舉例而言,均勻高區域可用以群集、聚集或以其他方式整合以效能為導向(例如,經受高效能)、不以面積為取向(例如,較少經受大面積)、不以功率為導向(例如,較少經受高功耗)及/或時間關鍵(例如,經受較低延時)的單元;且均勻矮區域可用以群集、聚集或以其他方式整合不以效能為導向(例如,較少經受低效能)、以面積為導向(例如,經受小面積)、以功率為導向(例如,經受低功耗)及/或非時間關鍵(例如,較少經受高延時)的單元。
接著,根據一些實施例,方法350進行至「合成」的操作364。回應於配置均勻矮/高區域(操作362),系統可再次使行為/功能設計352所需的行為及/或功能與來自一或多個單元庫的(標準)單元匹配,同時滿足由設計約束354指定的約束以建立功能上等效的邏輯閘級電路描述,諸如第二網表(操作366)。在操作364中,系統可藉由為違反數目過多的每一所識別區域配置均勻高或矮區域來形成第二網表。在配置均勻高/矮區域的同時,系統可配置由高單元列與矮單元列的混合構成的一或多個區域。操作364有時可稱為「具實體意識的」合成。
在一些實施例中,在產生網表的同時,系統可視情況產生參考平面規劃(操作368)。參考平面規劃可包括數個區域,每一區域配置為均勻高區域、均勻矮區域或具有混合高度的區域。每一區域可包括置放在其中的對應單元。此種參考平面規劃可用作後續操作(例如,操作370)的初始值或猜測,此可有利地減少計算(例如,收斂)時間。
方法350的其餘操作與關於第3A圖論述的操作基本上類似。舉例而言,操作370、372、374及376分別與操作312、314、316及318基本上類似。因此,本文中將不再重複對此種操作的論述。
在一些實施例中,在合成期間(例如,操作258、358、364等),如本文中所揭示的系統可允許或以其他方式控制待置放在給定區域中的第一類型單元的密度最高為預定義上限。在判定第一類型單元的密度滿足預定義上限時,系統可接著允許或以其他方式控制待置放在給定區域中的第二類型單元的密度最低為預定義下限。此區域可對應於積體電路的某個電路模組。此區域可對應於給定空間或平面規劃上經配置用於積體電路佈局的某一實體區域。舉例而言,系統可將給定空間劃分為複數個均勻大小的窗口,每一窗口對應於此區域。在合成期間,系統可允許在每一窗口內置放高達一定密度的單元。以此方式,在合成例如用於積體電路佈局的網表時,系統可在控制積體電路佈局的功率效能區域(power performance area;PPA)方面達到平衡。舉例而言,在合成期間未設定(set)上限的情況下,一或多個區域中的單元密度可能達到100%,此可能導致後續操作(例如,將網表作為實體設計進行置放及佈線時)中的額外步驟。
系統可將高單元的密度定義為(高單元面積 + B/(A + B)×混合高度單元面積)/高單元列面積;且矮單元的密度為(矮單元面積 + A/(A + B)×混合高度單元面積)/矮單元列面積,其可在第4圖中更好地說明。如第4圖所示,網表(合成期間)400的一部分可為上述窗口中的一者,其包括彼此相鄰安置的具有高度B的單元列402(即,高單元列)及具有高度A的單元列404(即,矮單元列)。此系統可沿單元列402置放高單元406,沿單元列404置放矮單元408,且沿兩個單元列402及404置放混合高度單元410。在一些實施例中,此種混合高度單元可稱為具有混合高度的單元。在第4圖的當前實例中,單元具有一個高度A與一個高度B的混合(即1×A + 1×B)。可理解,混合高度單元可具有高度A與B的任何組合(例如1×A + 2×B、2×A + 1×B、2×A + 3×B等),同時保持處於本揭示案之一實施例的範圍內。再次參考使用第4圖的密度的定義,「高單元面積」可稱為由一或多個高單元(例如406)所佔據的面積;「混合高度單元面積」可稱為由一或多個混合高度單元(例如,410)所佔據的面積;「高單元列面積」可稱為由一或多個高單元列擴展的總面積;「矮單元面積」可稱為由一或多個矮單元(例如,408)所佔據的面積;且「矮單元列面積」可稱為由一或多個矮單元列擴展的總面積。
現在參考第5圖,根據本揭示案之一實施例,提供資訊處置系統(information handling system;IHS)500的方塊圖。IHS 500可為用於實施本文中論述的任何或所有過程以設計積體電路的電腦平台。HIS 500可包含處理單元510,諸如桌上型電腦、工作站、膝上型電腦或為特定應用定製的專用單元。HIS 500可配備有顯示器514及一或多個輸入/輸出(I/O)組件512,諸如滑鼠、鍵盤或印表機。處理單元510可包括連接至匯流排530的中央處理單元(CPU)520、記憶體522、大容量儲存裝置524、視訊配接器526及I/O介面528。
匯流排530可為包括記憶體匯流排或記憶體控制器、周邊匯流排或視訊匯流排的若干匯流排架構中的任一者或多者。CPU 520可包含任何類型的電子資料處理器,且記憶體522可包含任何類型的系統記憶體,諸如靜態隨機存取記憶體(static random access memory; SRAM)、動態隨機存取記憶體(dynamic random access memory; DRAM)或唯讀記憶體(read-only memory; ROM)。
大容量儲存裝置524可包含用以儲存資料、程式及其他資訊且使資料、程式及其他資訊可經由匯流排530存取的任何類型的儲存裝置。大容量儲存裝置524可包含例如硬碟驅動器、磁碟驅動器、光碟驅動器等中的一或多者。
視訊配接器526及I/O介面528提供用於將外部輸入及輸出裝置耦接至處理單元510的介面。如第5圖所示,輸入及輸出裝置的實例包括耦接至視訊配接器526的顯示器514及耦接至I/O介面528的I/O組件512,諸如滑鼠、鍵盤、印表機等。其他裝置可耦接至處理單元510,且可利用額外或更少的介面卡。舉例而言,串行介面卡(未展示)可用於為印表機提供串行介面。處理單元510亦可包括網路介面540,此網路介面可為至區域網路(local area network; LAN)或廣域網路(wide area network; WAN)516的有線連結及/或無線連結。
應注意,HIS 500可包括其他組件/裝置。舉例而言,HIS 500可包括電源供應器、電纜、母板、可移除式儲存媒體、殼體等。此等其他組件/裝置(儘管未展示)被視為HIS 500的一部分。
在本揭示案之一實施例中,電子設計自動化(Electronic Design Automation; EDA)為由CPU 520執行以分析使用者檔案以獲得積體電路(例如,上述積體電路100)的佈局的程式碼。此外,在EDA的執行期間,如此項技術中已知,EDA可分析佈局的功能組件。CPU 520可經由匯流排530自記憶體522、大容量儲存裝置524等,或經由網路介面540在遠端存取程式碼。
在本揭示案之一實施例的一個態樣中,提供一種積體電路佈局。該積體電路佈局包括一或多個第一單元列,該一或多個第一單元列沿一第一方向部分地延伸跨越經配置用於一積體電路佈局的一空間。該一或多個第一單元列中的每一者沿垂直於該第一方向的一第二方向具有一第一高度。該積體電路佈局包括一或多個第三單元列,該一或多個第三單元列沿該第一方向部分地延伸跨越該空間。該一或多個第三單元列中的每一者沿該第二方向具有一第二高度,該第二高度不同於該第一高度。
在一些實施例中,該積體電路佈局進一步包括一或多個第三單元列及一或多個第四單元列。該一或多個第三單元列沿該第一方向完全延伸跨越該空間,該一或多個第三單元列中的每一者沿該第二方向具有該第一高度。該一或多個第四單元列沿該第一方向完全延伸跨越該空間,該一或多個第四單元列中的每一者沿該第二方向具有該第二高度。
在一些實施例中,該積體電路佈局進一步包括一第一組第一標準單元、一第二組該些第一標準單元、一第一組第二標準單元及一第二組該些第二標準單元。該第一組第一標準單元設定在由該一或多個第一單元列擴展的該空間的一第一區域中,該些第一標準單元中的每一者具有該第一高度。該第二組該些第一標準單元設定在由該一或多個第三單元列擴展的該空間的一第二區域中。該第一組第二標準單元設定在由該一或多個第二單元列擴展的該空間的一第三區域中,該些第二標準單元中的每一者具有該第二高度。該第二組該些第二標準單元設定在由該一或多個第四單元列擴展的該空間的一第四區域中。
在一些實施例中,該第一組第一標準單元對應於該積體電路的一第一電路模組,該第二組第一標準單元對應於該積體電路的一第二電路模組,該第一組第二標準單元對應於該積體電路的一第三電路模組,且該第二組第二標準單元對應於該積體電路的一第四電路模組。
在一些實施例中,該第一組與該第二組該些第一標準單元共用一第一時序約束、一第一效能約束或一第一功率約束中的至少一者,且該第一組與該第二組該些第二標準單元中的至少一者共用一第二時序約束、一第二效能約束或一第二功率約束中的至少一者。
在一些實施例中,該空間被劃分為複數個均勻大小的窗口,該些窗口中的至少一者包括該第一區域的一部分、該第二區域的一部分、該第三區域的一部分及該第四區域的一部分中的至少兩者的一組合,且其中該些第一標準單元或該些第二標準單元在該至少一個窗口中的一密度滿足一預定臨限值。
在一些實施例中,該積體電路佈局進一步包括一或多個第五單元列及一或多個第六單元列。該一或多個第五單元列沿該第一方向部分地延伸跨越該空間,該一或多個第五單元列中的每一者沿該第二方向具有該第一高度。該一或多個第六單元列沿該第一方向部分地延伸跨越該空間,該一或多個第六單元列中的每一者沿該第二方向具有該第二高度。該一或多個第五單元列及該一或多個第六單元列沿該第一方向置放在該一或多個第一單元列與該一或多個第三單元列之間。
在一些實施例中,該積體電路佈局進一步包括一第三組第一標準單元。該第三組第一標準單元設定在由該一或多個第五單元列及該一或多個第六單元列擴展的該空間的一第五區域中,該第三組第一標準單元中的每一者具有該第一高度,該第三組第二標準單元中的每一者具有該第二高度。
在本揭示案之一實施例的另一態樣中,揭示一種產生一積體電路佈局的方法。該方法包括接收一積體電路的一設計。該方法包括自該積體電路的該設計,基於一使用者規範或一第一共同特性來識別該積體電路的一第一電路模組。該方法包括自該積體電路的該設計,基於該使用者規範或一第二共同特性來識別該積體電路的一第二電路模組。該方法包括基於所識別的該第一電路模組及所識別的該第二電路模組,相對於經配置用於該積體電路的該設計的一空間配置一第一鄰接區域及一第二鄰接區域。該第一區域由一或多個第一單元列組成,該一或多個第一單元列沿一第一方向完全或部分地延伸跨越該空間,沿垂直於該第一方向的一第二方向具有一第一高度。該第二區域由一或多個第二單元列組成,該一或多個第二單元列沿該第一方向完全或部分地延伸跨越該空間,沿該第二方向具有一第二不同高度。
在一些實施例中,該方法進一步包括以下步驟。將具有該第一高度的一組第一標準單元置放至該第一鄰接區域中。將具有該第二高度的一組第二標準單元置放至該第二鄰接區域中。
在一些實施例中,該方法進一步包括以下步驟。判定對應於該積體電路的該第一電路模組的一第一時序約束、一第一效能約束或一第一功率約束中的至少一者,以識別該第一電路模組。
在一些實施例中,該方法進一步包括以下步驟。判定對應於該積體電路的該第二電路模組的一第二時序約束、一第二效能約束或一第二功率約束中的至少一者,以識別該第二電路模組。
在一些實施例中,當該一或多個第一單元列中的每一者沿該第一方向部分地延伸跨越該空間且該一或多個第二單元列中的每一者沿該第一方向部分地延伸跨越該空間時,該方法進一步包含以下步驟。基於自該設計識別出該積體電路的一第三電路模組,在該空間上配置一第三鄰接區域,該第三區域由具有該第一高度的一或多個第三單元列及具有該第二不同高度的一或多個第四單元列擴展。
在一些實施例中,該第三鄰接區域沿該第一方向設定在該第一區域與該第二區域之間。
在一些實施例中,該方法進一步包括以下步驟。將具有該第一高度的一組第一標準單元置放至該第三鄰接區域的一第一部分中。將具有該第二不同高度的一組第二標準單元置放至該第三鄰接區域的一第二部分中。
在本揭示案之一實施例的又一態樣中,一種電腦程式產品包括儲存在其上的一電腦可讀程式媒體程式碼。該程式碼在由一處理器執行時使該處理器實施一方法。該方法包括接收一積體電路的一設計。該方法包括識別經配置用於該積體電路的該設計的一空間。該空間由複數個第一單元列及複數個第二單元列組成,該些第一單元列沿一第一方向完全延伸跨越該空間,沿垂直於該第一方向的一第二方向具有一第一高度,且該些第二單元列沿該第一方向完全延伸跨越該空間,沿該第二方向具有不同於該第一高度的一第二高度。該方法包括基於該設計,將該積體電路的複數個電路模組置放在該空間上。該方法包括基於該些電路模組的該些置放,估計該積體電路的效能。該方法包括基於該估計的效能,將一第一鄰接區域或一第二鄰接區域中的至少一者配置在該空間上。該第一區域由一或多個第三單元列組成,該些第三單元列沿該第一方向完全或部分地延伸跨越該空間,具有該第一高度。該第二區域由一或多個第四單元列組成,該些第四單元列沿該第一方向完全或部分地延伸跨越該空間,具有該第二不同高度。
在一些實施例中,該方法進一步包含以下步驟。將具有該第一高度的一組第一標準單元置放至該第一鄰接區域中。
在一些實施例中,該方法進一步包含以下步驟。將具有該第二不同高度的一組第二標準單元置放至該第二鄰接區域中。
在一些實施例中,基於該估計的效能將一第一鄰接區域或一第二鄰接區域中的至少一者配置在該空間上進一步包含以下步驟。基於該估計的效能,識別該空間上對應於與滿足一臨限值的一預定效能要求的數個衝突的一區域。將該區域判定為該第一鄰接區域或該第二鄰接區域。
在一些實施例中,該第一鄰接區域對應於一第一時序約束、一第一效能約束或一第一功率約束中的至少一者,且該第二鄰接區域對應於一第二時序約束、一第二效能約束或一第二功率約束中的至少一者。
前述概述了若干實施例的特徵,使得熟習此項技術者可更好地理解本揭示案之一實施例的態樣。熟習此項技術者應理解,其可容易地將本揭示案之一實施例用實施例作設計或修改其他過程及結構的基礎,以實現與本文中介紹的實施例相同的目的及/或達成相同的優點。熟習此項技術者亦應認識到,此種等效構造不脫離本揭示案之一實施例的精神及範圍,且在不脫離本揭示案之一實施例的精神及範圍的情況下,其可在本文中進行各種改變、替換及變更。
100:積體電路 102:空間 103:鄰接區域/均勻矮區域 104:鄰接區域/均勻高區域 105:鄰接區域/均勻矮區域 106:鄰接區域/均勻高區域 107:區域 110:單元列 112:單元列 114:單元列 116:單元列 118:單元列 120:單元列 122:單元列 124:單元列 126:單元列 128:單元列 130:單元列 132:單元列 134:單元列 136:單元列 140:單元列 142:單元列 144:單元列 146:單元列 148:單元列 150:單元列 152:單元列 154:單元列 156:單元列 158:單元列 158-1:主動區 158-2:主動區 160:單元列 160-1:主動區 160-2:主動區 160-3:主動區 160-4:主動區 162:單元列 164:單元列 166:單元列 168:單元列 170:單元列 172:單元列 174:單元列 176:單元列 178:單元列 180:單元列 182:單元列 184:單元列 192:單元 193:單元 194:單元 195:單元 196:單元 200:方法 202:輸入網表 204:設計約束 206:操作 208:操作 210:操作 212:操作 214:操作/製造工具 216:操作 250:方法 252:行為/功能設計 254:設計約束 256:操作 258:操作 260:操作 262:操作 264:操作 266:操作 268:操作 270:操作 300:方法 302:輸入網表 304:設計約束 306:操作 308:操作 310:操作 312:操作 314:操作 316:操作 318:操作 350:方法 352:行為/功能設計 354:設計約束 356:操作 358:操作 360:操作 362:操作 364:操作 366:操作 368:操作 370:操作 372:操作 374:操作 376:操作 400:網表 402:單元列 404:單元列 406:高單元 408:矮單元 410:混合高度單元 500:資訊處置系統(IHS) 510:處理單元 512:輸入/輸出(I/O)組件 514:顯示器 516:LAN/WAN 520:CPU 522:記憶體 524:大容量儲存裝置 526:視訊配接器 528:I/O介面 530:匯流排 540:網路介面 X:方向 Y:方向 VDD:電力軌 VSS:電力軌
當與附圖一起閱讀時,根據以下詳細描述可最佳地理解本揭示案之一實施例的各態樣。應注意,根據行業中的標準實踐,各種特性未按比例繪製。實際上,為了論述的清楚起見,各種特性的尺寸可任意增大或減小。 第1A圖說明根據一些實施例的實例積體電路佈局的示意圖。 第1B圖說明根據一些實施例的處於特定金屬化層級的第1A圖的積體電路的一部分的示意圖。 第1C圖說明根據一些實施例的包括在第1A圖的積體電路的一部分中的數個單元的示意圖。 第2A圖說明根據一些實施例的產生包括一或多個均勻高區域及/或一或多個均勻矮區域的積體電路佈局的實例方法的流程圖。 第2B圖說明根據一些實施例的產生包括一或多個均勻高區域及/或一或多個均勻矮區域的積體電路佈局的另一實例方法的流程圖。 第3A圖說明根據一些實施例的產生包括一或多個均勻高區域及/或一或多個均勻矮區域的積體電路佈局的又一實例方法的流程圖。 第3B圖說明根據一些實施例的產生包括一或多個均勻高區域及/或一或多個均勻矮區域的積體電路佈局的又一實例方法的流程圖。 第4圖說明根據一些實施例的包括高單元列及矮單元列的網表(netlist)的一部分的示意圖。 第5圖說明根據一些實施例的實例資訊處置系統(information handling system; HIS)的方塊圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
100:積體電路
102:空間
103:鄰接區域/均勻矮區域
104:鄰接區域/均勻高區域
105:鄰接區域/均勻矮區域
106:鄰接區域/均勻高區域
107:區域
110:單元列
112:單元列
114:單元列
116:單元列
118:單元列
120:單元列
122:單元列
124:單元列
126:單元列
128:單元列
130:單元列
132:單元列
134:單元列
136:單元列
140:單元列
142:單元列
144:單元列
146:單元列
148:單元列
150:單元列
152:單元列
154:單元列
156:單元列
158:單元列
160:單元列
162:單元列
164:單元列
166:單元列
168:單元列
170:單元列
172:單元列
174:單元列
176:單元列
178:單元列
180:單元列
182:單元列
184:單元列
X:方向
Y:方向

Claims (1)

  1. 一種積體電路佈局,包含: 一或多個第一單元列,其沿一第一方向部分地延伸跨越經配置用於一積體電路佈局的一空間,該一或多個第一單元列中的每一者沿垂直於該第一方向的一第二方向具有一第一高度;及 一或多個第二單元列,其沿該第一方向部分地延伸跨越該空間,該一或多個第二單元列中的每一者沿該第二方向具有一第二高度,該第二高度不同於該第一高度。
TW109130271A 2020-01-17 2020-09-03 積體電路佈局 TW202129529A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/746,029 2020-01-17
US16/746,029 US11748542B2 (en) 2020-01-17 2020-01-17 Systems and methods for integrated circuit layout

Publications (1)

Publication Number Publication Date
TW202129529A true TW202129529A (zh) 2021-08-01

Family

ID=76809341

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109130271A TW202129529A (zh) 2020-01-17 2020-09-03 積體電路佈局

Country Status (3)

Country Link
US (2) US11748542B2 (zh)
CN (1) CN113139362A (zh)
TW (1) TW202129529A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11748542B2 (en) * 2020-01-17 2023-09-05 Taiwan Semiconductor Manufacturing Company Limited Systems and methods for integrated circuit layout
KR20220048666A (ko) * 2020-10-13 2022-04-20 삼성전자주식회사 비대칭적인 파워 라인을 포함하는 집적 회로 및 이를 설계하는 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102497218B1 (ko) * 2016-04-29 2023-02-07 삼성전자 주식회사 복합 논리 셀을 포함하는 집적 회로
US10733352B2 (en) * 2017-11-21 2020-08-04 Taiwan Semiconductor Manufacturing Co., Ltd. Integrated circuit and layout method for standard cell structures
US11282829B2 (en) * 2017-11-28 2022-03-22 Taiwan Semiconductor Manufacturing Co., Ltd. Integrated circuit with mixed row heights
US10769342B2 (en) * 2018-10-31 2020-09-08 Taiwan Semiconductor Manufacturing Company Ltd. Pin access hybrid cell height design
US11748542B2 (en) * 2020-01-17 2023-09-05 Taiwan Semiconductor Manufacturing Company Limited Systems and methods for integrated circuit layout

Also Published As

Publication number Publication date
CN113139362A (zh) 2021-07-20
US20240020451A1 (en) 2024-01-18
US11748542B2 (en) 2023-09-05
US20210224456A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
US11152348B2 (en) Integrated circuit with mixed row heights
US6536024B1 (en) Method for making integrated circuits having gated clock trees
US11769766B2 (en) Integrated circuit with mixed row heights
US10713406B2 (en) Multi-die IC layout methods with awareness of mix and match die integration
US20240020451A1 (en) Systems and methods for integrated circuit layout
US20180101624A1 (en) Methods for reducing delay on integrated circuits
Li et al. Fast fixed-outline 3-D IC floorplanning with TSV co-placement
US20020144227A1 (en) Datapath design methodology and routing apparatus
US8234612B2 (en) Cone-aware spare cell placement using hypergraph connectivity analysis
US20090164963A1 (en) System and method for routing connections
US11748548B2 (en) Hierarchical clock tree implementation
US20190147133A1 (en) Variant cell height integrated circuit design
US8863062B2 (en) Methods and apparatus for floorplanning and routing co-design
US9047434B2 (en) Clustering for processing of circuit design data
US9292648B1 (en) Activity-driven capacitance reduction to reduce dynamic power consumption in an integrated circuit
TW201926217A (zh) 針對設計半導體裝置的資源規劃的方法、系統及儲存媒介
US8966429B2 (en) Bit slice elements utilizing through device routing
KR20170094744A (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
US9293450B2 (en) Synthesis of complex cells
US8947120B2 (en) Latch array utilizing through device connectivity
Krifa et al. Exploring the self reconfiguration of FPGA: design flow, architecture and performance
TWI738336B (zh) 邊界單元的布局方法及裝置以及積體電路
JPH09232436A (ja) 論理合成方法及び装置並びに半導体集積回路設計方法
Wu Pin Assignment for 2.5 D Dielet Assembly
Bekiaris et al. A standard-cell library suite for deep-deep sub-micron CMOS technologies