Discussion:VHDL

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

développement sur FPGA[modifier le code]

"dans le cadre de développement d'ASIC et de FPGA", je pense que "sur FPGA" serait préférable. Le FPGA est le support et non pas l'objet développé, contrairement à l'ASIC. Qu'en pensez-vous ? P Wadier(?) 24 octobre 2005 à 11:21 (CEST)[répondre]

Oui, moi je suis d'accord.

Nom du fichier VHDL[modifier le code]

Il me semble que le nom du fichier et le nom de l'entité n'ont rien d'obligatoire (l'entité peut s'appeler toto dans un fichier titi.vhd), non ?

Disons qu'effectivement, ce n'est pas obligatoire, mais des règles de codage l'imposent souvent, ça évite de grosses bétises !

intérêt d'un hello world en VHDL ?[modifier le code]

Pour ma part je n'en vois pas. Je pense qu'il serait mieux de trouver un programme simple (un additionneur série par exemple ?) mais qui au moins aurait un sens au niveau hardware :) Freewol 4 janvier 2006 à 16:05 (CET)[répondre]


Je suis entièrement d'accord pour supprimer cette partie qui n'a absolument aucun sens. Peut-être serait-il aussi intéressant de rappeler les problèmes des glich ? Mais ceci doit sûrement faire partie d'un chapitre à part bien que je n'ai pas encore trouvé d'article en parlant. Peu-être que le terme était inventé par mon prof d'électronique ? ^^ Les glich désigne les petits état intermédiaire qui se produise entre deux états l'exemple le plus connus est celui d'un mauvais compteur : On pense qu'il compte 0,1,2,3,4 et en fait les signaux serait plutôt : 0,1,0,2,3,2,0,4 si mes souvenirs sont bon. (c'est d'ailleurs pour cela qu'il existe le code Gray) ---Schade- 26 septembre 2006 à 21:29 (CEST)[répondre]

C'est discutable, "textio" présente un intérêt pour des test bench avancés, un fichier de stimuli est lu en entrée, un fichier de résultats est généré : file fsortie : TEXT open WRITE_MODE is fresultat; à développer selon la pertinence.


Traduction de VHSIC[modifier le code]

Je m'étais permis de modifier la traduction de "Very High Speed Integreted Circuits" de cet article mais ma modification a été annulée. Peut-être m'y suis-je mal pris et aurais-je dû venir sur ce forum préalablement. Mais je viens juste de découvrir ce forum ! Je pense que, contrairement à la traduction initiale :" Langage de description du matériel pour circuits intégrés de très haute vitesse" la bonne traduction est : "Langage de description du matériel pour circuits intégrés pour des durées de développement rapides". Car le but du programme du département américain VHSIC était bien celui-là : développer des circuits intégrés le plus rapidement possible et avec zéro erreur. La traduction que je propose ici n'est pas excellente dans le choix des termes, j'en conviens, mais l'idée est bien que c'est le temps de développement qui doit être rapide et non nécesssairement le circuit. Car rien dans VHDL ne montre qu'il est dédié à des circuits rapides. D'ailleurs les circuits hyper fréquences n'ont pas besoin de VHDL pour être conçus puisque le nombre de transistors, et donc la complexité, est faible.

Qu'en pensez-vous ?

Liévin Devos, Professeur d'Électronique à Polytech'Lille

Je trouve qu'il faut effectivement traduire VHSIC tel que pensé par ceux qui on créé ce mot. Et VHSIC semble avoir été inventé pour batiser le programme de recherche militaire americain "VHSIC program".
Par contre, et si j'en crois ce qu'on peut lire par exemple sur cette page : http://adsabs.harvard.edu/abs/1982easc.conf..297T , le programme n'avait pas pour but de mettre au point une technique de développement rapide, mais de mettre au points les outils pour développer de futurs circuits, à la fois plus petits, plus rapide, plus puissant, et consommant moins.
Et donc, indépendemment du fait que cela semble en plus la traduction la plus commune et la plus répandue, je pense que la traduction mot-à-mot initiale est préférable à celle que vous proposez.
-- Luzerne GANHIR 22 mai 2007 à 15:00 (CEST)[répondre]


OK, je suis convaincu. Vous avez raison. En fait je me basais sur le souvenir que j'avais des premiers articles que j'avais vu à l'époque du démarrage de ce programme et qui (de mémoire) m'avaient fait croire qu'il s'agissait plutôt de mettre en place des outils pour accélérer le développement. Mes excuses pour mon erreur et meilleures salutations ! --L. Devos le 23 mai 2007

Opportunité de rajouter quelques chapitres[modifier le code]

J'ai parcouru rapidement la section et je pense qu'il manque un chapitre sur les évolutions à venir et notamment le passage graduel à de la synthèse haut niveau. A partir de SystemC par exemple. Un autre chapitre intéressant: les pièges classiques (pourquoi mon circuit ne marche pas ???). Notamment un manque de rigueur au niveau gestion des reset. Et les problèmes de resynchro. Finalement, un autre chapitre utile: les outils connexe. Couverture de code, vérification formelle,... (fl14_fr)

Paragraphe historique en premier[modifier le code]

Bonjour, je me suis permis de déplacer le paragraphe historique afin de le mettre en premier.
Matthieu Michon (d) 23 novembre 2007 à 08:26 (CET)[répondre]

Double sens du mot « séquentiel » : cas des circuits séquentiels synchrone[modifier le code]

Il est dit "Seuls les circuits séquentiels synchrones (sensibles aux fronts du signal d'horloge) ne peuvent être décrit qu'avec un algorithme activé sur le front de l'horloge."

Je pense que cela peut être aussi décrit en instructions concurente — Le message qui précède, non signé, a été déposé par Lpeuvrier (discuter)

Bien que possible, ce n'est jamais réalisé en pratique pour des problèmes de métastabilité des bascules et de maitrise des temps de propagation. D'autre part la phrase ne veut pas dire grand chose, à part qu'un circuit synchrone .. est synchrone ! --Zedh msg 17 juillet 2009 à 20:18 (CEST)[répondre]

C'est tout à fait possible au contraire mais ce n'est tout simplement pas l'usage. Voici un exemple de bascule D décrit avec une instruction concurrente qui se simule et se synthétise parfaitement bien :

library ieee;
use ieee.std_logic_1164.all;

entity DEdge is
    port(clk, rst, d : in  std_logic;
         q      : out std_logic);
end entity DEdge;

architecture behavioral of DEdge is
begin
    q <= '0' when rst = '1' else
         d   when rising_edge(clk);
end architecture behavioral;

logiciels de simulation, synthèse[modifier le code]

Une erreur se glisse dans le tableau des logiciels concernant ModelSim Altera Edition, il n'est pas gratuit. Par contre Modelsim Altera Starter Edition est gratuit mais limité (100'000 lignes, pas de langage mixte). Lien : http://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.html

Multiplexeur 3 vers 1[modifier le code]

Les 3 exemples d'architecture donnés pour le multiplexeur 3 vers 1 ne donnent pas les mêmes résultats. De plus fournir un niveau 'X' (unknown value) n'a pas de signification pour le synthétiseur. — Le message qui précède, non signé, a été déposé par l'IP 213.56.56.45 (discuter), le 21 décembre 2010 à 15:21.

Bonjour. J'ai corrigé cette partie qui comportait effectivement plusieurs erreurs. N'hésitez pas à signaler s'il en reste. Cordialement, Freewol (d) 21 décembre 2010 à 16:20 (CET)[répondre]

Différences avec un langage de programmation[modifier le code]

Le 2è paragraphe est difficile à comprendre et surtout l'auteur mélange combinatoire(instructions VHDL simples) et séquentielle (process) Faire du combinatoire en VHDL est le B-A-BA (excusez l'orthographe) du VHDL. Ainsi pour faire un circuit combinatoire, je fais par exemple : S <= A AND (B OR NOT C); Je pense qu'il faut sérieusement distinguer les instructions combinatoires (en dehors de tout process) des instructions séquentielles (dans un process) ET en faire une partie spéciale "logique synchrone" qui est défini par :

process (reset_n, clk)
begin
   if reset_n = '0' then
      -- initialisation des variables et signaux
   elsif rising_edge(clk) then
      -- instructions séquentielles synchrone (car ils réagissent au front montant d'horloge)
   end if;      
end process;

Les synthétiseurs détectent ces logiques synchrones et optimisent (grandement) la synthèse, le placement-routage. --194.250.203.171 (discuter) 16 décembre 2013 à 19:44 (CET)[répondre]