目的
根据工程需要,对所写代码按条件进行编译。
代码测试
1.在代码中直接宏定义
直接在第一行写上`define INCLUDE_RSTN这个就可以编译对应的代码
`define INCLUDE_RSTN
module my_design (input clk, d,
`ifdef INCLUDE_RSTNinput rstn_1,
`else input rstn,
`endifoutput reg q);always @ (posedge clk) begin
`ifdef INCLUDE_RSTNif (!rstn_1) beginq <= 0;end else
`elseif (!rstn) beginq <= 0;end else
`endifbeginq <= d;endend
endmodule
综合后是这样的RTL,复位端为rstn_1
而如果没有添加`define INCLUDE_RSTN,则综合后的RTL是这样的,复位端是rstn
2.将宏定义写到文件中
把1中的第一行`define INCLUDE_RSTN 替换成
`include "define.txt"
即可,然后在define.txt中写入`define INCLUDE_RSTN 。经过测试,宏文件还可以是.v以及.h,目前就试过这三种后缀,文件存放位置只要在工程文件中任何位置就行,不能放到工程文件之外。
参考链接
Verilog初级教程(20)Verilog中的`ifdef 条件编译语句.