ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Verilog基础:编译指令`include

Verilog基础:编译指令`include

相关阅读

Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm=1001.2014.3001.5482


`include编译指令用于在编译过程中(准确说是编译开始前)将某个源文件的全部内容插入到使用`include编译指令的位置。通常该指令用于包含公用的函数、任务定义等,而无需书写重复的代码。

`include编译指令的语法如图1所示。

图1 `include编译指令的BNF范式

`include编译指令可以在Verilog HDL源文件的任何地方指定。filename指的是要读取数据的文件名,可以使用绝对路径(从根目录开始的路径,使用/开头)和相对路径(使用./或../开头,./可省略),这里的相对路径指的是相对仿真器的当前工作文件夹。

例1展示了一些`include编译指令的用法。

// 例1 `include "./fileA.v" // 相对路径 `include "fileB.v" // 省略./的相对路径 `include "../fileC.v" // 相对路径 `include "/home/zzz/fileB.v" // 绝对路径

`include编译指令同一行上只能出现空白字符(空格、换行符、制表符、换页符) 和注释,如例2所示。

// 例2 `include "./fileA.v" // 水平制表符 `include "./fileA.v" // 空格 `include "./fileA.v" // 注释 `include "./fileA.v" module test(); //错误

`include编译指令可以嵌套,具体实现中可以限制最大嵌套层数,但该限制至少应为15层。

编译器一般还可以提供额外的include搜索路径,例如VCS提供了+incdir+<path>选项,Modelsim提供了+incdir+<directory>选项,Riviera-Pro提供了-incdir <path>或+incdir<+path>选项。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进