Bonjour,

J'utilise un Spartan3AN.
Je souhaite réaliser un compteur qui, au lieu de s'incrémenter sur le front d'une horloge (comme fait la plupart du temps), s'incrémenterait/décrémenterait à l'aide d'un encodeur : si je le tourne d'un cran vers la droite, le compteur s'incrémente de 1; si je le tourne d'un cran vers la gauche, le compteur de décrémente de 1.
Je trouve donc logique d'utiliser deux "event". J'ai écrit le code suivant :
Code:
library IEEE;
use IEEE.Std_Logic_1164.all;
use IEEE.Numeric_Std.all;

entity Compteur is port
   (
     RESULT   : out   std_logic_vector(7 downto 0);
     C0       : in    std_logic;    --entrée A de mon encodeur
     C1       : in    std_logic     --entrée B de mon encodeur
   );
end Compteur ;
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
architecture Structure of Compteur is

-- Signal Declarations
   signal cpt   : integer := 0;

begin

     process(C0,C1)
     begin
          if C0'event and C0 = '0' then 
                cpt <= cpt + 1;

          elsif C1'event and C1 = '0' then
                cpt <= cpt - 1;
          else
              cpt <= cpt;
          end if;

     end process;

     RESULT <= std_logic_vector(to_unsigned(cpt,8));

end Structure;
Je reçois l'erreur suivante lorsque je synthétise (ça compile) : Signal cpt cannot be synthesized, bad synchronous description. The description style you are using to describe a synchronous element (register, memory, etc.) is not supported in the current software release.

Quelqu'un saurait me dire si je peux utiliser deux "event" différents ?

Merci d'avance.