GHDL sur Windows
Posté le 28 décembre 2021 dans Hardware
Installation de MSYS2 :
Installation de GHDL :
GHDL peut s'installer de 2 façons différentes.
En utilisant le package de MSYS2 :
Pour installer la version 64-bit de GHDL la commande est la suivante :
pacman -S mingw64/mingw-w64-x86_64-ghdl-llvm
Voilà, c'est fait.
La mise à jour se fera à l'aide de la commande pacman -Syu , Commande qui met à jour tout le système MSYS2.Le package GHDL de MSYS2 est mis à jour régulièrement, mais pas très souvent.En utilisant un "nightly package" généré par le projet GHDL :
Personnellement, je préfère cette méthode qui a l'avantage de coller au développement de GHDL, et d'avoir un processus de mise à jour beaucoup plus rapide et léger (on ne met pas à jour le système MSYS2 complet).
Pour cela, il faut entrer les commandes suivantes (de préférence dans un répertoire dédié) :
wget -O mingw-w64-x86_64-ghdl-llvm-ci-1-any.pkg.tar.zst https://github.com/ghdl/ghdl/releases/download/nightly/mingw-w64-x86_64-ghdl-llvm-ci-1-any.pkg.tar.zstpacman -U mingw-w64-x86_64-ghdl-llvm-ci-1-any.pkg.tar.zstCes mêmes commandes permettent de mettre le package à jour.On mettra ces deux lignes dans un fichier bash pour pouvoir faire des mise à jour plus facilement.
Installation de GtkWave :
GHDL permet d'enregistrer l'état des signaux d'une simulation dans un fichier. Il est possible de choisir le format VCD, très utilisé, faisant partie du standard verilog. Avec ce format, on aura le choix de l'outil de visualisation des formes d'ondes, intégré à un environnement de développement ou non.
Pour installer GtkWave, cette fois, nous avons 3 possibilités :
En utilisant le package de MSYS2 :
Pour installer la version 64-bit de GtkWave la commande est la suivante :
pacman -S mingw64/mingw-w64-x86_64-gtkwave
En utilisant un "nightly package" généré par le projet GtkWave :
Il est possible de choisir entre une version Gtk2 et une version Gtk3. Il est recommandé d'utiliser la version Gtk3, la version Gtk2 devant disparaître à plus ou moins long terme [2] .
Les commandes sont les suivantes :wget -O mingw-w64-x86_64-gtkwave-gtk3-ci-1-any.pkg.tar.zst https://github.com/gtkwave/gtkwave/releases/download/nightly/mingw-w64-x86_64-gtkwave-gtk3-ci-1-any.pkg.tar.zstpacman -U mingw-w64-x86_64-gtkwave-gtk3-ci-1-any.pkg.tar.zstEn utilisant un package natif Windows (solution préférée) :
Avec cette méthode, on récupère un zip sur le github du projet GtkWave et on le décompresse dans un dossier.Et c'est tout.Les zip se trouvent ici .Les fichiers dont le nom commence par gtkwave_ sont ceux qui nous intéressent. Dans la capture d'écran ci-dessous, nous pouvons voir que nous avons le choix entre une version Gtk2 64-bit et deux versions Gtk3 (32-bit et 64-bit). La liste proposée peut-être différente.
Le format des fichiers GHW n'est pas figé. Il arrive (rarement) qu'une évolution de GHDL impose une modification de la structure de données de ce format de fichier. Il faudra alors mettre GtkWave à jour (l'import des fichiers GHW dans GtkWave est géré par les développeurs de GHDL).
Utilisation de GHDL :
Pour utiliser GHDL, il y a 2 méthodes.
La première consiste à utiliser la console MSYS2 MinGW 64-bit
Dans cette console, toutes les commandes GHDL fonctionnent directement. Il est possible d'accéder aux fichiers Windows directement. Par exemple, si votre projet se trouve dans D:\mon_projet , il suffit de faire cd /d/mon_projet pour se positionner dans le bon dossier.
La deuxième méthode consiste à utiliser une ligne de commande Windows classique et de modifier le PATH en conséquence avec la commande suivante :
PATH=C:\msys64\mingw64\bin;%PATH%
Il est également possible de lancer des commandes GHDL directement à partir d'autres outils, comme un environnement de développement intégré, à partir du moment où le PATH est correctement modifié.
Utilisation de GtkWave :
Si vous avez opté pour une version intégrée à MSYS2, Il est possible de créer un raccourci sur le bureau :
Pour visualiser un fichier GHW, il suffit de faire un Drag & Drop du fichier sur l'icône du raccourci.
[1] | Pour générer des fichiers au format GHW, l'option --wave=my_waveform.ghw doit être utilisée lors de la phase de simulation. |
[2] | Au moment de l'écriture de cet article, la version Gtk3 a des problèmes de performance d'affichage. |