【摘要】:Verilog有很多的编译器指令。这些指令都是以`为开头。类似的,还有一些别的编译器指令,比如`ifndef、`elseif等。`include这又是一个作用类似c语言的编译器指令。这条指令用于把其他文件中的内容包含到当前文件。可以采用完整路径或者相对路径的方式来使用该条指令。`resetall这条编译器指令用于把所有编译器指令重置为默认的缺省值。这条指令给这些线网明确定义为线网类型。以上所有这些指令,在Verilog代码编译的全过程,这些指令都有效。
Verilog有很多的编译器指令。这些指令都是以`为开头。
(1)`define和`undef
`define:Verilog有很多语法和c语言很类似。这是个类似于c语言#define的指令。用于定义文本替换。
例6.50:
例6.51:
这个例子说的是:如果定义了一个宏HP,则定义参数HP=8;否则定义参数HP=9。
`ifdef和`else可以配对使用,也可以单独只使用`ifdef。
类似的,还有一些别的编译器指令,比如`ifndef、`elseif等。`ifndef的用法和`ifdef刚好相反。
(3)`include
这又是一个作用类似c语言的编译器指令。这条指令用于把其他文件中的内容包含到当前文件。可以采用完整路径或者相对路径的方式来使用该条指令。
例6.52:
该语句把路径c:/xilinx/ex1的a.v文件内容包含到当前文件的这一行这个地方。(www.xing528.com)
(4)`timescale
`timescale一般用来作为时间标度,用来定义当前建模的时间单位和时间精度。
(5)`resetall
这条编译器指令用于把所有编译器指令重置为默认的缺省值。
(6)`default_nettype
在建模的过程中,有些线网没有被定义类型。这条指令给这些线网明确定义为线网类型。
(7)`celldefine和`endcelldefine
这两个指令配对使用,用于把模块标记为单元模块。由此,就可以由某些子程序来调用该单元模块。
(8)`line
该指令作用是将指定的行号和文件名复位至指定的值。
以上所有这些指令,在Verilog代码编译的全过程,这些指令都有效。直到遇到别的冲突编译器指令为止。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。