- II.1 - CIRCUITS SEQUENTIELS ET SYNTHESE D'AUTOMATES



Documents pareils
VIII- Circuits séquentiels. Mémoires

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

IFT1215 Introduction aux systèmes informatiques

Conception de circuits numériques et architecture des ordinateurs

Logique séquentielle

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

LE PROBLEME DU PLUS COURT CHEMIN

ELP 304 : Électronique Numérique. Cours 1 Introduction

TD Architecture des ordinateurs. Jean-Luc Dekeyser

I- Définitions des signaux.

Chapitre 4 : Les mémoires

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

CHAPITRE VIII : Les circuits avec résistances ohmiques

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Modélisation et Simulation

Université de La Rochelle. Réseaux TD n 6

GPA770 Microélectronique appliquée Exercices série A

Les fonctions logiques

Guide Mémoire NETRAM

CHAPITRE VI ALEAS. 6.1.Généralités.

Structure et fonctionnement d'un ordinateur : hardware

OPTIMISATION À UNE VARIABLE

RESUME DE COURS ET CAHIER D'EXERCICES

CONVERTISSEURS NA ET AN

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Convertisseurs statiques d'énergie électrique

Architecture des ordinateurs

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

Algorithmes de recherche

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Système binaire. Algèbre booléenne

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct (ajout de la section 3 et augmentation de la section 1)

Systemes d'exploitation des ordinateurs

Cours Informatique 1. Monsieur SADOUNI Salheddine

CHAPITRE IX : Les appareils de mesures électriques

Chapitre 1 I:\ Soyez courageux!

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Algorithmes d'apprentissage

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Vers l'ordinateur quantique

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Organisation des Ordinateurs

Géométrie dans l espace Produit scalaire et équations

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Les réseaux cellulaires

Théories de la Business Intelligence

Installation de Windows 2003 Serveur

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Manuel d utilisation NETexcom

Recherche dans un tableau

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Cours 3 : L'ordinateur

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

Programmation linéaire

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Fiche technique CPU 314SC/DPM (314-6CG13)

Système M-Bus NIEVEAU TERRAIN NIVEAU AUTOMATION NIVEAU GESTION. Domaines d'application

Le bus USB. I) Introduction : II) Architecture du bus USB :

Exécution des instructions machine

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Date : Tangram en carré page

LA MESURE INDUSTRIELLE

Les Réseaux sans fils : IEEE F. Nolot

BACCALAUREAT GENERAL MATHÉMATIQUES

Conception de circuits numériques et architecture des ordinateurs

Tout savoir sur le matériel informatique

Définition du compte courant

Dans la série. présentés par le site FRAMASOFT

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

ASR1 TD7 : Un microprocesseur RISC 16 bits

V- Manipulations de nombres en binaire

Description d'une liaison

REALISATION d'un. ORDONNANCEUR à ECHEANCES

IV- Comment fonctionne un ordinateur?

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Chapitre 1 : Introduction aux bases de données

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

QUESTION 1 {2 points}

Chapitre 5 : Flot maximal dans un graphe

Guide d'installation de l'amplificateur de signal pour périphériques mobiles Wi-Fi WN1000RP

Trier les ventes (sales order) avec Vtiger CRM

Plus courts chemins, programmation dynamique

LES DÉTERMINANTS DE MATRICES

Exercices de dénombrement

EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (43) Date de publication: Bulletin 2011/26

Éléments d'architecture des ordinateurs

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Fiche technique CPU 315SN/PN (315-4PN33)

Leçon 1 : Les principaux composants d un ordinateur

Une version javascript sera disponible directement dans le cours prochainement.

Université Paris-Dauphine DUMI2E 1ère année, Applications

ALOHA Load Balancer 2.5. Guide de démarrage rapide. EXCELIANCE ALOHA 2.5 Guide de démarrage rapide 30/01/2008 1/17

Manuel d'utilisation de la maquette

Transcription:

- II.1 - CHAPITRE II : CIRCUITS SEQUENTIELS ET SYNTHESE 'AUTOMATES INTROUCTION Un circuit séquentielest 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 E BASE : BASCULES ET REGISTRES 1.1. EFINITION Une bascule est un circuit séquentiel élémentaire, capable de mémoriser une variable d'état et

- II.2-1.2. BASCULE donc qui peut prendre 2 états (état 0 et état 1). Il existe différents types de bascules, qui peuvent ê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. Une bascule (pour elay) synchrone est un circuit à 2 états, qui a une entrée de valeur, 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, ainsi que son tableau de fonctionnement. y y Act Act y t+?t non oui * 0 y t 0 oui 1 1 y t : valeur courante de l'état y t+? t : valeur suivante de l'état a) schéma symbolique d'une bascule b) fonctionnement Figure II-1 : bascule 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. Quand la bascule est activée (Act : oui), l'état de la bascule prend la valeur de l'entrée : une bascule permet de mémoriser une valeur entre deux activations. La bascule est la plus utilisée, en particulier pour réaliser des registres, mais il existe d'autres bascules 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).

- II.3 - R S y y Act 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??? a) schéma symbolique d'une bascule RS b) fonctionnement Figure II 2 : bascule RS J K y y Act 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 a) schéma symbolique d'une bascule JK b) fonctionnement Figure II-3 : bascule JK T y y Act Act T y t+?t non * y t oui 0 y t oui 1 y t a) schéma symbolique d'une bascule T b) fonctionnement Figure II-4 : bascule T Une bascule peut être réalisée à partir d'une bascule RS (avec S = et R complémentaire) ou d'une bascule JK (avec J = 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 'ACTIVATIONS ES BASCULES On distingue trois types de bascules d'après la fonction d'activation (l'interprétation de l'entrée Act).

- II.4-1.4.A. BASCULES E 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 : un verrou est "transparent" quand il est activé. Le fonctionnement temporel d'un verrou sensible au niveau haut est indiqué à l'aide d'un chronogramme donné dans la figure II-5 : la figure II-5 a) illustre le fonctionnement de type verrou, tandis que la figure II-5 b) met en évidence les retards associés au fonctionnement (en fait, 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 Act y? y????? t1? t2 a) verrou sensible au niveau haut b) retards de positionnement de y par rapport à Act (? t1) et (? t2) Figure II-5 : fonctionnement temporel d'un verrou Si l'entrée change "au moment où" l'entrée d'activation Act passe de 1 à 0 (pour un verrou sensible au niveau haut), l'état de la bascule après la fin de l'activation est indéterminé : on ne sait pas si la nouvelle valeur de l'entrée a été mémorisée ou non. es intervalles de temps t1 (temps de positionnement, t set-up ) et t2 (temps de maintien, t hold ) définissent l'intervalle de temps où doit être stable autour du passge de Act de 1 à 0. 1.4.B. BASCULES SENSIBLES AU FRONT (EGE-TRIGGERE 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.

- II.5 - Act y? Act y t1 t2????? t a) bascule sensible au front montant b) l'entrée doit être stable autour du front montant de Act Figure II-6 : fonctionnement temporel d'une bascule sensible au front La figure II-6 illustre le fonctionnement temporel d'une bascule sensible au front montant : il faut que soit stable t1 avant le front de Act (temps de positionnement, set-up time) et t2 après le front (temps de maintien, hold-time). La sortie varie t après le front de l'horloge. A noter : ce retard est différent suivant le sens de variation ; passage de 0 à 1 : t plh, passage de 1 à 0 : t phl. Au lieu d'utiliser la notation "état à t+ t", on peut se contenter de définir le fonctionnement d'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 ES IFFERENTS TYPES E BASCULES Supposons qu'on veuille concevoir un circuit à 2 états, qui complémente son état à chaque activation (séquence d'états 0101010...). Il semble logique d'utiliser le montage de la figure II-7 :

- II.6 - a) montage proposé y Act Act Act y?????????? y???t? b) utilisation d'un verrou Figure II-7 : utilisation des bascules c) utilisation d'une bascule sensible au front Sila bascule utilisée dans le montage de la figure II-7 a) est de type verrou, le fonctionnement n'est pas correct (Fig.II-7 b)) : dès que la bascule est activée, l'état y est complémenté ; l'entrée est complémentée en conséquence. Comme le verrou est toujours activé, son état se complémente... On obtient bien en sortie la séquence 010101..., mais les changements de valeurs ne sont pas synchronisés par l'entrée d'activation, et quand Act passe à 0, l'état de la bascule est indéterminé. Note : un verrou toujours activé, rebouclé suivant le schéma de la figure II-7-a avec une chaîne de 1 ou 2p +1 inverseurs permet de générer un signal d'horloge dont la période dépend du nombre et du retard des inverseurs utilisés. Mais il ne s'agit pas s d'un circuit séquentiel synchrone : le changement d'état n'est pas synchronisé par un signal (Act toujours vrai). 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 de l'inverseur et t2 est le temps de stabilité nécessaire de après le front (hold time). Pour que le fonctionnement soit correct, on obtient la condition suivante:

- II.7 - Min ( t plh, t phl.) + τ > t hold. En général, les bascules sont conçues de façon à ce que Min ( t plh, t phl.) > t hold, donc cette relation est toujours vérifiée. e 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 de stabilité de avant le front d'activation (set-up time) ce qui fixe une fréquence maximale pour Act. Par exemple, décalage, voir plus loin), on obtient : si τ = 0 (cas des registres à T > t setup + Max( t plh, t phl.) Pour les circuits TTL utilisés en travaux pratiques (les temps caractéristiques se comptent en nano-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, on obtient des fréquences maximales de l'ordre du GHz. 1.4.. BASCULES E 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 type verrou au lieu d'une bascule sensible au front : on connecte ces 2 verrous en série, en les activant alternativement. On obtient une bascule de type maître-esclave (Figure II-8). E1 M y M Act E Act y E y E2 y M E1 E2 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 (connectée à M ) est recopiée dans le premier verrou ; quand E1 passe à 0, la dernière valeur de est mémorisée. è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 stable jusqu'à la prochaine activation. Le premier verrou est appelé verrou maître, et le deuxième, verrou esclave.

- II.8 - Quand E2 =, cette bascule se comporte comme une bascule sensible au front descendant de E1. La bascule ne se comporte correctement que si on a toujours E1. E2 = 0 (nonrecouvrement des activations). Attention, les bascules JK ou RS maître-esclave ne fonctionnent pas comme des bascules JK ou RS sensibles au front : toutes les variations des entrées J,K ou R,S durant le niveau d'activation de l'étage maître sont prises en compte, et le résultat est recopié dans l'étage esclave quand il est activé. En général, il faut assurer que les entrées de l'étage maître sont stables durant toute l'activation de cet étage. 1.4.E. BASCULES AVEC PLUSIEURS ENTREES 'ACTIVATION Certaines bascules (en particulier les bascules sensibles au front) ont plusieurs entrées d'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'une bascule 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 de connecter directement l'entrée d'horloge de la bascule à l'horloge du système, et donc d'avoir un signal pas trop dégradé et sans aléas, et d'utiliser l'entrée En pour autoriser ou non l'é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 suffit de connecter l'horloge du système sur l'unique entrée d'activation de la bascule... cette entrée d'ailleurs est souvent appelée entrée d'horloge H ou CK dans les documentations. 1.5. ENTREES 'INITIALISATION ES 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)

- II.9 - C P Act y y C P Act y 1 0 * * 0 0 1 * * 1 1 1 * *? 0 0 non * y 0 0 oui 0 0 0 0 oui 1 1 t t+1 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 une initialisation synchrone (pour initialiser à 0, = init - à - 0. état suivant, pour initialiser à 1, = init-à-1. état suivant). 1.6. BASCULES EN TECHNOLOGIE MOS 1.6.A. BASCULES YNAMIQUES Nous avons vu au chapitre I ( 3.1.) que des capacités réalisent, en technologie MOS, une mémorisation rudimentaire : ce mécanisme peut être utilisé pour réaliser un verrou (Fig. II-10) 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 est à 1, se décharge si est à 0 ; quand Act passe à 0, l'entrée de l'inverseur n'est pas connectée et donc la dernière valeur de 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ître au bout d'un certain temps : ce verrou n'est utilisable que quand il est activé régulièrement. On parle 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 est possible de réaliser une bascule maître-esclave, qui elle aussi est dynamique.

- II.10-1.6.B. BASCULES STATIQUES Pour obtenir un verrou capable de mémoriser indéfiniment une information (tant que le circuit st alimenté), la valeur de l'état est rebouclée en entrée quand Act= 0 (Fig. II-11). Act 1 0 y y Figure II-11 : verrou statique Un multiplexeur sélectionne soit l'entrée, soit l'état courant y t, 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îtreesclave statique.

- II.11-3. REGISTRES ET MÉMOIRES 3.1. REGISTRE N BITS Pour mémoriser un ensemble de n bits a n-1, a n-2,.., a 0, 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). E R a a a n-1 n-2 0 E R A n registre R y y y n-1 n-2 0 Y n 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 des bascules à deux entrées d'activation (horloge et autorisation) : l'horloge du système est connectée à l'entrée d'horloge des bascules, le signal E R est connecté à l'entrée d'autorisation. 3.2. UTILISATION ES REGISTRES EN ENTREE ET SORTIE 'UN CIRCUIT COMBINATOIRE L'utilisation de registres permet d'échantillonner les sorties d'un circuit combinatoire lorsqu'elles sont valides, et de lui fournir des valeurs stables en entrée (Fig.III-21) ER1 ER2 R1 C R2 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 E R1 ), qui fournit de nouvelles valeurs en entrée du circuit combinatoire, et le chargement de R2 (commande E R2 ) 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

- II.12 - sous les deux formes, normale et complémentée, car chaque bascule du registre affiche en sortie ces deux formes. 3.3.REGISTRES À ECALAGE Si on veut décaler à gauche ou à droite les bits d'information mémorisés dans un registre, il faut le munir de la capacité de décalage. Un circuit registre qui a deux fonctionnalités : - décalage à droite (si decal = 1 et E R activé), - chargement parallèle (si décal = 0 et E R activé) est donné figure III-22. En entrée de chaque bascule, un multiplexeur commandé par le signal "decal" permet de sélectionner soit la valeur du bit de gauche, soit la valeur d'entrée. ans tous les cas, il faut activer le signal E R pour charger le registre. e a a a n-1 n-2 0 decal E R 1 0 1 0 1 0 E R decal e A n registre R y n-1 y n-2 y 0 a) conception d'un registre à décalage Y n b) schéma 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 nombre indéterminé de décalages durant le niveau actif de E R. 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 : y 0, un seul signal de commande), - etc.

- 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 E R, / decald. III-17Une pile de dimension k est un circuit qui permet de mémoriser k mots de b bits, et de les 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 la pile 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 que celui réalisé dans l'exercice III-16. Les entrées et sorties du circuit sont indiquées figure III-23 a). entrées sorties entrées sorties b b b b push push pull PILE k mots de b bits pull pleine vide PILE k mots de b bits 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 faire d'opération Push), pile vide (donc qui ne contient plus d'informations). Compléter le schéma précédent pour générer ces indicateurs. La solution la plus simple consiste à prévoir un bit supplémentaire dans chaque mot de la pile : V, indicateur de validité. SiV = 1, le mot associé est valide, sinon le mot est invalide (ne fait pas partie de l'ensemble des informations stockées actuellement dans la pile). 3. 4. REGISTRES COMPTEURS Si on veut pouvoir incrémenter et / ou décrémenter l'information contenue dans un registre facilement, il est possible de le connecter à un circuit d'incrémentation et/ou de décrémentation

- II.14 - pour obtenir un registre compteur/ décompteur. La figure III-24 donne le schéma d'un registre compteur à entrée parallèle, sortie parallèle. ch R incr R raz R A n registre compteur n bits : comptage modulo 2 n Y n H max Figure III-24 : registre compteur incr R ch R Y t+1 1 * Y t plus 1 0 0 Y t 0 1 A la sortie max est égale à 1 quand le registre a la valeur 2 n -1 Ce compteur modulo 2 n est activé à chaque période de l'horloge H. Il peut être forcé à 0 par la commande raz R (asynchrone), ou à la valeur d'entrée A par la commande de chargement ch R (prise en compte à l'activation par H). La commande d'incrémentation incr R est prioritaire sur la commande de chargement. La sortie max est à 1 quand le compteur atteint sa valeur maximale 2 n 1 (dans certains compteurs, la sortie max est à 1 quand le compteur passe de sa valeur maximale à 0). La sortie max permet de cascader des compteurs, par exemple pour construire un compteur modulo 2 2n à partir de deux compteurs 2 n. Il existe de nombreux types de compteurs, avec ou sans entrées et / ou sorties parallèles, qui effectuent 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 n bits, 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 circuit incé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 soit nécessaire de pouvoir transférer les valeurs des registres de l'un à l'autre (Fig.III-25 a). Il est possible de créer cette interconnexion à l'aide de multiplexeurs (Fig.III-25 b), mais cette solution est très coûteuse en fils de connexion. En général, si il n'y a pas de nécessité de transferts en parallèle, un bus (moyen de transport en commun) est utilisé : il s'agit d'un fil de connexion par bit, auquel les bascules de même rang des différents registres sont connectées à

- II.15 - travers des interrupteurs (Fig III-25 c). Les commandes de ces interrupteurs et celles de chargement des registres permettent de commander les transferts de registre à registre (Fig.III-25 d). A B ca cb cc c 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 C ai bi ci di EA EB EC E a) interconnexions à réaliser b) connexions par multiplexeurs pour les bits de rang i A EA EB B SA SB SC S SA bus SB ai bi ci EA EB EC E di SC C EC S E fil i du bus c) connexion par bus pour les bits de rang i transfert de B dans : SB = 1 et E = 1 d) schéma global Figure III-25 : interconnexion par bus Attention, on ne peut transférer la valeur que d'un registre à un instant donné (ce moyen de transport 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 à un instant donné, il est prudent de générer les signaux SA,SB,SC et S à l'aide d'un décodeur ou démultiplexeur. Les interrupteurs peuvent être réalisés par des transistors, en technologie MOS. On appelle de tels interrupteurs "portes 3-états" (tri-state drivers) : leur sortie peut prendre la valeur 0 ou la valeur 1 lorsque l'interrupteur est fermé, et prend une 3ème valeur, haute impédance, notée Z, 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 Memory ou RWM (par opposition aux ROM, Read Only Memory, vues chapitre III, 2).Une

- II.16 - mémoire vive de 2 n mots de b bits permet de mémoriser 2 n informations de b bits, qui sont repérées par un numéro codé sur n bits (Fig.III-26 a). Ce numéro de mot est appelé adresse du mot. Une telle mémoire peut être réalisée à l'aide de (cf Fig.III-26 b) : - un décodeur n -> 2 n, qui active un signal de sélection de mot d'après le numéro mis en entrée (cf chapitre III, 1), - 2 n registres de b bits, qui mémorisent les mots. select L / E numéro n mot 0 mot 1 mot 2 mot 2 n-2 mot 2 n-1 select L / E action 0 * 1 0 lecture 1 1 écriture b sortie mot b entrée mot a) schéma d'une mémoire et tableau de fonctionnement select numéro 0 1 2..... 2 n-1 select 0 select 1 select 2 select 2 n-1 mot 0 mot 1 mot 2 mot 2 n-1 select i écriture ligne d'entrée y lecture ligne de sortie b) sélection des mots d'une mémoire par un décodeur Figure III-26 : mémoire vive c) point de mémorisation Une telle mémoire est appelée mémoire à accès aléatoire (parce que le temps d'accès est le même, quel que soit le mot accédé) ou Random Access Memory (RAM). Notez qu'il y a

- 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'une ré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 du verrou 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 est mé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 de transistors, mais il est nécessaire de "rafraîchir" l'information mémorisée régulièrement (en la lisant puis en la réécrivant). Il est possible de réaliser des mémoires RWM avec 5 ou 6 transistors par point mémoire (type statique) ou même un seul transistor (type dynamique). ligne d'entrée/sortie ligne de sélection mot i 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 select 1 i et select 2 i), 2 commandes de lecture et 2 lignes de sortie par bit, il est possible de lire en même temps 2 mots d'adresses diffé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.

- II.18 - Exercices III-21Proposer un point de mémorisation pour une mémoire à double accés en lecture (cf Fig.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 et d'un registre compteur / décompteur (cf exercice III-20). Proposer une telle réalisation.pour une 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) et celui de la réalisation à l'aide d'une mémoire. On suppose que les registres à décalage sont réalisés avec des bascules maître-esclave MOS de 12 transistors, et que la mémoire est une mé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 relire dans l'ordre de leur arrivée (premier entré, premier sorti, ou First In, First Out : FIFO). Une telle structure peut être réalisée à l'aide d'une mémoire RWM et de registres compteurs, qui mémorisent l'adresse du mot de tête de la file et l'adresse du mot de queue de la file dans la mémoire. Proposer une réalisation d'une file de 32 mots de b bits.

- 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 un automate, nous en étudierons les représentations. 2.1. EFINITION 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 ; δ est redé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 une transition au minimum (on parle aussi d'automates complet), - automate de Moore : la fonction de sortie λ est une fonction de Q dans S (les sorties ne sont 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 initial fixé, déterministe et réactif (à chaque couple état, entrée est associée une et une seule transition) 2.2. REPRESENTATIONS ES AUTOMATES 2.2.A. GRAPHE 'ETATS Un automate peut être spécifié par un graphe d'états où :

- 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 a b 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. init init A/non a b a/non A b/non B/non a B a/non a b a/non b/non C/non b b C b/non b/non a b /non a a/oui E/oui 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çu d'entrée intéressante ; état B : l'automate a reçu a ; état C : l'automate a reçu a puis b ; état : 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. ans le cas de l'automate

- II.21 - de Moore, l'automate passe à l'état E où la sortie prend la valeur oui, puis se met dans l'état B ou 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 sont identiques), mais ont un fonctionnement temporel différent (cf 3.2.E). 2.2.B. TABLEAU 'ÉTATS On peut aussi représenter un automate par un tableau d'états, donnant l'état suivant et la sortie en 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 sont les suivants : entrée a b état courant A B A non B B C non C B non E A non E B C oui entrée a b état courant A B/non A/non B B/non C/non C B/non /non B/oui A/non état suivant sortie é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 'AUTOMATES 3.1. PRINCIPE Nous étudions ici la réalisation d'un automate synchrone par un circuit digital. Ce circuit sera toujours du type indiqué figure II-21.

- II.22 - entrées C sorties bascules d'état init H Figure II-21 : circuit réalisant un automate Un ensemble de bascules mémorisent l'état de l'automate ; elles peuvent être mises à l'état initial par le signal init (qui agit sur les entrées d'initialisation des bascules), et sont activées par le signal H, qui est l'horloge de synchronisation de l'automate. Ces bascules doivent être sensibles au front ou maître-esclave, comme il y a rebouclage des sorties des bascules vers les entré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. METHOE E SYNTHESE 3.2.A. COAGE Avant de songer à réaliser un automate, il faut choisir un codage binaire des états et des vocabulaires d'entrée et de sortie. Ce codage peut être quelconque, ou imposé par la spé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 est associé le code de l'état qu'il représente, à un arc est associé les valeurs des variables boolé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 :

- II.23 - - vocabulaire d'entrée : 2 éléments, codage par une variable booléenne x, a est codé 1, b est codé 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 y 2 y 1 y 0, A : 000, B : 001, C : 010, : 011, E : 100. On en déduit le graphe d'états codé et le tableau d'états codé (Fig.II.22). init 1 0 1 000/0 1 001/0 0 010/0 0 011/0 1 100/1 0 1 0 x y y y 3 2 1 1 0 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 Y Y Y 3 2 1 z 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 plus facilement : au lieu d'associer aux arcs les valeurs des entrées qui provoque la transition, on leur associe la fonction booléenne des variables d'entrées qui vaut 1 si et seulement si cette transition doit être effectuée. e 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 vocabulaire d'entrée et de sortie, par le graphe de la figure II-23.

- II.24 - init x x x A x B x C x x E / z x x x 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 des arcs sortants d'un état doit être égale à 1. 3.2.B. ÉTERMINATION ES ÉQUATIONS 'ETATS Le circuit C réalise la fonction de transition d'états : cette fonction, à une configuration de valeur des variables d'état y j et des entrées, associe les valeurs suivantes des variables d'états Y i : il s'agit d'un ensemble de fonctions booléennes Y i = f i (y n, y n-1,...,y 0, e k, e k-1,..., e 0). 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é. e même, les équations des sorties du circuit sont déterminés à partir du tableau d'états codé. Exemple u tableau d'états codé de la figure II-22 b), on tire les tableaux de Karnaugh de Y 3 Y 2 Y 1 et de la sortie z, donnés ci-dessous :

- II.25 - y1 x y3 y2 00 01 11 10 y1 y3 y2 0 1 00 000 001 001 010 00 0 0 01 011 001 100 000 01 0 0 11??? 11??? 10 010 001?? 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 : Y 3 = y 2 y 1 x Y 2 = y 2 + y 3 + y 1 Y 1 = y 2 + x + x ainsi que l'équation de la sortie z : z = y 3 Exercice II-10 Proposer un codage pour l'automate étudié à l'exercice II-9 ; faire le tableau d'états codé et déterminer les équations d'états et des sorties de l'automate. 3.2.C. REALISATION 'UN AUTOMATE AVEC ES BASCULES Les équations d'état indiquent pour chacune des variables d'état la valeur de y i (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 peut être décrit par y(t+1) = (t) On a donc, pour un automate à n variables d'états et p entrées, les deux équations suivantes pour y i : y i (t+1) = f(état(t), entrées(t)) y i (t+1) = (t) On en déduit qu'à l'instant t, on doit avoir : (t) = f(état(t), entrée(t)) On peut donc déterminer les équations des entrées des bascules, donc la spécification du

- 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 ne peuvent pas être de type verrou : au même moment, l'ancienne valeur des bascules est utilisée et une nouvelle valeur est chargée. Ces bascules sont activées par l'horloge de l'automate et initialisé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 x z C y3 y2 y1 3 2 1 init Figure II-25 : réalisation de l'automate H avec : 3 = y 2 y 1 x 2 = y 2 + y 3 + y 1 1 = y 2 + x + x z = y 3 3.2.. REALISATION 'UN AUTOMATE AVEC ES 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

- 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 = y 2 y 1 x K 3 = y 2 y 1 x J 2 = y 1 x + y 3 x K 2 = y 1 x + y 3 x J 1 = x + y2 K1 = y 2 x On peut effectuer des identifications locales, et pour cela aussi utiliser le tableau de transition de la bascule JK donné ci-dessous : y t y t+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 la bascule. On peut alors pour chaque case du tableau d'états (ou plutôt du tableau de Karnaugh qu'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 y1 x y3 y2 00 01 11 10 00 000 001 001 010 00 0? 0? 0? 0? 01 011 001 100 000 01 0? 0? 1? 0? 11??? 11????? 10 010 001?? 10?????? tableau de Y3 Y2 Y1 t ableau de J 3 K 3 On obtient : J 3 = y 2 y 1 x K 3 = 1 L'expression de K3 est plus simple que précédemment, car les ϕ correspondant aux codes d'état non valides ont été utilisés.

- II.28-3.2.E. OPTIMISATION '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'états de l'automate : 2 états A et B d'un automate sont équivalents si et seulement si, pour toute séquence d'entrées appliquée à A, la séquence de sorties est la même que si la séquence était appliqué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 codes sont fixés), - au niveau du codage des états : le codage des états est en général choisi par le concepteur ; deux codages différents peuvent mener à des équations des variables d'état et des 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 des sorties - 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 puis de bascules JK. II-12 Même exercice pour l'automate étudié dans les exercices II-9 et II-10. II-13 éterminer les tableaux de transitions des bascules RS et des bascules T. Faire la synthèse de l'automate de Moore qui nous a servi d'exemple (le tableau d'états et de la sortie sont indiqués figure II-24). 3.2.F. FONCTIONNEMENT TEMPOREL ES AUTOMATES Il reste à analyser les aspects temporels du fonctionnement des automates, c'est-à-dire les relations entre l'horloge, le type de bascule, l'évolution temporelle des entrées, le type

- 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 front montant (ou des bascules maître-esclave dont l'étage esclave est activé par H). Prenons comme exemples les automates étudiés au paragraphe précédent : la figure II-26 indique l'évolution temporelle de la sortie z (ou chronogramme de z), lorsque la séquence d'entrée 1 0 0 1 (séquence à reconnaitre a b b a) est appliquée sur l'entrée x à partir de l'état initial A. init H type Moore type Mealy x état z état z a b b a A B C E A B C B 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 front montant de H, sans préjuger des instants de variation (les portions en grisé indiquent une valeur indéterminée). On voit que : - dans l'automate de Moore, la sortie reste stable entre 2 fronts d'horloge (elle ne dépend que 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, elle est fonction de l'état et des entrées, or l'état change au front), ans le cas de l'automate de Mealy, pour avoir une valeur de la sortie stable assez longtemps pour pouvoir l'exploiter, il faut - soit s'assurer que l'entrée est stable longtemps avant le front de changement d'état (de

- 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 en fait à un automate de Moore. C'est pour cela que nous concevrons principalement des automates de Moore, dont les sorties 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 soient respectées : - Τ t max + t a max + t setup, - t a min + t min = t hold, où T est le temps entre deux fronts d'activations des bascules, c'est-à-dire la période de l'horloge, t a max est le temps maximal et t a min est le temps minimal de calcul des entrées des bascules, t max et t min sont les temps maximal et minimal de changement d'état des bascules, t setup et t hold 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 t min = t hold, par construction. La premère inégalité permet de déterminer la fréquence maximale de l'horloge. 3.3. SYNTHESE '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ées et / ou beaucoup d'états. 3.3.A. REPRESENTATIONS ES AUTOMATES COMPLEXES On représentera en général un automate complexe par un graphe d'états où figurent uniquement les fonctions booléennes des variables d'entrée qui provoquent les transitions, et où 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 pas vraiment complexe, mais il permet d'illustrer les techniques employées).

- II.31 - init H deb a b c A s t u init A deb a) entrées et sorties de l'automate B / s a.deb a.deb /s,t état courant état suivant * entrée b 1 1 b A. deb A. a deb A B A. a deb B C C. b A C. b E E E. c F E. c C F. c F F. c C C / t c c F /t,u c c E / u 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 de circuit utilisé. Nous allons en voir quelques exemples. 3.3.B. SYNTHÈSE EN COAGE 1 PARMI N Au lieu de coder les états à l'aide du minimum de variables d'état, on choisit un code dit code 1 parmi n, qui associe une variable d'état y i à 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... y i...= 1, ce qui est caractérisé par y i = 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éalisation de l'automate sont données figure II-28. Les équations d'état sont obtenues à partir du graphe d'états ou du tableau de transitions, en déterminant les états antécédents d'un état et les conditions de transitions

- II.32 - YA = deb. ya + b. yc YB = a. deb. ya YC = yb + c. ye + c. yf Y = a. deb. ya YE = b. yc + y YF = c. ye + c. yf s = yb + y t = yc + y + yf u = ye + yf deb a.deb ya a.deb yb y s b yc b c ye u c t c yf c 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 autres sont 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 COAGE COMPACT ET RÉALISATION AVEC UN PLA On peut coder les états d'un automate complexe avec le minimum de variables, pour le réaliser avec un PLA par exemple. On cherche alors à choisir un code optimisant la taille du PLA, c'est-à-dire minimisant le nombre de monômes. Ce type de solution est intéressant en conception de cartes, car il existe des boitiers PLA incluant des bascules, qui permettent de réaliser en un seul boitier un automate de moyenne complexité. En conception de circuits

- 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, on s'interesse aux variables d'états à 1 dans le code de chaque état. On note : - unsi la liste des variables à 1 dans le code de l'état i (par exemple, si i est codé 0101 sur les variables y3,y2,y1,y0, unsi = (y2,y0) - C i le monôme caractéristique du code de i (code de i = 0101, C i = y3 y2 y1 y0 ) u graphe d'états de la figure II-27, on déduit que : unsa = C A + C C unsb = a deb C A unsc = C B + c C E + c C F uns = deb C A unse = b C C + C unsf = C E + C F s = C B + C t = C C + C + C F u = C E + C F A priori, il y a 14 monômes distincts à synthétiser. Mais si les codes de E et de F sont adjacents, on peut créer un monôme M EF unique, d'où : unsa = C A + C C unsb = a deb C A unsc = C B + c M EF uns = deb C A unse = b C C + C unsf = M EF s = C B + C t = C C + C + C F u = M EF d'où une réalisation à 12 monômes. e plus, on remarque que les monômes C C et C F ne sont générés que pour faire la somme C C + C + C F : si ces 2 monômes sont adjacents, C C + C F se simplifie en un seul monôme M CF 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 les monômes correspondants ne seront pas générés ; on a donc intérêt à utiliser le code 0 pour l'état ayant le plus d'antécédents. Ici, on choisit A codé 0 et une réalisation à 9 monômes au plus (les monômes C A et C C 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). ans notre cas, il s'agit d'associer les états aux cases d'un tableau de Karnaugh à 3 variables ; le placement suivant

- II.34 - respecte les contraintes. y2 y0 y3 00 01 11 10 0 A B C 1 - E F - ETAT A B C E F COE 000 001 011 010 101 111 Exercices II-14 é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.. SYNTHÈSE À L'AIE E COMPTEURS ans la gamme des boitiers de moyenne complexité, on dispose de compteurs modulo 16 ou 32. A partir de cet automate compteur, il est possible de réaliser d'autres automates, en jouant sur les entrées de chargement et d'incrémentation du compteur (cf 1.7..). On choisit un codage qui maximise le nombre de transitions où les codes des états d'origine et destination sont des entiers consécutifs. Siun é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, : 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 chaque transition, en utilisant le compteur défini figure II-16 pour lequel l'entrée d'incrémentation est prioritaire sur l'entrée de chargement (attention, ce n'est pas forcément ce type de compteur que vous utiliserez en travaux pratiques!) :

- 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 1?? B C 1?? C. b A 1?? C. b E 0 1 2 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). codes chargés dans le compteur c 3 7 déb 0 6 0 1 a deb 1 c 0 0 0 1 b 0 1 7 2 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Y 1 incr cha init H raz En compteur modulo 8 A (valeur de chargement) Y 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ée d'incrémentation en fonction du code de l'état, la valeur sélectionnée étant fonction des entrées de 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 de l'é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, le multiplexage commandé par déb peut être remplacé par les valeurs déb, déb, 0 connectées sur les entrées 0 du système de multiplexage en fonction du code de l'état (si déb = 0, on

- II.36 - obtient le code 0, si déb =1, on obtient le code 6). e même pour le multiplexage commandé par c (valeurs c,1,1)les multiplexeurs, n'étant pas complétement utilisées, peuvent être simplifié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 de ré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 2 n+m mots (soit, pour notre exemple d'automate pas très complexe, à 3 variables d'état et 4 entrées, une ROM de 128 mots de 6 bits pour générer l'é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 comment calculer l'état suivant. Il est évident que ce principe ne peut s'appliquer qu'aux automates de type 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 telle réalisation est donné figure II-30. init H E T A T ROM conditions testées circuit de calcul de l'état suivant champ séquencement champ commande Figure II-30 : réalisation à l'aide d'une ROM