verilog全局变量和局部变量定义

1、局部变量定义(parameter)
声明:
parameter xx = 8; (注意有等号,且后面有分号)
使用:xx
作用域:parameter 作用于声明的那个文件。
另外parameter可以用作例化时的参数传递。具体方法参见《Verilog例化时的参数传递》一文



2.全局变量定义(`define )(注意撇号来自键盘左上方破浪线那个键,不是单引号)
声明:
`define xx 8(无等号,且不用分号)
【verilog全局变量和局部变量定义】 使用:`XX(使用该斌两时必须在变量前加撇号)
作用域:`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。


3.如何让变量在整个项目都有效
如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:
`ifndef xx
`define xx yy // or parameter xx = yy;
`endif

`define也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了。




    推荐阅读