Advertisement
Prin_Di

lab1_vhdl_testbench

May 3rd, 2022
562
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. library IEEE;
  2. use IEEE.STD_LOGIC_1164.ALL;
  3.  
  4. entity d_trigger_testbench is
  5. end d_trigger_testbench;
  6.  
  7. architecture Behavioral of d_trigger_testbench is
  8.     signal D : std_logic;
  9.     signal clk : std_logic;
  10.     signal Q : std_logic;
  11.     signal nQ : std_logic;
  12.  
  13. component d_trigger
  14.     Port (
  15.     C : in STD_LOGIC;
  16.     D : in STD_LOGIC;
  17.     Q: out STD_LOGIC;
  18.     nQ : out STD_LOGIC
  19.     );
  20. end component;
  21.  
  22. begin
  23.     Test_d_trigger: d_trigger port map (clk, D, Q, nQ);
  24.    
  25.     -- генератор тактов
  26.     gen:
  27.     process
  28.     begin
  29.         clk <= '0';
  30.         wait for 15 ns;
  31.         clk <= '1';
  32.         wait for 15 ns;
  33.     end process;
  34.    
  35.     -- генератор сигнала Д
  36.     test:
  37.     process
  38.     begin
  39.         wait for 100ns;
  40.         wait until clk'event and clk = '0'; d <= '0';
  41.         wait until clk'event and clk = '0'; d <= '1';
  42.         wait until clk'event and clk = '0'; d <= '0';
  43.     end process;
  44.      
  45.     -- ниже процесс сравнения выходов тестируемого объекта
  46.     -- с ожидаемыми
  47.     check:
  48.     process
  49.     begin
  50.         wait until clk'event and clk = '1';
  51.         wait for 9 ns; -- задержка на предполагаемое время прохождения
  52.         -- сигнала в D-триггере и выходном порте микросхемы!
  53.         assert (d = q) report "MISCOMPARING ERROR"
  54.         severity FAILURE;
  55.     end process;
  56. end Behavioral;
Advertisement
RAW Paste Data Copied
Advertisement