《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > 入門:FPGA設(shè)計(jì)硬件語言Verilog中的參數(shù)化

入門:FPGA設(shè)計(jì)硬件語言Verilog中的參數(shù)化

2022-12-31
來源:FPGA開源工作室
關(guān)鍵詞: FPGA設(shè)計(jì) C語言 Verilog

  1 參數(shù)化

  FPGA 設(shè)計(jì)的硬件語言Verilog中的參數(shù)化有兩種關(guān)鍵詞:define 和 paramerter,參數(shù)化的主要目的是代碼易維護(hù),、易移植和可讀性好。

  Parameter關(guān)鍵詞類似于C語言中的形參可在其他模塊調(diào)用時(shí)實(shí)例化參數(shù),,這個(gè)參數(shù)在運(yùn)行過程中不能修改,,在編譯時(shí)就已經(jīng)確定好了,。

  示例:

  31.JPG

  模塊引用如下:

  方式一:

 30.JPG

  方式二:

29.JPG

  第一種方式必須按照順序,而第二種方式可以順序顛倒,。所以在參數(shù)化比較多的情況下,,盡量采用第二種方式,以避免順序的錯(cuò)亂,。

  Define關(guān)鍵詞類似于C語言中的define ,。主要用于本地模塊的一些定義,例如狀態(tài)機(jī),。

  示例:

28.JPG

  2 條件編譯

  一般情況下,,Verilog HDL源程序中所有的行都將參加編譯。但是有時(shí)希望對(duì)其中的一部分內(nèi)容只有在滿足條件才進(jìn)行編譯,,也就是對(duì)一部分內(nèi)容指定編譯的條件,,這就是“條件編譯”。

  有時(shí),,希望當(dāng)滿足條件時(shí)對(duì)一組語句進(jìn)行編譯,,而當(dāng)條件不滿足是則編譯另一部分。

  條件編譯命令有以下幾種形式:1) `ifdef 宏名 (標(biāo)識(shí)符)程序段1`else程序段2`endif

  2) `ifdef 宏名 (標(biāo)識(shí)符)程序段1`endif

  示例:

27.JPG

  26.JPG

  如上所示我們?cè)趯慖2S的時(shí)候會(huì)遇到不同位寬的I2s數(shù)據(jù),,這就意味著對(duì)于不同的數(shù)據(jù)模塊我們就要寫一個(gè)文件,。

  如果采用條件編譯就可以只寫一個(gè)文件。當(dāng)需要修改時(shí)只需要修改`define D_WIDTH16

  //`define D_WIDTH20

  //`define D_WIDTH24

  就可以完成不同i2s數(shù)據(jù)位寬的修改,。



更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。