J'ai commencé à utiliser CocoTB pendant le confinement, dans le cadre d'un enseignement à distance du VHDL.
Habituellement, nous utilisons la suite Vivado de Xilinx pour la simulation et la synthèse, et des cartes Digilent pour les essais avec du vrai matériel.
Pendant le confinement, il était impossible de fournir des cartes à tous les étudiants. Nous ne pouvions faire que de la simulation. Sachant que les étudiants travaillaient avec leur ordinateur personnel, j'ai rapidement écarté Vivado pour trois raisons :
Il n'est pas disponible sous OS X.
L'installation nécessite 20 Go d'espace disque libre.
Et surtout, la simulation sous Vivado n'est pas interactive : certes, on peut écrire un banc de test et afficher des chronogrammes, mais on ne peut pas créer une interface graphique avec des widgets simulant les entrées/sorties de la carte, comme on peut le faire par exemple avec le simulateur commercial Modelsim.
Je me suis orienté vers une solution utilisant GHDL, GtkWave, CocoTB et tkinter.
CocoTB est utilisé de deux manières :
D'abord pour automatiser des tests, ce qui est sa raison première.
Mais aussi pour faire l'interface entre, d'une part de petites interfaces graphiques écrites en Python avec tkinter (avec des boutons, des interrupteurs, des LED ou des afficheurs 7 segments), et d'autre part l'entité principale VHDL simulée par GHDL.
Dans le premier cas, on veut que la simulation soit la plus rapide possible ; le temps simulé est relativement indépendant de la durée que prend le simulateur pour exécuter le design.
Dans le deuxième cas, au contraire, si la description VHDL prévoit qu'une LED clignote toutes les secondes, on veut la voir clignoter à la bonne vitesse sur l'interface graphique. Il a fallu tricher un peu, et ça n'a pas toujours bien fonctionné lorsque les performances des PC des étudiants n'étaient pas suffisantes.
En quelque sorte, CocoTB a sauvé nos TP de VHDL, et je pense même continuer à l'utiliser l'année prochaine.
# CocoTB + tkinter pour rendre les simulations plus vivantes
Posté par Guillaume Savaton (site web personnel) . En réponse à la dépêche CocoTB 1.4.0, la maturité. Évalué à 6.
J'ai commencé à utiliser CocoTB pendant le confinement, dans le cadre d'un enseignement à distance du VHDL.
Habituellement, nous utilisons la suite Vivado de Xilinx pour la simulation et la synthèse, et des cartes Digilent pour les essais avec du vrai matériel.
Pendant le confinement, il était impossible de fournir des cartes à tous les étudiants. Nous ne pouvions faire que de la simulation. Sachant que les étudiants travaillaient avec leur ordinateur personnel, j'ai rapidement écarté Vivado pour trois raisons :
Je me suis orienté vers une solution utilisant GHDL, GtkWave, CocoTB et tkinter.
CocoTB est utilisé de deux manières :
Dans le premier cas, on veut que la simulation soit la plus rapide possible ; le temps simulé est relativement indépendant de la durée que prend le simulateur pour exécuter le design.
Dans le deuxième cas, au contraire, si la description VHDL prévoit qu'une LED clignote toutes les secondes, on veut la voir clignoter à la bonne vitesse sur l'interface graphique. Il a fallu tricher un peu, et ça n'a pas toujours bien fonctionné lorsque les performances des PC des étudiants n'étaient pas suffisantes.
En quelque sorte, CocoTB a sauvé nos TP de VHDL, et je pense même continuer à l'utiliser l'année prochaine.