DSP介紹
數字信號處理( Digital Signal Processing)技術廣泛地應用于通信與信息系統、信號與信息處理、自動控制、 雷達、軍事、航空航天、醫療、家用電器等許多領域。DSP 技術可以快速地對采集的信號進行量化、變換、濾波、估值 、增強、壓縮、識別等處理,以得到符合需要的信號形式。而用FPGA進行數字信號處理的核心就是數學運算,今天介紹幾個和FPGA進行數學運算的相關開源項目。
介紹
Verilog定點數學庫
該庫包括Verilog的基本數學函數,用于FPGA上的實現(Xilinx FPGA仿真和綜合)。
這些數學例程使用帶符號的數字N(Q)格式,其中N是總位數,Q是所使用的小數位數。例如,
15、32將表示具有15個小數位數、16個整數位數數,以及1個符號位,如下所示:
|1||| |S|IIIIIIIIIIIIIIII|FFFFFFFFFFFFFFF|
此庫包含以下模塊:
qadd.v——加法模塊;將任意的2個有符號數字相加。
qdiv.v-除法模塊;
qmult.v——乘法模塊;純組合電路實現
qmults.v——乘法模塊;時序電路實現
Test_add.v-qadd.v模塊的測試模塊
Test_mult.v-qmult.v模塊的測試模塊
TestDiv.v-qdiv.v模塊的測試模塊
TestMultS.v-qmults.v模塊的測試模塊
這些數學計算默認為(15,32)的(Q,N),但可以自定義。
qaddmy_adder( .a(addend_a), .b(addend_b), .c(result) );
自定義N(Q):
qadd#(8,23)my_adder( .a(addend_a), .b(addend_b), .c(result) );
CORDIC
CORDIC算法是一種迭代算法,用于計算數學函數,如三角函數、雙曲函數和平面旋轉。
介紹
顧名思義,CORDIC算法是為旋轉坐標而開發的,這是20世紀50年代用于實時導航計算的硬件。CORDIC使用類似序列的逐次逼近來獲得其結果。優點就是它只通過加法/減法和移位來實現運算這一點。假設我們想將一個點(X,Y)旋轉一個角度(Z)。新點(Xnew,Ynew)的坐標為:
Xnew=Xcos(Z)-Ysin(Z)Ynew=Ycos(Z)+Xsin
或者:
Xnew/cos(Z)=X-Y*tan(Z)Ynew/cos
可以將角度分成小塊,這樣這些小塊的切線總是2的冪。導出以下方程式:
X(n+1) = P(n) * ( X(n) - Y(n) / 2^n) Y(n+1) = P(n) * ( Y(n) + X(n) / 2^n) Z(n) = atan(1/2^n)
...
不詳細介紹了。。。
審核編輯:劉清
-
dsp
+關注
關注
552文章
7962瀏覽量
348310 -
FPGA
+關注
關注
1626文章
21678瀏覽量
602045 -
數字信號處理器
+關注
關注
5文章
456瀏覽量
27331 -
Verilog語言
+關注
關注
0文章
113瀏覽量
8219
原文標題:優秀的 Verilog/FPGA開源項目介紹(三十七)- MATH庫
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論