文章來(lái)源:學(xué)習(xí)那些事
原文作者:前路漫漫
本文介紹了芯片驗(yàn)證方法演進(jìn)的過(guò)程。
概述
回溯 20 世紀(jì) 90 年代,當(dāng)時(shí)行業(yè)內(nèi)接觸的芯片主要包括 Z80、8031、8080/8086 等經(jīng)典 CPU,以及 74 系列編碼器、譯碼器、多路選擇器等專用邏輯芯片。在那個(gè)技術(shù)發(fā)展階段,相關(guān)從業(yè)者的核心需求僅在于掌握這些芯片的使用方法,對(duì)于其底層設(shè)計(jì)原理以及對(duì)應(yīng)的測(cè)試驗(yàn)證流程,既缺乏深入探索的條件,也沒(méi)有足夠的重視。與此同時(shí),PAL/GAL、CPLD 以及 FPGA 等可編程芯片的出現(xiàn),為硬件技術(shù)人員打開(kāi)了自主設(shè)計(jì)硬件的廣闊空間。不過(guò)受限于當(dāng)時(shí)的技術(shù)環(huán)境,設(shè)計(jì)手段還處于較為原始的狀態(tài) ——Verilog 語(yǔ)言在國(guó)內(nèi)尚未得到廣泛推廣與應(yīng)用,工程師們主要依靠邏輯表達(dá)式、卡諾圖以及原理圖來(lái)完成硬件邏輯的設(shè)計(jì)工作。盡管這種設(shè)計(jì)方式相對(duì)簡(jiǎn)陋,但彼時(shí)的設(shè)計(jì)人員憑借對(duì)器件特性和邏輯原理的深刻理解,在邏輯資源極為有限的約束條件下,能夠進(jìn)行精細(xì)化的設(shè)計(jì)實(shí)踐,不僅清晰掌握每個(gè)邏輯門、每個(gè)觸發(fā)器的具體使用情況,對(duì)每一條邏輯的執(zhí)行過(guò)程也了如指掌。值得注意的是,這一階段尚未形成 “芯片驗(yàn)證” 的明確概念,相關(guān)的硬件檢測(cè)工作統(tǒng)一被稱為 “硬件測(cè)試” 或 “芯片測(cè)試”,如圖 1 所示即為當(dāng)時(shí)眾多企業(yè)廣泛采用的芯片測(cè)試平臺(tái)。

圖1
早期的芯片測(cè)試平臺(tái)構(gòu)造極為原始:通過(guò)面包板來(lái)固定芯片和各類電子元器件,再利用導(dǎo)線將這些芯片與元器件按照設(shè)計(jì)需求連接起來(lái),構(gòu)成完整的測(cè)試電路;采用撥碼開(kāi)關(guān)作為手動(dòng)輸入設(shè)備,用于產(chǎn)生測(cè)試所需的各類信號(hào);通過(guò)發(fā)光二極管、數(shù)碼顯示管等簡(jiǎn)單器件來(lái)直觀展示輸出信號(hào)的狀態(tài),以此判斷芯片的工作情況。隨著可編程器件的集成規(guī)模不斷擴(kuò)大,邏輯編程語(yǔ)言也迎來(lái)了快速發(fā)展期,Verilog、VHDL 等硬件描述語(yǔ)言相繼誕生并逐漸成熟。自此,芯片設(shè)計(jì)進(jìn)入了全新階段,工程師可以采用類似編寫(xiě) C 語(yǔ)言的編程方式來(lái)設(shè)計(jì)硬件邏輯。具體流程為:使用 Verilog 語(yǔ)言完成邏輯設(shè)計(jì)后,經(jīng)過(guò)編譯綜合、布局布線等一系列步驟,將設(shè)計(jì)好的邏輯燒寫(xiě)到 FPGA 芯片中,隨后在專門搭建的硬件單板上開(kāi)展測(cè)試工作。與此同時(shí),芯片測(cè)試手段也實(shí)現(xiàn)了大幅革新:借助信號(hào)發(fā)生器可以精準(zhǔn)產(chǎn)生測(cè)試所需的各類輸入信號(hào),利用示波器、邏輯分析儀等專業(yè)儀器能夠?qū)崟r(shí)觀測(cè)并分析輸出信號(hào)的波形與數(shù)據(jù),圖 2 所示為該時(shí)期大規(guī)模邏輯芯片的典型測(cè)試平臺(tái)。需要指出的是,上述兩類測(cè)試平臺(tái)均依賴物理硬件和專用測(cè)試儀器來(lái)開(kāi)展工作,不僅制作成本高昂,測(cè)試周期漫長(zhǎng),而且測(cè)試的完備性與覆蓋度在很大程度上依賴于設(shè)備的性能與配置,存在明顯的局限性。

圖2
邏輯仿真器
邏輯仿真器的出現(xiàn),徹底改變了芯片測(cè)試與驗(yàn)證的傳統(tǒng)模式,為行業(yè)帶來(lái)了方法與手段上的革命性改進(jìn)。借助專業(yè)的軟件工具,工程師無(wú)需依賴物理硬件,僅在普通 PC 或服務(wù)器上即可完成芯片的全流程測(cè)試與驗(yàn)證工作。這一轉(zhuǎn)變不僅大幅降低了測(cè)試平臺(tái)的搭建與維護(hù)成本,更有效縮短了芯片的整體開(kāi)發(fā)周期。在邏輯仿真器應(yīng)用初期,工程師可以直接使用 Verilog 語(yǔ)言編寫(xiě)簡(jiǎn)單的驗(yàn)證平臺(tái),例如構(gòu)造系統(tǒng)復(fù)位信號(hào)、系統(tǒng)時(shí)鐘信號(hào)以及一系列符合測(cè)試需求的激勵(lì)信號(hào),也可以通過(guò)讀取文件中的 Vector 向量數(shù)據(jù)來(lái)驅(qū)動(dòng)芯片的輸入信號(hào)。仿真過(guò)程中的輸入輸出結(jié)果,都能夠在專用的波形查看器軟件中進(jìn)行清晰展示與精準(zhǔn)測(cè)量。此時(shí)的芯片驗(yàn)證平臺(tái)完成了從硬件環(huán)境到軟件環(huán)境的根本性轉(zhuǎn)變,芯片測(cè)試不再受限于昂貴的硬件設(shè)備,許多原本需要物理實(shí)現(xiàn)的部件都可以通過(guò)軟件進(jìn)行模擬,驗(yàn)證的靈活性與便捷性得到了極大增強(qiáng),圖 3 所示為一個(gè)典型的芯片仿真軟件平臺(tái)。

圖3
隨著芯片功能需求的不斷增加,驗(yàn)證平臺(tái)的功能也需要持續(xù)拓展。后續(xù),TCL、Perl 等腳本語(yǔ)言開(kāi)始被用于編寫(xiě)更為復(fù)雜的激勵(lì)信號(hào),而 C/C++ 等高級(jí)編程語(yǔ)言則被用來(lái)擴(kuò)充驗(yàn)證平臺(tái)的功能模塊。但必須明確的是,這些語(yǔ)言并非專為芯片驗(yàn)證場(chǎng)景設(shè)計(jì)的專用語(yǔ)言:Verilog 語(yǔ)言的核心定位是邏輯設(shè)計(jì),其附帶的驗(yàn)證功能相對(duì)薄弱,難以滿足復(fù)雜場(chǎng)景的驗(yàn)證需求;TCL、Perl 作為通用腳本語(yǔ)言,雖然易于學(xué)習(xí)和掌握,能夠應(yīng)對(duì)部分基礎(chǔ)驗(yàn)證需求,但在功能適用性上與專業(yè)驗(yàn)證場(chǎng)景的匹配度不高,執(zhí)行效率也相對(duì)較低;C/C++ 作為通用編程語(yǔ)言,語(yǔ)法復(fù)雜、學(xué)習(xí)門檻高,對(duì)于驗(yàn)證人員而言掌握難度較大,且針對(duì)芯片驗(yàn)證場(chǎng)景的適配性不足,難以充分發(fā)揮其優(yōu)勢(shì)。值得強(qiáng)調(diào)的是,芯片測(cè)試平臺(tái)的軟件化轉(zhuǎn)型帶來(lái)了一項(xiàng)至關(guān)重要的改變 —— 實(shí)現(xiàn)了芯片測(cè)試平臺(tái)的高度自動(dòng)化,這是以往以手工操作為主的傳統(tǒng)硬件測(cè)試平臺(tái)無(wú)法比擬的核心優(yōu)勢(shì),極大提升了測(cè)試效率與準(zhǔn)確性。
SystemVerilog 語(yǔ)言的誕生
為了滿足日益復(fù)雜的芯片驗(yàn)證需求,產(chǎn)業(yè)界開(kāi)始致力于研發(fā)專用的驗(yàn)證語(yǔ)言,先后推出了 Vera、E 語(yǔ)言和 SystemVerilog 等多款產(chǎn)品。Vera 語(yǔ)言是業(yè)界首款專門為芯片驗(yàn)證而生的專用語(yǔ)言,采用面向?qū)ο蟮木幊趟枷?,具備較強(qiáng)的驗(yàn)證能力。但該語(yǔ)言為 Synopsys 公司獨(dú)家所有,僅能與 VCS 仿真器集成使用,導(dǎo)致其在國(guó)內(nèi)的推廣與應(yīng)用受到極大限制,使用者寥寥無(wú)幾,筆者也僅對(duì)其有初步了解,并未獲得實(shí)際應(yīng)用的機(jī)會(huì)。隨著 SystemVerilog 語(yǔ)言的推出與普及,Vera 語(yǔ)言逐漸失去了市場(chǎng)競(jìng)爭(zhēng)力,逐步退出了歷史舞臺(tái)。E 語(yǔ)言則是由一線驗(yàn)證人員主導(dǎo)發(fā)明的語(yǔ)言,其創(chuàng)新性地采用了功能覆蓋率驅(qū)動(dòng)的隨機(jī)測(cè)試方法,從理論層面系統(tǒng)回答了如何解決芯片驗(yàn)證充分性這一行業(yè)核心難題。E 語(yǔ)言的出現(xiàn)是芯片驗(yàn)證領(lǐng)域的一次重大技術(shù)進(jìn)步,其提出的功能覆蓋率驅(qū)動(dòng)的隨機(jī)測(cè)試方法,憑借科學(xué)性與實(shí)用性,一經(jīng)推出便得到了業(yè)界的廣泛認(rèn)可與積極應(yīng)用。筆者在 2003 年左右開(kāi)始接觸 E 語(yǔ)言,并在隨后的數(shù)年時(shí)間里對(duì)其進(jìn)行了深入的研究與探索,還將其核心功能成功集成到自主研發(fā)的驗(yàn)證平臺(tái)中,為實(shí)際項(xiàng)目提供了有力支撐。然而,E 語(yǔ)言在商業(yè)推廣與生態(tài)建設(shè)方面存在不足,這也間接催生了 SystemVerilog 語(yǔ)言的誕生。SystemVerilog 語(yǔ)言充分借鑒并繼承了 E 語(yǔ)言中功能覆蓋率及隨機(jī)約束的核心語(yǔ)法特點(diǎn),成為了 E 語(yǔ)言的理想替代品。加之其背后強(qiáng)大的商業(yè)推廣與生態(tài)建設(shè)力度,SystemVerilog 逐漸在市場(chǎng)中占據(jù)主導(dǎo)地位,成為當(dāng)前芯片驗(yàn)證領(lǐng)域的主流語(yǔ)言。
但需要明確的是,“如何開(kāi)展驗(yàn)證” 本質(zhì)上是一個(gè)技術(shù)實(shí)現(xiàn)層面的問(wèn)題,僅有專用的驗(yàn)證語(yǔ)言是遠(yuǎn)遠(yuǎn)不夠的。這就如同擁有了磚瓦、石材等各類建筑材料,并不意味著一定能夠建造出符合需求的房屋 —— 不同客戶的需求存在差異,不同建筑師的設(shè)計(jì)理念與能力也各不相同,最終建造出的房屋自然會(huì)存在天壤之別。同理,要完成不同類型、不同復(fù)雜度芯片的驗(yàn)證工作,也需要具備針對(duì)性的驗(yàn)證架構(gòu)與平臺(tái)作為支撐,以滿足多樣化的驗(yàn)證需求。經(jīng)過(guò)大量實(shí)際項(xiàng)目的實(shí)踐與探索,產(chǎn)業(yè)界逐步總結(jié)并形成了一套相對(duì)成熟的驗(yàn)證參考架構(gòu)。在各類芯片中,通信類芯片因其功能復(fù)雜、接口繁多,對(duì)驗(yàn)證平臺(tái)的性能、穩(wěn)定性與兼容性等方面提出了更高的要求。而能夠滿足通信類芯片驗(yàn)證需求的平臺(tái)架構(gòu),具備良好的擴(kuò)展性與靈活性,通過(guò)適當(dāng)?shù)暮?jiǎn)化、裁剪與適配,完全可以應(yīng)用到其他相對(duì)簡(jiǎn)單的芯片驗(yàn)證場(chǎng)景中,具備廣泛的適用性。
詳細(xì)功能
具體來(lái)看,該驗(yàn)證參考架構(gòu)的核心設(shè)計(jì)思路包括兩方面:首先,驗(yàn)證平臺(tái)需要采用分層設(shè)計(jì)的理念,將整體功能劃分為不同層級(jí),明確各層級(jí)的核心職責(zé);其次,在分層設(shè)計(jì)的基礎(chǔ)上,進(jìn)一步開(kāi)展模塊化設(shè)計(jì),而模塊化設(shè)計(jì)的前提是清晰定義各模塊之間的接口標(biāo)準(zhǔn)與調(diào)用關(guān)系。基于這一思路,芯片仿真驗(yàn)證平臺(tái)構(gòu)建了包含 6 層結(jié)構(gòu)的完整架構(gòu),分別為功能層、軟件層、覆蓋率用例層、數(shù)據(jù)層、調(diào)度層、信號(hào)層,各層的具體功能與交互邏輯如圖 4 所示。

圖4
各層的詳細(xì)功能如下:
覆蓋率用例層:核心職責(zé)是明確并定義驗(yàn)證過(guò)程中需要覆蓋的各類測(cè)試點(diǎn)和典型應(yīng)用場(chǎng)景,為驗(yàn)證工作劃定清晰的范圍與目標(biāo);
數(shù)據(jù)層:根據(jù)覆蓋率用例層設(shè)定的約束條件,自動(dòng)生成符合要求的隨機(jī)元數(shù)據(jù),并將這些零散的元數(shù)據(jù)按照統(tǒng)一標(biāo)準(zhǔn)封裝成相應(yīng)的數(shù)據(jù)包,為后續(xù)的激勵(lì)生成提供基礎(chǔ);
調(diào)度層:依據(jù)端口的配置信息與測(cè)試需求,對(duì)數(shù)據(jù)層生成的數(shù)據(jù)包進(jìn)行合理調(diào)度與分發(fā),準(zhǔn)確發(fā)送到對(duì)應(yīng)的激勵(lì)模塊,確保測(cè)試流程的有序推進(jìn);
信號(hào)層:根據(jù)待驗(yàn)證設(shè)計(jì)(DUV)對(duì)外暴露的接口類型,劃分為不同類型的專用端口,即激勵(lì)發(fā)送 TxBFM、數(shù)據(jù)接收 RxBFM、讀寫(xiě) rwBFM。其中,激勵(lì)發(fā)送 TxBFM 的作用是將調(diào)度器送來(lái)的數(shù)據(jù)包轉(zhuǎn)換為 DUV 能夠識(shí)別和接收的信號(hào)時(shí)序;數(shù)據(jù)接收 RxBFM 負(fù)責(zé)將 DUV 輸出的原始信號(hào)時(shí)序轉(zhuǎn)換為功能層可以處理的標(biāo)準(zhǔn)化數(shù)據(jù)包;讀寫(xiě) rwBFM 則實(shí)現(xiàn)驅(qū)動(dòng)軟件的讀寫(xiě)數(shù)據(jù)與 DUV 的讀寫(xiě)信號(hào)時(shí)序之間的雙向轉(zhuǎn)換,保障數(shù)據(jù)交互的一致性;
功能層:主要包含 DUV 的行為參考模型(BRM)和用于記錄預(yù)期結(jié)果的記分牌(Scoreboard)。BRM 接收調(diào)度器輸出的數(shù)據(jù)包,通過(guò)模擬 DUV 的工作邏輯計(jì)算出預(yù)期的結(jié)果數(shù)據(jù)包,并將其存儲(chǔ)在 Scoreboard 中;Scoreboard 則從 DUV 獲取實(shí)際的輸出結(jié)果,與存儲(chǔ)的預(yù)期結(jié)果進(jìn)行逐一比對(duì),判斷驗(yàn)證是否通過(guò);
軟件層:芯片的正常工作與功能實(shí)現(xiàn)往往需要軟件驅(qū)動(dòng)的支持,軟件引擎(Software Engine,SE)的核心功能是將驅(qū)動(dòng) Driver 發(fā)出的讀寫(xiě)指令,通過(guò)讀寫(xiě) rwBFM 傳遞給 DUV,實(shí)現(xiàn)對(duì) DUV 內(nèi)部寄存器的數(shù)據(jù)配置與數(shù)據(jù)讀取操作,為芯片功能驗(yàn)證提供軟件層面的支撐。
芯片驗(yàn)證平臺(tái)進(jìn)行劃分
若按照技術(shù)發(fā)展的代際特征對(duì)芯片驗(yàn)證平臺(tái)進(jìn)行劃分,可將其分為以下六代:
第一代芯片測(cè)試平臺(tái):即圖 1 所示的芯片測(cè)試平臺(tái),是最為原始的芯片測(cè)試方案,完全依賴基礎(chǔ)元器件與手動(dòng)操作完成測(cè)試;
第二代芯片測(cè)試平臺(tái):對(duì)應(yīng)圖 2 所示的大規(guī)模邏輯芯片測(cè)試平臺(tái),在專業(yè)硬件設(shè)備與測(cè)試儀器的支持下開(kāi)展芯片測(cè)試,也是目前行業(yè)內(nèi)廣泛應(yīng)用的典型 FPGA測(cè)試平臺(tái);
第三代芯片仿真驗(yàn)證平臺(tái):如圖 3 所示的芯片仿真軟件平臺(tái),標(biāo)志著驗(yàn)證工作徹底擺脫了對(duì)物理硬件設(shè)備的依賴,完全采用軟件模擬仿真的手段進(jìn)行芯片驗(yàn)證。該代平臺(tái)的主要特征是借助 TCL、Perl、C/C++ 等各類通用編程語(yǔ)言及相關(guān)軟件工具,使芯片仿真驗(yàn)證的自動(dòng)化水平得到了大幅提升;
第四代芯片仿真驗(yàn)證平臺(tái):如圖 4 所示的芯片仿真驗(yàn)證平臺(tái)架構(gòu),是在第三代平臺(tái)的基礎(chǔ)上逐步發(fā)展而來(lái),形成了標(biāo)準(zhǔn)化的驗(yàn)證方法學(xué)與統(tǒng)一的驗(yàn)證平臺(tái)架構(gòu),并引入了 Vera、E 語(yǔ)言、SystemVerilog 等專用驗(yàn)證語(yǔ)言,目前仍是行業(yè)內(nèi)占主導(dǎo)地位的仿真驗(yàn)證平臺(tái);
第五代芯片模擬器(Emulator):這是基于大規(guī)模 FPGA 或?qū)S?ASIC 芯片構(gòu)建的硬件加速器,其本質(zhì)上是第二代芯片測(cè)試平臺(tái)的技術(shù)升級(jí)產(chǎn)物。該代模擬器有機(jī)結(jié)合了第二代硬件測(cè)試平臺(tái)的穩(wěn)定性與第四代仿真驗(yàn)證平臺(tái)的自動(dòng)化優(yōu)勢(shì),在驗(yàn)證規(guī)模、自動(dòng)化程度、仿真速度等方面均實(shí)現(xiàn)了質(zhì)的提升;
第六代芯片仿真驗(yàn)證平臺(tái):作為面向未來(lái)的新一代仿真驗(yàn)證方案,其核心優(yōu)勢(shì)在于支持多核、多機(jī)并行驗(yàn)證,能夠使仿真速度得到突破性提升。該平臺(tái)采用驗(yàn)證代碼與設(shè)計(jì)代碼分離的架構(gòu)設(shè)計(jì),兩類代碼各自獨(dú)立進(jìn)行多核并行加速,從根本上解決了資源爭(zhēng)搶問(wèn)題。其中,PVM 驗(yàn)證平臺(tái)是第六代芯片仿真驗(yàn)證平臺(tái)的基礎(chǔ)實(shí)現(xiàn)形態(tài),其核心設(shè)計(jì)思路是將驗(yàn)證代碼與設(shè)計(jì)代碼進(jìn)行分離,使驗(yàn)證代碼在其他獨(dú)立內(nèi)核上執(zhí)行,避免與設(shè)計(jì)代碼爭(zhēng)奪 CPU 運(yùn)算資源;進(jìn)一步按照功能組件對(duì)驗(yàn)證代碼進(jìn)行拆分,再分配到不同內(nèi)核上并行執(zhí)行;若在 PVM 驗(yàn)證平臺(tái)的基礎(chǔ)上,將多個(gè)仿真進(jìn)程分配到不同服務(wù)器上協(xié)同執(zhí)行,即可實(shí)現(xiàn)分布式仿真,這類平臺(tái)被定義為 DVM 驗(yàn)證平臺(tái)。除了核心的仿真加速能力外,第六代芯片仿真驗(yàn)證平臺(tái)還具備松耦合、易集成的重要特征:測(cè)試用例可根據(jù)具體驗(yàn)證需求靈活定制驗(yàn)證平臺(tái),且整個(gè)定制過(guò)程無(wú)需進(jìn)行編譯操作,極大提升了驗(yàn)證效率與靈活性。
-
cpu
+關(guān)注
關(guān)注
68文章
11253瀏覽量
223895 -
芯片驗(yàn)證
+關(guān)注
關(guān)注
5文章
42瀏覽量
47895
原文標(biāo)題:芯片驗(yàn)證方法演進(jìn)
文章出處:【微信號(hào):bdtdsj,微信公眾號(hào):中科院半導(dǎo)體所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
先進(jìn)封裝技術(shù)的演進(jìn)過(guò)程
哪一種芯片不屬于 FPGA 的演進(jìn)過(guò)程中的芯片類型
無(wú)線通訊演進(jìn)過(guò)程概述
WCDMA技術(shù)演進(jìn)過(guò)程
CDMA技術(shù)分階段向LTE演進(jìn)過(guò)程
云服務(wù)架構(gòu)的演進(jìn)過(guò)程
淺談關(guān)于云服務(wù)架構(gòu)的演進(jìn)過(guò)程
基于FPGA的驗(yàn)證平臺(tái)及有效的SoC驗(yàn)證過(guò)程和方法
從2G到5G,核心網(wǎng)的演進(jìn)過(guò)程和思路解析
5G核心網(wǎng)演進(jìn)過(guò)程與現(xiàn)存問(wèn)題分析
SaaS的演進(jìn)過(guò)程(SaaS,PaaS和IaaS及特點(diǎn))
百度垂類離線計(jì)算系統(tǒng)的演進(jìn)過(guò)程 百度垂類離線計(jì)算系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
光纖網(wǎng)絡(luò)向全I(xiàn)P傳送網(wǎng)演進(jìn)過(guò)程
淺談芯片驗(yàn)證方法的演進(jìn)過(guò)程
評(píng)論