Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

probleme en vhdl



  1. #1
    mariem2

    probleme en vhdl


    ------

    bonjour

    j'ai un code vhdl, qui me genere des choses bizarres lors de la simulation. en fait j'ai un vecteur de bits vect = std_logic_vector (31 downto 0)
    et j'ai une variable var= std_logic,
    je veux que à chaque coup d'horloge var prend un bit de vect
    donc j'ai fait une FSM de 31 state, et à chaque state i var <= vect(i)
    alors tout va bie sauf que si j'ai par exemple
    vect= 000000000000000000000000000010 00
    alors lors du premier state var=0
    lors du 2eme var=0
    lors du 3eme var=0
    mais lors du 4eme il m'affiche var=X
    et puis lors du reste var=0
    ce x qui apparait lors du 4eme comme si je l'ai donné de 0 et le 1 en même temps, or la variable doit se mettre à 1 et non pas à 0

    est ce que quelqu'un peut m'aider à résoudre ce problème?
    merci d'avance

    -----

  2. #2
    thundertom

    Re : probleme en vhdl

    Salut,

    le plus simple c'est que tu postes ton code. (en utilisant les balises code)

    sinon on ne pourra pas beaucoup t'aider...
    Fabricando fit faber

  3. #3
    mariem2

    Re : probleme en vhdl

    bonjour,

    voici le code...sauf que maintenant, je sais pas pourquoi le signal var ne change pas aucours des states

    Code:
    Library IEEE;
    Use     IEEE.STD_LOGIC_1164.All;
    Use     IEEE.STD_LOGIC_ARITH.All;
    
    entity essai is
      
      port (
        clk   : in std_logic;
        reset : in std_logic;
        input : in std_logic_vector (4 downto 0);
        sig   :in  std_logic ); 
    end essai;
    
    architecture behavioral of essai is
     signal var : std_logic;
      signal rst : std_logic := '0'; 
      signal entre  :std_logic_vector (4 downto 0) :="01100";        
     type FSM is ( FSM_reset, FSM_1,FSM_2,FSM_3,FSM_4) ;
       signal FSM_state, FSM_next_state : FSM;
     
    begin  -- behavioral
    rst <= reset;
    var <= sig;
    entre <= input;
      state : process (clk)
     begin 
       if (clk='1' and clk'event) then
            if  reset = '0' then
               FSM_state <= FSM_reset ;
            else
                   FSM_state <= FSM_next_state;
            end if;
                   
           
       end if;
     end process;
    
     next_state : process (FSM_state,input,sig)
     begin 
      case FSM_state is
        when FSM_reset =>
           FSM_next_state <= FSM_1;
        when FSM_1 =>
          FSM_next_state <= FSM_2;
           when FSM_2 =>
          FSM_next_state <= FSM_3;
           when FSM_3 =>
          FSM_next_state <= FSM_4;
         when FSM_4 =>
               FSM_next_state <= FSM_reset; 
      end case;
     end process;
    
      selec : process(FSM_state,input,sig)
        begin
    
          case FSM_state is
            when FSM_reset =>  
            when FSM_1  => var<=input(0);
             when FSM_2  => var<=input(1);
              when FSM_3  => var<=input(2);
               when FSM_4  => var<=input(3);                   
           
          end case;
        end process;
    end behavioral;

  4. #4
    jiherve

    Re : probleme en vhdl

    Bonsoir,
    Trois remarques:
    il manque les when others dans les deux process, rédibithoire car comme un std logic peut avoir 9 états cela en fait un paquet oublié.
    il manque aussi ce qui doit se passer lorsque FSM = FSM_reset pour ta valeur var ,
    Le pire est à venir : tu affectes le signal var en deux endroits
    Var <= sig est toujours vrai .
    le case : it depends!
    le résultat peut être surprenant.
    JR
    l'électronique c'est pas du vaudou!

Sur le même thème :

Discussions similaires

  1. Problème utilisation WITH SELECT en VHDL
    Par thundertom dans le forum Électronique
    Réponses: 4
    Dernier message: 16/03/2011, 21h44
  2. Problème avec package du VHDL
    Par Chaos_tik dans le forum Électronique
    Réponses: 2
    Dernier message: 27/11/2010, 21h29
  3. Probleme pin (inout) vhdl
    Par aydi dans le forum Électronique
    Réponses: 1
    Dernier message: 04/07/2009, 13h32
  4. Problème en VHDL
    Par Jamal21 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 31/03/2009, 10h17
  5. Point flottant en VHDL et vhdl-200x
    Par grel08128103 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/09/2008, 20h47
Découvrez nos comparatifs produits sur l'informatique et les technologies.