TP n°5 - Circuits séquentiels

1ère année maturité
Les TP se font au travers du site web mais les questions sont à répondre sur papier.
Tout le contenu vu durant les TP fait partie entière de la matière à connaître lors d'évaluation.
Vous avez la possibilité de rendre votre TP à la fin des deux périodes pour obtenir une rétroaction sur votre travail.
Objectifs
  1. Différencier le principe de circuit combinatoire et séquentiel.
  2. Comprendre le concept de latence des signaux.
  3. Comprendre le rôle du signal l'horloge.
  4. Connaître le rôle et le fonctionnement d'une bascule D.

Circuit combinatoire

Jusqu'à maintenant, nous avons vu et trvailler sur des circuits combinatoires: les sorties des circuits ne dépendent que de l'état des entrées.

Par exemple, le simple additionneur binaire que vous avez construit au dernier TP, comme ci-dessous. Il faut changer les entrées pour obtenir instantanément le résultat:

Circuit séquentiel

Mais on ne peut pas construire, par exemple, un compteur 2-bits, qui compterait en boucle de 0 à 3. En effet, pour cela on a besoin de savoir qu'elle était la valeur précédente. On a besoin que le circuit connaisse l'état précécent, on doit donc lui ajouter de la mémoire.

De plus, dans cet exemple, on aimerait certainement que ce compteur augmente à intervalle régulier comme par exemple chaque seconde. On doit donc également avoir une notion de temps ou ce qu'on appelle une fréquence d'horologe.

Donc un circuit séquentiel prend en compte un état précédent, la notion de mémoire et un comportement temporel.

Bascule D

Un composant logique a été inventé qui permet de construire et de comprendre le concept de mémoire : la bascule D. Ce composant nous fait comprendre comment on peut stocker un bit et ainsi le réutiliser.

Une bascule D comporte :

  • Une entrée D : cela représente le bit que l'on veut stocker
  • Une sortie Q : donne la valeur stockée dans la mémoire
  • Une sortie Q : donne la valeur inverse stockée dans la mémoire
  • Une entrée Clock
  • Une entrée Clr : pour remettre à 0 la valuer de la mémoire
  • Une entrée Pre : pour mettre à 1 la valuer de la mémoire

Le principe de la bascule est de modifier sa valeur à un moment précis, soit au flanc montant de l'horloge.

Exercice 1
  1. Déterminez à l'aide de la bascule D ci-dessous, comment modifier la valeur de la mémoire et que veut dire le terme flanc montant.
  2. Avec un clic-droit, modifiez le paramètre de la bascule pour "stokcer au flanc descendant". Quelle est la différence ?

On vient donc de voir avec cet exemple très simple la notion de mémoire.. On va maintenant ajouter la dimension temporelle.

On sait qu'un ordinateur, pour fonctionner, possède un processeur qui est décrit notamment par une fréquence eh hertz (Hz). Cette fréquence indique le nombre de cycles d'horloge par seconde qu'il va effectuer. Voyons ce que cela représente.

L’horloge est un circuit qui génère un signal électrique périodique (généralement carré). Comme une montre à quartz, il s'appuie souvent sur un oscillateur pour créer une fréquence stable.
Si un flanc montant apparaît toutes les 2 secondes, cela correspond à une fréquence de 0,5 Hz. Plus la fréquence sera élevée plus les intervalles vont être rapprochées. Essayez de changer la fréquence de l'horloge.

Chronogramme d'une horloge
Exercice 2
  1. Faites passer la mémoire à 1, puis testez le bouton pressoir "RESET". Que se passe-t-il ?
  2. Supprimez l'entrée D puis, sans ajouter quoi que ce soit, faites alterner la valeur de la bascule D chaque seconde, puis chaque demi seconde.

Vous venez de créer le plus petit circuit séquentiel utilisant son état précédant, une mémoire et la temporalité !

Compteur

Un compteur est un composant qui incrémente (ajoute 1) ce qu'il a en mémoire à chaque coup d'horloge. A droite, nous avons un compteur 2-bits, qui va donc compter de 0 à 3 et recommencer.

Exercice 3
  1. A l'aide de 2 bascules D et un additionneur, créez un compteur 2-bits, avec une possibilité de le remettre à 0 quand on le souhaite.
  2. Etendre ce compteur à 4-bits
  3. Modifiez le circuit pour qu'il ne compte que jusqu'à 11, puis recommence. On doit toujours pouvoir le "reset" quand on veut. Le résultat ne vous semblera sûrement pas parfait, pourquoi ?

On définit le délai de propagation comme le temps nécessaire au signal pour traverser un composant. Par exemple, sur une porte AND, lorsqu'une entrée change, il faut un certain temps au signal pour arrivée sur la sortie. Donc plus le composant est complexe, plus le déla de propagation pourra être élevé.

Tu peux modifier le temps de propagation du système dans le menu "Admin" du simulateur. Si le temps de propagation dans les fils est plus élevé que l'horloge, alors on a un système qui ne fonctionne plus du tout de la même manière.

Dans les systèmes actuels, le délai de propagation sur une porte est d'environ 2 nanosecondes.

Vous allez construire un circuit logique séquentiel pour un feu routier. Ce feu doit répondre aux critères suivants :

  • Le rouge et le vert durent 10 secondes
  • Le orange (jaune ici...) s'active 2 secondes avant la fin du vert.
  • On doit pouvoir revenir au rouge à tout moment.
Exercice 4

Pour le moment, tous les feux clignotent à la même fréquence. Vous ne devrez utiliser qu'une seule horloge à 1Hz.
Voici un début de marche à suivre:

  1. A chaque flanc montant d'horloge, le feu rouge change.
  2. Le feu vert est toujours à l'inverse du rouge.
  3. Modifiez le circuit pour que le changement s'opère que toutes les 10 secondes.
  4. A vous de jouer pour la suite...

La solution idéale n'utilisent que 5 composants (entrées, sorties, horloge ne sont pas des composants).

Rappel et explications

En début de thème, nous avons vu qu'un ordinateur a besoin de mémoires, notamment pour stocker de l'information comme par exemple nos photos. On appelle cela de la mémoire de masse, comme les disques durs ou les clefs USB.

Registre

A l'exercice 3, vous avez utilisez 4 bascules D pour stocker un nombre binaire et pouvoir le réutiliser. Ces 4 bascules sont synchronisées grâce à l'horloge, ce qui veut dire que leur contenu va changer au même moment. Vous avez en réalité créé avec ce dispositif une mémoire de 4 bits, qu'on appelle registre. En comparaison, nos téléphones possèdes des registres sur 4 octets, et en suffisance pour atteindre 64Go voire plus!

Registre 4 bits

Dans le prochain exercice, un additionneur direct à été construit, tout comme vous l'avez fait au précédent TP. Il possède un inconvénient : on voit le résultat instantanément lorsqu'on modifie les nombres binaires. Par exemple, si on veut effectuer 2 + 3, on va voir sur l'afficheur toutes les étapes pour arriver à saisir 2 et 3 sur les nombres A et B.

Idéalement, comme sur une calculatrice, on aimerait que le résultat s'affiche après avoir presser la touche =, et que ce résultat reste affiché.

Exercice 5
  1. Dans la partie "Additionneur simple", construisez un circuit, à partir de la sortie de l'additionneur déjà présent, pour afficher le résultat de l'addition uniquement lorsqu'on presse sur la touche =.
    • Vous devriez voir le résultat s'afficher mais disparaitre dès qu'on relâche la touche. Pourquoi ?
  2. Dans la partie "Calculatrice simple", étendez le circuit en faire un séquentiel qui permettra, en plus d'afficher le résultat après avoir pressé la touche =, de conserver la réponse sur l'afficheur une fois cette touche relâchée.
    Vous aurez besoin pour cela du composant "mux", appelé multiplexeur qui permet de choisir entre deux entrées selon un signal de sélection, et aussi d'un registre.
En résumé

Pour terminer ce TP, résumez ce que vous avez appris, de la manière que vous préférez (description, carte mentale, schéma, ...).
Pour vous aider, répondez à ces questions.

  1. Qu'est-ce qu'un circuit séquentiel ?
  2. Que représente la fréquence d'horloge ?
  3. Comment peut-on créer une mémoire binaire ?
  4. Pourquoi une bascule D est un composant essentiel dans la construction des ordinateurs ?
Damien Cardinaux © 2024 - 2025. Ce site est sous licence CC BY-NC-SA 4.0