新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MATLAB在FPGA 算法上浮點(diǎn)定點(diǎn)轉(zhuǎn)換的實(shí)現(xiàn)

基于MATLAB在FPGA 算法上浮點(diǎn)定點(diǎn)轉(zhuǎn)換的實(shí)現(xiàn)

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

是在 時(shí)最困難的地方(圖 1)。

本文引用地址:http://2s4d.com/article/151252.htm

雖然 是一種強(qiáng)大的運(yùn)算開(kāi)發(fā)工具,但其許多優(yōu)點(diǎn)卻在過(guò)程中被降低了。例如,由于算術(shù)中精度較低,新的數(shù)學(xué)誤差被引入。您必須重寫代碼,使用能夠反映實(shí)際硬件宏架構(gòu)的低級(jí)模型來(lái)替換高級(jí)函數(shù)和運(yùn)算符。而仿真運(yùn)行時(shí)間將可能長(zhǎng)達(dá) 50 倍之久。這些原因,,這一開(kāi)發(fā)的優(yōu)勢(shì)選擇,卻經(jīng)常遭到遺棄,轉(zhuǎn)而使用 C/C++ 進(jìn)行定點(diǎn)建模。
  
生成定點(diǎn)模型
  
如果未將高級(jí)函數(shù)和運(yùn)算符替換為硬件精確的宏架構(gòu), 算法的定點(diǎn)表示將不會(huì)真正反映最終硬件的響應(yīng)(圖 2)。

圖 3 對(duì)此進(jìn)行了突出顯示,該圖使用一組量化為 8 位有符號(hào)二進(jìn)制補(bǔ)碼的隨機(jī)輸入矢量,對(duì) MATLAB 除法運(yùn)算符與工具硬件 CORDIC 除法算法的定點(diǎn)響應(yīng)進(jìn)行了比較。

  
根據(jù)數(shù)據(jù)數(shù)值,計(jì)算輸出之間將存在巨大分歧。
  
在定點(diǎn)生成過(guò)程中,AccelDSP™ Synthesis 綜合工具的 IP Explorer™ 技術(shù)將自動(dòng)使用硬件精確的表達(dá)式替換高級(jí) MATLAB 函數(shù)和運(yùn)算符(圖 4)。此步驟是透明的,且不需要對(duì) MATLAB 代碼進(jìn)行修改。您可以使用綜合指示來(lái)重新定義初始宏架構(gòu)和微架構(gòu)選擇。

  

一旦這些運(yùn)算符替換為硬件精確的宏架構(gòu),量化過(guò)程就將開(kāi)始。
  
圖形輔助式自動(dòng)量化
  
與定點(diǎn) DSP 處理器不同, 結(jié)構(gòu)允許使用可變定點(diǎn)字長(zhǎng)。通過(guò)解除對(duì)變量的固定 16 位或 24 位邊界限制,您可以執(zhí)行需要位數(shù)增長(zhǎng)的算術(shù)計(jì)算而不會(huì)引起額外的數(shù)值誤差。
  
這對(duì)于像雷達(dá)、導(dǎo)航和制導(dǎo)系統(tǒng)等要求較高數(shù)值精度的應(yīng)用來(lái)說(shuō)是一個(gè)巨大的優(yōu)點(diǎn)。
  
在大多數(shù)情況下,位增長(zhǎng)率定律 (bit growth rules) 是簡(jiǎn)單直接和易于理解的。例如,一次加法的結(jié)果增長(zhǎng)一位,而一次乘法的結(jié)果則增長(zhǎng)到等于輸入字長(zhǎng)度的總長(zhǎng)度(圖 5)。然而,要在實(shí)際設(shè)計(jì)中確定變量的這些屬性,將是一個(gè)高度反復(fù)的過(guò)程。允許未檢查的位數(shù)增長(zhǎng)現(xiàn)象發(fā)生,在硬件中代價(jià)是昂貴的,通常也是不必要的。如果您技術(shù)功底深厚,您可以采用各種技巧來(lái)盡可能地減小字長(zhǎng)而同時(shí)保持?jǐn)?shù)值精度。


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

評(píng)論


相關(guān)推薦

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

關(guān)閉