TP : Implémentation sur FPGA d’une FSM
Gestion d’un carrefour
Au croisement de 2 routes, on place des feux tricolores :
R1 feu rouge de l’axe 1
O1 feu orange de l’axe 1
V1 feu vert de l’axe 1
R2 , O2, V2 idem pour l’axe 2
HYPOTHESES de fonctionnement :
On utilise une horloge de 1 seconde. V1 dure 8 s, V2 dure 5s, et les feux orange 1s.
On décrit donc le fonctionnement global comme suit :
L’axe 1 vient de passer au vert (V1=1, R1 et O1=0 ; V2 et O2=0, R2=1). 8 s plus tard il passe à
l’orange (O1=1, R2=1). On laisse par sécurité les 2 feux au rouge pendant une seconde (R1 et
R2=1). 10 secondes se sont écoulées lorsqu’on ouvre le passage à l’axe 2 (V2 et R1=1). Le cycle
complet dure donc 17s.
L’initialisation doit placer le système en état de sécurité, soit R1 et R2=1 pendant une seconde.
On libère ensuite l’axe 1.
1. Ecrire le code VHDL de cette application ?
2. On rajoute une entrée AP1 (appel piéton) uniquement sur la voie 1. De façon à ne pas trop
interrompre le trafic, l’appel n’est pris en compte qu’à partir de l’état V15. L’appui sur l’entrée
AP1 permet d’allumer le feux orange O1.
a. Modifier la machine à état pour mettre en évidence l’appel piéton (AP1)
b. Ecrire le code VHDL correspondant