[Programmation] [VHDL] Mon compteur/décompteur est il corect?
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

[VHDL] Mon compteur/décompteur est il corect?



  1. #1
    invite8a7f8007

    [VHDL] Mon compteur/décompteur est il corect?


    ------

    Bonjour bonjour,
    J'aimerai avoir votre avis sur mon compteur décompteur modulo 6 que je ne peux pas tester actuellement.
    Il comporte ripple carry qui s'active lorsque le compteur atteint sa valeur maximale, un signal en d'activation, une commande qui gère la comptage ou le décomptage et un reset asynchrone.

    Code:
    library ieee;
    use ieee.std_logic_1164.all; 
    use ieee.numeric_std.all;
    
    entity ComptDecompt is
    	port(clk, rst, en, com : in std_logic; 
    	     rc		       : out std_logic; 
    	     s		       : out std_logic_vector(2 downto 0)); 
    end entity ComptDecompt; 
    
    architecture behavioral of ComptDecompt is
    signal q: unsigned(2 downto 0);
    begin
    s <= std_logic_vector(q);
    rc <= '1' when q=5 and en='1' else '0';
    process(clk, rst) is
    begin
    if rst = '1' then
    q<=(others=>'0');
    elsif rising_edge(clk) then
    if com='1' then
    q<=q+1;
    elsif q="101" and en ='1'then q<=(others =>'0');
    if com='0' then
    q<=q-1;
    elsif q="000" then q<="101";
    end if;
    end if;
    end if;
    end process;
    end architecture behavioral;
    C'est un essai je n'ai étudié pour l'instant que des compteurs ou décompteurs seuls.

    Merci pour votre temps et vos réponses.

    -----

  2. #2
    Jack
    Modérateur

    Re : [VHDL] Mon compteur/décompteur est il corect?

    Merci de lire les règles participatives du forum info avant de poster. Le VHDL, c'est de l'électronique

    Discussion déplacée

  3. #3
    jiherve

    Re : [VHDL] Mon compteur/décompteur est il corect?

    Bonsoir,
    1 : cela manque cruellement d'indentation.
    2 : à cause du #1 le code est incorrect et cela n'a pas été vu.
    3 : la structure est mauvaise et ne correspond pas à ce qui est souhaité.
    4: ce n'est pas parce que cela compile sans erreur que c'est bon
    donc on réfléchi, on réécrit et l'oncle JR dira si c'est bon.
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    invite8a7f8007

    Re : [VHDL] Mon compteur/décompteur est il corect?

    Bonsoir et merci pour votre réponse!
    Je vais mettre des tabulations pour que le code soit plus lisible.
    Es ce que l'erreur ne viendrait pas de l'utilisation des "ELSIF"?

  5. A voir en vidéo sur Futura
  6. #5
    jiherve

    Re : [VHDL] Mon compteur/décompteur est il corect?

    Re
    Non pas vraiment
    si ce que tu veux faire c'est un compteur/décompteur contrôlé par com pour le sens et en pour l'autorisation de comptage alors ta structure est mauvaise exemple :
    Code:
        
          if com ='1' then
            q<=q+1;
          elsif q="101" and en ='1'then crois tu passer ici un jour ?
            q<=(others =>'0');
          end if;   çà c'est moi qui le rajoute
    JR
    l'électronique c'est pas du vaudou!

  7. #6
    invite8a7f8007

    Re : [VHDL] Mon compteur/décompteur est il corect?

    Code:
    library ieee;
    use ieee.std_logic_1164.all; 
    use ieee.numeric_std.all;
    
    entity ComptDecompt is
    	port(clk, rst, en, com : in std_logic; 
    	     rc		       : out std_logic; 
    	     s		       : out std_logic_vector(2 downto 0)); 
    end entity ComptDecompt; 
    
    architecture behavioral of ComptDecompt is
    signal q: unsigned(2 downto 0);
    begin
    	s <= std_logic_vector(q);
    	rc <= '1' when q=5 and en='1' else '0’;
    	  process(clk, rst) is
    	  begin
    	     if rst = '1' then
    		q<=(others=>'0');
    	     elsif rising_edge(clk) then
    		if en =‘1’ then
    		   if com<=‘1’ then 
    			q<=q+1;
    			if q="101" then q<=(others =>'0’);
    			end if;
    		   else
    			q<=q-1;
    			if q="000" then q<="101";
    			end if;
    		   end if;
    		end if;
    	     end if;
    	  end process;
    end architecture behavioral;

    J'ai fait quelques modifications, es ce que cela marcherait mieux comme ça?

  8. #7
    jiherve

    Re : [VHDL] Mon compteur/décompteur est il corect?

    Re
    oui c'est presque çà.
    Pour que cela soit plus clair il faudrait écrire :
    Code:
    			if q="101" then 
                              q<=(others =>'0’);
                            else 
    	                  q<=q+1;
    	                end if;
    Ton code fait lui une affectation concurrente, cela est correct mais je ne suis pas sur que cela soit ce que tu ais voulu faire.
    ta carry n'existe que dans le cas comptage est ce volontaire ?
    une dernière chose entre if q="101" et when q=5 il faudrait choisir un même type d’écriture.
    Mais tu piges vite c'est bien.
    JR
    l'électronique c'est pas du vaudou!

  9. #8
    invite8a7f8007

    Re : [VHDL] Mon compteur/décompteur est il corect?

    Merci pour votre aide!

    Si vous parlez de cette ligne:

    Code:
    rc <= '1' when q=5 and en='1' else '0’;
    Oui c'est volontaire, je ne souhaite pas qu'elle reste active en cas de désactivation du en et alors que le compteur est à son état max.

  10. #9
    jiherve

    Re : [VHDL] Mon compteur/décompteur est il corect?

    Bonjour
    Oui le signal RC devrait dépendre du sens de comptage : 5 si comptage 0 si décomptage.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. compteur et decompteur
    Par invitef3f0c033 dans le forum Électronique
    Réponses: 1
    Dernier message: 07/06/2013, 09h17
  2. Compteur-décompteur
    Par invitea5967f49 dans le forum Électronique
    Réponses: 11
    Dernier message: 15/04/2012, 12h49
  3. compteur decompteur
    Par invite612856a2 dans le forum Électronique
    Réponses: 0
    Dernier message: 23/01/2011, 16h52
  4. compteur/décompteur
    Par invite54847131 dans le forum Électronique
    Réponses: 4
    Dernier message: 28/05/2007, 10h43
  5. compteur-décompteur
    Par invite3ad3eb66 dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 10/03/2007, 10h24
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...