RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用MATLAB和Simulink創(chuàng)建FPGA原型的最佳方法

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2023-08-06 10:49 ? 次閱讀

芯片設計和驗證工程師通常要為在硅片上實現(xiàn)的每一行RTL代碼寫出多達10行測試平臺代碼。驗證任務在設計周期內可能會占用50%或更多的時間。盡管如此辛 苦,仍有接近60%的芯片存在功能瑕疵,需要返工。由于HDL仿真不足以發(fā)現(xiàn)系統(tǒng)級錯誤,芯片設計人員正利用FPGA來加速算法創(chuàng)建和原型設計。

利用FPGA處理大型測試數(shù)據(jù)集可以使工程師快速評估算法和架構并迅速做出權衡。工程師也可以在實際環(huán)境下測試設計,避免因使用HDL仿真器耗大量時 間。系統(tǒng)級設計和驗證工具(如matlabSimulink)通過在FPGA上快速建立算法原型,可以幫助工程師實現(xiàn)這些優(yōu)勢。

本文將介紹使用MATLAB和Simulink創(chuàng)建FPGA原型的最佳方法。這些最佳方法包括:在設計過程初期分析定點量化的效應并優(yōu)化字長,產(chǎn)生更 小、更高效的實現(xiàn)方案;利用自動HDL代碼生成功能,更快生成FPGA原型;重用具有HDL協(xié)同仿真功能的系統(tǒng)級測試平臺,采用系統(tǒng)級指標分析HDL實現(xiàn) 方案;通過FPGA在環(huán)仿真加速驗證(圖1)。

97e25b5e-3402-11ee-9e74-dac502259ad0.jpg

為什么在FPGA上建立原型?

在FPGA上建立算法原型可以增強工程師的信心,使他們相信自己的算法在實際環(huán)境中的表現(xiàn)能夠與預期相符。除了高速運行測試向量和仿真方案,工程師還可 以利用FPGA原型試驗軟件功能以及諸如RF模擬子系統(tǒng)的相關系統(tǒng)級功能。此外,由于FPGA原型運行速度更快,可以使用大型數(shù)據(jù)集,暴露出仿真模型未 能發(fā)現(xiàn)的缺陷。

采用HDL代碼生成功能的基于模型的設計可以使工程師有效地建立FPGA原型,如圖2所示。該圖向我們展示了這樣一種現(xiàn)實情況:工程師經(jīng)??s短詳細設計 階段,試圖通過盡快開始硬件開發(fā)階段以符合開發(fā)周期的要求。現(xiàn)實中,當工程師發(fā)現(xiàn)定點算法達不到系統(tǒng)要求時,就得在HDL創(chuàng)建階段重新審視詳細設計階段。這樣的重疊工作將使HDL創(chuàng)建階段延長(如紫色長條所示),并可能引發(fā)各種設計問題(如膠合邏輯或設計補丁)。

97ff3daa-3402-11ee-9e74-dac502259ad0.jpg

由于自動HDL代碼生成流程比手工編碼快,工程師得以把節(jié)省下來的時間投入到詳細設計階段,生成更優(yōu)質的定點算法。與手動的工作流程相比,這種方法使工程師能夠以更快的速度生成質量更佳的FPGA原型。

數(shù)字下變頻器案例研究

為了說明采用基于模型的設計建立FPGA原型的最佳方法,可借助數(shù)字下變頻器(DDC)來進行案例研究。在眾多的通信系統(tǒng)中,DDC是一種普通的構建塊 (圖3)。該構建塊用于將高速通帶輸入轉換為低速基帶輸出,以便使用較低采樣率時鐘進行處理。這樣,在硬件實施階段便可降低功耗、節(jié)約資源。DDC的主要 部件包括:數(shù)控振蕩器(NCO)、混頻器和數(shù)字濾波器鏈路(圖4)。

981bbc82-3402-11ee-9e74-dac502259ad0.jpg

在設計過程初期分析定點量化的效應

工程師通常使用浮點數(shù)據(jù)類型來測試新的構想和開發(fā)初始算法。然而,F(xiàn)PGA和ASIC硬件實現(xiàn)要求轉換為定點數(shù)據(jù)類型,而這往往會造成量化誤差。使用手 動工作流程時,通常在HDL編碼過程中執(zhí)行定點量化。在該工作流程中,工程師無法輕易地通過比較定點表示形式和浮點參考值量化定點量化的效應,而分析針對 溢出的HDL實現(xiàn)也同樣不易。

為了明智確定所需的小數(shù)位數(shù),在開始HDL編碼過程之前,工程師需要某種方法來比較浮點仿真結果與定點仿真結果。增加小數(shù)位數(shù)可以減小量化誤差;不過,這種方法需要增加字長(區(qū)域增多、功耗升高)。

例如,圖5展示了DDC濾波器鏈路中低通濾波器第一階段浮點與定點仿真結果的差異。這些差異是因定點量化所致。上方圖形顯示了浮點與定點仿真結果的重疊效果。下方圖形顯示了圖中每一點的量化誤差。工程師可能需要根據(jù)設計規(guī)范來增加小數(shù)位數(shù)以減小由此引出的量化誤差。

98419024-3402-11ee-9e74-dac502259ad0.jpg

除了選擇小數(shù)位數(shù)之外,工程師還需要優(yōu)化字長,實現(xiàn)低功耗和區(qū)域優(yōu)化的設計。

在DDC案例研究中,工程師使用Simulink定點模塊組將部分數(shù)字濾波器鏈路的字長減少了8位之多(圖6)。

98641752-3402-11ee-9e74-dac502259ad0.jpg

利用自動HDL代碼生成功能更快生成FPGA原型

在生成FPGA原型時,HDL代碼必不可少。工程師手工編寫了Verilog或VHDL代碼。作為替代選擇,使用HDL編碼器自動生成HDL代碼具有眾 多明顯優(yōu)勢。工程師可以快速地評估能否在硬件中實施當前算法;迅速評估不同的算法實現(xiàn),選擇最佳方案;并在FPGA上更快地建立算法原型。

對于DDC案例研究而言,可以在55秒內生成了5780行HDL代碼。工程師可以瀏覽并很快理解代碼(圖7)。自動代碼生成功能允許工程師對系統(tǒng)級模型進行更改,并且,通過重新生成HDL代碼,該功能可以在數(shù)分鐘之內生成更新的HDL實現(xiàn)方案。

987e24d0-3402-11ee-9e74-dac502259ad0.jpg

重用具有協(xié)同仿真功能的系統(tǒng)級測試平臺進行HDL驗證

功能驗證:HDL協(xié)同仿真使工程師能夠重用Simulink模型,將激勵驅動至HDL仿真器,并對仿真輸出執(zhí)行交互式系統(tǒng)級分析(圖8)。

989c7dc2-3402-11ee-9e74-dac502259ad0.jpg

HDL仿真僅提供數(shù)字波形輸出,而HDL協(xié)同仿真則提供了顯示HDL代碼的完整視圖,并可以訪問Simulink的全套系統(tǒng)級分析工具。當工程師觀察到預期結果與HDL仿真結果存在差異時,可借助協(xié)同仿真進一步了解該失配所產(chǎn)生的系統(tǒng)級影響。

例如,在圖9中,頻譜儀視圖可以使工程師做出明智決定,忽略預期結果與HDL仿真結果之間的失配,其原因是該差異位于阻帶區(qū)。相比之下,數(shù)字波形輸出只 是將預期結果與HDL仿真結果的失配標記為誤差。盡管工程師最終可能得出相同的結論,但這將需要更多的時間完成所需的分析。

98b37112-3402-11ee-9e74-dac502259ad0.jpg

測試覆蓋率:工程師可以使用HDL驗證工具、Simulink設計驗證工具和ModelSim/Questa自動執(zhí)行代碼覆蓋率分析。在該工作流程 中,Simulink設計驗證工具可針對模型覆蓋率生成一套測試用例。HDL驗證工具自動使用這一套測試用例運行ModelSim/Questa,收集代 碼覆蓋率數(shù)據(jù),以對生成的代碼加以全面分析。

使用FPGA在環(huán)仿真加速驗證

使用系統(tǒng)級仿真和HDL協(xié)同仿真驗證DDC算法之后,便可以立即在FPGA目標平臺上部署DDC算法。對算法執(zhí)行基于FPGA的驗證(也稱為FPGA在 環(huán)仿真)可以增強對算法在現(xiàn)實環(huán)境中有效運行的信心。相比基于主機的HDL仿真,該驗證可以使工程師更快地運行測試方案。

對于DDC算法而言,可以使用Simulink模型驅動FPGA輸入激勵并分析FPGA的輸出(圖10)。與HDL協(xié)同仿真一樣,在Simulink中始終可以利用相關數(shù)據(jù)進行分析。

98d14a8e-3402-11ee-9e74-dac502259ad0.jpg

圖11對比了HDL協(xié)同仿真和FPGA在環(huán)仿真這兩種用于DDC設計的驗證方法。在本案例中,F(xiàn)PGA在環(huán)仿真的速度是HDL協(xié)同仿真的23倍。這樣的 速度提升使工程師能夠運行更廣泛的測試用例并對其設計進行回歸測試。這使他們能夠識別出有待進一步分析的潛在問題區(qū)域。

98e3139a-3402-11ee-9e74-dac502259ad0.jpg

盡管HDL協(xié)同仿真速度較慢,但它卻提高了HDL代碼的可見性。因此,它很適合針對FPGA在環(huán)仿真過程中發(fā)現(xiàn)的問題區(qū)域進行更詳細的分析。

本文小結

如果工程師遵循本文所述的四種最佳方法,開發(fā)FPGA原型將比傳統(tǒng)的手動工作流程快出許多,并能使工程師信心倍增。此外,工程師還可以在整個開發(fā)過程中 繼續(xù)優(yōu)化自己的模型,并快速地重新生成有關FPGA實現(xiàn)的代碼。與依賴手工編寫HDL的傳統(tǒng)工作流程相比,這種能力可以顯著縮短設計迭代的周期。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    602986
  • matlab
    +關注

    關注

    185

    文章

    2974

    瀏覽量

    230383
  • 算法
    +關注

    關注

    23

    文章

    4607

    瀏覽量

    92831
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59760
  • Simulink
    +關注

    關注

    22

    文章

    533

    瀏覽量

    62380

原文標題:在FPGA上建立MATLAB和Simulink算法原型

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    專家支招:使用MATLABSimulink算法創(chuàng)建FPGA原型

    本文將介紹使用MATLABSimulink創(chuàng)建FPGA原型最佳
    發(fā)表于 01-28 11:08 ?1.7w次閱讀
    專家支招:使用<b class='flag-5'>MATLAB</b>和<b class='flag-5'>Simulink</b>算法<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>FPGA</b><b class='flag-5'>原型</b>

    使用MATLAB Simulink和HDL編碼器創(chuàng)建自定義IP--AWB

    自動白平衡模塊的設計是使用 HDL Coder 在 MATLABSimulink創(chuàng)建的。HDL Coder能夠生成 HDL 文件,這些文件可以作為 IP 在我們的目標 FPGA
    的頭像 發(fā)表于 11-13 09:27 ?1155次閱讀
    使用<b class='flag-5'>MATLAB</b> <b class='flag-5'>Simulink</b>和HDL編碼器<b class='flag-5'>創(chuàng)建</b>自定義IP--AWB

    基于MATLAB/Simulink的系統(tǒng)仿真技術與應用

    基于MATLAB_Simulink的系統(tǒng)仿真技術與應用. 本書首先介紹了MATLAB語言的程序設計的基本內容,在此基礎上系統(tǒng)介紹了系統(tǒng)仿真所必要的數(shù)值計算方法MATLAB
    發(fā)表于 06-19 13:15

    MATLABSimulink算法原型如何在FPGA上適配?

    ,使用HDL編碼器自動生成HDL代碼具有眾多明顯優(yōu)勢。工程師可以快速地評估能否在硬件中實施當前算法;迅速評估不同的算法實現(xiàn),選擇最佳方案;并在FPGA上更快地建立算法原型。  對于DDC案例研究而言
    發(fā)表于 09-04 09:26

    如何在FPGA上建立MATLABSimulink算法原型?

    芯片設計和驗證工程師通常要為在硅片上實現(xiàn)的每一行RTL代碼寫出多達10行測試平臺代碼。驗證任務在設計周期內可能會占用50%或更多的時間。盡管如此辛苦,仍有接近60%的芯片存在功能瑕疵,需要返工。由于HDL仿真不足以發(fā)現(xiàn)系統(tǒng)級錯誤,芯片設計人員正利用FPGA來加速算法創(chuàng)建
    發(fā)表于 09-18 07:50

    FPGA上建立MATLABSimulink算法原型的四種最佳方法

    因使用HDL仿真器耗大量時 間。系統(tǒng)級設計和驗證工具(如MATLABSimulink)通過在FPGA上快速建立算法原型,可以幫助工程師實現(xiàn)這些優(yōu)勢。本文將介紹使用
    發(fā)表于 05-04 07:00

    MATLABSIMULINK、FPGA是什么

    MATLAB、SIMULINK、FPGA是最流行的技術目前MATLAB,SIMULINK,FPGA
    發(fā)表于 07-12 08:14

    淺析MATLABSimulink嵌入式視覺應用

    Jetson 和 DRIVE)上建立原型。以 FPGA 和 ASIC 為目標使用 HDL Coder 從視覺算法生成 Verilog 和 VHDL 代碼,這些算法是您使用 Simulink 和 Vision
    發(fā)表于 12-04 08:00

    使用USRP E310和MATLABSimulink進行原型設計和測試軟件定義的無線電

    使用USRP E310和MATLABSimulink進行原型設計和測試軟件定義的無線電(SDR)系統(tǒng)通信系統(tǒng)工具箱?支持包USRP?嵌入式系列收音機使您可以使用MATLAB?和
    發(fā)表于 12-21 07:56

    Matlab/Simulink電路建模學習筆記

    本文為作者Matlab/Simulink電路建模學習筆記歡迎交流討論,喜歡的話點個贊吧1、打開Simulink創(chuàng)建文件如圖點擊即可:2、選擇電路所需元件,連接電路選擇元器件主要有兩種
    發(fā)表于 12-31 07:32

    Matlab/simulinkFPGA設計中的應用

    文中首先分析了MATLAB/Simulink 中DSP Builder 模塊庫在FPGA 設計中優(yōu)點,然后結合FSK 信號的產(chǎn)生原理,給出了如何利用DSP Builder 模塊庫建立FSK 信號發(fā)生器模型,以及對FSK 信號發(fā)生
    發(fā)表于 08-27 12:07 ?87次下載

    VB和Matlab/Simulink的接口方法

    VB和Matlab/Simulink的接口方法:Attribute VB_Name = "Form1"Attribute VB_GlobalNameSpace = FalseAttribute
    發(fā)表于 02-08 14:39 ?20次下載

    simulink__matlab教程

      演示一個Simulink的簡單程序   【例7.1】創(chuàng)建一個正弦信號的仿真模型。   步驟如下:   (1) 在MATLAB的命令窗口運行simulink命令,或單擊工具欄中
    發(fā)表于 11-04 16:58 ?245次下載

    關于使用 MATLAB 進行無線通信設計的相關分析和介紹

    使用通過 MATLABSimulink 創(chuàng)建的算法模型,您可以自動生成 HDL 和 C 代碼,減少和避免手工實現(xiàn)的耗時和潛在錯誤。這加速了在商業(yè) SDR 平臺、任何 FPGA、S
    的頭像 發(fā)表于 09-17 10:43 ?3669次閱讀

    使用MATLABSimulink的建模與仿真詳細課件免費下載

    本文檔的主要內容詳細介紹的是使用MATLABSimulink的建模與仿真詳細課件免費下載包括了:1.MATLAB軟件,2.簡介MATLAB仿真實例,3.什么是
    發(fā)表于 11-04 17:17 ?140次下載
    使用<b class='flag-5'>MATLAB</b>和<b class='flag-5'>Simulink</b>的建模與仿真詳細課件免費下載
    RM新时代网站-首页