【西西学FPGA】Lesson17
来源:互联网 发布:de castljau算法 编辑:程序博客网 时间:2024/05/01 19:44
16.4.24
parameter 和 define的区别【参考网络】
1、语法
声明:
parameter xx = yy;
`define XX YY
使用:
xx
`XX
2、作用域
parameter 作用于声明的那个文件;`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。
如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:
`ifndef xx
`define xx yy // or parameter xx = yy;
`endif
`define也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了。
3、作用
parameter可以用作例化时的参数传递。具体方法参见《Verilog例化时的参数传递》一文
在使用状态机时候区别挺大的
状态机的定义可以用parameter 定义,但是不推荐使用`define 宏定义的方
式,因为'define 宏定义在编译时自动替换整个设计中所定义的宏,而
parameter 仅仅定义模块内部的参数,定义的参数不会与模块外的其他状态机
混淆。例如一个工程里面有两个module 各包含一个FSM,如果设计时都有
IDLE 这一名称的状态,如果使用'define 宏定义就会混淆起来,如果使用
parameter 则不会造成任何不良影响
’define
一旦‘define指令被编译,其在整个编译过程中都有效。例如,通过另一个文件中的’define指令,定义的常量可以被其他文件中被调用。直到遇到 ‘undef
parameter
只在定义的文件中有效,在其它文件中无效
parameter 和 define的区别【参考网络】
1、语法
声明:
parameter xx = yy;
`define XX YY
使用:
xx
`XX
2、作用域
parameter 作用于声明的那个文件;`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。
如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:
`ifndef xx
`define xx yy // or parameter xx = yy;
`endif
`define也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了。
3、作用
parameter可以用作例化时的参数传递。具体方法参见《Verilog例化时的参数传递》一文
在使用状态机时候区别挺大的
状态机的定义可以用parameter 定义,但是不推荐使用`define 宏定义的方
式,因为'define 宏定义在编译时自动替换整个设计中所定义的宏,而
parameter 仅仅定义模块内部的参数,定义的参数不会与模块外的其他状态机
混淆。例如一个工程里面有两个module 各包含一个FSM,如果设计时都有
IDLE 这一名称的状态,如果使用'define 宏定义就会混淆起来,如果使用
parameter 则不会造成任何不良影响
’define
一旦‘define指令被编译,其在整个编译过程中都有效。例如,通过另一个文件中的’define指令,定义的常量可以被其他文件中被调用。直到遇到 ‘undef
parameter
只在定义的文件中有效,在其它文件中无效
0 0
- 【西西学FPGA】Lesson17
- 【西西学FPGA】Lesson1
- 【西西学FPGA】Lesson2
- 【西西学FPGA】Lesson3
- 【西西学FPGA】Lesson4
- 【西西学FPGA】Lesson5
- 【西西学FPGA】Lesson6
- 【西西学FPGA】lesson7
- 【西西学FPGA】Lesson8
- 【西西学FPGA】Lesson12
- 【西西学FPGA】Lesson13
- 【西西学FPGA】Lesson9 Uart
- 【西西学FPGA】Lesson11 VGA
- 【西西学FPGA】Lesson14 fifo
- 【西西学FPGA】Lesson15 sobel
- 【西西学FPGA】Lesson10 精简帧
- 【西西学FPGA】Lesson16 Altium Designer
- 【西西学FPGA】Ubuntu环境下的Vivado使用及petalinux总结
- html第三天利用table做课程表
- GIT 忽略文件以及忽略已上传文件
- POJ 1979-Red and Black(DFS)
- 【西西学FPGA】Lesson16 Altium Designer
- Activity深入学习(2)生命周期方法介绍
- 【西西学FPGA】Lesson17
- python爬虫之-BeautifulSoup
- 小何讲Linux: Linux系统调用及用户编程接口(API)
- 【HUSTOJ】1039: 宠物购买
- 计算机视觉目标检测的框架与过程
- springmvc源码解析(2)
- 怎么扫描空文件夹
- ODI 12C 打补丁----解决essbase和planning知识模块问题
- 测试mysql的innodb引擎的锁表