- `include 使用
预编译命令,在编译前生效,在编译的时候,需要对include命令进行"文件包含"预处理:将File2.v的全部内容复制插入到`include "File2.v"命令出现的地方,即将File2.v被包含到File1.v中。常见用法有全局参数化。
// pra.sv
`define AA 01
`define BB 02
`define CC 03 // 没有分号的
//
--------------------------
//function.sv
`include pra.sv
module function(
input logic [`BB:0] reg,
...
);
assign reg = `AA;
...
endmodule
- 条件编译使用
`ifdef
code...
`else
code...
`endif
条件编译的是在编译时候起作用,目的是告诉编译器此部分代码是否需要编译。一般来说并非全部的verilog代码都需要编译,一些debug标记,一些测试信号,最终版本需要删除。还有一种情况,可以用于兼容设计,一套代码兼容不同参数或者、功能。
`define function1
`define function2
`ifdef function1
code... // 兼容不同功能
`elsif function2
code...
`endif
`ifdef function1
`define f1 100 // 兼容不同参数
`elsif function2
`define f1 1000
`endif