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.