Université Sidi Mohammed Ben Abdellah A.
U : 2018/2019
Faculté des Sciences Dhar Mehraz de FES TD du VHDL
SERIE N°2 TD VHDL
Problème 1 : Montre numérique
1) Ecrire le code VHDL pour implémenter une montre numérique, ayant comme entrée :
• signal d’horloge CLK ;
• RST pour remise à zéro ;
2) Implémenter la montre numérique sur FPGA, en utilisant de 2 afficheurs 7 segments pour
les secondes, 2 pour les minutes et deux pour les heures.
Problème 2 :
Cahier de charge
- on désire réaliser le système électronique qui permet de déterminer quel est le joueur le plus
rapide pour répondre à une question dans le jeu télévisé. Dès qu'un joueur pense avoir la bonne
réponse, il appuie sur le bouton poussoir placé devant lui. A ce moment-là, un signal sonore retentit
(buzzer) et un voyant lumineux s'allume au milieu de la place de chaque joueur. Plus personne ne
peut appuyer et le système est bloqué tant que l'animateur n'a pas validé ou non sa réponse par
l'action sur un bouton poussoir RST. Par exemple sur le dessin ci-dessous, c'est le joueur A qui a
été le plus rapide.
On se propose de réaliser une fonction dont le schéma fonctionnel est le suivant :
I1 LE_A
I2 LE_B
Fonction_top
I3 LE_C
RST BUZ
1) Traduire le cahier de charge en diagramme d’état ?
2) Ecrire en VHDL le code de cette machine à état ?
3) Implémenter sur la carte FPGA le code VHDL réalisé, les entrées sont assignées vers les
boutons poussoirs et les sorties sont assignées vers les LEDs.
R. EL ALAMI 1
Université Sidi Mohammed Ben Abdellah A. U : 2018/2019
Faculté des Sciences Dhar Mehraz de FES TD du VHDL
Problème 3 : Feu tricolore
Cahier de charge
- Un chemin de compagne coupe une route à grande circulation. Les flots de véhicules qui
franchissent le carrefour sont contrôlés par un feu tricolore :
Rouge 1
Orange 1 Route principale
Detect_sig Vert 1
Feux
tricolores Rouge 2
Orange 2 Route secondaire
Vert 2
- Par défaut le feu est vert pour la grande route, et au rouge pour la petite route (état par défaut).
- Quand arrive un véhicule sur la petite route, un détecteur (signal Detect_sig) de passage
provoque le changement des feux à l’état_1 (le feu est à l’orange pour la grande route, et au
rouge pour la petite route pour une durée de 5 secondes). Puis les feux passent à l’état_2 (le
feu est au rouge pour la grande route, et au rouge pour la petite route pour une durée de 5
secondes). Ensuite les feux passent à l’état_3 (le feu est au rouge pour la grande route, et au
vert pour la petite route pour une durée de 15 secondes) et finalement les feux reviennent à la
situation par défaut en passant par la séquence de sécurité qui prend 10 secondes :
• 5 secondes de feux orange d'un côté et rouge de l'autre.
• 5 secondes de feux rouges des deux côtés.
- Si plusieurs véhicules se suivent sur la petite route, il ne faut pas bloquer la grande route. Le
retour à la situation par défaut au bout des 15 secondes est donc inconditionnel, indépendant
de l'état du détecteur de passage. De plus, la situation par défaut doit durer au moins 30
secondes.
- Les sorties non mentionnées dans un état sont inactives, les feux correspondants sont éteints.
1) Traduire le cahier de charge en diagramme d’état ? (A côté de chaque transition doit figurer
une condition de transition d'un état à l'autre).
2) Ecrire en VHDL le code de cette machine à état ?
3) Implémenter sur la carte FPGA le code VHDL réalisé, les sorties sont assignées vers les
LEDs.
R. EL ALAMI 2