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也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了。
推荐阅读
- Shell-Bash变量与运算符
- (二)ES6第一节变量(let|(二)ES6第一节变量(let,const)
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- linux环境变量相关操作
- 【课程-Perl】Lesson|【课程-Perl】Lesson 2: 值与变量
- 变量声明前置与函数声明前置
- 正则表达式中增加变量
- 1.块级作用域绑定
- 06|06 | 全局锁和表锁 (给表加个字段怎么有这么多阻碍((待评论)))