ChapII bascules et automates.rtf

40
- II.1 - CHAPITRE II : CIRCUITS SEQUENTIELS ET SYNTHESE D'AUTOMATES INTRODUCTION Un circuit séquentiel est un circuit dont la sortie dépend de la séquence d'entrées appliquées depuis la mise en route du circuit : ce circuit mémorise une information. La valeur de l'information mémorisée forme l' état du circuit ; le support de cette information est les variables d'états . Ces variables étant binaires, un circuit séquentiel à n variables d'état peut prendre 2 n états. Nous n'étudierons ici que les circuits séquentiels synchrones : les changements de valeur de chacune des variables d'état sont synchronisés par un signal ; quand ce signal n'est pas actif, l'état ne peut pas être modifié. Après avoir présenté l'élément de base des circuits séquentiels : les bascules, et leur utilisation pour réaliser des registres (§1), le modèle d'automate synchrone sera présenté (§2), ainsi que les méthodes de synthèse d'automates (§3). 1. CIRCUITS SEQUENTIELS DE BASE : BASCULES ET REGISTRES 1.1. DEFINITION Une bascule est un circuit séquentiel élémentaire, capable de mémoriser une variable d'état et

Transcript of ChapII bascules et automates.rtf

Page 1: ChapII bascules et automates.rtf

- II.1 -

CHAPITRE II :

CIRCUITS SEQUENTIELS ET SYNTHESE D'AUTOMATES

INTRODUCTION

Un circuit séquentiel est un circuit dont la sortie dépend de la séquence d'entrées appliquéesdepuis la mise en route du circuit : ce circuit mémorise une information. La valeur del'information mémorisée forme l'état du circuit ; le support de cette information est lesvariables d'états. Ces variables étant binaires, un circuit séquentiel à n variables d'état peutprendre 2n états.

Nous n'étudierons ici que les circuits séquentiels synchrones : les changements de valeur dechacune des variables d'état sont synchronisés par un signal ; quand ce signal n'est pas actif,l'état ne peut pas être modifié.

Après avoir présenté l'élément de base des circuits séquentiels : les bascules, et leur utilisationpour réaliser des registres (§1), le modèle d'automate synchrone sera présenté (§2), ainsi queles méthodes de synthèse d'automates (§3).

1. CIRCUITS SEQUENTIELS DE BASE : BASCULES ET REGISTRES

1.1. DEFINITION

Une bascule est un circuit séquentiel élémentaire, capable de mémoriser une variable d'état et

Page 2: ChapII bascules et automates.rtf

- II.2 -

donc qui peut prendre 2 états (état 0 et état 1). Il existe différents types de bascules, quipeuvent être classés par :

- leurs entrées de valeur,- l'interprétation de leur(s) entrée(s) d'activation,- les entrées d'initialisation dont elles disposent.

1.2. BASCULE D

Une bascule D (pour Delay) synchrone est un circuit à 2 états, qui a une entrée de valeur D,une entrée d'activation Act, et 2 sorties y (état de la bascule) et .

La figure II-1 définit les entrées et sorties d'une bascule D, ainsi que son tableau defonctionnement.

D

Act

y

y

a) schéma symbolique d'une bascule D

y t : valeur courante de l'état y t+? t : valeur suivante de l'état

Act D yt+? t non * y t oui 0 0 oui 1 1

b) fonctionnement

Figure II-1 : bascule D

Tant qu'il n'y a pas activation de la bascule (Act : non), la bascule garde son état antérieur,quelle que soit la valeur de l'entrée D. Quand la bascule est activée (Act : oui), l'état de labascule prend la valeur de l'entrée D : une bascule D permet de mémoriser une valeur entredeux activations.

La bascule D est la plus utilisée, en particulier pour réaliser des registres, mais il existe d'autresbascules avec des entrées de valeurs différentes.

1.3. BASCULES JK, RS, ...

Les bascules JK, RS et T sont définies ci-dessous (figures II-2 à II-4).

Page 3: ChapII bascules et automates.rtf

- II.3 -

Act

y

y

a) schéma symbolique d'une bascule RS

Act R S y t+? t non * * y t oui 0 0 y t oui 0 1 1 oui 1 0 0 oui 1 1 ???

b) fonctionnement

R S

Figure II – 2 : bascule RS

Act

y

y

a) schéma symbolique d'une bascule JK

Act J K y t+?t non * * y t oui 0 0 y t oui 0 1 0 oui 1 0 1 oui 1 1 y t

b) fonctionnement

J K

Figure II-3 : bascule JK

T

Act

y

y

a) schéma symbolique d'une bascule T

Act T y t+?t non * y t oui 0 yt oui 1 yt

b) fonctionnement

Figure II-4 : bascule T

Une bascule D peut être réalisée à partir d'une bascule RS (avec S = D et R complémentaire)ou d'une bascule JK (avec J = D et K complémentaire). Une bascule T peut être réalisée àpartir d'une bascule JK (avec J et K = T).

1.4. FONCTIONS D'ACTIVATIONS DES BASCULES

On distingue trois types de bascules d'après la fonction d'activation (l'interprétation de l'entréeAct).

Page 4: ChapII bascules et automates.rtf

- II.4 -

1.4.A. BASCULES DE TYPE VERROU (LATCH)

Il s'agit de bascules sensibles à la valeur de l'entrée Act :

- verrou sensible au niveau haut : la bascule est activée dès que (et tant que) Act = 1,- verrou sensible au niveau bas : la bascule est activée dès que (et tant que) Act = 0,ce qui veut dire que quand la bascule est activée, son état est égal à la valeur de l'entrée D : unverrou est "transparent" quand il est activé.

Le fonctionnement temporel d'un verrou D sensible au niveau haut est indiqué à l'aide d'unchronogramme donné dans la figure II-5 : la figure II-5 a) illustre le fonctionnement de typeverrou, tandis que la figure II-5 b) met en évidence les retards associés au fonctionnement (enfait, c'est plus complexe : les retards sont différents suivant que l'état passe de 0 à 1 ou de 1 à0 ; de plus, les retards sont différents pour la sortie y et la sortie .

Act

D

y ?

a) verrou sensible au niveau haut

?? ??? t2? t1

Act

D

y

b) retards de positionnement de y par rapport à Act ( ? t1) et D (? t2)

Figure II-5 : fonctionnement temporel d'un verrou D

Si l'entrée D change "au moment où" l'entrée d'activation Act passe de 1 à 0 (pour un verrousensible au niveau haut), l'état de la bascule après la fin de l'activation est indéterminé : on nesait pas si la nouvelle valeur de l'entrée a été mémorisée ou non. Des intervalles de temps t1(temps de positionnement, tset-up) et t2 (temps de maintien, thold) définissent l'intervalle de

temps où D doit être stable autour du passge de Act de 1 à 0.

1.4.B. BASCULES SENSIBLES AU FRONT (EDGE-TRIGGERED FLIP-FLOPS)

Il s'agit de bascules sensibles aux changements de valeurs de l'entrée d'activation Act :

- bascule sensible au front montant : la bascule est activée quand Act passe de 0 à 1,- bascule sensible au front descendant : la bascule est activée quand Act passe de 1 à 0,ce qui veut dire qu'une telle bascule ne peut changer d'état qu'à des instants bien précis : la(les) entrée(s) de valeur sont échantillonnées aux fronts de l'entrée d'activation.

Page 5: ChapII bascules et automates.rtf

- II.5 -

Act

D

y ???? t

Act

D

y

a) bascule sensible au front montant

? ?t1 t2

b) l'entrée D doit être stable autour du front montant de Act

Figure II-6 : fonctionnement temporel d'une bascule D sensible au front

La figure II-6 illustre le fonctionnement temporel d'une bascule D sensible au front montant : ilfaut que D soit stable t1 avant le front de Act (temps de positionnement, set-up time) et t2après le front (temps de maintien, hold-time). La sortie varie ∆ t après le front de l'horloge. Anoter : ce retard est différent suivant le sens de variation ; passage de 0 à 1 : tpLH, passage de1 à 0 : tpHL.

Au lieu d'utiliser la notation "état à t+∆t", on peut se contenter de définir le fonctionnementd'une bascule sensible au front en termes de l'état à t + 1 en fonction de l'état et des entrées àt, car les fronts d'activation des bascules permettent une discrétisation du temps.

1.4.C. UTILISATION DES DIFFERENTS TYPES DE BASCULES

Supposons qu'on veuille concevoir un circuit à 2 états, qui complémente son état à chaqueactivation (séquence d'états 0101010.....). Il semble logique d'utiliser le montage de la figureII-7 :

Page 6: ChapII bascules et automates.rtf

- II.6 -

D y

Act

a) montage proposé

Act

D

y

? ? ? ? ?

? ? ? ? ?

b) utilisation d'un verrou

Act

D

y

???t ?

c) utilisation d'une bascule sensible au front

Figure II-7 : utilisation des bascules

Si la bascule utilisée dans le montage de la figure II-7 a) est de type verrou, le fonctionnementn'est pas correct (Fig.II-7 b)) : dès que la bascule est activée, l'état y est complémenté ;l'entrée D est complémentée en conséquence. Comme le verrou est toujours activé, son étatse complémente ..... On obtient bien en sortie la séquence 010101..., mais les changementsde valeurs ne sont pas synchronisés par l'entrée d'activation, et quand Act passe à 0, l'état dela bascule est indéterminé.

Note : un verrou D toujours activé, rebouclé suivant le schéma de la figure II-7-a avec unechaîne de 1 ou 2p +1 inverseurs permet de générer un signal d'horloge dont la périodedépend du nombre et du retard des inverseurs utilisés. Mais il ne s'agit pas s d'un circuitséquentiel synchrone : le changement d'état n'est pas synchronisé par un signal (Act toujoursvrai).

Quand on utilise une bascule sensible au front, le fonctionnement est correct (Fig. II-7 c)), àcondition que l'entrée reste stable autour du front de Act, c'est-à-dire que :

∆ t + τ > t2,

où ∆ t est le temps de positionnement de y après le front d'activation, τ est le retard del'inverseur et t2 est le temps de stabilité nécessaire de D après le front (hold time).

Pour que le fonctionnement soit correct, on obtient la condition suivante:

Page 7: ChapII bascules et automates.rtf

- II.7 -

Min ( tpLH, tpHL.) + τ > thold.

En général, les bascules sont conçues de façon à ce que Min ( tpLH, tpHL.) > thold, donc cette

relation est toujours vérifiée.

De même, l'entrée d'activation Act doit respecter la contrainte suivante :

T > ∆ t + τ + t1 , où T est le temps entre 2 fronts de Act et t1 le temps minimal destabilité de D avant le front d'activation (set-up time)

ce qui fixe une fréquence maximale pour Act. Par exemple, si τ = 0 (cas des registres àdécalage, voir plus loin), on obtient :

T > tsetup + Max( tpLH, tpHL.)

Pour les circuits TTL utilisés en travaux pratiques (les temps caractéristiques se comptent ennano-secondes), on obtient des fréquences maximales entre 16MHz (7474) et 75 MHz(74AS74). Pour les technologies actuelles, où les temps se comptent en pico-secondes, onobtient des fréquences maximales de l'ordre du GHz.

1.4.D. BASCULES DE TYPE MAITRE-ESCLAVE (MASTER-SLAVE FLIP-FLOPS)

Pour réaliser le type de montage de la figure II-7, on peut aussi utiliser 2 bascules de typeverrou au lieu d'une bascule sensible au front : on connecte ces 2 verrous en série, en lesactivant alternativement. On obtient une bascule de type maître-esclave (Figure II-8).

E1

E2

D

y M

y

DM y M

E1

Act

DDE y E

E2

Act

y

a) bascule maître - esclave b) fonctionnement temporel

Figure II-8 : bascule maître-esclave

Quand E1 vaut 1, la valeur de l'entrée D (connectée à DM) est recopiée dans le premier

verrou ; quand E1 passe à 0, la dernière valeur de D est mémorisée. Dès que E2 passe à 1,cette valeur est recopiée dans le deuxième verrou et affichée sur la sortie y, où elle sera stablejusqu'à la prochaine activation. Le premier verrou est appelé verrou maître, et le deuxième,verrou esclave.

Page 8: ChapII bascules et automates.rtf

- II.8 -

Quand E2 = , cette bascule se comporte comme une bascule sensible au front descendant deE1. La bascule ne se comporte correctement que si on a toujours E1 . E2 = 0 (non-recouvrement des activations).

Attention, les bascules JK ou RS maître-esclave ne fonctionnent pas comme des bascules JKou RS sensibles au front : toutes les variations des entrées J,K ou R,S durant le niveaud'activation de l'étage maître sont prises en compte, et le résultat est recopié dans l'étageesclave quand il est activé. En général, il faut assurer que les entrées de l'étage maître sontstables durant toute l'activation de cet étage.

1.4.E. BASCULES AVEC PLUSIEURS ENTREES D'ACTIVATION

Certaines bascules (en particulier les bascules sensibles au front) ont plusieurs entréesd'activation :

- une entrée d'horloge, notée H ou CK (clock), qui fournit le front d'activation,- une entrée d'autorisation, notée En (enable), qui autorise l'activation.Le tableau ci-dessous précise la prise en compte de ces entrées pour l'activation d'unebascule sensible au front montant :

En CK Activation

0 * non

1 $,0,1 non

1 # oui

Pour une bascule qui ne doit pas évoluer à chaque période d'horloge, cela permet deconnecter directement l'entrée d'horloge de la bascule à l'horloge du système, et donc d'avoirun signal pas trop dégradé et sans aléas, et d'utiliser l'entrée En pour autoriser ou nonl'évolution (la fonction d'autorisation peut être une fonction booléenne complexe).

Pour une bascule qui doit évoluer à chaque période d'horloge, l'entrée En est inutile : il suffitde connecter l'horloge du système sur l'unique entrée d'activation de la bascule ... cette entréed'ailleurs est souvent appelée entrée d'horloge H ou CK dans les documentations.

1.5. ENTREES D'INITIALISATION DES BASCULES

Outre les entrées de données et d'activation, les bascules ont des entrées d'initialisation à 0 et /ou à 1 : ces entrées sont prises en compte indépendamment de l'entrée d'activation, et serventà imposer une valeur initiale dans les bascules à la mise sous tension du circuit (Fig.II-9)

Page 9: ChapII bascules et automates.rtf

- II.9 -

D

C Py

y

Act

C P Act D y 1 0 * * 0 0 1 * * 1 1 1 * * ? 0 0 non * y 0 0 oui 0 0 0 0 oui 1 1

t+1

t

Figure II-9 : entrées d'initialisation

L'entrée C (Clear) force un état à 0, l'entrée P (Preset) force un état à 1.

Ces entrées permettent une initialisation asynchrone de l'état. On peut aussi assurer uneinitialisation synchrone (pour initialiser à 0, D = init - à - 0 . état suivant , pour initialiser à 1,D = init-à-1 . état suivant).

1.6. BASCULES EN TECHNOLOGIE MOS

1.6.A. BASCULES DYNAMIQUES

Nous avons vu au chapitre I (§3.1.) que des capacités réalisent, en technologie MOS, unemémorisation rudimentaire : ce mécanisme peut être utilisé pour réaliser un verrou (Fig. II-10)

D

Act

y

Figure II-10 : point de mémorisation dynamique en technologie nMOS

Quand Act est à 1, la capacité associée à la grille du transistor de l'inverseur se charge si Dest à 1, se décharge si D est à 0 ; quand Act passe à 0, l'entrée de l'inverseur n'est pasconnectée et donc la dernière valeur de D est mémorisée (fonctionnement de type verrou).Cependant, la capacité va se décharger lentement, et une valeur mémorisée à 1 va disparaîtreau bout d'un certain temps : ce verrou n'est utilisable que quand il est activé régulièrement. Onparle d'un point de mémorisation dynamique.

A l'aide de deux verroux de ce type, activé l'un par Act, l'autre par son complémentaire, il estpossible de réaliser une bascule maître-esclave, qui elle aussi est dynamique.

Page 10: ChapII bascules et automates.rtf

- II.10 -

1.6.B. BASCULES STATIQUES

Pour obtenir un verrou capable de mémoriser indéfiniment une information (tant que le circuitst alimenté), la valeur de l'état est rebouclée en entrée quand Act= 0 (Fig. II-11).

y1 0

D

Act

y

Figure II-11 : verrou statique

Un multiplexeur sélectionne soit l'entrée D, soit l'état courant yt, d'après la valeur de Act (ce

multiplexeur est en général réalisé par un réseau de transistors MOS (cf Fig.I-19)).

En utilisant 2 verrous à activations complémentaires, on peut réaliser une bascule maître-esclave statique.

Page 11: ChapII bascules et automates.rtf

- II.11 -

3. REGISTRES ET MÉMOIRES

3.1. REGISTRE N BITS

Pour mémoriser un ensemble de n bits an-1, an-2, .., a0, ou mot de n bits, on utilise n bascules qui

sont activées en même temps, donc par le même signal (Fig.III-20).

a a a

y y y

n-1 n-2

0n-1 n-2

0

E R

A

Y

n

n

ERregistre R

a) connexion des bascules b) schéma d'un registre

Figure III-20 : registre n bits

Le type de bascules utilisé est choisi d'après l'utilisation du registre. On utilise souvent desbascules à deux entrées d'activation (horloge et autorisation) : l'horloge du système estconnectée à l'entrée d'horloge des bascules, le signal ER est connecté à l'entrée d'autorisation.

3.2. UTILISATION DES REGISTRES EN ENTREE ET SORTIE D'UN CIRCUIT COMBINATOIRE

L'utilisation de registres permet d'échantillonner les sorties d'un circuit combinatoirelorsqu'elles sont valides, et de lui fournir des valeurs stables en entrée (Fig.III-21)

CR1 R2

ER1 ER2

Figure III-21 : registres d'entrée et de sortie d'un circuit combinatoire

L'intervalle de temps séparant le chargement de R1 (commande ER1), qui fournit de nouvellesvaleurs en entrée du circuit combinatoire, et le chargement de R2 (commande ER2) ne doit pasêtre inférieur au temps de retard maximal du circuit C, ceci pour charger un résultat valide dans

R2 (il faut aussi tenir compte des temps de positionnement et de maintien des bascules).

La présence d'un registre en entrée d'un circuit combinatoire permet de disposer des variables

Page 12: ChapII bascules et automates.rtf

- II.12 -

sous les deux formes, normale et complémentée, car chaque bascule du registre affiche ensortie ces deux formes.

3.3.REGISTRES À DECALAGE

Si on veut décaler à gauche ou à droite les bits d'information mémorisés dans un registre, ilfaut le munir de la capacité de décalage. Un circuit registre qui a deux fonctionnalités :

- décalage à droite (si decal = 1 et ER activé),- chargement parallèle (si décal = 0 et ER activé)

est donné figure III-22.

En entrée de chaque bascule, un multiplexeur commandé par le signal "decal" permet desélectionner soit la valeur du bit de gauche, soit la valeur d'entrée. Dans tous les cas, il fautactiver le signal ER pour charger le registre.

1 0 1 01 0decal

ER

a a a n-1 n-2 0

A

Y

n

n

ERregistre R

b) schéma d'un registre à décalage

y y y 0n-1 n-2

e

e

decal

a) conception d'un registre à décalage

Figure III-22 : registre à décalage à droite

Ce type de registre ne peut pas être réalisé avec des verrous : il y aurait un nombreindéterminé de décalages durant le niveau actif de ER.

Il existe de nombreux types de registres à décalage :

- entrée parallèle, sortie parallèle plus décalage d'une position à droite (celui de la figure III-22),

- entrée parallèle, sortie parallèle plus décalage d'une position à gauche,- entrée parallèle, sortie parallèle plus décalage à gauche ou à droite,- entrée série, sortie série et décalage à droite (entrée série : cf entrée e de la figure II-14,

sortie série : y0, un seul signal de commande),

- etc.

Page 13: ChapII bascules et automates.rtf

- II.13 -

Exercices

III-16Proposer un circuit registre à décalage entrée série, sortie série et décalage à gauche ouà droite d'une position ( 2 signaux de commandes : chargement du registre ER, / decald.

III-17Une pile de dimension k est un circuit qui permet de mémoriser k mots de b bits, et deles relire dans l'ordre inverse de celui de leur arrivée (dernier entré, premier sorti, ou Last In,First Out : LIFO). Ecrire un mot dans la pile est appelé "empiler" ou push, lire un mot dans lapile est appelé "dépiler" ou pull (pop).

Proposer une réalisation d'une pile de 4 mots de 2 bits, à l'aide de registres à décalage tel quecelui réalisé dans l'exercice III-16. Les entrées et sorties du circuit sont indiquées figure III-23a).

push

pull

entrées sorties

bb

PILE k mots de b bits

push

pull

entrées sorties

bb

PILE k mots de b bits

pleine

vide

a) circuit pile b) pile avec indicateurs de l'état de la pile

Figure III-23 : entrées / sorties d'un circuit pile

III-18Il est intéressant de connaître l'état de la pile : pile pleine (donc on ne peut plus faired'opération Push), pile vide (donc qui ne contient plus d'informations). Compléter le schémaprécédent pour générer ces indicateurs. La solution la plus simple consiste à prévoir un bitsupplémentaire dans chaque mot de la pile : V, indicateur de validité. Si V = 1, le mot associéest valide, sinon le mot est invalide (ne fait pas partie de l'ensemble des informations stockéesactuellement dans la pile).

3. 4. REGISTRES COMPTEURS

Si on veut pouvoir incrémenter et / ou décrémenter l'information contenue dans un registrefacilement, il est possible de le connecter à un circuit d'incrémentation et/ou de décrémentation

Page 14: ChapII bascules et automates.rtf

- II.14 -

pour obtenir un registre compteur/ décompteur. La figure III-24 donne le schéma d'un registrecompteur à entrée parallèle, sortie parallèle.

n

n

registre compteur

A

Y

ch R

incr R

max

la sortie max est égale à 1 quand le registre a la valeur 2 -1 n

n bits : comptage modulo 2 n

raz R

t+1

tt

Hincr R ch R Y 1 * Y plus 1 0 0 Y 0 1 A

Figure III-24 : registre compteur

Ce compteur modulo 2n est activé à chaque période de l'horloge H. Il peut être forcé à 0 parla commande raz R (asynchrone), ou à la valeur d'entrée A par la commande de chargementch R (prise en compte à l'activation par H). La commande d'incrémentation incr R estprioritaire sur la commande de chargement. La sortie max est à 1 quand le compteur atteint savaleur maximale 2n –1 (dans certains compteurs, la sortie max est à 1 quand le compteurpasse de sa valeur maximale à 0). La sortie max permet de cascader des compteurs, parexemple pour construire un compteur modulo 22n à partir de deux compteurs 2n .

Il existe de nombreux types de compteurs, avec ou sans entrées et / ou sorties parallèles, quieffectuent l'incrémentation et la décrémentation ou seulement une des opérations.

Exercices

III-19Proposer une réalisation du registre compteur de la figure III-24 à l'aide d'un registre nbits, d'un incrémenteur n bits et de n multiplexeurs 2 -> 1.

III-20Proposer une réalisation d'un registre compteur / décompteur à l'aide d'un circuitincémenteur / décrémenteur.

3.5. INTERCONNEXION ENTRE REGISTRES : BUS ET PORTES 3-ETATS

Supposons qu'on conçoive un circuit comportant un ensemble de registres et qu'il soitnécessaire de pouvoir transférer les valeurs des registres de l'un à l'autre (Fig.III-25 a). Il estpossible de créer cette interconnexion à l'aide de multiplexeurs (Fig.III-25 b), mais cettesolution est très coûteuse en fils de connexion. En général, si il n'y a pas de nécessité detransferts en parallèle, un bus (moyen de transport en commun) est utilisé : il s'agit d'un fil deconnexion par bit, auquel les bascules de même rang des différents registres sont connectées à

Page 15: ChapII bascules et automates.rtf

- II.15 -

travers des interrupteurs (Fig III-25 c). Les commandes de ces interrupteurs et celles dechargement des registres permettent de commander les transferts de registre à registre(Fig.III-25 d).

A B

C D

a) interconnexions à réaliser

ai bi ci di

0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3

D D D D

cA cB cC cD

EA EB EC ED

b) connexions par multiplexeurs pour les bits de rang i

aiD

biD

ciD

diD

EA EB EC ED

SA SB SC SD

fil i du bus

c) connexion par bus pour les bits de rang i

EA

ED

EB

EC

A B

C D

SA SB

SC SD

transfert de B dans D : SB = 1 et ED = 1 d) schéma global

bus

Figure III-25 : interconnexion par bus

Attention, on ne peut transférer la valeur que d'un registre à un instant donné (ce moyen detransport en commun est plus un taxi – véhicule partagé dans le temps, avec un seul utilisateurà la fois – qu'un bus !). Pour assurer qu'au plus un regsitre est connecté en sortie au bus à uninstant donné, il est prudent de générer les signaux SA,SB,SC et SD à l'aide d'un décodeur oudémultiplexeur.

Les interrupteurs peuvent être réalisés par des transistors, en technologie MOS. On appellede tels interrupteurs "portes 3-états" (tri-state drivers) : leur sortie peut prendre la valeur 0 oula valeur 1 lorsque l'interrupteur est fermé, et prend une 3ème valeur, haute impédance, notéeZ, lorsque l'interrupteur est ouvert.

3.6. MÉMOIRES VIVES

Une mémoire vive est une mémoire dans laquelle on peut lire et écrire : Read/Write Memoryou RWM (par opposition aux ROM, Read Only Memory, vues chapitre III, §2).Une

Page 16: ChapII bascules et automates.rtf

- II.16 -

mémoire vive de 2n mots de b bits permet de mémoriser 2n informations de b bits, qui sontrepérées par un numéro codé sur n bits (Fig.III-26 a). Ce numéro de mot est appelé adressedu mot.

Une telle mémoire peut être réalisée à l'aide de (cf Fig.III-26 b) :- un décodeur n -> 2n, qui active un signal de sélection de mot d'après le numéro mis en

entrée (cf chapitre III,§1),- 2n registres de b bits, qui mémorisent les mots.

mot 0mot 1mot 2

mot 2mot 2 n-1

n-2

numéro

sortie mot entrée mot

n

b b

select L / E

select L / E action 0 * 1 0 lecture 1 1 écriture

a) schéma d'une mémoire et tableau de fonctionnement

select

0 1 2 . . . . . 2

n-1

numéro

select i

écriture lecture

ligne d'entrée ligne de sortie

D y

select 0

select 1

select 2

select 2n-1

mot 0

mot 2

mot 2

mot 1

n-1

b) sélection des mots d'une mémoire par un décodeur

c) point de mémorisation

Figure III-26 : mémoire vive

Une telle mémoire est appelée mémoire à accès aléatoire (parce que le temps d'accès est lemême, quel que soit le mot accédé) ou Random Access Memory (RAM). Notez qu'il y a

Page 17: ChapII bascules et automates.rtf

- II.17 -

souvent une confusion entre les modes d'accès possibles et le type d'accès qui mène àopposer RAM et ROM, alors qu'une ROM est en fait une RAM.

Un point de mémorisation en technologie MOS est proposé figure III-26 c) : il s'agit d'uneréalisation naïve, non optimale. On utilise un verrou, toujours activé :

- quand la commande de lecture est à 1 et que le mot est sélectionné (select i = 1), l'état duverrou est affiché sur la ligne de sortie (similaire à une ligne de bus),

- quand la commande d'écriture et select i sont à 1, la valeur sur la ligne d'entrée estmémorisée dans le verrou,

- tant que select i est à 0, l'état du verrou reste inchangé.

Le verrou peut être de type statique ou dynamique ; dans le dernier cas, il nécessite moins detransistors, mais il est nécessaire de "rafraîchir" l'information mémorisée régulièrement (en lalisant puis en la réécrivant). Il est possible de réaliser des mémoires RWM avec 5 ou 6transistors par point mémoire (type statique) ou même un seul transistor (type dynamique).

ligne de sélection mot i

ligne d'entrée/sortie

Point de mémorisation dynamique

Il est possible de réaliser, par extension du schéma de la figure III-26 c), des mémoires àdouble accés en lecture et / ou en écriture :

- si il y a 2 décodeurs (qui générent des signaux select1i et select 2i), 2 commandes de lectureet 2 lignes de sortie par bit, il est possible de lire en même temps 2 mots d'adressesdifférentes (ou non),

- avec ces 2 décodeurs, il est aussi possible de lire un mot et d'en écrire un autre, mais il fautéviter de lire et écrire le même mot.

Page 18: ChapII bascules et automates.rtf

- II.18 -

Exercices

III-21Proposer un point de mémorisation pour une mémoire à double accés en lecture (cfFig.III-26 c).

II-7 On peut réaliser une pile (cf exercice III-17 et III-18) à l'aide d'une mémoire RWM etd'un registre compteur / décompteur (cf exercice III-20). Proposer une telle réalisation.pourune pile de 32 mots de b bits.

Comparer le coût de réalisation d'une pile à l'aide de registres à décalages (exercice III-18) etcelui de la réalisation à l'aide d'une mémoire. On suppose que les registres à décalage sontréalisés avec des bascules maître-esclave MOS de 12 transistors, et que la mémoire est unemémoire statique à points de mémorisation de 6 transistors.

III-22Une file d'attente de k mots de b bits permet de mémoriser des mots et de les reliredans l'ordre de leur arrivée (premier entré, premier sorti, ou First In, First Out : FIFO). Unetelle structure peut être réalisée à l'aide d'une mémoire RWM et de registres compteurs, quimémorisent l'adresse du mot de tête de la file et l'adresse du mot de queue de la file dans lamémoire. Proposer une réalisation d'une file de 32 mots de b bits.

Page 19: ChapII bascules et automates.rtf

- II.19 -

2. AUTOMATES

Tout circuit séquentiel peut être modélisé formellement par un automate. Inversement,"effectuer la synthèse d'un automate" est "réaliser un circuit séquentiel". Après avoir défini unautomate, nous en étudierons les représentations.

2.1. DEFINITION

Un automate A est défini par un quintuplet ( Q , E , S , δ , λ ) où :

- Q est l'ensemble des états de l'automate,- E est son vocabulaire d'entrée (ensemble des valeurs possibles des entrées),- S est son vocabulaire de sortie- δ est l'ensemble des transitions ⊂ Q × E × Q- λ est l'ensemble des sorties ⊂ Q × E × S

Un automate peut être :

- synchrone : les changements d'états sont autorisés par une horloge,- asynchrone : les changements d'états sont toujours autorisés et peuvent se produire dès

qu'une entrée change de valeur,- à état initial fixé ou non, unique ou non,- non déterministe ou déterministe : dans ce dernier cas, il s'agit d'un automate à état initial

unique, où à tout couple (état, entrée) est associée une transition au maximum ; δ estredéfini comme une fonction appelée fonction de transition, δ : Q × E -> Q

- non réactif ou réactif : dans ce dernier cas, à tout couple (état, entrée) est associée unetransition au minimum (on parle aussi d'automates complet),

- automate de Moore : la fonction de sortie λ est une fonction de Q dans S (les sorties nesont fonction que de l'état), λ : Q -> S

- automate de Mealy sinon λ : Q × E -> S

Nous n'étudierons que les automates synchrones, principalement de type Moore, à état initialfixé, déterministe et réactif (à chaque couple état, entrée est associée une et une seuletransition)

2.2. REPRESENTATIONS DES AUTOMATES

2.2.A. GRAPHE D'ETATS

Un automate peut être spécifié par un graphe d'états où :

Page 20: ChapII bascules et automates.rtf

- II.20 -

- chaque sommet représente un état,- chaque arc représente une transition d'un état à un autre, et est étiqueté par l'élément du

vocabulaire d'entrée qui conditionne cette transition,- les sorties sont associées aux arcs (automate de Mealy) ou aux états (automate de

Moore).

Exemple

On veut faire le graphe d'états d'un automate défini par :

E = { a , b} , S = { oui, non}

tel que la sortie vaut oui si et seulement si les 4 dernières entrées reçues forment la séquence ab b a.

Les graphes d'état pour un automate de type Moore et un automate de type Mealy,répondant à cette spécification, sont donnés figure II-19.

A/non

C/non

D/non

E/oui

B/non

ba

a

b

b

aba

b

a

init

A b/nona/non

a/non

b/non

b/non

a/oui

b/non

a/non

init

B

C

D

a) automate de Moore b) automate de Mealy

Figure II-19 : graphes d'états

L'état initial est l'état A.

On peut interpréter les états de la façon suivante ; état A : l'automate n'a pas encore reçud'entrée intéressante ; état B : l'automate a reçu a ; état C : l'automate a reçu a puis b ; état D: l'automate a reçu a puis b puis b. Ensuite, dans le cas de l'automate de Mealy, la sortie passeà oui si une entrée a est reçue, puis l'automate se met dans l'état B. Dans le cas de l'automate

Page 21: ChapII bascules et automates.rtf

- II.21 -

de Moore, l'automate passe à l'état E où la sortie prend la valeur oui, puis se met dans l'état Bou C, suivant la valeur de l'entrée suivante.

Ces 2 automates sont équivalents (pour toute séquence d'entrées, les séquences de sortie sontidentiques), mais ont un fonctionnement temporel différent (cf §3.2.E).

2.2.B. TABLEAU D'ÉTATS

On peut aussi représenter un automate par un tableau d'états, donnant l'état suivant et la sortieen fonction de l'état courant et de l'entrée.

Exemple

Pour les automates spécifiés par les graphes d'états de la figure II-19, les tableaux d'états sontles suivants :

entrée a b état courant A B A non B B C non C B D non D E A non E B C oui état suivant sortie

entrée a b état courant A B/non A/non B B/non C/non C B/non D/non D B/oui A/non état suivant

a) automate de Moore b) automate de Mealy

Figure II-20 : tableaux d'états

Exercice

II-9 Soit un automate spécifié par :

E = { a, b, c }, S = {d, e, f}, tel que la sortie vaut d ssi les 3 dernières entrées étaient abc,vaut e ssi les 2 dernières entrées étaient cb, et f sinon.

Faire le graphe d'états et le tableau d'états de cet automate (type Moore et Mealy).

3. SYNTHÈSE D'AUTOMATES

3.1. PRINCIPE

Nous étudions ici la réalisation d'un automate synchrone par un circuit digital. Ce circuit seratoujours du type indiqué figure II-21.

Page 22: ChapII bascules et automates.rtf

- II.22 -

C

initH

entrées sorties

bascules d'état

Figure II-21 : circuit réalisant un automate

Un ensemble de bascules mémorisent l'état de l'automate ; elles peuvent être mises à l'étatinitial par le signal init (qui agit sur les entrées d'initialisation des bascules), et sont activées parle signal H, qui est l'horloge de synchronisation de l'automate. Ces bascules doivent êtresensibles au front ou maître-esclave, comme il y a rebouclage des sorties des bascules vers lesentrées, et que l'état ne doit évoluer qu'une fois au maximum durant une période d'horloge.

Le circuit combinatoire C réalise les fonctions λ et δ , d'après les valeurs des entrées et l'état

courant du circuit.

3.2. METHODE DE SYNTHESE

3.2.A. CODAGE

Avant de songer à réaliser un automate, il faut choisir un codage binaire des états et desvocabulaires d'entrée et de sortie. Ce codage peut être quelconque, ou imposé par laspécification de l'automate (en général, c'est le cas pour les entrées et sorties).

Après cette étape de codage, on peut déterminer le graphe d'états codé : à un noeud estassocié le code de l'état qu'il représente, à un arc est associé les valeurs des variablesbooléennes d'entrée et éventuellement de sortie.

Exemple

Pour l' automate de Moore des figures II-19 a et II-20 a, nous choisissons le codage :

Page 23: ChapII bascules et automates.rtf

- II.23 -

- vocabulaire d'entrée : 2 éléments, codage par une variable booléenne x, a est codé 1, b estcodé 0,

- vocabulaire de sortie : 2 éléments, codage par une variable booléenne z, oui est codé 1,non est codé 0,

- états : 5 états, codage par 3 variables d'états y2 y1 y0 , A : 000, B : 001, C : 010, D : 011,

E : 100.On en déduit le graphe d'états codé et le tableau d'états codé (Fig.II.22).

000/0

010/0

011/0

100/1

001/0

01

1

0

0

101

0

1

init

x 1 0 y y y 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 état suivant z Y Y Y

3 2 1

3 2 1

a) graphe d'états codé b) tableau d'états codé

Figure II-22 : graphe et tableau d'états codés

On a noté Y3Y2Y1 le code de l'état suivant (y3(t+1) y2(t+1)y1(t+1).

Pour un automate complexe, une autre forme de graphe d'états codé permet de raisonner plusfacilement : au lieu d'associer aux arcs les valeurs des entrées qui provoque la transition, onleur associe la fonction booléenne des variables d'entrées qui vaut 1 si et seulement si cettetransition doit être effectuée. De même, au lieu d'indiquer la valeur des sorties pour tout arc(ou tout état), on indique dans quel cas la sortie vaut 1.

Exemple

Le graphe d'état de la figure II-19 a ) peut être représenté, après codage du vocabulaired'entrée et de sortie, par le graphe de la figure II-23.

Page 24: ChapII bascules et automates.rtf

- II.24 -

A

C

D

E / z

B

xx

x

x

x

xxx

x

x

init

Figure II-23 : autre représentation du graphe d'états codé

Attention, notre automate devant être

- déterministe, le produit 2 à 2 des expressions booléennes associées aux arcs sortants d'unétat doit être égal à 0

- complètement défini, la somme des expressions booléennes associées à l'ensemble desarcs sortants d'un état doit être égale à 1.

3.2.B. DÉTERMINATION DES ÉQUATIONS D'ETATS

Le circuit C réalise la fonction de transition d'états : cette fonction, à une configuration devaleur des variables d'état yj et des entrées, associe les valeurs suivantes des variables d'étatsYi : il s'agit d'un ensemble de fonctions booléennes

Yi = fi(yn, yn-1, ...,y0, ek, ek-1, ..., e0).

Cet ensemble de fonctions booléennes définit les équations d'état, qu'il est facile de déterminerà partir du tableau d'états codé.

De même, les équations des sorties du circuit sont déterminés à partir du tableau d'états codé.

Exemple

Du tableau d'états codé de la figure II-22 b), on tire les tableaux de Karnaugh de Y3 Y2 Y1 et

de la sortie z, donnés ci-dessous :

Page 25: ChapII bascules et automates.rtf

- II.25 -

y1 x y3 y2 00 01 11 10 00 000 001 001 010 01 011 001 100 000 11 ? ? ? ? 10 010 001 ? ?

y1 y3 y2 0 1 00 0 0 01 0 0 11 ? ? 10 1 ?

tableau de Y3 Y2 Y1 t ableau de z

Figure 24

A partir des tableaux, on détermine de manière classique les équations d'état :

Y3 = y2 y1 x

Y2 = y2 + y3 + y1

Y1 = y2 + x + x

ainsi que l'équation de la sortie z :

z = y3

Exercice

II-10 Proposer un codage pour l'automate étudié à l'exercice II-9 ; faire le tableau d'étatscodé et déterminer les équations d'états et des sorties de l'automate.

3.2.C. REALISATION D'UN AUTOMATE AVEC DES BASCULES D

Les équations d'état indiquent pour chacune des variables d'état la valeur de yi (t+1) en

fonction de l'état et des entrées à t. Note : cette équation n'est pas directement implémentable,car elle inclue une dimension temporelle.

Le fonctionnement de la bascule D peut être décrit par y(t+1) = D(t)

On a donc, pour un automate à n variables d'états et p entrées, les deux équations suivantespour y i :

yi (t+1) = f(état(t), entrées(t))

yi (t+1) = D(t)

On en déduit qu'à l'instant t, on doit avoir :

D(t) = f(état(t), entrée(t))

On peut donc déterminer les équations des entrées des bascules D, donc la spécification du

Page 26: ChapII bascules et automates.rtf

- II.26 -

circuit C, qui peut être réalisé à l'aide de portes ou de circuits de moyenne complexité.L'utilisation de PLA est fréquente. Les bascules qui mémorisent les variables d'états nepeuvent pas être de type verrou : au même moment, l'ancienne valeur des bascules est utiliséeet une nouvelle valeur est chargée. Ces bascules sont activées par l'horloge de l'automate etinitialisées par le signal init (Fig.II-24).

Exemple

Le circuit réalisant l'automate de la figure II-22 a) est donné figure II-25

C

init

H

x z

y3y2

y1

D3

D2

D1

Figure II-25 : réalisation de l'automate

avec :

D3 = y2 y1 x

D2 = y2 + y3 + y1

D1 = y2 + x + x

z = y3

3.2.D. REALISATION D'UN AUTOMATE AVEC DES BASCULES JK,...

L'équation de fonctionnement d'une bascule JK est :

y (t +1) = y(t) K (t) + y (t) J(t)

Pour pouvoir déterminer les équations de J et de K, il faut mettre chaque équation d'état sous

Page 27: ChapII bascules et automates.rtf

- II.27 -

la forme : y(t +1) = y(t) f1(état(t) , entrées(t)) + y(t ) f2(état(t) , entrées(t))

On en déduit que J = f2(état(t), entrées(t)) et K = f1(état(t) , entrées(t))

Exemple

Pour notre exemple, on obtient :

J 3 = y2 y1 x K3 = y2 y1 x

J 2 = y1 x + y3 x K 2 = y 1 x + y3 x

J1 = x + y2 K1 = y 2 x

On peut effectuer des identifications locales, et pour cela aussi utiliser le tableau de transitionde la bascule JK donné ci-dessous :

yt yt+1 J K

0 0 0 ϕ

0 1 1 ϕ

1 0 ϕ 1

1 1 ϕ 0

Ce tableau indique quelle doivent être les valeurs de J et K pour chaque transition d'état de labascule. On peut alors pour chaque case du tableau d'états (ou plutôt du tableau de Karnaughqu'on en a déduit cf. figure II 24) déterminer quelles doivent être les valeurs de J et de K.

Exemple

y1 x y3 y2 00 01 11 10 00 000 001 001 010 01 011 001 100 000 11 ? ? ? ? 10 010 001 ? ?

y1 x y3 y2 00 01 11 10 00 0? 0? 0? 0? 01 0? 0? 1? 0? 11 ? ? ? ? 10 ?? ?? ? ?

tableau de Y3 Y2 Y1 t ableau de J 3 K3

On obtient :

J 3 = y2 y1 x K3 = 1

L'expression de K3 est plus simple que précédemment, car les ϕ correspondant aux codesd'état non valides ont été utilisés.

Page 28: ChapII bascules et automates.rtf

- II.28 -

3.2.E. OPTIMISATION D'AUTOMATES

La réalisation d'un automate peut être optimisée à différents niveaux :

- au niveau de la spécification du circuit à réaliser, par minimisation du nombre d'étatsde l'automate : 2 états A et B d'un automate sont équivalents si et seulement si, pour touteséquence d'entrées appliquée à A, la séquence de sorties est la même que si la séquence étaitappliquée à l'état B. Si 2 états sont équivalents, ils peuvent être confondus en 1 seul état.

- au niveau du codage des entrées et des sorties, éventuellement (en général, ces codessont fixés),

- au niveau du codage des états : le codage des états est en général choisi par leconcepteur ; deux codages différents peuvent mener à des équations des variables d'état etdes sorties plus ou moins complexes.

Exercices

On rappelle les étapes de la synthèse d'un automate :

- à partir de la spécification, déterminer le graphe d'états (et le minimiser, si nécessaire)

- codage des entrées, des sorties et des états => tableau d'états codés

- déterminer les tableaux de Karnaugh et/ou les équations des variables d'états et dessorties

- choisir un type de bascules et déterminer les équations des entrées des bascules

- faire la synthèse du circuit.

II – 11 Réaliser l'automate de Mealy donné figure II-20-b à partir de bascules D puis debascules JK.

II-12 Même exercice pour l'automate étudié dans les exercices II-9 et II-10.

II-13 Déterminer les tableaux de transitions des bascules RS et des bascules T. Faire lasynthèse de l'automate de Moore qui nous a servi d'exemple (le tableau d'états et de la sortiesont indiqués figure II-24).

3.2.F. FONCTIONNEMENT TEMPOREL DES AUTOMATES

Il reste à analyser les aspects temporels du fonctionnement des automates, c'est-à-dire lesrelations entre l'horloge, le type de bascule, l'évolution temporelle des entrées, le type

Page 29: ChapII bascules et automates.rtf

- II.29 -

d'automate et l'évolution temporelle de la sortie.

Cette analyse sera faite pour des automates réalisés avec des bascules sensibles au frontmontant (ou des bascules maître-esclave dont l'étage esclave est activé par H). Prenonscomme exemples les automates étudiés au paragraphe précédent : la figure II-26 indiquel'évolution temporelle de la sortie z (ou chronogramme de z), lorsque la séquence d'entrée 1 00 1 (séquence à reconnaitre a b b a) est appliquée sur l'entrée x à partir de l'état initial A.

H

init

x

état

état z

type Moore

type Mealy

A B C D E

z

A B C D B

a b b a

Figure II-26 : chronogrammes

Sur cette figure, l'évolution de l'entrée x est telle que sa valeur est spécifiée autour du frontmontant de H, sans préjuger des instants de variation (les portions en grisé indiquent unevaleur indéterminée).

On voit que :

- dans l'automate de Moore, la sortie reste stable entre 2 fronts d'horloge (elle ne dépendque de l'état, qui est stable entre 2 fronts) ;

- dans l'automate de Mealy, la sortie n'est valide que autour de chaque front (en effet, elleest fonction de l'état et des entrées, or l'état change au front),

Dans le cas de l'automate de Mealy, pour avoir une valeur de la sortie stable assez longtempspour pouvoir l'exploiter, il faut

- soit s'assurer que l'entrée est stable longtemps avant le front de changement d'état (de

Page 30: ChapII bascules et automates.rtf

- II.30 -

préférence juste après le front de changement d'état précédent),

- soit mémoriser la valeur des sorties dans un ensemble de bascules, ce qui revient enfait à un automate de Moore.

C'est pour cela que nous concevrons principalement des automates de Moore, dont lessorties sont stables une période d'horloge complète, et non des automates de Mealy.

Pour qu'un automate fonctionne correctement, il faut que les 2 inégalités suivantes soientrespectées :

- Τ ≥ ∆tmax + tamax + t setup,

- tamin + ∆t min = thold,

où T est le temps entre deux fronts d'activations des bascules, c'est-à-dire la période del'horloge, ta

max est le temps maximal et tamin est le temps minimal de calcul des entrées des

bascules, ∆tmax et ∆t min sont les temps maximal et minimal de changement d'état desbascules, tsetup et thold sont les temps minimaux imposés de stabilité des entrées des bascules

avant et après le front d'activation.

En général, la 2ème inégalité est toujours respectée : les bascules sont telles que ∆tmin = thold,

par construction. La premère inégalité permet de déterminer la fréquence maximale del'horloge.

3.3. SYNTHESE D'AUTOMATES COMPLEXES

La méthode de synthèse exposée ci-dessus est valable pour tout automate. Cependant,certaines techniques sont utiles pour réaliser des automates complexes, à beaucoup d'entréeset / ou beaucoup d'états.

3.3.A. REPRESENTATIONS DES AUTOMATES COMPLEXES

On représentera en général un automate complexe par un graphe d'états où figurentuniquement les fonctions booléennes des variables d'entrée qui provoquent les transitions, etoù une sortie n'est indiquée que quand elle est activée (cf Fig.II-23).

On peut aussi le représenter par un tableau de transitions (cf Fig.II-27 c).

Exemple

On prendra comme exemple l'automate défini par le graphe de la figure II-27 (il n'est pasvraiment complexe, mais il permet d'illustrer les techniques employées).

Page 31: ChapII bascules et automates.rtf

- II.31 -

A

B / s

C / t

D /s,t

E / u

F /t,u

deb

a.deb a.deb

1 1b

c

b

cc

c

initdeb a b c

init H

s

t

u

a) entrées et sorties de l'automate

A

état courant état suivant * entrée A. deb A A. a deb B A. a deb D B C C. b A C. b E D E E. c F E. c C F. c F F. c C

c) tableau de transitions b) graphe d'états

Figure II-27 : exemple d'automate complexe

Les techniques employées pour la synthèse de tels automates différent suivant le type decircuit utilisé. Nous allons en voir quelques exemples.

3.3.B. SYNTHÈSE EN CODAGE 1 PARMI N

Au lieu de coder les états à l'aide du minimum de variables d'état, on choisit un code dit code1 parmi n, qui associe une variable d'état yi à chaque état i: les codes valides sont de la forme

0 0 0 .... 0 1 0 .... 0, avec un seul 1 parmi des 0. L'automate est dans l'état i si et seulement si.... yi ......= 1, ce qui est caractérisé par yi = 1.

Les équations d'état sont triviales, et la réalisation de l'automate peut être faite directement àpartir du graphe d'états de l'automate.

Exemple

Pour l'automate spécifié figure II-27, les équations d'états et des sorties, ainsi que la réalisationde l'automate sont données figure II-28. Les équations d'état sont obtenues à partir du graphed'états ou du tableau de transitions, en déterminant les états antécédents d'un état et lesconditions de transitions

Page 32: ChapII bascules et automates.rtf

- II.32 -

YA = deb. yA + b . yC YB = a. deb. yA YC = yB + c. yE + c. yF YD = a. deb. yA YE = b . yC + yD YF = c . yE + c. yF s = yB + yD t = yC + yD + yF u = yE + yF

deb

a.deb a.debyA

yB yD

yC yEb bc

yF

c

c

c

s

u

t

Figure II-28 : réalisation en codage 1 parmi n

La bascule mémorisant yA est initialisée à 1 (signal init connecté à l'entrée "Preset"), les autressont initialisées à 0 ; toutes les bascules sont activées par l'horloge de l'automate.

La synthèse en codage 1 parmi n simplifie les équations d'états et les équations des sorties(donc la partie combinatoire du circuit ), mais utilise un grand nombre de bascules.

3.3.C. SYNTHESE EN CODAGE COMPACT ET RÉALISATION AVEC UN PLA

On peut coder les états d'un automate complexe avec le minimum de variables, pour leréaliser avec un PLA par exemple. On cherche alors à choisir un code optimisant la taille duPLA, c'est-à-dire minimisant le nombre de monômes. Ce type de solution est intéressant enconception de cartes, car il existe des boitiers PLA incluant des bascules, qui permettent deréaliser en un seul boitier un automate de moyenne complexité. En conception de circuits

Page 33: ChapII bascules et automates.rtf

- II.33 -

intégrés, l'intérêt de ces solutions vient de la régularité d'implémentation des PLA.

Exemple

Pour une synthèse avec des bascules D, on s'interesse aux variables d'états à 1 dans le codede chaque état.

On note :

- unsi la liste des variables à 1 dans le code de l'état i (par exemple, si i est codé 0101sur les variables y3,y2,y1,y0, unsi = (y2,y0)

- Ci le monôme caractéristique du code de i (code de i = 0101, Ci = y3 y2 y1 y0 )

Du graphe d'états de la figure II-27, on déduit que :

unsA = CA + CC unsB = a deb CA

unsC = CB + c CE + c CF unsD = deb CA

unsE = b CC + CD unsF = CE + CF

s = CB + CD t = CC + CD + CF u = CE + CF

A priori, il y a 14 monômes distincts à synthétiser. Mais si les codes de E et de F sontadjacents, on peut créer un monôme MEF unique, d'où :

unsA = CA + CC unsB = a deb CA

unsC = CB + c MEF unsD = deb CA

unsE = b CC + CD unsF = MEF

s = CB + CD t = CC + CD + CF u = MEF

d'où une réalisation à 12 monômes.

De plus, on remarque que les monômes CC et CF ne sont générés que pour faire la somme CC

+ CD + CF : si ces 2 monômes sont adjacents, CC + CF se simplifie en un seul monôme MCF et

la réalisation n'aura plus que 11 monômes.

Il nous reste à choisir l'état codé 0 : cet état n'aura pas de 1 dans son code, et donc lesmonômes correspondants ne seront pas générés ; on a donc intérêt à utiliser le code 0 pourl'état ayant le plus d'antécédents. Ici, on choisit A codé 0 et une réalisation à 9 monômes auplus (les monômes CA et CC ne seront pas générés).

On obtient ainsi un ensemble de contraintes d'adjacences sur les codes des états ; il reste àtrouver un codage qui les satisfait (ce n'est pas toujours possible). Dans notre cas, il s'agitd'associer les états aux cases d'un tableau de Karnaugh à 3 variables ; le placement suivant

Page 34: ChapII bascules et automates.rtf

- II.34 -

respecte les contraintes.

y2 y0 y3 00 01 11 10 0 A B C D 1 - E F -

ETAT A B C D E F CODE 000 001 011 010 101 111

Exercices

II-14 Déterminer les équations du PLA pour l'automate de l'exemple, dont un codage a étéproposé ci-dessus.

II-15 Rechercher un codage optimisant la réalisation sur PLA pour l'automate étudié àl'exercice II-9. Comparer la solution obtenue avec celle trouvée à l'exercice II-10.

3.3.D. SYNTHÈSE À L'AIDE DE COMPTEURS

Dans la gamme des boitiers de moyenne complexité, on dispose de compteurs modulo 16 ou32. A partir de cet automate compteur, il est possible de réaliser d'autres automates, en jouantsur les entrées de chargement et d'incrémentation du compteur (cf §1.7.D.).

On choisit un codage qui maximise le nombre de transitions où les codes des états d'origine etdestination sont des entiers consécutifs. Si un état a plusieurs successeurs, le code du ou desétats qui ne sont pas obtenus par incrémentation sont chargés dans le compteur.

Exemple

Pour l'exemple de la figure II-27, on prend le codage :

A : 0, D : 1, E : 2, F : 3, B : 6, C : 7.

On en déduit le tableau suivant, qui indique les valeurs des entrées du compteur pour chaquetransition, en utilisant le compteur défini figure II-16 pour lequel l'entrée d'incrémentation estprioritaire sur l'entrée de chargement (attention, ce n'est pas forcément ce type de compteurque vous utiliserez en travaux pratiques !) :

Page 35: ChapII bascules et automates.rtf

- II.35 -

état courant état suivant incr cha valeur * entrée de chargement A. deb A 0 1 0 A. a deb B 0 1 6 A. a deb D 1 ? ? B C 1 ? ? C. b A 1 ? ? C. b E 0 1 2 D E 1 ? ? E. c F 1 ? ? E. c C 0 1 7 F. c F 0 1 3 F. c C 0 1 7

En utilisant sytématiquement des multiplexeurs, on obtient le circuit suivant (Fig.II-29).

compteur modulo 8

incr

cha

A (valeur de chargement)

Y

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 6

a deb 1 c 0 0 0 1 b

Y0 1

déb

codes chargés dans le compteur

7

2

0 1

c3 7

1

init

raz En

H

Figure II-29 : réalisation avec un compteur

L'entrée cha est toujours à 1. Un multiplexeur sert à sélectionner la valeur de l'entréed'incrémentation en fonction du code de l'état, la valeur sélectionnée étant fonction des entréesde l'automate dès qu'un état a plus d'un successeur.

Un système de multiplexage sert à sélectionner la valeur à charger en fonction du code del'état et éventuellement des entrées de l'automate, d'où les 2 systèmes de multiplexeurs 2 -> 1,qui seraient avantageusement remplacés par de simples connexions. Par exemple, lemultiplexage commandé par déb peut être remplacé par les valeurs déb, déb, 0 connectéessur les entrées 0 du système de multiplexage en fonction du code de l'état (si déb = 0, on

Page 36: ChapII bascules et automates.rtf

- II.36 -

obtient le code 0, si déb =1, on obtient le code 6). De même pour le multiplexage commandépar c (valeurs c,1,1)Les multiplexeurs, n'étant pas complétement utilisées, peuvent êtresimplifiés ou remplacés par un PLA. Les sorties sont générées à partir du code de l'état Y.

3.3.E. REALISATION AVEC UNE ROM ET MICROPROGRAMMATION

Principe

On peut chercher à réaliser un automate à base de ROM, mais il n'est pas envisageable deréaliser directement le circuit combinatoire C par une ROM : en effet, si il y a n variables

d'états, m entrées, la ROM aurait 2n+m mots (soit, pour notre exemple d'automate pas trèscomplexe, à 3 variables d'état et 4 entrées, une ROM de 128 mots de 6 bits pour générerl'état suivant et les sorties !).

La solution employée est d'associer un mot de la ROM à chaque état (et non à chaque couple(état , valeurs des entrées)), et d'indiquer dans ce mot la valeur des sorties et commentcalculer l'état suivant. Il est évident que ce principe ne peut s'appliquer qu'aux automates detype Moore.

Les primitives de calcul de l'état suivant peuvent être :

- incrémenter l'état courant,- suivant une condition, incrémenter l'état courant ou charger le code indiqué (branchement

conditionnel),- charger un code fourni par un circuit combinatoire.

Ceci est assez similaire à la synthèse à l'aide de compteur. Le schéma de principe d'une telleréalisation est donné figure II-30.

ROM

champ séquencement

champ commande

E T A T

circuit de calcul de l'état suivant

conditions testées

init H

Figure II-30 : réalisation à l'aide d'une ROM

Page 37: ChapII bascules et automates.rtf

- II.37 -

Exemple

On reprend l'exemple précédent, avec le codage utilisé figure II-29.

Un mot de la ROM a le format suivant :

champ séquencement champ seq cond adr sorties S1 S0 C A2 A1 A0 s t u

C condition 0 b 1 c

S1 SO séquencement 0 - état := état plus1 1 0 si condition = 1 état := adr sinon état := état plus1 1 1 état := entrée état

codage des champs

Le contenu de la ROM, pour implémenter l'automate, doit être :

numéro de mot champ séquencement sorties

S1S0 C A2A1A0 s t u

mot 0 (état A) 1 1 φ φ φ φ 0 0 0

mot 1 (état D) 0 φ φ φ φ φ 1 1 0

mot 2 (état E) 1 0 1 1 1 1 0 1 0

mot 3 (état F) 1 1 φ φ φ φ 0 1 1

mot 4

mot 5

mot 6 (état B) 0 φ φ φ φ φ 1 0 0

mot 7 (état C) 1 0 0 0 1 0 0 1 0

Le circuit de calcul de l'état suivant a comme entrées : les entrées de l'automate (a,deb,b,c) etl'état courant. Suivant le champ séquencement , il en déduit le code de l'état suivant.

Page 38: ChapII bascules et automates.rtf

- II.38 -

Exercice

II-16 Proposer une réalisation du circuit de calcul de l'état suivant, pour l'exemple ci-dessus.Ce circuit comporte un incrémenteur (cas S1 S0 = 0 - ou 10), un circuit de calcul du code del'état suivant (cas S1 S0 = 11), un circuit de calcul de la condition (cas S1 S0 = 10), et unsystème de multiplexage qui permet de sélectionner le code correct pout l'état suivant.

Généralisation : microprogrammation

L'avantage de ce type de réalisation à base de ROM est sa flexibilité : avec une même ROMet un même circuit de calcul de l'état suivant, il est possible de réaliser différents automates.De plus, cette réalisation nécessite peu de boitiers. Cette technique a été proposée dès lesannées 60 par Wilkes, et très employée dans les années 70 ; pour souligner sa flexibilité, lenom de microprogrammation est utilisé : le circuit de la figure II-30 est un séquenceurmicroprogrammé ; le circuit de calcul de l'état suivant est un microséquenceur (séquenceur duséquenceur) ; les bascules mémorisant l'état forment le registre compteur de microprogramme; une ligne de la ROM contient une microinstruction.

Les extensions possibles par rapport au cas simple que nous avons traité sont :

- la possibilité de sous-microprogramme : quand une séquence de microinstructions serépéte dans la ROM, il est possible de ne l'écrire qu'une seule fois et d'effectuer unbranchement vers cette séquence unique en sauvegardant le code de l'état de retour (étataprès la fin de l'exécution de la séquence) : à la fin de la séquence, le code sauvegardé estrechargé dans le compteur de microprogramme. Dans ce cas, le circuit de calcul de l'étatsuivant comporte une pile de sauvegarde, et on ajoute aux primitives de séquencement lespossibilités de branchement à sous-microprogramme (pile : = état + 1 ; état := adr) et deretour de sous-microprogramme (état := pile).

- la possibilité de microprogrammation verticale ; dans ce cas, il existe deux types demicroinstructions : les microinstructions de commande, où des sorties sont activées et pourlesquelles, par convention, l'état suivant est obtenu par incrémentation, et les microinstructionsde séquencement, où les primitives de séquencement complexes sont utilisées. Lesmicroinstructions sont alors codées avec 2 formats possibles :

0 champ commandes

1 champ séquencement

Cela permet d'éviter de prévoir un champ séquencement dans toute microinstruction, alorsqu'il n'est pas toujours utilisé, donc de diminuer le nombre de bits de la ROM ; mais, dès qu'ily a branchement, 2 microinstructions au lieu d'une seule seront exécutées. A noter : l'automate

Page 39: ChapII bascules et automates.rtf

- II.39 -

réalisé avec ce principe n'est pas équivalent à l'automate initial (périodes d'horlogesupplémentaires durant lesquelles il n'y a pas de sorties émises). Cette solution sera doncréservée à des cas particuliers : commande de la partie opérative d'un circuit complexe oud'un processeur, étudiés par la suite.

- séparation des champs commande et séquencement : pour certains automates, lemême champ commande est associé à plusieurs états. Si une ROM contient les champsséquencement, et une autre les champs commande, cette dernière ne contient alors qu'unexemplaire de chaque valeur de champ commande. Il faut cependant ajouter un circuit decalcul de l'adresse ROM commande à partir du code de l'état, ce qui ralentit l'émission descommandes. En choisissant des codes adjacents pour les états ayant le même champcommande, on peut optimiser ce circuit.

Exercices

II-17 Nous avons réalisé pour notre exemple une solution à microprogrammation horizontale(champ séquencement et champ commandes dans le même mot de la ROM). Il s'agitd'étudier une solution à microprogrammation verticale, avec deux types de microinstructions.

1- Définir le format des microinstructions verticales.

2- Proposer une spécification du circuit microséquenceur.

3- Modifier le graphe d'états pour prendre en compte la diminution des possibilités deséquencement, choisir un codage des états et écrire le microprogramme.

4- Réaliser le circuit microséquenceur.

5- Evaluer la rentabilité des deux solutions ; le temps sera mesuré par le nombre moyend'accés à la ROM à effectuer pour chaque état de l'automate initial ; le coût sera mesuré parle nombre de bits de la ROM (pour les mots effectivement utilisés), et la rentabilité est définieclassiquement par : 1 / temps * coût.

6- Généréralisation du résultat : on suppose que l'automate initial est tel que x% des étatspeuvent être codés avec des codes consécutifs ; que le champ séquencement nécessite m bitset le champ commande n bits. Dans quelles conditions la solution de microprogrammationverticale est-elle intéressante ?

II-18 Proposer une réalisation d'un microséquenceur offrant les primitives de séquencementsuivantes :

Page 40: ChapII bascules et automates.rtf

- II.40 -

champ séq S2 S1 S0 séquencement 0 0 0 état := état plus 1 0 0 1 si condition alors état := adr sinon état := état plus 1; 0 1 1 si condition alors pile := état +1, état := adr sinon état := état plus 1 1 0 0 état := pile 1 0 1 état := entrée1 1 1 0 état := entrée2 1 1 1 état := 0.....0

champ cond C1 C0 condition 0 0 a 0 1 b 1 0 c 1 1 d

II-19 Soit un automate à 15 états, A, B, ...,0. Certains états ont le même champ decommande : (A, O) (D, L), (B, E, G), (C, F, I, M).

1- Proposer une réalisation de l'automate à l'aide de 2 ROM et donner la taille de ces 2ROM

2- En supposant qu'il n'y ait pas de contraintes sur le codage des états dues auséquencement, proposer un codage des états et un adressage de la ROM commande.

3- Si le champ séquencement nécessite n bits de codage, et le champ commande m,évaluer les coûts (en points-mémoire) de la solution n'utilisant qu'une ROM et de celleproposée ici.