compilation verilog
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

compilation verilog



  1. #1
    inviteef27c66e

    compilation verilog


    ------

    bonjour à tous.
    Après mon stage de fin d'année (DUT GEII), mon maître de stage m'a employé pour l'été. J'ai un projet à faire en verilog (sous quartus) et j'ai des petits problèmes.
    Voici mon programme :

    module programme_induction (synchro, t2, Th1, Th2, Thd1, Thd2);
    input synchro;
    input [7:0] t2;
    output Th1, Th2, Thd1, Thd2;
    reg Th1;
    reg Th2;
    reg Thd1;
    reg Thd2;
    reg [7:0] cpt;
    reg clock;

    always@(posedge clock)
    begin
    cpt=cpt+1;
    end

    always@(posedge synchro)
    begin
    Th1=1;
    Th2=0;
    cpt=0;
    wait(cpt==t2);
    Thd1=1;
    Thd2=0;
    end

    always@(negedge synchro)
    begin
    Th1=0;
    Th2=1;
    cpt=0;
    wait(cpt==t2);
    Thd1=0;
    Thd2=1;
    end
    endmodule

    après compilation (qui s'arrête à 12% à cause des erreurs), j'obtient le message suivant : Error (10028): Can't resolve multiple constant drivers for net "Th1" at programme_induction.v(27). J'ai la même erreur pour Th2, Thd1 et Thd2.

    J'aimerai donc savoir quel est le problème (je suis sur que c'est un pauvre truc de débutant en plus, mais ça faisait un an et demi que je n'est pas touché à quartus...)

    De plus, j'ai un warning disant : Warning (10193): Verilog HDL unsupported feature warning at programme_induction.v(22): Wait Statement is not supported and is ignored. Mon instruction wait ne se fera pas? pourquoi?

    Voilà, merci de votre attention

    -----

  2. #2
    inviteef27c66e

    Re : compilation verilog

    j'ai essayé de compiler un fois sans le posedge et un fois sans le negedge et je n'ai plus d'erreur. j'ai l'impression que quartus n'aime pas que je fasse un always_posedge puis un always_negedge de la même entrée.

    est-ce-que se serai ça l'erreur?

  3. #3
    jiherve

    Re : compilation verilog

    Bonsoir
    En verilog comme en VHDL un signal ne peut être drivé par deux process ce qui semble être le cas de TH1 et TH2, cpt etc etc!

    JR

  4. #4
    invite0e5af214

    Re : compilation verilog

    Entièrement d'accord avec jiherve.

    Pour le wait(), ce n'est pas une instruction synthétisable...

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

    Re : compilation verilog

    ok merci à vous deux.

    @cherwam07 : tu veux dire quoi par synthétisable? j'ai trouvé cette fonction dans un tutorial verilog.

  7. #6
    invite99377639

    Re : compilation verilog

    Synthétisable signifie que une fois le code terminé, des outils automatiques pourront, à partir du code, synthétiser ou générer le layout qui permettra de réaliser ce que tu as codé en portes logiques ou transistors. C'est le passage du code au plan du circuit (puis sa réalisation en FAB). Le transfert du plan du circuit à la FAB s'appelle le tapeout (période très éprouvante pour les designer, pour ceux qui travaillent dans les circuits intégrés).
    Avec l'instruction wait(), le programme sait qu'il va devoir "attendre", mais l'outil ne saura pas quoi faire lorsqu'il devra générer le circuit.

    Cependant, le VHDL, et le Verilog, sont des langages de programmation qui ne sont pas utilisés QUE pour "synthétiser", mais aussi pour modéliser ou valider des circuits complexes, et ce, aussi bien en analogique qu'en numérique.

    Dont acte.

  8. #7
    inviteef27c66e

    Re : compilation verilog

    finalement, qu'est-ce-que ça veut dire? que le wait ne fonctionnera pas?

    pour le front montant et descendant, je ne peux pas passer par des if. et puis pour le wait, il me faut un retard.
    comment je peux faire alors?

    voici mes signaux à créer

    ______|--------|_______|--------|_______ synchro

    ______|--------|_______|--------|_______ th1

    --|_____|--------|_______|--------|_____ thd1

    Th1 est en phase avec la synchro, et Thd1 et en retard de la valeur t2.
    (Th2 et Thd2 sont les inverses de Th1 et Thd1)

    merci

  9. #8
    invite99377639

    Re : compilation verilog

    Est-ce que tu veux faire du VHDL synthétisable? C'est-à-dire générer un plan de masque (layout, GDS2) une fois que ton code sera fini.
    Si oui, tu ne peux pas utiliser l'instruction wait. Pour créer un retard, tu vas devoir cascader un certain nombre de portes logiques (en principe des inverseurs) qui créeront ainsi un retard "hard".
    Si tu fais du code uniquement pour faire de la validation, par exemple vérifier qu'un retard ne crée pas un bug dans ton système, alors oui, tu peux utiliser la fonction wait.

  10. #9
    inviteef27c66e

    Re : compilation verilog

    @Algaiir : J'avoue que je vois pas ce qu'est un plan de masque. Moi, je programme le CPLD et ensuite il sera embarqué dans la carte de commande du montage. C'est une application industrielle.

  11. #10
    invite99377639

    Re : compilation verilog

    Ce sont toujours des applications industriels que nous faisons en circuits intégrés. En l'occurence ton CPLD est un circuit intégré, probablement créé en VHDL ou verilog à partir de quoi un plan de masque (le plans des transistors et de portes logiques) à été créé puis réalisé (tout comme un architecte fait le plan d'une maison puis la construit).
    Dans ton cas, il faut que tu consultes les spécifications du CPLD que tu dois programmer, à savoir les fonctions qu'il est capable d'interpréter. Même si une fonction existe, cela ne signifie pas qu'elle est interprétée correctement par le CPLD. Et peut-être que la fonction wait est supportée, auquel cas tu pourras l'utiliser.

  12. #11
    jiherve

    Re : compilation verilog

    Bonsoir
    Un CPLD (le petit frère du FPGA) c'est de la logique programmable, de nos jours on peut y implémenter tout ou presque mais effectivement pas un "WAIT", la solution du retard analogique (cascade d'inverseurs) est à proscrire car non reproductible, il faut s'orienter vers de la logique synchrone (flip flop, bascule etc etc).
    JR

  13. #12
    inviteef27c66e

    Re : compilation verilog

    Honte à moi, j'ai oublié le plus important.
    J'utilise un MAX7128SLC84-7 (donc altera)
    excusez moi de ne pas avoir précisé ça plus tôt.
    mea culpa

    Bon sinon, à votre avis, c'est réalisable comme signaux de commande. qu'est-ce-qui est le mieux, schematic ou verilog?

  14. #13
    jiherve

    Re : compilation verilog

    Bonjour
    ni l'un ni l'autre :VHDL!
    mais le moins pire c'est verilog car la portabilité des schémas c'est ZERO!
    Le wait ne marche pas non plus avec Altera.
    JR

  15. #14
    inviteef27c66e

    Re : compilation verilog

    Tout d'abord, merci.
    Je vais suivre tes conseils et essayer de me mettre au VHDL. ça ne doit pas être trop compliqué.
    Menfin, c'est bête de remuer à ce point pour quelques signaux. J'espère que je ne suis pas passé à côté de quelque chose de simple.
    Mais bon, c'est comme ça qu'on apprend.

  16. #15
    invite0e5af214

    Re : compilation verilog

    ni l'un ni l'autre :VHDL!
    Pas d'accord !

    Ce n'est pas un problème de langage qu'à notre ami, mais un problème sur la facon de concevoir une application.

    Je crois qu'on est tous confrontés à ca quand on passe sur FPGA, c'est qu'une application ne se conçoit pas comme si c'était du C.
    Il faut bien assimiler le fait que tous les process sont exectués en même temps, et non les uns à la suite des autres comme en info.
    Il faut s'imaginer (autant que possible) que ce qu'on écrit va être traduit sous forme de portes logiques et de bascules.

    Donc VHDL pourquoi pas (je n'ai rien contre j'aime bien aussi), mais ce n'est pas ca qui résoudra le genre de problème comme celui posé en début de ce post.
    Un cours sur la conception des circuits numériques, oui !!

    Bon courage

  17. #16
    jiherve

    Re : compilation verilog

    Bonsoir
    je lui ai déja dit que sont truc n'etait pas synthétisable, je lui dit maintenant ce qui me semble être le meilleur langage en synthèse pas autre chose.
    pour finir c'est vrai que le softeux ne comprend pas bien le parallélisme intrinsèque aux langages de conception matérielle mais ce n'est pas un scoop.

    JR

  18. #17
    inviteef27c66e

    Re : compilation verilog

    Dans mon cas, ce n'est pas vraiment un problème de philosophie informatique. Et je sais très bien que tout s'effectue en même temps sur un CPLD et que ce n'est pas du séquentiel (par contre, il est vrai que je n'arrive pas trop à entrevoir la transposition en portes logiques).
    Mon vrai problème, c'est seulement que je n'arrive pas à créer mes signaux et que je manque d'expérience en CPLD. J'en ai déjà fait à l'IUT, mais seulement sur des petits programmes tout simples.

    Merci quand même pour vos réponses.

Discussions similaires

  1. MIKROBASIC compilation
    Par invite83d28800 dans le forum Électronique
    Réponses: 1
    Dernier message: 21/05/2008, 21h43
  2. convertisseur verilog/vhdl...
    Par invite7e587b3b dans le forum Électronique
    Réponses: 2
    Dernier message: 10/05/2008, 18h59
  3. [c++]compilation fichier
    Par invite9b88e44f dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 20/07/2007, 13h20
  4. Help Verilog Implementation de mon système
    Par inviteb9c2ac19 dans le forum Électronique
    Réponses: 1
    Dernier message: 05/03/2007, 21h49
  5. Compilation CD XP + SP2
    Par inviteea87de84 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 18/01/2005, 13h30
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...