很多小伙伴對上一篇文章講的取對數(shù)沒感覺,覺得這個沒什么用。確實很多時候用不著,verilog本身不夠靈活,所以很多時候我們也就沒想把她寫的多簡介靈活,而且受限于編譯器的支持,很多靈活的語法不能被編譯成電路,所以有這種想法情理之中,畢竟花大把時間去玩一個函數(shù)發(fā)現(xiàn)他局限性很大那確實收益太少。
那么他到底有什么用?
如果大家要設計一個深度1024的fifo,那么地址位寬取多大合適?*╭?( ˙o˙)╯?*
當然是10位,log2(1024)
所以可以如下定義
parameter deepth = 1024;
parameter width = $clog2(deepth);
這樣就把兩個參數(shù)關(guān)聯(lián)起來,調(diào)整代碼的時候提高了可維護性也更方便。
但是到此為止了嗎?
不知道大家有沒有對做完fft以后取對數(shù)很苦惱,比如fft輸出實部虛部各16bit,平方和開根號以后暫且也以16bit表示,那么怎么取對數(shù)呢?第一種方法是查表,第二種是傳到上位機,讓他處理。很多時候FPGA上確實不需要取對數(shù)這個操作,但是如果受限于高速接口,比如萬兆網(wǎng),pcie等接口速率希望壓縮數(shù)據(jù)的時候?qū)ft結(jié)果取對數(shù)無疑是一個很有必要的操作。畢竟log10這個對數(shù)可以把16位的數(shù)壓縮到8位以內(nèi)。所以查表確實可行,但是位數(shù)是24位呢,那情況就多了太多了,32位呢?
所以取對數(shù)這時候就有價值了,但是這是10為底的對數(shù),和2為底的對數(shù)有什么關(guān)系?當然有關(guān)系,換底公式啊!
多數(shù)時候fft之后我們計算10*log10或者20*log10,那么就等價于如下操作
忽略3后面的小數(shù)影響的話,那么可以近似為
多震撼的結(jié)論,所以數(shù)學好真的很有必要啊!當然你想更高精度,可以對換底公式以后的分子分母同時放大10的冪次方倍,然后再往下計算,這里留給讀者自行思考。
是不是很累,很復雜?
那么我告訴你,verilog2005有l(wèi)og10的系統(tǒng)函數(shù),哈哈哈哈哈,意不意外???
責任編輯:haq
-
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110392 -
代碼
+關(guān)注
關(guān)注
30文章
4825瀏覽量
69047
原文標題:log2在verilog里面到底有什么用?
文章出處:【微信號:HaveFunFPGA,微信公眾號:玩兒轉(zhuǎn)FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
TLC2578芯片中FS與SDI到底有什么作用?
24位或者說高分辨率的AD到底有什么用呢?
差分輸入和和單端輸入在本質(zhì)上到底有什么區(qū)別?
TFP401APZP到底有沒有HSYNC輸出?
無人機智能巡檢系統(tǒng)到底有哪些作用
![無人機智能巡檢系統(tǒng)<b class='flag-5'>到底有</b>哪些作用](https://file1.elecfans.com/web2/M00/FE/58/wKgaomaaKmyAdQRIAAH2eJn_H8M850.png)
EWSTM8-2201 or 3101安裝說明上有的說選“是”,有的說選“否”,二者到底有什么區(qū)別?對工程有什么影響?
IPv6到底有什么用,給我們生活帶來哪些變化?
![IPv6<b class='flag-5'>到底有</b><b class='flag-5'>什么用</b>,給我們生活帶來哪些變化?](https://file1.elecfans.com/web2/M00/C5/C0/wKgZomYCLwmAfli7AABIy8BbLIQ973.png)
精密醫(yī)療器械激光切割機在醫(yī)療行業(yè)到底有多重要
![精密醫(yī)療器械激光切割機<b class='flag-5'>在</b>醫(yī)療行業(yè)<b class='flag-5'>到底有</b>多重要](https://file1.elecfans.com/web2/M00/C2/0B/wKgZomXf9LeAOeE3AADT1wtVvvc258.png)
評論