IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VHDL Discussion :

clockdivider VHDL FPGA


Sujet :

VHDL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut clockdivider VHDL FPGA
    Bonjour,
    je débute en VHDL et j'aimerais que vous m'expliquer comment on fait pour diviser un signal d'une fréquence quelconque.
    mon exemple c'est: on a un signal d'entrée clock de 125MHz et je veux à la sortie un signal de 100KHz , que sera lui meme une entrée pour un autre bloc.
    heeeelp please!
    Merci

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    c bon j'ai trouvé la solution, merci quand même:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    entity clockDivider is
        Port ( clock_in : in  STD_LOGIC;
               reset : in  STD_LOGIC;
               clock_out : out  STD_LOGIC);
    end clockDivider;
     
    architecture Behavioral of clockDivider is
     
    signal temporal: STD_LOGIC;
        signal counter : integer range 0 to 1249 := 0;
     
    begin
        frequency_divider: process (reset, clock_in)
    	 begin
            if (reset = '1') then
                temporal <= '0';
                counter <= 0;
            elsif rising_edge(clock_in) then
                if (counter = 1249) then
                    temporal <= NOT(temporal);
                    counter <= 0;
                else
                    counter <= counter + 1;
                end if;
            end if;
        end process;
     
        clock_out <= temporal;
     
    end Behavioral;

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 32
    Points
    32
    Par défaut
    Salut,

    Pour générer une horloge je te conseillerais de passer par ce qu'on appel un NCO (Numerically controlled oscillator)
    Plus élégant et classique.
    Cf. code ci dessous.
    nco_accu est un registre sur 32 bits.
    nco_incr est un registre qui permet de controller la fréquence de l'horloge souhaitée.
    Tu récupères ton horloge en new_clock.

    Formule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    nco_incr = frequence_souhaité_new_clock * 2^32 / frequence_clk
     
     
    nco_process: process(clk)
    begin
       if rising_edge(clk) then
     
           nco_accu <= nco_accu + nco_incr;
     
           new_clock <= nco_accu(31);
     
       end if;
    end process;

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci

Discussions similaires

  1. [electronique numérique & programmation] Apprendre le VHDL
    Par Muesko dans le forum La taverne du Club : Humour et divers
    Réponses: 2
    Dernier message: 27/08/2007, 15h50
  2. Ecrire un code VHDL à partir de Perl
    Par blaise4714 dans le forum VHDL
    Réponses: 1
    Dernier message: 19/06/2007, 14h32
  3. [Hardware open source] FPGA
    Par Muesko dans le forum Composants
    Réponses: 2
    Dernier message: 21/04/2007, 13h49
  4. Réponses: 1
    Dernier message: 17/11/2004, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo