一種檢查集成電路線網(wǎng)連通關(guān)系的方法
【技術(shù)領(lǐng)域】
[0001] 所屬的技術(shù)領(lǐng)域是邸A (電氣設(shè)計自動化),尤其是版圖驗證領(lǐng)域的ERC (電氣規(guī)則 檢查)和LVS (集成電路版圖與原理圖的一致性檢查)。
【背景技術(shù)】
[0002] 近年來,集成電路技術(shù)一直按照"摩爾定律"向前發(fā)展。芯片的特征尺寸越來越小, 單個芯片的集成度也越來越高,制造工藝越來越復(fù)雜。隨著芯片規(guī)模的擴大和制造技術(shù)的 日益改進,在集成電路設(shè)計的各個階段所需要的驗證也不斷增多。通常把集成電路設(shè)計分 為前端和后端兩個階段,前端主要進行邏輯設(shè)計,后端主要進行物理設(shè)計。后端設(shè)計的版圖 必須與前端設(shè)計的原理圖一致,且其電學(xué)結(jié)構(gòu)必須滿足設(shè)計和生產(chǎn)工藝的各種規(guī)則要求。 ERC (電氣規(guī)則檢查)和LVS (版圖與原理圖的一致性比較)作為后端設(shè)計中必不可少的驗 證手段,對于消除錯誤、減少設(shè)計失敗、提高良品率和降低設(shè)計成本具有不可替代的作用。 [000引在邸C和LVS檢查中,有一種"線網(wǎng)連通關(guān)系檢查"可W幫助集成電路設(shè)計人員發(fā) 現(xiàn)其它檢查難W發(fā)現(xiàn)的斷路或其它連接錯誤。即使集成電路版圖通過了常規(guī)的LVS檢查, 仍可能存在一些不能與電源、地等"關(guān)鍵線網(wǎng)"連通的"孤立線網(wǎng)"。由于孤立線網(wǎng)與電源、 地等關(guān)鍵線網(wǎng)間沒有電流通路,其電位通常是不確定的,如果送些線網(wǎng)連接了一些重要的 控制信號(例如M0S晶體管的柵極),在靜電、福射、溫度等外部條件的影響下,極有可能造成 電路誤動作,干擾電路的正常運行。孤立線網(wǎng)檢查是連通關(guān)系檢查的一個比較常見的特例, 實際應(yīng)用中可能更復(fù)雜,例如可涉及多個關(guān)鍵線網(wǎng),檢查的條件可W是多種連通關(guān)系的復(fù) 雜的邏輯組合。線網(wǎng)檢查的結(jié)果除了直接作為錯誤報告給設(shè)計人員W外,還可W為作為中 間結(jié)果,為其它運算或檢查提供依據(jù),例如在LVS中可基于線網(wǎng)檢查的結(jié)果過濾未使用的 器件。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明針對甚大規(guī)模集成電路版圖驗證工具特別是邸C和LVS工具所面臨的運 行速度慢、運行時間長、內(nèi)存占用多的問題,提出了一種高效簡便的并發(fā)的連通關(guān)系檢查方 法。此方法可降低內(nèi)存占用,減少"原子檢查"的時間,并能減少原子檢查的次數(shù),進而加快 版圖驗證工具的運行速度,支持更大規(guī)模的版圖驗證。
[0005] 當(dāng)兩個線網(wǎng)僅通過一個器件就能互相連通時,稱送兩個線網(wǎng)是"直接連通"的,當(dāng) 兩個線網(wǎng)能連通但至少通過兩個W上的器件連通時,稱送兩個線網(wǎng)是?'哥接連通"的。若兩 個線網(wǎng)不能通過有限多個器件連通,則它們是"不連通"的。兩個線網(wǎng)連通的物理意義是送 兩個線網(wǎng)之間至少存在一條電流通路。連通是雙向的,若線網(wǎng)Ni和成連通,則成和Ni也連 通,反之亦然。
[0006] 對指定的兩個線網(wǎng)進行一次"是否連通"的檢查稱為一次"原子檢查",檢查結(jié)果有 "連通"和"不連通"兩種情況。通常需要對一個線網(wǎng)進行多次原子檢查,并對檢查結(jié)果進行 "與"、"或"、"非"、"異或"等邏輯運算,最終得出"合格"或"不合格"的結(jié)論。連通關(guān)系檢查 的核必是原子檢查,邏輯運算則非常簡單。
[0007] 連通性問題的常規(guī)解決辦法是生成一個二分圖G(N,化巧來描述電路結(jié)構(gòu),其中 N是線網(wǎng)(肥T)的集合,D是器件(DEVICE)的集合,E是線網(wǎng)與器件之間的連接的集合。基 于二分圖的連通關(guān)系檢測通常需要遍歷二分圖。例如,對于"兩個線網(wǎng)Ni和成是否連通"送 一原子檢查,可W從Ni出發(fā),W深度優(yōu)先或廣度優(yōu)先方法遍歷二分圖,直到到達成或者遍歷 完N1所在連通子圖的所有線網(wǎng)和器件。當(dāng)檢查另外兩個線網(wǎng)N3和Μ是否連通時,需要重 復(fù)執(zhí)行相同的操作。在最壞情況下,每次原子檢查都要遍歷整個二分圖,即一次原子檢查的 復(fù)雜度為〇(N+D+E)。當(dāng)需要進行大量的原子檢查時,此方法的時間復(fù)雜度是無法容忍的。
[0008] 可W對上述方法進行改進,通過一次遍歷完成多個原子檢查。例如,從一個關(guān)鍵線 網(wǎng)出發(fā)遍歷二分圖的一個連通子圖,在遍歷過程中將所有訪問到的線網(wǎng)標(biāo)記為"與關(guān)鍵線 網(wǎng)連通"。如此改進后,遍歷線網(wǎng)的復(fù)雜度沒有變化,但原子檢查的次數(shù)明顯減少了。另外 還可W緩存檢查結(jié)果,避免重復(fù)進行相同的原子檢查,但送種方法也會帶來額外的時間和 內(nèi)存開銷?;诙謭D的方法無論如何優(yōu)化,必然要生成和存儲二分圖,并W某種方法對二 分圖進行多次遍歷,無論時間還是空間的消耗都非常大。
[0009] 考慮到連通關(guān)系檢查只關(guān)必有關(guān)線網(wǎng)"是否連通",并不關(guān)必它們是"如何連通" 的,本發(fā)明并不生成或使用二分圖,只生成一個與記錄線網(wǎng)連通關(guān)系的"連通關(guān)系表",并進 行一趟標(biāo)記,空間復(fù)雜度為0 (腳,標(biāo)記過程的時間復(fù)雜度是0 (N+D+E)。標(biāo)記完成后,一次原 子檢的復(fù)雜度為0(1)。在實際電路中,N遠遠小于D和E,內(nèi)存和時間的降低十分明顯。
[0010] 本發(fā)明的主要技術(shù)方案包括四個步驟: 一、初始化線網(wǎng)連通關(guān)系表 設(shè)線網(wǎng)總數(shù)為N,建立一個包含N個結(jié)點的連通關(guān)系表,每個結(jié)點代表一個線網(wǎng),表的 初始狀態(tài)為所有線網(wǎng)互不連通,即每一結(jié)點都指向其自身。線網(wǎng)連通關(guān)系表可采用多種數(shù) 據(jù)結(jié)構(gòu),本發(fā)明只介紹"森林"和"數(shù)組"結(jié)構(gòu),送兩種結(jié)構(gòu)在邏輯上是等價的。相關(guān)領(lǐng)域 的技術(shù)人員可W借鑒本發(fā)明的設(shè)計思想,采用其它類似的數(shù)據(jù)結(jié)構(gòu)和方法來實現(xiàn)連通關(guān)系 表,應(yīng)視為本質(zhì)上與本發(fā)明相同。
[0011] 在森林結(jié)構(gòu)中,每個結(jié)點有一個指向其它結(jié)點的指針。如果結(jié)點A指向結(jié)點B,稱 A為B的子結(jié)點,B為A的父結(jié)點。如果一個結(jié)點沒有父結(jié)點,則指向其自身,送樣的結(jié)點稱 為"根結(jié)點"。森林結(jié)構(gòu)中,每個結(jié)點的指針必須指向有效結(jié)點,沒有"空指針",也不允許出 現(xiàn)環(huán)。數(shù)組結(jié)構(gòu)是一個包含N個元素的一維數(shù)組。數(shù)組的每個元素就是一個整數(shù),相當(dāng)于森 林結(jié)構(gòu)中的結(jié)點,整數(shù)的值相當(dāng)于森林結(jié)構(gòu)的指針,是對數(shù)組中另一整數(shù)的索引值(下標(biāo))。
[0012] 二、將器件構(gòu)成的直接連通關(guān)系合并到連通關(guān)系表中 本發(fā)明假定在連通關(guān)系檢查之前已經(jīng)完成了 "線網(wǎng)提取"和"器件提取"。在器件提取中 識別出的器件保存在器件數(shù)據(jù)庫中。遍歷版圖數(shù)據(jù)庫中所有可構(gòu)成電流通路的器件,將器 件構(gòu)成的直接連通關(guān)系合并到連通關(guān)系表中。通常認為W下器件的W下兩極之間可構(gòu)成電 流通路,從而能連通兩個線網(wǎng):電阻、電容、二極管的正負極;場效應(yīng)管的S (源)和D (漏); Η極管的C (集電極)和E (發(fā)射極)等。電容不能通過直流電流,但可通過交流電流,通常 認為是連通的。二極管具有單向?qū)щ娦?,但在本發(fā)明適用的領(lǐng)域中始終認為是雙向連通的。 場效應(yīng)管和Η極管通常視為二端器件,只考慮S-D或C-E的連通關(guān)系,當(dāng)然根據(jù)需要也可視 為多端器件。由于連通關(guān)系具有傳遞性,當(dāng)考慮一個器件的Τ (> 2)個電極時,可W將該器 件等效為τ-1個雙端器件串聯(lián),不需要考慮每對電極間兩兩連通。做此等效變換后,雙端器 件與多端器件的處理并無本質(zhì)區(qū)別,因此只討論雙端連通的器件。
[0013] 假設(shè)從器件數(shù)據(jù)庫中讀取的一個雙端器件的兩極分別連接了線網(wǎng)Ni和成。在線 網(wǎng)連通關(guān)系表中,依次進行W下操作: (1)找到Ni對應(yīng)結(jié)點的根結(jié)點Ri 由于每一結(jié)點都有一指針指向其父結(jié)點,從而形成了從該結(jié)點到根結(jié)點的指針序列, 沿該指針序列依次訪問該結(jié)點的父節(jié)點,祖父結(jié)點,……,直到根結(jié)點。利用根結(jié)點的指針 指向其自身送一特點,很容易判斷一結(jié)點是否為根結(jié)點。
[0014] (2 )找到成對應(yīng)結(jié)點的根結(jié)點R2 方