Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
simulation-vhdl [Le 24/05/2011, 23:52]
Jefix
simulation-vhdl [Le 27/11/2016, 09:21] (Version actuelle)
sefran Mise en page
Ligne 1: Ligne 1:
 +{{tag>​conception_electronique CAO}}
 +----
 ====== Simulation VHDL ====== ====== Simulation VHDL ======
 +{{ http://​gtkwave.sourceforge.net/​splash_512.gif?​300|GTKWave}}
  
-{{tag>VHDL conception_electronique CAO}}+VHDL (VHSIC Hardware Description Langage) est un langage de description de matériel, c'​est-à-dire un langage utilisé pour décrire un système numérique matériel, comme, par exemple, un flip-flop (bascule D) ou un microprocesseur. Il peut modéliser un système par n'​importe quelle vue, structurelle ou comportementale,​ à tous les niveaux de description.
  
-Utile pour ceux qui débutent ​en vhdl ou bien qui recherchent ​une solution libre de développer leurs projets, cette documentation va expliquer brièvement les premiers pas à faire sur Ubuntu+De plus il peut servir non seulement à simuler un système mais aussi à le synthétiser,​ c'​est-à-dire être transformé par des logiciels adaptés (synthétiseurs) ​en une série ​de portes logiques prêtes ​à être gravées ​sur du silicium.
  
 +VHDL est l'un des trois grands langages de description de matériel utilisés majoritairement dans l'​industrie,​ avec VHDL et SystemC. Chaque langage a ses propres avantages et inconvénients,​ ainsi que ses spécificités. Pour plus de détails, on pourra se référer à une comparaison objective de VHDL et Verilog.
 +Le langage standard IEEE VHDL a été développé par le Groupe d’Analyse et de Standardisation VHDL (VASG, pour “VHDL Analysis and Standardization Group”). Larry Saunders est le coordinateur de VASG. La société CLSI (CAD Langage Systems Inc.), représentée par le Docteur Moe Shahdad et M. Erich Marschner a préparé une série d’analyses et de recommandations dont a été tirée en Février 1986 la version 7.2 de VHDL, point de départ du futur standard. La collaboration de CLSI au projet était financée par un contrat passé avec l’Air Force Wright Aeronautical Laboratories,​ représentée par le Docteur John Hines. Le standard définitif a été adopté vers le milieu de l’année 1987. La dernière version date de 2002 mais ce cours présente le langage dans la version 1993, correspondant au standard IEEE 1076-1993, qui est supporté par de nombreux outils de simulation et synthèse.
  
 +Pour en savoir plus : http://​vhdl.org .
 +Source: http://​comelec.enst.fr/​hdl/​vhdl_intro.html#​historique
  
 +Cette page s'​adresse à ceux qui débutent en [[wpfr>​VHDL|Vhdl]] ou bien qui recherchent une solution libre de développer leurs projets. Elle s'​appuie sur les logiciels libres suivants: ​
 +  * [[http://​ghdl.free.fr|GHDL]] : logiciel de simulation de code VHDL
 +  * [[http://​gtkwave.sourceforge.net/​|GtkWave]] : logiciel de visualisation de simulation
  
-===== Simulation avec GHDL, GTKWave ===== 
  
-{{http://​gtkwave.sourceforge.net/​splash_512.gif?​300x250|GTKWave}} +=====Pré-requis===== 
-==== Préparation : ====+  * Disposer des [[:​sudo|droits d'​administration]],​ 
 +  * Disposer d'une connexion à Internet configurée et activée.
  
-=== Utilisation des logiciels libres suivant : === +===== Installation ===== 
-   * [[http://​ghdl.free.fr|GHDL]] : logiciel libre de simulation de code VHDL +[[:tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​ghdl,​gtkwave|ghdl gtkwave]]**
-   * [[http://gtkwave.sourceforge.net/​|GtkWave]] : logiciel libre de visualisation de simulation+
  
-=== Installation : === +===== Utilisation ====== 
-Installez les paquets ​[[:tutoriel:​comment_installer_un_paquet|ghdl]],[[:​tutoriel:​comment_installer_un_paquet|gtkwave]] +Depuis un [[:terminal]], placez ​vous dans votre répertoire de travail
- +
-**//* Méthode en ligne de commande//​** +
- +
-Dans votre terminal, saisissez : +
-<​code>​ sudo apt-get install ghdl gtkwave</​code>​ +
-**//* Méthode apt//** +
- +
-Cliquez sur les paquets : **[[apt>​ghdl,​gtkwave]]** +
- +
- +
-==== Utilisation : ==== +
-Placez ​vous dans votre répertoire de travail+
 <​code>​cd le/​chemin/​vers/​mon/​repertoire/​Repertoire_de_Travail</​code>​ <​code>​cd le/​chemin/​vers/​mon/​repertoire/​Repertoire_de_Travail</​code>​
  
-=== Analyse du code VHDL === +  #​include<​systemC.h> 
-Permet de vérifier la syntaxe du code, les erreurs sont affichées dans le terminal+  ​sc-module(and3) 
-<code>ghdl -a monFichier.vhd</code+  {  sc-in<bool>in1; 
- +     sc-in<bool>in2; 
-=== Compilation === +     sc-in<​bool>​in3;​ 
-Cette étape ne peut se faire qu'une fois le code vérifié et corrigé, si ce n'est pas le cas, ghdl vous le fait remarquer.+     sc-out<​bool>​out;​ 
 +     void compute();​ 
 +     ​sc-CTOR(and3) { 
 +          sc-METHOD(compute);​ 
 +          sensitive<<​in1<<​in2<<​in3;​ 
 +          } 
 +  } 
 +==== Compilation ​==== 
 +Cette étape ne peut se faire qu'une fois le code vérifié et corrigé. Si ce n'est pas le cas, ghdl vous le fait remarquer.\\
 On crée ici un fichier exécutable. On crée ici un fichier exécutable.
 <​code>​ghdl -e monFichier</​code>​ <​code>​ghdl -e monFichier</​code>​
-<​note>​Attention, ​ici il ne faut pas d'​extension à //​monFichier//</​note>​+<​note>​Attention,​ il ne faut pas indiquer ​d'​extension à //​monFichier//</​note>​
  
-=== Simulation === +==== Simulation === 
-Un fois l'​exécutable créé, on spécifie un temps de simulation pour l'​exécuter. //Remplacez XX par la durée de votre simulation.//​+Un fois l'​exécutable créé, on spécifie un temps de simulation pour l'​exécuter. // 
 +Remplacez XX par la durée de votre simulation.//​
 Le fichier vcd créé va nous servir à visualiser nos chronogrammes via GTKWave. Le fichier vcd créé va nous servir à visualiser nos chronogrammes via GTKWave.
 <​code>​./​monFichier --stop-time=XXns --vcd=monFichierSimulation.vcd</​code>​ <​code>​./​monFichier --stop-time=XXns --vcd=monFichierSimulation.vcd</​code>​
  
-=== Visualisation ===+==== Visualisation ​====
 On lance le logiciel gtkwave en lui spécifiant notre fichier de simulation. On lance le logiciel gtkwave en lui spécifiant notre fichier de simulation.
 <​code>​gtkwave monFichierSimulation.vcd &</​code>​ <​code>​gtkwave monFichierSimulation.vcd &</​code>​
 <​note>​L'​ajout des signaux au chronogramme se fait par simple double clic</​note>​ <​note>​L'​ajout des signaux au chronogramme se fait par simple double clic</​note>​
  
-<note important>​Pour ceux qui ont l'​habitude de travailler directement sur des cibles type FPGA, dans le cas d'une simulation, il vous faudra impérativement simuler vos signaux de type clock</​note>​+<note important>​Pour ceux qui ont l'​habitude de travailler directement sur des cibles type FPGA, dans le cas d'une simulation, il vous faudra impérativement simuler vos signaux ​d'​horloge 
 + 
 +Exemple ​de simulation d'​une ​clock 
 +<​code>​ 
 +signal clk_simu : std_logic := '​0';​ 
 +constant demiPeriode : time := 10 ns; -- pour une periode de 20ns -> freq 50MHz 
 + 
 +p_clk_simu : process is 
 +     ​begin ​  
 +          clk_simu <= '​1'​ after demiPeriode,​ '​0'​ after 2*demiPeriode;​ 
 +          wait for 2*demiPeriode;​  
 + end process p_clk_simu; ​  
 +</​code>​ 
 + </​note>​ 
 + 
 +===== Désinstallation ===== 
 +Pour désinstaller ces applications,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer les paquets]] **ghdl** et **gtkwave**. Selon la méthode choisie, la configuration globale de l'​application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés. 
 + 
 +---- 
 +//​Contributeurs : Jefix, Fabux //
  • simulation-vhdl.1306273936.txt.gz
  • Dernière modification: Le 15/12/2011, 15:20
  • (modification externe)