Activité : processus

Nous partons du principe que vous avez validé l’architecture du chronomètre de l’activité précédente.

Dans votre dossier CoCiNum/src/vhdl/StopWatch, créez une copie du fichier StopWatch.vhd et nommez-la StopWatch_WithProcess.vhd :

cd $HOME/CoCiNum/src/vhdl/StopWatch
cp StopWatch.vhd StopWatch_WithProcess.vhd

C’est ce fichier que vous allez modifier au cours de cet exercice.

Si ce n’est pas déjà fait, démarrez Vivado :

cd $HOME/CoCiNum
./scripts/vivado

Ouvrez votre projet StopWatch.

Modification de l’architecture

Dans le projet Vivado, ajoutez le fichier StopWatch_WithProcess.vhd (Menu FileAdd SourcesAdd or create design sourcesAdd Files).

Désactivez le fichier StopWatch.vhd en exécutant la commande suivante dans la console Tcl :

set_property is_enabled false [get_files StopWatch.vhd]

Dans le fichier StopWatch_WithProcess.vhd, votre travail consiste à remplacer certaines instructions d’affectation concurrentes par des processus. Le tableau ci-dessous donne des indications sur les instructions à utiliser. Vous devez créer un processus différent pour chacun des signaux.

Signal à affecter Nom du processus Instructions
digit p_digit case
disp_select_n_o p_disp_select_n_o for, if

L'architecture pour l'entité StopWatch

Afficher la légende des schémas.

Simulation et synthèse

Reprenez les consignes de l’activité précédente pour effectuer la simulation et la synthèse du circuit.

Vérifiez que la nouvelle description produit exactement le même comportement que la version avec instructions d’affectations concurrentes.

Gestion des LED

Remplacez l’instruction d’affectation du signal leds_o de manière à n’affecter que les bits 9 et 10 :

leds_o(10 downto 9) <= "00";

Dans deux nouveaux processus, proposez une solution pour gérez l’allumage des autres LED de manière à afficher la valeur des signaux digit_1sec et digit_10sec sous forme de bargraphs.

Signal à affecter Nom du processus Instructions
leds_o(15 downto 11) p_leds_o_10sec case
leds_o(8 downto 0) p_leds_o_1sec for, if

Le comportement souhaité est illustré par les deux tableaux ci-dessous :

digit_10sec leds_o(15 downto 11)
0 "00000"
1 "00001"
2 "00011"
3 "00111"
4 "01111"
5 "11111"
digit_1sec leds_o(8 downto 0)
0 "000000000"
1 "000000001"
2 "000000011"
3 "000000111"
8 "011111111"
9 "111111111"

Après avoir modifié le fichier StopWatch_WithProcess.vhd, relancez la simulation, puis la synthèse du circuit. Vérifiez son fonctionnement sur la carte Basys3.