Адресация определенных битов в массиве вектора std_logic в VHDL

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

 TYPE eleven_samples_in IS ARRAY ( 0 TO 10 ) OF STD_LOGIC_VECTOR( 87 DOWNTO 0 );

и я пытаюсь обратиться к нему как таковому:

odd: for i in 1 to 6 generate
   node: compare_level
       port map(
                input  => eleven_samples_in(i*2 - 1)(79 DOWNTO 0),
                output  => eleven_samples_out(i*2 - 1)(79 DOWNTO 0 )
               );
end generate odd;

Or :

 port map(
           input  => eleven_samples_in(i*2 - 1,79 DOWNTO 0),
           output  => eleven_samples_out(i*2 - 1,79 DOWNTO 0 )
         );
 end generate odd;

Но я получаю ошибки, такие как:

Ошибка (10409): ошибка преобразования типа VHDL в Median_Filter.vhd(45): преобразованный тип объекта рядом с текстом или символом «eleven_samples_in» должен соответствовать типу std_logic_vector целевого объекта

Я искал в Интернете и не нашел ничего, что работало.

огромное спасибо за помощь .


person dbkoren    schedule 16.06.2013    source источник


Ответы (1)


вы создаете тип одиннадцати_сэмплов_in и используете его напрямую. Это неправильно.

Вместо:

type eleven_samples_in_type is array (0 to 11) of std_logic_vector(89 downto 0);
signal eleven_samples_in : eleven_samples_in_type;

...

Ничего не зная о вашем компоненте compare_levels, я могу помочь

person OllieB    schedule 16.06.2013
comment
Огромное спасибо . это была проблема, и так как я новичок, было трудно найти проблему. любой хороший учебник по VHDL вы можете порекомендовать? - person dbkoren; 17.06.2013
comment
К сожалению, большинство учебных пособий по VHDL ужасны (я бы хотел оказаться неправым). Справочник по языку — это ОЧЕНЬ глубокий способ понять язык, если вы действительно заинтересованы. - person OllieB; 17.06.2013
comment
VHDL был разработан военными США, чтобы заставить подрядчиков производить надежные схемы; это язык программирования/моделирования бюрократов. Учебные пособия в основном исходят от индийских студентов, в школах которых не хватает бюджета на практические лабораторные занятия, что делает их языком небрежных и небрежных бюрократов. К счастью, вы можете пройти долгий путь, используя всего несколько конструкций, так как высокоуровневое программирование часто не имеет смысла. - person Potatoswatter; 17.06.2013