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