Verilog中parameter(参数)与define(宏定义)的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Verilog中parameter(参数)与define(宏定义)的区别相关的知识,希望对你有一定的参考价值。

Verilog中parameter(参数)与define(宏定义)的区别

    1. 语句格式

parameter xx=yy; (有分号)

’define xx yy   (无分号)

    1. 作用范围

参数是局部的,只在其定义的模块内部起作用,而宏定义对同时编译的多个文件起作用。即使在某一个模块内部指定的宏定义,在编译过程中仍旧对多个文件起作用,直至遇到重新定义为止。

    1. 状态机环境下

状态机的定义可以用parameter 定义,但是不推荐使用`define 宏定义的方式,因为‘define 宏定义在编译时自动替换整个设计中所定义的宏,而parameter 仅仅定义模块内部的参数,定义的参数不会与模块外的其他状态机混淆。例如一个工程里面有两个module 各包含一个FSM,如果设计时都有IDLE 这一名称的状态,如果使用‘define 宏定义就会混淆起来,如果使用parameter 则不会造成任何不良影响。

以上是关于Verilog中parameter(参数)与define(宏定义)的区别的主要内容,如果未能解决你的问题,请参考以下文章

verilog中有谁用过用parameter定义的常数做赋值语句的位宽限制

Verilog语法遗漏点

Verilog:通用参数

Verilog中使用'include实现参数化设计

Verilog设计入门

请问在FPGA Verilog设计中,使用关键字parameter定义常数有什么好处?