"文件包含"處理`include 所謂"文件包含"處理是一個(gè)源文件可以將另外一個(gè)源文件的全部內(nèi)容包含進(jìn)來,即將另外的文件包含到本文件之中。Verilog HDL語言提供了`include命令用來實(shí)現(xiàn)"文件包含"的操作。其一般形式為: `include "文件名" 圖中意思為:在編譯的時(shí)候,需要對(duì)`include命令進(jìn)行"文件包含"預(yù)處理:將File2.v的全部內(nèi)容復(fù)制插入到`include "File2.v"命令出現(xiàn)的地方,即將File2.v被包含到File1.v中,得到圖C的結(jié)果。在接著往下進(jìn)行編譯中,將"包含"以后的File1.v作為一個(gè)源文件單位進(jìn)行編譯。 "文件包含"命令是很有用的,它可以節(jié)省程序設(shè)計(jì)人員的重復(fù)勞動(dòng)??梢詫⒁恍┏S玫暮甓x命令或任務(wù)(task)組成一個(gè)文件,然后用`include命令將這些宏定義包含到自己所寫的源文件中,相當(dāng)于工業(yè)上的標(biāo)準(zhǔn)元件拿來使用。另外在編寫Verilog HDL源文件時(shí),一個(gè)源文件可能經(jīng)常要用到另外幾個(gè)源文件中的模塊,遇到這種情況即可用`include命令將所需模塊的源文件包含進(jìn)來。 [例1]: (1)文件aaa.v
(2)文件 bbb.v
在上面的例子中,文件bbb.v用到了文件aaa.v中的模塊aaa的實(shí)例器件,通過"文件包含"處理來調(diào)用。模塊aaa實(shí)際上是作為模塊bbb的子模塊來被調(diào)用的。在經(jīng)過編譯預(yù)處理后,文件bbb.v實(shí)際相當(dāng)于下面的程序文件bbb.v:
關(guān)于"文件包含"處理的四點(diǎn)說明: 1) 一個(gè)`include命令只能指定一個(gè)被包含的文件,如果要包含n個(gè)文件,要用n個(gè)`include命令。注意下面的寫法是非法的`include"aaa.v""bbb.v" 2) `include命令可以出現(xiàn)在Verilog HDL源程序的任何地方,被包含文件名可以是相對(duì)路徑名,也可以是絕對(duì)路徑名。例如:'include"parts/count.v" 3) 可以將多個(gè)`include命令寫在一行,在`include命令行,只可以出空格和注釋行。例如下面的寫法是合法的。 'include "fileB" 'include "fileC" //including fileB and fileC 4) 如果文件1包含文件2,而文件2要用到文件3的內(nèi)容,則可以在文件1用兩個(gè)`include命令分別包含文件2和文件3,而且文件3應(yīng)出現(xiàn)在文件2之前。例如在下面的例子中,即在file1.v 中定義:
file2.v的內(nèi)容為:
file3.v的內(nèi)容為:
這樣,file1.v和file2.v都可以用到file3.v的內(nèi)容。在file2.v中不必再用 `include "file3.v"了。 5) 在一個(gè)被包含文件中又可以包含另一個(gè)被包含文件,即文件包含是可以嵌套的。例如 上面的問題也可以這樣處理。
它的作用和下圖的作用是相同的。 6)‘include語句一般只用于仿真多數(shù)綜合器不支持該語句。
|
|