XST-“警告:HDL编译器:38行XX宏”重新定义

描述

一般描述:

当先前定义的宏再次被提交给XST Verilog编译器时,会发生以下警告:

“警告:HDL编译器:38 <文件>行XX宏”<名称>“重新定义”。

当包含一组宏的文件多次使用“包含语句”读取时,通常会发生这种情况。

解决方案

编译器提供这些消息以确保您知道宏重新声明,如果您不希望发生这种情况。

编译器很难确定新的声明是否是新的或冗余的,因为宏定义可以来自不同的地方,或者由其他声明或变量组成。为了安全起见,当执行重新声明时,XST将始终发出警告。

为了避免这些冗余消息,使用条件编译控件使编译器意识到这些宏已经被定义。

例如,假设要声明一个常量宽度:

“定义宽度32”

如果在使用“包含语句”的多个Verilog模块调用的文件中引用此文件,则将在每个实例之外报告上述警告。可以使用条件编译来指示编译器确定宏是否已被预先定义:

“IFNDEF宽度”

“定义宽度32”

足弓

您可以在“IFNDEF”和“EnEnF语句”中放置尽可能多的宏,并创建“IFNDEF语句”来引用所包含的宏中的任何一个。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-30 16:07:18 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它