Как смоделировать кнопки в тестовом стенде VHDL? - PullRequest
0 голосов
/ 19 мая 2019

У меня есть базовый дизайн декодера Морзе, реализованный в VHDL.Он отлично работает на плате FPGA, но не работает на тестовом стенде.

Я думаю, что-то не так с кнопками, но я не уверен.

Я пытался поиграть с часами на тестовом стенде, но безрезультатно.

ARCHITECTURE behavior OF ProjTest IS 

    -- Component Declaration for the Unit Under Test (UUT)

    COMPONENT LabProject
    PORT(
         char : IN  std_logic_vector(4 downto 0);
         save : IN  std_logic;
         start_read : IN  std_logic;
         clk : IN  std_logic;
         p_out : OUT  std_logic
        );
    END COMPONENT;


   --Inputs
   signal char : std_logic_vector(4 downto 0) := (others => '0');
   signal save : std_logic := '0';
   signal start_read : std_logic := '0';
   signal clk : std_logic := '0';

    --Outputs
   signal p_out : std_logic := '0';

   -- Clock period definitions
   constant clk_period : time := 2 ns;

    constant wait_time : time :=  10 ns;

BEGIN

    -- Instantiate the Unit Under Test (UUT)
   uut: LabProject PORT MAP (
          char => char,
          save => save,
          start_read => start_read,
          clk => clk,
          p_out => p_out
        );

   -- Clock process definitions
   clk_process :process
   begin
        clk <= '0';
        wait for clk_period/2;
        clk <= '1';
        wait for clk_period/2;
   end process;


   -- Stimulus process
   stim_proc: process
   begin        

        wait for wait_time;
        char <= "00001";
        wait for wait_time;
        save <= '1';
        wait for wait_time;
        save <= '0';

        wait for wait_time;
        char <= "00010";
        wait for wait_time;
        save <= '1';
        wait for wait_time;
        save <= '0';
      wait for wait_time;

        char <= "00000";
        wait for wait_time;
        save <= '1';
        wait for wait_time;
        save <= '0';
        wait for wait_time;

        start_read <= '1';
        -- wait for wait_time;
        -- start_read <= '0';

      wait;
   end process;

END;

Вот весь стенд.Сигналы start_read и save управляются кнопками на ПЛИС.

Сигнал p_out должен давать представление кода Морзе по буквам по битам, но оно никогда не изменяется в тестовом стенде,На ПЛИС проблем нет, как я уже говорил.

...