Electronique Numérique Séquentielle

Electronique Numérique Séquentielle


Dans un circuit Combinatoire, les sorties dépendent directement des entrées.
Dans un circuit Séquentiel, les sorties dépendent des entrées, ainsi que d’un état.
Autrement dit, la notion de mémorisation apparait avec la logique séquentielle.


La Bascule RS

Table de Vérité

On désigne par Q+ le nouvel état, et par Q l’état précédent.

rs_table_verité.svg

  • La mise à 1 de S ( Set ) force la sortie à 1.
  • La mise à 1 de R ( Reset ) force la sortie à 0.
  • Si R et S sont à 0, on conserve en sortie la valeur précédente ( mémorisation )
  • La mise à 1 simultanée de R et S n’est pas possible.

Equation Logique

Q+=S+Rˉ.Q Q^{+}=S+\bar{R}.Q

Réalisation

En logique séquentielle, il faut nécessairement considérer un état initial du fait de cette notion de mémorisation.
La mémorisation résulte du rebouclage de la sortie sur les entrées des portes logiques.

rs_realisation.svg


La Bascule D Latch ( Verrou )

On ajoute une entrée de chargement L, qui authorise l’enregistrement de l’entrée D.

d_latch.svg


Logique Synchrone

Associons 2 Bascules D latch dans une configuration maître esclave afin de créer une bascule D synchrone :

logique_synchrone.svg

On peut remarquer que l’enregistrement de la valeur présente sur l’entrée D ne se fait qu’à un instant précis qui est le front montant de l’horloge Clk. En dehors des front montant, l’état est conservé.

Les composants synchrones sont des composants dont les valeurs évoluent uniquement sur les fronts montants d’une horloge.

Dans un système complexe mettant en parallèle plusieurs composants, cela permet de mettre tout le monde d’accord.

Bascule D

La bascule D est le composant élémentaire de la logique séquentielle synchrone.

Equation Logique
Qn+1=Dn Q_{n+1}=D_{n} sur un front montant de clk ( en dehors des fronts montant l’état de la sortie est conservé ).
La sortie de la bascule juste après le front montant est égale à l’entrée juste avant le front

bascule_D.svg

REMARQUE :

La valeur présente en sortie de la bascule est présente en entrée un coup d’horloge avant.
On peut parler d’état actuel pour Q, et d’état suivant/futur pour D.


Les Registres

On ajoute un multiplexeur à la bascule D synchrone :

  • load=0 –> D reçoit Q à chaque front montant ; on conserve l’état de la bascule.
  • load=1 –> D reçoit E ; cette valeur est enregistrée sur un front montant de clk.

bascule_d_load.svg

registre_construction.svg

En associant en parallèle plusieurs bascules D, on crée un registre N bits.
On a donc un composant pouvant mémoriser une donnée sur ordre ( load = 1 ), et de faire en sorte que cet enregistrement se fasse sur un instant précis ( front montant de clk ).

registre.svg

chronogramme_registre.svg


Les Compteurs

Cahier des Charges

On souhaite réaliser un composant dont les sorties Q3 Q2 Q1 Q0 évoluent comme dans le tableau ci dessous, soit un comptage 0,1,2,3,..,14,15,0,1,2,…
Pour cela on dispose de 4 bascules D.
Pour une bascule D, Q est l’état présent, D l’état futur ; l’utilisation des bascules D impose que la valeur présente sur D soit celle de Q un coup d’horloge avant.
On en déduit donc les valeurs Di dans le tableau ci dessous.
La table de vérité permet d’en déduire les équations logiques.

tableau_compteur_d.svg

D0=Q0ˉ=Q01 D0 = \bar{Q0} =Q0 \oplus 1
D1=Q1Q0 D1 = Q1 \oplus Q0
D2=Q2Q1.Q0 D2 = Q2 \oplus Q1.Q0
D3=Q3Q2.Q1.Q0 D3 = Q3 \oplus Q2.Q1.Q0

Réalisation

A partir des équations logiques, on en déduit le circuit numérique :

realisation_compteur.svg


Les Machines d’états

Exemple de Système contrôlé par une Machine d’Etats ( ou Séquenceur )

On considère un composant synchrone devant contrôler le sens de rotation d’un moteur pour déplacer un chariot.
Quand le chariot arrive en butée ( appui sur un capteur A ou B ), le sens de rotation doit changer.
Il ne suffit pas d’appuyer sur A ou B pour changer de sens, il faut également considérer dans quel sens on se déplace :

  • Si je vais à Gauche et que je tape dans dans A, il faut changer de sens
  • Si je vais à Gauche et que quelqu’un appuit sur B, il faut continuer à aller à gauche.

me_chariot.svg

dessin_chariot.svg

Ce mode de fontionnement peut être décrit par un Diagramme d’Etats :

chariot_diag.svg

Le Rond représente un Etat ; pour un état donné, on définit les sorties de la machine d’état.
Les flèches sont des transitions sur lesquelles ont fait apparaitre les conditions sur les entrées pour changer d’état.
Ainsi le changement d’état ( détermination de l’état futur ) nécessite de connaitre :

  • L’état actuel
  • Les valeurs sur les entrées

Machine de Moore / Mealy

Afin de réaliser cette machine d’états, on considère la marchine de Moore ci dessous.
On remaque que les sorties dépendent directement des entrées.
La détermination de l’état suivant nécessite de connaitre l’état actuel et la valeur des entrées.
Comme nous sommes dans un contexte synchrone ( horloge ), le lien entre état actuel et état futur est fait par une bascule D ou un registre.

Dans certains cas où il faut réagir vite, il peut être nécessaire que les sorties évoluent directement sur un changement des entrées, sans attendre une période d’horloge ; d’où la variante ‘machine de Mealy’.

moore_mealy.svg

Réalisation de la machine d’états

Table de vérité et Equation Logiques

A partir du diagramme d’états, on en déduit la table de vérité.

  • Les sorties G et Dr dépendent directement de l’état courant Q.
  • L’état suivant ( D ) est définit en regardant l’état courant et la valeur des entrées ( si je suis dans l’état 0 et que A vaut 0, je reste dans l’état 0, en revanche si A passe à 1 l’état suivant sera forcément 1 ).

tableau_me.svg

D=A.Qˉ+B.Q D=A.\bar{Q} + B.Q
G=Qˉ G=\bar{Q}
Dr=Q Dr=Q


Circuit Numérique

realisation_me.svg