[Programmation] exo VHDL
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

exo VHDL



  1. #1
    Leond95

    exo VHDL


    ------

    Bonjour a tous,

    j'ai un exercice en VHDL, je doit coder le prgramme suivant :

    Gestion du convertisseur AN MCP 3201 : fait appel à 5 fonctions secondaires :
    • machine à état pour piloter l'adc et mémoriser la donnée « angle_barre » (process
    pilote_adc)
    • comptage des fronts d'horloge de clk_adc (process compt_fronts)
    • registre à décalage pour récupérer la donnée du convertisseur (process rec_dec)
    • génération du 1MHz pour la machine à état (process gene_1M)
    • génération périodique (toutes les 100ms) du signal « start_conv » (process
    gene_start_conv)

    il me reste les deux process machine à état et registre à décalage, j'ai lu la datasheet du composant MCP3201 et j'ai trouvé nul part ces deux process, est ce que vous pouvez m'aider a les coder.

    merci

    -----

  2. #2
    Jack
    Modérateur

    Re : exo VHDL

    Citation Envoyé par Leond95 Voir le message
    il me reste les deux process machine à état et registre à décalage, j'ai lu la datasheet du composant MCP3201 et j'ai trouvé nul part ces deux process, est ce que vous pouvez m'aider a les coder.

    merci
    Normal, vu que ça doit se trouver dans le FPGA. C'est pourtant bien écrit " machine à état pour piloter l'adc ..." pas machine à état de l'ADC.
    Quant au registre à décalage, il doit être implémenté dans le FPGA pour recevoir les données série et le convertir en octets.

    Pour le détail, jiherve ne devrait pas tarder à passer par là, parce que mes souvenirs de VHDL s'estompent.

  3. #3
    jiherve

    Re : exo VHDL

    bonsoir,
    pas ce soir en tout cas, il faut déjà éplucher la doc du CAN.
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    jiherve

    Re : exo VHDL

    bonjour,
    pour faire fonctionner ce CAN il faut fournir deux signaux :
    CS# et CLK
    Le signal CS# contrôle tant la conversion que la sortie du résultat en association avec l'horloge.
    Il faut que CS# soit valide pour 15 fronts montants d'horloge la donnée est échantillonné par les fronts montants de 4 à 15.
    Donc la machine à état générera CS# et un signal de validation permettant l'entrée des données dans le registre à décalage.
    Tout ceci(la totalité du module) n’excède pas une vingtaine de lignes(utiles) en VHDL.
    donc comme je ne fais pas le boulot propose du code et on en discutera.
    JR
    l'électronique c'est pas du vaudou!

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

    Re : exo VHDL

    Bonjour jherve,

    Franchement j'ai pas compris ce que tu voulais dire, est ce que tu peux me donner plus de détails, c'est moi qui va coder bien sur mais j'ai besoin d'un point de départ, jusqu'ici la seul chose que je sache c'est que je doit utilisé deux signaux clk et cs,mais je nee connais ni le nombre d'états ni les autres signaux (s'il y en a bien sur).

    merci d'avance

  7. #6
    jiherve

    Re : exo VHDL

    Bonjour,
    donc çà :
    • génération du 1MHz pour la machine à état (process gene_1M)
    • génération périodique (toutes les 100ms) du signal « start_conv » (process
    gene_start_conv)
    c'est déja codé ?
    Donc avec start_conv il faut générer le CS# et l'horloge CLK ce n'est pas trop difficile il faut compter jusqu’à 16
    ensuite il suffit d’enregistrer ce qui sort du CAN dans un registre à décalage et pour être propre faire une recopie de celui ci dans un autre registre à la fin du message; on aura donc l'équivalent fonctionnel d'un 595 .
    JR
    l'électronique c'est pas du vaudou!

  8. #7
    Leond95

    Re : exo VHDL

    Bonsoir jherve,

    voici les deux process clk_1M et generation du start_conv, mais comme j'avis dit il me reste la machine à état, pour le registre à décalage j'ai trouvé un code sur google.

    Code:
    --*********************************************************************	
    -- génération 1MHz
    --*********************************************************************
    gene_1M:	process(clk,reset_n)
    	variable count_gene_1M : integer range 0 to 25;	
    	BEGIN
    		if raz_n= '0' then
    			count_gene_1M:=0;
    		elsif clk'event and clk='1' then
    			count_gene_1M:= count_gene_1M +1;
    			if count_gene_1M =  24 then
    				clk_1M <= not(clk_1M);
    				count_gene_1M:= 0;
    			end if;
    		end if;	
    	end process gene_1M;
    --*********************************************************************	
    
    
    --*********************************************************************	
    -- génération du start_conv toutes les 100ms
    --*********************************************************************
    gene_start_conv:	process(clk_1M,reset_n)
    	variable count_conv : integer range 0 to 50000;	
    	BEGIN
    		if raz_n= '0' then
    			count_conv:=0;
    		elsif clk_1M'event and clk_1M='1' then
    			count_conv:= count_conv +1;
    			if count_conv =  49999 then
    				start_conv <= not start_conv;
    				count_conv:= 0;
    			end if;
    		end if;	
    	end process gene_start_conv;
    --*********************************************************************

  9. #8
    jiherve

    Re : exo VHDL

    Bonjour,
    formellement le codage est propre mais j'aimerais voir l'entité complète.

    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. [Programmation] Problème en VHDL avec les multi fichiers vhdl
    Par drbug dans le forum Électronique
    Réponses: 2
    Dernier message: 02/02/2016, 11h32
  2. Vhdl
    Par marshal.tn dans le forum Électronique
    Réponses: 10
    Dernier message: 05/07/2014, 11h12
  3. commande d'ascenseur avec VHDL la carte vhdl
    Par chakib123 dans le forum Électronique
    Réponses: 6
    Dernier message: 02/06/2014, 02h41
  4. Un peu de VHDL
    Par Dony6 dans le forum Électronique
    Réponses: 1
    Dernier message: 19/01/2014, 18h22
  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
Découvrez nos comparatifs produits sur l'informatique et les technologies.