VLSI的設(shè)計(jì)周期分為兩個(gè)階段:前端和后端。前端涵蓋架構(gòu)規(guī)范、編碼和驗(yàn)證,而后端涉及目標(biāo)制程技術(shù)節(jié)點(diǎn)上設(shè)計(jì)的物理實(shí)現(xiàn)。
本文主要介紹LEC(邏輯等效檢查)在ASIC設(shè)計(jì)周期中的重要性,如何檢查它以及當(dāng)LEC失敗時(shí)該怎么做。我們將探索一個(gè)測試用例,看看如果LEC失敗會(huì)發(fā)生什么,如何查明問題以及采取哪些措施來解決問題。
LEC的重要性
ASIC在流片之前,要經(jīng)歷一系列設(shè)計(jì)步驟,如綜合、布局布線、簽核(sign-offs)、ECO(工程變更單)以及眾多優(yōu)化過程。在每個(gè)階段,我們都需要確保邏輯功能完好無損,并且不會(huì)因?yàn)槿魏巫詣?dòng)或手動(dòng)更改而中斷。如果功能在整個(gè)過程中的任何時(shí)刻發(fā)生變化,整個(gè)芯片就變得毫無用處。這就是為什么LEC是整個(gè)芯片設(shè)計(jì)過程中最重要的原因之一。
隨著制程技術(shù)節(jié)點(diǎn)的縮小和復(fù)雜性的增加,邏輯等效檢查在確保功能的正確性方面起著重要作用。
LEC包括三個(gè)步驟,如下圖所示:設(shè)置模式,映射模式和比較模式。
圖1:邏輯等效檢查流程圖
有各種用于執(zhí)行LEC的EDA工具,例如Synopsys Formality和Cadence Conformal。這里,我們將Conformal工具作為參考,以解釋LEC的重要性。
邏輯等效檢查的步驟
讓我們仔細(xì)看看邏輯等價(jià)檢查的各個(gè)步驟:
1)設(shè)置
在設(shè)置模式下,Conformal工具讀取兩個(gè)設(shè)計(jì)。我們指定設(shè)計(jì)類型,即Golden(綜合網(wǎng)表)和修訂版(通常,修改后的設(shè)計(jì)是Conformal工具與Golden設(shè)計(jì)相比的修改或后處理設(shè)計(jì))。對(duì)于LEC的執(zhí)行,Conformal工具需要三種類型的文件。
1. .lec文件指導(dǎo)Conformal工具以系統(tǒng)方式執(zhí)行不同的命令。
2. .scan_const文件提供與掃描相關(guān)的約束,例如我們是否要忽略此文件中定義的某些掃描連接/ serdes輸入/輸出引腳。
3. .stdlib文件包含標(biāo)準(zhǔn)單元庫的指針。
在從設(shè)置模式到LEC模式的過渡中,Conformal工具展平并模擬Golden和修改后的設(shè)計(jì)并自動(dòng)映射關(guān)鍵點(diǎn)。關(guān)鍵點(diǎn)定義為:
主要輸入
主要產(chǎn)出
D Flip-Flops
D鎖存
TIE-E門(錯(cuò)誤門,在修訂設(shè)計(jì)中存在x賦值時(shí)創(chuàng)建)
TIE-Z門(高阻抗或浮動(dòng)信號(hào))
黑匣子
2)映射
在等效性檢查的第二階段,Conformal工具自動(dòng)映射關(guān)鍵點(diǎn)并進(jìn)行比較。比較完成后,它會(huì)確定差異。Conformal工具使用兩種基于名稱的方法和一種無名方法來映射關(guān)鍵點(diǎn)。當(dāng)對(duì)邏輯進(jìn)行微小更改時(shí),基于名稱的映射對(duì)于gate-to-gate比較非常有用。
相反,當(dāng)Conformal工具必須使用完全不同的名稱映射設(shè)計(jì)時(shí),無名映射方法很有用。默認(rèn)情況下,它會(huì)在退出設(shè)置模式時(shí)使用名稱優(yōu)先映射方法自動(dòng)映射關(guān)鍵點(diǎn)。Conformal工具未映射的關(guān)鍵點(diǎn)被歸類為未映射的點(diǎn)。
未映射的點(diǎn)分為三類:
額外未映射的點(diǎn)是僅在其中一個(gè)設(shè)計(jì)(Golden或Revised)中出現(xiàn)的關(guān)鍵點(diǎn)。
無法到達(dá)的未映射點(diǎn)是沒有可觀察點(diǎn)的關(guān)鍵點(diǎn),例如主輸出。
未映射的未映射點(diǎn)是可到達(dá)的關(guān)鍵點(diǎn),但在相應(yīng)設(shè)計(jì)的邏輯扇入錐中沒有對(duì)應(yīng)點(diǎn)。
3)比較
在Conformal工具映射關(guān)鍵點(diǎn)之后,驗(yàn)證的下一步是比較。比較檢查關(guān)鍵點(diǎn)以確定它們是等效還是非等效。比較確定比較點(diǎn)是否:
等效
非等效
逆等效(Inverted-equivalent)
中止
在中止比較點(diǎn)的情況下,我們可以將比較工作更改為更高的設(shè)置。因此,Conformal工具可以僅在中止的比較點(diǎn)上繼續(xù)比較。Conformal工具顯示用于比較的完整運(yùn)行時(shí)間和總內(nèi)存。
LEC完成后會(huì)生成多個(gè)報(bào)告:
非等效報(bào)告
未映射的報(bào)告
Blockbox報(bào)告
Abort.rpt
Unreachable.rpt
Floating.rpt
Mapped.rpt
在簽核或流片處理階段,時(shí)間表太緊,無法處理具有一些嚴(yán)重邏輯故障的塊。有時(shí),在進(jìn)行手動(dòng)修復(fù)或定時(shí)ECO時(shí)會(huì)破壞邏輯連接。在流片階段,邏輯故障的可能性很高,物理設(shè)計(jì)工程師沒有太多時(shí)間來關(guān)閉塊。此外,當(dāng)您獲得功能ECO并進(jìn)行手動(dòng)連接時(shí),破壞邏輯連接的可能性很高。讓我們看一個(gè)塊中LEC失敗的實(shí)際例子,看看它是如何被解決的。
首先,如果LEC在所有級(jí)別失敗,請(qǐng)不要驚慌,如前所述。當(dāng)LEC失敗時(shí),第一步是檢查“non-equivalent.rpt”文件。由于連接斷開,可能會(huì)在“non-equivalent.rpt”文件中報(bào)告更多的單元名稱。
這背后的原因是許多路徑會(huì)經(jīng)歷一個(gè)失敗/斷開的連接 - 因此它的所有端點(diǎn)(比較點(diǎn)) - 被報(bào)告為“非等效”。
第1步:非等效報(bào)告
第一步是檢查非等效文件。下面的示例非等效文件顯示了LEC中失敗的152個(gè)比較點(diǎn)。
這152個(gè)非等效觸發(fā)器是多位觸發(fā)器。在多位觸發(fā)器中,我們合并兩個(gè)觸發(fā)器以形成具有多個(gè)輸入和輸出引腳的單個(gè)觸發(fā)器。例如,如果我們將兩個(gè)單比特觸發(fā)器合并為一個(gè)多比特觸發(fā)器,它將以D0,D1作為輸入引腳,Q0,Q1作為輸出引腳。
由于是多位觸發(fā)器,報(bào)告顯示152個(gè)觸發(fā)器計(jì)數(shù)為非等效,但實(shí)際上只有72個(gè)是非等效的。由于這些是兩位觸發(fā)器,因此總計(jì)數(shù)為72x2 = 144個(gè)觸發(fā)器。剩下的是單比特觸發(fā)器。
第2步:未映射的報(bào)告
下一步是檢查未映射的文件。此文件顯示邏輯連接斷開的未映射網(wǎng)絡(luò)。我們需要跟蹤網(wǎng)絡(luò)并找出這些網(wǎng)絡(luò)缺失的連接。
在上圖中,我們可以看到在設(shè)計(jì)中沒有映射一個(gè)網(wǎng)絡(luò)(BUFT_net_362908)。從圖2中可以看出,一旦我們檢查LEC故障數(shù)據(jù)庫中的這個(gè)網(wǎng)絡(luò)(BUFT_net_362908)連接,我們看到它只連接到其他單元的輸入引腳(* _364714 / A),但是另一個(gè)連接(由于無意的單元缺失,使得該網(wǎng)絡(luò)缺失了。
下圖中突出顯示的網(wǎng)絡(luò)為unmapped.rpt文件中報(bào)告的網(wǎng)絡(luò)。
圖2:未映射報(bào)告中的網(wǎng)絡(luò)
這里,我們可以看到LEC失敗設(shè)計(jì)中報(bào)告網(wǎng)絡(luò)的連接。
當(dāng)我們在未映射的文件中報(bào)告網(wǎng)絡(luò)扇出(BUFT_net_362908)時(shí),它在LEC傳遞數(shù)據(jù)庫中連接到152個(gè)觸發(fā)器。
而LEC失敗數(shù)據(jù)庫中非等效文件中報(bào)告的152個(gè)觸發(fā)器與LEC通過數(shù)據(jù)庫中報(bào)告的網(wǎng)絡(luò)扇出(BUFT_net_362908)相同。
現(xiàn)在,我們需要在之前的LEC傳遞數(shù)據(jù)庫中找到該網(wǎng)絡(luò)的實(shí)際網(wǎng)絡(luò)連接。在檢查時(shí),我們可以很容易地注意到報(bào)告的網(wǎng)絡(luò)連接到LEC故障數(shù)據(jù)庫中缺少的一個(gè)逆變器。
為了找到丟失的單元格,我們必須在之前的LEC傳遞數(shù)據(jù)庫中回溯跟蹤此網(wǎng)絡(luò)并檢查實(shí)際連接。
不要在未映射和非等效報(bào)告之間混淆。在未映射的報(bào)告中,我們只看到未驅(qū)動(dòng)輸入引腳的浮動(dòng)網(wǎng)絡(luò),而在非等效報(bào)告中,我們看到所有單元格都是這個(gè)丟失單元格的扇出。
第3步:修復(fù)LEC問題
在找到LEC故障的原因后,我們必須插入一個(gè)丟失了的逆變器,并在LEC故障數(shù)據(jù)庫中重做該逆變器的輸入/輸出邏輯連接。圖3顯示了新增的逆變器及其輸入輸出連接。現(xiàn)在,如果我們重新運(yùn)行LEC,它將通過,非等效報(bào)告將顯示零非等效點(diǎn)。
圖3:修復(fù)丟失的連接
LEC失敗的常見區(qū)域
如果在設(shè)計(jì)中使用多位觸發(fā)器,則將出現(xiàn)映射golden網(wǎng)表與修訂網(wǎng)表的問題,因?yàn)橛|發(fā)器名稱將在修訂后的網(wǎng)表中更改。
在修訂的網(wǎng)表中克隆后,時(shí)鐘門控單元未被映射。
在定時(shí)修復(fù)期間或在執(zhí)行手動(dòng)ECO時(shí),邏輯連接會(huì)中斷。
功能ECO實(shí)施。
缺少DFT約束。
LEC的益處
減少對(duì)門級(jí)仿真的依賴。
提高了對(duì)合成和布局布線的新工具修訂的信心。
在不編寫測試模式的情況下等效性幾近完美。
降低后端進(jìn)程丟失的漏洞風(fēng)險(xiǎn)。
結(jié)論
本文介紹了邏輯等效檢查,及其流程設(shè)置、調(diào)試步驟和修復(fù)LEC的解決方案。使用真實(shí)場景,還展示了LEC完成后生成的報(bào)告,并提出了一種簡單的方法來找出LEC失敗的根本原因。
IC設(shè)計(jì)團(tuán)隊(duì)遇到LEC失敗問題并不罕見,采取本文所述的步驟將幫助您解決與LEC相關(guān)的問題。
-
IC設(shè)計(jì)
+關(guān)注
關(guān)注
38文章
1298瀏覽量
104125 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7586瀏覽量
89007 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61255
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論