SOC設(shè)計(jì)驗(yàn)證方法的探索
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、引言
在片上系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中,驗(yàn)證這一環(huán)節(jié)日益重要,整個(gè)過(guò)程中花在驗(yàn)證的時(shí)間比重越來(lái)越大,主要原因在于隨著SoC 芯片復(fù)雜度的提高,驗(yàn)證的規(guī)模也成指數(shù)級(jí)的增加。系統(tǒng)芯片的時(shí)代已經(jīng)到來(lái),在RTL級(jí)硬件設(shè)計(jì)的抽象層次上已經(jīng)無(wú)法應(yīng)付數(shù)以百萬(wàn)和千萬(wàn)門系統(tǒng)的設(shè)計(jì)和驗(yàn)證。據(jù)統(tǒng)計(jì),兩年來(lái),一次投片成功率已經(jīng)由50%降低到39%。不能一次成功的設(shè)計(jì)必須再投入幾個(gè)月的設(shè)計(jì)驗(yàn)證時(shí)間和數(shù)十萬(wàn)美元的費(fèi)用。這種風(fēng)險(xiǎn)已經(jīng)變得不可接受了。因此設(shè)計(jì)驗(yàn)證出現(xiàn)了所謂的“驗(yàn)證危機(jī)”[2]。功能驗(yàn)證已經(jīng)成為集成電路設(shè)計(jì)和開發(fā)的瓶頸,這就使得驗(yàn)證的方法逐漸受到業(yè)界人士的高度重視。工程師們?cè)谠O(shè)計(jì)時(shí)不可能考慮到萬(wàn)無(wú)一失,所以很多系統(tǒng)行為是不能緊緊通過(guò)測(cè)試文件就能保證系統(tǒng)功能的正確性。
二、SOC驗(yàn)證的特點(diǎn)
片上系統(tǒng)(SoC)是一種建構(gòu)技術(shù),主要由處理器(MCU)以及一些外圍設(shè)備如UART,MAC,控制器等構(gòu)成,系統(tǒng)結(jié)構(gòu)圖如圖1。SoC的驗(yàn)證和ASIC的驗(yàn)證工作有很多相同地方:首先都要進(jìn)行模擬,檢查設(shè)計(jì)是否符合規(guī)則,使用各種方法對(duì)芯片進(jìn)行測(cè)試。但是,SOC的驗(yàn)證又比較特殊,存在一些特殊挑戰(zhàn)。
1.整合:驗(yàn)證SoC的首要重點(diǎn)就是檢查各種元件之間的整合程度,這里隱含的基本假設(shè)就是每一部件都已經(jīng)完成自我檢查。
2.軟硬件協(xié)同驗(yàn)證:處理器中運(yùn)行的軟件必須和硬件部分產(chǎn)生關(guān)聯(lián)才能進(jìn)行驗(yàn)證?;蛘呶覀儜?yīng)該把軟硬件當(dāng)作一個(gè)完整的測(cè)試中元件(Device Under Test),對(duì)涉及軟硬件結(jié)合狀態(tài)的方案進(jìn)行測(cè)試。所以我們要找到一種方法來(lái)檢驗(yàn)我們編寫的測(cè)試,以及在涵蓋的測(cè)試范圍中,軟硬件之間的關(guān)聯(lián)性。
3.IP核復(fù)用:對(duì)于可重用的IP核要建立可重用的驗(yàn)證元件。建立可重用的驗(yàn)證元件,會(huì)遇到重大挑戰(zhàn),但同時(shí)也會(huì)因此而獲得更大利益。
SoC代表的是一類極其復(fù)雜的系統(tǒng)。一個(gè)典型的SoC需要一個(gè)或多個(gè)微處理器,還需要一些其他部件,如DSP、Memory等。為驗(yàn)證SoC,首先需要驗(yàn)證每個(gè)部件的正確性,然后要驗(yàn)證部件間連接和通信的正確性。SoC驗(yàn)證問題實(shí)際上就是:如何針對(duì)具體的驗(yàn)證任務(wù),選擇適當(dāng)?shù)尿?yàn)證工具并加以整合。
三、當(dāng)前常用的驗(yàn)證方法
關(guān)于驗(yàn)證的方法有很多,但是到現(xiàn)在為止還沒有任何一種方法可以非常有效地對(duì)系統(tǒng)芯片進(jìn)行功能驗(yàn)證。概括來(lái)看,迄今的驗(yàn)證方法可分為模擬、仿真和形式驗(yàn)證三種[3]。
1、模擬驗(yàn)證
模擬驗(yàn)證是將激勵(lì)信號(hào)施加于設(shè)計(jì),進(jìn)行計(jì)算并觀察輸出結(jié)果,并判斷該結(jié)果是否與預(yù)期一致。
優(yōu)點(diǎn):模擬驗(yàn)證是傳統(tǒng)的驗(yàn)證方法,而且目前仍然是主流的驗(yàn)證方法。
缺點(diǎn):非完備性,即只能證明有錯(cuò)而不能證明無(wú)錯(cuò)。因此,模擬一般適用于在驗(yàn)證初期發(fā)現(xiàn)大量和明顯的設(shè)計(jì)錯(cuò)誤,而難以勝任復(fù)雜和微妙的錯(cuò)誤。模擬驗(yàn)證還嚴(yán)重依賴于測(cè)試向量的選取,而合理而充分地選取測(cè)試向量,達(dá)到高覆蓋率是一個(gè)十分艱巨的課題。由于設(shè)計(jì)者不能預(yù)測(cè)所有錯(cuò)誤的可能模式,所以尚未發(fā)現(xiàn)某個(gè)最好的覆蓋率度量。即使選定了某個(gè)覆蓋率度量,驗(yàn)證時(shí)間也是一個(gè)瓶頸。
2、仿真驗(yàn)證
從電路的描述抽象出模型,然后將外部激勵(lì)信號(hào)或數(shù)據(jù)施加到此模式中,通過(guò)觀察該模型在外部激勵(lì)信號(hào)作用下的反應(yīng)來(lái)判斷該電子系統(tǒng)是否達(dá)到了設(shè)計(jì)目標(biāo)。仿真的方法是目前進(jìn)行設(shè)計(jì)時(shí)常用的方法,根據(jù)不同的仿真層次,有不同的仿真工具。
優(yōu)點(diǎn):仿真比模擬的驗(yàn)證速度快得多,
缺點(diǎn):代價(jià)昂貴,靈活性差。
3、形式驗(yàn)證
形式化驗(yàn)證是不同于仿真方法的對(duì)邏輯設(shè)計(jì)結(jié)果進(jìn)行的另一種驗(yàn)證方法[4]。在 自上而下的設(shè)計(jì)過(guò)程中,在設(shè)計(jì)的各個(gè)階段和級(jí)別,每一級(jí)設(shè)計(jì)都是以上一級(jí)的設(shè)計(jì)作為設(shè)計(jì)目標(biāo),得到本級(jí)的設(shè)計(jì)結(jié)果的結(jié)構(gòu)描述,這是設(shè)計(jì)和綜合的過(guò)程。
優(yōu)點(diǎn):完備性,能夠完全斷定設(shè)計(jì)的正確性。
缺點(diǎn):首先要對(duì)原始設(shè)計(jì)進(jìn)行模型抽取,這對(duì)使用者有數(shù)學(xué)技能和經(jīng)驗(yàn)上的要求。而且,有的工具需要人工引導(dǎo)(如定理證明),有的工具存在狀態(tài)空間爆炸 問題(如模型檢驗(yàn))。
類型:
(1)等價(jià)性檢驗(yàn)[5]
它是用數(shù)學(xué)方法驗(yàn)證參考設(shè)計(jì)與修改設(shè)計(jì)之間的等價(jià)性。(如圖2)利用等價(jià)性驗(yàn)證工具可對(duì)這兩種設(shè)計(jì)方案進(jìn)行徹底的檢驗(yàn)以保證它們?cè)谒锌赡艿臈l件下都有一樣的性能。還可利用等價(jià)性驗(yàn)證來(lái)驗(yàn)證不同的RTL或門級(jí)實(shí)施方案的等價(jià)性。
從整個(gè)數(shù)字系統(tǒng)的設(shè)計(jì)流程看,等價(jià)性問題幾乎存在于每個(gè)上下相鄰的設(shè)計(jì)層次中,見圖2。
(2)定理證明技術(shù)。
運(yùn)用公理和已經(jīng)證明的定理證明電路的描述是正確的。
這兩種方法各有特點(diǎn),其中定理證明雖然能夠給出設(shè)計(jì)是否正確的一個(gè)確切的回答,但由于涉及很多數(shù)學(xué)推理方面的知識(shí),這就要求用戶有很強(qiáng)的數(shù)學(xué)功底,這也是這種方法不能推廣的一個(gè)原因。而等價(jià)性驗(yàn)證是驗(yàn)證不同階段的設(shè)計(jì)是否相互等價(jià)的一個(gè)很好的方法。一個(gè)SOC設(shè)計(jì)是分為多個(gè)階段進(jìn)行的,那么下一個(gè)階段的與上一個(gè)階段的等價(jià)是設(shè)計(jì)的正確的一個(gè)保證。
四、新型的驗(yàn)證方法
針對(duì)SOC驗(yàn)證出現(xiàn)的各種問題現(xiàn)在還沒有一種完全行之有效的方法出現(xiàn),解決辦法之一是基于斷言的驗(yàn)證(ABV)[6],它是把形式化方法集成到傳統(tǒng)模擬流程中的一種有效的方法。設(shè)計(jì)團(tuán)隊(duì)在RTL設(shè)計(jì)中插入設(shè)計(jì)意圖(斷言)并且進(jìn)行模擬,然后用形式化技術(shù)檢查斷言,限制條件,也就是合法接口行為的斷言,和其他斷言同時(shí)一同參加模擬。斷言檢查的結(jié)果改進(jìn)模擬的有效性。即使利用傳統(tǒng)的模擬驗(yàn)證,斷言也可以大大提高模擬的效率?;跀嘌缘尿?yàn)證要由用戶寫出斷言,斷言表示要驗(yàn)證的性質(zhì),因此需要性質(zhì)描述語(yǔ)言。例如邏輯和時(shí)序方面的性質(zhì)。這就需要盡快找到一種能實(shí)現(xiàn)上述功能的語(yǔ)言。SystemVerilog正是在這種情況下產(chǎn)生的,正逐漸被業(yè)界人士接受。
五.結(jié)論
形式化方法最近幾年取得了長(zhǎng)足進(jìn)展,特別是等價(jià)性檢驗(yàn)已經(jīng)集成到標(biāo)準(zhǔn)驗(yàn)證流程中。設(shè)計(jì)和驗(yàn)證方法的進(jìn)步應(yīng)當(dāng)是漸進(jìn)的,不可能發(fā)生革命性的改變。因此在可以預(yù)見的幾年內(nèi),混合驗(yàn)證方法應(yīng)當(dāng)成為主流的驗(yàn)證方法。
基于斷言的驗(yàn)證是結(jié)合形式化驗(yàn)證和傳統(tǒng)的模擬驗(yàn)證可行的途徑。支持這種途徑的統(tǒng)一的設(shè)計(jì)和驗(yàn)證語(yǔ)言是SystemVerilog。該語(yǔ)言已經(jīng)得到很多EDA廠商和用戶的支持,預(yù)計(jì)將會(huì)流行起來(lái)。