Skip to content

Instantly share code, notes, and snippets.

@hainsdominic
Last active November 15, 2022 05:53
Show Gist options
  • Save hainsdominic/7e06fb2c1e178c0b08ecd7da6c09563a to your computer and use it in GitHub Desktop.
Save hainsdominic/7e06fb2c1e178c0b08ecd7da6c09563a to your computer and use it in GitHub Desktop.

Utilisation de GHDL pour le cours INF3500

15/11/2022 - Dominic Hains

Motivation

GHDL est un compilateur libre de VHDL. Il fonctionne en ligne de commande et peut être utilisé pour simuler des entités VHDL. Il est disponible pour Windows, Linux et Mac OS X gratuitement.

Il est particulièrement utile pour ceux voulant suivre le cours sur un système Unix-like (OS X, GNU/Linux, etc). Il est aussi possible de l'utiliser sur Windows, mais il est plus facile d'utiliser le simulateur de Active-HDL.

Il peut être utilisé avec n'importe quel éditeur de texte ou IDE, comme par exemple Visual Studio Code, Vim, etc.

Installation

Il est probablement disponible dans votre gestionnaire de paquets (apt, brew sur OS X ou le AUR sur Arch). Par exemple, pour Ubuntu, il suffit de faire:

    sudo apt install ghdl

Utilisation

Dans le cours, la plupart des laboratoires sont affectués en utilisant un testbench avec des énoncés report. Cela est grandement utile car vous pourrez voir les résultats du testbench sans aucun autre logiciel.

Pour la simulation avec diagrammes de temps (waveform), il est possible d'utiliser GTKWave. Il est disponible dans la plupart des gestionnaires de paquets. GHDL dispose d'une option pour générer un fichier VCD qui peut être lu par GTKWave. Le tutoriel de GHDL est disponible ici.

Exemple

GHDL permet de générer un makefile pour une entité particulière. La grande majorité du temps, cette entité sera le testbench. Par exemple, pour générer un makefile pour le testbench adder_tb code source] il suffit de faire:

Assurez-vous d'être dans le même répertoire que les fichiers VHDL.

    ghdl --gen-makefile --std=08 adder_tb

Ensuite, la commande make run permet de compiler et de simuler l'entité. Les énoncés report sont affichés dans la console.

Notes

GHDL ne fait pas la synthèse et l'implémentation. Il ne peut donc pas être utilisé pour générer des fichiers bitstream pour les FPGA. Il vous faudra trouver un ami qui à téléchargé Vivado de Xilinx pour faire la synthèse et l'implémentation.

Ce document est juste un résumé minimal de comment utiliser GHDL dans le cadre du cours INF3500. GDHL est beaucoup plus puissant que ce qui est présenté ici. Pour en savoir plus, consultez la documentation de GHDL.

Code source de ce fichier pour commentaires/modifications

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment