Не удается найти указанный элемент контекста

Я пытаюсь написать некоторый простой поведенческий код для D-триггера (который прекрасно компилирует исходные файлы), однако файл testbench не компилируется. Я получаю следующую ошибку:

Ошибка: COMP96_0078: D_FF_tb.vhd: (23, 15): неизвестный идентификатор "d_flip_flop".

Ошибка: COMP96_0056: D_FF_tb.vhd: (23, 15): не удается найти объявление объекта ссылки "d_flip_flop".

Ошибка: COMP96_0055: D_FF_tb.vhd: (23, 15): не удается найти ссылочный элемент контекста "d_flip_flop".

Вот мой исходный код:

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.numeric_std.all; 

entity d_flipflop is
    port(  
    d_in : in STD_LOGIC;
    q_out: out STD_LOGIC;
    qbar_out: out STD_LOGIC;
    clock : in STD_LOGIC;
    reset : in STD_LOGIC
    );
end d_flipflop;

architecture behavioral of d_flipflop is
begin
    process (clock) is
    begin
        if rising_edge(clock) then
            if(reset = '1') then
                q_out <= '0';
                qbar_out <= '1';
            else 
                q_out <= d_in;
                qbar_out <= not d_in;
            end if; 
        end if;
    end process;
end architecture behavioral;

Вот мой испытательный стенд:

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.numeric_std.all;          

entity d_flipflop_tb is
end d_flipflop_tb; 

architecture tb_architecture of d_flipflop_tb is

    -- Stimulus Signals--
    signal d_tb : std_logic;
    signal q_tb : std_logic;
    signal qbar_tb: std_logic;
    signal reset_tb: std_logic;
    signal clock_tb: std_logic := '0'; 

    signal end_sim : boolean := false;

    constant half_period : time := 5 ns;

    begin

        UUT: entity d_flip_flop
            port map(
            d_tb => d_in,
            q_tb => q_out,
            qbar_tb => qbar_out,
            reset_tb => reset, 
            clock_tb => clock
            );

            clock: process
            begin
                while end_sim = false loop
                    clock_tb <= not clock_tb;
                    wait for half_period;
                end loop;
                wait;
            end process;

            stim: process
            begin        
                -- Initialize
                d_tb <= '0';
                reset_tb <= '1';

                --Wait for 1 period
                wait for half_period*2;
                reset_tb <= '0';

                --Provide stimulus
                for i in 0 to 5 loop
                    d_tb <= not d_tb;
                    wait for half_period;
                end loop;

                end_sim <= true;

                wait;

            end process; 
    --end process;

end tb_architecture;

Это не первый раз, когда я работаю в VHDL, я просто пытаюсь разобраться в некоторых основах, и я просматриваю предыдущий код, который я написал, и все они работали хорошо тогда (не пробовал их сейчас с более новой версией aldec) но я не уверен, что мне не хватает.

Я нашел это, но я не смог извлечь из этого ничего полезного. Это только оставило меня более смущенным относительно того, является ли это ошибкой инструмента или нет.

0 ответов

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