-
Verilog可以像这样定义宏
`define TESTEQ1 4’b1101
。 -
定义的宏可以用在后面的代码中,如
if (request == `TESTEQ1
。使用`ifdef
和`endif
可以检测是否定义了某个宏,相当于条件编译。如果`ifedf
调用的宏被定义过,则内部的代码将会编译;如果宏没有定义,则会编译`else中的代码
。`else
不是必须的,但必须有`endif
。 -
使用宏可以在不修改源代码的情况下修改设计,在IP核生成和流程测试中很有用。下面给出两个使用宏的例子:
'define myzero 0
assign mysig = 'myzero;
//示例2,条件编译
'ifdef MYVAR
module if_MYVAR_is_declared;
...
endmodule
'else
module if_MYVAR_is_not_declared;
...
endmodule
'endif