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;