====== Architecture séquentielle, séquencement ====
À un croisement en T, une petite rue peu fréquentée //PR// rencontre la voie principale //VP//. On veut donner le feu vert à PR chaque fois que nécessaire mais pour éviter de bloquer VP, on place une temporisation T (peu importe la longueur de T).
- Quand une voiture arrive au feu sur PR, elle obtient le feu vert, à condition que T soit inactive.
- La temporisation T est déclenchée (elle commence à décompter le temps)
- Quand T se termine, le feu de PR repasse au rouge.
- On déclenche de nouveau T pour empêcher PR d'obtenir le feu vert aussitôt.
Ce fonctionnement peut être représenté par un graphe :
{{ .:archiseq-exo-3.png?direct |}}
Le numéro dans les bulles représente un état (une étape du cycle). 2 bits suffisent à numéroter les 4 états. Le numéro d'état est stocké dans une mémoire et comme on peut écrire un nouveau numéro dans la mémoire, on peut changer d'état.
L'état change à chaque top d'horloge (CLK) et donc si on veut rester dans le même état, il faut écrire l'état en cours (on réécrit le même pour qu'il ne change pas)
**Votre travail :** Considérez le circuit logique ayant **en entrée** V (voiture sur PR), T (tempo active) et l'état présent (sortie de la mémoire, 2 bits) et **en sortie** feu rouge, feu vert, état suivant (2 bits), déclencher tempo.
Décompressez et ouvrez le fichier dans logisim et réalisez le circuit logique. Testez.
{{ .:sequencement.zip |}}
{{ .:sequencement.png?direct&400 |}}