Code VHDL pseudo-aléatoire
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Code VHDL pseudo-aléatoire



  1. #1
    invite48f8686e

    Arrow Code VHDL pseudo-aléatoire


    ------

    Bonjour
    je suis nouvelle en electronique numérique et j'ai un projet a realisé je dois faire des leds qui s'allument aleatoirement quelques secondes apres a la fin une qui reste allumé et je sais pas comment faire pour le code VHDL c'est vraiment urgent merci
    Bonjour rourou2009
    A l'avenir, prière de créer un nouveau sujet avec un titre explicite.
    C'est mal élévé de squatter une discussion existante, et le déterrage n'est pas permis non plus. Voir charte:
    http://forums.futura-sciences.com/thread98.html


    Bonjour je suis une nouvelle en electronique numérique et je sais présque rien alors j'ai un projet a faire c'est un jeu dans le circuit il y'a un bouton et 5 led et un afficheur 7 segment alors achaque fois on appui sur le bouton les leds s'allument aleatoirement quelque sec apres ya une led qui reste alumé et un numero s'affiche sur l'afficheur alors je veux seulement comment faire pour le code du compteur que je vai faire pour l'afficheur merci urgent

    -----
    Dernière modification par Tropique ; 14/12/2009 à 10h08. Motif: Doublon

  2. #2
    jiherve

    Re : Code VHDL pseudo-aléatoire

    Bonsoir,
    voir LFSR!
    linear feedback shift register.
    http://www.yikes.com/~ptolemy/lfsr_web/index.htm
    Ceci dit dans ton cas comme il y a intervention humaine un bête compteur fera l'affaire.
    JR
    PS : Tropique pourrais tu choisir un vert plus foncé car celui que tu emploies manque de contraste , merci!
    Félicitations et bon courage.
    l'électronique c'est pas du vaudou!

  3. #3
    invite48f8686e

    Re : Code VHDL pseudo-aléatoire

    salut
    merci mais je trouve pas un code que je peux voir pour mettre pareil est ce que vous pouvez m'aider plus svp

  4. #4
    invite7a49d0d5

    Cool Re : Code VHDL pseudo-aléatoire

    Citation Envoyé par rourou2009 Voir le message
    salut
    merci mais je trouve pas un code que je peux voir pour mettre pareil est ce que vous pouvez m'aider plus svp
    Bonjour rourou2009,

    et Bienvenue sur les Forums FUTURA ;O]

    je viens de taper "vhdl random" dans G..gle...
    qui m'a "renvoyé" 301 000 réponses...
    avec des exemples...

    vede
    ;O]

    ps "vhdl led" doit aussi "renvoyer" des milliers de réponses...

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

    Cool Re : Code VHDL pseudo-aléatoire

    >je trouve pas un code que je peux voir pour mettre pareil

    re ;O]

    un code pour mettre pareil que le projet que t'as dans ta tête?
    parce que tu donnes pas beaucoup d'infos...

    combien de leds?
    timings?

    et un afficheur 7 segments...
    c'est 7 leds...
    donc ça se gére comme... des leds...

    bonn'journée à tous,
    vede
    ;O]

    re ps : d'ou y sort ce "projet" ?
    c'est encore un prof qui s'est laché?
    dans ce cas fait toi passer les cours...

    ça ressemble à "un dé électronique"...
    original... y s'est pas foulé le prof...

  7. #6
    invite48f8686e

    Re : Code VHDL pseudo-aléatoire

    voila le jeu est claire et simple, chaque candidat est sensé répondre à des questions sur les 5 continents, si la réponse est bonne alors on passe à la question suivante sinon le jeu est terminé, donc dès qu’on appuie sur le bouton START le jeu s’active, et le programme existant sur la GAL permet d’allumer aléatoirement une LED symbolisant un continent, parallèlement à ça sur la sortie de l’afficheur 7 segments, une boucle aléatoire de comptage est déclenchée, alors la personne qui joue le rôle de l’animateur se réfère sur la valeur de l’afficheur et pose la question, si la réponse est bonne alors l’animateur appuie à nouveau sur START et un nouveau cycle est activé, sinon si la réponse n’est pas juste alors il appuie sur Clear « Game Over ».

    voila le code que j'ai pu realisé et je ne sais pas si c'est pas correcte

    library IEEE;
    use IEEE.std_logic_1164.all;

    entity DEC_BCD_7 is
    port (
    bcd: in STD_LOGIC_VECTOR (3 downto 0);
    segment: out STD_LOGIC_VECTOR (6 downto 0)

    entity chenillard is port(
    RAZ, CLK, Bouton_poussoir : in std_logic;
    led0,led1,led2,led3,led4 : out std_logic);
    end chenillard;
    architecture ARCH_chenillard of chenillard is
    type ETAT8 is (s0,s1,s2,s3,s4);
    signal ETAT_PRES,ETAT_SUIV : ETAT8;
    begin
    SYNCHRO : process(CLK,RAZ)
    begin
    if RAZ=‘0’ then
    ETAT_PRES <= s0;
    elsif (CLK=‘1’ and CLK’event) then
    ETAT_PRES <= ETAT_SUIV;
    end if;
    end process SYNCHRO;
    FCT_G_F process(ETAT_PRES, Bouton_poussoir)
    Variable test : integer := 0;
    begin
    case ETAT_PRES is
    when s0 =>
    lde0<=‘1’;led1<=‘0’;led2<=‘0’;
    led3<=‘0’;led4<=’0’;
    ETAT_SUIV <= s1;

    when s1 =>
    lde0<=‘0’;led1<=‘1’;led2<=‘0’;
    led3<=‘0’;led4<=’0’;
    ETAT_SUIV <= s2;

    when s2 =>
    lde0<=‘0’;led1<=‘0’;led2<=‘1’;
    led3<=‘0’;led4<=’0’;
    ETAT_SUIV <=s3;

    when s3 =>
    lde0<=‘0’;led1<=‘0’;led2<=‘0’;
    led3<=‘1’;led4<=’0’;
    ETAT_SUIV <=s4;

    when s4 =>
    lde0<=‘0’;led1<=‘0’;led2<=‘0’;
    led3<=‘0’;led4<=’1’;

    Test = (test + 1)% 4;
    Case test is
    When 0 => led0<=’1’;led1<=’0’;led2<=’0’; led3<=’0’;led4<=’0’;
    When 1 => led0<=0’;led1<=’1’;led2<=’0’;l ed3<=’0’;led4<=’0’;
    When 2 => led0<=’0’;led1<=’0’;led2<=’1’; led3<=’0’;led4<=’0’;
    When 3 => led0<=’0’;led1<=’0’;led2<=’0’; led3<=’1’;led<=’0’;
    When 4 => led0<=’0’;led1<=’0’;led2<=’0’; led3<=’0’;led4<=’1’;
    When others => NULL;
    End case;

    end case;
    end process FCT_G_F;
    end ARCH_chenillard;

    architecture DEC_BCD_7_arch of DEC_BCD_7 is
    begin
    process(bcd)
    begin
    case bcd is
    when "0000"=>segment<="0000001" ;
    when "0001"=>segment<="1001111" ;
    when "0010"=>segment<="0010010" ;
    when "0011"=>segment<="0000110" ;
    when "0100"=>segment<="1001100" ;
    when "0101"=>segment<="0100100" ;

    end case;
    end process;

    end DEC_BCD_7_arch;

  8. #7
    invite48f8686e

    Re : Code VHDL pseudo-aléatoire

    voila le jeu est claire et simple, chaque candidat est sensé répondre à des questions sur les 5 continents, si la réponse est bonne alors on passe à la question suivante sinon le jeu est terminé, donc dès qu’on appuie sur le bouton START le jeu s’active, et le programme existant sur la GAL permet d’allumer aléatoirement une LED symbolisant un continent, parallèlement à ça sur la sortie de l’afficheur 7 segments, une boucle aléatoire de comptage est déclenchée, alors la personne qui joue le rôle de l’animateur se réfère sur la valeur de l’afficheur et pose la question, si la réponse est bonne alors l’animateur appuie à nouveau sur START et un nouveau cycle est activé, sinon si la réponse n’est pas juste alors il appuie sur Clear « Game Over ».

    voila le code que j'ai pu realisé et je ne sais pas si c'est pas correcte

    library IEEE;
    use IEEE.std_logic_1164.all;

    entity DEC_BCD_7 is
    port (
    bcd: in STD_LOGIC_VECTOR (3 downto 0);
    segment: out STD_LOGIC_VECTOR (6 downto 0)

    entity chenillard is port(
    RAZ, CLK, Bouton_poussoir : in std_logic;
    led0,led1,led2,led3,led4 : out std_logic);
    end chenillard;
    architecture ARCH_chenillard of chenillard is
    type ETAT8 is (s0,s1,s2,s3,s4);
    signal ETAT_PRES,ETAT_SUIV : ETAT8;
    begin
    SYNCHRO : process(CLK,RAZ)
    begin
    if RAZ=‘0’ then
    ETAT_PRES <= s0;
    elsif (CLK=‘1’ and CLK’event) then
    ETAT_PRES <= ETAT_SUIV;
    end if;
    end process SYNCHRO;
    FCT_G_F process(ETAT_PRES, Bouton_poussoir)
    Variable test : integer := 0;
    begin
    case ETAT_PRES is
    when s0 =>
    lde0<=‘1’;led1<=‘0’;led2<=‘0’;
    led3<=‘0’;led4<=’0’;
    ETAT_SUIV <= s1;

    when s1 =>
    lde0<=‘0’;led1<=‘1’;led2<=‘0’;
    led3<=‘0’;led4<=’0’;
    ETAT_SUIV <= s2;

    when s2 =>
    lde0<=‘0’;led1<=‘0’;led2<=‘1’;
    led3<=‘0’;led4<=’0’;
    ETAT_SUIV <=s3;

    when s3 =>
    lde0<=‘0’;led1<=‘0’;led2<=‘0’;
    led3<=‘1’;led4<=’0’;
    ETAT_SUIV <=s4;

    when s4 =>
    lde0<=‘0’;led1<=‘0’;led2<=‘0’;
    led3<=‘0’;led4<=’1’;

    Test = (test + 1)% 4;
    Case test is
    When 0 => led0<=’1’;led1<=’0’;led2<=’0’; led3<=’0’;led4<=’0’;
    When 1 => led0<=0’;led1<=’1’;led2<=’0’;l ed3<=’0’;led4<=’0’;
    When 2 => led0<=’0’;led1<=’0’;led2<=’1’; led3<=’0’;led4<=’0’;
    When 3 => led0<=’0’;led1<=’0’;led2<=’0’; led3<=’1’;led<=’0’;
    When 4 => led0<=’0’;led1<=’0’;led2<=’0’; led3<=’0’;led4<=’1’;
    When others => NULL;
    End case;

    end case;
    end process FCT_G_F;
    end ARCH_chenillard;

    architecture DEC_BCD_7_arch of DEC_BCD_7 is
    begin
    process(bcd)
    begin
    case bcd is
    when "0000"=>segment<="0000001" ;
    when "0001"=>segment<="1001111" ;
    when "0010"=>segment<="0010010" ;
    when "0011"=>segment<="0000110" ;
    when "0100"=>segment<="1001100" ;
    when "0101"=>segment<="0100100" ;

    end case;
    end process;

    end DEC_BCD_7_arch;

    IL Y A TOUJOUR PERSONNE QUI PEU M AIDEE PARCEQUE VRAIMENT JE SUIS COINCE ET LA DATE DE PRESENTATION APPROCHE

  9. #8
    invite7a49d0d5

    Cool Re : Code VHDL pseudo-aléatoire

    Bonjour,

    >voila le code que j'ai pu realisé et je ne sais pas si c'est pas correcte ...

    je ne connais qu'une façon de s'assurer du bon fonctionnement :
    assembler le montage... et le tester...

    après, pour se faire une idée, il doit exister des "simulateur" ou
    "émulateurs" VHDL... permettant de "déboguer" le programme...

    vede
    ;O]

  10. #9
    jiherve

    Re : Code VHDL pseudo-aléatoire

    Bonsoir,
    Déclaration d'entités imbriquées c'est nouveau çà !
    Par ailleurs ton code est bizarre : tu affectes tes leds à deux endroits, est ce voulu, le VHDL le permet mais je ne visualise pas bien le résultat.
    De plus tu entres, sans barguigner, dans ta machine à état, un signal "bouton_poussoir" qui me semble asynchrone , le résultat sera effectivement aléatoire!
    Donc revoir la copie, un petit antisèche.
    http://www.vhdl-online.de/tutorial/englisch/inhalt.htm
    Pour la simulation charge la Web edition de Quartus chez Altera il y a je crois une version ligth de Modelsim incluse.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. Pb code vhdl!!!
    Par invitedf5f6b15 dans le forum Électronique
    Réponses: 14
    Dernier message: 29/05/2008, 23h26
  2. simulation séquence pseudo aléatoire sous microcap
    Par telecofr dans le forum Électronique
    Réponses: 3
    Dernier message: 08/11/2007, 07h52
  3. Simulation code vhdl
    Par invite232dbe64 dans le forum Électronique
    Réponses: 4
    Dernier message: 30/11/2006, 09h35
  4. code source en vhdl [déplacé]
    Par invite4add737e dans le forum Électronique
    Réponses: 2
    Dernier message: 20/11/2006, 14h09
  5. Code VHDL pour un SPI
    Par invite003b36af dans le forum Électronique
    Réponses: 4
    Dernier message: 08/04/2006, 22h09
Découvrez nos comparatifs produits sur l'informatique et les technologies.