姜 琦,史敬端,劉 健,程金海
JIANG Qi1,SHI Jing-duan2,LIU Jian2,CHENG Jin-hai2
(1. 天津天鋼聯(lián)合特鋼有限公司 機(jī)動(dòng)處,天津 301500;2. 天津電氣傳動(dòng)設(shè)計(jì)研究所 市場(chǎng)部,天津 300180)
隨著超大規(guī)模數(shù)字集成電路功能的日益完善和集成度的不斷提高,各個(gè)領(lǐng)域?qū)ζ涔δ茉O(shè)計(jì)完整性、可靠性要求也變得越來越高。因此,對(duì)數(shù)字集成電路的故障檢測(cè)、診斷方法、故障定位以及可測(cè)性設(shè)計(jì)技術(shù)進(jìn)行全面深入的研究具有重要的現(xiàn)實(shí)意義,這也是確保超大規(guī)模數(shù)字集成電路器件在使用中正常安全工作的重要手段。超大規(guī)模數(shù)字集成電路自身具備的高集成度特性增加了對(duì)其進(jìn)行測(cè)試和驗(yàn)證的難度。在測(cè)試和驗(yàn)證過程中,測(cè)試向量的生成又是最主要和最復(fù)雜的部分,且對(duì)測(cè)試效率和故障覆蓋率的要求也越來越高。
目前的數(shù)字集成電路設(shè)計(jì)工具可以使設(shè)計(jì)師將主要精力集中在算法級(jí)和功能級(jí)設(shè)計(jì),綜合工具自動(dòng)對(duì)功能設(shè)計(jì)進(jìn)行RTL和門級(jí)綜合,這就對(duì)數(shù)字芯片傳統(tǒng)門級(jí)測(cè)試和驗(yàn)證帶來了極大挑戰(zhàn)[1]:由于設(shè)計(jì)師使用綜合工具自動(dòng)布局布線,因此設(shè)計(jì)師不清楚電路設(shè)計(jì)結(jié)構(gòu),因而無法進(jìn)行結(jié)構(gòu)級(jí)測(cè)試;另一方面,由于電路設(shè)計(jì)規(guī)模不斷增大,如果使用門級(jí)測(cè)試驗(yàn)證方法,則需要占用大量的時(shí)間,有時(shí)甚至無法進(jìn)行。
數(shù)字集成電路的驗(yàn)證測(cè)試是實(shí)現(xiàn)“從設(shè)計(jì)到測(cè)試無縫連接”的關(guān)鍵。在深亞微米制造工藝下,芯片驗(yàn)證測(cè)試的重要性尤為突出。其主要功能是驗(yàn)證設(shè)計(jì)和測(cè)試程序的正確性,確定芯片是否符合所有設(shè)計(jì)規(guī)范[2]。從測(cè)試驗(yàn)證角度來說,電路描述的層次可以分為行為級(jí)描述、功能級(jí)描述、結(jié)構(gòu)級(jí)描述、開關(guān)級(jí)描述以及幾何級(jí)描述[3]。高級(jí)驗(yàn)證測(cè)試方法指的是任何高于門級(jí)的驗(yàn)證測(cè)試方法[4]。高級(jí)驗(yàn)證測(cè)試的目的在于檢驗(yàn)數(shù)字電路系統(tǒng)是否達(dá)到初始說明書上的要求,發(fā)現(xiàn)并改正其中的設(shè)計(jì)缺陷。在這個(gè)過程中,應(yīng)該有一個(gè)方法來衡量驗(yàn)證的完整性,這個(gè)方法就是建立覆蓋模型。
覆蓋模型一般包括覆蓋空間和覆蓋率度量。覆蓋空間引入及分類的目的在于將聲明、執(zhí)行、內(nèi)部結(jié)構(gòu)以及外部調(diào)用驗(yàn)證相互補(bǔ)充完整,將聲明中指出的和未指出的均實(shí)現(xiàn)驗(yàn)證。在實(shí)現(xiàn)中,覆蓋空間中的聲明、執(zhí)行、內(nèi)部結(jié)構(gòu)以及外部調(diào)用驗(yàn)證相互補(bǔ)充完整性的檢查往往通過代碼覆蓋率報(bào)告完成。由于器件的全部功能由其輸入、輸出要求定義,所以一個(gè)捕捉這些要求的覆蓋空間可視為一個(gè)覆蓋模型的重要組成部分,這一部分往往通過功能驗(yàn)證和斷言驗(yàn)證來實(shí)現(xiàn)。覆蓋率度量包括四方面:隱含度量、顯性度量、聲明度量和執(zhí)行度量。
一個(gè)完整的覆蓋模型主要包括三方面內(nèi)容,即代碼覆蓋、斷言驗(yàn)證和功能覆蓋。概括來說,建立覆蓋模型包括以下步驟:通過分析功能設(shè)計(jì)說明,記錄所有設(shè)計(jì)會(huì)用到的操作狀態(tài),從中提取模型參數(shù);捕捉所有操作狀態(tài)的參數(shù)值,繪制成表;根據(jù)各參數(shù)所有可能狀態(tài)定義所有節(jié)點(diǎn),即每種組合為一個(gè)節(jié)點(diǎn)。設(shè)計(jì)并執(zhí)行一個(gè)覆蓋模型分為兩部分內(nèi)容,一部分是頂層設(shè)計(jì),另一部分為細(xì)節(jié)設(shè)計(jì)。頂層設(shè)計(jì)關(guān)注器件本身的模型描述、定義的屬性以及屬性間的關(guān)系。頂層設(shè)計(jì)包括:用語言描述將要建立的模型、確定模型應(yīng)包括的屬性以及確定屬性間的關(guān)系。細(xì)節(jié)設(shè)計(jì)關(guān)注如何用驗(yàn)證環(huán)境描述覆蓋模型設(shè)計(jì)。細(xì)節(jié)設(shè)計(jì)包括:哪些屬性必須被采樣、在驗(yàn)證環(huán)境的何處進(jìn)行采樣以及何時(shí)進(jìn)行采樣并將其關(guān)聯(lián)起來。
功能說明即系統(tǒng)的使用說明,是建立覆蓋模型的第一步,其用于描述系統(tǒng)的操作狀態(tài)及參數(shù)提取。
驗(yàn)證的交互系統(tǒng)包括2個(gè)控制設(shè)備和2個(gè)從屬設(shè)備??刂圃O(shè)備和從屬設(shè)備之間通過一個(gè)連接設(shè)備相連。同一時(shí)刻,只能有一個(gè)控制設(shè)備與一個(gè)從屬設(shè)備交互。任何控制設(shè)備都可以和任何一個(gè)從屬設(shè)備交互。事務(wù)可以是一個(gè)讀操作或?qū)懖僮?。連接設(shè)備用來決定哪個(gè)控制設(shè)備管理事務(wù),同時(shí)建立指定控制設(shè)備和從屬設(shè)備間的連接及成功處理該事務(wù)。
2.1.1 控制設(shè)備
控制設(shè)備可執(zhí)行讀和寫操作,支持在交互系統(tǒng)中控制兩個(gè)從屬設(shè)備。當(dāng)控制設(shè)備收到指令“bg”,就準(zhǔn)備開始一個(gè)事物,發(fā)出一個(gè)低電平有效的脈沖到信號(hào)“ask”上,然后等待一個(gè)“gnt”信號(hào)?!癵nt”信號(hào)是一個(gè)低電平有效信號(hào)。如果在2~5個(gè)時(shí)鐘周期內(nèi)沒有等到“gnt”信號(hào),稍后控制設(shè)備將重試這個(gè)過程。如果在2~5個(gè)時(shí)鐘周期內(nèi)獲得了“gnt”信號(hào),控制設(shè)備將立即斷言信號(hào)“avail”,用來確認(rèn)“gnt”信號(hào)的到達(dá)(“avail”信號(hào)是低電平有效信號(hào))。
2.1.2 連接設(shè)備
連接設(shè)備負(fù)責(zé)兩個(gè)重要任務(wù):1)決定哪個(gè)控制設(shè)備管理與從屬設(shè)備之間的事務(wù)。2)建立一個(gè)特定的控制設(shè)備和一個(gè)從屬設(shè)備之間的連接。在一個(gè)給定的時(shí)間,控制設(shè)備可以通過斷言各自的“ask”信號(hào)來請(qǐng)求執(zhí)行事務(wù)。
控制設(shè)備選定要與其建立事務(wù)的從屬設(shè)備后,連接設(shè)備將提供指定從屬設(shè)備的信息。由于兩個(gè)控制設(shè)備能與任何一個(gè)從屬設(shè)備建立事務(wù),因此連接設(shè)備必須監(jiān)控兩個(gè)控制設(shè)備的“sel”信號(hào)(即“sel1”和“sel2”)。在任何給定時(shí)間,要么兩個(gè)“sel”信號(hào)都處于三態(tài),要么其中一個(gè)處于三態(tài)。如果兩個(gè)“sel”都是三態(tài),那么在此時(shí)沒有事務(wù)請(qǐng)求。如果有一個(gè)事務(wù)請(qǐng)求,那么其中一個(gè)“sel”信號(hào)的值為0或1,具體的值依賴于選擇的目標(biāo)設(shè)備。如果連接設(shè)備的輸出信號(hào)“sel”(該信號(hào)為兩位)的最高位置為高,則從屬設(shè)備1被選中,如果最低位置為高,表示從屬設(shè)備0被選中。
模塊級(jí)斷言驗(yàn)證是實(shí)現(xiàn)覆蓋模型的第二步,即捕捉系統(tǒng)各個(gè)屬性、屬性間的關(guān)系以及所有操作狀態(tài)的參數(shù)值,從而得到驗(yàn)證代碼。
2.2.1 控制設(shè)備驗(yàn)證
根據(jù)控制設(shè)備的功能描述,可以分析出斷言驗(yàn)證。每個(gè)控制設(shè)備只有一個(gè)“ask”、“gnt”、“avail”信號(hào),是控制設(shè)備的單獨(dú)信號(hào),因此在編程構(gòu)建系統(tǒng)時(shí)需調(diào)用兩個(gè)實(shí)例。一旦控制設(shè)備有一個(gè)請(qǐng)求信號(hào),啟動(dòng)信號(hào)要在2~5個(gè)時(shí)鐘周期內(nèi)到達(dá),此種情況下,如果信號(hào)“sel”為高,則在同一時(shí)鐘周期,控制設(shè)備應(yīng)斷言信號(hào)“avail”。三個(gè)時(shí)鐘周期后,從屬設(shè)備2應(yīng)該通過斷言信號(hào)“ready”確認(rèn)該選擇。
仿真結(jié)果如圖1所示。
斷言驗(yàn)證結(jié)果分析如圖2所示。
通過波形及結(jié)果分析可知,所有斷言均有效,其中成功兩次,失敗零次。
2.2.2 連接設(shè)備驗(yàn)證
每個(gè)控制設(shè)備中有唯一的“avail”信號(hào),其為連接設(shè)備的輸入。如果控制設(shè)備處于激活狀態(tài),其將信號(hào)“avail”置為低,因此,把兩個(gè)“avail”信號(hào)進(jìn)行“與”操作,如果結(jié)果為低,則可知總線狀態(tài)為激活;如果結(jié)果為低,則沒有控制設(shè)備處于激活狀態(tài)。
圖1 控制設(shè)備仿真波形
圖2 控制設(shè)備斷言驗(yàn)證結(jié)果分析
每個(gè)控制設(shè)備有唯一的一個(gè)“ask”信號(hào),用來請(qǐng)求總線,而連接設(shè)備提高唯一的“gnt”信號(hào)。通過將所有的“ask”信號(hào)進(jìn)行“或”操作來判斷是否有控制設(shè)備存在有效請(qǐng)求;同理,將“gnt”信號(hào)進(jìn)行“或”操作,可知一個(gè)控制設(shè)備的請(qǐng)求獲得了許可。
仿真結(jié)果如圖3所示。
斷言驗(yàn)證結(jié)果分析如圖4所示。
通過波形及結(jié)果分析可知,所有斷言均有效,其中成功四十三次,失敗一次。
當(dāng)對(duì)系統(tǒng)的各個(gè)模塊進(jìn)行驗(yàn)證后,還要對(duì)系統(tǒng)的連接和協(xié)議進(jìn)行驗(yàn)證,在任何一個(gè)給定的時(shí)間點(diǎn),只能斷言一個(gè)“ready”信號(hào),在任何給定的時(shí)鐘周期,只能激活一個(gè)“sel”信號(hào),其他“sel”信號(hào)應(yīng)該是三態(tài),當(dāng)一個(gè)控制設(shè)備發(fā)出一個(gè)正確的請(qǐng)求后,在2~5個(gè)時(shí)鐘周期內(nèi),應(yīng)該實(shí)現(xiàn)一個(gè)正確的“gnt”,在任何給定時(shí)鐘周期,如果一個(gè)控制設(shè)備的“avail”信號(hào)被斷言,則3個(gè)時(shí)鐘周期后,相關(guān)的“ready”信號(hào)應(yīng)該被斷言,在任何給定的時(shí)鐘,如果控制設(shè)備的“avail”信號(hào)被解除斷言,則兩個(gè)時(shí)鐘周期后,相關(guān)的“ready”信號(hào)應(yīng)該被解除斷言,在任何給定的時(shí)鐘,如果沒有有效的事務(wù),則總線“data”和“datao”應(yīng)該為三態(tài)。
仿真結(jié)果如圖5所示。
斷言驗(yàn)證結(jié)果分析如圖6所示。
通過波形及結(jié)果分析可知,所有斷言均有效,其中成功一百九十次,失敗零次。
模塊級(jí)驗(yàn)證和系統(tǒng)級(jí)驗(yàn)證檢驗(yàn)的是任何可能存在的違反指定的功能要求的情況,從而提高系統(tǒng)功能的可信等級(jí)。而從測(cè)試平臺(tái)角度考慮,在模擬中需要覆蓋系統(tǒng)功能的所有可能場(chǎng)景,因此在模擬中覆蓋的情景應(yīng)成為測(cè)試計(jì)劃的一部分。
圖3 連接設(shè)備仿真波形
圖4 連接設(shè)備斷言驗(yàn)證結(jié)果分析
圖5 系統(tǒng)級(jí)仿真波形
圖6 系統(tǒng)級(jí)斷言驗(yàn)證結(jié)果分析
檢驗(yàn)驗(yàn)證的效果依然依賴于輸入激勵(lì),如果輸入向量不能促使系統(tǒng)執(zhí)行某些情景,那么它們就不會(huì)被測(cè)試到。許多測(cè)試平臺(tái)采用隨機(jī)技術(shù)產(chǎn)生模擬的輸入激勵(lì)。一個(gè)非常通用的方法是運(yùn)行許多預(yù)先定義的事務(wù),然后測(cè)量對(duì)某些情景集合的覆蓋。通過約束控制輸入激勵(lì)的產(chǎn)生,會(huì)更加有效地覆蓋到各種場(chǎng)景。交互系統(tǒng)中有許多重要的功能,應(yīng)作為功能驗(yàn)證的一部分被覆蓋到。
請(qǐng)求場(chǎng)景:
在任何給定的時(shí)間,有兩個(gè)控制設(shè)備可以請(qǐng)求訪問,即控制設(shè)備的“ask”信號(hào)有四種可能的組合,如表1所示:
圖7 請(qǐng)求狀態(tài)仿真波形
表1 控制設(shè)備請(qǐng)求場(chǎng)景
圖8 請(qǐng)求狀態(tài)斷言驗(yàn)證結(jié)果分析
圖9 系統(tǒng)仿真驗(yàn)證波形
其中,“0”表示控制設(shè)備正在請(qǐng)求總線。
仿真結(jié)果如圖7所示。
斷言驗(yàn)證結(jié)果分析如圖8所示。
通過波形及結(jié)果分析可知,所有斷言均有效,其中成功四十次,失敗零次。
通過系統(tǒng)驗(yàn)證,發(fā)現(xiàn)在驗(yàn)證過程中,雖然所有斷言均有效,但許多斷言未被覆蓋到,同時(shí)有一處斷言失敗,即屬性check_avail_gnt(圖9中向下箭頭處)。該屬性斷言當(dāng)控制設(shè)備完成該任務(wù)時(shí),需解除對(duì)信號(hào)“avail”的斷言,連接設(shè)備在下一時(shí)鐘周期解除對(duì)“gnt”信號(hào)的斷言。
此斷言失敗表明,當(dāng)任務(wù)完成后,為解除信號(hào)“avail”的斷言,從斷言失敗處到仿真結(jié)束,連接設(shè)備的狀態(tài)始終為控制設(shè)備2等待,同時(shí)結(jié)合代碼執(zhí)行率報(bào)告發(fā)現(xiàn),在斷言失敗處,連接設(shè)備模塊的程序?yàn)樗姥h(huán)狀態(tài),由此發(fā)現(xiàn)該系統(tǒng)的連接模塊設(shè)計(jì)存在缺陷。在交互系統(tǒng)驗(yàn)證的例子中,系統(tǒng)功能驗(yàn)證是通過斷言的方式來實(shí)現(xiàn)的,將失敗的斷言與其相應(yīng)處的代碼執(zhí)行報(bào)告結(jié)合分析,可以提高檢測(cè)到系統(tǒng)功能缺陷的效率。
本文通過實(shí)例介紹了高級(jí)驗(yàn)證測(cè)試方法的概念、作用以及應(yīng)用范圍,并通過SystemVerilog驗(yàn)證語言結(jié)合具體實(shí)例在QuestaSim仿真軟件上實(shí)現(xiàn)了系統(tǒng)驗(yàn)證過程。通過試驗(yàn)可以看出,構(gòu)建覆蓋模型測(cè)試平臺(tái)可以提高驗(yàn)證測(cè)試工作的效率、完備性、可靠性以及易控性。但高級(jí)驗(yàn)證測(cè)試方法也存在不能精確預(yù)見門級(jí)故障覆蓋率的問題,因此未來的高級(jí)驗(yàn)證測(cè)試技術(shù)還可以在可測(cè)性設(shè)計(jì)和層次化測(cè)試兩方面進(jìn)行深入研究,使覆蓋模型在具有代表性的同時(shí)對(duì)底層故障具有較高的覆蓋率。
[1] Riesgo T,Uceda J,Aldana F,High-level testing for digital VLSI-a survey[A]. Proc Int Conf Industrial Electronics,Control,and Instrumentation[C]. Hawaii,USA. 1993. 1.402-407.
[2] M. L. Bushnell,V. D. Agrawal,“Essentials of Electronic Testing for Digital,Memory and Mixed-Signal VLSI Circuits”,Kluwer Academic Publishers,2000.
[3] Jha N K,Gupta S. Testing of digital systems[M].Cambridge University Press,2003.
[4] Kapur R. High level ATPG is important and is on its way[A]. Proc Int Test Conf[C]. Atlantic City,NJ,USA.1999.
[5] Corno F,Reorda M S,Squillero G,RT-level ITC’s99 benchmarks and first ATPG result[J]. IEEE Design & Test of Computers,2000,17(3).
[6] 成本茂,王紅,刑建輝,楊士元,數(shù)字電路的高層測(cè)試技術(shù)及發(fā)展趨勢(shì)[J]. 微電子學(xué),2006.
[7] Andrew Piziali,“Functional Verification Coverage Measurement and Analysis”,Kluwer Academic Publishers,2004.