專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

關(guān)于include用法的總結(jié)【Verilog】

作者:nanoty   來(lái)源:nanoty的空間   點(diǎn)擊數(shù):  更新時(shí)間:2014年06月08日   【字體:

Abtract

    `include編譯器指令用于在代碼行中包含任何其他文件的內(nèi)容,被包含的文件即可以使用相對(duì)路徑定義,也可以使用絕對(duì)路徑定義。

    本文將對(duì)`include使用過(guò)程中遇到的問(wèn)題進(jìn)行總結(jié)歸納。

Introduction

1.使用方法

    `include類(lèi)似于C語(yǔ)言中的#include結(jié)構(gòu),該指令通常用于將內(nèi)含全局或公用定義的頭文件包含在設(shè)計(jì)文件中。例如:

    `include "http://www.cnblogs.com/primitive.v"     // 注意:這里的要包含文件需要用雙引號(hào)括起來(lái)

    // 編譯時(shí),上面這一行將會(huì)被"http://www.cnblogs.com/primitive.v"中的內(nèi)容所替換

    ... ...

    <design.v文件的源代碼>

    ... ...

    `include結(jié)構(gòu)示意如下如所示:

 

圖1 `include圖解

    上圖意思為:在編譯的時(shí)候,需要對(duì)`include命令進(jìn)行預(yù)處理,將file2.v中的內(nèi)容全部復(fù)制插入到file1.v文件中的`include命令處,即將C替換`include。同理,在文件file.v中,用file1.v文件中的內(nèi)容替換`include出現(xiàn)的地方,這樣實(shí)際效果類(lèi)似于有圖,而編譯的時(shí)候,是將file.v文件以右圖為單元進(jìn)行編譯。

2.注意事項(xiàng)

  • 一條`include命令只能指定一個(gè)被包含的文件,如果需要包含多個(gè)文件,則需要使用多個(gè)`include命令進(jìn)行包含。
  • 多個(gè)`include命令可以寫(xiě)在一行,在`include命令行中只可以出現(xiàn)空格和注釋行。

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

  • `include命令后加入的文件名稱必須放在雙引號(hào)中。
  • `include中包括的文件需要使用絕對(duì)路徑或者相對(duì)路徑,如果不增加路徑信息,則默認(rèn)在當(dāng)前路徑下搜尋要包含的文件,或者在進(jìn)行編譯時(shí)指定被包含文件所在路徑,否則,編譯時(shí)默認(rèn)在當(dāng)前仿真路徑下搜尋`include中的文件,如果該文件不在當(dāng)前路徑,則會(huì)找不到被包含的文件。當(dāng)然可以在仿真時(shí)在仿真命令中加入搜尋路徑,例如使用+incdir+(file_path)增加搜索路徑,這樣仿真時(shí)會(huì)在增加的搜尋路徑下尋找找尋`include中包含的文件。
  • 如圖1,如果file1.v文件要用到file2.v中的內(nèi)容,則在使用`include命令時(shí),file2.v必須出現(xiàn)在file1.v文件前。
  • `include可以使用嵌套格式,如圖1所示。
  • `include不能include module,如果需要include module則可以把需要的module增加到filelist中。

Conclusion

    在實(shí)際使用`include包含文件時(shí),特別需要注意`include包含文件的順序以及包含文件存放的路徑等問(wèn)題。

關(guān)閉窗口

相關(guān)文章