fonction signal rectangulaire en VHDL
Discussion fermée
Affichage des résultats 1 à 22 sur 22

fonction signal rectangulaire en VHDL



  1. #1
    invite0374bd4b

    fonction signal rectangulaire en VHDL


    ------

    Bonjour,
    J'essaye d'envoyer un signal rectangulaire via un convertisseur numérique analogique connecté à une carte fpga, mais j'arrive pas à voir comment je peux générer ce signal avec du VHDL.

    Pouvez-vous m'aider ? ou me fournir le code si il est disponible

    -----

  2. #2
    erff

    Re : fonction signal rectangulaire en VHDL

    Salut

    Utilise l'horloge de ton FPGA...Tu déclares un signal compteur qui jouera la rôle de diviseur de fréquence, ainsi que 2 seuils compteurs à partir desquels ton signal de sortie vaut 1 ou 0...ce qui permet de jouer sur le rapport cyclique et la fréquence.

  3. #3
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    Citation Envoyé par erff Voir le message
    Salut

    Utilise l'horloge de ton FPGA...Tu déclares un signal compteur qui jouera la rôle de diviseur de fréquence, ainsi que 2 seuils compteurs à partir desquels ton signal de sortie vaut 1 ou 0...ce qui permet de jouer sur le rapport cyclique et la fréquence.
    merci pour ta réponse mais je ne vois pas comment créer les deux seuils de compteurs qui vont dire ça c'est un 0 et ça c'est un 1 ?

  4. #4
    erff

    Re : fonction signal rectangulaire en VHDL

    Salut

    Déjà :
    quelle est la fréquence de ton horloge ?
    quelle fréquence désires tu en sortie (réglable ou pas ?, dans quelle plage) ?
    Quel rapport cyclique ? (réglable ou pas ?)

    L'idée du truc est de créer
    - un compteur (un simple signal de type "entier") qui va de 0 à 2000 (j'ai pris 2000 complètement au pif)
    - Un process sur front montant de clock
    - Dans ce process, on incrémente compteur

    En dehors du process :
    Si compteur <1000 alors sortie = 1
    Si compteur > 1000 alors sortie = 0
    Si compteur >=2000 alors on le réinitialise à 0

    Bref, le fait de prendre autre chose que 2000 fait varier la fréquence ET le rapport cyclique
    Le fait de prendre autre chose que 1000 fait varier le rapport cyclique seulement

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

    Re : fonction signal rectangulaire en VHDL

    Citation Envoyé par erff Voir le message
    Salut

    Déjà :
    quelle est la fréquence de ton horloge ?
    quelle fréquence désires tu en sortie (réglable ou pas ?, dans quelle plage) ?
    Quel rapport cyclique ? (réglable ou pas ?)

    L'idée du truc est de créer
    - un compteur (un simple signal de type "entier") qui va de 0 à 2000 (j'ai pris 2000 complètement au pif)
    - Un process sur front montant de clock
    - Dans ce process, on incrémente compteur

    En dehors du process :
    Si compteur <1000 alors sortie = 1
    Si compteur > 1000 alors sortie = 0
    Si compteur >=2000 alors on le réinitialise à 0

    Bref, le fait de prendre autre chose que 2000 fait varier la fréquence ET le rapport cyclique
    Le fait de prendre autre chose que 1000 fait varier le rapport cyclique seulement
    Salut

    La fréquence de mon horloge est de 50MHz et je veux garder la même en sortie du convertisseur, avec un rapport cyclique réglable

    donc je déclare un signal interne qui est la sortie de mon compteur.
    Mon CNA a une entrée de 14 bits.
    jusqu'à quel valeur je dois compter ?
    la sortie du compteur est ce que je la connecte aux entrées du CNA ?

  7. #6
    erff

    Re : fonction signal rectangulaire en VHDL

    50MHz ça ne va pas être possible avec une horloge de 50MHz...il faut une fréquence inférieure !

  8. #7
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    qu'est ce qu'il faut prendre comme fréquence pour que ça marche ?

  9. #8
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    voilà mon code jusqu'à présent,

    library ieee;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;

    entity cna is
    port (
    cna_clk: in std_logic;
    clkA: out std_logic; --horloge du cna
    cna_data_out: out std_logic_vector(13 downto 0);
    wrtA: out std_logic; broche écriture dans le cna défini ds datasheet
    );
    end cna;

    architecture archi of cna is
    signal tmp: std_logic_vector(13 downto 0);
    signal count:integer:=0;
    begin
    clkA<=cna_clk;;
    process(cna_clk)
    begin
    if cna_clk'event and cna_clk='1' then tmp<=tmp+1; --incrémentation
    end if;
    end process;

    dac_data_out<=tmp;

    if count<(valeur) then wrtA<='1';
    if count>(valeur) then wrtA<='0';
    if count>=(valeur max) then count:=0;
    end if;
    end if;
    end if;

    end archi;


    est ce que je suis dans la bonne direction ? le process dont pour le compteur il faut qu'il soit géré par l'horloge cna_clk ?

  10. #9
    invite05438af4

    fonction signal rectangulaire en VHDL

    Bonjour,

    J'ai bien peur de ne pas comprendre quel est l'objet de votre système.

    Si vous voulez générer un signal rectangulaire en sortie de votre FPGA, et le convertir en suite, vous pouvez créer vous-même un réseau R2R additionné du condensateur AD HOC pour lisser le signal.

    Si en plus vous devez modifier le rapport cyclique, il vous faut une fréquence d'horloge supérieure à celle en sortie.

    Comme expliqué précédemment par Erff, il faut un compteur.

    Quelle est la résolution de votre rapport cyclique? de 10% à 90% par pas de 10 ou bien de 1% à 99%.

    Toutes ces données changent la façon dont vous devez réaliser votre programme en VHDL.

    Pour ma part, j'utilise le kit NEXYS2 500 avec la carte d'extension.

    Pour mes applications vidéos, j'utilise la fréquence de 50MHZ en interne.

    Comme je suis obligé de sur-échantillonner, je vais devoir faire tourner le système au dela de 100 ou 200MHz.

    Sachez que le SPARTAN 3E peut tourner jusque plus de 500MHz.

    Je crois, pour être précis qu'il monte à 574Mhz.

    J'ai des bouts de programmes faits maisons qui tournent très bien pour générer mes synchro vidéo.

    En pièce jointe, un exemple de gestion de signaux vidéo pour un téléviseur de standart Noir et Blanc de 819 lignes.

    Bonne journée.

    Pitbuell94.
    Images attachées Images attachées

  11. #10
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    Citation Envoyé par pitbuell94 Voir le message
    Bonjour,

    J'ai bien peur de ne pas comprendre quel est l'objet de votre système.

    Si vous voulez générer un signal rectangulaire en sortie de votre FPGA, et le convertir en suite, vous pouvez créer vous-même un réseau R2R additionné du condensateur AD HOC pour lisser le signal.

    Si en plus vous devez modifier le rapport cyclique, il vous faut une fréquence d'horloge supérieure à celle en sortie.

    Comme expliqué précédemment par Erff, il faut un compteur.

    Quelle est la résolution de votre rapport cyclique? de 10% à 90% par pas de 10 ou bien de 1% à 99%.

    Toutes ces données changent la façon dont vous devez réaliser votre programme en VHDL.

    Pour ma part, j'utilise le kit NEXYS2 500 avec la carte d'extension.

    Pour mes applications vidéos, j'utilise la fréquence de 50MHZ en interne.

    Comme je suis obligé de sur-échantillonner, je vais devoir faire tourner le système au dela de 100 ou 200MHz.

    Sachez que le SPARTAN 3E peut tourner jusque plus de 500MHz.

    Je crois, pour être précis qu'il monte à 574Mhz.

    J'ai des bouts de programmes faits maisons qui tournent très bien pour générer mes synchro vidéo.

    En pièce jointe, un exemple de gestion de signaux vidéo pour un téléviseur de standart Noir et Blanc de 819 lignes.

    Bonne journée.

    Pitbuell94.
    Bonjour,
    Je dois générer un signal rectangulaire en sortie d'un convertisseur cna (ref dac5672 de chez TI) connecté à une carte fpga altera.
    à la sortie de mon cna je veux visualiser un oscillo un signal rectangulaire dont je peux changer le rapport cyclique en modifiant le code vhdl, disant qu'au départ je prend un rapport cylique constant de 50%.

    J'ai copié mon bout de code dans le post précédent, je suis un peu perdu , je ne sais pas comment je connecte ce compteur aux entrée du cna

  12. #11
    invite05438af4

    Re : fonction signal rectangulaire en VHDL

    Re-bonjour,

    A aucun moment je ne vois l'utilisation de cela "cna_data_out: out std_logic_vector(13 downto 0);"

    cna_data_out est défini mais ne sert plus???

    Est-ce normal ou manque-t-il un bout du programme?

    ou alors c'est une erreur avec la ligne suivante "dac_data_out<=tmp;" qui devrait être > cna_data_out<=tmp

    Me fourvoirais-je?

    Bonne journée.

    Pitbuell94.

  13. #12
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    Citation Envoyé par pitbuell94 Voir le message
    Re-bonjour,

    A aucun moment je ne vois l'utilisation de cela "cna_data_out: out std_logic_vector(13 downto 0);"

    cna_data_out est défini mais ne sert plus???

    Est-ce normal ou manque-t-il un bout du programme?

    ou alors c'est une erreur avec la ligne suivante "dac_data_out<=tmp;" qui devrait être > cna_data_out<=tmp

    Me fourvoirais-je?

    Bonne journée.

    Pitbuell94.
    effectivement c'est une erreur dac=cna , cna_data_out<=tmp
    c'est corrigé

  14. #13
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    qu'est ce qu'il faut que je modifie pour que mon programme marche

  15. #14
    invite05438af4

    Re : fonction signal rectangulaire en VHDL

    Bonjour,

    En fait, votre FPGA pilote votre DAC pour que ce dernier génère un signal carré:est-ce exact?

    Vous ne comptez pas générer juste un signal carré avec votre FPGA et votre DAC, j'espère, car auquel cas, vous avez sorti l'artillerie lourde...

    Si vous ne devez que générer un signal carré, vous pouvez ne pas vous servir du DAC.

    Une sortie unique du FPGA donnera un signal binaire qui sera ensuite amplifiée par un ampli-op type NE592.

    Vous pourrez ainsi régler le gain.

    Sur quelle base de kit travaillez-vous?

    Au risque de me répéter, il est important que vous sachiez quelle sera l'unité de temps la plus petite dans votre système.

    Dans votre cas, pour 50 Mhz, l'unité la plus petite de transition est 20 ns.

    Si vous désirez un rapport cyclique de 10%, l'unité de temps la plus petite sera 10% de 20 ns > donc 2 ns.

    De ce fait, il découle que votre fréquence d'horloge principale travaillera à au minimun 500Mhz.

    Pitbuell94.

  16. #15
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    Oui exactement mon fpga pilote mon dac pour générer un signal carré.
    ce n"est qu'une partie de mon projet, bien évidemment je ne fais pas tout ça que pour générer ce signal.

    je travaille avec cette carte de développement http://www.altera.com/products/devki.../kit-cyc3.html et ma carte de conversion où il ya le dac c'est celle là http://www.terasic.com.tw/cgi-bin/pa...ryNo=39&No=360

    merci

  17. #16
    invite05438af4

    Re : fonction signal rectangulaire en VHDL

    N'y a-t-il pas moyen de simplifier l'expression suivante:

    if count<(valeur) then wrtA<='1';
    if count>(valeur) then wrtA<='0';

    par

    Wrta<= '0' when (count< valeur max) else '1'

    Pitbuell94.

  18. #17
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    Citation Envoyé par pitbuell94 Voir le message
    N'y a-t-il pas moyen de simplifier l'expression suivante:

    if count<(valeur) then wrtA<='1';
    if count>(valeur) then wrtA<='0';

    par

    Wrta<= '0' when (count< valeur max) else '1'

    Pitbuell94.
    oui c'est une autre façon plus simple de l'exprimer , mais je comprends combien pour la valeur max ? et mon compteur je l'incrémente dans le process de cna_clk ?

  19. #18
    invite05438af4

    Re : fonction signal rectangulaire en VHDL

    Je ne pratique le VHDL que depuis peu, mais ce language me convient.

    C'est le seul, à mon avis, capable de gérer les tâches répétitives.

    C'est la raison pour laquelle je commence avec la petite carte NEXYS 2 500K.

    J'ai commencé au siècle dernier en assembleur, basic ,Pascal et Turbo Pascal.

    Une des machines que je possédais et en exposition au musée de l'informatique sous le nom " MDS 800 Intel".

    J'espère arriver au bout du système que je compte réaliser, à savoir un scaleur vidéo.

    J'ai fait un autre post sur le forum.

    Pitbuell94.

  20. #19
    invite05438af4

    Re : fonction signal rectangulaire en VHDL

    Boulette.... ce n'est pas valeur max mais plutot:

    if count<(Rapport Cyclique) then wrtA<='1';
    if count>(Rapport Cyclique) then wrtA<='0';

    par

    Wrta<= '0' when (count< Rapport Cyclique) else '1'
    if count>=(10) then count:=0;

    La valeur ici vaut 10 car vous avez 10 pas de réglages et que votre fréquence est 10 fois supérieure>Si votre fréquence est de 500Mhz, il faudra compter jusqu'à 10 pour faire une fréquence de 50Mhz.

    Si vous voulez 25Mhz, votre valeur MAX vaut alors 20 et vos pas de réglages rapport cyclique valent alors 20 pour 10% ou 10 pour 5% de variation.

    Cette valeur est à réajuster si vous changer la fréquence.

    Si Rapport cyclique vaut 1, en sortie votre signal aura un rapport cyclique de 10% à l'état bas, si Rapport Cyclique vaut 2, alors c'est 20%....

    Si votre signal doit avoir un rapport cyclique de 50%, alors la valeur " Rapport Cyclique" sera de moitié celle du valeur max( qui est ici 10)

    Pitbuell94.

  21. #20
    invite0374bd4b

    Re : fonction signal rectangulaire en VHDL

    d'accord ok merci

  22. #21
    invitef849445b

    Re : fonction signal rectangulaire en VHDL

    je me retrouve dans le même cas depuis ce matin, justement moi aussi je voulais générer un signal carré à partir d'un cpld, et j'ai eu aussi l'idée de faire le compteur, mais je galère un peu, je sais que cela remonte a 7 ans :/ mais si vous pouviez m'aidé, sa sera super merci beaucoup

  23. #22
    Antoane
    Responsable technique

    Re : fonction signal rectangulaire en VHDL

    Bonjour,

    voir : http://forums.futura-sciences.com/el...arre-cpld.html.

    Sujet fermé pour éviter que les réponses se dispersent.

    Crdt
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Discussions similaires

  1. Transformée de Fourier d'un signal rectangulaire périodique
    Par invitea29b3af3 dans le forum Mathématiques du supérieur
    Réponses: 11
    Dernier message: 15/12/2016, 09h45
  2. signal rectangulaire avec un PIC16f876a
    Par invite638ca161 dans le forum Électronique
    Réponses: 22
    Dernier message: 03/08/2009, 21h26
  3. filtrer un signal rectangulaire
    Par invitecaa29957 dans le forum Électronique
    Réponses: 18
    Dernier message: 27/04/2008, 16h17
  4. Générer un signal rectangulaire
    Par invite596525fb dans le forum Électronique
    Réponses: 5
    Dernier message: 30/01/2007, 15h42
  5. signal rectangulaire (codification de manchester)
    Par invite4325d177 dans le forum Électronique
    Réponses: 19
    Dernier message: 09/03/2006, 03h24
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...