基于MATLAB在FPGA 算法上浮點定點轉(zhuǎn)換的實現(xiàn)
本文引用地址:http://www.ex-cimer.com/article/151252.htm
一旦您解決了任何上溢出和下溢出問題,該定點模型的細(xì)化改進(jìn)將更加依賴于可視化。如果另外的定點數(shù)據(jù)誤差繼續(xù)存在,那么您必須分析常量的作用。否則,您可以通過減小變量位寬來繼續(xù)細(xì)化改進(jìn)硬件的過程。在兩種情況下,知道因某個特定變量的量化而引起的定點誤差,在細(xì)化改進(jìn)過程中都是一個有用的幫助。
定點可視化
根據(jù)一組給定的數(shù)據(jù)集確定一個算法的合適定點響應(yīng),通常不是一種精確的科學(xué)行為。您常常不得不在數(shù)值精度方面做出一些折衷,以提高硬件效率。這一過程高度反復(fù),且緊密耦合至繪圖中所示定點效應(yīng)的可視分析。但是,在一個輸出信號上觀測到不可接受的 SNR,并不總是表示那里錯誤地指定了一個量化值。對此,必須進(jìn)行進(jìn)一步的分析。
為了幫助進(jìn)行這一過程,AccelDSP Synthesis 綜合工具的 AccelProbe 工具以圖形方式對一個給定仿真期間的任何變量的浮點和定點值進(jìn)行了比較(圖 9)。如果您使用的是 AccelProbe,您會迅速體會到特定變量的貢獻(xiàn)使最終結(jié)果的誤差累積的過程。您可以通過在 MATLAB 源碼中增加語句 “accel_probe(variable_name)”,來“探查”一個變量。
“定點歷史”圖可以讓您感知一個變量在仿真期間可能遇到的頻繁程度。如果一個值很少出現(xiàn),則需要用以在動態(tài)范圍內(nèi)的高端或低端存儲該值的附加硬件可能具有很小的值。
結(jié)論
當(dāng)創(chuàng)建一個 DSP 算法的數(shù)學(xué)模型時,MATLAB 是天然之選,且出于硬件考慮,可以無阻礙地使用。將一個算法轉(zhuǎn)換為在 FPGA 上實現(xiàn)的定點模型是一個復(fù)雜的、可從 AccelDSP Synthesis 綜合工具提供的自動化、加速和可視化功能中大大受益的過程。
評論