Ошибка разбора в VHDL

У меня возникла эта проблема при кодировании 3-битного счетчика с помощью JK-триггеров, и я случайно обнаружил ошибку в 34 строке, которая записывается автоматически XILINX VHDL, поэтому я запутался в том, что на самом деле неправильно.

    LIBRARY ieee;
    USE ieee.std_logic_1164.ALL;
    USE ieee.std_logic_unsigned.all;
    USE ieee.numeric_std.ALL;

    ENTITY 3bitBrojacTest_vhd IS
    END 3bitBrojacTest_vhd;

    ARCHITECTURE behavior OF 3bitBrojacTest_vhd IS 

-- Component Declaration for the Unit Under Test (UUT)
COMPONENT Asinhroni3BitBrojacModule
PORT(
    Clk : IN std_logic;
    High : IN std_logic;       
    Q0 : INOUT std_logic;
    Q1 : INOUT std_logic;
    Q2 : INOUT std_logic;
    Q2neg : INOUT std_logic
    );
END COMPONENT;

--Inputs
SIGNAL Clk :  std_logic := '0';
SIGNAL High :  std_logic := '0';

--BiDirs
SIGNAL Q0 :  std_logic;
SIGNAL Q1 :  std_logic;
SIGNAL Q2 :  std_logic;
SIGNAL Q2neg :  std_logic;

    BEGIN

-- Instantiate the Unit Under Test (UUT)
uut: Asinhroni3BitBrojacModule PORT MAP(
    Clk => Clk,
    High => High,
    Q0 => Q0,
    Q1 => Q1,
    Q2 => Q2,
    Q2neg => Q2neg
);

clk_proc: process
begin
    Clk <= '1';
    wait for 10ns;
    Clk <= '0';
wait for 10ns;
end process;


tb : PROCESS
BEGIN

    -- Wait 100 ns for global reset to finish
    wait for 100ns;
    High <= '1';
    wait for 160ns;
    High <= '0';

    wait; -- will wait forever
END PROCESS;

    END;

Итак, ошибка говорит:

ОШИБКА:HDLParsers:164 - строка 34. ошибка синтаксического анализа, неожиданный INTEGER_LITERAL, ожидающий анализ IDENTIFIER "3bitBrojacTest_vhd_stx.prj": 1.27

Если кто-нибудь знает, как это исправить, я был бы очень рад получить такой ответ. Спасибо, парни!

1 ответ

Решение

Несколько потенциальных проблем:

  1. Я вполне уверен, что имя вашей сущности не может начинаться с цифры.

  2. Вам нужно пространство между вашим временем и суффиксом. (Например wait for 10 ns;)

  3. Вы не должны включать и numeric_std, и std_logic_unsigned в один и тот же файл. Просто используйте numeric_std, поскольку это пакет, поддерживаемый IEEE.

Другие вопросы по тегам