verilog 条件编译命令`ifdef、`else、`endif 的应用
【摘自夏宇聞《verilog設(shè)計(jì)教程》】一般情況下,Verilog HDL源程序中所有的行都將參加編譯。但是有時(shí)希望對(duì)其中的一部分內(nèi)容只有在滿(mǎn)足條件才進(jìn)行編譯,也就是對(duì)一部分內(nèi)容指定編譯的條件,這就是“條件編譯”。有時(shí),希望當(dāng)滿(mǎn)足條件時(shí)對(duì)一組語(yǔ)句進(jìn)行編譯,而當(dāng)條件不滿(mǎn)足是則編譯另一部分。
條件編譯命令有以下幾種形式:
1) `ifdef 宏名 (標(biāo)識(shí)符)
程序段1
`else
程序段2
`endif
它的作用是當(dāng)宏名已經(jīng)被定義過(guò)(用`define命令定義),則對(duì)程序段1進(jìn)行編譯,程序段2將被忽略;否則編譯程序段2,程序段1被忽略。其中`else部分可以沒(méi)有,即:
2) `ifdef 宏名 (標(biāo)識(shí)符)
程序段1
`endif
這里的 “宏名” 是一個(gè)Verilog HDL的標(biāo)識(shí)符,“程序段”可以是Verilog HDL語(yǔ)句組,也可以是命令行。這些命令可以出現(xiàn)在源程序的任何地方。注意:被忽略掉不進(jìn)行編譯的程序段部分也要符合Verilog HDL程序的語(yǔ)法規(guī)則。
通常在Verilog HDL程序中用到`ifdef、`else、`endif編譯命令的情況有以下幾種:
• 選擇一個(gè)模塊的不同代表部分。
• 選擇不同的時(shí)序或結(jié)構(gòu)信息。
• 對(duì)不同的EDA工具,選擇不同的激勵(lì)。
以下是實(shí)例:
運(yùn)行結(jié)果為:
# wow is defined
# nest_one is defined
# nest_two is defined
整個(gè)工程見(jiàn)附件。。。
ifdef_test.rar
轉(zhuǎn)載自:http://www.eefocus.com/zhaochengshun/blog/13-12/300789_21a6e.html
總結(jié)
以上是生活随笔為你收集整理的verilog 条件编译命令`ifdef、`else、`endif 的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中文系统 上传file的input显示英
- 下一篇: 27 网络通信协议 udp tcp