log2在verilog裡面到底有什麼用?

2022-01-02 玩兒轉FPGA

  很多小夥伴對上一篇文章講的取對數沒感覺,覺得這個沒什麼用。確實很多時候用不著,verilog本身不夠靈活,所以很多時候我們也就沒想把她寫的多簡介靈活,而且受限於編譯器的支持,很多靈活的語法不能被編譯成電路,所以有這種想法情理之中,畢竟花大把時間去玩一個函數發現他局限性很大那確實收益太少。

   那麼他到底有什麼用?

   如果大家要設計一個深度1024的fifo,那麼地址位寬取多大合適?*╭︎( ˙º˙)╯︎*

   當然是10位,log2(1024)

   所以可以如下定義

   parameter    deepth = 1024;

   parameter    width = $clog2(deepth);

   這樣就把兩個參數關聯起來,調整代碼的時候提高了可維護性也更方便。

 ⊙ω⊙...⊙ω⊙

    但是到此為止了嗎?

    不知道大家有沒有對做完fft以後取對數很苦惱,比如fft輸出實部虛部各16bit,平方和開根號以後暫且也以16bit表示,那麼怎麼取對數呢?第一種方法是查表,第二種是傳到上位機,讓他處理。很多時候FPGA上確實不需要取對數這個操作,但是如果受限於高速接口,比如萬兆網,pcie等接口速率希望壓縮數據的時候對fft結果取對數無疑是一個很有必要的操作。畢竟log10這個對數可以把16位的數壓縮到8位以內。所以查表確實可行,但是位數是24位呢,那情況就多了太多了,32位呢?

   所以取對數這時候就有價值了,但是這是10為底的對數,和2為底的對數有什麼關係?當然有關係,換底公式啊!

    多數時候fft之後我們計算10*log10或者20*log10,那麼就等價於如下操作

忽略3後面的小數影響的話,那麼可以近似為

    多震撼的結論,所以數學好真的很有必要啊!當然你想更高精度,可以對換底公式以後的分子分母同時放大10的冪次方倍,然後再往下計算,這裡留給讀者自行思考。

     是不是很累,很複雜?

      那麼我告訴你,verilog2005有log10的系統函數,哈哈哈哈哈,意不意外???

      想知道的話大家去查查verilog 2005的國際標準(༎ຶ-༎ຶ)

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

hi,這是我用百度網盤分享的內容~複製這段內容打開「百度網盤」APP即可獲取 

連結:https://pan.baidu.com/s/17c6fz_RwDGnPr3_CbpRKYA 

提取碼:he16

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

                             寶兒姐鎮樓

相關焦點

  • Verilog 裡面,always,assign和always@(*)區別
    *,意思是說敏感變量由綜合器根據always裡面的輸入變量自動添加,也就是所有變量都是敏感列表,不用自己考慮。2.如果沒有@,那就是不會滿足特定條件才執行,而是執行完一次後立馬執行下一次,一直重複執行,比如testbench裡面產生50Mhz的時鐘就(假設時間尺度是1ns)可以寫成 一般always@(*)是指裡面的語句是組合邏輯的。*代替了敏感變量。
  • 談談Verilog/System Verilog 和C的幾種交互方式
    PLI全稱 Program Language Interface,程式設計師可以通過PLI在verilog中調用C函數,這種訪問是雙向的。這些用戶定義的系統任務和函數的名稱必須以美元符號"$" 開頭。大家用得比較多的PLI函數有$display,\$finish等。
  • 開源仿真工具Icarus Verilog中的verilog parser
    的輸入文件,那grepf是什麼呢?下圖是gpref輸入文件截圖,可以看到裡面定義了verilog關鍵字、版本、類型的表。flex和bison來分析Verilog語法再來看看lexor.lex和parse.y,前者是詞法分析,後者是語法分析。
  • verilog之函數用法
    然而不幸的是,對於verilog電路設計,函數的用處不是很大,簡單的運算用不到函數,複雜的運算用函數又實現不了,只是在某些特殊應用時,函數才用得上(比如繁雜的純組合邏輯)。對於verilog仿真和驗證,本來就是類似於程序語言,還有點用。
  • verilog之generate生成塊
    我們一定要學會區別電路本身的verilog代碼和這些輔助代碼!生成塊的關鍵詞是「generate」,一個生成塊的結構框架如下:generate   operationsendgenerate其中,「operations」是生成塊的功能部分,用來描述實際有用的邏輯。
  • Verilog代碼轉VHDL代碼經驗總結
    Verilog與VHDL語法是互通且相互對應的,如何查看二者對同一硬體結構的描述,可以藉助EDA工具,如Vivado,打開Vivado後它裡面的語言模板後,也可以對比查看Verilog和VHDL之間的差異。
  • FPGA 入門到精通系列2:verilog基礎3-verilog代碼復用(generate、function)
    一直以來寫verilog代碼,特別是寫算法,比如圖像處理,總感覺寫的是軟體C語言的按照周期展開的計算邏輯,雖然很多都是ctrl+c和ctrl
  • 關於學習verilog
    我們也經常聽說用資源換速度,用流水的方式可以提高工作頻率,這確實是一個很重要的方法,今天我想進一步去分析該如何提高電路的工作頻率。  我們先來分析下是什麼影響了電路的工作頻率。  我們電路的工作頻率主要與寄存器到寄存器之間的信號傳播時延及clock skew有關。
  • Verilog開源仿真工具Icarus Verilog的工作原理
    在github倉庫裡,有一份developer quick start文檔,我們就從這個文檔來看看Icarus Verilog是如何工作的。工作流程商業仿真器相同,也是分成三個步驟——編譯、elaboration、仿真。
  • HDLBits:在線學習Verilog(七 · Problem 30-34)
    解答與分析// synthesis verilog_input_version verilog_2001module top_module( input a, input b, input sel_b1, input sel_b2, output wire out_assign,
  • Systemverilog驗證學習經歷分享
    如果你有夢想,就要守護它。——《當幸福來敲門》前言:接上篇討論完Verilog, 今天這篇文章主要想和大家分享一下我學習systemverilog(以下由SV代替)驗證的經歷。這個網站在最開始的時候先給初學者簡單的介紹了一個比較龐大的概念——驗證環境,我覺得還是很有必要的,在開始的時候先從驗證的架構建立起一個簡單的感念。這幫助我在後面的小模塊學習裡面能聯想到其在驗證環境裡面的作用。
  • ​verilog相關基礎知識
    對於verilog基礎知識,這裡做簡單的介紹,對於已經熟悉verilog語言的讀者可以省略不看此部分。
  • 酒店裡面總是在床邊有一條凳子,到底是幹什麼用的?
    有的小夥伴們,出差都是住在酒店裡面的嗎,公司會給你們訂什麼樣子的酒店呢,小編的一個朋友經常會出差,朋友定的都是當地比較等級比較好的一些酒店,會有各種商家提供的服務,能夠有定製一些出行習慣,或者訂車或者叫餐的服務。今天我們就來說一說酒店裡面的這些小門道。
  • systemverilog 之 數據類型
    1、Systemverilog 數據類型跟verilog 數據類型的區別Verilog有兩種數據類型,線網(wire)和變量(reg
  • Verilog常見必備面試題
    使用verilog hdl實現具有同步RESET和SET的觸發器,具有異步RESET和SET的觸發器。異步reset和setalways@(posedge clk or negedge reset or posedge set)begin  if(set)  Q<=1;    else if(!
  • Verilog 最全經驗總結(建議收藏)
    Averilog的流行,有兩方面的原因;B verilog與VHDL相比的優點C典型的verilog模塊D verilog語法要點A) verilog的流行,有兩方面的原因:1它是cadence的模擬器verilog-XL的基礎,cadence的廣泛流行使得verilog在90年代深入人心;2它在矽谷獲得廣泛使用;B)
  • 大白兔奶糖裡面的透明紙到底是什麼?可以吃嗎?有什麼用?
    說到糖果,隨著現在生活水平的提高,糖果的種類也可謂是五花八門,但是有一些比較經典的糖果,不知道大家是否還記得呢?大白兔奶糖裡面的透明紙到底是什麼?可以吃嗎?有什麼用?相信現在日常生活當中,大家應該都吃過大白兔奶糖吧,這是上海的一款特色奶糖。
  • Cordic算法(sinx,cosx)的Verilog實現
    為什麼要用cordic算法?首先根據上述的解釋,我們可以看出:cordic算法的最大特點是使用加減法和移位操作實現初等函數的計算。在數字電路中,加減法和移位操作耗費資源少且處理速度快,所以cordic算法在硬體中容易實現,而且能起到提高處理速度,降低資源消耗的功能。
  • verilog常用語法二讓您的FPGA設計更輕鬆
  • 珍珠奶茶裡面的珍珠,到底是用什麼做的,結果居然是這樣哦!
    小編一說起美食,大家肯定會有滔滔不絕的話要說,因為我們每一天都在吃著各種各樣的美食,美食的種類也豐富多彩,酸、甜、苦、辣鹹,各種各樣的味道也應有盡有,感覺把我們的味蕾也要幹出一番事業了,因為每天都在吃著種類豐富的美食,然而今天小編要給大家介紹的就是,珍珠奶茶裡面的珍珠,到底是用什麼做的