很多小伙伴對(duì)上一篇文章講的取對(duì)數(shù)沒(méi)感覺(jué),覺(jué)得這個(gè)沒(méi)什么用。確實(shí)很多時(shí)候用不著,verilog本身不夠靈活,所以很多時(shí)候我們也就沒(méi)想把她寫(xiě)的多簡(jiǎn)介靈活,而且受限于編譯器的支持,很多靈活的語(yǔ)法不能被編譯成電路,所以有這種想法情理之中,畢竟花大把時(shí)間去玩一個(gè)函數(shù)發(fā)現(xiàn)他局限性很大那確實(shí)收益太少。
那么他到底有什么用?
如果大家要設(shè)計(jì)一個(gè)深度1024的fifo,那么地址位寬取多大合適?*╭?( ˙o˙)╯?*
當(dāng)然是10位,log2(1024)
所以可以如下定義
parameter deepth = 1024;
parameter width = $clog2(deepth);
這樣就把兩個(gè)參數(shù)關(guān)聯(lián)起來(lái),調(diào)整代碼的時(shí)候提高了可維護(hù)性也更方便。
但是到此為止了嗎?
不知道大家有沒(méi)有對(duì)做完fft以后取對(duì)數(shù)很苦惱,比如fft輸出實(shí)部虛部各16bit,平方和開(kāi)根號(hào)以后暫且也以16bit表示,那么怎么取對(duì)數(shù)呢?第一種方法是查表,第二種是傳到上位機(jī),讓他處理。很多時(shí)候FPGA上確實(shí)不需要取對(duì)數(shù)這個(gè)操作,但是如果受限于高速接口,比如萬(wàn)兆網(wǎng),pcie等接口速率希望壓縮數(shù)據(jù)的時(shí)候?qū)ft結(jié)果取對(duì)數(shù)無(wú)疑是一個(gè)很有必要的操作。畢竟log10這個(gè)對(duì)數(shù)可以把16位的數(shù)壓縮到8位以內(nèi)。所以查表確實(shí)可行,但是位數(shù)是24位呢,那情況就多了太多了,32位呢?
所以取對(duì)數(shù)這時(shí)候就有價(jià)值了,但是這是10為底的對(duì)數(shù),和2為底的對(duì)數(shù)有什么關(guān)系?當(dāng)然有關(guān)系,換底公式啊!
多數(shù)時(shí)候fft之后我們計(jì)算10*log10或者20*log10,那么就等價(jià)于如下操作
忽略3后面的小數(shù)影響的話,那么可以近似為
多震撼的結(jié)論,所以數(shù)學(xué)好真的很有必要?。‘?dāng)然你想更高精度,可以對(duì)換底公式以后的分子分母同時(shí)放大10的冪次方倍,然后再往下計(jì)算,這里留給讀者自行思考。
是不是很累,很復(fù)雜?
那么我告訴你,verilog2005有l(wèi)og10的系統(tǒng)函數(shù),哈哈哈哈哈,意不意外???
責(zé)任編輯:haq
-
Verilog
+關(guān)注
關(guān)注
29文章
1367瀏覽量
112274 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70734
原文標(biāo)題:log2在verilog里面到底有什么用?
文章出處:【微信號(hào):HaveFunFPGA,微信公眾號(hào):玩兒轉(zhuǎn)FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
漫畫(huà)科普 | 功率放大器到底有哪些應(yīng)用?帶你解鎖功放經(jīng)典應(yīng)用場(chǎng)景!(一)
交換機(jī)配置snmp有什么用?
AI開(kāi)源模型庫(kù)有什么用
AI項(xiàng)目管理平臺(tái)有什么用
TLC2578芯片中FS與SDI到底有什么作用?
24位或者說(shuō)高分辨率的AD到底有什么用呢?
差分輸入和和單端輸入在本質(zhì)上到底有什么區(qū)別?
TFP401APZP到底有沒(méi)有HSYNC輸出?
RTOS與Linux到底有什么區(qū)別
求助,這個(gè)電路U1A運(yùn)放同相端的R1電阻到底有什么作用?。?/a>
無(wú)人機(jī)智能巡檢系統(tǒng)到底有哪些作用

評(píng)論