如何選擇正確的芯片驗(yàn)證方法
一個(gè)項(xiàng)目中需要使用的工具和技術(shù)必須在設(shè)計(jì)周期的初期就確定下來(lái),以便獲得新驗(yàn)證方法費(fèi)用預(yù)算的準(zhǔn)確信息。經(jīng)常有公司因?yàn)殄e(cuò)誤估計(jì)了運(yùn)轉(zhuǎn)這些新型工具和技術(shù)所需的設(shè)計(jì)和技術(shù)的復(fù)雜性而浪費(fèi)大量的資金和資源。
產(chǎn)品的抽象級(jí)越高,越容易設(shè)計(jì);同樣的,抽象級(jí)越高,越容易犯嚴(yán)重的錯(cuò)誤。一個(gè)架構(gòu)上的缺陷可能會(huì)導(dǎo)致整個(gè)芯片的損害,而在門(mén)級(jí)網(wǎng)表中的連線錯(cuò)誤可以通過(guò)重制解決。
例如,Verilog為設(shè)計(jì)者提供了一種相對(duì)容易的接口,以便他們?cè)谙喈?dāng)抽象的層次上進(jìn)行設(shè)計(jì)。當(dāng)設(shè)計(jì)曾經(jīng)作為制約性的瓶頸時(shí),Verilog 為設(shè)計(jì)生產(chǎn)率帶來(lái)了指數(shù)增長(zhǎng),并且大大推動(dòng)了復(fù)雜芯片的發(fā)展。但是如果設(shè)計(jì)者不了解在復(fù)雜的設(shè)計(jì)周期中語(yǔ)言上的細(xì)微差別,就很容易犯錯(cuò)。在驗(yàn)證成為瓶頸的今天,同樣的觀點(diǎn)也適用于許多驗(yàn)證技術(shù)和語(yǔ)言。
本文將對(duì)時(shí)下流行的驗(yàn)證技術(shù)(形式驗(yàn)證、隨機(jī)、定向、有約束的隨機(jī)、斷言、屬性檢驗(yàn))與語(yǔ)言(SystemC、C/C++、SystemVerilog、Open-VERA、E等)進(jìn)行全面評(píng)述,還將分析在傳統(tǒng)的數(shù)字ASIC設(shè)計(jì)流程中應(yīng)當(dāng)在何時(shí)采用何種驗(yàn)證技術(shù)和語(yǔ)言。
1 驗(yàn)證瓶頸
盡管事實(shí)表明如今設(shè)計(jì)生產(chǎn)率的增長(zhǎng)速度仍然低于芯片復(fù)雜度的增長(zhǎng)速度,然而現(xiàn)在需要面對(duì)的瓶頸已不再是設(shè)計(jì)時(shí)間,而是驗(yàn)證時(shí)間。最近的統(tǒng)計(jì)數(shù)據(jù)表明,對(duì)一個(gè)復(fù)雜邏輯芯片而言,整個(gè)產(chǎn)品周期中 60_70% 的時(shí)間都用于驗(yàn)證工作。如何使用新的工具和技術(shù)對(duì)設(shè)計(jì)中的復(fù)雜功能進(jìn)行驗(yàn)證已經(jīng)成為縮短總體的產(chǎn)品時(shí)間所需要面對(duì)的挑戰(zhàn)。
由于以下原因,可以說(shuō)驗(yàn)證瓶頸在某種程度上是設(shè)計(jì)抽象級(jí)逐步提高造成的結(jié)果:
1) 在較高的抽象水平上進(jìn)行設(shè)計(jì),易于構(gòu)建高度復(fù)雜的產(chǎn)品功能。設(shè)計(jì)復(fù)雜度的提高造成驗(yàn)證工作的成倍增加;
2) 在設(shè)計(jì)、轉(zhuǎn)換以及映射到最終產(chǎn)品的過(guò)程中,應(yīng)用更高的抽象級(jí)進(jìn)行設(shè)計(jì)會(huì)帶來(lái)信息損失和解釋錯(cuò)誤的問(wèn)題。例如,采用HDL級(jí)設(shè)計(jì)并將其轉(zhuǎn)換到門(mén)級(jí)的綜合過(guò)程,需要進(jìn)行驗(yàn)證以確保轉(zhuǎn)換的正確性以及使設(shè)計(jì)意圖完全得到體現(xiàn)。提高抽象級(jí)還帶來(lái)了代碼解釋問(wèn)題,在仿真時(shí)要通過(guò)這些代碼對(duì)設(shè)計(jì)進(jìn)行描述,以確保所寫(xiě)的代碼真實(shí)反映了功能規(guī)范。
其它影響驗(yàn)證問(wèn)題的因素還包括:
1) 由于設(shè)計(jì)中硬件與軟件、模擬與數(shù)字等共存而造成的功能復(fù)雜度增加;
2) 對(duì)系統(tǒng)可靠性的要求增高,使得對(duì)驗(yàn)證工作的要求也增加,以確保在系統(tǒng)環(huán)境下,芯片功能可以順利執(zhí)行。
統(tǒng)計(jì)數(shù)據(jù)表明,驗(yàn)證問(wèn)題現(xiàn)實(shí)存在,而且讓公司付出了高昂的成本:
1)由于設(shè)計(jì)錯(cuò)誤造成的芯片缺陷:在需要進(jìn)行重制的芯片中,有82%是由于邏輯與功能缺陷設(shè)計(jì)錯(cuò)誤。這意味著驗(yàn)證過(guò)程沒(méi)有覆蓋邊角情況,缺陷一直隱藏在設(shè)計(jì)過(guò)程中直到流片。
2)由于規(guī)范錯(cuò)誤造成的芯片缺陷:在需要進(jìn)行重制的芯片中,有47%是由于邏輯與功能規(guī)范不正確或不完整,有32%是由于規(guī)范發(fā)生了改變。
3)重用IP和外來(lái)IP的問(wèn)題:所有失敗的芯片中,有14%是由于在重用或外來(lái)的IP中存在錯(cuò)誤。
4)重制的后果:重制費(fèi)會(huì)高達(dá)10萬(wàn)美元,還會(huì)延誤產(chǎn)品的推出,由于使用這些有缺陷的芯片而導(dǎo)致的系統(tǒng)失敗也會(huì)增加成本。
為了提高驗(yàn)證生產(chǎn)率,EDA行業(yè)提出了一個(gè)與解決設(shè)計(jì)瓶頸類似的解決方案——抽象化的理念。諸如 Verilog 和VHDL等高層次的語(yǔ)言被用于驗(yàn)證芯片,這些語(yǔ)言包括各種指令如任務(wù)指令和線程指令(fork/join 語(yǔ)句),以及控制結(jié)構(gòu)(while語(yǔ)句)。這提供了更強(qiáng)的數(shù)據(jù)控制力,以便對(duì)所有邊角設(shè)計(jì)進(jìn)行充分驗(yàn)證。然而,這些指令不能被綜合,因此不會(huì)被用作實(shí)際設(shè)計(jì)代碼的一部分。
隨著復(fù)雜度與日俱增,能夠驗(yàn)證具有不同抽象級(jí)的復(fù)雜設(shè)計(jì)的新語(yǔ)言被創(chuàng)建出來(lái),支持這些新的驗(yàn)證語(yǔ)言的技術(shù)和工具也隨之誕生。
所有這一切意味著芯片廠商必須對(duì)新的工具作出評(píng)估,必須針對(duì)這些新的工具和技術(shù)對(duì)工程師進(jìn)行培訓(xùn),在公司的研發(fā)費(fèi)用成本結(jié)構(gòu)中必須包括新的工具和資源,公司在總體上必須在短時(shí)間內(nèi)克服學(xué)習(xí)曲線問(wèn)題,另外,還需要對(duì)這些工具進(jìn)行風(fēng)險(xiǎn)評(píng)估,以及考慮新工具與已有技術(shù)的集成和協(xié)同工作的能力。
2 驗(yàn)證與確認(rèn)(Validation)
除了驗(yàn)證問(wèn)題之外,芯片公司還要面對(duì)確認(rèn)時(shí)間問(wèn)題。Kropf將“確認(rèn)”定義為“通過(guò)檢查實(shí)現(xiàn)行為以獲得對(duì)規(guī)范的信心的過(guò)程”。在驗(yàn)證和確認(rèn)之間,有一種觀點(diǎn)認(rèn)為,“確認(rèn)能夠確保這是正確的設(shè)計(jì),而驗(yàn)證則是確保這個(gè)設(shè)計(jì)是正確的”;另外一種觀點(diǎn)認(rèn)為,“驗(yàn)證指硅片成為成品之前的測(cè)試(Verilog/VHDL 仿真等),確認(rèn)指硅片成為成品之后的測(cè)試(在實(shí)驗(yàn)室里測(cè)試電路板上的芯片)”。
無(wú)論是確認(rèn)還是驗(yàn)證,若要保證硅片滿足規(guī)范要求,要完成以下兩個(gè)步驟:1)通過(guò)文件或建模,芯片規(guī)范得到了正確的解釋;2)以上解釋得到了正確的理解與實(shí)現(xiàn)(一般是通過(guò) HDL),綜合入硅片,并封裝成為芯片。
本文認(rèn)為第二步是驗(yàn)證,第一步是確認(rèn)。目前業(yè)界流行的設(shè)計(jì)流程如圖1所示,此流程可保證以上兩個(gè)步驟的要求得以滿足。根據(jù)待實(shí)現(xiàn)功能的復(fù)雜程度不同,可以跳過(guò)一些步驟或者增加一些步驟。例如,如果某一項(xiàng)設(shè)計(jì)是純粹面向硬件的,不涉及驅(qū)動(dòng)或軟件,那么可以從抽象級(jí)3直接跳到抽象級(jí)1,鎖相環(huán)設(shè)計(jì)即為一例。
本文引用地址:http://m.butianyuan.cn/article/201612/324772.htm
當(dāng)設(shè)計(jì)按照抽象級(jí)逐步推進(jìn)時(shí),要注意必須一直保持等效性,以確保最低層的抽象級(jí)能滿足系統(tǒng)規(guī)范的要求。例如:
1)當(dāng) C 模型被置于一個(gè)系統(tǒng)環(huán)境并能夠滿足規(guī)范中所描述的所有系統(tǒng)要求時(shí),芯片規(guī)范(一般是一個(gè)文本文件)與其 C 模型之間就達(dá)到了等效。這在實(shí)質(zhì)上是功能等效。
2)通過(guò)比較 C 模型與HDL 實(shí)現(xiàn)的輸出,可以在規(guī)范的C 模型與其 HDL 實(shí)現(xiàn)之間建立等效關(guān)系。在沒(méi)有 C 模型的情況下,可使用“期望數(shù)據(jù)模型”。這在實(shí)質(zhì)上也是功能等效。
3)HDL實(shí)現(xiàn)與門(mén)級(jí)(綜合后的)之間通過(guò)應(yīng)用“邏輯等效性檢驗(yàn)”可以建立等效關(guān)系。這時(shí),由于設(shè)計(jì)采取的形式是純粹的邏輯門(mén),而且功能能夠被表示為邏輯表達(dá)式,因此,這在實(shí)質(zhì)上是邏輯等效。
評(píng)論