parameter作用域(parameter与define的三大区别)

程序中多次出现某些数字,如延迟时间或变量的宽度,有时可能要改变这些值,这种情况下经常要用到参数。参数一经声明,就视其为一个常量,在整个仿真过程中不再改变。

parameter作用域(parameter与define的三大区别)(1)

使用参数可以提高程序的可读性,也利于修改。

1.语法定义

parameter作用域(parameter与define的三大区别)(2)

2.作用范围

parameter作用于声明的那个文件;`define从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令失效。

3.功能

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

parameter作用域(parameter与define的三大区别)(3)

一旦`define指令被编译,其在整个编译过程中都有效。例如,通过一个文件中的`define指令,定义的常量可以在其他文件中被调用,直到遇到`undef。

parameter只在定义的文件中有效,在其他文件中无效,举例如下。

parameter作用域(parameter与define的三大区别)(4)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页