【问题标题】:Altera Quartus Error (12007): Top-level design entity "alt_ex_1" is undefinedAltera Quartus 错误 (12007):顶层设计实体“alt_ex_1”未定义
【发布时间】:2014-11-08 01:14:30
【问题描述】:

我已经查看了之前的所有问题,似乎没有人有问题 和我一样简单。我也搜索了网络,找不到解决方案。

我是 VHDL 新手,正在尝试编译提供的简单示例 由 Altera 提供,如下:

library ieee;
use ieee.std_logic_1164.all;

entity light is
port(x1, x2: in std_logic;
          f: out std_logic);
end light;

architecture LogicFunction of light is
begin
    f <= (x1 and not x2) or (not x1  and x2);
end LogicFunction;

我按照Altera tutorial中的项目创建步骤, 但是当我尝试编译项目时出现错误:

Error (12007): Top-level design entity "alt_ex_1" is undefined

【问题讨论】:

  • Altera 教程 的链接已损坏。好像是the same tutorial as this one
  • 错误消息中的术语design entity是在VHDL标准中定义的(例如IEEE Std 1076-2008 3. Design entity and configurations, 3.1 General)和顶层的含义。 “设计实体是 VHDL 中的主要硬件抽象。它代表了具有明确定义的输入和输出并执行明确定义的功能的硬件设计的一部分。设计实体可以代表整个系统、子系统、电路板、芯片、宏单元、逻辑门或介于两者之间的任何抽象级别。”
  • "... 这种层次结构中的顶级块是设计实体本身;这样的块是驻留在库中的外部块,可以用作其他设计的组件。 ...”它有助于理解“由设计实体定义的设计层次结构的细化包括对与设计实体定义的外部块等效的块语句的细化。” (14.2 设计层次的细化)。这里的净效果是顶级设计实体名称是light 而不是alt_ex_1。您犯了一个排版工具错误。

标签: vhdl intel-fpga quartus


【解决方案1】:

简短回答

Error (12007): Top-level design entity "alt_ex_1" is undefined

错误信息远非微不足道,而是在一个回旋处 它确实告诉你出了什么问题。 您(可能)使用alt_ex_1.vhd 作为设计文件的名称。
在 Altera Quartus 中,文件名 必须与 (顶层)entity 在 VHDL 设计代码中声明。
您需要做的是将文件名从alt_ex_1.vhd更改为 light.vhd.
为简单起见,请创建一个名为 light 而不是 alt_ex_1 的新项目。

详尽的答案

重现错误很简单。这就是我所做的。 1

启动Quartus Prime Lite Edition后点击File > New Project Wizard....
如果您看到简介,请点击Next &gt;。选择一个工作目录。
作为项目名称输入alt_ex_1。 单击Next &gt; 两次,然后单击Finish
创建设计文件:File > New....
Design Files 下,选择VHDL File,然后选择OK
下一个File > Save As...。键入或粘贴 alt_ex_1.vhd 并单击 Save.
粘贴代码:

library ieee;
use ieee.std_logic_1164.all;

entity light is
port(x1, x2: in std_logic;
          f: out std_logic);
end light;

architecture LogicFunction of light is
begin
    f <= (x1 and not x2) or (not x1  and x2);
end LogicFunction;

然后再次保存文件。

使用Processing 编译 > Start > Start Analysis &amp; Synthesis - 或按 Ctrl + K消息窗口显示错误:

12007 Top-level design entity "alt_ex_1" is undefined

要摆脱烦人的错误,请删除在 工作目录,然后重新开始。 按照上面的说明进行操作,但这次确保更换每个 alt_ex_1light 的出现。

Message 窗口中期望看到类似:

Quartus Analysis & Synthesis was successful. 0 errors, 1 warning

作为最后几行之一。


1 在 Windows 10 上使用 Altera / Intel Quartus Lite 18.1,但是 版本可能并不重要。

参考资料:

【讨论】:

    【解决方案2】:

    只需将指针放在项目导航面板中的文件名上,然后单击右键,然后按下(设置为顶级实体)。 完成。

    【讨论】:

      【解决方案3】:

      我的问题是关于 verilog 代码编译器。但是当我搜索问题时,我总是看到这个问题。所以我决定也添加我的解决方案来指导其他人。我花了很多时间才找到解决方案。这是我为解决问题所做的。只需按照以下步骤操作(Quartus II 14.0.0); Assignments -> Settings -> Top-Level Entity ->Select your module

      【讨论】:

        【解决方案4】:

        在章节Starting a New Project 中,您被要求将您的项目称为light。在我看来,您没有正确执行该步骤并将您的项目命名为alt_ex_1。这就是您收到 12007 错误的原因,因为编译器不知道您设计的顶级实体是什么。

        要解决这个问题,您可以:

        1. 更改Assignments -&gt; Device -&gt; General 中的顶级实体分配。
        2. 通过Project Navigator (Files -&gt; Set as top-level entity) 将您的模块设置为顶级实体。

        顺便说一句 1, 2, 3, ... - 都是同一个问题。

        【讨论】:

        • 非常感谢,在这种情况下我没有完全理解顶级实体的含义。我假设因为我只有一个文件,软件会假设第一个实体。我注意到我仍然可以将我的项目称为任何我喜欢的名称,例如“alt_ex_3”,但我必须将顶级设计​​实体指定为“light”。再次感谢您的宝贵时间。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        • 1970-01-01
        • 2012-04-03
        相关资源
        最近更新 更多