Verilog中parameter与宏定义的区别

参数定义

parameter xx = yy; (有分号)

宏定义

`define xx yy   (无分号)

作用范围

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

特别强调:状态机

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容