Verilog中条件编译命令`ifdef、`else、`endif

条件编译在针对不同EDA工具,选择不同激励、根据选择才执行一些功能等场合非常有用,本文对常见条件编译指令进行介绍:介绍了条件编译指令的用途、具体用法。

条件编译:

显而易见,即只有在条件满足的时候才对这部分代码进行编译,也就是对一部分内容指定了编译的条件:

                  当满足条件时对一组语句进行编译,

                  当条件不满足时则对另外一组语句进行编译。

语法规则:
// Style #1: Only single `ifdef
`ifdef 
	// Statements
`endif

// Style #2: `ifdef with `else part
`ifdef 
	// Statements
`else
	// Statements
`endif

// Style #3: `ifdef with additional ifdefs
`ifdef 
	// Statements
`elsif 
	// Statements
`elsif 
	// Statements
`else
	// Statements
`endif

 当FLAG被定义时,则编译 `ifdef 后的语句块,否则编译 `else 语句块 。


module c_logic(
    input [3:0]din1,
    input [3:0]din2,
    output reg[3:0]dout
    );
`define OR 1'b1
`ifdef OR
    always@(*)
        dout = din1 & din2;
`else
    always@(*)
        dout = din1 | din2;
`endif
endmodule

`ifndef 与上面的情况刚好相反,如果FLAG没有被定义时,`ifndef 中的语句块则会编译。

你可能感兴趣的:(verilog基础)