Erreur code VHDL (process ?)
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Erreur code VHDL (process ?)



  1. #1
    invitebe80985c

    Erreur code VHDL (process ?)


    ------

    Bonjour à tous,

    J'ai un buzzer et deux switchs sur ma carte de développement. Je veux que lorsque j'appui sur le premier le buzzer vibre à une certaine fréquence et il vibre à une autre lorsque j'appui sur le deuxieme.

    Voici le code que j'ai rédigé, j'ai cependant une erreur a la compilation (Quartus n'accepte pas que l'état du buzzer soit dépendant de deux PROCESS en parallèle) :

    Code:
    ARCHITECTURE behavior of ode IS
    signal la : std_logic_vector(25 downto 0);
    signal la2 : std_logic_vector (25 downto 0);
    BEGIN
    
    --diviseur de frequence	
    process(CLOCK_50)
    	begin
    	if rising_edge(CLOCK_50) then
    	if la = 49000000 then la <= conv_std_logic_vector(0,26);
    	else la<= la+1;
    	end if;
    	if la < 25000000 then clock <= '1';
    	else clock <= '0';
    	end if;
    	end if;
    			if rising_edge(CLOCK_50) then
    			if la2 = 25000000 then la2 <= conv_std_logic_vector(0,26);
    			else la2 <= la2 + 1;
    			end if;
    			if la2 < 12500000 then clock2 <='1';
    			else clock2 <= '0';
    		end if;
    			end if;
    	end process;
    	
    						process(clock)
    						begin
    						if rising_edge(clock) then
    							if sw = "01" then 
    							if bee = '0' then bee <='1';
    							else bee <='0';
    							end if;
    						end if;
    						end if;
    						end process;
    	
    	PROCESS(clock2)
    	begin
    	if rising_edge(clock2) then
    		if sw = "10" then bee <='1';
    		end if;
    	end if;	
    	end process;
    Désolé pour l'indentation un peu foireuse

    bee c'est le buzzer et sw le vecteur de switch, la et la2 les signaux du diviseur.

    Merci de votre aide !

    -----

  2. #2
    stefjm

    Re : Erreur code VHDL (process ?)

    Bonjour,
    Le VHDL est un langage de description parallèle.
    Si vous affectez la même sortie dans deux process, vous court-circuitez les sorties de deux bascules par un même fil.

    Pas top!

    Pourquoi codez-vous comme cela?
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  3. #3
    jiherve

    Re : Erreur code VHDL (process ?)

    Bonsoir,
    avec corrections!

    Code:
    ARCHITECTURE behavior of ode IS
    signal la : integer range 0 to 2**24 -1;-- avec un integer cela évite l'usage de arithmetic.std qui est dangereux en synthese
    signal lb : integer range 0 to 3;
    signal  end: std_logic;
    BEGIN
    
    --diviseur de frequence	
    process(CLOCK_50, reset)
    	begin
            if reset = '1' then -- un process synchrone sans reset c'est nul
              end <= '0';
              la    <= 0; 
              lb    <= 0; 
              bee  <= '0';
    	elsif rising_edge(CLOCK_50) then
              -- faire un décodage propre avec une bascule @ 50MHz faut pas rever
    	  if la = (12500000 -1)  then 
                 end <= '1';
              else
                end  <= '0';
              end if;
    
             if end = '1' then
                la <= 0; 
                lb <= (lb+1) rem 4;
     	 else 
                la <= la+1;
    	 end if;
    
             if  end = '1'  then
    	   if sw = "01 and lb  = 1 then
                 bee  <= (not bee);
    	   elsif sw = "10 and (lb rem 2) = 1 then 
                 bee  <= (not bee);
    	   end if;
    	 end if;
         end if;
       end process;
    cela devrait fonctionner.
    Je te laisse faire les déclarations de l'entity.
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    invitebe80985c

    Re : Erreur code VHDL (process ?)

    Bonsoir à vous deux, merci pour vos réponses

    Le VHDL est un langage de description parallèle.
    Si vous affectez la même sortie dans deux process, vous court-circuitez les sorties de deux bascules par un même fil.

    Pas top!

    Pourquoi codez-vous comme cela?
    Tout simplement car je débute réellement dans le milieu est que je ne connais pas encore très bien ce langage

    cela devrait fonctionner.
    Je te laisse faire les déclarations de l'entity.
    JR
    Merci pour ton code ! Je l'étudierais demain à l'aube Et je te ferais part de mes impressions



    Sur ce,

  5. A voir en vidéo sur Futura

Discussions similaires

  1. erreur de synthése en VHDL
    Par invite8c6f844d dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 01/08/2009, 19h39
  2. Réponses: 10
    Dernier message: 25/04/2009, 19h15
  3. Pb code vhdl!!!
    Par invitedf5f6b15 dans le forum Électronique
    Réponses: 14
    Dernier message: 30/05/2008, 00h26
  4. Simulation code vhdl
    Par invite232dbe64 dans le forum Électronique
    Réponses: 4
    Dernier message: 30/11/2006, 10h35
  5. code source en vhdl [déplacé]
    Par invite4add737e dans le forum Électronique
    Réponses: 2
    Dernier message: 20/11/2006, 15h09
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...