以反引号 ` 开始的某些标识符是 Verilog 系统编译指令(如`timescale 1ns/1ps)。编译指令为 Verilog 代码的撰写、编译、调试等提供了极大的便利。
下面介绍下 4 种使用频率较高的编译指令。
A:`define, `undef
B:`ifdef, `ifndef, `elsif, `else, `endif
C:`include
D:`timescale
==============================分割线===============================================================
A:`define, `undef
在编译阶段,`define 用于文本替换,类似于 C 语言中的 #define。
一旦 `define 指令被编译,其在整个编译过程中都会有效。例如,在一个文件中定义:
`define DATA_DW 32 `define S $stop; //用`S来代替系统函数$stop; (包括分号) `define WORD_DEF reg [31:0] //可以用`WORD_DEF来声明32bit寄存器变量
则在另一个文件中也可以直接使用 DATA_DW等。
`undef 用来取消之前的宏定义,例如:
`def