Électronique numérique : logique séquentielle

publicité
Un livre de Wikibooks.
Contenu transféré sur Wikiversité
Le contenu que vous recherchez a été déplacé vers la Wikiversité. Il
devrait être disponible sous le nom Logique séquentielle.
Livre à fractionner
Il a été suggéré de fractionner ce livre en plusieurs sous-pages afin d'améliorer sa
lisibilité.
TD1 : mémoires et bascules
Mémoires RS
La mémoire est un composant permettant de retenir de l'information. C'est un élément qui ne peut pas être réalisé en
combinatoire pur. Pour son étude il faut donc des méthodes différentes que les tables de vérité. On utilisera une table
d'évolution qui ressemble à une table de vérité. La différence est qu'il apparaît dans cette table la sortie au présent (notée
q) et la sortie au futur (notée Q).
Table d'évolution
Entrées
Etat futur
Fonction réalisée
R
S
0
0
1
1
0
1
0
1
Q ou Q +
q
1
0
X
mémorisation
mise à un
mise à zéro
priorité(ou interdite)
L'entrée S sert donc à mettre à 1, tandis que R sert à mettre à 0. La dernière ligne de la table d'évolution n'est pas traitée
par tous de la même manière. On trouve souvent dans la littérature une interdiction concernant cette ligne : elle est en
général liée au fait que les sorties souhaitées sont alors au nombre de deux et notées Q et Nous choisissons plutôt
d'étudier une seule sortie notée Q et ainsi d'autoriser cette ligne. Il se trouve un X dans cette ligne parceque l'on considère
qu'il peut y avoir trois cas :
0 on parle de mémoire à Reset prioritaire,
1 on parle de mémoire à Set prioritaire,
q on parle alors de mémoire à mémoire prioritaire.
Exemple
Nous proposons le schéma suivant et son tableau de Karnaugh associé :
Remarquez la variable q introduite dans le tableau de Karnaugh (alors que le circuit n'a en réalité que deux entrées). Ce
tableau de Karnaugh sert à déduire une équation de récurrence. On qualifie ces équations de récurrence car une variable
intervient à la fois comme entrée et comme sortie (évidemment ici q et Q : qui ne sont reliées que par un fil).
L'équation de récurrence s'écrit :
Exercice 1
Pour le schéma ci-dessous, compléter le tableau de Karnaugh ainsi que le diagramme des temps. On supposera pour
simplifier que les portes répondent de manière instantanée (ce que l'on a toujours fait jusqu'à maintenant).
Mémoire D (D latch)
Cette fonction comporte deux entrées D et H et une sortie Q. L'équation de récurrence de la mémoire D n'a pas beaucoup
d'intérêt, il vaut mieux retenir son fonctionnement : recopie son entrée D sur sa sortie Q lorsque son horloge H est à 1.
Bascule D
Cette fonction comporte aussi deux entrées, D et H et une sortie Q. La grande différence est que la recopie de l'entrée sur
la sortie ne se fait maintenant que sur front d'horloge. Notez sur le schéma ci-dessous comment est notée cette sensibilité
au front d'horloge.
La bascule D la plus complexe comporte quatre entrées D, H, S et R et une sortie Q. Les entrées supplémentaires sont
actives à l'état bas (donc notées parfois /S et /R) et ont les même fonctions que dans le cas d'une mémoire. Elles sont dites
asynchrones dans le sens où contrairement à D elles sont complètement indépendantes des fronts d'horloge.
Plus d'information ici : Bascules.
Bascules JK
Vous trouverez ici (Wiki : Bascules) des informations sur la bascule JK.
Nous complèterons cette information avec ce que l'on appellera dans la suite un diagramme d'évolution. Ici il est
constitué de deux états (en vert) et de transitions (les flèches). Ce diagramme d'évolution est très important pour nous car
il nous servira lors des synthèses.
Exercice 2
Transformer une bascule JK en bascule D. Transformer ensuite une bascule D en bascule JK.
Exercice 3
Nous désirons réaliser la bascule E suivante.
si E=0 alors Q=1
si E=1 alors Q(n+1) = /Q(n).
TD2 : Diagrammes d'évolution, équations de récurrence
Diagrammes d'évolutions
Les montages séquentiels simples sont en général représenté par un diagramme d'évolution. Il s'agit d'un ensemble d'états
(cercles) reliés entre eux par des flèches (transitions).
Remarque : le dernier diagramme d'évolution avec un état isolé est à éviter (Hang-Up State).
Les diagrammes d'évolutions peuvent être aussi variés que ceux présentés ci-dessus. Ils peuvent avoir un ou plusieurs
cycles. La suite des états n'est pas forcément dans l'ordre naturel (du comptage). Le nombre d'états N est relié au nombre
n de bascules D : N = 2n
Si l'on veut trouver un diagramme d'évolution à partir d'un schéma utilisant des bascules D, il faut positionner les sorties
des bascules D (qui constitueront l'état présent), puis chercher ce qui en résultera sur les entrées de ces bascules (qui
constitueront l'état futur). En répétant ce travail pour chacune des possibilités en entrées on trouvera le diagramme
d'évolution.
Exercice 1
Trouver les diagrammes d'évolutions correspondant aux schémas ci-dessous :
Des diagrammes d'évolutions aux équations de récurrences
Il est facile de construire une table des transitions (état présent ; état futur) à partir d'un diagramme d'évolution. Cela
constitue tout simplement la table de vérité de l'équations de récurrence cherchée. Si on veut une forme simplifiée il
faudra utiliser un ou plusieurs tableaux de karnaugh. Par exemple pour le premier diagramme d'évolution donné en haut
de cette page, on trouve :
Tableau Etat présent/Etat futur
Etat présent
q1
0
0
1
1
q0
0
1
0
1
Etat futur
Q1
Q0
0
1
1
0
1
1
0
0
On peut en déduire des tableaux de Karnaugh et donc des équations simplifiées. Ici on obtient :
et
Exercice 2
Trouver les équations de récurrence de chacun des diagrammes d'évolution présentés au début de ce TD.
Des équations de récurrence aux programmes VHDL
Nous allons maintenant apprendre à passer des équations de récurrence aux programmes VHDL. Le compteur ci-dessus
s'écrit par exemple en VHDL:
ENTITY cmpt IS PORT (
clk: IN BIT;
q0,q1: INOUT BIT);
END cmpt;
ARCHITECTURE acmpt OF cmpt IS
BEGIN
PROCESS (clk) BEGIN -- ou cmpt:PROCESS (clk) BEGIN
IF (clk'EVENT AND clk='1') THEN
q0 <= NOT q0;
q1 <= q0 XOR q1;
END IF;
END PROCESS;
END acmpt;
Notez que q0 et q1 sont déclarées en INOUT, ce qui est obligatoire pour des équations de récurrences (en fait il existe
d'autres façons de faire).
Exercice 3
Pour chacune des équations de récurrence trouvées à l'exercice 2, écrire le programme VHDL correspondant.
TD3 : Implantation matérielle avec bascules D et bascules JK
Réaliser un schéma séquentiel à partir d'un diagramme d'évolution consiste toujours à trouver une partie combinatoire.
Les raisonnements seront séquentiels, mais les méthodes employées viennent du combinatoire : tables de vérité, tableaux
de Karnaugh.
Implantations à l'aide de bascules D
Si l'on connaît les équations de récurrence, il est facile d'obtenir un schéma à l'aide de bascules D. Il suffit d'implanter les
équations de récurrence. Si on ne les connaît pas il suffit de les chercher. On présente d'abord ce que l'on cherche à
réaliser : une partie combinatoire à la place du point d'interrogation :
Exercice 1
Réaliser un compteur modulo 8 (qui compte de 0 à 7) à l'aide de 3 bascules D.
Implantation à l'aide de bascules JK
Il faut utiliser le diagramme d'évolution de la bascule JK pour trouver les équations de récurrences sur J et sur K. Il y en a
deux fois plus qu'avec des bascules D mais elles sont plus simples.
Notre problème est encore une fois de trouver la partie combinatoire ci-dessous :
La méthode est présentée à l'aide d'une figure sur laquelle il faut passer un peu de temps pour bien la comprendre :
Il y a 4 tableaux de Karnaugh parcequ'il y a 4 sorties à réaliser J1, K1, J0 et K0
Lorsqu'on raisonne sur une transition donnée l'état de départ (état présent) détermine complètement la place dans
les tableaux de Karnaug à remplir (flèches rouges)
la connaissance de l'état présent et de l'état futur permet à l'aide du diagramme d'évolution de la bascule JK (voir
TD précédent rappelé ci-dessous) qu'elles sont les valeurs à positionner pour J et K des deux bascules. On en
déduit ce qu'il faut mettre dans le tableau de Karnaugh.
Exercice 2
Réaliser la synthèse d'un diviseur de fréquence par trois à JK et à D.
Exercice 3
Réaliser un compteur modulo 8 avec trois bascules JK
Exercice 4
Réaliser un générateur de signaux carrés déphasés de 90°.
TD4 : Implantation en D et JK (suite)
Limitation en fréquence
Les conditions d'état associées à l'horloge dans une commande synchrone doivent être stables soit pendant toute la durée
de l'horloge soit pendant une plage de temps tset up et thold autour du front actif de l'horloge. Soyons un peu plus précis
en définissant un certain nombre de paramètres temporels qui doivent être respectés pour un fonctionnement synchrone
correct. Tsetup représente le temps pendant lequel l'entrée doit être stable avant le front d'horloge pour être prise en
compte correctement. Thold représente la même chose mais après le front d'horloge. Lorqu'un front d'horloge arrive les
sorties ne seront vraiment mises à jour qu'un temps tCKO après. Chaque composant possède une documentation sur ces
temps.
Pour examiner les conséquences de ces paramètres temporels, nous présentons ci-dessous deux versions d'un même
compteur :
Exercice 1
Pour un temps moyen tp de 20 ns par porte et tCKO=tp par bascule, quelle serait la fréquence maximum applicable en
entrée pour un fonctionnement correct pour les deux schémas ci-dessus. Même question en tenant compte du "set-up
time" : Tsetup = 30 ns
Exercice 2
Déterminer la période d'horloge minimum pour un bon fonctionnement de ce circuit :
(Paramètres : Tsetup = 5 ns min, Thold 3 ns, 2,5 < tCKO < 12 ns, Tdelay = 10 ns temp de propagation de l'inverseur 6 <
tp < 9 ns.) tCKO : clock to output
Initialisation
Lors de la mise sous tension les bascules en circuits intégrés sont initialisés à 0 (les circuits programmables à 1). Pour
être sûr de l'initialisation il faut utiliser les entrées asynchrones ou réaliser une initialisation synchrone :
Forçage asynchrone
Ce type de montage se rencontre en pratique même s'il est déconseillé à utiliser.
Un compteur asynchrone : le 7490 (TTL)
Ce circuit est composé d'un diviseur par 2 et d'un diviseur par 5. Par mise en cascade, il permet une division par 10. Le
cycle à 10 positions est différent suivant l'ordre de la mise en cascade (QA relié à Horloge B ou QD relié à horloge A).
Le cycle ayant un rapport cyclique 0.5 est appelé Bi-quinaire et l'autre comptage BCD. Il comprend d'autre part une
entrée de forçage à 0 et une entrée de forçage à 9.
Exercice 3 (7490)
En connectant la sortie A à l'entrée "Horloge B" examiner la séquence des états. Même travail en connectant la sortie D à
l'entrée "Horloge A". Lequel représente le comptage BCD ?
Exercice 4
Réaliser un générateur de signaux triphasés (120°). Le rapport cyclique sera 0,5. Montrer qu'il faut nécessairement 6 états
pour le réaliser. Que faire des 2 états restants ? Écrire le programme VHDL correspondant.
Exercice 5
En utilisant trois bascules D et de la logique combinatoire, réaliser un circuit qui réalise les états suivants. Q2Q1Q0 =
0,1,3,2,6,7,5,4,0, ... Dessiner le diagramme d'évolution et trouver les équations de récurrence.
TD5 : Registres
Structure de base des registres
La structure d'un registre dépendra du mode, série ou parallèle, utilisé pour y écrire l'information et pour la lire ensuite. écriture et lecture parallèle (registre tampon, Buffer register) - écriture et lecture en série (registre à décalage, Shift
Register) - écriture en parallèle et lecture en série (Parallel IN - Serial OUT) - écriture série et lecture parallèle (Serial IN
- parallel OUT)
Le chargement peut être asynchrone.
Remarque : un petit essai de spécification d'un registre à décalage par diagramme d'évolution nous montre les limites
d'une telle spécification.
Voir aussi Registre à décalage.
Exercices
Exercice 1
Donner un schéma de registre à décalage avec des bascules JK et le corrige
Exercice 2
Compléter la table de fonctionnement du 74194 (TTL) à l'aide de son shéma interne.
Exercice 3
Donner le schéma d'un registre 3 bits programmable, à écriture et lecture en série par décalage à droite ou à gauche,
circulaire ou non. Prévoir deux entrées de programmation P1 et P2, et donner le code de programmation choisi. Utiliser
des bascules D synchrones à front montant. Indications : on a encore ici une bonne illustration de la méthode du
SI-ALORS. Écrire le programme VHDL correspondant.
TD6 : Mémoires RAM, ROM ...
Les mémoires
Les mémoires informatiques
Les mémoires ROM
Les mémoires RAM
Les mémoires EPROM. Dénomination 27C256_20. 27=EPROM, C=CMOS 256=capacité en Kbits, 20= temps d'accès en
unité 10 ns (ici 200 ns).
Les mémoires Flash sont aussi des composants très utilisés.
Organisation des mémoires : les bus
Une mémoire est caractérisée par plusieurs bus :
bus de données
bus d'adresses
bus de commande ou bus de contrôle
Le bus de commande comporte en général 3 signaux : WE (Write Enable) qui permet de choisir entre écriture et lecture,
CE (Chip Enable) qui sélectionne le composant et OE (Output Enable) qui sélectionne les sorties 3 états. Bien sûr dans le
cas d'un mémoire à lecture seulement (PROM) le signal WE est absent.
Écriture dans une mémoire : la mémoire dispose d'une entrée notée /WE (Write Enable) qui doit prendre la valeur 0.
L'écriture devient possible sur un front de /WE si la mémoire est sélectionnée (/CE=0)
La capacité des mémoires est définie en bits ou octets. Pour un bus de données de largeur n (n fils) et un bus d'adresse de
largeur m la capacité en bits est définie par :
On divisera cette capacité par 8 pour l'avoir en octets. On utilisera aussi les multiples :
1K = 1024 = 210
1M = 220
1G = 230
PROM à diodes
Nous allons décrire le schéma interne d'une petite mémoire à diodes. Son intérêt est qu'elle est suffisamment simple pour
qu'on puisse la comprendre à l'aide des connaissances que l'on a aquises jusqu'à présent. Voyons un peu de quoi est
constitué ce composant :
Nous voyons apparaître un décodeur dont le but est de sortir un zéro sur une des sorties Yi. Chacune des diodes peut être
assimilée à un contact électrique (c'est naturellement exact seulement quand cette diode est polarisée pour être passante).
Lorsqu'aucune diode n'apparait au croisement d'une ligne horizontale et verticale, on dira qu'elle a été grillée, et d'un
point de vue électrique, elle matérialise l'absence de contact.
Exercice 1
A partir du schéma ci-dessus, on vous demande de donner le contenu de cette mémoire. Les diodes de connexion non
représentées sont naturellement grillées.
Zones utiles mémoires
Une mémoire peut être modélisée comme un ensemble d'octets indexé par une adresse. Mais il suffit de forcer une des
broches d'adresses à 0 ou à 1 pour que seules certaines zones soient accessibles.
Exercice 2
On considère une mémoire EPROM type 27C256 de 32K octets.
a) Déterminer la largeur du bus de donnée et le nombre de bits du bus d'adresse.
b) Calculer le nombre de zones et les adresses de début et fin des zones dans les cas suivants :
A14 = 1
A13 = 0
A12 = 0 et A10 = 1
Associations de mémoires
En général lorsqu'on ne dispose que de circuits ayant une certaine capacité mémoire et que l'on désire réaliser un espace
mémoire de plus grande capacité nous dedvons faire face à deux problèmes différents :
étendre la largeur du bus de données
étendre la largeur du bus d'adresse
Le premier problème est très simple à résoudre comme le montre la figure ci-dessous (partie gauche) et le deuxième un
peu plus complexe (partie doite).
Exercice 3
On souhaite constituer un bloc mémoire de 5K octets à partir de blocs élémentaires plus petits de 2K et 1K. Réaliser un
schéma de la fonction Choix dans le cas où le bloc commence à l'adresse : 0000H.
Décodage d'adresse
Le décodage d'adresse consiste à sélectionner correctement un ensemble de circuits mémoire pour constituer une
mémoire continue ou discontinue. Le principe est identique à l'extension des mémoires, réaliser un circuit de sélection.
Exercice 4
Nous voulons réaliser une interface mémoire avec un bus de données 8 bits (D7-D0) et un bus d'adresse 16 bits (A15-A0)
avec un microprocesseur. Ce microprocesseur gère un signal /WR pour écrire et /RD pour lire. Donner les équations de
sélection pour:
une ROM 8K pour une adresse commençant à 2000H
une ROM 4K pour une adresse commençant à 8000H
une ROM 2K pour une adresse commençant juste après celle de 8k
Donner les mêmes équations de sélection si on admet la possibilité de voir plusieurs fois le même boîtier dans l'espace
mémoire.
TD7 : Les technologies
Les familles et sous familles
TTL L (Low Power)
TTL LS (Low Power Schottky)
TTL ALS (Advanced Low Power Schottky)
CMOS HC fonctionne sous une tension variant de 2 à 6V
CMOS HCT fonctionne sous 5V (compatible TTL).
Paramètres électriques
Niveaux de tension des entrées et des sorties
Un 1 logique et un 0 logique ne peuvent représenter une valeur unique de tension : il s'agit forcément d'une zone de
tension. Ainsi on trouvera systématiquement entre O et la tension d'alimentation trois zones : la zone correspondant au 1
logique, celle du zéro et entre les deux une zone où la valeur logique ne peut pas être considérée comme sûre. Ces zones
définissent 4 tensions : VIHmin, VILmax, VOHmin et VOLmin (on garde ici la notation anglosaxone I = input et O =
output). Pour être compatible, c'est à dire que l'on puisse relier une entrée à une sortie, il faut respecter un certain nombre
de conditions sur ces tensions. Commençons par définir ces tensions :
VIH (High Level Input Voltage) tension d'entée de niveau haut -> VIHmin
VIL (Low Level Input Voltage) tension d'entée de niveau bas -> VILmax
V0H (High Level Output Voltage) tension de sortie de niveau haut -> VOHmin
V0L (Low Level Output Voltage) tension de sortie de niveau bas -> VOLmin
Nous choisissons une représentation graphique pour exprimer les conditions nécessaires sur ces tensions pour un bon
fonctionnement :
Pour les entrées, la zone indéterminée est représentée en rouge. Pour les sorties les deux zones correspondant
respectivement au un logique et au zéro logique sont représentées en vert. Pour être compatibles au niveau des tensions
une ou plusieurs technologies doivent respecter le dessin ci-dessus à gauche. Cela signifie que les inégalités suivantes
doivent être respectées :
VIHmin < VOHmin
et
VILmax > VOLmax
Graphiquement cela signifie que le rectangle rouge doit donc être complètement dans le rectangle blanc.
Courants de sortie et d'entrée
IIH (High Level Input Current) courant d'entée de niveau haut
IIL (Low Level Input Current) courant d'entée de niveau bas
I0H (High Level Output Current) courant de sortie de niveau haut
I0L (Low Level Output Curent) courant de sortie de niveau bas
Les problèmes de courant sont liés aux problèmes de tension. Si une entrée consomme trop de courant la tension de sortie
risque de se trouver dans la zone indéterminée. Des conditions sur les courants doivent donc être respectées. Comme il
est courant de relier une sortie à plusieurs entrées on définit un moyen simple de calculer le maximum de portes que l'on
peut relier ensemble. On pose pour cela la convention suivante : l'entrance vaut 1 pour une ET-NON. La sortance
(fan-out) est le nombre maximal d'entrées qu'une sortie peut alimenter : c'est le plus petit des rapports IOH/IIH et
IOL/IIL. L'assemblage des circuits suit une règle très simple : il suffit que la la sortance d'un cicuit soit supérieure ou
égale à la somme des entrances des circuits qu'il commande. Pour cela il faut aussi avoir à l'esprit que l'entrance varie
d'un composant à l'autre.
Courant de court-circuit C'est un autre paramètre caractéristique d'une technologie. Il est noté IOS (Short Circuit Output
Current). Pour une TTL ALS il vaut 140 mA (contre 400 uA normalement).
Technologie TTL
La technologie TTL est une des plus anciennes. Sa disparition est régulièrement annoncée.
Son fonctionnement sera mieux compris à partir d'un schéma interne :
Lorsque les entrées sont portées à 1 les jonction BE de T1 se bloquent. Seule la jonction BC de T1 reste en conduction.
T2 et T3 sont alors passants. Dès qu'une des deux entrées est à 0 alors T1 et T4 deviennent passants.
Exercice 1
Dans un montage ALS une porte P alimente un circuit C dont l'entrance est de 4 (charges ALS). Pour obtenir un temps de
calcul meilleur on conserve la porte P en technologie ALS et l'on remplace le circuit C par son équivalent AS pour lequel
IIH= 20uA et IIL=-1,5 mA. Vérifier le bon fonctionnement du montage. (ALS : IOH= -0,4 mA et IOL=8 mA).
Portes MOS
Il existe plusieurs technologies MOS. Nous présentons celle qui utilise la technologie MOS complémentaire (ou CMOS).
Il existe deux sortes de transistors : les nMOS et pMOS.
En résumé, un transistor nMOS est équivalent à un interrupteur ouvert si son entrée G vaut 0 et à un interrupteur fermé si
son entrée G vaut 1. Un transistor pMOS est équivalent à un interrupteur ouvert si son entrée G vaut 1 et à un
interrupteur fermé si son entrée G vaut 0. Ainsi si l'on connaît le type de transistor et l'entrée on peut en déduire le
schéma équivalent : interrupteur ouvert ou fermé.
Exercice 2
1. On donne le schéma ci-dessus (à droite) et on cherche la fonction z=f(a,b) ainsi réalisée. Pour cela on vous propose
de dessiner les quatre schémas équivalents du montage en utilisant seulement des interrupteurs ouverts ou fermés,
pour les quatre combinaisons d'entrée possibles. Naturellement les deux entrées a sont reliées ensemble (même si
cela n'est pas fait sur le dessin) ainsi que les entrées b.
2. Pour savoir la valeur logique de la sortie, il suffit de trouver si celle-ci est reliée à VCC (1 logique) ou à la masse
(0 logique) par les interrupteurs fermés. A l'aide de cette information donner la fonction réalisée par ce schéma.
3. Réaliser suivant le même principe (P en haut et N en bas) la porte NOR.
Adaptations TTL/CMOS
Il est facile de voir que du point de vue des tensions, une entrée TTL peut être reliée à une sortie CMOS mais pas
l'inverse :
On ajoute pour un bon fonctionnement dans le cas où une entrée CMOS est reliée à une sortie TTL une résistance reliée à
5V. Une telle résistance est appelée résistance de tirage. La porte TTL impose immédiatement (après son temps de
propagation tp) une tension de 2,7 V puis la résistance de tirage fait monter la tension jusque vers 5V.
Portes à sortie collecteur ouvert
Comme leur nom l'indiquent, les sorties collecteur ouvert sortent directement un collecteur de transistor. Les avantages
de cette solution sont mentionnées dans le dessin ci-dessous (ainsi qu'une comparaison avec les traditionnelles sorties
totem-pôle) :
Adaptation en tension : lorsque l'on utilise deux tensions différentes (ici Vcc et Vext).
Une autre propriété est la possibilité de relier ensemble plusieurs sorties, réalisant ainsi un ET entre les sorties :
Sorties trois états
Exercice 3
Un montage comporte n Nands à collecteur ouvert en parallèle, alimentant une NAND 74LS00A (et une résistance R
reliée à VCC). Établir une relation entre n, R, IIL, IOL et VIL pour le niveau bas et une autre relation entre n, R, IOH,
IIH et VIH pour le niveau haut. En déduire la plage de variation de R pour n=8 en utilisant les valeurs des paramètres des
portes 74ALS00A et 74ALS01 (collecteur ouvert).
Exercice 4
Un montage comporte n portes à sorties 3 états 74ALS1244A alimentant une porte NAND 74ALS00A. Déterminer le
nombre n de portes connectables en parallèle en utilisant les paramètres des portes.
TD8 : Description par graphe d'états
Graphe d'états
Un graphe d'état est une suite d'états et de transitions réceptives. Pour ceux qui auraient une connaissance du GRAFCET
on parle ici d'état et non d'étape. Les évolutions seront représentées par un jeton (et un seul) qui se déplace d'état en état.
États
Les états sont représentés comme d'habitude par des cercles et un identificateur qui est souvent un chiffre. Il existe parmi
les état un état particulier, dit état initial qui est actif à la mise sous tension.
Cette figure représente respectivement un état normal inactif, un état normal actif, un état initial inactif.
Transitions
Une transition décrit au moyen d'une flèche et d'une éventuelle condition le passage d'un état à un autre : on parlera de
transition conditionnelle. Une telle transition ne spécifie pas ce qui se passe si la condition est fausse.
Une transition réceptive diffère d'une transition conditionnelle par un trait barrant la transition. Cette transition spécifie
immédiatement ce qui se passe si la condition n'est pas vraie : on reste dans le même état.
Voici une transition réceptive :
La receptivité est l'équation booléenne : c'est une valeur booléenne. La signification de cette transition peut être présentée
par le dessin ci-dessous :
où l'on montre l'équivalence des deux notaions habituelles.
Équations de récurrence
Code One-hot (une équation de récurrence par état)
On cherche pour chacun des états i les conditions d'activations ACi et les déactivations Di puis on écrit :
pour un état initial et
pour un état normal. Init est une entrée ajoutée destinée à l'initialisation (synchrone ici).
Un exemple sera plus parlant qu'un long discours. Soit le graphe d'état ci-dessous :
Cherchons les conditions d'activation ACi de chacun des état :
puis les conditions de désactivation
D2 = e2
D3 = e4
D4 = e3
Les équations de récurrence sont alors :
Les équations de sortie sont :
a1 = x1
a2 = x1
a3 = x3 + x4
a4 = x2
Implantation
On implante ces équations de récurrence facilement avec des bascules D (voir TD 3). Le schéma correspondant est donné
maintenant :
Le programme VHDL correspondant est :
-- programme VHDL correspondant au graphe d'états précédent
ENTITY graf1 IS
PORT (I,e1,e2,e3,e4,clk : IN BIT;
a1,a2,a3,a4 : OUT BIT);
END graf1;
ARCHITECTURE agraf1 OF graf1 IS
SIGNAL x1,x2,x3,x4,x5 : BIT;
BEGIN
PROCESS(clk) BEGIN
IF (clk'event AND clk='1') THEN
x1 <= (x3 AND e4) OR (x4 AND e3) OR I;
x2 <= (x1 AND e1 AND NOT I) OR (x2 AND NOT e2 AND NOT I);
x3 <= (x2 AND e2 AND NOT I) OR (x3 AND NOT e4 AND NOT I);
x4 <= (x1 AND NOT e1 AND NOT I) OR (x4 AND NOT e3 AND NOT I);
END IF;
END PROCESS;
a1 <= x1;
a2 <= x1;
a3 <= x3 OR x4;
a4 <= x2;
END agraf1;
Exercices
Voir aussi
Wiki : Bascule
Wiki : VHDL
Wiki : Table de Karnaugh
Wiki : Registre à décalage
Wiki : Mémoires informatiques
Wiki : ROM
Wiki : RAM
Wiki : Mémoire Flash
Wiki : TTL
Wiki : CMOS
Récupérée de « http://fr.wikibooks.org/wiki/%C3%89lectronique_num%C3%A9rique_:_logique_s%C3%A9quentielle »
Dernière modification de cette page le 12 mai 2008 à 10:33.
Contenu disponible sous GNU Free Documentation License.
Téléchargement