1
對矢量中的每個位執行端口映射的最佳方式是什麼?假設我有一個代表一系列按鈕的向量,並且希望使用一個跳動模塊來消除每個按鈕,我應該怎麼做?矢量中每個位的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;
你甚至可以用'buttons'range'更換'0〜5'架構,避免了神奇的硬編碼值,使意圖明顯。 –
太棒了,我不知道'生成' – Jableader