專利名稱:集成電路版圖的層次網表提取方法
技術領域:
本發明是一種集成電路版圖的層次網表提取方法,屬于集成電路計算機輔助設計領域,尤其涉及版圖驗證領域。
背景技術:
版圖驗證是集成電路設計流程中重要的一環,高效準確的驗證能夠有效的提高集成電路設計的效率,能極大降低設計失敗的風險。然而隨著工藝不斷的向著納米級進展,在超大規模集成電路設計中,版圖規模急劇膨脹,傳統的版圖驗證方法在計算速度和內存使用方面都遠遠落后于用戶的需求。因此,層次的版圖驗證方法受到了重視,它的優點是利用版圖在設計過程中所具有的層次的特點,對多次重復出現的版圖只需驗證一次,減少冗余的操作和運算,從而有效提高計算效率。
為了進行層次的LVS驗證,就必須首先提取出合適的層次網表,這就涉及到版圖的層次網表提取。而如何有效獲取層次處理中的版圖網表,在當前已公布的研究中,有采用梯形法來劃分版形的,也有采用角鉤鏈法判別圖形之間的關系的,這一類方法的本質都是基于圖形操作。由于在層次處理中,核心問題是減少重復調用單元的版圖中重復出現圖形的操作次數,最理想的層次處理方案是所有重復出現的圖形只處理一次。但版圖中有很多圖形只有極其細微的差別,因此對于基于圖形的層次處理來說,重復操作的過程依然很多,所以把邊作為判斷重復的依據,可以最大程度減少重復的操作。
在論文《基于ILT的版圖自動層次構造算法》(李寧,侯勁松,微電子學與計算機,2004年第21卷第9期)中,對基于邊的層次版圖驗證方法做了有益的研究,其采用投影法策略,并利用版圖倒序樹(Inverse Layout Tree,簡記為ILT)記錄投影來源的方式,從而得到能簡潔統一的表示層次關系的數據結構的方法具有很高的參考價值。
發明內容
本發明目的在于提供一種集成電路版圖的層次網表提取方法,能夠極好的保持版圖中原有的層次,使層次LVS得到最大程度的支持;同時,能夠快速的運行,減少資源的占用。
本發明的主要思路就是利用了在版圖網表提取過程中主要關心圖形之間是否存在連接關系這個性質,把邊本身作為處理的基本要素,利用一些規則,通過邊之間的聯系找出相應圖形之間的連接關系。其實現過程包括下述步驟①基于邊的層次數據結構的建立;②版圖連接關系的識別;③版圖器件的識別;④層次網表的生成。
所述的步驟①基于邊的層次數據結構的建立包括采用投影法策略,并利用版圖倒序樹記錄投影來源的方式,把標準的版圖數據格式轉化為只保留非垂直邊的層次數據結構。
所述的步驟②版圖連接關系的識別包括連接位置的確定,通過邊之間的關系找出相應圖形之間的連接,區分層次關系,給版形標注正確的節點號。
所述的步驟③版圖器件的識別包括確定與器件圖形相連的各種信息,包括來自其他層次的信息,進行器件的辨識。
所述的步驟④層次網表的生成包括把識別出來的器件及其連接關系按層次寫入文件。
基于邊的層次數據結構的構造過程可以參考論文《基于ILT的版圖自動層次構造算法》,在此不再詳述。對于版圖連接關系的識別和器件的識別,都有一個共同的部分,就是如何找出某些指定圖形之間的連接關系。當把圖形轉化為邊的形式表示時,圖形之間的關系就被轉化為邊之間的關系。圖形之間的連接關系可以分為相交和鄰接,相交是指兩圖形有重合的區域,鄰接是指兩圖形僅有重合的邊,如果兩圖形僅有一個點重合,那么就認為這兩個圖形沒有連接。下面將詳細論述通過邊的關系迅速找出圖形之間的連接關系的方法。這個過程可以分為三個部分,一是獲取一種邊的組合,二是對組合中的邊建立連接,三是處理連接的層次關系。
(1)獲取組合本發明最大的創新就是給出了這樣一個邊的組合把某條邊送入組合后,判斷組合中是否有與這條邊同屬一個圖形的其他邊,若有,則把組合中屬于這個圖形的邊都刪除,若沒有,則把這條邊加入到這個組合中。這個組合具有兩大優良特性一是容易獲取;二是只要圖形是有連接關系的,那么必然有屬于這些圖形的邊出現在同一個組合中。
針對不同的應用,送入組合的邊也有所不同。獲取邊的組合時用到了掃描線算法,設掃描線從左向右移動,下面的處理都是針對一條掃描線上的邊來說的。(1)對于圖形相交的組合,沿著掃描線從底向上掃描,若一條邊與掃描線的交點不是其右端點,那么就把這條邊送入組合,隨著掃描的進行,這個組合的組成是動態變化的;(2)對于圖形在非垂直方向的鄰接關系,可以在圖形相交的組合中處理;(3)對于圖形在垂直方向的鄰接關系,沿著掃描線從底向上掃描,若一條邊與掃描線的交點是其端點,那么就把這條邊送入組合,隨著掃描的進行,這個組合的組成是動態變化的。
(2)建立連接每當有新的邊加入組合后,就要對組合中的邊進行處理,以確定這些邊所在圖形的連接關系。在不同的應用中,連接的要求也是不同的。在基于邊的層次數據結構中,一個單元所存儲的邊除了自身的邊以外,還有來自其他單元的落在此單元范圍以內的邊,本單元的邊稱為primitive,其他單元的邊稱為halo,并用ILT結構記錄halo來自哪些單元,每條邊都有其所屬的圖形的圖形號。因此在組合中,除了有primitive外,還可能有halo。在層次條件下,作為halo的邊可能出現,也可能不出現,為了準確找出一個組合中的邊所在的圖形之間的連接關系,對于滿足連接要求的邊還需進行這些邊的ILT結構的交集運算,這些邊能同時出現則這些邊所屬的圖形有連接關系,且ILT的交集說明了連接在哪些位置出現。
(3)處理連接的層次關系因為處理是分層次進行的,那么就需要把一個單元的操作中所獲得的與其他單元的連接關系傳遞給其他相關單元。在此采用信息載體作為兩個相關單元之間的橋梁,其包含兩個部分,一是目的地,一是信息內容。利用圖形在版圖中絕對位置不變的特性,采用相對位置的定位方式,可以有效的在各層次單元之間傳遞信息,因此就把相對位置作為信息載體的目的地。信息內容就是在本單元獲得的與其他單元的連接關系。
單元間的連接關系是在處理primitive與halo的連接時產生的,primitive與primitive的連接屬于單元內部連接,halo與halo的連接與本單元無關,就不生成連接。這也就是說,只有當一個組合中同時具有primitive與halo,并且它們能同時出現時,才需要產生層次的連接信息。利用halo在單元中的相對位置作為信息載體的目的地,這樣,只要再利用halo所在單元被調用的位置信息做簡單的定位運算,就可以得到此信息載體在各個單元中的準確位置。同時,考慮到halo不是在本單元被調用的所有的位置出現,所以用ILT結構來標明信息載體應該出現在哪些被調用的位置。
信息載體的發送和接收都很簡單,當生成信息載體后,按照信息載體中的目的地將其發送到相應的信息載體列表中就可以了。在處理一個單元時,首先把此單元所對應的信息載體列表中的信息載體按照其位置進行定位運算,得到信息載體在此單元中的具體位置,然后在這些位置上進行掃描,只要找出離此位置最近的包含此位置的primitive邊就可以把本單元的處理結果與信息載體中的信息內容關聯起來了,這樣就可以把不同層次之間的信息進行交流和綜合了。
在獲得了相關的連接關系之后,可以把與器件圖形相關的所有層次信息綜合在一起,然后按照器件的要求進行判斷,看其是否能生成一個器件,因為所有相關的信息通過前面的操作都綜合在一起了,所以器件的識別是很容易的,器件所處的單元就是器件圖形所在的單元。每當識別一個器件后,就將其寫入層次網表,把所有器件識別完畢,這個層次網表也就完成了。
為了高效的提取層次驗證中所需要的層次網表,本發明探索出一種基于邊的層次數據結構的層次網表提取方法,其有效的利用了邊所具有的特性,通過一種簡單的操作就把圖形之間的連接關系找出來了,并且設計了有效的層次信息交流機制,使得在不同單元中的處理結果可以很方便的匯集在一起,這就為層次網表的生成提供了強有力的支持。本方法具有處理簡單,快速,高效,容易實現等特點。
圖1是本發明的流程2是提取圖形連接關系的流程3是器件識別的流程4是一個MOS管的層次版5是與圖4對應的基于邊的層次數據結構的示意6是獲取邊的組合的示意7是層次信息傳遞的示意圖具體實施方式
圖1是本發明的流程圖,從中可以看出層次網表提取方法的具體步驟。其中最主要的處理是圖形連接關系的提取,這個操作在版圖連接關系識別與器件識別中都需要。圖2給出了提取圖形連接關系的處理流程,這里包括以下幾個步驟①確定連接關系出現的位置;②用掃描線定位哪些邊需要處理;③把邊按順序送入組合中;④組合中的邊滿足連接條件則建立連接;⑤層次之間的連接進行層次處理。
通過以上的步驟就可以進行版圖連接關系的識別,但是對于器件識別,還需要把這些連接信息匯集在一起,然后判斷是否滿足一個器件的要求,識別過程如圖3所示。
下面給出一個簡單的層次版圖作為本發明的一個實施例,見圖4。這是一個MOS管的版圖,分成A、B兩個單元,A調用B,金屬線是布在A單元中的,在B單元本身的版圖中是沒有金屬線的。
結合圖1的流程,首先要把版圖轉化為基于邊的層次數據結構,見圖5。每個圖形都只保留非垂直邊,并且每條邊都記錄其所屬的圖形號。因為采用了投影法,所以把屬于A的但是落在B范圍內的圖形投影到B中,如B單元的長虛線所示,這些邊是halo,來自于A單元。
得到基于邊的層次數據結構后,按照單元的層次關系依次進行處理,先處理B后處理A,具體的實施步驟如下(1)數據預處理首先要確定連接關系出現的位置。對于B單元,只需要在四個位置上進行處理就可以建立所有的連接關系,如圖6中的四條掃描線所示。
然后用掃描線定位哪些邊需要處理。以圖6最左邊的掃描線為例,從e1到e6這六條線將參與此連接位置的處理。
(2)獲取組合在此以圖6最左邊的掃描線為例,結合圖2的流程,從下往上按順序對圖6最左邊的掃描線上六條邊進行處理。先遇到e1,組合中并沒有與e1同屬一個圖形的邊,所以把邊加入組合;再遇到e2,同樣的加入組合,盡管有兩條邊在組合中,但是不滿足連接條件,不建立連接;再遇到e3,加入組合,此時滿足了連接條件,因此建立連接;然后再依次遇到e4、e5、e6,這些邊分別與e3、e1、e2同屬一個圖形,因此遇到e4時要把e3從組合中去掉,遇到e5時要把e1從組合中去掉,遇到e6時要把e2從組合中去掉;此位置上所有的邊都處理完畢。根據圖2所示,就要在下一個連接位置進行同樣的處理過程。因為在其他位置上的處理與此相同,所以不再詳述。
(3)建立連接由圖2可知,在第(2)步中,當獲取的組合滿足要求時,就要建立連接,此時組合中的邊為e1、e2和e3,e1是有源區圖形的邊,e2是金屬線圖形的邊,e3是孔層圖形的邊。這就說明e1所在的有源區通過e3所在的孔層與e2所在的金屬線連接在一起了。在建立連接的過程中,還需要區分每條邊的狀態,在這里,e1是primitive,e2是halo,e3是primitive。因為e2是halo,那么在B單元所有的實例中,e2可能不是都出現的,所以需要計算e2與e1的ILT交集。因為例子中B單元只出現一次,e2與e1肯定能同時出現,所以在這里必然能夠建立連接。
(4)處理層次關系由圖2可知,在建立連接的過程中,如果需要在primitive與halo之間建立連接,這就說明存在層次關系。如第(3)步中所得,e1是primitive,e2是halo,在對它們建立連接的同時,必須生成相應的用于層次信息傳遞的信息載體。在此,信息載體的信息內容就是e1所在圖形的節點號,目的地就是e2所屬圖形在A單元中的位置,只需要在圖形中任取一點作為目的地即可,這個坐標是相對于B單元原點的坐標,在處理A單元時,根據A調用B的位置,把這個坐標進行定位運算,即可知道信息載體在A單元中的具體位置。如圖7所示,當處理完B單元后,會生成兩個信息載體,這兩個信息載體在A單元的位置就是圖中的兩個黑點。在處理A單元時,把信息載體的目的地也作為一個連接位置,然后找出包含此位置的primitive邊即可,如圖7,掃描線上的黑點所代表的信息載體將與e7所在圖形聯系起來,也就是說,B單元中有源區與A單元中的金屬線連接在一起了。
(5)識別器件在例子中,要識別出MOS管,就要首先找出所有與器件層圖形有連接關系的圖形,也就是與B單元中多晶層圖形相連的所有圖形,通過前面的(1)至(4)步,可以找出B中的有源區圖形與多晶層圖形相連,這就滿足了一個MOS管器件的生成條件,由此,就可以生成一個MOS管。根據圖3所示的流程圖,在得到一個器件后,就要根據命令的要求計算此器件的屬性,因為所有的參數在獲取有連接關系的圖形時就可以得到,所以屬性的計算是很容易的,采用一般的方法即可得到。這里設MOS管的寬為25u,長為5u。
(6)生成層次網表在生成一個器件后,就要將其寫入層次網表中。在對B單元的處理中,得到了一個MOS器件,同時因為這個器件的兩個管腳與上層單元相連,所以最后B單元的層次網表為.SUBCKTB Port1 Port2M Port1 G Port2 VDD P W=25u L=5u在處理A單元時,假設兩條金屬線的節點號為VDD和OUT,且分別與Port1和Port2對應,因為A調用B,所以A的層次網表為.SUBCKTAXBVDDOUT
權利要求
1.一種集成電路版圖的層次網表提取方法,其利用了投影法及倒序樹構成基于邊的層次版圖數據結構,其特征在于,包含以下幾個技術特征①構造邊的一種組合以定位圖形的連接關系的出現位置;②利用版圖倒序樹交集運算得到準確的層次版形的連接關系;③構造一種信息載體在各單元之間傳遞層次信息;④綜合層次信息進行器件識別并生成層次網表。
2.根據權利要求1所述的集成電路版圖的層次網表提取方法,其特征在于,所述的技術特征①中的組合只需要簡單的判斷某圖形的邊是加入組合或者從組合中刪除。
3.根據權利要求1或2所述的集成電路版圖的層次網表提取方法,其特征在于,所述的技術特征②只要對組合中的可能滿足連接要求的邊進行版圖倒序樹交集運算。
4.根據權利要求1或3所述的集成電路版圖的層次網表提取方法,其特征在于,所述的技術特征③中的信息載體在出現層次連接的位置生成,利用相對位置的定位方式傳遞到相應的單元中。
5.根據權利要求1所述的集成電路版圖的層次網表提取方法,其特征在于,所述的技術特征④能把來自不同層次的與某個器件圖形相連的信息都綜合在一起。
全文摘要
本發明是一種集成電路版圖的層次網表提取方法,所屬的技術領域是集成電路計算機輔助設計領域,尤其涉及版圖驗證領域。主要應用于EDA的版圖驗證工具中。本發明目的在于提供一種集成電路版圖的層次網表提取方法,能夠極好的保持版圖中原有的層次,使層次LVS得到最大程度的支持;同時,能夠快速的運行,減少資源的占用。其實現過程主要包括采用投影法和版圖倒序樹構造基于邊的層次數據結構;構造邊的一種組合以獲取圖形的連接關系;利用版圖倒序樹交集運算得到準確的層次版形連接關系;構造一種信息載體在各單元之間傳遞層次信息;綜合層次信息進行器件識別并生成層次網表。
文檔編號G06F17/50GK1834967SQ20051005385
公開日2006年9月20日 申請日期2005年3月14日 優先權日2005年3月14日
發明者吳松濤, 侯勁松, 鄭赟, 江紅英 申請人:北京中電華大電子設計有限責任公司