VHDL runtime: недопустимый доступ к памяти (висячий доступ или слишком маленький размер стека) - PullRequest
0 голосов
/ 03 мая 2019

Странная ошибка при запуске тестового стенда, я никогда раньше такого не видел. Я пытаюсь смоделировать 8-битный калькулятор с 4 регистрами. Калькулятор имеет 8-битные инструкции для сложения, вычитания, ветвления на равных, немедленной загрузки и печати на монитор. Я проверил, чтобы убедиться, что я не нахожусь в любых бесконечных циклах. Я проводил исследования в Интернете, и, похоже, нет особых причин, по которым у меня может быть эта ошибка.

Я трижды проверил наличие циклов, утечек памяти, а также попытался увеличить кадр стека. Никто еще не удался. Использование команд ghdl -a, -e и -r для анализа, компиляции и запуска.

'' '

architecture structural of calculator_tb is
component calculator is
  port(
    I : in std_logic_vector(7 downto 0); --instruction input
    clk : in std_logic
  );
end component calculator;


signal I : std_logic_vector(7 downto 0);
signal clk : std_logic;


begin
  calculator_0 : calculator port map(I, clk);
    process
      file instruction_file : text is in "instructions.txt"; --Instructions in text(ASCII) file.
      variable instruction_line : line;
      variable intruction_vector : bit_vector(7 downto 0);
    begin
      while (not(endfile(instruction_file))) loop --Loop to the end of the text file.
        wait for 1 ns;
        clk <= '0';
        readline(instruction_file, instruction_line); --Read in instruction line
        read(instruction_line, intruction_vector); --merge instruction to bit vector
        I <= to_stdlogicvector(intruction_vector); --Convert bit vector to std_logic_vector and pass instruction to the calculator input.

        --Create a rising edge for the clock.
        wait for 1 ns;
        clk <= '1';
      end loop;
      assert false report "end of test" severity note;
    end process;
end architecture structural;
''''
The runtime error I receive is:

недопустимый доступ к памяти (свисающие обращения или слишком маленький стек)

...