"); //-->
关于宏定义的几点注意事项:
1. 宏名可以用大写字母表示,也可以用小写字母,但建议使用大写字母,以与变量名区别。
2. ·define命令可以出现在模块定义内部或外部,宏名的有效范围为定义命令之后到原文件结束,通常都写在模块定义的外面。
3. 引用已定义的宏名时,需在宏名前加“`”号
4. 宏定义可以替代一个字符串,也就是做简单的替换,不做语法检查!
5. 宏定义不属于Verilog语句,所以末尾不加“;”,如果加了会连同分号一起置换掉。
6. 在进行宏定义时,可以引用已定义的宏名,进行层层置换。
7. 宏名和宏内容必须在同一行进行声明,如果宏内容中包含注释,注释行不会作为被置换的内容。
8. 宏内容可以为空格,这时宏内容被定义为空,引用该宏名时不会有内容被置换。
9. 组成宏内容的字符串不能被以下语句记号分隔开:
注释行、数字、字符串、确认符、关键词、双目和三目字符运算符。如下面的声明和引用就是非法的:
`define first_half "start of string $display(`first_half end of string");
10. 不建议使用与预处理命令相同的宏名
11. 宏名可以使普通的标识符(变量名),比如变量名“signal_name”和宏名“`signal_name”是不同的,但为了便于区分,不建议这样使用。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。