VHDL usando un operador paralelo O en la función de flanco ascendente

0

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"

    
pregunta Maor

0 respuestas

Lea otras preguntas en las etiquetas