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

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

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

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

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