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)確定好了,。
示例:
模塊引用如下:
方式一:
方式二:
第一種方式必須按照順序,而第二種方式可以順序顛倒,。所以在參數(shù)化比較多的情況下,,盡量采用第二種方式,以避免順序的錯(cuò)亂,。
Define關(guān)鍵詞類似于C語言中的define ,。主要用于本地模塊的一些定義,例如狀態(tài)機(jī),。
示例:
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
示例:
如上所示我們?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<<