verilog always语法_Verilog初级教程(20)Verilog中的`ifdef 条件编译语句
前言
`ifdef條件編譯語句在邏輯設(shè)計(jì)中還是很常見的,但也常見一些濫用的情況,這應(yīng)該避免。 應(yīng)該在什么情況下使用呢?
例如:一部分代碼可能有時(shí)候用,有時(shí)候不用,為了避免全部編譯占用資源,可以使用條件編譯語句。 下面正式介紹其語法。
正文
語法
// Style #1: Only single `ifdef示例
moduleTestbench文件
module請注意, 默認(rèn)情況下, rstn 不會(huì)在編譯設(shè)計(jì)時(shí)被包含, 因此它不會(huì)出現(xiàn)在 port 列表中。但是, 如果在任何屬于編譯文件列表的 Verilog 文件中定義了名為 INCLUDE_RSTN 的宏, 或者通過命令行傳遞給編譯器, rstn 就會(huì)在編譯過程中被包括在內(nèi), 設(shè)計(jì)也將擁有它。
下面我們通過vivado平臺(tái)編譯看下: 默認(rèn)情況下:
定了了宏INCLUDE_RSTN的情況下:
進(jìn)一步證明了其用途。
仿真看下:
在默認(rèn)情況下,沒有定義宏INCLUDE_RSTN ,也就沒有復(fù)位。
可以看到由于沒有復(fù)位,所以q在初始階段為X。
往期回顧
Verilog初級教程(19)Verilog中的參數(shù)
Verilog初級教程(18)Verilog中的函數(shù)與任務(wù)
Verilog初級教程(17)Verilog中的case語句
Verilog初級教程(16)Verilog中的控制塊
Verilog初級教程(15)Verilog中的阻塞與非阻塞語句
Verilog初級教程(14)Verilog中的賦值語句
Verilog初級教程(13)Verilog中的塊語句
Verilog初級教程(12)Verilog中的generate塊
Verilog初級教程(11)Verilog中的initial塊
Verilog初級教程(10)Verilog的always塊
Verilog初級教程(9)Verilog的運(yùn)算符
Verilog初級教程(8)Verilog中的assign語句
Verilog初級教程(7)Verilog模塊例化以及懸空端口的處理
Verilog初級教程(6)Verilog模塊與端口
Verilog初級教程(5)Verilog中的多維數(shù)組和存儲(chǔ)器
Verilog初級教程(4)Verilog中的標(biāo)量與向量
Verilog初級教程(3)Verilog 數(shù)據(jù)類型
Verilog初級教程(2)Verilog HDL的初級語法
Verilog初級教程(1)認(rèn)識 Verilog HDL
芯片設(shè)計(jì)抽象層及其設(shè)計(jì)風(fēng)格
Verilog以及VHDL所倡導(dǎo)的的代碼準(zhǔn)則
FPGA/ASIC初學(xué)者應(yīng)該學(xué)習(xí)Verilog還是VHDL?
參考資料及推薦關(guān)注
Verilog `ifdef Conditional Compilation
個(gè)人微信公眾號: FPGA LAB
交個(gè)朋友
總結(jié)
以上是生活随笔為你收集整理的verilog always语法_Verilog初级教程(20)Verilog中的`ifdef 条件编译语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ 数组置0_0基础学习C语言第七章
- 下一篇: asp按钮跳转页面代码_重磅更新!全新W