• 【原创】关于include用法的总结【Verilog】


    【原创】关于include用法的总结【Verilog】

    Abtract

        `include编译器指令用于在代码行中包含任何其他文件的内容,被包含的文件即可以使用相对路径定义,也可以使用绝对路径定义。

        本文将对`include使用过程中遇到的问题进行总结归纳。

    Introduction

    1.使用方法

        `include类似于C语言中的#include结构,该指令通常用于将内含全局或公用定义的头文件包含在设计文件中。例如:

        `include "http://www.cnblogs.com/primitive.v"     // 注意:这里的要包含文件需要用双引号括起来

        // 编译时,上面这一行将会被"http://www.cnblogs.com/primitive.v"中的内容所替换

        ... ...

        <design.v文件的源代码>

        ... ...

        `include结构示意如下如所示:

     

    图1 `include图解

        上图意思为:在编译的时候,需要对`include命令进行预处理,将file2.v中的内容全部复制插入到file1.v文件中的`include命令处,即将C替换`include。同理,在文件file.v中,用file1.v文件中的内容替换`include出现的地方,这样实际效果类似于有图,而编译的时候,是将file.v文件以右图为单元进行编译。

    2.注意事项

    • 一条`include命令只能指定一个被包含的文件,如果需要包含多个文件,则需要使用多个`include命令进行包含。
    • 多个`include命令可以写在一行,在`include命令行中只可以出现空格和注释行。

                   e.g. `include "file1.v"   `include "file2.v"

    • `include命令后加入的文件名称必须放在双引号中。
    • `include中包括的文件需要使用绝对路径或者相对路径,如果不增加路径信息,则默认在当前路径下搜寻要包含的文件,或者在进行编译时指定被包含文件所在路径,否则,编译时默认在当前仿真路径下搜寻`include中的文件,如果该文件不在当前路径,则会找不到被包含的文件。当然可以在仿真时在仿真命令中加入搜寻路径,例如使用+incdir+(file_path)增加搜索路径,这样仿真时会在增加的搜寻路径下寻找找寻`include中包含的文件。
    • 如图1,如果file1.v文件要用到file2.v中的内容,则在使用`include命令时,file2.v必须出现在file1.v文件前。
    • `include可以使用嵌套格式,如图1所示。
    • `include不能include module,如果需要include module则可以把需要的module增加到filelist中。

    Conclusion

        在实际使用`include包含文件时,特别需要注意`include包含文件的顺序以及包含文件存放的路径等问题。

  • 相关阅读:
    国内大公司的开源项目( 阿里 腾讯 百度 新浪 搜狐 豆瓣 大众点评)
    开源镜像站点
    存储入门知识
    oceanbase开源 微博
    PS中矢量形状图层的合并交叉等运算
    .NET下载文件报错System.UnauthorizedAccessException的解决方法
    ManualResetEvent
    修改IIS7并发连接数目限制
    C#中如何判断线程当前所处的状态
    Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier)
  • 原文地址:https://www.cnblogs.com/nanoty/p/2773827.html
Copyright © 2020-2023  润新知