FPGA中實現(xiàn)對數(shù)運算主要有三種方法:
(1)在外部直接算好對數(shù)值,按照數(shù)值范圍做個表,存在ram里,到時候查表。為了減少表深度,提高資源利用率,可以考慮去掉部分低位數(shù)值,損失一定的精度。
(2)使用cordic算法求解對數(shù)。
(3)log10(x)=ln(x) * log10(e) , log10(e)是常數(shù)可以手動先計算好,用IP Core的話多個乘法器。
下面介紹使用IP核floating-point來計算對數(shù),該IP計算對數(shù)時,計算的是Ln(A)(A是輸入),如下圖所示:

輸入是浮點數(shù),所以如果我們在FPGA內(nèi)使用的定點數(shù),則需要先將定點數(shù)轉(zhuǎn)化為浮點數(shù):

實現(xiàn)對數(shù)運算時,可以使用DSP核心,也可以不用,IP配置中提供了三個等級:

對于Flow Control可以選擇帶緩存的Blocking模式,也可以選擇沒有緩存的NonBlocking模式,延時也可以選擇從0到23:

上面也提到,計算LOG的輸入是浮點數(shù),如果需要,可以繼續(xù)使用floating-point來實現(xiàn)定點數(shù)轉(zhuǎn)浮點數(shù),對于轉(zhuǎn)換IP的輸入可以自主設(shè)定如下圖所示,這里設(shè)為int16+fra16,輸出為單精度浮點數(shù),可以直接給計算LOG的IP核:

我們要計算以任意數(shù)為底的對數(shù)時,可以通過來計算,由此完成一次計算,需要兩個定點轉(zhuǎn)浮點的IP(fixtofloat),兩個LOG的IP(log不使用DSP),以及一個除法IP(divide),最后再將浮點數(shù)轉(zhuǎn)為定點數(shù)輸出,綜合實現(xiàn)后的資源占用情況為:

一次簡單的RTL仿真為:

原文標題:FPGA中實現(xiàn)對數(shù)運算
文章出處:【微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
dsp
+關(guān)注
關(guān)注
561文章
8244瀏覽量
366609 -
FPGA
+關(guān)注
關(guān)注
1660文章
22408瀏覽量
636248 -
乘法器
+關(guān)注
關(guān)注
9文章
221瀏覽量
38805
原文標題:FPGA中實現(xiàn)對數(shù)運算
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
數(shù)字IC/FPGA設(shè)計中的時序優(yōu)化方法
詳解FPGA定點數(shù)計算方法
如何使用FPGA實現(xiàn)SRIO通信協(xié)議
定點數(shù)表示實數(shù)的方法以及定點數(shù)在硬件上的運算驗證
卷積運算分析
浮點數(shù)是如何實現(xiàn)開平方運算的
如何利用Verilog HDL在FPGA上實現(xiàn)SRAM的讀寫測試
使用Simulink自動生成浮點運算HDL代碼(Part 1)
利用e203中NICE協(xié)處理器加速濾波運算
基于e203中NICE協(xié)處理器加速濾波運算
FPGA測試DDR帶寬跑不滿的常見原因及分析方法
無位置傳感器無刷直流電機的+FPGA+控制實現(xiàn)
基于FPGA的壓縮算法加速實現(xiàn)
FPGA中實現(xiàn)對數(shù)運算的方法
評論