Tengo 4 botones. Quería asegurarme de que solo uno de ellos esté presionado, de lo contrario, haga algo ... Escribí este código:
process(clock,ButtonOne,ButtonTwo,ButtonThree,ButtonFour )
variable temp : integer range 0 to 16;
variable temp_vector : std_logic_vector(3 downto 0);
begin
if rising_edge(clock) then
temp_vector := Buttonone & ButtonTwo & ButtonThree & ButtOnFour;
temp := Conv_integer(unsigned(temp_vector));
CASE temp IS
WHEN 1 => Select_Sentence <=3;--"please choose one of three buttons"
When 4 => Select_Sentence <=4;--"you chosee first one"
WHEN 8 => Select_Sentence <=5;--"you choose second one"
WHEN 15 => Select_Sentence <=6; --"you choose third one"
WHEN OTHERS => Select_Sentence <= 7;
END CASE;
if rising_edge(ButtonTwo) or rising_edge(ButtonThree) or rising_edge(ButtonOne) or rising_edge(ButtonFour) then
Start_sending_sentence<='1'; --making sure it will be only pulse width
else
Start_sending_sentence<='0';
end if;
end if;
end process;
end simple;
y no entiendo por qué me aparece un error en la línea con ORs
"Error (10658): Error del operador VHDL en TOP.vhd (133): no se pudo evaluar la llamada al operador" "o"