新闻  |   论坛  |   博客  |   在线研讨会
Verilog学习之宏定义注意事项
51门生 | 2016-06-18 13:43:17    阅读:1806   发布文章

关于宏定义的几点注意事项:

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”是不同的,但为了便于区分,不建议这样使用。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客