專利名稱:集成電路版圖自動(dòng)構(gòu)造層次方法
技術(shù)領(lǐng)域:
本發(fā)明是一種集成電路版圖自動(dòng)構(gòu)造層次方法,所屬的技術(shù)領(lǐng)域是集成電路計(jì)算機(jī)輔助設(shè)計(jì)領(lǐng)域,尤其是涉及集成電路版圖的設(shè)計(jì)規(guī)則檢查(DRC)和版圖與原理圖的一致性檢查(LVQ領(lǐng)域。
背景技術(shù):
隨著集成電路集成度和規(guī)模的不斷提高,特別是隨著工藝不斷向著納米級進(jìn)展, 在集成電路設(shè)計(jì)的各個(gè)階段所需運(yùn)行的驗(yàn)證也相應(yīng)增多。其中集成電路版圖的設(shè)計(jì)規(guī)則檢查(DRC)以及集成電路版圖與原理圖的一致性檢查(LVS)變得越來越重要,它們對于消除錯(cuò)誤、降低設(shè)計(jì)成本和減少設(shè)計(jì)失敗的風(fēng)險(xiǎn)具有重要作用。在超大規(guī)模集成電路設(shè)計(jì)中,版圖規(guī)模急劇膨脹,傳統(tǒng)的扁平的版圖驗(yàn)證方法在計(jì)算速度和內(nèi)存使用方面都遠(yuǎn)遠(yuǎn)落后于用戶的需求。在目前應(yīng)用最廣的層次版圖數(shù)據(jù)結(jié)構(gòu)中,電路模塊通常被組織成“單元”的形式, 同一單元可以被重復(fù)調(diào)用多次。例如,可以將鎖相環(huán)模塊(PLL)組織成一個(gè)單元,當(dāng)版圖中需要多個(gè)同樣的鎖相環(huán)模塊時(shí),可以多次調(diào)用PLL單元,每次調(diào)用稱為一個(gè)實(shí)例,可將實(shí)例編號為PLL1,PLL2,PLL3,……。層次的版圖驗(yàn)證方法利用版圖在設(shè)計(jì)過程中所具有的層次特點(diǎn),對多次重復(fù)出現(xiàn)的單元只需驗(yàn)證一次,而不需要將所有重復(fù)的單元實(shí)例都打散,這就減少了冗余的操作和運(yùn)算,從而有效提高了計(jì)算效率,已經(jīng)成為流行的版圖驗(yàn)證方法。然而,很多集成電路版圖的層次結(jié)構(gòu)并不完善,并沒有將所有重復(fù)的圖形或單元實(shí)例模式都組織成被重復(fù)調(diào)用的單元。例如,PLL的三個(gè)子模塊VCO(壓控振蕩器)、LPF(低通濾波器)、PC (鑒相器)可能并未組織在一個(gè)單元中,而是以三個(gè)單元的形式獨(dú)立存在,它們的實(shí)例為重復(fù)出現(xiàn)的相同組合VC01、LPF1、PC1 ;VC02、LPF2、PC2,……。在自動(dòng)布局布線工具利用標(biāo)準(zhǔn)單元產(chǎn)生的版圖中,在內(nèi)存陣列和各種門陣列版圖中,這種未組織起來的重復(fù)模式是很常見的。如果能夠自動(dòng)識別這些重復(fù)的模式,將重復(fù)的模式都組織成被重復(fù)調(diào)用的新單元,可以顯著提高層次版圖驗(yàn)證工具的處理效率。圖1是由兩個(gè)圖形(或單元實(shí)例)構(gòu)成的重復(fù)模式的示意圖。重復(fù)的組合模式為 AB,該重復(fù)模式出現(xiàn)了兩個(gè)實(shí)例A1B1和A2B2。在這個(gè)例子中,將A2和B2進(jìn)行相同的線性坐標(biāo)變換(相對于原點(diǎn)逆時(shí)針旋轉(zhuǎn)90度并適當(dāng)平移),則A2與Al完全重合,并且B2與Bl
完全重合。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種集成電路版圖自動(dòng)構(gòu)造層次方法,能夠自動(dòng)快速找到集成電路版圖中重復(fù)出現(xiàn)的圖形或單元實(shí)例組合模式,將這些重復(fù)模式組織成新單元,并重復(fù)調(diào)用這些新單元。本發(fā)明的主要思路就是利用劃分網(wǎng)格的方法找到版圖中相互連接的圖形或單元實(shí)例組合,利用哈希表找到重復(fù)的組合,然后將重復(fù)的組合模式轉(zhuǎn)換為被重復(fù)調(diào)用的單元。 具體的實(shí)現(xiàn)步驟包括①將集成電路版圖劃分為大小不同的多級網(wǎng)格;②將幾何圖形或單
3元實(shí)例放入適當(dāng)大小的網(wǎng)格中;③在每個(gè)網(wǎng)格中以及相鄰的網(wǎng)格中找到所有相互連接的圖形或單元實(shí)例組合;④利用哈希表存儲這些組合并查找重復(fù)出現(xiàn)的組合;⑤將重復(fù)出現(xiàn)的組合構(gòu)造成新的單元并重復(fù)調(diào)用這些新單元;⑥重復(fù)執(zhí)行步驟①-⑤,直到達(dá)到預(yù)先設(shè)定的停止條件或者不能再找到重復(fù)模式為止。(1)將集成電路版圖劃分為大小不同的多級網(wǎng)格大規(guī)模集成電路的版圖中包含大量的圖形和單元實(shí)例。其中相互連接的圖形或單元實(shí)例組合也非常多。兩個(gè)圖形或單元實(shí)例“相互連接”是指,這兩個(gè)圖形或單元實(shí)例或者有公共面積,或者有公共邊,或者有公共點(diǎn),或者它們的距離不超過某一設(shè)定值。三個(gè)以上圖形或單元實(shí)例相互連接是指,其中每一個(gè)圖形或單元實(shí)例至少與其中一個(gè)其它圖形或單元實(shí)例相互連接。以找到所有由兩個(gè)圖形或單元實(shí)例構(gòu)成的連接組合為例,要找到所有這些組合,有一種簡單的方法對于每一個(gè)圖形或單元實(shí)例,依次檢查該圖形與其它每一個(gè)圖形或單元實(shí)例是否是連接的,如果連接,就記錄一次連接組合。但是這種方法的處理效率很低。假設(shè)有η個(gè)圖形或單元實(shí)例,按這種方法至少需要η (η-1)/2次連接判斷,其復(fù)雜度為 0(η2)。事實(shí)上,只有相距較近的圖形或單元實(shí)例才可能相互連接,每個(gè)圖形或單元實(shí)例只可能與附近的幾個(gè)圖形或單元實(shí)例相連接,不必與遠(yuǎn)處的圖形或單元實(shí)例做連接判斷。 連接組合的總數(shù)在數(shù)量級上更接近0(η)。為此本發(fā)明采用網(wǎng)格化的方法對版圖進(jìn)行劃分, 將圖形或單元實(shí)例放入網(wǎng)格中,每個(gè)圖形或單元實(shí)例只需要遍歷同一網(wǎng)格或附近網(wǎng)格中的圖形。在版形和單元實(shí)例分布比較均勻,大小相近,并且彼此重疊不是特別嚴(yán)重時(shí),這種方法的復(fù)雜度為0 (η),與連接組合的數(shù)目同階。通常,集成電路版圖中的圖形和單元實(shí)例分布較均勻,重疊也不會特別嚴(yán)重,但它們的大小往往相差很大。如果選用固定的網(wǎng)格大小,當(dāng)網(wǎng)格過大時(shí),會有很多小的圖形或單元實(shí)例落入同一個(gè)網(wǎng)格中,在網(wǎng)格中查找連接組合時(shí)效率很低;當(dāng)網(wǎng)格過小時(shí),一些面積很大的圖形或單元實(shí)例會跨越很多網(wǎng)格,在每個(gè)網(wǎng)格中都要記錄一個(gè)索引,這樣會引起內(nèi)存和處理時(shí)間的嚴(yán)重增長。為了解決這一問題,本發(fā)明采用劃分多級網(wǎng)格的方法。大的圖形或單元實(shí)例放入大的網(wǎng)格中,小的圖形或單元實(shí)例放入小的網(wǎng)格中。既不會出現(xiàn)每個(gè)網(wǎng)格中有很多圖形或單元實(shí)例的情況,也不會出現(xiàn)某些大圖形或單元實(shí)例跨越很多網(wǎng)格的情況,保證了較高的
處理效率。為簡便起見,網(wǎng)格為相鄰的矩形(包括正方形),并且同一級的網(wǎng)格大小相同。然而,具有相關(guān)知識的工程技術(shù)人員,可以采用非矩形的網(wǎng)格(例如三角形),或者同一級網(wǎng)格的大小和形狀相近但不完全相同,或者進(jìn)行其它輕微的變化,并不改變與本發(fā)明相同的實(shí)質(zhì)。(2)將幾何圖形或單元實(shí)例放入適當(dāng)大小的網(wǎng)格中根據(jù)圖形或單元實(shí)例的面積選擇所需的網(wǎng)格大小。確定網(wǎng)格大小的一般原則是, 使一個(gè)網(wǎng)格中僅能容納m個(gè)該圖形或單元實(shí)例,即所選網(wǎng)格的面積是圖形或單元實(shí)例面積的m倍。m的最佳數(shù)值需要通過試驗(yàn)確定,本發(fā)明使用的m值介于0. 1和10000之間,最佳取值約為10。然而,具有相關(guān)知識的工程技術(shù)人員,可以采用其它數(shù)值,或者進(jìn)行其它輕微的變化,并不改變與本發(fā)明相同的實(shí)質(zhì)。
圖2是多級網(wǎng)格劃分示意圖。圖中用兩級網(wǎng)格對整個(gè)集成電路版圖被進(jìn)行劃分。 第一級較大的網(wǎng)格為G0、G1、G2和G3,第二級較小的網(wǎng)格包括G4-G9等。G1、G2和G3所在的區(qū)域?qū)嶋H上也進(jìn)行了第二級網(wǎng)格劃分,但未畫出。有2個(gè)較大的圖形或單元實(shí)例0放入大的網(wǎng)格中,其中大三角形分別放入GO和G1,大長方形放入Gl和G3。有8個(gè)較小的圖形 1分別放入小的網(wǎng)格中。(3)利用網(wǎng)格找到相互連接的圖形或單元實(shí)例組合圖形或單元實(shí)例的相互連接可能發(fā)生在同一個(gè)網(wǎng)格中,或者相鄰、相近的網(wǎng)格之間。這與連接的定義有關(guān)。如果認(rèn)為必須有公共面積才是連接,則只需在每一網(wǎng)格內(nèi)部以及不同級別相互重合的網(wǎng)格之間進(jìn)行查找。如圖2,在網(wǎng)格G1、G6、G8、G9中各存在一個(gè)相互連接的組合。如果認(rèn)為相互以點(diǎn)或邊接觸,或者相距一定距離也是連接,則還要查找相鄰或相近的網(wǎng)格。如圖2,可以認(rèn)為G4和G7中的兩個(gè)圖形或單元實(shí)例是一個(gè)連接組合。(4)利用哈希表查找重復(fù)出現(xiàn)的組合哈希表是一種常見的數(shù)據(jù)結(jié)構(gòu),可以提供快速的插入和查找操作,理論上這兩種操作都具有0(1)復(fù)雜度。對上一步驟中找到的每一個(gè)連接組合,提取其特征值,并計(jì)算特征值的哈希碼(Hash Code)。提取特征值的方法如下①在組合中選擇一個(gè)圖形或單元實(shí)例作為基準(zhǔn)。選哪一個(gè)圖形或單元實(shí)例為基準(zhǔn)原則上是任意的。但是為了找到所有重復(fù)模式,最好按特定的規(guī)則選擇基準(zhǔn)。例如,選擇單元ID最小的單元實(shí)例,選擇最簡單的多邊形等。在圖1中,可以選擇Al作為組合AlBl的基準(zhǔn),選擇A2作為組合A2B2的基準(zhǔn)。②計(jì)算組合中其它圖形或單元實(shí)例相對于基準(zhǔn)的線性坐標(biāo)變換T,例如圖1中Bl 相對于Al的坐標(biāo)變換。③計(jì)算組合的特征值。特征值是一些列數(shù)值的組合,包括基準(zhǔn)本身的特征,例如圖1中Al的頂點(diǎn)數(shù)以及各個(gè)頂點(diǎn)的坐標(biāo);坐標(biāo)變換T,包括Bl相對于Al的相對偏移量、相對旋轉(zhuǎn)方向、相對縮放因子等。④利用特征值計(jì)算哈希碼。定義一個(gè)哈希函數(shù),將特征值中的多個(gè)數(shù)值變換為一個(gè)整數(shù),即哈希碼。⑤根據(jù)哈希碼將組合放入哈希表中。哈希表是分桶存儲的,假設(shè)有k個(gè)桶,則特征碼為S的組合放入編號為S mod k的桶中(mod代表取余運(yùn)算)。通常k為較大的質(zhì)數(shù)。顯然,哈希碼相同的組合必然放入同一個(gè)桶中;放入同一個(gè)桶中的組合不一定具有相同的哈希碼,但它們的哈希碼相差k的整數(shù)倍。⑥在哈希表的同一個(gè)桶中,查找哈希碼相同的組合,如果兩個(gè)組合的哈希碼相同, 再比較其特征值,如果特征值完全相同,則認(rèn)為是相同的組合。這樣可以找到所有按相同模式重復(fù)的組合。(5)將重復(fù)組合構(gòu)造成新的單元并重復(fù)調(diào)用可將圖1中的A和B構(gòu)成一個(gè)新單元C,C被調(diào)用兩次,其實(shí)例分別為Cl和C2。(6)重復(fù)執(zhí)行步驟(1)-(5)如果經(jīng)過以上步驟能夠得到被重復(fù)調(diào)用的單元,則可以重復(fù)以上步驟,繼續(xù)得到重復(fù)出現(xiàn)的單元,直到無法得到重復(fù)出現(xiàn)的單元或者達(dá)到預(yù)先設(shè)定的終止條件。
圖1是重復(fù)模式示意2是多級網(wǎng)格劃分示意3是具體實(shí)施方式
1自動(dòng)構(gòu)造層次后的版圖結(jié)構(gòu)圖4是具體實(shí)施方式
1自動(dòng)構(gòu)造層次前后的層次結(jié)構(gòu)比較圖5是具體實(shí)施方式
2自動(dòng)構(gòu)造多個(gè)層次示意6是具體實(shí)施方式
3在多個(gè)單元中自動(dòng)構(gòu)造層次前后的層次結(jié)構(gòu)比較具體實(shí)施方式
1圖1有四個(gè)幾何圖形。自動(dòng)構(gòu)造層次的方法如下(1)劃分網(wǎng)格并將圖形放入網(wǎng)格本例圖形大小接近,可以只劃分一級網(wǎng)格。規(guī)定網(wǎng)格面積約為圖形面積的10倍, 則只需劃分一個(gè)網(wǎng)格Gl (圖略)。(2)查找相互連接的模式這里定義兩個(gè)圖形或單元實(shí)例必須有公共面積才構(gòu)成連接。在網(wǎng)格Gl中查找,發(fā)現(xiàn)兩個(gè)相互連接的組合A1B1、A2B2。而A1A2、A1B2、A2B1等不滿足連接的定義,所以不是相互連接的組合。(3)將組合放入哈希表取三角形Al為基準(zhǔn),按逆時(shí)針順序記錄Al三個(gè)頂點(diǎn)的坐標(biāo)PI、P2、P3,取角度最小的頂點(diǎn)作為P1,選擇與Pi對應(yīng)的對角線最接近的正交方向作為X軸,本例以垂直向上作為X軸的正方向,水平向左作為Y軸的正方向,坐標(biāo)原點(diǎn)為P1。三個(gè)頂點(diǎn)坐標(biāo)都在此坐標(biāo)系下表示。取對應(yīng)內(nèi)角最小的頂點(diǎn)作為P4,按逆時(shí)針順序表示Bl的五個(gè)頂點(diǎn)P4、P5、P6、P7、 P8。在上述坐標(biāo)系下計(jì)算并記錄P4 P8相對于Pl的相對坐標(biāo)。則特征值可表示為3 Pl P2 P3 5 P4-P1 P5-P1 P6-P1 P7-P1 P8-P1其中3代表三角形,5代表五邊形,P1 = (0,0)定義一個(gè)哈希函數(shù)(例如上述所有數(shù)值的加權(quán)和),將上述特征值轉(zhuǎn)化為哈希碼, 假設(shè)哈希碼為100。若哈希表分23個(gè)桶,則該模式放入第IOOmod 23 = 8個(gè)桶中。對于組合A2B2作同樣的操作。其X軸方向?yàn)樗较蛴?,Y軸方向?yàn)榇怪毕蛏稀F涮卣髦祽?yīng)與AlBl的特征值相同,因此哈希碼和桶號都相同。(4)在哈希表中查找重復(fù)的組合在第8號桶中保存著哈希碼為8、31、44、67、100、……的所有組合。本例中只有哈希碼為100的組合。找出哈希碼相同(=100)的所有組合,并比較其特征值,找到特征值完全相同的組合,即AlBl和A2B2。(5)構(gòu)造新單元并多次調(diào)用相同的組合模式AB重復(fù)出現(xiàn)兩次以上,將模式AB構(gòu)造成一個(gè)新單元C,并調(diào)用C 兩次,單元實(shí)例分別為Cl、C2。圖3給出了自動(dòng)構(gòu)造層次之后的版圖。圖4是自動(dòng)構(gòu)造層次前后的層次結(jié)構(gòu)變化。TOP代表進(jìn)行層次構(gòu)造的單元(即調(diào)用A1、B1、A2、B2的單元)。原始層次結(jié)構(gòu)為TOP調(diào)用A和B各兩次。自動(dòng)構(gòu)造的層次結(jié)構(gòu)為Τ0Ρ調(diào)用C兩次,C調(diào)用A和B各一次。括號中X后面的數(shù)字代表單元被調(diào)用的次數(shù)(實(shí)例數(shù))。
具體實(shí)施方式
2圖5是重復(fù)多次自動(dòng)構(gòu)造層次形成的版圖結(jié)構(gòu)。在原始版圖中,單元TOP調(diào)用單元 A八次(A1-A8)。在自動(dòng)構(gòu)造層次之后的版圖中,依次構(gòu)造了兩個(gè)新單元B和C。單元TOP 調(diào)用單元C兩次(Cl、C2),單元C調(diào)用單元B兩次(Bi、B2),單元B調(diào)用單元A兩次(Al、 A2)。
具體實(shí)施方式
3在原始版圖中,單元TOPA調(diào)用單元A、B、C各一次,單元實(shí)例分別為A1、B1、C1。單元TOPB調(diào)用單元A、B、C各一次,單元實(shí)例分別為A2、B2、C2,并且B2與A2的相對位置與 Bl與Al的相對位置相同,C2與A2的相對位置與Cl與Al的相對位置相同。圖6是自動(dòng)構(gòu)造層次前后層次結(jié)構(gòu)的變化。自動(dòng)構(gòu)造層次的結(jié)果為構(gòu)造了新單元D。單元TOPA調(diào)用D —次(Dl),單元TOPB調(diào)用D —次(D2),單元D調(diào)用A、B、C各一次 (AUBUCl)。在該具體實(shí)施方式
中,原始版圖中重復(fù)出現(xiàn)的組合AlBlCl和A2B2C2是被不同的單元TOPA和TOPB調(diào)用的。在圖6(b)中,D(X2)表示單元D被調(diào)用了兩次(分別被TOPA和 TOPB調(diào)用)。
權(quán)利要求
1.集成電路版圖自動(dòng)構(gòu)造層次方法,其特征在于包括以下幾個(gè)步驟①將集成電路版圖劃分為大小不同的多級網(wǎng)格;②將幾何圖形或單元實(shí)例放入適當(dāng)大小的網(wǎng)格中;③在每個(gè)網(wǎng)格中以及相鄰的網(wǎng)格中找到所有相互連接的圖形或單元實(shí)例組合;④利用哈希表存儲這些組合并查找重復(fù)出現(xiàn)的組合;⑤將重復(fù)出現(xiàn)的組合構(gòu)造成新的單元并重復(fù)調(diào)用這些新單元;⑥重復(fù)執(zhí)行步驟①-⑤,直到達(dá)到預(yù)先設(shè)定的停止條件或者不能再找到重復(fù)模式為止。
2.根據(jù)權(quán)利要求1所述的集成電路版圖自動(dòng)構(gòu)造層次方法,其特征在于,所述的適當(dāng)大小的網(wǎng)格是指其面積為幾何圖形或單元實(shí)例面積的0. 1-10000倍的網(wǎng)格矩形、正方形或任意多邊形網(wǎng)格。
3.根據(jù)權(quán)利要求1所述的集成電路版圖自動(dòng)構(gòu)造層次方法,其特征在于,所述的相互連接的圖形或單元實(shí)例組合是指兩個(gè)或兩個(gè)以上的幾何圖形或單元構(gòu)成的集合,并且集合中每一個(gè)圖形或單元實(shí)例都與集合中至少另一個(gè)圖形或單元實(shí)例有公共面積、公共邊或者公共點(diǎn),或者相距不超過一定范圍。
全文摘要
集成電路版圖自動(dòng)構(gòu)造層次方法,所屬的技術(shù)領(lǐng)域是集成電路計(jì)算機(jī)輔助設(shè)計(jì)領(lǐng)域,尤其是涉及集成電路版圖的設(shè)計(jì)規(guī)則檢查(DRC)和版圖與原理圖的一致性檢查(LVS)領(lǐng)域。主要應(yīng)用于設(shè)計(jì)規(guī)則檢查工具、版圖與原理圖的一致性檢查工具等。本發(fā)明的目的在于提供一種集成電路版圖自動(dòng)構(gòu)造層次的方法,能夠自動(dòng)識別集成電路版圖中重復(fù)出現(xiàn)的組合,并基于這些組合模式構(gòu)造可被重復(fù)調(diào)用的單元,使層次DRC/LVS工具對重復(fù)出現(xiàn)的單元只處理一次,可顯著提高處理效率,并減少計(jì)算機(jī)內(nèi)存使用。其實(shí)現(xiàn)過程主要包括將集成電路版圖空間劃分為大小不等的多級網(wǎng)格;并將幾何圖形或單元實(shí)例放入適當(dāng)大小的網(wǎng)格中;在每個(gè)網(wǎng)格中以及相鄰的網(wǎng)格之間找到所有相互連接的圖形或單元實(shí)例組合;利用哈希表存儲組合并查找重復(fù)出現(xiàn)的組合;將重復(fù)出現(xiàn)的組合構(gòu)造成新的單元并重復(fù)調(diào)用這些新單元。
文檔編號G06F17/50GK102314531SQ20101022304
公開日2012年1月11日 申請日期2010年7月2日 優(yōu)先權(quán)日2010年7月2日
發(fā)明者宋德強(qiáng), 王國慶, 王鵬 申請人:北京華大九天軟件有限公司