TWI556125B - 產生電路設計之佈局的方法及系統 - Google Patents

產生電路設計之佈局的方法及系統 Download PDF

Info

Publication number
TWI556125B
TWI556125B TW103130439A TW103130439A TWI556125B TW I556125 B TWI556125 B TW I556125B TW 103130439 A TW103130439 A TW 103130439A TW 103130439 A TW103130439 A TW 103130439A TW I556125 B TWI556125 B TW I556125B
Authority
TW
Taiwan
Prior art keywords
layout
link
design
node
map
Prior art date
Application number
TW103130439A
Other languages
English (en)
Other versions
TW201520802A (zh
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 TW201520802A publication Critical patent/TW201520802A/zh
Application granted granted Critical
Publication of TWI556125B publication Critical patent/TWI556125B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • 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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

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)

Description

產生電路設計之佈局的方法及系統
本發明相關於一個電子電路的擺置(Placement)和佈線(Routing),更具體來說為一個以知識為基礎(Knowledge based)以產生類比電路之佈局(Layout)的方法和系統。
現代系統晶片的設計,通常會同時包括數位和類比電路。數位電路的設計已大量使用現代的設計自動化工具來協助,然而類比電路則仍然是一種人工的、耗時的以及容易出錯的工作,因為現代之類比電路對於性能的要求越來越嚴格。
有許多能自動化地產生類比電路佈局的擺置和佈線的方法被提出來,這些方法會考慮到不同的類比電路佈局約束,像是對稱性、規則性、共同質心性、熱梯度性、單調電流路徑以及其他一般性的擺置約束。雖然這些佈局約束被設計用來最小化佈局引起的衍生效應,但其得到的佈局有時無法被接受,因為人工化的佈局包含許多專家的知識,而且設計者會有個人的佈局喜好,而佈局喜好無法只用這些佈局約束來表示。
本發明的多個實施例,提供一個針對一個目標設計來產生一個佈局的方法、器械和系統。在一個實施例中,一個針對目標設計產生佈局的方法,包括建立相關於一已存在設計(Existing Design)的資料庫,這些設計係基於一個連結圖、讀入一目標設計、辨識出共通於目標設計和已存在設計的一圖案(Design Pattern),並且結合該被辨識出之圖案於目標設計之佈局中。已存在的設計和目標設計(Target Design)包括多個元件和透過多個網絡連線(Nets)相互連結在一起之多個終端(Terminal)。該方法進一步包括調適(Adapt)該被辨識出之圖案於一個新技術(New Technology)中、驗證該被調適過的圖案,以及使用該被驗證過的圖案來更新資料庫。
根據一個實施例,資料庫可使用以下方式來建立,計算成對元件(pairs of devices)間的相互連結代碼(Interconnection Codes),轉換多個元件及連結於多個元件之多個終端的多個連線至連結圖之各自對應的節點和邊緣,並且將相互連結的代碼依附在連結圖的該些邊緣。成對元件之間的相互連結代碼,係加總成對元件之多個終端間之每個終端連結索引(Terminal Connection Index)值而得到之總和。
在另一個實施例中,一個電腦可讀的媒介具有處理器可執行的程式指令或程式碼以產生一個目標設計之佈局,該程式碼包括:能夠建立一儲存基於連結圖之已存在設計之資料庫的程式碼,能夠讀入一目標設計的程式碼,能夠辨識出共通於目標設計和已存在設計的一圖案的程式碼,以及能夠結合該被辨識出之圖案於目標設計佈局的程式碼。
以下的詳細說明並結合附圖,可以更好的理解本發明的本質和優點。
為了能在類比電路佈局產生的過程中獲得更多專家的知識,本發明描述一個以知識為基礎的類比電路佈局產生器以產生新的類比電路佈局,該產生器盡量使用設計儲存庫中品質被肯定過的已存在佈局。本發明的多個實施例,可被用於多種不同的佈局應用。依據本發明的一個實施例,圖1說明一個以知識為基礎類比電路佈局產生系統10(在此稱為系統10)的一個方塊圖。系統10包括,一個設計儲存器11具有多個電路圖和多個相關於電路圖的佈局,一個目標設計模組14具有一個電路圖和相關的技術檔案,以及一個以知識為基礎的類比電路佈局產生器18。說明於圖1的以知識為基礎的類比電路佈局產生器18包括,一個設計知識資料庫建構模組110,一個以知識為基礎的設計匹配及圖案取出模組120,以及一個以知識為基礎的佈局產生器模組130。設計知識資料庫建構模組110會分析來自設計儲存庫11的電路圖和相關的佈局,並將分析結果儲存至一個設計知識資料庫112中。使用設計知識資料庫112,以知識為基礎的設計匹配及圖案取出模組120和一個以知識為基礎的佈局產生器模組130會針對目標設計產生多種佈局的變形140。佈局變形140會根據設計規則來驗證。沒有違反設計規則的佈局會被遞交給專家進行批准。批准過的佈局的目標電路圖會被送交至設計儲存庫11中。
系統10可被建構於具有一或多個處理單元以及系統記憶元件的電腦中,並執行設計儲存庫11的功能、目標設計模組14的功能、以知識為基礎的類比電路佈局產生模組18的功能以及多個佈局變形140的驗證功能。
以知識為基礎的類比電路佈局產生模組18的詳細說明將提供如下。
設計知識資料庫112建構
利用一個設計儲存庫11包含已存在的設計電路圖/連線清單以及相關的已存在佈局,設計知識資料庫112的建構會分析每個電路和佈局的設計資料,並將分析過的資料儲存至一個設計知識資料庫112中。為了能在產生新設計電路或目標設計時,盡量利用設計儲存庫11中的已存在佈局,以知識為基礎的設計匹配及圖案取出會將目標設計和設計知識資料庫112中的已存在設計進行匹配以取出共通的子電路或設計圖案,並自取出的圖案中選取適當的一個。最後,以知識為基礎的佈局產生器會進一步取出資料庫中每個設計圖案的相關佈局,必要的話會將取出的佈局遷移至新的技術,並且透過組裝所有設計圖案的遷移佈局以產生具有多個變形的目標佈局140。當越來越多的類比電路佈局被驗證過和被有經驗的佈局專家批准後,設計知識資料庫便可被持續地擴充。
利用設計儲存庫112中的已存在設計,由知識為基礎的類比電路佈局產生器所產生的佈局,可以保持更多專家的知識和他們的佈局設計喜好。
依據本發明的多個實施例,一個類比電路佈局會自動地由一個儲存於設計儲存庫112中的一個已存在佈局之設計資料所產生。而且,一個新穎的演算法會完全地或部分地,將一個儲存於設計儲存庫11中的一個已存在佈局與一個目標設計匹配,並且進一步辨認或取出共通的設計圖案。
因為在取出設計圖案中的元件/子電路並非互斥的,一個最佳設計圖案會由已取出的圖案中來選擇,同時最大化已存在佈局的再使用率。本發明中的多個實施例,將圖案選擇問題描述為一個最大重量團的問題,並提出解決方案修剪技術來降低問題大小。
基於以知識為基礎的佈局設計方法,每個設計者可以維護自己的設計儲存庫11,並且能有效率地和有效益地根據他自己的佈局設計知識以產生不同的目標佈局。
已知一組已存在電路圖的集合SL和已存在的佈局集合LL,一個設計知識資料庫會如以下的描述,先基於一個連結圖的表示來建構。由於一個基本的連結圖僅能表示相關於一個電路圖的邏輯資訊,一些重要的物理資訊,會進一步地從相對應的已存在佈局被標記至連結圖裡。 連結圖的連接
對每一個已存在的電路圖sL∈SL其相對應的連結圖GsL可藉由轉換sL中的元件和連線至各別的節點和邊緣所衍生而得。元件類型會被標示在每個節點上。如果在sL中的兩個元件之間有個連結,則會有一個邊緣在相對應GsL的節點之間。圖2A顯示一個CMOS串聯式運算轉導放大器的已存在電路圖,該電路包括4個PMOS電晶體和5個NMOS電晶體,而在圖2B則顯示一個圖2A的CMOS串聯式運算轉導放大器一個相對應連結圖的表示。
參考圖2B,節點n1表示PMOS元件M1,節點n2表示PMOS元件M2,節點n3表示PMOS元件M3和節點n4表示PMOS元件M4。類似地,節點n5表示NMOS元件M5,節點n6表示NMOS元件M6,節點n7表示NMOS元件M7,節點n8表示NMOS元件M8以及節點n9表示NMOS元件M9。
由於一個在sL中的元件有兩個或多個終端,為了要辨認GsL中一個邊緣的終端連結,一個通用的編碼方案會被引入,並且根據本發明的一個實施例,會將代碼附屬在每個邊緣上。根據通用的編碼方案,在邊緣上的每個代碼會唯一地說明該邊緣的終端連結。對於兩個元件,di和dj,分別具有x與y終端,則由di到dj,Γi→j,的相互連結代碼可由方程式(1)計算而得之,其中表示自di的第p個終端到元件dj第q個終端的終端連結索引(Terminal Connection Index, TCI),而且αpq∈{0,1}。如果在di的tp和元件dj的tq之間有個終端連結,則αpq=1;否則αpq=0。tcip→q之值被定義於方程式(2)之中。
表1列出兩個MOS電晶體,Mi Mj 之間的終端連結索引,其中D、 G、和 S分別表示汲極端、閘極端和源極端。 表1<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td><i>TCI</i><sub>i</sub><sub>à</sub><sub>j</sub>   </td><td><i>M<sub>j</sub></i>之終端 (Terminals of <i>M<sub>j</sub></i><i>)</i></td></tr><tr><td><i>D</i></td><td><i>G</i></td><td><i>S</i></td></tr><tr><td><i>M<sub>i</sub></i>之終端 (Terminals of <i>M<sub>i</sub></i><i>)</i></td><td><i>D</i></td><td> 1 </td><td> 2 </td><td> 4 </td></tr><tr><td><i>G</i></td><td> 8 </td><td> 16 </td><td> 32 </td></tr><tr><td><i>S</i></td><td> 64 </td><td> 128 </td><td> 256 </td></tr></TBODY></TABLE>
根據表1、方程式(1)和圖2A,相對應於圖2B中連結圖之每個邊緣的相互連結代碼可以很容易地被計算出來。例如,在圖2A中,有一組由M1 M2 的終端連結,其中 分別表示由M1閘極終端到M2汲極終端的終端連結、由M1閘極終端到M2閘極終端的終端連結以及由M1源極終端到M2源極終端的終端連結。根據表1,TCI值分別表示如下:,所以Γ1→2 =280。類似地,所有其他相對應於連結圖中每個邊緣的相互連結代碼都可以被取得,圖3顯示包括所有相互連結代碼的連結圖。   約束標記(ConstraintAnnotation)
由於對稱性和鄰近性的約束在類比電路佈局設計中很普遍,本發明的一個實施例能夠自動自每一個已存在佈局,lL∈LL,取出對稱性和鄰近性的約束,以及自動在相對應連結圖中GsL標記約束。這些約束可以幫助在設計匹配和圖案取出時減少搜索空間。
根據每個元件的座標,一對對稱擺置和佈線的元件會很容易地自lL中辨認出來,而不同元件之間的鄰近關係也會容易地被辨認。自lL同時辨認出對稱性和鄰近性的約束之後,該資訊將被標記於GsL中。
表2給出一個從電路的已存在佈局lL中,取出對稱性和鄰近性的約束的範例,其中包括4對對稱性約束。在lL的每個元件均有其鄰近元件。根據表2,圖4顯示了圖3的連結圖,在經過同時標記對稱性和鄰近性的約束之後,所導致的連結圖。所有已存在設計經過標記後的連結圖,隨後會被儲存在設計知識資料庫內。 表2<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 對稱性 </td><td> 鄰近性 </td></tr><tr><td> {M1,M2} </td><td> M1(M2,M5,M8) </td></tr><tr><td> {M3,M4} </td><td> M2(M1,M3,M5,M6,M8) </td></tr><tr><td> {M5,M6} </td><td> M3(M2,M4,M5,M6,M9) </td></tr><tr><td> {M8,M9} </td><td> M4(M3,M6,M9) </td></tr><tr><td>   </td><td> M5(M1,M2,M3,M6,M7,M8) </td></tr><tr><td> M6(M2,M3,M4,M5,M7,M9) </td></tr><tr><td> M7(M5,M6) </td></tr><tr><td> M8(M1,M2,M5) </td></tr><tr><td> M9(M3,M4,M6) </td></tr></TBODY></TABLE>
在一個類比電路佈局設計中的其他約束有可能是由其他現象引起的雜訊,例如,電流鏡像、放大器的操作速度、類比電路或子電路的功率消耗等等。在一些實施例中,除了對稱性和鄰近性的約束之外,由電流鏡像、操作速度以及對稱性的功率消耗所引起雜訊的屬性,會被標注或標記於節點或邊緣上。
以知識為基礎的設計匹配和圖案取出
根據所產生的設計知識資料庫,一組設計圖案(DP)可被辨識出來。在取得所有DP之後,可以刪除所有冗餘的DP來最小化DP的數目,而且一個DP會被選取用以產生目標設計lT的佈局,以下將會詳細說明。 設計圖案辨認
在一個實施例中,問題的描述是盡量利用一組已存在的佈局LL以產生一個目標佈局lT使得lT的品質能與已存在佈局LL相比擬。由於sL不一定與sT是同樣的,因此只有同時在sL和sT內(也就是相同電路結構)之子電路的佈局可被重用以產生lT,故可描述為一個子電路辨認的問題。
在比較電路時,所有被比較的電路都被表示為一個圖形,接著以圖形為基礎的演算法會被用來作圖形的比較。雖然已經有好幾個圖形比較演算法已被提出,這些演算法僅僅驗證兩個圖形是否一致(也就是圖形同構),或者是驗證一個圖形是否被包含在另一個圖形內(也就是子圖形同構)。這種演算法並不能夠直接用來取出,包含在兩個不同圖形內的所有共通的子圖形(也就是子圖形辨認)。因此,本發明的一個實施例提出一個新的設計匹配和圖案取出的演算法,來辨識出在目標設計GsT連結圖中所有的子圖形,這些圖形也會出現在所有已存在設計的連結圖內。圖5A到5C說明圖形同構、子圖形同構、和子圖形辨認之間的差異。
在開始圖案辨識程序之前,目標設計sT的電路圖,會被上述提過的方法轉換成相對應的GsT。sT的對稱性及/或鄰近性約束,會被標記於GsT內,故可由設計者提供或自動地取出來。為了說明此一新穎和有創造力的圖案辨識程序,對稱的對應以及設計圖案這兩個術語會被定義如下。
對稱的對口以及設計圖案的定義。 定義1:一個對稱對的對口為。 定義2:一個設計圖案DP為一個同時包含於的子圖形。 已知,以下之圖案辨識程序可辨識出一個設計圖案DP。 1) 選取一對初始節點,, 以使:device_type(di) = device_type(dj)   (註:device_type為元件類型) 2) 初始化 DP = {}. 3)選取一對新的節點,, 以使: a)device_type(dx) = device_type(dy) b).  c)4)如果上述步驟中的所有可行條件(a),(b)和(c)皆滿足,將加入至 DP 。 5)重複步驟 3-4 直到沒有節點能夠被加入到設計圖案DP中。
為了要滿足對稱性的限制,一個對稱對ni和ni’∈GsT 會被映射至另一個對稱對nj和nj’∈GsL,並且在步驟3和步驟4的所有可行性條件都能夠同時在ni和nj上成立。要注意的是在對稱對之間可能會有相互連結存在,因此可行性條件Γi→I’= Γj→j’必須被驗證過以保證相同的電路結構是被辨識過的。雖然該程序嘗試透過映射一個對稱對nj和nj’∈ GsL到另一個對稱對ni和ni’∈ GsT,該程序有可能在圖案辨識程序的最後,還無法找到一個相應的對稱對nj和nj’。因此,該程序會再一次重覆步驟3-4,而不去考慮lL的對稱性。在取得lT之後,一些調整會加至lT以便更正所有違反對稱性之處。為了要產生更多的DP來進一步改善lT的品質,∀ ni∈GsT 和∀nj∈GsL在圖案辨識程序過程中會被視為初始的節點。
例如,已知sL如圖2A所示,和sT如圖6A所示,其相應的GsL和GsT已被產生,分別顯示於圖4和圖6B。在表3中所提出的對稱對sT,也被標記於GsT中。假設n20 ∈GsT和n7 ∈GsL被選取為初始節點,根據上面的程序,所得到的DP包含了5個MOS電晶體,並顯示於。
表3列出在圖6A中ST 所有的已知對稱性約束。 表3<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 對稱性約束 </td></tr><tr><td> {M<sub>10</sub>, M<sub>11</sub>} </td><td> {M<sub>12</sub>, M<sub>13</sub>} </td><td> {M<sub>14</sub>, M<sub>15</sub>} </td><td> {M<sub>16</sub>, M<sub>17</sub>} </td></tr><tr><td> {M<sub>18</sub>, M<sub>19</sub>} </td><td> {M<sub>21</sub>, M<sub>22</sub>} </td><td>   </td></tr></TBODY></TABLE>
表4列出由圖4與圖6A所導致的設計圖案結果 表4<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 所有CMOS電晶體包含於一個DP內 </td></tr><tr><td> M<sub>18</sub> (M<sub>5</sub>), M<sub>19</sub> (M<sub>6</sub>), M<sub>20</sub> (M<sub>7</sub>), M<sub>21</sub> (M<sub>8</sub>), M<sub>22</sub> (M<sub>9</sub>) </td></tr></TBODY></TABLE>
如同圖案辨識程序中步驟3.c所顯示,僅有當可行性條件Γi→x=Γj→y(也就是TCi→x=TCj→y)被滿足時,nx(ny)才會被視為一個DP。在這樣的約束下,當電路結構sL sT 不完全相同時,由lL 中利用較多的重用佈局圖案來建立lT ,就不見得會很有效益。本發明者發現如果TCj→y⊆TCi→x,則子電路di dx 的佈局可利用子電路dj和dy來建立。為了能有效地由lL取出較多可重用的佈局圖案,在步驟3.c的可行性條件Γi→x=Γj→y(也就是TCi→x = TCj→y)可使用以下的方程式來取代:              TCj→y⊆TCi→x.     (3)
要注意的是所有多餘的連結TCi→x - TCj→y,必須從lL中刪除以便能在lT和sT獲得一致的電路結構。
為了在圖案辨認程序中,能夠基於連結圖方便地驗證兩個子電路是否一致,兩個元件的所有終端連結都會以一個相互連結代碼來表示,並且被標示於連結圖各個節點的邊緣上。每次在圖案辨認程序中探查一對新節點時,必須驗證方程式(3)的可行性條件是否滿足,因此一個相反的程序必須用來將相對應的相互連結代碼轉換為終端連結的集合。如方程式(1)所顯示,相互連結代碼的取得來自於加總所有相互連結代碼索引,這些索引值都是2的次方。因此,一個相反程序是用來將一個已知的相互連結代碼轉換為不同的相互連結代碼索引,故一組終端連結的獲得,最終可經由映射每個相互連結代碼索引至相對應的終端連結。
圖7A說明在圖6B中的終端連結集合TC14→15。圖7A說明在圖4中的終端連結集合TC1→2。Fig.
已知Γ14→15和Γ1→2,如圖6(b)(GsT)和圖4(GsL)所顯示,一組終端連結TC14→15和TC1→2可以很容易地分別如圖7A和7B來獲得。如圖7A所顯示,TC14→15包括兩個終端連結GD和GG,而TC1→2則包括三個終端連結GD和DD,以及一個多餘的連結SS(如圖7B所顯示)。由於,故n14 (n1)在圖案辨認程序中會被加至DP中。應用所使用的範例,將方程式(3)代入圖案辨識程序中步驟3.c的可行性條件,一個包含9個MOS電晶體的新DP可被推導出來並列表於表5內。
表5說明在考量方程式(3) 做為圖案辨識程序中步驟3.c的可行性條件之後,由圖4和6B所導致的DP結果。 表5<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 所有CMOS電晶體包含於一個DP內 </td></tr><tr><td> M14 (M1)*, M15 (M2), M16 (M3), M17 (M4) M18 (M5), M19 (M6), M20 (M7), M21 (M8), M22 (M9) </td></tr></TBODY></TABLE> *di (dj )表示dj 佈局為GsL 的一個元素,並用以產生一個GsT 元素的di 佈局。 設計圖案的修剪
在得到一組DP之後,一個相對應的圖案解析圖(PG)可被建構出來,如果兩個相對應的DP沒有包含相同元件di∈GsT,則其中一個頂點表示一個DP和兩個頂點會由一個邊緣連結起來,使得兩個DP可以同時被選取。在說明如何刪去PG中多餘的頂點之前,關於候選集合和可重用性(在此有時稱為可重用性索引)的定義如下。
候選集合和可重用性的定義 定義3:在PG中,一個頂點vi的候選集合(CanSetvi)為有一個邊緣連結至vi的頂點的集合。 定義4:在PG中,一個頂點vi的可重用性(Rvi),代表著在相對應DP中元件的數目(DevNumni)和連線的數目(NetNumni)。
對於兩個頂點vi和vj,如果以下條件能滿足一個,則Rvi>Rvj 1.       DevNumvi>DevNumvj 2.      DevNumvi=DevNumvjand NetNumvi>NetNumvj
基於PG的性質,如果兩個頂點vi和vj沒有相互連結,則在圖案選取程序中只能選擇vi或vj的其中一個。假設已知兩個頂點vi和vj沒有相互連結,使得: 1.CanSetvi⊆CanSetvj(也就是頂點vi 的候選集合為頂點vj 候選集合的子集合) 2. Rvi<Rvj(也就是頂點vi 的可重用性小於頂點vj 的可重用性)
根據條件(1),它意味著∀vk可以與vi一起被選取,因此也可以與vj一起被選取。然而∀vk∈,根據條件(2)它會與vj一起被選取,因為有許多元件和連線可被重用來建立目標佈局lT(lL的較高再使用)。因此,vi可視為一個多餘的頂點,並可事先被刪去以降低下個階段圖案選取問題的複雜度。多餘節點的正式定義將表示如下: 定義5:對一個在PG中的頂點vi,如果∃vj與vi沒有相互連結,使得,則vi為一個多餘節點。
根據定義5,所有多餘的頂點,可以透過檢查PG中所有的頂點對而做有效地刪除,以減少頂點的數目。執行圖案辨識程序於圖4和圖6(b),可得到如表6的5個DP,故一個相對應的PG可被產生如圖8A所顯示。根據表6,v3為一個多餘頂點,因為CanSetv3⊆CanSetv2和Rv3<Rv2。若將v3從PG移除,圖8B顯示移除後的PG。為了能在下個步驟進一步減少圖案選取問題的複雜度,將會分割PG為不同群組來約束圖案選取的方式,使得一個群組內的所有頂點形成一個最大獨立集合,而且只有一個頂點能在圖案選取步驟中被選取。例如,在圖8B中的PG可被分割為3個群組如圖8C所顯示,其中v2或v4可由G2中被選取。透過約束圖案被選取的方式,就不需要在圖案選取步驟時,驗證是否在同一個群組中的兩個DP能夠同時被選取。
表6顯示所有根據圖4和圖6B所產生的設計圖案DP 表6<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> DP </td><td> 內涵之元件(Contained devices) </td><td> D </td><td> N </td></tr><tr><td> 1 </td><td> M<sub>10</sub>, M<sub>11</sub>, M<sub>12</sub>, M<sub>13</sub></td><td> 4 </td><td> 6 </td></tr><tr><td> 2 </td><td> M<sub>14</sub>, M<sub>15</sub>, M<sub>16</sub>, M<sub>17</sub>, M<sub>18</sub>, M<sub>19</sub>, M<sub>20</sub>, M<sub>21</sub>, M<sub>22</sub></td><td> 9 </td><td> 15 </td></tr><tr><td> 3 </td><td> M<sub>14</sub>, M<sub>15</sub>, M<sub>16</sub>, M<sub>17</sub>, M<sub>18</sub>, M<sub>19</sub>, M<sub>20</sub></td><td> 7 </td><td> 9 </td></tr><tr><td> 4 </td><td> M<sub>18</sub>, M<sub>19</sub></td><td> 2 </td><td> 1 </td></tr><tr><td> 5 </td><td> M<sub>20</sub></td><td> 1 </td><td> 0 </td></tr></TBODY></TABLE> 其中最左行表示設計圖案(頂點),右邊倒數第二行表示在相對應設計圖案DP (頂點)中元件的數目,而最右邊一行則表示在相對應設計圖案DP (頂點)中連線的數目。被包含的元件數目和被包含的連線數目,共同定義了相對應頂點的可重用性索引。   設計圖案的選取
在上述的步驟之後,可得到一個分割為不同群組的PG如圖8C所顯示。接著,我們可以階層式地合併兩個群組以決定那個群組會被選取用以產生lT,同時保持lL的最大重用性。在階層群組合併過程中,兩個頂點會試著合併形成一個較大的集團(形成一個較大的頂點)以便最大化的lL重用。經過重覆執行以上的步驟,最後會獲得在lL重用最大化之下,一個包括許多頂點的單一群組,其中群組中的每個頂點會是一個用以產生lT的可能解決方案。應該要注意的是,在階層群組合併時,會檢查多餘的頂點,以避免產生許多不必要的多餘頂點。
如圖8A-8C中的相同範例,剛開始已知一個具有3個群組的PG如圖9(a),每個節點所包含元件(D)和連線(N)的數目則如圖9(b)。在合併兩個群組G1和G2形成G4之後,兩個頂點v6和v7會被產生如圖9(c)所顯示,而每個頂點的D和N則顯示於圖9(d)。最後,一個具有兩個頂點v6和v8的單一群組會被產生如圖9(e)。由於CanSetv6⊆CanSetv8和Rv8<Rv6,根據定義 5,是一個多餘的頂點並且可被刪去。結果,相對應於v1和v2的DP的佈局會被用來建立lT。
圖9(a)到9(f)說明一個階層群組合併的範例。圖9(a)說明一個圖案解析圖(PG)的範例。圖9(b)說明圖9(a)中每個頂點所包含元件和連線的數目。圖9(c)說明合併G1和G2後的PG結果。圖9(d)說明圖9(c)中每個頂點所包含元件和連線的數目。圖9(e)說明合併G4和G3後的PG結果。圖9(f)說明圖9(e)中每個頂點所包含元件和連線的數目。
以知識為基礎的佈局產生
在決定那個DP要用以產生lT之後,首先會取出每個從lL所選取DP的相對應佈局,並遷移(Migrate)已取出的佈局(layout)至新的技術(New Technology)。接著,已存在的擺置(placement)和佈線(Routing)演算法可應用以產生lT,以便組裝DP已遷移的佈局。 設計圖案佈局的取出與遷移
前面階段執行之後,可以得到好幾個DP用來建立lT,並且會從每個由lL中被選取的DP取出相對應的佈局。在一個實施例中,利用OpenAccessAPI可得到一個佈局的物理資訊。因此,透過掃瞄lL,每個被選取DP的佈局可以容易地被辨識。例如,已知一個顯示於圖10(a)的lL,一個DP所相對應的包括lL的M1、M2、M5、M6和M11 之佈局可被推導出來並如圖10(b)所示。
由於已存在設計中的程序參數可能會與目標設計的參數不同(例如,不同的電晶體寬度和高度),被取出的佈局必須進行某些調整,以便滿足設計規格。不同的佈局遷移演算法可以應用至被取出的佈局,以便修正程序參數。 設計圖案佈局的整合
得到每個DP相對應的已取出佈局之後,便可執行以圖案為基礎的擺置和佈線以產生lT。由於傳統以元件為基礎的擺置和佈線通常需要數十或數百個元件,問題的複雜度相對較高。然而,不同類比電路的電路圖通常彼此都類似,因此需要DP用來建立lT的數目比較起元件的數目來說,相對的會來的少很多。要注意的是,如果有更多的lL用來擴充設計知識資料庫,則所需的DP數目可以再進一步的減少。因此,不論是使用最先進的類比擺置/佈線演算法,或是對有經驗的專業佈局設計人員而言,以圖案為基礎的擺置和佈線會比較容易地執行,。
對於以圖案為基礎的擺置問題,許多熟知的類比擺置演算法可以直接地應用,來處理以圖案為基礎的擺置問題。應當注意的是,所有的佈局都是源於lL,因此一個DP的每個取出佈局的輪廓可能會是直線,故應小心地使其緊湊以最小化lT的面積。此外,應該將相同型式的MOS電晶體貼近在一起,使得他們可以共享相同的散佈,以便進一步減少lT的面積。
至於以圖案為基礎的佈線問題,任何最先進的類比佈線器都可以應用來連接所有被擺置的佈局。在以圖案為基礎的佈線時,佈線的線路長度應該要保持最小,以降低佈線的寄生性避免性能退化。此外,有些連線也需要對稱性地佈線,以達到較好的寄生匹配。在一個類比電路中,有些佈線連線會容易地受到鄰近連線的影響(也就是對串線狀況比較敏感),因此距離約束必須能在兩個敏感的佈線連線之間保留足夠的距離以降低串線的衝擊。
前述的實施例描述了以知識為基礎的佈局設計方法,該方法使每位設計者可以維護自己的設計儲存庫,並根據其自己的佈局知識,有效率地和有效益地產生不同的目標佈局。根據本發明的一個實施例,圖11說明一個方法1100的流程圖,它可用以產生一個目標設計的一個佈局。方法1100開始於1110,在此取得一個電路設計的圖示。該電路圖示包括多個元件及其相關的多個終端,這些多個終端由多個連線連結在一起。在1120,會產生一個相關於設計的一個連結圖。該連結圖的取得係將電路圖中的元件和連線轉換至連結圖中之各自對應的節點和邊緣。一個元件類型(電晶體型式、二極體、電阻、電容和其他元件)會被標示在每個節點上。元件之間的連結會被轉換成相對應節點間的邊緣。兩個元件(節點)之間的連結(邊緣),會被指定至相對應的終端連結索引,該索引值為2的次方。接著會計算一個相互連結代碼,相互連結代碼為兩個節點之間終端連索引之和,然後相互連結代碼會被指定至相對應的邊緣。在1120,程序或操作會自動地取出設計的對稱性和鄰近性約束、雜訊、功率消耗以及速度約束並且將這些約束標記於連結圖內。
在建構設計的連結圖時,終端連結索引會被決定出來,相對應的相互連結代碼也會被計算出來,並且附加至所收到設計的連結圖的邊緣。在1130,所接收到設計的連結圖會與多個儲存在資料庫的連結圖做比較。透過選取一個儲存於資料庫中被選取連結圖的第一個節點,與所接收連結圖的一個第一個節點,一個或多個圖案可以被辨識出來。第一個節點通常都有相同的元件類型(例如,都是PMOS或NMOS元件)。如果第一個節點的相互連結代碼都相同,則相關於已存在連結圖第一個節點的圖案,會被加至一組設計圖案中。這樣的辨識程序會繼續下去,它會選取已存在連結圖(已存在連結圖為儲存於資料庫中的連結圖)的一個第二個節點和相同元件類型的目標連結圖(目標連結圖為所接收的設計)中的第二個節點,並比較相關的相互連結代碼。如果比較的結果是正面的,也就是第二個節點的相關相互連結代碼都相同,則相關於已存在連結圖第二個節點的圖案,會被加至一組設計圖案中。在1130的操作或程序,會在已存在和目標連結圖中的所有節點重覆進行。在一組設計圖案中的一個圖案會被辨識出,並在1140用來做為目標設計的佈局。在1150,被辨識的圖案會進一步被遷移到一個新技術,或是具有不同設計規則的新程序,以便產生該新技術的最佳佈局。在1160,該最佳化的佈局,會由一位熟練的或有經驗的設計者,根據新技術或新程序的設計規則做徹底的驗證。一旦該最佳化佈局通過驗證,在1170中它會被儲存至設計知識資料庫做為未來的重用用途。
應當注意的是,為了簡化說明,方法1100的描述參考了圖1。本發明的多個實施例,可以結合多個不同的程序或操作,進行目標設計的一個佈局的辨識。根據本發明的一個實施例,圖12為一個設計圖案辨識與選取方法1200的一個流程圖,其圖案則為目標(已接收的設計)和已存在設計的一個共通圖案。
方法1200可以由辨識目標設計(已接收的設計)及已存在設計(儲存於資料庫的已存在設計)的共通圖案開始。從1210開始,目標設計(已被讀入的設計)的一個連結圖會被產生出來。目標連結圖及已存在連結圖可以使用前面幾節所描述的相同方法產生出來。例如,成對元件之間的相互連結代碼會被計算,元件和連線會分別被轉換成節點和邊緣。計算出的相互連結代碼,會被依附於目標連結的邊緣上。目標設計的對稱性及/或鄰近性的約束也會被標記於目標連結圖內。在1220,已存在連結圖的一個節點和目標連結圖的一個節點會被選取,使得這些節點為相同的元件類型(例如,一個PMOS或NMOS元件),而且一組設計圖案(一個設計圖案被認為是一個同時被包含於已存在連結圖和目標連結圖內的子圖)會被初始化。在1230,已存在連結圖的下一個節點和目標連結圖的下一個節點會被選取,並被驗證是否滿足可行性條件。在一個實施例中,可行性條件會包括:(a)在目標連結圖和已存在連結圖中所選取的下一個節點,必須為相同的元件類型;(b)至少有一個節點是共通於設計圖案的集合和已存在連結圖的集合,該節點應位於已存在連結圖的下一個節點ny 的附近;和(c) 對於同時共通於設計圖案的集合和目標連結圖的集合的所有節點以及同時共通於設計圖案的集合和已存在連結圖的集合的所有節點,在已存在連結圖內節點的相互連結代碼會等於目標連結圖內節點的相互連結代碼。如果這些可行性條件都滿足,該設計圖案可被加入至設計圖案的集合中。應當要注意的是,根據本發明的一個實施例,除了驗證目標和現存的連結圖內節點的相互連結代碼的相等性,也可以驗證節點的終端相互連結索引。由於相互連結代碼為一個節點所有終端相互連結索引的總和,一個反向程序可用來將一個相對應的相互連結代碼轉換成一組終端相互連結索引。一組終端連結,可以透過映射每個終端連結索引至相對應的終端連結而獲得。
在1240,如果目標連結圖內最後的節點並未被選取,在1230的程序或操作在每個節點會重覆執行。在1250,一個PG會由設計圖案集合中產生,其中一個頂點代表1個設計圖案,如果兩個相對應的設計圖案在目標連結圖內並未包括相同的元件,則兩個頂點會被一個邊緣連結起來。在一個實施例中,多餘的頂點可被刪除。例如,如果兩個頂點沒有相互連結,具有較低可重用性索引的頂點可被刪除。
在1260,PG會被區分為多個群組,每個都具有一個最大可重用性索引(因為具有較低可重用性索引的頂點已被刪除)。在1270,任意兩個群組會階層式地合併起來,以減少群組為一個單一群組,同時維持住現存的佈局的一個最大可重用性索引。合併程序或操作會被重覆執行,直到一個單一群組在1280中獲得。如果該單一群組包括多個頂點,具有較低可重用性索引的頂點會被刪除,而剩餘具有最高可重用性索引的頂點會被用來在1290做為目標佈局。
根據本發明的一個實施例,圖13為一個示例性的電腦系統1300,用以產生一個目標設計的一個佈局。電腦系統1300的組件中,已熟知為電腦系統的部分,為了清楚起見會做省略。電腦系統1300包括一個處理器1305具有一個或多個處理單元、一個記憶體1307,和一個匯流排1309。電腦系統1300也包括一個設計儲存模組1311包含多個電路圖和相關的佈局、一個設計知識資料庫建構模組1310被設定用來分析電路圖和佈局,和一個設計知識資料庫1310來儲存分析過的電路圖和佈局。電腦系統1300進一步包括一個目標設計讀取模組1314、一個以知識為基礎的設計匹配與圖案取出模組1320、一個以知識為基礎的佈局產生模組1330、和一個佈局適應模組1340。目標設計讀取模組1314會讀入一個目標設計,該設計會包括包含元件和終端的電路圖和連線清單,這些元件和終端會透過連線彼此相互連結。目標設計讀取模組1314會將讀入的電路圖及/或連線清單轉換成一個連結圖,計算終端連結索引和相互連結代碼,並且將它們指定至連結圖。目標設計讀取模組1314會自目標佈局檔案取出對稱性和鄰近性約束,並標記這些約束於連結圖內。以知識為基礎的設計匹配與圖案取出模組1320,會與目標設計讀取模組和設計知識資料庫起相互作用,它會利用終端連結索引和基於一些可行性條件,來找出資料庫中匹配的設計圖案。以知識為基礎的佈局產生模組1330,會產生一個目標佈局。以知識為基礎的佈局產生模組1330根據一個新的程序或技術,因為有不同的設計規則,會產生多個佈局變形。這些模組彼此會相互溝通,並透過匯流排1309與處理器1305和記憶體1307來溝通。多個佈局變形,可透過一個專家設計者的驗證以得到最佳結果。最佳化的佈局變形,可進入設計儲存模組1311,做進一步處理和儲存給未來再使用。
本發明可以採用電腦實作方法和器械的形式,來實施這些程序或操作。本發明也可以採用有形媒介具有電腦程式原始碼的形式來實施,像是隨機存取記憶體(RAM)、CD-ROM、DVD、或任何電腦可讀的媒介。 實驗的結果
根據本發明的多個實施例,以知識為基礎的類比電路佈局方法論,可使用C++程式語言,在一個具有32GB記憶體的2.0GHz Linux機器上被實作。為展示我們方法的有效性,基於一個NMOS差分放大器的已存在設計的方法論,會先被測試用以產生一個兩級的Miller補償式運算放大器如圖14所顯示,已存在設計和目標設計的標準會列於表7。透過NMOS Diff-Amp來建立lT,73.33%的元件和23.53%的連線會被再使用如表8所顯示,其4個導出的DP結果則列於表9內。由於一個多引腳的連線很難從相同的已存在設計中被重複使用,故每個多引腳連線會被分割成多個雙引腳連線來計算連線的再使用率。
表7列出在圖14中已存在設計和目標設計的標準值 表7<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 已存在設計 </td><td> 目標設計 </td></tr><tr><td> 對稱性約束 </td><td> 鄰近性約束 </td><td> 對稱性約束 </td></tr><tr><td> { M2,M3} </td><td> M1 (M2,M3,C1,C2 ) </td><td> {M1 ,M2} </td></tr><tr><td> {M4 ,M5} </td><td> M2 (M1,M4,C1 ) </td><td> {M3 ,M4} </td></tr><tr><td>   </td><td> M3 (M1,M5,C2 ) </td><td> {M5 ,M6} </td></tr><tr><td> M4 (M2,C1 ) </td><td> {M7 ,M8} </td></tr><tr><td> M5 (M3,C2 ) </td><td> {M7 ,M8} </td></tr><tr><td> C1 (M1,M2,M4,C2 ) </td><td> {M12,M13} </td></tr><tr><td> C2 (M1,M3,M5,C1 ) </td><td>   </td></tr></TBODY></TABLE>
表8列出人工佈局和根據本發明一個實施例所產生佈局之間,再使用率的比較。要注意的是,元件再使用率為再使用元件數量與所有元件數量的比值。連線再使用率為再使用連線數量與所有連線數量的比值。 表8<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 目標佈局 </td><td> 再使用元件的數量 </td><td> 再使用連線的數量 </td><td> 所有元件數量 </td><td> 所有連線數量 </td><td> 元件再使用率 </td><td> 連線再使用率 </td></tr><tr><td> manual </td><td> 0 </td><td> 0 </td><td> 15 </td><td> 34 </td><td> 0% </td><td> 0% </td></tr><tr><td> Diff-Amp →Op-Amp </td><td> 11 </td><td> 8 </td><td> 73.33% </td><td> 23.53% </td></tr><tr><td> OTA →Op-Amp </td><td> 13 </td><td> 14 </td><td> 86.67% </td><td> 41.18% </td></tr><tr><td> Diff-Amp + OTA →Op-Amp </td><td> 15 </td><td> 16 </td><td> 100.00% </td><td> 47.06% </td></tr></TBODY></TABLE>
表9列出從一個NMOS差分放大器所導出的 表9<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> DP </td><td> 在每個DP中牽涉到的所有MOS電晶體 </td></tr><tr><td> 1 </td><td> M1 (M4),M2 (M5) </td></tr><tr><td> 2 </td><td> M3 (M4),M4 (M5),C1 (C1),C2 (C2) </td></tr><tr><td> 3 </td><td> M7 (M2),M8 (M3),M9 (M1) </td></tr><tr><td> 4 </td><td> M10(M4),M11(M5) </td></tr></TBODY></TABLE>
假設一個CMOS串聯OTA,如圖2(a)所顯示,被選取用來建立lT,則元件再使用率可由73.33%增加到86.67%(15個元件中的13個),而連線再使用率則可由23.53%增加到41.18%(34個連線中的14個),如表8所顯示,其4個所產生的DP結果列於0。
表10列出由CMOS串聯OTA所導出的DP Table X lists the DP that are derived from a CMOS cascade OTA. 表10<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> DP </td><td> 在每個DP中牽涉到的所有MOS電晶體 </td></tr><tr><td> 1 </td><td> M1 (M1),M2 (M2),M10(M3),M11(M4) </td></tr><tr><td> 2 </td><td> M3 (M1),M4 (M2) </td></tr><tr><td> 3 </td><td> M5 (M8),M6 (M9) </td></tr><tr><td> 4 </td><td> M7 (M5),M8 (M6),M9 (M7),M12(M8),M13 (M9) </td></tr></TBODY></TABLE>
最後,如果NMOSDiff-Amp和CMOS串聯OTA同時用來建立目標設計的佈局,則所有元件可以完全地被再使用(元件再使用率為100%),而且連線再使用率可進一步由41.18%改善為47.06%(34個連線中的16個),如表8所顯示的結果。4個獲得的DP結果列於1,其中圖案1來自於CMOS串聯OTA 。因此,如果有較多的lL用來建立lT,則有更多的元件和連線可被有效地從老舊設計的老舊佈局中再使用,而且有更多的專門知識來自於lL。應當注意的是在表8內目標設計的所有佈局可根據我們所提出的方法立即產生出來。
圖15顯示了在設計儲存庫中,NMOS差分放大器和CMOS串聯OTA的老舊佈局,以及根據我們的方法利用兩者老舊佈局,所產生的雙級Miller補償運算放大器的佈局。
本發明多個示例性實施例的詳細描述如上所述,並連同所附附圖來說明本發明的原理。雖然本發明是與這樣的實施例進行了描述,但是應當理解,本發明並不限於任何實施例。本發明的範圍是有限的,它僅由所附的權利要求項所約束,而本發明則包括許多替換,修改和等價物。為了透徹地理解本發明,許多特定細節被闡述在上面的描述中。這些所提供的細節是為了範例說明之用,本發明可以根據權利要求項的情況下去實現,不需要用到這些具體細節的一部分或全部。為了清楚的目的,與本發明相關技術領域的技術材料未被詳細描述,以使本發明產生不必要地模糊不清。
10‧‧‧以知識為基礎的類比電路佈局產生系統
11‧‧‧設計儲存器
14‧‧‧目標設計模組
18‧‧‧以知識為基礎的類比電路佈局產生器
110‧‧‧設計知識資料庫建構模組
112‧‧‧設計知識資料庫
120‧‧‧知識為基礎的設計匹配合圖案取出模組
130‧‧‧知識為基礎的佈局產生器模組
140‧‧‧針對目標設計產生多種佈局的變形
150‧‧‧專家
1100‧‧‧產生一個目標設計的一個佈局的一方法流程圖
1110‧‧‧產生一個目標設計的一個佈局的一方法流程圖一
1120‧‧‧產生一個目標設計的一個佈局的一方法流程圖二
1130‧‧‧產生一個目標設計的一個佈局的一方法流程圖三
1140‧‧‧產生一個目標設計的一個佈局的一方法流程圖四
1150‧‧‧產生一個目標設計的一個佈局的一方法流程圖五
1160‧‧‧產生一個目標設計的一個佈局的一方法流程圖六
1170‧‧‧產生一個目標設計的一個佈局的一方法流程圖七
1200‧‧‧設計圖案辨識與選取方法流程圖
1210‧‧‧設計圖案辨識與選取方法流程圖一
1220‧‧‧設計圖案辨識與選取方法流程圖二
1230‧‧‧設計圖案辨識與選取方法流程圖三
1240‧‧‧設計圖案辨識與選取方法流程圖四
1250‧‧‧設計圖案辨識與選取方法流程圖五
1260‧‧‧設計圖案辨識與選取方法流程圖六
1270‧‧‧設計圖案辨識與選取方法流程圖七
1280‧‧‧設計圖案辨識與選取方法流程圖八
1290‧‧‧設計圖案辨識與選取方法流程圖九
1300‧‧‧示例性的電腦系統
1305‧‧‧處理器
1307‧‧‧記憶體
1310‧‧‧設計知識資料庫建構模組
1311‧‧‧設計儲存模組
1312‧‧‧設計知識資料庫
1314‧‧‧目標設計讀取模組
1320‧‧‧以知識為基礎的設計匹配合圖案取出模組
1330‧‧‧以知識為基礎的佈局模組
1340‧‧‧佈局適應模組
圖1為依據本發明的一個實施例,說明一個以知識為基礎的類比電路佈局產生系     統的一個方塊圖。  圖2A說明一個示例性CMOS串聯式運算轉導放大器。 圖2B說明圖2A相關的連結圖表現。 圖3為依據本發明的一個實施例,說明在圖2運算轉導放大器 (Operational              Transconductance Amplifier) 的一個連結圖的表現。 圖4為依據本發明的一個實施例,說明在圖3中的連結圖經過對稱性和鄰近性的     標注之後的一個連結圖的結果。 圖5A到5C為依據本發明的一個實施例,說明不同圖形比較問題之間的差異。圖 5A說明圖形同構的一個範例。 圖5B為說明子圖形同構的一個範例。圖5C說明子圖形辨識的一個範例。 圖6A為說明一個示例性CMOS串聯OTA目標。 圖6B為依據本發明的一個實施例,說明相關的連結圖。 圖7A為說明圖6A中終端連結的集合。 圖7B為依據本發明的一個實施例,說明圖4中終端連結的集合。 圖8A為說明基於表6的衍生圖案。 圖8B為說明移除圖8A一個頂點v3之後所導致的圖案解析圖(Pattern Graph, PG)。 圖8C為依據本發明的一個實施例,說明圖8B的圖案被分割為三個群組的結果。 圖9(a)到9(f)為依據本發明的一個實施例,說明一個階層組合併的例子。圖9(a)      說明一個圖案解析圖(Pattern Graph, PG)範例。 圖9(b)說明在圖9(a)中每個頂點所包含元件和連線的數目。 圖9(c)說明合併G1和G2所導致的圖案。 圖9(d)說明在圖9(c)中每個頂點所包含元件和連線的數目。 圖9(e)為依據本發明的一個實施例,說明合併G3和G4所導致的圖案解析圖             (Pattern Graph, PG)。 圖9(f)說明在圖9(e)中每個頂點所包含元件和連線的數目。 圖10A說明一個已存在佈局的範例。 圖10B 為依據本發明的一個實施例,說明一個設計圖案包含圖10A中5個元件的     被取出的佈局。 圖11為依據本發明的一個實施例,說明產生目標設計一個佈局的方法的一個流     程圖。 圖12為依據本發明的一個實施例,說明一個方法的流程圖,用來辨識和選取一     個共通於目標和已存在設計的設計圖案。 圖13為依據本發明的一個實施例,說明一個示例性的電腦系統用以產生一個目     標設計的佈局。 圖14A說明一個NMOS差分放大器的已存在電路圖的範例。 圖14B為依據本發明的一個實施例,說明一個雙級米勒(Miller)補償式運算放大器      的目標電路圖的範例。 圖15(a)為依據本發明的一個實施例,說明一個NMOS差分放大器在設計儲存庫     中已存在佈局的範例。 圖15(b)為依據本發明的一個實施例,說明一個CMOS串聯式運算轉導放大器於     設計儲存庫中的一個已存在佈局。 圖15(c)為依據本發明的一個實施例,說明雙級米勒(Miller)補償式運算放大器設      計的佈局產生結果。
10‧‧‧以知識為基礎的類比電路佈局產生系統
11‧‧‧設計儲存器
14‧‧‧目標設計模組
18‧‧‧以知識為基礎的類比電路佈局產生器
110‧‧‧設計知識資料庫建構模組
112‧‧‧設計知識資料庫
120‧‧‧知識為基礎的設計匹配合圖案取出模組
130‧‧‧知識為基礎的佈局產生器模組
140‧‧‧針對目標設計產生多種佈局的變形
150‧‧‧專家

Claims (38)

  1. 一種使用電腦以產生一電路設計的佈局的方法,包括:引用電腦以接收代表該電路設計之一圖示,其中代表該電路設計之該圖示包括多個元件,及一複數個連線以連結該多個元件之多個終端;產生相關於代表該電路設計之該圖示之一連結圖,其中產生該連結圖包括:計算該多個元件中之成對元件間的相互連結代碼;轉換該多個元件及連結該多個終端之多個連線至該連結圖中各自對應的節點及邊緣;以及依附該相互連結代碼至該連結圖的該些邊緣;比較該連結圖及儲存於一資料庫中之一複數個連結圖以從該複數個連結圖中辨識出匹配該連結圖的一連結圖;以及選取相關於該匹配的連結圖的一佈局以產生該電路設計的佈局。
  2. 如申請專利範圍第1項所述之方法,更包括:遷移該電路設計的佈局至一新技術上;驗證該遷移過的佈局;以及使用該驗證過的佈局來更新資料庫。
  3. 如申請專利範圍第1項所述之方法,其中一成對元件之間的相互連結代碼為該成對元件之多個終端間的終端連結索引值之和。
  4. 如申請專利範圍第3項所述之方法,其中該終端連結索引值為2的次方。
  5. 如申請專利範圍第1項所述之方法,其中產生該連結圖更包括:從已存在的設計中取出對稱性和鄰近性約束;以及標記該對稱性及該鄰近性約束於該連結圖中。
  6. 如申請專利範圍第5項所述之方法,其中產生該連結圖更包括:標記元件類型於該連結圖的該些節點上。
  7. 如申請專利範圍第7項所述之方法,其中產生該連結圖更包括:標記相關於雜訊、功率消耗或速度的屬性於該連結圖的該些節點上。
  8. 如申請專利範圍第1項所述之方法,其中比較相關於該電路設計之該連結圖及儲存於該資料庫中之該複數個連結圖包括:從該資料庫中所儲存之該多個連結圖中選取一連結圖;選取儲存於該資料庫中之該連結圖的一第一節點以及相關於該電路設計之連結圖的一第一節點,其中該資料庫中之該連結圖的該第一節點與該電路設計之連結圖的該第一節點具有相同的元件類型;比較分別相關於該等第一個節點的多個相互連結代碼; 如果該多個相互連結代碼係為相同,標示儲存於該資料庫中之該連結圖的該第一節點為一第一設計圖案;以及將該第一設計圖案加至一設計圖案集合內。
  9. 如申請專利範圍第8項所述之方法,其中比較該連結圖更包括:選取儲存於該資料庫中之該連結圖的一第二節點以及相關於該電路設計之連結圖的一第二節點,其中該資料庫中連結圖的該第二節點與該相關於電路設計之連結圖內的該第二節點都具有相同的元件類型;比較相關於該等第二節點的多個相互連結代碼;如果該多個相互連結代碼係為相同,標示儲存於該資料庫中之該連結圖的該第二節點為一第二設計圖案;將該第二設計圖案加至一設計圖案集合內;以及重覆上述之多個步驟於儲存於該資料庫中之所有連結圖的所有節點以及相關於該電路設計之該連結圖的所有節點。
  10. 如申請專利範圍第9項所述之方法,其中比較該連結圖更包括:轉換該第二節點的一相互連結代碼至相對應的一組終端連結索引;以及透過映射每個終端連結索引至一相對應的終端連結,以導出相關該第二節點的一組終端連結。
  11. 如申請專利範圍第9項所述之方法,其中比較該連結圖更包括:簡化該設計圖案集合為一組頂點,該組頂點代表共通於該已存在的連結圖及該連結圖之多個設計圖案;從該組頂點中產生一圖案圖;分割該圖案圖為一複數個群組,其中每個群組具有一最大的獨立頂點組;在維持一傳統佈局的最大可重複使用性的情況下,階層式地合併該複數個群組中之兩個群組;重覆該階層式地合併直至獲得一單一群組以產生該電路設計的佈局。
  12. 如申請專利範圍第11項所述之方法,其中簡化該設計圖案集合為該組頂點包括:當該頂點集合包括兩個沒有相互連結的頂點時,刪除該兩個頂點中之一具有較低可重用性索引的頂點。
  13. 如申請專利範圍第11項所述之方法,其中簡化該設計圖案集合為該組頂點更包括:當該單一群組包括一複數個頂點時,選取具有最高可重用性索引的頂點做為目標佈局。
  14. 如申請專利範圍第13項所述之方法,更包括:遷移該佈局至一目標技術上;驗證該遷移過的佈局;以及 儲存該驗證過的佈局和相關的電路圖/網絡連線清單至該資料庫中。
  15. 一種用以產生一電路設計的佈局之可讀取媒體,該可讀取媒體包括多個指令,當該多個指令被一處理器執行時,該處理器執行:透過電腦可讀取媒體之方式接收代表該電路設計之一圖示,其中代表該電路設計之該圖示包括多個元件,及一複數個連線以連結該多個元件之多個終端;產生相關於代表該電路設計之該圖示的一連結圖,其中產生該連結圖包括:計算該多個元件中之成對元件間的相互連結代碼;轉換該多個元件及連結該多個終端之多個連線至該連結圖中各自對應的節點及邊緣;以及依附該相互連結代碼至該連結圖的該些邊緣;比較該連結圖與儲存在一資料庫內的一複數個連結圖,以從該複數個連結圖中辨識出匹配該連結圖的一連結圖;以及選取相關於該匹配的連結圖的一佈局以產生該電路設計的佈局。
  16. 如申請專利範圍第15項所述之可讀取媒體,其中該多個指令更使得該處理器執行:遷移該佈局至一新技術上; 驗證該遷移過的佈局;以及使用該驗證過的佈局來更新資料庫。
  17. 如申請專利範圍第16項所述之可讀取媒體,其中一成對元件間的相互連結代碼為該對元件多個終端間的終端連結索引值之和。
  18. 如申請專利範圍第17項所述之可讀取媒體,其中該終端連結引值為2的次方。
  19. 如申請專利範圍第16項所述之可讀取媒體,其中產生該連結圖更包括:從已存在的設計中取出對稱性和鄰近性的約束;以及標記該對稱性和該鄰近性的約束於連結圖內。
  20. 如申請專利範圍第19項所述之可讀取媒體,其中產生該連結圖更包括:標記元件類型於該節點上。
  21. 如申請專利範圍第20項所述之可讀取媒體,其中比較該連結圖更包括:從資料庫中所儲存之該多個連結圖中選取一連結圖;選取儲存於該資料庫中之該連結圖的一第一節點,以及相關於該電路設計之連結圖的一第一節點,其中,該資料庫中之該連結圖的該第一節點與該電路設計之連結圖內的該第一節點具有相同的元件類型;比較分別相關於該等第一個節點的多個相互連結代碼; 如果該多個相互連結代碼係為相同,標示儲存於該資料庫中之該連結圖的該第一節點為一第一設計圖案;以及將該第一設計圖案加至一設計圖案集合內。
  22. 如申請專利範圍第21項所述之可讀取媒體,其中產生該連結圖更包括:選取儲存於該資料庫中該連結圖的一第二節點,以及相關於該電路設計之連結圖的一第二節點,在該資料庫中連結圖的該第二節點與該相關於電路設計之連結圖內的該第二節點都具有相同的元件類型;比較相關於該等第二節點的多個相互連結代碼;如果該多個相互連結代碼係為相同,標示儲存於該資料庫中之該連結圖的該第二節點為一第二設計圖案;將該第二設計圖案加至一設計圖案集合內;以及重覆上述多個步驟於儲存於該資料庫中之所有連結圖的所有節點,以及相關於該電路設計之連結圖內的所有節點。
  23. 如申請專利範圍第22項所述之可讀取媒體,其中比較該連結圖更包括:轉換該第二節點的一相互連結代碼至相對應的一組終端連結索引;以及透過映射每個終端連結索引至一相對應的終端連結,以導出相關該第二節點的一組終端連結。
  24. 如申請專利範圍第22項所述之可讀取媒體,其中比較該連結圖更包括:簡化該設計圖案集合為一組頂點,該組頂點代表共通於該已存在的連結圖及一目標連結圖之多個設計圖案;從該組頂點中產生一圖案圖;分割該圖案圖為一複數個群組,每個群組具有一最大的獨立頂點組;在維持一傳統佈局的最大可重複使用性的情況下,階層式地合併該複數個群組中之兩個群組;重覆該階層式地合併直至獲得一單一群組以產生該電路設計的佈局。
  25. 如申請專利範圍第24項所述之可讀取媒體,其中簡化該設計圖案集合為該組頂點包括:當該頂點集合包括兩個沒有相互連結的頂點時,刪除該兩個頂點中一具有較低可重用性索引的頂點。
  26. 如申請專利範圍第22項所述之電腦可讀媒體,其中比較該連結圖更包括:選取該具有最高可重用性索引的頂點做為該佈局;遷移該佈局至一新技術上;驗證該遷移過的佈局;以及儲存該驗證過的佈局和相關的電路圖/網絡連線清單至該資料庫中。
  27. 一電腦系統,包括一資料庫,該資料庫被設置為儲存多個連結圖以及產生一電路設計之佈局,該電腦系統被設置為:接收代表該電路設計之一圖示,其中代表該電路設計之該圖示包括多個元件,及一複數個連線以連結該多個元件之多個終端;產生一相關於代表該電路設計之該圖示之一連結圖,其中產生該連結圖包括:計算該多個元件中之成對元件間的相互連結代碼;轉換該多個元件及連結該多個終端之多個連線至該連結圖中各自對應的節點及邊緣;以及依附該相互連結代碼至該連結圖的該些邊緣;比較該連結圖及儲存於一資料庫中之一複數個連結圖以從該複數個連結圖中辨識出匹配該連結圖的一連結圖;以及選取相關於該匹配的連結圖的一佈局以產生該電路設計的佈局。
  28. 如申請專利範圍第27項所述之電腦系統,其中該電腦系統更被設置為:遷移該電路設計的佈局至一新技術上;驗證該遷移過的佈局;以及使用該驗證過的佈局來更新資料庫。
  29. 如申請專利範圍第28項所述之電腦系統,其中一成對元件之間的相互連結代碼為該成對元件之多個終端間的終端連結索引值之和。
  30. 如申請專利範圍第29項所述之電腦系統,其中該終端連結索引值為2的次方。
  31. 如申請專利範圍第28項所述之電腦系統,其中該電腦系統更設置為:從已存在的設計中取出對稱性和鄰近性的約束;以及標記該對稱性和該鄰近性的約束於連結圖內。
  32. 如申請專利範圍第31項所述之電腦系統,其中該電腦系統更設置為:標記元件類型於該節點上。
  33. 如申請專利範圍第32項所述之電腦系統,其中該電腦系統更設置為:從該資料庫中所儲存之該多個連結圖中選取一連結圖;選取儲存於該資料庫中之該連結圖的一第一節點,以及相關於該電路設計之連結圖的一第一節點,其中,該資料庫中之該連結圖的該第一節點與該電路設計之連結圖內的該第一節點具有相同的元件類型;比較分別相關於該等第一個節點的多個相互連結代碼;如果該多個相互連結代碼係為相同,標示儲存於該資料庫中之該連結圖的該第一節點為一第一設計圖案;以及 將該第一設計圖案加至一設計圖案集合內。
  34. 如申請專利範圍第33項所述之電腦系統,其中該電腦系統更設置為:選取儲存於該資料庫中該連結圖的一第二節點,以及相關於該電路設計之連結圖的一第二節點,該資料庫中連結圖的該第二節點與該相關於電路設計之連結圖內的該第二節點具有相同的元件類型;比較相關於該等第二節點的多個相互連結代碼;如果該多個相互連結代碼係為相同,標示儲存於該資料庫中之該連結圖的該第二節點為一第二設計圖案;將該第二設計圖案加至一設計圖案集合內;以及重覆上述多個步驟於儲存於該資料庫中之所有連結圖的所有節點,以及相關於該電路設計之連結圖的所有節點。
  35. 如申請專利範圍第34項所述之電腦系統,其中該電腦系統更設置為:轉換該第二節點的一相互連結代碼至相對應的一組終端連結索引;以及透過映射每個終端連結索引至一相對應的終端連結,以導出相關該第二節點的一組終端連結。
  36. 如申請專利範圍第34項所述之電腦系統,其中該電腦系統更設置為: 簡化該設計圖案集合為一組頂點,該組頂點代表共通於該已存在的連結圖及該連結圖之多個設計圖案;從該組頂點中產生一圖案圖;分割該圖案圖為一複數個群組,其中每個群組具有一最大的獨立頂點組;在維持一傳統佈局的最大可重複使用性的情況下,階層式地合併該複數個群組中之兩個群組;重覆該階層式地合併直至獲得一單一群組以產生該電路設計的佈局。
  37. 如申請專利範圍第36項所述之電腦系統,其中該電腦系統更設置為:當該頂點集合包括兩個沒有相互連結的頂點時,刪除該兩個頂點中一具有較低可重用性索引的頂點。
  38. 如申請專利範圍第33項所述之電腦系統,其中該電腦系統會更被設置為:選取具有最高可重用性索引的頂點做為該設計的佈局;遷移該佈局至一新技術上;驗證該遷移過的佈局;以及儲存該驗證過的佈局和相關的電路圖/網絡連線清單至該資料庫中。
TW103130439A 2013-09-03 2014-09-03 產生電路設計之佈局的方法及系統 TWI556125B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201361873313P 2013-09-03 2013-09-03

Publications (2)

Publication Number Publication Date
TW201520802A TW201520802A (zh) 2015-06-01
TWI556125B true TWI556125B (zh) 2016-11-01

Family

ID=52585131

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103130439A TWI556125B (zh) 2013-09-03 2014-09-03 產生電路設計之佈局的方法及系統

Country Status (2)

Country Link
US (2) US9256706B2 (zh)
TW (1) TWI556125B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256706B2 (en) 2013-09-03 2016-02-09 Synopsys Taiwan Co., LTD. Knowledge-based analog layout generator
US9817932B2 (en) * 2015-12-03 2017-11-14 Mentor Graphics Corporation Recognizing and utilizing circuit topology in an electronic circuit design
US9959380B2 (en) * 2016-03-28 2018-05-01 Motivo, Inc. Integrated circuit design systems and methods
US10936778B2 (en) 2016-03-28 2021-03-02 Motivo, Inc. And optimization of physical cell placement
US10380307B1 (en) * 2016-03-30 2019-08-13 Silicon Technologies, Inc. Analog design tool, cell set, and related methods, systems and equipment
US10372861B2 (en) 2016-11-28 2019-08-06 Ncku Research And Development Foundation Method of macro placement and a non-transitory computer readable medium thereof
TWI612435B (zh) * 2016-12-20 2018-01-21 財團法人成大研究發展基金會 巨集電路的擺置方法及其非暫態電腦可讀取媒體
EP3382580A1 (en) * 2017-03-30 2018-10-03 Technische Universität Wien Method for automatic detection of a functional primitive in a model of a hardware system
TWI653543B (zh) * 2017-04-21 2019-03-11 瑞昱半導體股份有限公司 電路編碼方法與電路架構的辨識方法
US11023648B2 (en) * 2017-12-12 2021-06-01 Siemens Industry Software Inc. Puzzle-based pattern analysis and classification
CN108052743B (zh) * 2017-12-15 2021-01-05 华中科技大学 一种阶梯接近中心度确定方法及系统
TWI760574B (zh) * 2018-10-29 2022-04-11 和碩聯合科技股份有限公司 模擬自動化方法
US10769335B1 (en) * 2019-10-29 2020-09-08 Nxp Usa, Inc. System and method for graph based verification of electronic circuit design
US10885256B1 (en) * 2020-02-04 2021-01-05 Hong Kong Applied Science and Technology Research Institute Company, Limited Method and system for integrated circuit (IC) layout migration integrated with layout expertise
US10977406B1 (en) * 2020-07-02 2021-04-13 International Business Machines Corporation Analysis of electrical circuit schematics

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW501038B (en) * 1999-01-15 2002-09-01 Springsoft Inc Rule-driven method and system for editing physical integrated circuit layout
US20080092099A1 (en) * 2006-10-12 2008-04-17 Springsoft, Inc. Analog and mixed signal ic layout system
TW201118622A (en) * 2009-11-20 2011-06-01 Inventec Corp Circuit configuration system and method capable of planning constraint area
TW201140356A (en) * 2010-05-10 2011-11-16 Univ Nat Chiao Tung Method for analog placement and global routing considering wiring symmetry

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131323A1 (en) * 2002-01-07 2003-07-10 Mcconaghy Trent Lorne Method of schematic-level AMS topology optimization using direct representations
US20040153982A1 (en) * 2003-01-27 2004-08-05 Pengfei Zhang Signal flow driven circuit analysis and partition technique
US7992117B2 (en) * 2006-06-20 2011-08-02 Adtran, Inc. System and method for designing a common centroid layout for an integrated circuit
US7873928B2 (en) * 2007-10-31 2011-01-18 Springsoft Usa, Inc. Hierarchical analog IC placement subject to symmetry, matching and proximity constraints
US8434037B2 (en) * 2008-11-26 2013-04-30 Texas Instruments Incorporated Sub-circuit pattern recognition in integrated circuit design
US8762912B2 (en) * 2009-10-30 2014-06-24 Synopsys, Inc. Tiered schematic-driven layout synchronization in electronic design automation
US8640079B2 (en) * 2010-03-02 2014-01-28 Cadence Design Systems, Inc. Method and system for searching and replacing graphical objects of a design
US9256706B2 (en) 2013-09-03 2016-02-09 Synopsys Taiwan Co., LTD. Knowledge-based analog layout generator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW501038B (en) * 1999-01-15 2002-09-01 Springsoft Inc Rule-driven method and system for editing physical integrated circuit layout
US20080092099A1 (en) * 2006-10-12 2008-04-17 Springsoft, Inc. Analog and mixed signal ic layout system
TW201118622A (en) * 2009-11-20 2011-06-01 Inventec Corp Circuit configuration system and method capable of planning constraint area
TW201140356A (en) * 2010-05-10 2011-11-16 Univ Nat Chiao Tung Method for analog placement and global routing considering wiring symmetry

Also Published As

Publication number Publication date
US20170124245A1 (en) 2017-05-04
TW201520802A (zh) 2015-06-01
US11010528B2 (en) 2021-05-18
US20150067626A1 (en) 2015-03-05
US9256706B2 (en) 2016-02-09

Similar Documents

Publication Publication Date Title
TWI556125B (zh) 產生電路設計之佈局的方法及系統
CN107533577B (zh) 使用电路模板的生成和实例化的集成电路设计
US11017149B2 (en) Machine-learning design enablement platform
Xu et al. MAGICAL: Toward fully automated analog IC layout leveraging human and machine intelligence
US8225246B2 (en) Logic injection
TW569295B (en) Producing method for mask pattern and manufacturing method for semiconductor device
US20020194575A1 (en) Hierarchical layout method for integrated circuits
JP4586926B2 (ja) 回路検証装置、回路検証プログラムおよび回路検証方法
TWI410819B (zh) 考量元件與佈線對稱之類比佈局方法
US7263678B2 (en) Method of identifying floorplan problems in an integrated circuit layout
TWI845737B (zh) 執行自動化整合扇出晶圓級封裝佈線的方法及系統、及其非暫時性電腦可讀媒體
Wu et al. Analog layout synthesis with knowledge mining
Tian et al. Triple patterning aware detailed placement with constrained pattern assignment
JP6672791B2 (ja) 半導体設計支援装置、半導体設計支援方法、及び半導体設計支援プログラム
JP2006093631A (ja) 半導体集積回路の製造方法および半導体集積回路の製造装置
US8051395B2 (en) Method of labelling swappable pins for integrated circuit pattern matching
US9747399B2 (en) Method and apparatus for providing rule patterns on grids
JP2004013821A (ja) 半導体集積回路設計方法および設計装置
US7681169B2 (en) Process for managing complex pre-wired net segments in a VLSI design
JP2004109453A (ja) マスクパターン作成方法及び半導体装置の製造方法
CN104715098B (zh) 一种集成电路设计规则文件的优化方法
White et al. Electrically aware design methodologies for advanced process nodes
JP2006106997A (ja) ネットリスト変換装置、その方法、及びそのプログラム
JPH1063709A (ja) 組み合せ回路の機能抽出方法
JP2002288254A (ja) 不具合回路検出システム及び回路設計方法