專利名稱:集成電路版圖驗證圖形拓撲命令并發計算方法
技術領域:
本發明是一種使用于集成電路版圖驗證工具中的圖形拓撲命令計算方法,所屬的技術領域是集成電路計算機輔助設計領域,尤其是涉及集成電路版圖的設計規則檢查(DRC)和版圖與原理圖的一致性檢查(LVS)領域。
背景技術:
近30年來,集成電路技術一直按照“摩爾定律”向前發展。芯片的特征尺寸越來越小,單個芯片的集成度也越來越高。隨著芯片規模的擴大,在集成電路設計的各個階段所需驗證的設計規則也在不斷增多。其中集成電路版圖的設計規則檢查(DRC)以及集成電路版圖與原理圖的一致性檢查(LVS)變得越來越重要,它們對于消除錯誤、降低設計成本和減少設計失敗的風險具有重要作用。掃描線方法最初是為解決線段相交問題而提出的。因為其高效率而在圖形運算中得到廣泛應用,是目前已知的最有效的版圖運算方法。其基本思想為(I)掃描線停頓點為線段的左、右端點及線段間的交點。(2)垂直掃描線從左向右運動,在每一個停頓點處停留。起始于當前掃描線的所有線段進入當前工作表,終止于當前掃描線的所有線段從工作表中刪去,跨越當前掃描線的線段仍然保留。(3)在當前掃描線狀態下,活躍邊都在當前鏈表中。掃描線方法被廣泛應用于線段求交和圖形的邏輯、拓撲運算。在DRC中,圖形拓撲命令是基礎命令,它主要用于計算版形之間的各種關系。DRC圖形拓撲命令主要包換以下6類命令(I) INSIDE。命令格式為INSIDE layerl layer2。選擇出所有位于layer2圖層內部的Iayerl層圖形。(2) OUTSIDE。命令格式為 OUTSIDE layerl layer2。選擇出所有的位于 layer2 圖層外部的layerl層圖形。(3)ENCLOSE。命令格式為 ENCLOSE layerl layer2。選擇出所有的包含了 layer2層圖形的layerl層圖形。(4) CUT。命令格式為CUT layerl layer2。選擇出與layer2層圖形有部分面積重疊的layerl層圖形。如果某一 layerl層的圖形是ENCLOSE結果,但不是INSIDE結果,那這個圖形也是⑶T的結果。(5) TOUCH0命令格式為TOUCH layerl layer2。選擇出所有位于layer2層圖形外部的,并且與layer2層圖形有部分或者全部邊重合的layerl層圖形。(6) INTERACT。命令格式為 INTERACT layerl layer2。INTERACT 是 INSIDE,ENCLOSE,⑶T,TOUCH關系的合集。任一 layerl圖形,只要符合上述四種關系之一,那它就是INTERACT命令的結果。以上6種命令的輸出結果在附圖I中有說明。
圖形拓撲 命令是DRC核心命令。它的執行時間直接影響版圖驗證工具的驗證效率。本發明所要展示的是一種高效的基于掃描線方法的并發圖形拓撲命令計算方法。
發明內容
本發明針對甚大規模集成電路版圖驗證工具中所面臨的運行速度慢,運行時間長,導致版圖驗證最終不可解的問題,提出了一種并發的命令執行方法。此方法能夠使六類圖形拓撲命令并發執行,縮短命令執行時間,進而加快版圖驗證工具的運行速度,提高可驗證版圖規模。本發明的主要技術方案包括以下五個步驟第一,觀測當前邊,生成觀測圖形狀態。在當前掃描線上,首先將邊按照KEY值(邊與掃描線交點的Y坐標)與斜率排序。KEY值越小的邊排序位置越靠下。相同KEY值的邊,斜率越小的邊,排序位置越靠下。如果KEY值和斜率相同,排序不分上下。邊排好序后,從下到上,依次遍歷當前掃描線上所有的邊。 如果當前邊是layerl層的邊。有以下三種判斷狀態(I)如果上一條已遍歷的layer2層邊為空,那當前邊所在的layerl圖形的觀測狀態是 OUTSIDE。(2)如果上一條已遍歷的layer2層邊非空,且該邊為負向邊。如果該邊與當前邊重合,返回TOUCH狀態,否則當前邊所在的layerl圖形的觀測狀態是OUTSIDE。(3)如果上一條已遍歷的layer2層邊非空,且該邊為正向邊。那當前邊所在的layerl圖形的觀測狀態是INSIDE。 如果當前邊是layer2層的邊。有以下兩種判斷狀態(I)如果上一條已遍歷的layerl層邊為空,沒有layerl的圖形有狀態轉換。(2)如果上一條已遍歷的layerl層邊非空。如果該邊為正向邊,那該邊所在的圖形狀態是ENCLOSE,否則狀態是OUTSIDE。第二,訪問狀態轉移矩陣,根據觀測狀態和歷史狀態生成新狀態。狀態轉移矩陣定義如下
INSIDE OUTSIDE ENCLOSE CUT TOUCH INIT [INSIDE OUTSIDE ENCLOSE CUT TOUCH _
INSIDE INSIDE CUTCUT CUT CUT
OUTSIDE CUT OUTSIDE CUT CUT TOUCH
ENCLOSE CUT ENCLOSE ENCLOSE CUT ENCLOSE
CUT CUT CUTCUT CUT CUT
TOUCH L CUT TOUCH ENCLOSE CUT TOUCH _矩陣的橫坐標表示歷史狀態,INIT表示初始狀態。矩陣縱坐標表示觀測狀態,而矩陣值表示新狀態。第三,邊匹配器生成垂直邊,并生成新狀態。在當前掃描線上,僅有離開邊和新進邊才能匹配生成垂直邊。離開邊是指邊的右端點X坐標等于當前掃描線的邊;而新進邊是指邊的左端點等于當前掃描線的邊。離開邊和新進邊統稱為變動邊。變動邊按照其排序位置先后進入匹配器。匹配器發生匹配的觸發條件是讀入邊KEY值不等于待匹配邊KEY值。當發生匹配時,匹配器中的邊按照逆時針排好序,先離開邊,后新進邊,離開邊按照斜率遞減、新進邊按照斜率遞增排序。從匹配器的第一條變動邊開始,向后找到第一條相同圖形號,并且方向匹配的邊(同側逆向,異側同向)既是匹配邊。將“匹配邊對”從匹配器中移除掉。匹配對中KEY小的邊稱為LowEdge,KEY值大的邊稱為UpEdge。如果匹配對的KEY值不同,恢復并記錄垂直邊,垂直邊的左右端點X坐標等于當前掃描線,左端點Y坐標等于LowEdge的Y坐標,右端點Y坐標等于UpEdge的Y坐標。下面開始遍歷,從LowEdge到UpEdge。如果LowEdge到UpEdge存在非變動邊,那說明當前的觀測狀態是CUT(匹配對和非變動邊來自不同輸入層,因為同一輸入層圖形不可能自相交)。查找狀態轉移矩陣,生成新狀態。然后判斷另一輸入層的是否有生成垂直邊,如果存在,有重合且垂直邊方向不同,那說明存在TOUCH的觀測狀態,同樣需要生成新狀態。 邊匹配對處理結束。此時判斷匹配器是否為空,否則生成下一匹配對做以上相同操作。第四,調整斜邊位置。為了提高本發明的執行效率,掃描線僅在邊端點處停留,兩條邊的交點處是不停的。這樣的處理方法對于水平邊不會產生任何問題(因為水平邊的不同掃描線KEY值不變,因此排序位置就不會變),但斜邊就不正確了。在當前掃描線即將結束,下一條掃描線沒有開始之前,必須調整斜邊位置。對于每一條掃描線,如果其斜率k >0,那該斜邊需要向上調整位置,反之向下。如果一條斜邊調整了其所在位置,那說明該斜邊和調整邊發生了相交。觀測狀態就為⑶T,這時查找狀態轉移矩陣,生成新狀態。第五,重復以上四個步驟,直到所有掃描線都執行完畢。
圖I六種命令的輸出結果;圖2圖形拓撲命令并發執行計算流程圖;圖3版圖文件示例。
具體實施例方式在附圖3中,實線代表圖形(邊框除外),虛線表示掃描線,虛線下的數字表示掃描線的順序。layerl層圖形共有6個,編號I到6 ;layer2層圖形有5個。I.在第一條掃描線上,讀入3號圖形的下側邊。上一條已遍歷的layer2邊為空,3號圖形的觀測狀態是OUTSIDE。2. 3號圖形的歷史狀態是INIT,根據觀測狀態OUTSIDE訪問狀態轉移矩陣得到新狀態OUTSIDE。然后將3號邊的下側邊加入邊匹配器,設置匹配器KEY值。3.讀入3號圖形的上側邊。這時發現匹配器的KEY值不等于當前邊KEY值,匹配生成垂直邊(垂直邊的左端點X坐標為當前掃描線值,左端點Y坐標為3號邊下側邊KEY值。右端點X坐標為當前掃描線,右端點Y坐標為無窮大)。當前layer2層不存在垂直邊,不需要判斷TOUCH狀態。這時判斷3號圖形的上側邊可知,上一條已遍歷的layer2邊還是為空,那么3號圖形的新狀態仍然是OUTSIDE。將3號圖形的上側邊加入匹配器。4.讀入2號圖形的下側邊。匹配生成3號圖形的左側垂直邊,由于當前layer2層不存在垂直邊,不需要判斷TOUCH狀態。5.在當前掃描線上,繼續讀入I號和2號圖形。這兩個圖形的新狀態都是OUTSIDE。6.在第二條掃描線上3號圖形的OUTSIDE狀態不變。當讀入第一條layer2層的邊時,判斷上一條已遍歷layerl的邊為正向邊,這時3號圖形觀測狀態是ENCLOSE。新狀態也是 ENCLOSE。7.讀入下一條邊,即2號圖形的上側邊,此時的觀測狀態是INSIDE,查詢狀態轉移表,新狀態為CUT狀態。8.下面依次讀入I號圖形和I號圖形內部的layer2圖形的邊,I號圖形仍然為ENCLOSE 狀態。9.第5條掃描線上沒有layerl的邊,不會產生狀態轉換。10.第6條掃描線4號圖形的新狀態為OUTSIDE。11.第7條掃描線。第一條邊是5號圖形的下側邊,5號圖形的新狀態是OUTSIDE。5號圖形下側邊放入匹配器中。讀入下一條邊,一條layer2圖形的下側邊。這時匹配生成5號圖形的左側垂直邊。再讀入一條邊,一條layer2圖形的上側邊,匹配生成layer2圖形的垂直邊。此時有layerl的垂直邊存在,這時可以判斷出5號圖形的新狀態是TOUCH。繼續讀4號圖形的兩條邊,4號圖形的新狀態還是OUTSIDE。12.第8條掃描線,5號圖形為TOUCH,4號圖形為ENCLOSE。13.在第9條掃描線開始之前,判斷上一條掃描 線中存在斜邊。需要調整斜邊位置。該斜邊與4號圖形相交,那4號圖形為⑶T關系。14 第10,11,12,13,14和15條掃描線依次執行完畢。最終結果I號圖形是ENCLOSE命令結果,2號圖形是⑶T命令結果,3號圖形是OUTSIDE的,4號圖形是⑶T的,5號圖形是TOUCH的,6號圖形是INSIDE的。除了 3號圖形,其他的5個圖形都是INTERACT關系。
權利要求
1.一種集成電路版圖驗證并發圖形拓撲命令計算方法,其技術特征在于包含以下幾個步驟①觀測當前邊,生成觀測圖形狀態。②訪問狀態轉移矩陣,根據觀測狀態和歷史狀態生成新狀態。③邊匹配器生成垂直邊,并生成新狀態。④調整斜邊位置。根據斜率,向上或者下遍歷鄰近邊。如果斜邊與鄰近邊有交點,則更新狀態,調整斜邊位置。⑤以上步驟重復若干次,直到所有掃描線結束則停止。
2.根據權利要求I所述的方法,“觀測狀態”計算方法的特征在于①提出了圖形拓撲“狀態轉換矩陣”。②將圖形拓撲狀態轉換總結為根據“歷史狀態”和“觀測狀態”查詢“狀態轉移矩陣”而得新狀態的過程。
3.根據權利要求I所述的計算方法,其特征在于①并發圖形拓撲命令計算方法以掃描線方法為基礎。②并發圖形拓撲命令計算方法同時執行6類命令,具有很高的執行效率。
全文摘要
本發明公布了一種使用于集成電路版圖驗證工具中的圖形拓撲命令計算方法,所屬的技術領域是集成電路計算機輔助設計領域,尤其是涉及集成電路版圖的設計規則檢查(DRC)和版圖與原理圖的一致性檢查(LVS)領域。本發明創造性地提出了并發的圖形拓撲命令計算方法,用于解決甚大規模集成電路版圖驗證過程中所面臨的運行時間過長,驗證效率低,進而導致版圖無法驗證的問題。圖形拓撲命令并發計算方法基于掃描線局部性原理,通過查詢狀態轉移矩陣的方式來完成圖形拓撲關系計算,在一次掃描線的執行中完成所有6種圖形拓撲命令的計算。實驗結果表明,圖形拓撲命令并發計算方法減少了命令執行時間,極大地提高了版圖驗證效率。
文檔編號G06F17/50GK102622456SQ20111003058
公開日2012年8月1日 申請日期2011年1月28日 優先權日2011年1月28日
發明者宋德強, 馬海南 申請人:北京華大九天軟件有限公司