HDL設(shè)計和驗證與System Generator相結(jié)合
Xilinx®SystemGeneratoRForDSP是用來協(xié)助系統(tǒng)設(shè)計的MATLABSimulink模塊集。SystemGeneratorforDSP在熟悉的MATLAB環(huán)境中引入XilinxFPGA對象,讓您能夠?qū)υO(shè)計進行功能仿真,并且使用MATLAB環(huán)境對照理想?yún)⒖冀Y(jié)果驗證位精度和時序精度模型。這些參考結(jié)果可以在MATLAB環(huán)境外部生成,也可以在其內(nèi)部生成,在這兩種情況下您均可從MATLAB環(huán)境中引用XilinxFPGA硬件平臺。
SystemGenerator為功能仿真和硬件驗證提供容易配置的測試平臺,以此來輔助完成HDL設(shè)計任務(wù)。您可以連接ModelSim之類HDL仿真器的內(nèi)置接口在MATLAB內(nèi)部仿真HDL代碼。圍繞HDL代碼所構(gòu)建的SystemGeneratorforDSP測試平臺提供強大而快捷的仿真環(huán)境,并與ModelSim無縫互動,而且這種環(huán)境很容易設(shè)置。
我們還可以用同樣的環(huán)境測試實際硬件中運行的HDL代碼,且無需任何修改。硬件協(xié)同仿真系統(tǒng)可以使用之前支持的FPGA平臺(如XilinxML506開發(fā)板)由Simulink來執(zhí)行單步時鐘硬件操作或?qū)崟r數(shù)據(jù)突發(fā)操作。
CABAC模塊的系統(tǒng)化設(shè)計和驗證
H.264/AVC視頻編碼器是多年來群策群力的成果,所形成的標準以顯著低于以前標準的比特率提供優(yōu)良的視頻品質(zhì)。開發(fā)人員可以使用一種稱為H.264/AVCJointModel(JM)的參考C源代碼。并且可以用此源代碼作為HDL中所實現(xiàn)功能的參考起點。
上下文自適應二進制算術(shù)編碼(CABAC)是H.264視頻標準的組成部分。CABAC模塊的功能是用標準通訊組件在HDL中手工轉(zhuǎn)換的。在這種驗證中使用最多的組件是FIFO接口。原始JM源代碼還可以用來生成模塊的測試矢量文件。
我們還構(gòu)建了另外一種測試環(huán)境,它使用JM模型生成CABACHDL模塊的輸入激勵并依據(jù)JM參考模型產(chǎn)生的結(jié)果來驗證HDL的輸出結(jié)果。這是對傳統(tǒng)HDL測試平臺基礎(chǔ)上的重大改進。
模塊驗證過程包括以下三個步驟:
1.HDL功能仿真。帶有輸入和輸出測試矢量的MATLAB驗證可以分別輸入到ModelSim中進行仿真然后比較結(jié)果。
2.硬件功能驗證。這是一個中間步驟,其目的是找出在HDL功能仿真過程中未發(fā)現(xiàn)的所有漏洞。此階段通過SystemGeneratorforDSP控制單步時鐘。在JM源模型生成的文件中我們可以提取輸入和輸出測試矢量。在SystemGeneratorforDSP中構(gòu)建文件接口時大家應特別慎重,以防出錯。
3.硬件實時驗證。使用HDL功能仿真的輸入測試矢量以實際的輸入速率和時鐘輸入到硬件中運行,同時采集硬件的輸出,并將其輸入到MATLAB中與輸出測試矢量進行比較。
HDL功能仿真
在此步驟中,我們可以將ModelSim仿真與SystemGeneratorforDSP仿真相結(jié)合,如圖1所示。
為了在SystemGeneratorforDSP中仿真HDL模塊,我們可以通過在邊界處插入轉(zhuǎn)換器,以此來創(chuàng)建一個黑匣子來代表VHDL的頂層文件,亦如圖1所示。這些轉(zhuǎn)換器將ModelSim的未知“X”狀態(tài)轉(zhuǎn)換成Simulink仿真中的零。圖2所示為整體仿真的測試平臺設(shè)置。
在圖2中,“Slice_inputsubsystem”模塊和“MB_inputsubsystem”模塊通過使用專用接口代碼來讀取JM源代碼創(chuàng)建的包含激勵的文件?!癘utput_compare”子系統(tǒng)是特殊模塊,該模塊將仿真的結(jié)果與JM源代碼產(chǎn)生的原始測試矢量結(jié)果進行比較。此仿真是以單步執(zhí)行的。
使用ChipScope分析器用硬件進行功能仿真
下一步我們可以使用熟悉的環(huán)境,在這個環(huán)境中將整個HDL模塊映射到硬件上,同時還需要帶有以太網(wǎng)和JTAG的ML506開發(fā)板。以太網(wǎng)連接用來提供并讀取激勵數(shù)據(jù),而JTAG端口則用來連接ChipScope分析器。盡管這給用戶的感受是一樣的,但現(xiàn)在HDL是完全在硬件中實現(xiàn)。圖3所示為系統(tǒng)設(shè)置。
這種環(huán)境設(shè)置的優(yōu)點是您可以完全從特定接口的細節(jié)中抽象出來,而不必再去了解如何用以太網(wǎng)提供輸入激勵或從CABAC模塊中如何讀取輸出。圖3所示專用網(wǎng)關(guān)模塊就是完全從這些細節(jié)中抽象出來的。
實時硬件驗證
前述仿真和操作為在時間層上進行模塊的詳細執(zhí)行提供了良好的環(huán)境。在完整的設(shè)計中,我們通常希望使用代表真實測試情況的大型測試集。顯然單周期或單步接口操作不適合這種驗證方式。
現(xiàn)在,使用與ML506開發(fā)板相同的硬件設(shè)置,可以用通過一種稱為M-HWcosim的新型MATLAB接口所提供的大型數(shù)據(jù)集進行驗證。M-HWcosim是MATLABM文件向硬件傳輸數(shù)據(jù)的API?,F(xiàn)在,MATLAB腳本編寫環(huán)境可以向在硬件中運行的實際CABAC模塊提供所有數(shù)據(jù)。
具有流程控制的FIFO允許在運行MATLAB的計算機和全速運行CABAC模塊的硬件之間進行異步通訊。這種環(huán)境抽象出該接口的細節(jié),在CABAC模塊的大型數(shù)據(jù)集驗證中起著重要作用。有關(guān)這種環(huán)境的詳情,請見www.xilinx.com/cn上的白皮書《用SystemGenerator進行系統(tǒng)化HDL設(shè)計、驗證和鑒定》。
結(jié)論
在完整的系統(tǒng)設(shè)計中,驗證的工作量常常不亞于實際設(shè)計。符合H.264標準的CABAC模塊設(shè)計借助JM源代碼模型從高級語言生成測試矢量。其中,HDL設(shè)計驗證與SystemGeneratoRForDSP和MATLAB相結(jié)合。另外,與高速運行CABAC模塊的開發(fā)板相結(jié)合則是對傳統(tǒng)環(huán)境的重大改進。這顯著縮短了構(gòu)建驗證環(huán)境所需的時間,從而使您能集中精力于手頭的實際模塊。
來源:miaomi0次