数字电路设计之verilog的define和parameter

来源:互联网 发布:淘宝店铺装修 知乎 编辑:程序博客网 时间:2024/05/29 04:32
1.语法定义

                  parameter xx = yy;

                 `define xx  yy   ( 注: 句尾无分号)

2.作用范围

                  parameter 作用于声明的那个文件。

                  `define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。后来我试了一次发现真的是每个文件都要define一次,我觉得和parameter确实差不多。


3.功能

           状态机的定义可以用parameter 定义,但是不推荐使用`define 宏定义的方式,因为'define 宏定义在编译时自动替换整个设计中所定义的宏,而parameter 仅仅定义模块内部的参数,定义的参数不会与模块外的其他状态机混淆。例如一个工程里面有两个module 各包含一个FSM,如果设计时都有IDLE 这一名称的状态,如果使用'define 宏定义就会混淆起来,如果使用parameter 则不会造成任何不良影响。但是我觉得在设计比如CPU这样的大型电路的时候我觉得使用define会更好,比如在顶层模块定义一些指令,那么就有一个好的规范,别的文件的定义和这个define一样的时候就会有warning。


0 0
原创粉丝点击