Загрузка данных


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity tb_d_trigger is
-- Testbench не имеет портов
end tb_d_trigger;

architecture Behavioral of tb_d_trigger is

    -- Подключение тестируемого модуля
    component d_trigger
    Port ( 
        D : in  STD_LOGIC;
        S : in  STD_LOGIC;
        C : in  STD_LOGIC;
        Q : out STD_LOGIC
    );
    end component;

    -- Входные сигналы (начинаем с 0)
    signal D : STD_LOGIC := '0';
    signal S : STD_LOGIC := '0';
    signal C : STD_LOGIC := '0';

    -- Выходной сигнал
    signal Q : STD_LOGIC;

begin

    -- Связывание сигналов с модулем
    uut: d_trigger PORT MAP (
        D => D,
        S => S,
        C => C,
        Q => Q
    );

    -- Процесс подачи сигналов (стимулы)
    stim_proc: process
    begin
        -- 1. Начальное состояние
        wait for 10 ns;

        -- 2. Проверка установки (S=1)
        S <= '1'; D <= '0'; C <= '0';
        wait for 10 ns;
        
        -- 3. Режим хранения (S=0, C=0)
        S <= '0'; D <= '0'; C <= '0';
        wait for 10 ns;

        -- 4. Запись 1 (S=0, C=1, D=1)
        S <= '0'; D <= '1'; C <= '1';
        wait for 10 ns;
        
        -- 5. Запись 0 (S=0, C=1, D=0)
        S <= '0'; D <= '0'; C <= '1';
        wait for 10 ns;

        -- 6. Сброс и хранение
        S <= '0'; D <= '0'; C <= '1';
        wait for 10 ns;
        S <= '0'; D <= '1'; C <= '0'; -- C=0, значит храним
        wait for 10 ns;

        wait; -- Остановка процесса
    end process;

end Behavioral;