Code VHDL diviseur de frequence
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Code VHDL diviseur de frequence



  1. #1
    invitefa0b6af5

    Unhappy Code VHDL diviseur de frequence


    ------

    Bonsoir
    Pouvez vous m'aider à comprendre ce code
    ( il s'agit normalement d'un diviseur de fréquence et d'un compteur mis en cascade)
    mais j'ai pas bien saisi les différentes parties du code

    merci d'avance

    Code:
    architecture Behavioral of COMPTEUR is
    signal count :  STD_LOGIC_VECTOR (7 downto 0):= "00000000";
    signal clk_div : STD_LOGIC_VECTOR (25 downto 0) ;
    begin
    
    DIV : process (CLKIN) 
    begin 
    if rising_edge (CLKIN) then 
    clk_div <= clk_div+1;
    end if ;
    end process ;
    
    counter: process (clk_div) 
    begin 
    	 if rising_edge (clk_div(25)) 
    		then count <= count+1;
    		end if;
    
    	end process;
    	
    	
    		s<=count;
    		
    		
    
    end Behavioral;

    -----

  2. #2
    Antoane
    Responsable technique

    Re : Code VHDL diviseur de frequence

    Bonjour et bienvenue !

    Comme dans tout bloc VHDL qui se respecte, on trouve une déclaration des signaux :
    Code:
    signal count :  STD_LOGIC_VECTOR (7 downto 0):= "00000000";
    signal clk_div : STD_LOGIC_VECTOR (25 downto 0) ;
    Puis l'architecture du truc en elle-même, à commencer par un diviseur de fréquence par deux :
    Code:
    DIV : process (CLKIN) 
    begin 
    if rising_edge (CLKIN) then 
    clk_div <= clk_div+1;
    end if ;
    end process ;
    Le fonctionnement est simple, trace les chronogrammes pour comprendre : une entrée d'horloge et les deux ou trois bits de poids faible de clk_div pour comprendre.
    puis un compteur :
    Code:
    counter: process (clk_div) 
    begin 
    	 if rising_edge (clk_div(25)) 
    		then count <= count+1;
    		end if;
    
    	end process;
    
    	
    		s<=count;
    clock_div(25) renvoie le 26e bit de clock_div


    et un morceau asynchrone, écrit en dehors d'un process :
    Code:
    		s<=count;

    Il s'agit ici d'une description hyper-basique, digne du 1er cours de FPGA_101. y a-t-il un point précis qui te bloque ?
    Dernière modification par Antoane ; 04/05/2014 à 09h19.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  3. #3
    jiherve

    Re : Code VHDL diviseur de frequence

    Bonjour,
    Juste un truc à ajouter : très mauvais exemple d'utilisation d'un diviseur de fréquence car au final la cible ne comporte qu'un nombre d'arbre d'horloge limité et ici on en bouffe 2 (CLKIN, clk-div(25)) alors qu'un seul suffirait(CLKIN) il eut fallu générer un signal de validation lorsque clk_div passe par une valeur déterminée (tout à 0 ou tout à 1 c'est quasi gratuit dans le FPGA car c'est le circuit généralement dédié de borrow/carry) par ailleurs le résultat est un design non synchrone ce qui par expérience conduit inévitablement à la catastrophe.
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    invitefa0b6af5

    Re : Code VHDL diviseur de frequence

    je vous remercie , juste une question , pourquoi a t on choisit 25 bits?

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

    Re : Code VHDL diviseur de frequence

    je vous remercie , juste une question , pourquoi a t on choisit 25 bits?

  7. #6
    Antoane
    Responsable technique

    Re : Code VHDL diviseur de frequence

    On a choisi 26 bit (de 0 à 25) pour pouvoir diviser par 2^27 (division par 2^26 suivie d'une division par 2 via le count).
    Il y a peut-être aussi une raison liée à la structure interne du FPGA utilisé.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  8. #7
    jiherve

    Re : Code VHDL diviseur de frequence

    Re,
    ben çà depend de la fréquence d'horloge CLKIN et de l'usage que l'on compte faire du compteur, mais cela peut être aussi arbitraire car c'est un exercice.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. diviseur de frequence par 50
    Par invitecad1e610 dans le forum Électronique
    Réponses: 6
    Dernier message: 27/06/2011, 13h59
  2. Diviseur de fréquence VHDL
    Par invite1221228d dans le forum Électronique
    Réponses: 3
    Dernier message: 10/05/2010, 15h17
  3. Diviseur de fréquence
    Par invite01561354 dans le forum Électronique
    Réponses: 3
    Dernier message: 13/12/2008, 19h51
  4. diviseur de fréquence par 3
    Par invite9ee0acc7 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 09/06/2008, 19h16
  5. Diviseur de fréquence !
    Par invitefde2ee87 dans le forum Électronique
    Réponses: 8
    Dernier message: 22/03/2007, 16h26
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...