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 :
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.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;
Quelqu'un saurait me dire si je peux utiliser deux "event" différents ?
Merci d'avance.
-----