I try to write the VHDL code for K.I.T.T. scanner on FPGA LED, but I need to change this code:
with state select
led1 <= '1' when forward1,
'0' when others;
with state select
led2 <= '1' when forward2,
'0' when others;
with state select
led3 <= '1' when forward3,
'0' when others;
with state select
led4 <= '1' when forward4,
'0' when others;
to
with state select
led1,led2,led3 <= '1' when forward1,
'0' when others;
with state select
led2, led3,led4 <= '1' when forward2,
'0' when others;
with state select
led3, led4,led5 <= '1' when forward2,
'0' when others;
But when I do this, I recieve error - Expected "(" or another. How can I change this code to change multiply outputs?
You could do it this way:
led_select : process(state)
begin
case state is
when forward1 =>
led_states <= "00111";
when forward2 =>
led_states <= "01110";
when forward3 =>
led_states <= "11100";
when others =>
led_states <= (others => '0');
end case;
end process;
led1 <= led_states(0);
led2 <= led_states(1);
led3 <= led_states(2);
led4 <= led_states(3);
led5 <= led_states(4);
Where led_states
is a signal declared as signal led_states : std_logic_vector(4 downto 0);