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

Vhdl



  1. #1
    dr4gon993

    Vhdl


    ------

    Bonjour tout le monde :

    Je suis en train de me remettre au VHDL sur une carte spartan 3E.

    Je suis ce tutoriel la :

    http://www.cours.polymtl.ca/ele3311/...le3311_v13.pdf

    alors j'ai quelque question

    Sur ce symbole <= qui pour moi veux dire inférieur ou égal;
    mais je note aussi qu'il peux servir a mettre un signal dans un autre comment faire la différence entre deux ??



    http://www.cours.polymtl.ca/ele3311/...le3311_v13.pdf




    Je travail sur ce programme qui est dans le tuto et j'aurai besoin d'aide pour le comprendre certaine syntax .




    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_ARITH.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;

    entity diviseur_clk is
    Port ( clkin : in STD_LOGIC;
    clk2hz : out STD_LOGIC;
    clk16hz : out STD_LOGIC;
    clk2khz : out STD_LOGIC);
    end diviseur_clk;

    architecture Behavioral of diviseur_clk is

    signal cnt2hz : interger range 0 to 4e6 := 0; -- interger veux dire q'on va renvoyer un entier de 0 a 4e6 si jai bien compris le ":=" ??
    signal cnt16hz : interger range 0 to 5e5 := 0;
    signal cnt2khz : interger range 0 to 4e3 := 0;
    signal div2hz_temp : std_logic := '0'; -- ici ce son des signaux tampon
    signal div16hz_temp : std_logic := '0';
    signal div2khz_temp : std_logic := '0';

    begin
    process(clkin)
    begin
    if (clkin'event and clkin = '1')then
    -- diviseur par 4e6
    if cnt2hz >= 4e6 then
    div2hz_temp <= not(div2hz_temp);
    cnt2hz <= 0;
    else
    div2hz_temp <= div2hz_temp;
    cnt2hz <= cnt2hz + 1;
    end if;
    clk2hz <= div2hz_temp; -- horloge à 2hz
    -- diviseur par 5e5
    if cnt16hz >= 5e5 then
    div16hz_temp <= not(div16hz_temp);
    cnt16hz <= 0;
    else
    div16hz_temp <= div16hz_temp;
    cnt16hz <= cnt16hz + 1;
    end if;
    clk16hz <= div16hz_temp; -- horloge à 16hz
    -- diviseur par 4e3
    if cnt2khz >= 5e5 then
    div2khz_temp <= not(div2khz_temp);
    cnt16hz <= 0;
    else
    div2khz_temp <= div2khz_temp;
    cnt2khz <= cnt2khz + 1;
    end if;
    clk2khz <= div2khz_temp; -- horloge à 2khz

    end if;
    end process;
    end Behavioral;

    -----

  2. #2
    indri

    Re : Vhdl

    Tu trouvera que "<=" voulant dire plus petit ou egale que pour des conditions :typiquement dans les if

    interger range 0 to 4e6 := 0;
    C'est un entier qui ne va que de 0 à 4e6 initialisé à 0 (on rajoute range to pour minimiser le nombre de bit pour codé la variable plutot que les types plus conventionnel (8,16 bits, ...)
    Là où va le vent...

  3. #3
    dr4gon993

    Re : Vhdl

    Merci pour ton aide c'est sympa de se remettre au VHDL jvais surement m'acheter un livre en plus car j'ai des lacunes et des troues de memoire dans les connaissances global !

  4. #4
    indri

    Re : Vhdl

    Par contre, ca va limité le nombre de bit mais si tu fait ca je sais pas ce que ca devient:

    cnt2hz<=4e6;
    cnt2hz<=cnt2z+1;

    je sais pas si ca donne 0 ou autre chose!
    Perso, je préfère utilisé des std_logic_vector mais bon!
    (Au passage je suppose que 4e6=4*10^6, connaissait pas non plus cette facon de noter)

    Y'avait que ca comme question? ^^
    Là où va le vent...

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

    Re : Vhdl

    oui merci pour tous oui moi aussi à l'école j'utilisais std_logic_vector ben c'est une bonne question car je cherche a comprendre le sens c'est un diviseur de frequence on par sur une base a 50mhz et on sort du 2hz 16hz et 2khz mais jai fait 50mhz / 4e^6 ou 4*10^6 ext aucun resultat tombe juste ...

    je fais quand même le projet sur la carte voir ce que ca va donnée ... puis ça m'aide a me rappeler les étapes
    Dernière modification par dr4gon993 ; 22/08/2012 à 13h59.

  7. #6
    dr4gon993

    Re : Vhdl

    Correctif le quartz est a 50mhz mais dans ce module on entre a 16mhz pour faire des divisions par 5*10^5 et 4*10^3 et 5*10^5

    pour avoir 2 16 et 2000 hz or on a 4 32 4000hz il y a un facteur 2 inconnus et serieux je comprend pas comment il divise la dedans ^^ !

    mais c'est pas grave ... en tant que novice moi j'aurai fait x bascule D en chaine pour avoir la bonne division mais c'est surement pas la méthode la plus intelligente qu'il puisse y avoir .

  8. #7
    indri

    Re : Vhdl

    C'est bien 4e6 soit 4million pour une clock à 16MHz, j'ai lu quelque part dans ton pdf!

    Edit:grillé!

    Le principe est simple...ca compte le nombre de période de la clock principale pour avoir une demi-période de la clock à créer et ca inverse la clock!
    Dernière modification par indri ; 22/08/2012 à 14h22.
    Là où va le vent...

  9. #8
    dr4gon993

    Re : Vhdl

    Indri j'ai une erreur au moment de simuler ...
    j'ai pas mal chercher j'ai mis le .exe de modelsim dans edit>preference >integrated tools .... mais rien n'y fait tu connais cette erreur !

    Cf Pj!
    Images attachées Images attachées  

  10. #9
    indri

    Re : Vhdl

    Ben moi j'travaille plutot avec les concurents (Quartus) donc je sais pas trop t'aider là!
    Là où va le vent...

  11. #10
    dr4gon993

    Re : Vhdl

    hihihi moi aussi j'ai toujours bossé sur la DE2 de altera avec quartus nios2 .... ^^ suis bien embêté la !

Discussions similaires

  1. help en vhdl
    Par invite949c3ca1 dans le forum Électronique
    Réponses: 5
    Dernier message: 22/02/2012, 23h29
  2. Vhdl
    Par invited701b211 dans le forum Électronique
    Réponses: 9
    Dernier message: 08/07/2010, 20h20
  3. Vhdl
    Par invite68aa31e7 dans le forum Électronique
    Réponses: 2
    Dernier message: 07/07/2009, 22h11
  4. Vhdl
    Par invite35890bd8 dans le forum Électronique
    Réponses: 2
    Dernier message: 09/12/2008, 21h59
  5. Point flottant en VHDL et vhdl-200x
    Par invite6eee6b27 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/09/2008, 19h47
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...