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

时间:2015-10-07 13:16:08

标签: compilation vhdl quartus

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

  

在nios.vhd上发布10430 VHDL主要单位声明错误:主要单位" NIOS"已存在于库" nios"

在我的项目文件中,我有文件" NIOS.vhd"。编译完成后,Quartus在db-folder中生成另一个名为" nios.vhd"的文件。这个文件与我的文件" NIOS.vhd"不同。因此我收到此错误消息。目前尚不清楚为什么Quartus会在数据库中生成另一个文件?我该如何摆脱这个问题?

1 个答案:

答案 0 :(得分:0)

请参阅QuartusII帮助 - VHDL Primary Unit Declaration error at <location>: primary unit "<name>" already exists in library "<name>" (ID: 10430)

  

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

参见IEEE Std 1076-2008 13.1设计单位,第2段:

  

primary_unit :: = entity_declaration
  | configuration_declaration
  | package_declaration
  | package_instantiation_declaration
  | context_declaration
  | PSL_Verification_Unit

第5段:

  

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

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

  

在本文件中,单词shall用于表示强制性要求。单词should用于表示推荐。单词may可用于表示允许的操作。单词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开始),这将更难以理解。

您应该更改主要单位名称,因为将主要单位名称与文件名绑定是很常见的(设计文件可以包含任意数量的设计单位),您也可以更改设计文件名。