Создайте 1-й массив (назовем его a_store
) соответствующего типа сигнала с длиной массива, связанной с количеством циклов.Это может означать, что вам нужно создать новый тип для массива, если нет уже векторного типа, который вы можете использовать: например.std_logic_vector
или integer_vector
(последнее является стандартным только в VHDL-2008).
Затем перетасуйте массив по каждому тику:
if rising_edge(clk) then
a_store <= a_store(store'high-1 downto 0) & a;
a_out <= a_store(a_store'high);
end if;