15/11/2022 - Dominic Hains
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.
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
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.
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.
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.