Code vhdl du sequenceur

Fermé
Dija chan Messages postés 32 Date d'inscription mercredi 26 septembre 2012 Statut Membre Dernière intervention 17 décembre 2012 - 19 nov. 2012 à 14:58
 Utilisateur anonyme - 19 nov. 2012 à 15:35
Bonjour,

voilà le code que j'ai fait pour le séquenceur (machine à état) du microprocesseur mais le problème c'est que pour tous les front montant j'ai toujours le même état ,l'état ne se change pas ,pouvez vous m'aider:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity sequenceur is
port(
clk: in std_logic;
En_RI: out std_logic;
En_OP1: out std_logic;
En_op2: out std_logic;
W: out std_logic
); end sequenceur;

architecture arch of sequenceur is
type type_etat is range 0 to 3;
signal etat : type_etat := 0;
begin
process(clk)
begin
if(rising_edge(clk)) then
case etat is
when 0 =>
En_RI <= '1';
En_OP1 <= '0';
En_op2 <='0';
W <='0';
etat <=0;
when 1 =>
En_RI <='0' ; En_OP1 <='1' ; En_op2 <='0'; W <='0';
etat <=1;
when 2 =>
En_RI <='0'; En_OP1 <= '0'; En_op2 <='1'; W <='0';
etat <= 2;
when 3 =>
En_RI <= '0'; En_OP1 <= '0'; En_op2 <='0'; W <='1';
etat <= 3;
end case;
end if;
end process;
end arch;
A voir également:

1 réponse

Utilisateur anonyme
19 nov. 2012 à 15:35
Bonjour

Je ne m'y connais pas en VHDL, mais dans l'état 0, tu forces l'état 0, dans l'état 1 tu force l'état 1, etc... Tu forces toujours le même état que celui dans lequel tu es, pas étonnant qu'il ne change pas !
1