【问题标题】:wait statement must contain condition clause with UNTIL keyword等待语句必须包含带有 UNTIL 关键字的条件子句
【发布时间】:2015-11-18 14:15:01
【问题描述】:

以下 VHDL 将用于测试台。在分析过程中,我不断收到第一个等待语句的错误:“等待语句必须包含带有 UNTIL 关键字的条件子句”我有几个这样编写的工作测试台。我似乎无法找到错误可能是什么。

`library IEEE;
USE IEEE.std_logic_1164.all;
entity case_ex_TB is end;
architecture simple_test of case_ex_TB is
--- DUT Component Declaration ---
component case_ex
    port(
    clk, rstN: IN std_logic;
    color: OUT std_logic_vector(2 downto 0));
end component;
--- Signals Declaration ---
signal rst, clock: std_logic:='0';
signal color: std_logic_vector(2 downto 0);

begin
DUT: case_ex  --- DUT instantiation ---
port map (clk => clock,
         rstN => rst,
         color => color);
--- Signal's Waves Creation ---
rst <= '1','0' after 50 ns, '1' after 2 us;
clock_crtate: process
begin
    while rst = '0' loop
        clock <= '1','0' after 50 ns;
        wait for 100 ns;
    end loop;
        clock <= '1';
        wait;
end process;
end simple_test;`

【问题讨论】:

  • 您提到了 Quartus-II,但您使用的是什么模拟器?你不是想合成这个,是吗?
  • 嗨 Morten,我使用 Quartus-II 编写代码,在“开始分析和综合”之后,我收到此错误:错误 (10533): VHDL Wait Statement error at case_ex_TB.vhd(26):等待语句必须包含带有 UNTIL 关键字的条件子句。
  • Synthesis 用于在设备中实现设计,Synthesis 无法像wait for 100 ns; 那样处理定时等待。对于测试台,您通常需要像 ModelSim 这样的模拟器。 Altera 的套件中有 ModelSim Starter Edition,所以看看吧。
  • 好的,感谢您的帮助。

标签: vhdl intel-fpga quartus


【解决方案1】:

您收到此错误是因为您已将测试台设置为 Quartus-II 中的顶级实体。顶级实体必须保留组件case_ex,并且该组件必须包含可综合代码。

要模拟您的测试平台,您必须配置一个测试平台。只需单击“RTL 模拟”之前的加号,然后单击“编辑设置”。 (名称可能与 Quartus 版本不同)。

【讨论】:

  • 我还有一个问题。
【解决方案2】:

您需要注意的另一件事是,有必要将此文件作为模拟放入,遵循路径:

作业 -> 设置 -> EDA 工具设置 -> 模拟

自然而然地,添加了一个测试平台。

另外需要注意的是,如果你想改变顶层实体,你只需要在 Quartus 中进行:

项目 -> 设置为顶级实体(在您所在的文件中)

此外,在项目导航器中,请确保不要错过这样一个事实,即您需要每个文件才能使您的程序正常工作。

【讨论】:

    猜你喜欢
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多