FPGA中實(shí)現(xiàn)對(duì)數(shù)運(yùn)算主要有三種方法:
(1)在外部直接算好對(duì)數(shù)值,按照數(shù)值范圍做個(gè)表,存在ram里,到時(shí)候查表。為了減少表深度,提高資源利用率,可以考慮去掉部分低位數(shù)值,損失一定的精度。
(2)使用cordic算法求解對(duì)數(shù)。
(3)log10(x)=ln(x) * log10(e) , log10(e)是常數(shù)可以手動(dòng)先計(jì)算好,用IP Core的話多個(gè)乘法器。
下面介紹使用IP核floating-point來計(jì)算對(duì)數(shù),該IP計(jì)算對(duì)數(shù)時(shí),計(jì)算的是Ln(A)(A是輸入),如下圖所示:
輸入是浮點(diǎn)數(shù),所以如果我們?cè)贔PGA內(nèi)使用的定點(diǎn)數(shù),則需要先將定點(diǎn)數(shù)轉(zhuǎn)化為浮點(diǎn)數(shù):
實(shí)現(xiàn)對(duì)數(shù)運(yùn)算時(shí),可以使用DSP核心,也可以不用,IP配置中提供了三個(gè)等級(jí):
對(duì)于Flow Control可以選擇帶緩存的Blocking模式,也可以選擇沒有緩存的NonBlocking模式,延時(shí)也可以選擇從0到23:
上面也提到,計(jì)算LOG的輸入是浮點(diǎn)數(shù),如果需要,可以繼續(xù)使用floating-point來實(shí)現(xiàn)定點(diǎn)數(shù)轉(zhuǎn)浮點(diǎn)數(shù),對(duì)于轉(zhuǎn)換IP的輸入可以自主設(shè)定如下圖所示,這里設(shè)為int16+fra16,輸出為單精度浮點(diǎn)數(shù),可以直接給計(jì)算LOG的IP核:
我們要計(jì)算以任意數(shù)為底的對(duì)數(shù)時(shí),可以通過來計(jì)算,由此完成一次計(jì)算,需要兩個(gè)定點(diǎn)轉(zhuǎn)浮點(diǎn)的IP(fixtofloat),兩個(gè)LOG的IP(log不使用DSP),以及一個(gè)除法IP(divide),最后再將浮點(diǎn)數(shù)轉(zhuǎn)為定點(diǎn)數(shù)輸出,綜合實(shí)現(xiàn)后的資源占用情況為:
一次簡(jiǎn)單的RTL仿真為:
原文標(biāo)題:FPGA中實(shí)現(xiàn)對(duì)數(shù)運(yùn)算
文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
dsp
+關(guān)注
關(guān)注
554文章
8059瀏覽量
350665 -
FPGA
+關(guān)注
關(guān)注
1630文章
21802瀏覽量
606405 -
乘法器
+關(guān)注
關(guān)注
8文章
206瀏覽量
37208
原文標(biāo)題:FPGA中實(shí)現(xiàn)對(duì)數(shù)運(yùn)算
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于FPGA實(shí)現(xiàn)圖像直方圖設(shè)計(jì)
![基于<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>圖像直方圖設(shè)計(jì)](https://file1.elecfans.com/web3/M00/03/90/wKgZO2dqHAGARj8XAAAkNh_VJCs585.png)
FPGA中的浮點(diǎn)四則運(yùn)算是什么
![<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的浮點(diǎn)四則<b class='flag-5'>運(yùn)算</b>是什么](https://file1.elecfans.com/web2/M00/0B/C2/wKgZomc4D8yACyL2AAAWwvTkxeE056.jpg)
FPGA中浮點(diǎn)四則運(yùn)算的實(shí)現(xiàn)過程
![<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>浮點(diǎn)四則<b class='flag-5'>運(yùn)算</b>的<b class='flag-5'>實(shí)現(xiàn)</b>過程](https://file1.elecfans.com/web2/M00/0B/C2/wKgZomc4D8yACyL2AAAWwvTkxeE056.jpg)
FPGA門數(shù)的計(jì)算方法
![<b class='flag-5'>FPGA</b>門數(shù)的計(jì)算<b class='flag-5'>方法</b>](https://file1.elecfans.com/web2/M00/0B/43/wKgZomcxY1uAHZIYAAAdPuPfZbQ026.png)
如何在FPGA中實(shí)現(xiàn)按鍵消抖
如何在FPGA中實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器
![如何在<b class='flag-5'>FPGA</b><b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b>隨機(jī)數(shù)發(fā)生器](https://file1.elecfans.com/web2/M00/00/BC/wKgZomaxl4GARcE_AABd2Ri4k-Q825.png)
評(píng)論