Compilation 错误10430:Quarus生成另一个VHDL文件。。!

Compilation 错误10430:Quarus生成另一个VHDL文件。。!,compilation,vhdl,quartus,Compilation,Vhdl,Quartus,在Quartus(15.0 Webedition)中编译项目时,我收到以下错误消息: 10430 nios处的VHDL主单元声明错误。vhd:库“nios”中已存在主单元“nios” 在我的项目文件中有文件“NIOS.vhd”。编译后,Quartus在db文件夹中生成另一个名为“nios.vhd”的文件。此文件与我的文件“NIOS.vhd”不同,因此我收到此错误消息。现在还不清楚的是,为什么Quartus会在数据库中生成另一个文件?我怎样才能解决这个问题 请参阅QuartusII帮助- 原因:

在Quartus(15.0 Webedition)中编译项目时,我收到以下错误消息:

10430 nios处的VHDL主单元声明错误。vhd:库“nios”中已存在主单元“nios”

在我的项目文件中有文件“NIOS.vhd”。编译后,Quartus在db文件夹中生成另一个名为“nios.vhd”的文件。此文件与我的文件“NIOS.vhd”不同,因此我收到此错误消息。现在还不清楚的是,为什么Quartus会在数据库中生成另一个文件?我怎样才能解决这个问题

请参阅QuartusII帮助-

原因:在VHDL设计文件(.vhd)中指定位置的主单元声明中,您声明了指定的主单元。但是,指定的库已包含同名的主单元

见IEEE标准1076-2008 13.1设计单位,第2段:

主要单位::=实体声明
|配置_声明
|包装_声明
|包_实例化_声明
|上下文_声明
| PSL_验证_单元

第5段:

主单元的名称由该单元初始保留字后的第一个标识符给出。在二级单元中,仅命名体系结构主体;体系结构主体的名称由保留字architecture后面的标识符给出。给定库中的每个主要单元应有一个在给定库中唯一的简单名称,与给定实体声明关联的每个架构体应有一个在与该实体声明关联的架构体名称集中唯一的简单名称

1.3本标准的结构和术语,1.3.1概述,第4段:

在本文件中,应一词用于表示强制性要求。“应该”一词用于表示推荐。“可”一词用于表示允许的行为。can这个词用来表示可能性和能力

1.3.3语义描述,第2段:

这些语义描述中使用了以下术语,其含义如下:

错误:描述的条件表示格式错误的描述;但是,不需要实现来检测和报告这种情况。只有在语言处理过程中通常无法检测到条件时,条件才被视为错误

错误:描述的条件表示格式错误的描述;需要实现来检测条件并向工具用户报告错误

“应具有”在VHDL中是强制性的,其中违规是格式错误的描述,并报告为错误

它抱怨您的
nios
声明与库中已有的声明不匹配。(如果它们与现有声明相匹配,则将被替换):

13.1设计单位,第1段:

独立分析某些构件并将其插入到设计库中;这些构造称为设计单元。一个或多个设计单元按顺序构成一个设计文件

13.5分析顺序,第5段:

给定库单元可能会受到名称在给定库单元中引用的任何库单元的更改的影响。辅助装置可能会受到其相应主装置变化的影响。如果图书馆单元发生变更(例如,通过重新分析相应的设计单元),则所有可能受此类变更影响的图书馆单元将过时,并应在再次使用之前重新分析

因此,如果重新分析同一实体类的主单元(13.1,primary_unit),您将替换该主单元。尝试使用主单元的其他实体类,您将得到一个错误

返回QuartusII帮助:

操作:将两个主要单元编译到不同的库中,或为它们指定唯一的名称

说明工作目录包含分析过的设计文件和名为nios.vhd的文件,该文件与设计文件nios.vhd的名称不同

问题不是文件名,而是主要单元名。在本例中,它是一个主要单元名称,Altera可以在合成过程中随意使用。谢天谢地,它是另一个实体类的主要单元。您将面临更难理解的循环分析依赖项(来自13.5)

您应该更改主要单元名称,因为将主要单元名称与文件名联系在一起是很常见的(设计文件可以包含任意数量的设计单元),所以您也可以更改设计文件名。

请参阅QuartusII帮助-

原因:在VHDL设计文件(.vhd)中指定位置的主单元声明中,您声明了指定的主单元。但是,指定的库已包含同名的主单元

见IEEE标准1076-2008 13.1设计单位,第2段:

主要单位::=实体声明
|配置_声明
|包装_声明
|包_实例化_声明
|上下文_声明
| PSL_验证_单元

第5段:

主单元的名称由该单元初始保留字后的第一个标识符给出。在二级单元中,仅命名体系结构主体;体系结构主体的名称由保留字architecture后面的标识符给出。给定库中的每个主要单元应有一个在给定库中唯一的简单名称,与给定实体声明关联的每个架构体应有一个在与该实体声明关联的架构体名称集中唯一的简单名称

1.3结构a