Каков наилучший способ выполнить карту порта для каждого бита в векторе? Скажем, у меня есть вектор, представляющий серию кнопок, и вы хотите отбросить каждый из них с помощью модуля bebounce, как мне это сделать?Карта VHDL для каждого бита в векторе
Сейчас у меня есть следующий, но я считаю, что должно быть лучшим способом
entity ButtonDebouncer is
Port (
clock : in std_logic;
buttons : in std_logic_vector(0 to 5);
--{ more stuff }
);
end ButtonDebouncer;
architecture Behavioral of ButtonDebouncer is
signal bufferedButtons : std_logic_vector(0 to 5) := (others => '0');
begin
c1: entity debounce port map (Clock, buttons(0), bufferedButtons(0));
c2: entity debounce port map (Clock, buttons(1), bufferedButtons(1));
c3: entity debounce port map (Clock, buttons(2), bufferedButtons(2));
c4: entity debounce port map (Clock, buttons(3), bufferedButtons(3));
c5: entity debounce port map (Clock, buttons(4), bufferedButtons(4));
c6: entity debounce port map (Clock, buttons(5), bufferedButtons(5));
--{ Do stuff with debounced buttons }
end Behavioral;
И вы даже можете заменить '0 до 5' в архитектуре с' buttons'range', чтобы избежать магических жестко закодированных значений и сделать намерение ясно. –
Удивительный, я не знал о «генерации», – Jableader