各種流行驗(yàn)證技術(shù)的特性比較和選擇標(biāo)準(zhǔn)
抽象級(jí)越高,設(shè)計(jì)就越容易;同理,抽象級(jí)越高,就越容易犯較大的錯(cuò)誤。如果產(chǎn)生架構(gòu)缺陷,就有可能損害整個(gè)芯片,這與發(fā)生在邏輯門連接表級(jí)上的導(dǎo)線誤連接是截然不同的(后者可通過(guò)重新連線的方法得到修復(fù))。
以Verilog為例,它為設(shè)計(jì)者提供了一個(gè)較為簡(jiǎn)易的接口,以便在一個(gè)相當(dāng)抽象的等級(jí)上進(jìn)行設(shè)計(jì)。然而,如果設(shè)計(jì)者并不知曉在多個(gè)設(shè)計(jì)周期中獲得的語(yǔ)言的細(xì)微差別,那么就非常容易犯錯(cuò)。許多論文重點(diǎn)闡述了Verilog誤用的不良后果。當(dāng)設(shè)計(jì)曾經(jīng)是瓶頸時(shí),Verilog獨(dú)立地使設(shè)計(jì)生產(chǎn)率取得了指數(shù)性的提高(如采用原理圖捕獲),并首先推進(jìn)了復(fù)雜芯片的開(kāi)發(fā)!在眾多的驗(yàn)證技術(shù)和語(yǔ)言、檢驗(yàn)成為瓶頸的今天,相同的爭(zhēng)議仍然存在。
驗(yàn)證瓶頸
EDA行業(yè)通過(guò)引入工具來(lái)幫助提升設(shè)計(jì)生產(chǎn)率,進(jìn)而達(dá)到縮短產(chǎn)品時(shí)間的目的,并最終實(shí)現(xiàn)設(shè)計(jì)時(shí)間的縮減。設(shè)計(jì)時(shí)間與硅片復(fù)雜性之間存在某種函數(shù)關(guān)系。硅片復(fù)雜性指的是工藝精細(xì)度調(diào)整以及新型材料或新型架構(gòu)的引入對(duì)器件互連的影響。在硅片結(jié)構(gòu)中擁有復(fù)雜性的能力將導(dǎo)致系統(tǒng)復(fù)雜性的形成(由于特征尺寸的縮小以及消費(fèi)者對(duì)增加功能的需求而在相同的面積之內(nèi)壓縮進(jìn)更多晶體管的能力)。
隨著設(shè)計(jì)方案構(gòu)筑過(guò)程中所集成的晶體管數(shù)量的指數(shù)性增加,計(jì)算時(shí)間或工程師數(shù)量的線性增加已不足以縮短設(shè)計(jì)時(shí)間。系統(tǒng)復(fù)雜性繼續(xù)按照摩爾定律增加,而功能復(fù)雜性(一個(gè)系統(tǒng)所具有的不同狀態(tài)的數(shù)量)的增長(zhǎng)速度則更加迅猛。為解決這一問(wèn)題,EDA行業(yè)提出了通過(guò)自動(dòng)化來(lái)實(shí)現(xiàn)“設(shè)計(jì)抽象”(Design Abstraction)的概念。從能夠在多個(gè)電路層上捕獲設(shè)計(jì)的原理圖捕獲工具到基于語(yǔ)言的解決方案等均已面市。
這種追隨形勢(shì)需要的設(shè)計(jì)手法仍然是適當(dāng)?shù)?。EDA界即將推出并給予支持的最新語(yǔ)言是SystemC和SystemVerilog,它們能夠解決一些由目前所采用的技術(shù)和工藝造成的系統(tǒng)復(fù)雜性問(wèn)題。我們可以說(shuō),就目前的技術(shù)工藝而言,設(shè)計(jì)復(fù)雜性已經(jīng)得到了很好的理解,而且,設(shè)計(jì)瓶頸也因?yàn)椴捎肊DA工具所實(shí)現(xiàn)的生產(chǎn)率提高而在一定程度上得到了克服。
設(shè)計(jì)生產(chǎn)率的提升速度將繼續(xù)低于復(fù)雜性的增速,此時(shí)與之相關(guān)的瓶頸已并非設(shè)計(jì)時(shí)間,而是驗(yàn)證時(shí)間
由于下列原因所導(dǎo)致的設(shè)計(jì)抽象級(jí)的提高是形成驗(yàn)證瓶頸的罪魁禍?zhǔn)字弧?
在一個(gè)較高的抽象級(jí)上進(jìn)行設(shè)計(jì)使得我們能夠輕松地構(gòu)筑高度復(fù)雜的功能。設(shè)計(jì)復(fù)雜性的這種增加接著會(huì)導(dǎo)致驗(yàn)證工作量幾乎翻番(如果設(shè)計(jì)者考慮增加鎖存器和邏輯門的數(shù)量,這就等于功能復(fù)雜性將加倍,而且其驗(yàn)證范圍也將因此翻番)。
在設(shè)計(jì)、變換以及至終端產(chǎn)品的最終映射中采用較高的抽象級(jí)總會(huì)存在信息損失和解釋錯(cuò)誤的情況。比如,采用HDL級(jí)設(shè)計(jì)并將之變換為邏輯門級(jí)(映射至某一特定技術(shù))的綜合過(guò)程;在這一級(jí)上需要進(jìn)行驗(yàn)證,以保證所實(shí)施的變換正確無(wú)誤,而且設(shè)計(jì)內(nèi)容沒(méi)有丟失。提高抽象級(jí)還會(huì)帶來(lái)代碼解釋方面的問(wèn)題,代碼解釋是用來(lái)在仿真過(guò)程中對(duì)設(shè)計(jì)進(jìn)行描述的,用于確保所編寫的代碼如實(shí)地反映了功能規(guī)范。
其他影響驗(yàn)證問(wèn)題的因素包括:
由于當(dāng)今設(shè)計(jì)的異類特性(比如硬件-軟件、模擬-數(shù)字的共存等)所導(dǎo)致的功能復(fù)雜性的增加;
對(duì)較高的系統(tǒng)可靠性的要求迫使驗(yàn)證工作必須確保芯片級(jí)功能可在系統(tǒng)環(huán)境中圓滿地執(zhí)行,尤其是當(dāng)某個(gè)芯片級(jí)缺陷具有多重影響時(shí)更應(yīng)如此。
相關(guān)統(tǒng)計(jì)結(jié)果表明:驗(yàn)證問(wèn)題是客觀存在的,并正在耗費(fèi)有關(guān)的公司的巨額資金。
設(shè)計(jì)差錯(cuò)導(dǎo)致的芯片缺陷:在由于邏輯和功能缺陷的緣故而導(dǎo)致需要進(jìn)行重新布線的設(shè)計(jì)當(dāng)中,有82%存在著設(shè)計(jì)差錯(cuò)。這意味著在驗(yàn)證過(guò)程中并未考慮一些極端場(chǎng)合,而且一直到最后的檢查之前,bug都會(huì)隱匿在設(shè)計(jì)之中。
規(guī)范誤差導(dǎo)致的芯片缺陷:在由于邏輯和功能缺陷的緣故而導(dǎo)致需要進(jìn)行重新布線的設(shè)計(jì)當(dāng)中,有47%存在著規(guī)范不正確或不完整的情況。在由于邏輯和功能缺陷的緣故而導(dǎo)致需要進(jìn)行重新布線的設(shè)計(jì)當(dāng)中,有32%對(duì)規(guī)范進(jìn)行了改動(dòng)。
采用復(fù)用IP和外來(lái)IP所引發(fā)的問(wèn)題:14%的缺陷芯片在復(fù)用單元或外來(lái)IP中存在bug。
重新布線的影響:重新布線有可能給公司帶來(lái)高達(dá)10萬(wàn)美元的損失。此外,它還會(huì)推遲產(chǎn)品面市,并因采用這些缺陷芯片的系統(tǒng)所發(fā)生的故障而導(dǎo)致費(fèi)用的上揚(yáng)。
為了對(duì)付驗(yàn)證瓶頸問(wèn)題可以:1.提高設(shè)計(jì)師的生產(chǎn)率:這一領(lǐng)域大有優(yōu)化空間。設(shè)計(jì)生產(chǎn)率已經(jīng)通過(guò)改善計(jì)算機(jī)性能、采用諸如微軟公司的軟件工具(如Excel)等個(gè)人工具而得到了提高。雖然它們?cè)诓东@測(cè)試和驗(yàn)證計(jì)劃中大有助益,但大部分時(shí)間卻花在了測(cè)試場(chǎng)合的編碼、運(yùn)行和調(diào)試上。2.提高驗(yàn)證生產(chǎn)率:這種方法明顯具有用于提升生產(chǎn)率的潛力。
為了提高驗(yàn)證生產(chǎn)率,EDA行業(yè)采用了一種與解決設(shè)計(jì)瓶頸問(wèn)題相似的“抽象”概念。諸如Verilog和VHDL等高級(jí)語(yǔ)言被用來(lái)驗(yàn)證芯片;包括諸如任務(wù)、線程(分叉、連接)等以及諸如“while”等控制結(jié)構(gòu)。這提供了對(duì)數(shù)據(jù)的進(jìn)一步控制,以便在所有的功能隅角上實(shí)現(xiàn)設(shè)計(jì)的全面執(zhí)行。然而,這些構(gòu)件過(guò)去是不可綜合的,因此未被設(shè)計(jì)師用作實(shí)際設(shè)計(jì)代碼的一部分。
隨著復(fù)雜性的繼續(xù)提高,人們創(chuàng)建并引入了能夠在不同的抽象級(jí)上對(duì)復(fù)雜設(shè)計(jì)進(jìn)行驗(yàn)證的新型驗(yàn)證語(yǔ)言。伴隨著這些新型語(yǔ)言的問(wèn)世又出現(xiàn)了對(duì)其提供支持的技術(shù)和工具。
驗(yàn)證與確認(rèn)(Validation)的比較
除了驗(yàn)證問(wèn)題之外,芯片制造商還飽受確認(rèn)時(shí)間的困擾。Kropf將“確認(rèn)”定義為“通過(guò)檢查實(shí)現(xiàn)方案的工作行為來(lái)獲得對(duì)規(guī)范的信心的過(guò)程”。對(duì)驗(yàn)證與確認(rèn)的比較,觀點(diǎn)眾多。一種觀點(diǎn)是:“確認(rèn)用于保證這是一種正確的設(shè)計(jì),而驗(yàn)證則用于保證設(shè)計(jì)是正確的”。另一種觀點(diǎn)是:“驗(yàn)證是在硅片測(cè)試之前(Verilog/VHDL仿真等)進(jìn)行的,而確認(rèn)則是在硅片測(cè)試之后(在實(shí)驗(yàn)室中,在電路板上進(jìn)行硅片測(cè)試)進(jìn)行”。
不管是確認(rèn)還是驗(yàn)證,為了確保硅片滿足規(guī)范,有兩件事是必需做到的:
1)芯片規(guī)范得到了正確的解釋(一般是借助文檔資料,有時(shí)也采用建模的方法);
2)這種解釋被正確地捕獲和執(zhí)行(一般采用VHDL)、綜合到硅片之中、并被封裝為芯片。
本文將第二步視作驗(yàn)證,而把第一步看作確認(rèn)。圖1給出了被業(yè)界用來(lái)確保上述兩個(gè)步驟得到滿足的常見(jiàn)設(shè)計(jì)流程的概況。
視被執(zhí)行功能的復(fù)雜性的不同,可以跳過(guò)其中的某些步驟,也可以增加更多的步驟。例如,如果知道某個(gè)特定設(shè)計(jì)完全是面向硬件的,且不包括驅(qū)動(dòng)器或軟件,便可從抽象級(jí)3直接跳至抽象級(jí)1(無(wú)需進(jìn)行硬件-軟件折衷)。PLL(鎖相環(huán))設(shè)計(jì)似乎就是這樣的一個(gè)例子。
應(yīng)該注意,當(dāng)逐漸走向較低的抽象級(jí)時(shí),必須始終保持等效性,以確保最低的抽象級(jí)能夠滿足系統(tǒng)規(guī)范的要求。
當(dāng)今的驗(yàn)證技術(shù)和發(fā)展趨勢(shì)
1. 動(dòng)態(tài)功能驗(yàn)證
使用最為普遍的功能驗(yàn)證方法具有動(dòng)態(tài)特性。之所以將其冠名為“動(dòng)態(tài)”,原因在于輸入圖形/激勵(lì)信號(hào)是在一段時(shí)間內(nèi)(若干個(gè)時(shí)鐘周期)生成并應(yīng)用于設(shè)計(jì)的,而且,對(duì)應(yīng)的結(jié)果被收集起來(lái)并與一個(gè)參考/黃金模型進(jìn)行比較,以便與規(guī)范相符。
一個(gè)仿真器被用來(lái)計(jì)算所有信號(hào)的全部數(shù)值,并將規(guī)定的預(yù)期值與計(jì)算值加以比較。目前,業(yè)界可以選用的仿真器有兩種。
1. 基于周期的仿真器:該仿真器完全不理會(huì)時(shí)鐘內(nèi)部發(fā)生的事件,而是在每個(gè)周期中進(jìn)行一次信號(hào)評(píng)估。由于執(zhí)行時(shí)間較短,這類仿真器的運(yùn)行速度往往較快。
2. 基于事件的仿真器:這些仿真器捕獲事件(在時(shí)鐘內(nèi)部或在時(shí)鐘的邊界上)并通過(guò)設(shè)計(jì)進(jìn)行傳播,直到實(shí)現(xiàn)一個(gè)穩(wěn)定狀態(tài)為止。
動(dòng)態(tài)仿真的一個(gè)主要的缺點(diǎn)是,在一個(gè)限時(shí)仿真行程當(dāng)中,只能對(duì)芯片的典型(而不是所有可能的)工作特性進(jìn)行驗(yàn)證。造成這種情況的主要原因在于芯片是針對(duì)已知測(cè)試空間(而不是未知測(cè)試環(huán)境)進(jìn)行測(cè)試的,采用的是定向測(cè)試法。EDA行業(yè)推出了諸如Open-VERA、E和SVL(SystemC Verification Library)等更加高級(jí)的驗(yàn)證語(yǔ)言。這些語(yǔ)言引入了新的概念,比如約束隨機(jī)激勵(lì)、隨機(jī)激勵(lì)信號(hào)分配和電抗性測(cè)試臺(tái)。伴隨著這些語(yǔ)言的運(yùn)用出現(xiàn)了一些用于對(duì)其進(jìn)行解釋的工具,就本場(chǎng)合而言,它們有可能是VERA、Specman和OSCI內(nèi)核(即CCSS)。
除了引入了隨機(jī)化功能之外,新型驗(yàn)證語(yǔ)言和工具還通過(guò)減少公司在構(gòu)筑各種用于激勵(lì)信號(hào)發(fā)生的測(cè)試場(chǎng)合/方案所花費(fèi)的時(shí)間量而實(shí)現(xiàn)了生產(chǎn)率的提高。例如,測(cè)試方案可以采用最高的抽象級(jí)來(lái)編寫,并能夠通過(guò)采用功能強(qiáng)大的面向?qū)ο笮徒Y(jié)構(gòu)而“擴(kuò)展”至任何較低的抽象級(jí)。
當(dāng)采用動(dòng)態(tài)驗(yàn)證時(shí),設(shè)計(jì)者一般希望擁有一個(gè)以可量化項(xiàng)來(lái)覆蓋和捕獲的功能空間的估計(jì)值:
1. 被驗(yàn)證的代碼行的數(shù)量(行覆蓋率);
2. 被驗(yàn)證的邏輯表達(dá)式有多少?(表達(dá)式覆蓋率)
3. 在一個(gè)FSM設(shè)計(jì)中達(dá)到了多少種狀態(tài)(FSM覆蓋率);
4. 在一個(gè)仿真行程中進(jìn)行雙向變換的端口和寄存器的數(shù)量(變換覆蓋率);
5. 設(shè)計(jì)代碼中被覆蓋的邏輯通路的數(shù)量(通路覆蓋率);
這可以通過(guò)采用諸如代碼覆蓋和lint等工具來(lái)實(shí)現(xiàn)。
設(shè)計(jì)者將“斷言”用作一個(gè)占位符,用來(lái)描述與某項(xiàng)設(shè)計(jì)相關(guān)聯(lián)的假設(shè)和工作特性(包括暫時(shí)的特性)。如果設(shè)計(jì)滿足或未滿足規(guī)范或假設(shè),則斷言將會(huì)在一個(gè)動(dòng)態(tài)仿真過(guò)程中被觸發(fā)。斷言也可在形式/靜態(tài)功能驗(yàn)證環(huán)境中使用。
2. 混合功能驗(yàn)證
在該方法中通常執(zhí)行動(dòng)態(tài)仿真,仿真結(jié)果被捕獲并用作靜態(tài)驗(yàn)證的輸入。在靜態(tài)驗(yàn)證期間,邏輯方程/符號(hào)通過(guò)設(shè)計(jì)進(jìn)行傳播(而不象在動(dòng)態(tài)仿真中那樣傳播的是數(shù)值)。這種手法雖然不如形式驗(yàn)證詳盡周全,但卻可以被證實(shí)具有比純動(dòng)態(tài)仿真更高的效率,因?yàn)樗_(kāi)始于動(dòng)態(tài)仿真停止之時(shí)。
3.靜態(tài)功能驗(yàn)證
在靜態(tài)功能驗(yàn)證中,沒(méi)有向設(shè)計(jì)施加輸入激勵(lì)信號(hào)。而是將設(shè)計(jì)映射至一個(gè)采用BDD(雙擇判決圖)或其他數(shù)學(xué)表達(dá)式(它們規(guī)定了所有時(shí)間周期中的設(shè)計(jì)功能)來(lái)說(shuō)明其功能的圖形結(jié)構(gòu)上。利用這種圖形結(jié)構(gòu)來(lái)證實(shí)或反駁屬性將能夠驗(yàn)證這些數(shù)學(xué)表達(dá)式。這是通過(guò)確定數(shù)學(xué)結(jié)構(gòu)中的矛盾式(方法是順著或逆著信號(hào)流來(lái)傳遞數(shù)值)來(lái)完成的。
現(xiàn)有工具采用以下兩種方式來(lái)滿足靜態(tài)驗(yàn)證市場(chǎng)的需求。
1. 采用斷言:這些是在模型/設(shè)計(jì)自身當(dāng)中規(guī)定并公式化的設(shè)計(jì)約束(運(yùn)用諸如SystemVerilog、Open-VERA、Verilog、VHDL等設(shè)計(jì)/驗(yàn)證語(yǔ)言)。
2. 采用屬性:這些通過(guò)采用一種屬性語(yǔ)言(比如PSL、Sugar)提供了屬性的規(guī)范。
4. 等效性驗(yàn)證
為了確定邏輯門級(jí)表示與HDL實(shí)現(xiàn)是相同的,通過(guò)采用匹配點(diǎn)并比較這些點(diǎn)之間的邏輯來(lái)執(zhí)行一種所謂的“等效性檢查”。生成一種數(shù)據(jù)結(jié)構(gòu),并將其與相同輸入特性曲線條件下的輸出數(shù)值特性曲線進(jìn)行比較。如果它們不同,則表示(在本場(chǎng)合為邏輯門和RTL)是不等效的。當(dāng)其中一種表示經(jīng)過(guò)了某種類型的變換時(shí),等效性檢查有時(shí)是在兩個(gè)連接表(邏輯門級(jí))或兩個(gè)RTL實(shí)現(xiàn)之間執(zhí)行的(圖2)。
造成設(shè)計(jì)表示出現(xiàn)差異的一些實(shí)際原因如下:
1. 合成算法/啟發(fā)式法:根據(jù)對(duì)合成工具的約束條件(區(qū)域、時(shí)間、功率)的不同,合成工具將對(duì)邏輯運(yùn)算進(jìn)行優(yōu)化,以推導(dǎo)出適當(dāng)?shù)倪壿嬮T級(jí)表示。為此,合成工具將采用啟發(fā)式法和邏輯最小化算法。
2. 抽象級(jí):有時(shí)可以采用HDL來(lái)實(shí)現(xiàn)設(shè)計(jì),它有可能與設(shè)計(jì)者的意圖存在一定的差異,原因是語(yǔ)言的局限性,抑或是缺乏(或不具備)對(duì)合成工具解釋特定語(yǔ)言結(jié)構(gòu)并將其變換為邏輯門級(jí)表示的方式進(jìn)行預(yù)測(cè)的能力。
正確驗(yàn)證方法的選擇標(biāo)準(zhǔn)
在準(zhǔn)備將新技術(shù)引入自己的工具流程之前,芯片供應(yīng)商應(yīng)當(dāng)考慮以下問(wèn)題并做出適當(dāng)?shù)恼壑浴?
1. 在某個(gè)特定的產(chǎn)品線中,我們是市場(chǎng)的領(lǐng)先者還是追隨者?
2. CAD基礎(chǔ)設(shè)施、工具和方法是集中式的還是分布式的?
3. 新型驗(yàn)證技術(shù)的評(píng)估是針對(duì)第一代產(chǎn)品進(jìn)行的嗎?
4. 新型驗(yàn)證技術(shù)對(duì)成本和產(chǎn)品面市時(shí)間的直接影響和間接影響是什么?
5. 新型工具能否處理變動(dòng)的設(shè)計(jì)能力?
6. 工具的易用性如何?
7. 可為新型工具提供什么水平的文檔和支持?
8. 新型工具和方法與公司內(nèi)部現(xiàn)有的工具和方法之間是否具有互操作性?
9. 新型工具的ROI(投資回報(bào))是什么(包括服務(wù)、培訓(xùn)、咨詢、計(jì)算和人力資源)?
10. 新型工具能否支持處于多個(gè)不同地理位置的設(shè)計(jì)?
11. 對(duì)于有關(guān)公司而言,他們所需關(guān)注的最為重要的問(wèn)題或許是:我們雇用的設(shè)計(jì)師和驗(yàn)證工程師對(duì)新型工具是否有成見(jiàn)(設(shè)計(jì)師不愿意學(xué)習(xí)和采用新技術(shù))?
1.產(chǎn)品角度
主要從事存儲(chǔ)器芯片或存儲(chǔ)器密集型(而不是邏輯密集型)芯片生產(chǎn)的公司――比如SRAM和DRAM公司或許根本不需要進(jìn)行大量的邏輯驗(yàn)證。這些器件大多是定制的。雖然此類產(chǎn)品中有些規(guī)模會(huì)很大,但它們的邏輯復(fù)雜性并不高,因而不支持在公司內(nèi)部配備大量邏輯驗(yàn)證工具的計(jì)劃。不過(guò),存儲(chǔ)器密集型設(shè)計(jì)提出了其他的挑戰(zhàn),比如布線、工藝調(diào)整和功耗。
那些制造純ASIC芯片(其上不運(yùn)行軟件)的公司可能無(wú)須進(jìn)行硬件-軟件折衷,或者也許不必實(shí)施用于捕獲運(yùn)行于硬件之上的軟件的測(cè)試。例如,只具有硬件的SERDES(并串/串并變換器)芯片所要求的驗(yàn)證和建模方法與同時(shí)具有硬件和軟件的SoC是不同的。
對(duì)于擁有門類寬泛的產(chǎn)品線的大型公司來(lái)說(shuō),驗(yàn)證方法必須包含不同產(chǎn)品的各種要求。
2.系統(tǒng)角度
過(guò)去,邏輯芯片供應(yīng)商不負(fù)責(zé)對(duì)芯片是否滿足某一參考系統(tǒng)上的功能和性能要求進(jìn)行驗(yàn)證。如今的系統(tǒng)廠商在批量訂貨之前都要求芯片制造商進(jìn)行系統(tǒng)參考驗(yàn)證。這就要求芯片公司采用一種他們所不熟悉的附加抽象級(jí)來(lái)對(duì)芯片進(jìn)行建模和驗(yàn)證。這需要架構(gòu)模型、參考模型、制定復(fù)雜的應(yīng)用級(jí)測(cè)試和精細(xì)的測(cè)試臺(tái)配置。面對(duì)這些類型的難題,有關(guān)公司有兩種選擇,一是采用現(xiàn)有的語(yǔ)言、技術(shù)和方法(這樣做將耗費(fèi)大量的時(shí)間和精力),另一種就是大量采用新技術(shù)(如VERA、Specman等)。此外,芯片銷售商還必須確保所采用的參考模型和驗(yàn)證套件是在一個(gè)與客戶兼容的環(huán)境中執(zhí)行的(比如,測(cè)試場(chǎng)合應(yīng)該能夠使用客戶的軟件開(kāi)發(fā)套件SDK以及客戶所用的仿真器)。
3.方法角度
在芯片集成之前,可以按照一個(gè)高置信度將靜態(tài)功能驗(yàn)證和動(dòng)態(tài)仿真結(jié)合起來(lái)用于驗(yàn)證模塊級(jí)功能度。采用動(dòng)態(tài)仿真能夠高效執(zhí)行系統(tǒng)級(jí)驗(yàn)證,借助的方法是確定我們正在連續(xù)不斷地驗(yàn)證功能空間的主要隅角。
首先執(zhí)行隨機(jī)仿真(以便在驗(yàn)證的初始階段捕捉到大量的缺陷),并隨后對(duì)隨機(jī)仿真加以約束(以確定在測(cè)試計(jì)劃中所規(guī)定的測(cè)試空間已經(jīng)在器件上被完全覆蓋)的做法或許相對(duì)容易一些。應(yīng)考慮將約束驅(qū)動(dòng)型驗(yàn)證在功能覆蓋量度上進(jìn)行細(xì)化。“功能覆蓋率”這一術(shù)語(yǔ)被用來(lái)描述一個(gè)對(duì)所覆蓋的功能空間進(jìn)行量化的參數(shù),相反,“代碼覆蓋率”則被用來(lái)對(duì)已經(jīng)實(shí)現(xiàn)的設(shè)計(jì)被某一給定的測(cè)試套件所覆蓋的程度進(jìn)行量化。定向仿真隨后可被用來(lái)在驗(yàn)證周期的末端覆蓋隅角測(cè)試空間。
斷言和屬性可在靜態(tài)功能驗(yàn)證期間的背景中起作用(在模塊級(jí)上),并可在動(dòng)態(tài)仿真環(huán)境中被重用(在模塊和系統(tǒng)級(jí)上)。如果模塊將被轉(zhuǎn)變成IP,則它們也是有用的,因?yàn)閿嘌詫⒃贗P被重用時(shí)持續(xù)不斷地檢查其屬性。
評(píng)論