專利名稱:集成電路版圖驗證自適應掃描線解決方案的制作方法
技術領域:
本發(fā)明是一種使用于集成電路版圖驗證工具中的掃描線方案,所屬的技術領域是集成電路計算機輔助設計領域,尤其是涉及集成電路版圖的設計規(guī)則檢查(DRC)和版圖與原理圖的一致性檢查(LVS)領域。
背景技術:
近30年來,集成電路技術一直按照“摩爾定律”向前發(fā)展。芯片的特征尺寸越來越小,單個芯片的集成度也越來越高。隨著芯片規(guī)模的擴大,在集成電路設計的各個階段所需驗證的設計規(guī)則也在不斷增多。其中集成電路版圖的設計規(guī)則檢查(DRC)以及集成電路版圖與原理圖的一致性檢查(LVS)變得越來越重要,它們對于消除錯誤、降低設計成本和減少設計失敗的風險具有重要作用。在超大規(guī)模集成電路設計中,版圖規(guī)模急劇膨脹,如何在有效時間內完成設計方案的驗證工作成為各大EDA廠商急需解決的問題。掃描線方法最初是為解決線段相交問題而提出的。因為其高效率而在圖形運算中得到廣泛應用,是目前已知的最有效的版圖運算方法。其基本思想為(1)掃描線停頓點為線段的左、右端點及線段間的交點。(2)垂直掃描線從左向右運動,在每一個停頓點處停留。起始于當前掃描線的所有線段進入當前工作表,終止于當前掃描線的所有線段從工作表中刪去,跨越當前掃描線的線段仍然保留。(3)在當前掃描線狀態(tài)下,工作對象都在當前工作表中。DRC不同于線段求交和圖形的邏輯、拓撲運算,其任務是幾何圖形的尺寸檢查。完成這一任務的關鍵是找出合適的檢查邊對,對此,掃描線方法具有獨到的優(yōu)勢。掃描線方法是版圖驗證工具的核心技術,其性能的好壞直接影響集成電路版圖驗證工具的運行效率。 新進邊左端點在當前掃描線上的邊。 離開邊右端點在當前掃描線上的邊。 變動邊新進邊和離開邊。 經過邊當前掃描線上,非變動邊外的所有邊。經過邊與當前掃描線在非端點處相交。 水平邊邊斜率k = = 0的邊。 斜邊邊斜率k ! = 0的邊。一般掃描線方法需要遍歷當前掃描線上所有的邊,這種方法效率比較低。實際上, 在大規(guī)模版圖數據中,經過邊占93. 3 %,變動邊占6. 7 % ;水平邊占93. 9 %,斜邊占6. 1 %。 由此可見,非斜邊的經過邊的比例大概是87. 6% (93.3%*93.9%)0而非斜邊的經過邊是不會對驗證命令結果產生影響的。自適應方案的核心內容就是減少對非斜邊經過邊的無用遍歷
發(fā)明內容
本發(fā)明針對甚大規(guī)模集成電路版圖驗證過程中所面臨的運行速度過慢,運行時間過長,導致版圖驗證最終不可解的問題,提出了一種自適應的掃描線解決方案。此方案能夠正確的發(fā)揮歸并掃描線方法和索引掃描線方法的特征優(yōu)勢,極大加速版圖驗證工具的運行速度,提高可驗證版圖規(guī)模。本發(fā)明的主要技術方案包括以下六個方面第一,讀新進邊,更新離開邊鏈表。附圖1中的第1,2步。離開邊鏈表是一個二維鏈表,第一維存放掃描線坐標值,第二維存放該掃描線下的離開邊。每條新進邊都需要加入離開邊鏈表。離開邊會對驗證命令的輸出結果產生影響,需要在當前掃描線上重新計算結^ ο第二,分析當前掃描線狀態(tài),決定調用方式。附圖1中的第3步。這一步是自適應概念的集中體現。歸并掃描線方法在經過邊數量少,變動邊數量多的情況下效率高;而索引掃描線方法在經過邊數量多,變動邊數量少的情況下高效。本發(fā)明在以下兩種情況下調用歸并掃描線(1)經過邊數量大于變動邊數量10倍。(2)索引掃描線連續(xù)執(zhí)行次數超出了某一數值(步長)。其他情況下調用索引掃描線方法。第三,歸并掃描線方法。附圖1中的第4步。在歸并掃描線方法中,離開邊和經過邊存放在歷史邊鏈表中;新進邊在新進邊鏈表中。這兩個鏈表都是有序的,不同驗證命令, 排序方式可能不同。在當前掃描線上遍歷邊計算結果與二路歸并排序是同時進行的。最終, 新進邊鏈表中的邊會作為下一條掃描線中的歷史邊加入歷史邊鏈表。索引掃描線需要依賴于歸并掃描線。歸并掃描線的另外兩項任務是為索引掃描線建立索引和清除不在當前掃描線上的歷史邊。(1)為索引掃描線建立索引。歸并掃描線不使用索引,索引是專為索引掃描線準備的。在歸并遍歷過程中,每間隔一定數量S,取一條邊加入索引鏈表中。索引邊不能是斜邊,因為斜邊會調整排序位置。查找索引采用折半查找,遍歷兩條索引之間的邊采用順序查找。S的取值要適中。否則,如果S值過大,那查找就近似成為了順序遍歷,S取值過小,查找又近似成為折半查找。(2)清除不在當前掃描線上的歷史邊。因為索引掃描線是不刪除歷史邊的,歸并掃描線必須完成這項任務,否則,當前內存中的邊就會越積越多,內存越來越大,掃描線方法的效率也會越來越低。參考圖2,歸并掃描線方法的實現包括以下8個步驟1)初始化。初始化需要清除索引、清除斜邊列表和刪除無用離開邊列表。2)判斷是否讀歷史邊。歷史邊和新進邊鏈表都已排好序。當前讀指針上的兩條邊,哪條排序結果小,就先讀哪個鏈表。3)讀入一條歷史邊。移動歷史邊讀指針到下一條邊。4)讀入一條新進邊。移動新進邊讀指針到下一條邊。5)插入歷史邊鏈表。對于新進邊,要將新進邊插入到歷史邊鏈表中。由于采用的是歸并遍歷,因此只需要將新進邊插入到歷史邊鏈表的讀指針之前即可。6)計算結果并輸出。這一步處理方法跟具體驗證命令有關系,如果有需要,還需要匹配生成垂直邊。可以設置一個緩沖區(qū)保存未匹配的變動邊。7)更新索引。歸并掃描線需要為索引掃描線生成索引,索引的生成方式是采用間隔一定步長(本方案選取16)選取一個標兵邊的方式。這里有一點需要指出,那就是斜邊不能作為標兵邊,因為斜邊需要調整位置,這將導致相鄰標兵邊的位置調整,進而涉及索引更新的問題,索引更新的代價比較高昂,應該盡量避免。8)判斷邊是否結束。判斷兩個鏈表的讀指針是否已到結尾。第四,索引掃描線方法。附圖1中的第5步。掃描線的核心任務是找出需要處理的邊對。當一條新進邊加入時,索引掃描線通過索引表來查找該邊應該插入的位置,然后在這個插入位置附近(向上或者向下)來尋找匹配邊對,計算輸出結果。索引掃描線對邊的遍歷是局部的,它無法建立索引。索引掃描線不能刪除歷史邊,因為一旦刪除歷史邊,就要更新索引。但不刪除無用歷史邊,為了保證正確性,這些邊就需要在計算過程中過濾掉。一旦這些無用歷史邊積累過多,那過濾操作就對速度產生影響。為了解決這一問題,每隔一定步長,自適應方案強制調用一次歸并掃描線方法,清理無用歷史邊并重建索引。參考附圖3,索引掃描線方法的實現包括以下8個步驟1)初始化。排序當前離開邊鏈表和刪除無用離開邊列表。2)計算最小KEY值。KEY值是邊在當前掃描線上的Y坐標值。新進邊和離開邊讀指針所指向的邊,那條邊KEY值小,那個KEY值就是當前最小KEY值。3)讀入等于當前KEY值的所有邊到邊匹配器中。4)判斷匹配器是否為空。即匹配器中是否存在邊。5)生成“匹配邊對”。匹配器中的邊都是變動邊,具有相同的KEY值。匹配器中的邊按照逆時針排好序。也就是說排序方法是先離開邊,后新進邊,離開邊按照斜率遞減、 新進邊按照斜率遞增排序。從匹配器的第一條變動邊開始,向后找到第一條相同圖形號,并且方向匹配的邊(同側逆向,異側同向)既是匹配邊。生成的“匹配邊對”在第8步計算結果,該“匹配邊對”從匹配器中移除掉。6)判斷變動邊是否結束。新進邊和離開邊是兩個鏈表,判斷這兩個鏈表是否為空。7)插入歷史邊鏈表。首先通過折半查找索引來確定索引查找區(qū)間(即相鄰兩條標兵邊),區(qū)間內部采用順序遍歷的方式確定插入位置。8)計算結果并輸出。這一步處理方法跟具體驗證命令有關。如果生成邊對中有兩條邊,那么說明匹配邊對具有相同的KEY值。否則,一條邊需要跟不同KEY值的邊進行匹配, 匹配成功后會生成一條垂直邊,垂直邊會影響命令輸出結果。對變動邊的遍歷是根據KEY 值由底向上的,因此可以設置一個緩沖區(qū)來保存未匹配的變動邊。第五,計算下一條掃描線位置。附圖1中的第6步。下一條掃描線位置需要從新進邊和離開邊鏈表中選取,獲取兩個鏈表頭,值小的那一個是下一條掃描線位置。第六,調整斜邊位置。附圖1中的第8步。在當前掃描線上,對輸出結果產生影響的有兩類邊,一類是變動邊,另一類就是斜邊。水平邊不需要重新排序,而斜邊的順序可能會發(fā)生改變。順序一旦改變,也就會對輸出結果產生影響。斜邊調整是順序進行的,如果斜率k>0,那該斜邊需要向上調整位置,反之向下。在標準版圖文件中,斜邊的比例大概是 6.1%。因此對斜邊的處理不會成為掃描線方法的瓶頸。
圖1自適應掃描線方法流程圖;圖2歸并掃描線方法流程圖;圖3索引掃描線方法流程圖。圖4版圖文件示例
具體實施例方式自適應方案能夠分析版圖局部數據(當前掃描線)特征,根據分析結果來決定掃描線執(zhí)行方法。如果當前掃描線上的經過邊數量大于變動邊數量10倍,索引掃描線將會被調用;否則,歸并掃描線會被調用。下面以附圖4所示的版圖文件為例,詳細介紹自適應解決方案的執(zhí)行過程。附圖4選取了,a,b,c, d,e,f,g,h共8個圖形作為示例圖形。在掃描線方法中, 垂直邊一般是不用存儲的,掃描線可以根據匹配邊對恢復垂直邊。垂直邊不存儲可以降低內存并減小處理邊規(guī)模。在附圖4中,實線代表圖形(邊框除外),虛線表示掃描線。為了方便說明問題,“……”表示大量省略的圖形和邊。1.在當前掃描線上,讀新進邊。第一條掃描線上的新進邊有1、2、3、4、5、6、…。2.將第1步中讀入的新進邊加入離開邊鏈表。3.判斷掃描線調用類型。第一條掃描線上的經過邊數量為0,不符合大于變動邊 10倍的條件,調用歸并掃描線方法。轉第4步。4.執(zhí)行歸并掃描線方法。執(zhí)行步驟如下1)初始化。第1條掃描線,索引、斜邊鏈表和離開邊鏈表都空。不需要調整。2)判斷讀哪個鏈表。歷史邊鏈表為空,應該讀新進邊鏈表。轉第3)步。3)讀入一條新進邊6。4)將6加入歷史邊鏈表。6號邊同時需要加入離開邊鏈表。6號邊不是斜邊,不需要加入斜邊列表。5)計算輸出結果。6)更新索引。6號邊是第一條邊,它將作為第一條索引信息加入索引鏈表。7)當前邊鏈表并沒有結束,轉第2、步,余下的新進邊依次執(zhí)行;3)-7)步。5.計算下一條掃描線位置。下一條掃描線在2號掃描線處。6.第二次讀新進邊。新進邊有來自b圖形的7、8號邊,d圖形的9、10號邊和f圖形的11、12號邊。7.將第6步的新進邊加入離開邊鏈表。8.判斷掃描線調用類型。第二條掃描線處的經過邊數量大于變動邊數量10倍。 調用索引掃描線方法。轉第9步。9.執(zhí)行索引掃描線。執(zhí)行步驟如下1)初始化。遍歷斜邊鏈表調整斜邊位置,從離開邊鏈表中刪除無用離開邊。2)計算最小KEY值。最小KEY值為12號邊的左端點Y坐標。3)讀入變動邊到匹配器。匹配器讀入12號邊。
4)判斷匹配器是否為空。不空轉第5)步。5)生成匹配邊對。匹配邊對中只有12號一條邊。6)插入歷史邊鏈表。12號邊插入歷史邊鏈表。7)計算并輸出結果。當前匹配對僅有12號一條邊,在計算結果完成后,12號邊還要放入邊匹配緩沖區(qū)中(12號邊的匹配邊11在下一個KEY值中)。轉第8)步。8)當前匹配器為空,計算下一 KEY值。循環(huán)執(zhí)行;3)-7)步,直到每一條變動邊都被處理。10.第3到第17條掃描線全部調用索引掃描線。因此索引掃描線共執(zhí)行了 16次。11.在第18條掃描線中,盡管邊數量符合索引掃描線調用條件,但由于索引掃描線連續(xù)執(zhí)行次數超過了 16次,因此強制調用歸并掃描線,更新索引,刪除無用歷史邊。12.自適應方案按照以上所述方式繼續(xù)運行,直到結束。
權利要求
1.一種甚大規(guī)模集成電路版圖驗證掃描線解決方案,其技術特征在于包含以下幾個步驟①統計當前掃描線上的經過邊和變動邊數量。②根據統計值來決定調用歸并掃描線方法還是索引掃描線方法。③如果歸并掃描線方法被調用。歸并掃描線將進行全邊遍歷,清理無用離開邊并且重建索引。④如果索引掃描線方法被調用。索引掃描線根據索引進行局部遍歷,并將新進邊插入歷史邊鏈表。索引掃描線不更新索引,同時也不刪除無用離開邊。 ⑤以上步驟重復若干次,直到所有邊都被處理則停止。
2.根據權利要求1所述的解決方案,其特征在于①創(chuàng)造性地提出了歸并掃描線方法和索引掃描線方法。②歸并掃描線方法與索引掃描線方法是并行協作關系,每條掃描線的執(zhí)行方法需要選擇其中的一種。③歸并掃描線可以獨立運行,索引掃描線則依賴于歸并掃描線,因為索引掃描線需要使用索引,只有在全邊遍歷的歸并掃描線中,索引才能被建立。
3.根據權利要求1所述的解決方案,歸并掃描線方法的特征在于①歸并掃描線方法是一個全邊遍歷的過程,它以歸并排序為基礎,在歸并排序的過程中完成命令計算。②歸并掃描線方法在經過邊數量少,變動邊數量多的情況下高效。索引掃描線方法的特征在于① 索引掃描線方法是一個局部邊遍歷的過程,它依賴于索引。②索引掃描線方法在經過邊數量多,變動邊數量少的情況下高效。
全文摘要
本發(fā)明公布了一種集成電路版圖驗證自適應掃描線解決方案(以下簡稱自適應方案),所屬的技術領域是集成電路計算機輔助設計領域,尤其是涉及集成電路版圖的設計規(guī)則檢查(DRC)和版圖與原理圖的一致性檢查(LVS)領域。本發(fā)明創(chuàng)造性地提出了歸并掃描線方法和索引掃描線方法,并將這兩種方法相結合生成自適應掃描線解決方案,用于解決甚大規(guī)模集成電路版圖驗證過程中所面臨的運行時間過長,驗證效率低,進而導致版圖無法驗證的問題。自適應方案有效地利用了版圖數據局部特征,極好地發(fā)揮了歸并掃描線方法與索引掃描線方法的特征優(yōu)勢,極大地提高了版圖驗證效率。
文檔編號G06F17/50GK102411643SQ20101029105
公開日2012年4月11日 申請日期2010年9月26日 優(yōu)先權日2010年9月26日
發(fā)明者丁豐慶, 宋德強, 王小冷 申請人:北京華大九天軟件有限公司