Dans ce projet, nous souhaitons manipuler les chiffres des minutes et des secondes sous la forme d’entiers. De son côté, chaque afficheur sera piloté par sept signaux logiques indiquant quels segments devront être allumés ou éteints. Il est donc nécessaire d’effectuer un décodage afin de déterminer, pour chaque chiffre à afficher, l’état correspondant des segments.
Le fichier SegmentDisplay/SegmentDecoder.vhd
contient la description complète d’un décodeur pour afficheurs sept segments.
Dans l’architecture du minuteur, nous allons devoir instancier un décodeur
pour chacun des afficheurs.
Sur la figure ci-dessous, nous avons représenté le circuit correspondant.
Les décodeurs ont été câblés de manière à afficher les chiffres 1, 2, 3 et 4.
Dans le fichier Pomodoro.vhd
, complétez l’architecture de manière à reproduire
la structure du circuit de la figure :
SegmentDecoder
.minutes_tens
, minutes_ones
, seconds_tens
et seconds_ones
les valeurs que vous voulez afficher.Dans un terminal, exécutez les commandes suivantes.
La commande cd
peut être omise si vous êtes déjà dans le dossier Pomodoro
.
cd $HOME/CoCiNum/src/vhdl/Pomodoro
ghdl -a ../SegmentDisplay/SegmentDecoder.vhd Pomodoro.vhd
Si nécessaire, modifiez le fichier Pomodoro.vhd
jusqu’à ce qu’il n’y ait
plus de message d’erreur.
Démarrez la simulation en utilisant les commandes suivantes :
cd $HOME/CoCiNum/src/vhdl/Pomodoro/tests/Pomodoro
make
Le nombre affiché sur les afficheurs sept segments doit correspondre
à ce que vous avez indiqué dans votre fichier Pomodoro.vhd
.
Si ce n’est pas le cas, vérifiez les instances de SegmentDecoder
et les affectations concurrentes pour qu’elles soient conformes au schéma.
Corrigez votre architecture et relancez la simulation jusqu’à ce que vous
obteniez le résultat attendu.