新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 在FPGA上建立MATLAB和Simulink算法原型

在FPGA上建立MATLAB和Simulink算法原型

作者: 時(shí)間:2013-01-28 來(lái)源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://www.butianyuan.cn/article/185472.htm

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

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

通過(guò)FPGA在環(huán)仿真加速驗(yàn)證

  為什么在FPGA上建立原型?

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

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

采用HDL代碼生成功能的基于模型的設(shè)計(jì)

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

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

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

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

  在設(shè)計(jì)過(guò)程初期分析定點(diǎn)量化的效應(yīng)

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

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

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

DDC濾波器鏈路中低通濾波器第一階段浮點(diǎn)與定點(diǎn)仿真結(jié)果的差異

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

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

工程師使用Simulink定點(diǎn)模塊組將部分?jǐn)?shù)字濾波器鏈路的字長(zhǎng)減少了8位

  利用自動(dòng)HDL代碼生成功能更快生成FPGA原型

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

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


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Simulink MATLAB FPGA 算法

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉