LVS和DRC check互補
在 ASIC 物理實現(xiàn)中,一旦生成版圖(layout),它必須遵循成功制造的所有設(shè)計規(guī)則(Design Rule),并且必須匹配所需設(shè)計的原理圖(schematic)。為了在物理驗證中確保這一點,執(zhí)行設(shè)計規(guī)則檢查 (DRC) 以檢查layout是否遵循fault-less manufacturing rule。這種 DRC 檢查可提供良好的制造良率并防止制造過程中出現(xiàn)故障,但不能確保layout的正確性。需要確保設(shè)計的物理實現(xiàn)與設(shè)計的原理圖相同。為此,將layout netlist的電路與schematic netlist網(wǎng)表進行比較,稱為Layout versus Schematic (LVS)。
我以前用的比較多的跑DRC和LVS的工具是Calibre.
圖1 Layout和Schematic示意圖
一般LVS的輸入件如下:
GDS(layout stream file):LVS工具通過GDS提取生成layout netlist,用于LVS比較。
Schematic netlist:用作 LVS 比較的source netlist。
Rule deck file:Rule deck file由執(zhí)行 LVS 所需的指令和文件組成。Rule deck file還包含一個layer definition,這對于提取很有用。
Equivalence file:由cell pairs組成,其中一個來自layout netlist,另一個來自schematic netlist。
LVS Flow
LVS 不是一個簡單地將版圖與電路原理圖進行比較的過程,它需要分兩步完成。第—步“抽取”,第二步“比較”。首先根據(jù) LVS 提取規(guī)則,EDA 工具從版圖中抽取出版圖所確定的網(wǎng)表文件; 然后將抽取出的網(wǎng)表文件與電路網(wǎng)表文件進行比較。需要說明的是:抽取的網(wǎng)表為晶體管級的 SPICE網(wǎng)表,而電路網(wǎng)表為門級的Verilog網(wǎng)表,該門級網(wǎng)表需要結(jié)合SPICE模型/CDL模型轉(zhuǎn)化為SPICE網(wǎng)表,才能與抽取的網(wǎng)表進行邏輯等效性比對。如果兩個網(wǎng)表的電路連接關(guān)系和器件完全一致則通過 LVS 檢査。反之,說明版圖存在與電路不一致的地方,需要進行檢査并加以處理或修改更正。
實現(xiàn)“抽取”的主要步驟是網(wǎng)表提取,它可以實現(xiàn)從版圖提取網(wǎng)表,包含連接關(guān)系提取和器件提取兩大模塊。連接關(guān)系提取模塊的主要功能是標識線網(wǎng)和為線網(wǎng)命名。標識線網(wǎng)是指把金屬、通孔、多晶等半導體劃分為不同的連通集合,從而生成不同的線網(wǎng)。器件提取模塊的主要功能是識別器件、計算器件屬性和輸出網(wǎng)表。
實現(xiàn)“比較“的步驟是網(wǎng)表比較,它包括網(wǎng)表預處理、版圖和原理圖網(wǎng)表比較。網(wǎng)表預處理的主要工作是串并聯(lián)結(jié)構(gòu)約簡,虛擬器件過濾,門電路識別等。在版圖設(shè)計中,寬長較大的 MOS 管通常會采用版圖折疊的方法將其等效于多個晶體管的并聯(lián),所以為避免在檢査器件數(shù)目和尺寸時發(fā)生錯誤,需要把版圖中折疊的、并聯(lián)或串聯(lián)的器件合并成一個再進行比較。而門電路結(jié)構(gòu)可以作為一個整體對待,以此減少需要處理的節(jié)點數(shù)量。
圖2 LVS過程示意圖
完成網(wǎng)表預處理后,則可以開始進行網(wǎng)表比較。網(wǎng)表比較本質(zhì)上是圖同構(gòu)問題。圖同構(gòu)比較的是拓撲結(jié)構(gòu),不受節(jié)點的物理位置、距離、大小影響。若版圖網(wǎng)表和原理圖網(wǎng)表同構(gòu),則版圖上的每一個節(jié)點都唯一對應(yīng)原理圖上的一個節(jié)點。
圖3 版圖和原理圖比較示意圖
Common LVS issues
LVS errors可以分為兩個大類:
Extraction Errors
?Text short and open
?Device extraction error
?Missing device terminal
?Extra device terminal
?Unused text
?Duplicate structure placement
Compare Errors
?Unmatched nets in the layout/schematic
?Unmatched devices in the layout/schematic
?Property errors
?Port swap errors
Open
具有相同layout text的net的shapes不相交或不接觸導致設(shè)計中有open(開路).。Opens 意味著設(shè)計中有floating connections. Floating connection會導致芯片的重大缺陷。所以發(fā)現(xiàn)和找到design中的open非常重要。在進入LVS環(huán)節(jié)前,在PnR工具中進行相關(guān)檢查很有幫助。
下面的示例顯示了 LVS 工具對設(shè)計中open的檢測。該工具生成的報告描述了設(shè)計中的open,如以下工具報告片段所示。
圖4 LVS report中的open
Error summary顯示檢測到的錯誤及其數(shù)量的總結(jié)。對于open,extractor 將open net提取為兩個不同的net,因此layout中的net數(shù)量大于schematic中的網(wǎng)絡(luò)數(shù)量,如報告所示。該報告顯示layout中的net數(shù)量以及相應(yīng)的schematic。schematic net BUF_net_152645,在layout中用兩個net
N_11965140和N_11989743表示(因為open成兩段了),如報告中所述。
此類問題可以通過connet屬于同一net的的layout shape來解決
圖5 layout中的open
Short
如果layout中具有l(wèi)ayout text的layer重疊或相交,將導致short(短路)。設(shè)計中short的存在會導致芯片failure。在進入LVS環(huán)節(jié)前,在PnR工具中進行相關(guān)檢查很有幫助。
下面的示例顯示了 LVS 工具對設(shè)計中short的檢測。該工具生成的報告描述了設(shè)計中的short,如以下工具報告片段所示。
當設(shè)計中發(fā)生short時,extractor會將short的net extract為單個net,因此schematic中的兩個net只有一個對應(yīng)的layout net,如報告中所述。N738 和 BUF_net_189972 是short net。
圖6 LVS report中的short
Short可以通過正確地重新繞線來解決。
圖7 layout中的Short
Internal shorts with Macros
在設(shè)計中,由于設(shè)計的復雜性或不正確的設(shè)置,PnR 工具可能會將macro的internal geometries(內(nèi)部走線)制造short的方式對net進行布線。如果macro的 LEF 中缺少routing blockage,也會發(fā)生這種情況。有時在manual custom routing時,會在自定義routing和macro的內(nèi)部routing之間創(chuàng)造成short。在 PnR 工具環(huán)境中不容易報告此類short violation。當我們將hard macro的 GDS 與頂層block merge時,short在 GDS 中是可見的。下面是一個片段,顯示了signal net如何錯誤地通過hard macro走線。由于hard macro的internal geometries的存在,因此該layer被block在macro上了。該net將導致macro的internal geometries short。
圖8 外部net和macro內(nèi)部走線short(PnR tool view)
下面是merge后的 GDS 的片段,清楚地顯示了short。
圖9 外部net和macro內(nèi)部走線short(GDS view)
生成的報告與上文所述的short報告類似。此示例的報告選段如下。
圖10 LVS report中的
PG short with signal net
當設(shè)計中有PG short時,很難識別。PG short可以是power net和ground net之間的short,也可以是power/ground net和signal net之間的short。當 PG net與相當長的signal net short時,并且由于 PG net連接到如此多的器件,很難精確定位short位置。
由于不正確的metal fill和manual routing changes,VSS net和其中一個signal net之間產(chǎn)生了short,如下圖所示。
圖11 錯誤的metal fill造成pg net和signal net的short
如果在merge database時缺少某些 spice 文件或 GDS 文件,則會顯示missing components錯誤。例如:如果您在設(shè)計中使用了單元 ABC,但未在 GDS list或spice list中定義該單元以用于 LVS 流程,則可能導致missing components錯誤。要么需要修改list,要么需要從 LVS 比較中排除 ABC 單元(這取決于單元的功能,在比較中只能排除physical-only單元)。
如果單元的 PG 引腳未使用 connect_pg_net 命令連接到任何power/ground net,則會導致大多數(shù)設(shè)計的器件mismatch和 LVS 錯誤。例如,即使標準單元 PG 引腳名稱為 VDD,工具也不會將其連接到設(shè)計的 VDD 網(wǎng)絡(luò)。我們需要使用下面的命令來連接這些引腳。
connect_pg_net -net VDD [get_pins -hierarchical */VDD]
結(jié)論
LVS 是驗證網(wǎng)表物理實現(xiàn)正確性的有用技術(shù)。open、short、missing components和Missing global net connect是可能影響設(shè)計功能的潛在問題,并且可能無法在物理設(shè)計早期檢測到,因此 LVS 有助于在設(shè)計中報告這些問題。一旦物理驗證工具報告了這些問題,就可以通過本文中討論的各種技術(shù)來解決。