Глобально статическая ошибка (modelsim vs quartus) - PullRequest
0 голосов
/ 17 мая 2018

Этот простой тест приводит к ошибке при компиляции с modelsim, тогда как Quartus прекрасно подходит для всего процесса синтеза / сборки.

library ieee;
use ieee.std_logic_1164.all;

entity submodule is
port(
  four_bits_input  : in  std_logic_vector(3 downto 0);
  four_bits_output : out std_logic_vector(3 downto 0)
);
end entity;

architecture behav of submodule is
begin
  four_bits_output <= four_bits_input;
end architecture;

-------------------------------------------------------

library ieee;
use ieee.std_logic_1164.all;

entity globally_static_test is
port (
  one_bits_input   : in std_logic;
  three_bits_input : in std_logic_vector(2 downto 0);
  four_bits_output : out std_logic_vector(3 downto 0)
);
end entity;

architecture behav of globally_static_test is
begin

submodule_inst : entity work.submodule
port map(
   four_bits_input  => one_bits_input & three_bits_input  -- Modelsim Error is here.
  ,four_bits_output => four_bits_output
);

end architecture;

Хорошо известна ошибка Modelsim:

(vcom-1436) Фактическое выражение (инфиксное выражение) формального "four_bits_input" не является глобально статичным.

Я видел такой тип аффектации в оболочке много в разных компаниях и в несколькихпроекты.

Мой вопрос: «Кто на самом деле прав? Моделсим или Квартус».

Редактировать:

У меня естьсначала провели тест со следующими версиями

  • Modelsim v10.5b Intel FPGA Starter Edition - VHDL 2002
  • Quartus Prime 17.1 - VHDL 1993

ЗатемЯ изменил параметр компиляции Modelsim для использования VHDL 2008, и ошибка исчезла.

...