Совокупное присвоение типу доступа не является c? - PullRequest
1 голос
/ 09 января 2020

У меня есть следующий код:

library IEEE;
use IEEE.std_logic_1164.all;

entity static_test is
end entity;

architecture sim of static_test is
  type rec_t is record
    sl  : std_logic;
    slv : std_logic_vector(6 downto 0);
  end record;

  type rec_ptr_t is access rec_t;
begin

  process
    variable ptr  : rec_ptr_t;
  begin
    ptr   := new rec_t;

    (ptr.sl, ptr.slv) := std_logic_vector'(x"00");
    wait;
  end process;

end architecture sim;

И я получаю следующие ошибки от ActiveHDL:

Ошибка: COMP96_0309: static_test.vhd: (28, 6): Выражение в ассоциации элементов агрегата должно быть локально c именем, обозначающим переменную.

Ошибка: COMP96_0309: static_test.vhd: (28, 14): Выражение в ассоциации элементов агрегата должно быть локально stati c имя, которое обозначает переменную.

Я не могу найти раздел LRM, в котором указано, что совокупное назначение должно быть локально stati c, и я также не понимаю, почему ptr.sl или ptr.slv локально не считается c. Длина известна в типе. Просто ли такой тип доступа никогда не может считаться локально установленным c (для меня это имеет смысл).

...