Chapitre 2: Les circuits logiques Le transistor, un interrupteur commandé par un tension, est le composant de base des circuits électroniques au cœur de l’ordinateur .A l’aide des transistors, on construit des circuits logiques élémentaires, des portes logiques, effectuant des opérations simples. Ces circuits sont analysés grâce à l’algèbre de Boole, outil mathématique puissant qui permet de développer des circuits plus complexes. Ces mêmes portes logiques sont utilisées pour réaliser des circuits séquentiels, faisant intervenir une composante temporelle et introduisant ainsi la notion de mémorisation de valeurs dans les systèmes. 1- Définition Un circuit logique est un circuit électronique réalisant une ou plusieurs fonctions logiques, il est composé d'un ensemble de portes logiques interconnectés entre elles; on distingue deux types de circuits logiques : Circuits combinatoires : l'état de ses sorties ne dépend que de l'état de ses entrées. Circuits séquentiels : l'état de ses sorties dépend de l'état de ses entrées actuelles et aussi de l'état logique précédent de sa sortie (notion d'état et de mémoire) 2- Rappel des notions préliminaires Il est nécessaire de rappeler certaines notions étudiées dans le module pré requis telles que les portes logiques et les notions de base de l’algèbre de Boole qui nous seront utiles par la suite ; par ailleurs on considère les méthodes de simplification des fonctions logiques (algébrique et Karnaugh) des notions acquises. 2-1 Les portes logiques Une porte logique est un circuit combinatoire de base réalisant une opération logique de base Exemple : OU, ET, NON, correspondant aux opérateurs de l'algèbre de Boole ; elle possède Une table de vérité et/ou une expression logique définissant son résultat en fonction de son/ses entrée(s)et un symbole graphique. La porte OU (inclusif) A Y B 1 A 0 0 1 1 B 0 1 0 1 Y=A+B 0 1 1 1 La porte ET A Y B A 0 0 1 1 B 0 1 0 1 Y=A•B 0 0 0 1 Inverseur : porte NON A Y A Y= A 0 1 1 0 Porte OU exclusif A Y B A 0 0 1 1 B 0 1 0 1 Y AB 0 1 1 0 A 0 0 1 1 B 0 1 0 1 Y AB 1 1 1 0 A B ( A B) ( B A ) Portes NON ET(NAND) A Y B Porte NON OU (NOR) A Y B A 0 0 1 1 B 0 1 0 1 YAB 1 0 0 0 Remarque les portes NAND et NOR sont très utilisées dans la réalisation des circuits logiques. Grâce aux lois de De Morgan il est possible de réaliser des systèmes logiques avec uniquement des portes NAND ou NOR. Exercice : Réaliser les portes OU ,OR, AND uniquement à l’aide des portes NAND et/ou NOR 2 A Y=A A Y=A.B A B Y=A+B B 2-2 Principaux théorèmes et axiomes de l’algèbre de Boole Il existe une relation directe entre les expressions logiques utilisant l'algèbre de Boole et les circuits électroniques, simplifier les expressions logiques décrivant la tâche à implémenter permet de réduire le coût du circuit associé. ;nous récapitulons dans le table suivante les axiomes et les principaux théorèmes qui sont utilisés comme des règles de manipulation et de simplification des expressions logiques. OU ET Distributivité NON (A + B) + C = A + (B + C) = A + B + C A+B=B+A A+A=A A+0=A A+1=1 (A • B) • C = A • (B • C) = A • B • C A•B=B•A A•A=A A•1=A A•0=0 A • (B + C) = (A • B) + (A • C) A + (B • C) = (A + B) • (A + C) AA A A 1 AA 0 A + (A • B) = A A • (A + B) = A ( A B) ( A B) A A ( A B) A B De Morgan A B C ... A B C ... OU exclusif A B C ... A B C ... A B ( A B) ( A B) A B ( A B) ( B A ) A B (A B) (A B) A B ( A B) ( A B) 3 Associativité Commutativité Idempotence Elément neutre Associativité Commutativité Idempotence Elément neutre 3-Circuits combinatoires Un circuit combinatoire est défini par une ou plusieurs fonctions logiques ; les sorties Sj sont fonctions uniquement de la valeur des entrées Ei: Sj= f(Ei), il est représenté par un logigramme (portes logiques interconnectées) ; l’algèbre de Boole et les fonctions logiques sont donc le support théorique des circuits combinatoires. 3. 1 synthèse d’un circuit combinatoire La synthèse d’un circuit combinatoire est la réalisation du circuit à partir de l’énoncé décrivant les fonctions ou le rôle du circuit en suivant les étapes suivantes : Comprendre le fonctionnement du système. Définir les variables d’entrée et les variables de sortie. Etablir la table de vérité. Ecrire les équations algébriques des sorties (à partir de la table de vérité) Effectuer des simplifications (algébrique ou Karnaugh). Faire le logigramme avec un minimum de portes logiques. Exercice : Soit la fonction f(a,b,c)={1 si le nombre de 1 dans la combinaison de (a,b,c) est un nombre impair 0 sinon Faire la synthèse du circuit réalisant cette fonction. 3-2 Analyse d’un circuit combinatoire L’analyse d’un circuit combinatoire consiste à étudier le logigramme pour déterminer le rôle du circuit, pour cela on doit : 1. Donner pour chaque sortie son expression en fonction des entrées 2. Simplifier la fonction de sortie 3. Construit la table de vérité correspondante 4. Déduire le rôle du circuit Exercice Soit le circuit logique suivant Composé uniquement de portes logiques avec 3 entrées et 1 sortie ;analysez ce circuit. 4 3-3 Circuits combinatoires particuliers Il est bien sûr impossible d’illustrer tous les circuits classiques que l’on retrouve systématiquement dans les machines ; C’est pourquoi nous nous contenterons de présenter dans ce paragraphe le décodeur et l’additionneur quant au multiplexeur, transcodeur, comparateur ; ils seront étudiés en séance de TD 3-3-1 Demi-additionneur et additionneur complet Un additionneur est un circuit combinatoire fondamental en toute unité de traitement, son rôle est d’additionner des bits. L’addition de deux nombres binaires consiste à additionner les bits de même rang en commençant par les bits des poids faibles vers ceux des poids forts. Le circuit qui additionne deux nombres de 1 bit chacun sans tenir compte d’une retenue anticipée est appelé demi-additionneur Les entrées (les deux bits à additionner X,Y ) Une sortie (somme S) Une retenue R X 0 0 1 1 Y 0 1 0 1 S 0 1 1 0 R 0 0 0 1 Table de vérité et logigramme d’un demiadditionneur 1 bit 5 Si on veut considérer une éventuelle retenue anticipée on construit un additionneur complet 1 bit Il prend en entrée deux bits A et B ainsi que la retenue précédente C 0 , il calcule la somme S de ces trois valeurs binaires ainsi que la retenue C1 . On peut remarquer sur la table de vérité que S est le ou exclusif des trois entrées A, B et C 0 i.e. S = AB C0 et que la retenue C 1 vaut 1 dès que deux des trois entrées valent 1 c’est-à-dire/ C1 = AB +AC0+ BC0.(utiliser Karnaugh) .Si on veut utiliser des portes XOR on utilise la simplification algébrique et on trouve : C1= C0 (AB) + AB A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C0 0 1 0 1 0 1 0 1 C1 0 0 0 1 0 1 1 1 S 0 1 1 0 1 0 0 1 On peut construire le logigramme à partir de ces formules ou en assemblant deux semiadditionneurs en cascade. Le premier semi-additionneur calcule d’abord la somme de A et B puis le second calcule la somme du premier résultat et de C 0 . La retenue C1 vaut 1 s’il y a au moins une retenue à une des deux sommes effectuées. En mettant en cascade k additionneurs complets 1 bits, on construit un additionneur k bits appelé additionneur par propagation de retenue car la retenue se propage d’additionneur en additionneur. Exemple :Additionneur 4 bits 6 3-3-2 Le décodeur Un décodeur k bits possède k entrées et 2 k sorties. La sortie dont le numéro est donné par les entrées est active (valeur 1) alors que toutes les autres sorties sont inactives (valeur 0). Une des principales applications du décodeur est le décodage d’une adresse mémoire ou d’un Code d’une instruction. Le décodeur 2 bits a deux entrées A0 et A1 et quatre sorties S 0 , S 1 , S 2 et S 3 . La table de vérité des quatre sorties en fonction des deux entrées est la suivante : S0 = ¬A1 ¬A0 S1 = ¬A1 A0 S2 = A1 ¬A0 S3 = A1 A0 A1 0 0 1 1 A0 0 1 0 1 S0 1 0 0 0 S1 0 1 0 0 S2 0 0 1 0 S3 0 0 0 1 4- les circuits séquentiels Un circuit séquentiel est un circuit logique pour lequel l’état des sorties dépend de l’état des entrées, mais aussi des sorties antérieures. Ce type de circuit tient donc compte dans le temps des étapes passées, qu’il est capable de mémoriser. Tous ces circuits, que l’on qualifie de bascules, comprennent donc un état de mémorisation qui permet de mémoriser la valeur de 1 bit. la forme générale d'un circuit séquentiel est la suivante : 4.1 Tableau d’état et équations d’état Un tableau d’état (aussi appelé tableau de transitions d’état) est similaire à une table de vérité. Il comporte quatre sections : les états présents, les entrées, les états prochains (futurs) et les sorties. Les équations d’état d’un circuit séquentiel déterminent la valeur des variables d’état prochain Et les sorties du circuit en fonction de leurs valeurs d’états présents ainsi que des entrées du système. Les équations d’état sont aussi appelées équations de transition. 4.2 Bascules élémentaires De même que les portes logiques constituent les briques de base des circuits combinatoires, les circuits séquentiels sont construits à partir de cellules élémentaires servant à mémoriser un bit, connues sous la dénomination de bascules, car elles possèdent deux états stables. 7 4.2.1 Bascule RS La bascule RS possède 2 entrées : R et S et 1 sortie Q qui correspond à l'état stocké la valeur de Q à t+1 dépend de R,S et de la valeur de Q à t R = reset : remise à 0 de Q S = set : mise à 1 de Q S=1 et R=0 : Q mis à 1 S=0 et R=1 : Q mis à 0 S=0 et R=0 : Q garde sa valeur, maintien S=1 et R=1 : Q indéterminé 4.2.2 Bascule JK La bascule JK est une variante de la bascule RS On trouve les mêmes valeurs que pou RS Sauf pour le cas J=K=1 ; on a Qt+1 = R 0 0 1 1 S 0 1 0 1 J 0 0 1 1 Qt+1 Qt 1 0 ? K 0 1 0 1 Qt+1 Qt 1 0 4.2.3 Bascule D Cette bascule enregistre sur sa sortie Q la donnée présente sur son entrée D, D 0 1 Qt+1 0 1 4.2.4 Bascule T obtenue en appliquant les mêmes valeurs aux deux entrées d'une bascule JK T 0 1 Qt+1 Qt 4.3 Analyse d’un circuit séquentiel La procédure pour analyser un circuit séquentiel à partir d’un diagramme donné nécessite Les étapes suivantes : 1. Identifier les variables d’état; 2. Écrire les équations d’état et les équations de sortie; 3. Dresser le tableau d’états; 4. Déduire le rôle du circuit. 4.4 Synthèse d’un circuit séquentiel Pour réaliser la synthèse d’un circuit séquentiel ; on suit les étapes suivantes: 1. . Déterminer le nombre de bascules; 2. . Construire la table d’états en identifiant les états par des symboles 3. à partir du tableau d’état complet, obtenir les équations booléennes d’entrée des bascules ainsi que les équations booléennes des sorties du système, en simplifiant si possible; 4. .Construire le circuit en réalisant les circuits combinatoires associés aux entrées des bascules et aux sorties et vérifier. 8 4.5 Circuits séquentiels classiques Les circuits séquentiels les plus courants sont les registres et les compteurs. Les circuits séquentiels sont aussi utilisés pour réaliser des fonctions logiques qui nécessiteraient un circuit combinatoire trop complexe, comme la multiplication. 4.5.1 Les registres Un registre de stockage est un élément de mémorisation permettant de stocker une information d’une longueur de n bits. Une bascule ne permettant de mémoriser qu’un seul bit, un registre de n bits sera donc composé d’un ensemble de n bascules; les bascules employées sont soit des bascules D, soit des bascules JK ; la figure suivante montre un registre à 5 bits. La commande RAZ permet de mettre à zéro toutes les cellules du registre en même temps ; Le mot à charger est présenté sur les entrées E1 à E5 qui sont chargées en parallèle, sur un signal d’horloge délivré sur la ligne CLK. La lecture du mot s’effectue sur les sorties S1 à S5, également en parallèle. Registre 5 bits 4.5.2 Les compteurs Un compteur est une association de n bascules permettant de décrire, au rythme d’une horloge, une séquence déterminée qui peut avoir au maximum 2n combinaisons différentes. Les combinaisons apparaissent toujours dans le même ordre. Une combinaison de sortie d’un compteur est appelée état. Le nombre d’états différents pour un compteur est appelé le modulo de ce compteur. Un compteur modulo N démarrant à 0 et comptant dans l’ordre binaire naturel compte de 0 à N-1 ; la figure suivante décrit un compteur modulo 8 conçu à base de bistables T. 9