“我們基于 HDL Verifier 的新工作流程的一個明顯優(yōu)勢是能夠快速識別缺陷來源?!?—— Steffen L?bel,NXP
作者:來自 NXP的Steffen L?bel 和 Jan Hahlbeck
*本文內(nèi)容采用了機器翻譯
信號處理集成電路(IC)設(shè)計的驗證帶來了一些獨特的挑戰(zhàn),這些挑戰(zhàn)可能會給傳統(tǒng)的測試方法帶來壓力。濾波器、混頻器和其他高級信號處理功能的算法復(fù)雜性需要嚴(yán)格的驗證,以確保實施的 IC 能夠按照位真精度按預(yù)期運行。此外,由于 IC 通常在各種可能的輸入和配置下運行,因此必須評估極端情況——罕見但關(guān)鍵的情況,這些情況可能會避開專注于預(yù)定義、可預(yù)測序列的測試計劃。
我在 NXP 的團隊采用了一種新的 IC 驗證工作流程來應(yīng)對這些挑戰(zhàn)。基于 MATLAB,Simulink 和 HDL Verifier,該工作流程結(jié)合了約束隨機驗證和通用驗證方法 (UVM) 技術(shù)來驗證邊緣情況并使用隨機輸入探索狀態(tài)空間,同時通過約束保持控制(圖 1)。在這個最近用來驗證汽車行業(yè)收音機調(diào)諧器 IC 的工作流程中,MATLAB 和 Simulink 模型使用 HDL Verifier 導(dǎo)出為 SystemVerilog DPI-C 組件,并作為參考模型集成到我們基于 Cadence Xcelium 仿真器的驗證環(huán)境的驗證測試平臺中。這種方法不僅使我們能夠?qū)Ⅱ炞C時間縮短 20% 到 30%,而且還使我們能夠提高測試覆蓋率并在開發(fā)早期發(fā)現(xiàn)更多實施缺陷。
圖 1. IC 驗證工作流程結(jié)合了約束隨機驗證和 UVM 技術(shù)。
新舊工作流程對比
過去測試類似的 IC 設(shè)計時,我們通常使用MATLAB為整個系統(tǒng)生成輸入刺激。然后,我們會在 MATLAB 或 Simulink 中運行模擬,并將結(jié)果作為黃金參考模式。一旦 RTL 實現(xiàn)完成,我們將對 DUT 施加相同的刺激并根據(jù)黃金參考檢查其結(jié)果。雖然這種方法有效,但也有一些缺點。首先,驗證大部分是端到端的,由于所有組件都是一起測試的,因此很難確定缺陷的根本原因。其次,約束隨機驗證不易進行。因此,雖然常見場景和用例得到了驗證,但許多邊緣情況卻沒有得到驗證。第三,它沒有遵循 UVM,而 UVM 已經(jīng)成為我們實現(xiàn)測試平臺的標(biāo)準(zhǔn)框架。
相比之下,新的工作流程使得我們能夠在 HDL 仿真環(huán)境(Cadence Xcelium)中直接重用現(xiàn)有的 MATLAB 和 Simulink 參考模型。參考模型中的每個組件都與 DUT 中的對應(yīng)組件相對應(yīng)。例如,圖 2 所示的示例信號處理鏈包括在 Simulink 中建模的濾波器,后跟混頻器和在 MATLAB 中建模的第二個濾波器。我們使用 HDL Verifier 為帶有 SystemVerilog DPI-C 包裝器的模型生成 C 代碼,使我們能夠?qū)⒚總€組件集成到測試臺中。
在 HDL 仿真環(huán)境中,參考模型組件和 DUT 組件會并行運行。與此同時,一個充當(dāng) UVM 記分板角色的檢查器會實時評估它們的輸出。該檢查器會對每一個關(guān)聯(lián)組件對(例如,參考模型的混頻器與 DUT的混頻器)的輸出以及整個端到端鏈路的輸出,進行行為一致比較。
圖 2. 用于比較 MATLAB 和 Simulink 生成的參考模型組件(頂行)的結(jié)果與相應(yīng) DUT 組件(底行)的結(jié)果的并行結(jié)構(gòu)。
隨機化輸入并可視化結(jié)果
在測試臺上運行初步測試(在本例中使用一組預(yù)定義的 AM、FM 和數(shù)字音頻廣播 (DAB) 無線電流)以驗證信號處理算法的基本功能后,工作流程的下一步是約束隨機驗證。此階段涉及大量模擬,其中設(shè)計的所有配置設(shè)置都被分配了約束范圍內(nèi)的隨機值。例如,我們改變混頻器設(shè)置、濾波器設(shè)置、延遲、增益和其他關(guān)鍵配置參數(shù),并運行模擬來評估每組隨機配置選項的設(shè)計性能。
對于每個測試,我們可以查看詳細(xì)的結(jié)果,包括所使用的具體設(shè)置、用作 IP 刺激的輸入、參考模型實現(xiàn)的結(jié)果、RTL 實現(xiàn)的結(jié)果以及檢查器比較的結(jié)果(圖 3)。
圖 3. 波形顯示顯示隨機 IP 寄存器設(shè)置、IP 輸入、RTL 輸出、參考模型輸出和檢查器統(tǒng)計數(shù)據(jù)。
我們還審查了顯示一系列完整組件的匯總結(jié)果的報告(圖 4)。這些報告顯示了對鏈中每個組件執(zhí)行的檢查次數(shù)以及錯誤數(shù)量 - 即在 RTL 和參考模型輸出之間發(fā)現(xiàn)的差異數(shù)量。
圖 4. 顯示多個組件的測試結(jié)果的摘要報告。其中,對 H6 組件的測試發(fā)現(xiàn)了 45 個錯誤。
當(dāng)發(fā)現(xiàn)錯誤時,我們會檢查 MATLAB 或 Simulink 中的參考模型實現(xiàn),并檢查 RTL 實現(xiàn)。在某些情況下,我們已經(jīng)將差異的根源追溯到原始參考設(shè)計,但問題更多時候源于 RTL 實現(xiàn)錯誤。無論哪種情況,一旦缺陷被診斷和糾正,我們就會重新運行測試模擬,以驗證修復(fù)是否完全解決了參考模型和 RTL 實現(xiàn)之間的任何差異。
關(guān)鍵改進和后續(xù)步驟
我們基于 HDL Verifier 的新工作流程的一個明顯優(yōu)勢是能夠快速識別缺陷來源。與依賴端到端測試的方法相比,面向 UVM 的方法可以進行組件級和系統(tǒng)級測試(就像我們所應(yīng)用的方法一樣),從而更容易地查明具有缺陷的子系統(tǒng)以及可用于復(fù)制缺陷的該組件的特定刺激。
此外,由于隨機設(shè)置通常以設(shè)計工程師未曾預(yù)料到的方式測試系統(tǒng),與專注于成熟用例的傳統(tǒng)測試計劃相比,新的工作流程有助于在開發(fā)過程中更早地發(fā)現(xiàn)實施缺陷。簡而言之,我們無需人工檢查即可發(fā)現(xiàn)缺陷,也無需花時間考慮要測試的異常場景和邊緣情況。
我們能夠在 HDL 仿真中重復(fù)使用現(xiàn)有的 MATLAB 和 Simulink 模型,并且這種重復(fù)使用的好處會在 IC 的每次后續(xù)旋轉(zhuǎn)或修訂中繼續(xù)疊加。綜合起來,這些優(yōu)勢使我們在無線電信號處理 IC 上實現(xiàn)了驗證時間的大幅縮短,最高可達 30%?;谶@一指標(biāo)以及我們已實現(xiàn)的其他優(yōu)勢,其他 NXP 團隊正在尋求采用相同的工作流程來開發(fā)雷達 IC 和其他 IC 設(shè)計的無線電前端。
-
集成電路
+關(guān)注
關(guān)注
5439文章
12310瀏覽量
371114 -
matlab
+關(guān)注
關(guān)注
189文章
3009瀏覽量
236631 -
仿真
+關(guān)注
關(guān)注
52文章
4356瀏覽量
137224 -
混頻器
+關(guān)注
關(guān)注
10文章
852瀏覽量
48773
原文標(biāo)題:NXP×MATLAB | 使用 HDL Verifier 加速信號處理集成電路的驗證
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄

北大verilog課件從HDL到版圖-數(shù)字集成電路設(shè)計入門
集成電路的設(shè)計與概述
集成電路可測性設(shè)計方法
數(shù)字集成電路設(shè)計中的硬件加速驗證技術(shù)
利用ADMS平臺加速混合信號集成電路設(shè)計
rbd單片機信號處理集成電路

Motorola集成電路應(yīng)用技術(shù)叢書 數(shù)字信號處理原理及應(yīng)用

評論