VHDL-2008 иерархический сигнал доступа к массиву - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь получить доступ к массиву через иерархические имена VHDL-2008.Я могу получить доступ ко всему массиву, но когда я пытаюсь получить доступ к отдельным элементам массива, я получаю ошибку компиляции:

ACOM: Error: COMP96_0015: tb.vhd : (13, 43): ':' expected.

Возможно ли получить доступ к отдельным элементам массива?Какой правильный синтаксис?

Вот мой код:

DUT

library ieee;
use ieee.std_logic_1164.all;

entity dut is
end entity dut;

architecture rtl of dut is
    type t_data is array (natural range <>) of std_logic_vector(7 downto 0);
    signal s_data   : t_data(0 to 15)   := (others=>(others=>'1'));
begin
    --don't care
end architecture rtl;

TB

library ieee;
use ieee.std_logic_1164.all;

entity tb is
end entity tb;

architecture sim of tb is    
    signal s_data_0 : std_logic_vector(7 downto 0);
begin
    s_data_0    <=  << signal i_dut.s_data(0) : std_logic_vector(7 downto 0) >>;

    i_dut : entity work.dut;
end architecture sim;

1 Ответ

0 голосов
/ 25 апреля 2018

Сообщение об ошибке из другого симулятора объясняет проблему:

** Ошибка: external_index.vhd (23): (vcom-1307) Внешнее имя должно обозначать весь объект, а не срез или индексированное имя объекта.

...