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