Имам въпрос относно декларация за случай и VHDL 2008. Имам обект, дефиниран по този начин:
entity multiplier_v2 is
generic( WIDTH_WORD : integer := 32;
WIDTH_RSA : integer := 2048;
LENGTH_ADDRESS : integer := 6 );
port (
reset : in std_logic;
clk : in std_logic;
start : in std_logic;
input_1 : in std_logic_vector(WIDTH_WORD - 1 downto 0);
input_2 : in std_logic_vector(WIDTH_WORD - 1 downto 0);
module : in std_logic_vector(WIDTH_WORD - 1 downto 0);
output : out std_logic_vector(WIDTH_WORD - 1 downto 0);
ack_data : out std_logic;
data_valid : out std_logic;
new_module : in std_logic;
Вътре в модула имам сигнал, деклариран по този начин:
signal counter_ack : std_logic_vector(LENGTH_ADDRESS - 1 downto 0);
Използвам този сигнал в изявление за случай:
case counter_ack is
when (others => '1') =>
ack_data <= '0';
when others =>
counter_ack <= counter_ack + 1;
end case;
Сега съм почти сигурен, че опцията VHDL-2008 е активирана в моя инструмент за синтез, но имам следната грешка относно тази част от моя код:
2049990 ГРЕШКА - E:/My_Designs/Custom Module/Montgomery_Multiplier/Diamond/src/multiplier_v2.vhd(456,6-461,15) (VHDL-1544) тип масив case израз трябва да бъде от локално статичен подтип
Прочетох, че тази грешка трябва да бъде коригирана във VHDL-2008. Някакви идеи ?