Chapitre I Circuits logiques numériques : une révision Ordinateurs Numériques Ordinateurs Numériques: Notions de base et Définitions Architecture d’ordinateur: Lorsque l’on parle de l’architecture d’un ordinateur, on se réfère à la structure et au comportement de cet ordinateur, du point de vue de l’utilisateur. Ceci inclut les formats de l’information, l’ensemble des instructions, et les techniques d’adressage. Conception architecturale d’ordinateur: Une conception architecturale d’ordinateur est centrée sur les spécifications des différents modules fonctionnels, tels que les processeurs et les mémoires, ainsi que leur structure commune au sein d’un système informatique. programme: Un programme est une séquence d’instructions destinées à un ordinateur. Ordinateurs Numériques Matériel informatique (Hardware): La partie matérielle (hardware) d’un ordinateur typique se divise habituellement en trois composantes majeures: (i) L’unité centrale (CPU), qui comprend une unité arithmétique et logique (ALU) pour la manipulation des données, des registres pour le rangement temporaire des données, et des circuits de contrôle pour aller chercher et exécuter les instructions de la machine (machine instructions). (ii) La mémoire vive (Random Access Memory, ou RAM), pour le rangement des instructions de la machine et les données. (iii) Le processeur d’entrées / sorties (IOP), dont la tache consiste à communiquer et à contrôler le flot d’informations entre l’ordinateur et le monde extérieur. Ordinateurs Numériques Conception d’ordinateur: Lorsque les spécifications de l’ordinateur sont formulées, il s’agit de développer le matériel approprie pour le système. Pour la conception d’un ordinateur, il faut déterminer quel matériel devrait être utilisé pour le système, et comment ses composantes seront interconnectées. Les Portes Logiques Les Portes Logiques Algèbre Booléenne Algèbre Booléenne (1) (3) (5) (7) (9) (11) (13) (15) (17) x +0=x x +1=1 x +x =x x + x0 = 1 x +y =y +x x + (y + z) = (x + y ) + z x(y + z) = xy + xz (x + y )0 = x 0 y 0 (x 0 )0 = x (2) (4) (6) (8) (10) (12) (14) (16) x ·0=0 x ·1=x x ·x =x x · x0 = 0 xy = yx x(yz) = (xy )z x + (yz) = (x + y )(x + z) (xy )0 = x 0 + y 0 Table 1: Identités de base de l’algèbre booléenne Algèbre Booléenne Theorem 1 (Théorème de DeMorgan). Les identités (15) et (16) de la Table 1 représentent le théorème de DeMorgan. Le théorème affirme que: Une porte NON-OU (NOR) qui implémente l’opération (x + y )0 est équivalente à x 0 y 0 . ⇒ Ceci implique qu’une porte NON-OU possède deux symboles différents, mais équivalents: Une porte NON-ET (NAND) qui implémente (xy )0 est équivalente à (x 0 + y 0 ). ⇒ Par conséquent, une porte NON-ET possède deux symboles différents mais équivalents: Algèbre Booléenne Complément d’une fonction Complément d’une fonction Dans une table de vérité, le complément de la fonction booléenne F s’obtient en interchangeant les 0 et les 1 dans les valeurs de F . Theorem 2 (Théorème de DeMorgan—Forme générale). (x1 + x2 + · · · + xn )0 = x10 x20 · · · xn0 (x1 x2 . . . xn )0 = x10 + x20 + · · · + xn0 A partir de son expression booléenne ou de son circuit logique, on peut obtenir le complément d’une fonction booléenne en: changeant les portes/opérations OU en des portes/opérations ET, changeant les portes/opérations ET en des portes/opérations OU, et en complémentant/inversant chaque variable/entrée booléenne. Example 3. Trouvons l’inverse de F = AB + C 0 D 0 + B 0 D. F 0 = (AB + C 0 D 0 + B 0 D)0 = (AB)0 · (C 0 D 0 )0 · (B 0 D)0 (en appliquant le théorème de DeMorgan) = (A0 + B 0 ) · (C + D) · (B + D 0 ) (aussi en appliquant le théorème de DeMorgan) Tables de Simplification Tables de Simplification Les expressions booléennes sont souvent simplifiées grâce à des tables de Karnaugh (tables-K, ou K-maps) Les tables-K ont la forme suivante: A F (A, B, C ) : B F (A, B) : 0 1 2 3 C 0 1 5 4 2 3 7 6 B A (a) Une table a deux variable (b) Une table a trois variables Tables de Simplification B F (A, B, C , D) : D C A 0 1 5 4 2 3 7 6 10 11 15 14 8 9 13 12 (c) Une table a quatre variables Tables de Simplification Lorsque le bord d’une table (colonne et/ou ligne) comporte 4 entrées ou plus, il faut noter la séquence des combinaisons des variables ainsi : 00 01 11 10 {au plus un bit qui diffère entre deux entrées adjacentes} On peut s’imaginer une table-K comme une “sphère”: ses coins et ses bords se “touchent”. Chaque combinaison de variables dans une table de vérité ou dans une table-K s’appelle un minterm (terme anglo-saxon). Chaque minterm est marqué d’un petit numéro dans chacune des cases des tables-K présentées ci-dessus. Par exemple, la combinaison ABCD = 0100 correspond au minterm 4. L’information contenue dans une table de vérité ou dans une table-K peut s’écrire en une forme compacte en relevant les équivalents décimaux des minterms qui produisent un 1 pour la fonction. Tables de Simplification Example 4. Considérons la table à 4 variables F (A, B, C , D) = Σ(0, 1, 2, 5, 8, 9, 10) B F (A, B, C , D) : D 1 1 1 0 0 1 5 4 & % 1 C 2 0 3 1 A 0 7 0 0 6 0 0 10 11 15 14 ' $ 1 8 ⇒ F (A, B, C , D) = B 0 D 0 + B 0 C 0 + A0 C 0 D 1 9 0 13 0 12 ← forme en somme de produits Tables de Simplification Pour obtenir F en produits de sommes, on procède en 2 étapes: 1 2 On exprime F 0 en somme de produits, en simplifiant les minterms qui correspondent à des 0 dans la table-K. On utilise le théorème de DeMorgan pour complémenter F 0 afin d’obtenir une expression de F en produit de sommes. Tables de Simplification Tables de Simplification Example 5. Exprimons la fonction F de l’exemple précédent comme produit de sommes. B F (A, B, C , D) : D 1 0 1 1 1 C 2 0 3 1 A 10 0 0 0 6 0 15 1 9 0 4 7 11 1 8 1 5 0 14 0 13 0 12 hence, F 0 = AB + CD + BD 0 F = (F 0 )0 = (AB + CD + BD 0 )0 = (AB)0 · (CD)0 · (BD 0 )0 par le théorème de DeMorgan = (A0 + B 0 ) · (C 0 + D 0 ) · (B 0 + D) ← forme en produit de sommes Tables de Simplification Si la fonction F se présente sous la forme d’une somme de produits: F (A, B, C , D) = B 0 D 0 + B 0 C 0 + A0 C 0 D, alors on peut l’implémenter de deux façons différentes, mais équivalentes: l’une avec des portes ET et OU seulement, l’autre avec des portes NON-ET seulement. ≡ Portes ET et portes OU Implémentation avec portes NON-ET Tables de Simplification Si la fonction F se présente sous la forme d’un produit de sommes: F (A, B, C , D) = (A0 + B 0 ) · (C 0 + D 0 ) · (B 0 + D), alors on peut l’implémenter de deux façons différentes, mais équivalentes: l’une avec des portes ET et OU seulement, l’autre avec des portes NON-OU seulement. ≡ Portes ET et portes OU Implémentation avec portes NON-OU Tables de Simplification Conditions Indifférentes Conditions Indifférentes Les “conditions indifférentes” sont des conditions qui correspondent à une certaine combinaison à l’entrée pour laquelle la valeur de la sortie n’a pas d’importance. Les minterms qui correspondent à ces conditions sont représentées par un “x” dans la table-K. Tables de Simplification Conditions Indifférentes Example 6. X (0, 2, 6) ← minterms correspondant à des 1 X d(A, B, C ) = (1, 3, 5) ← minterms qui correspondent à des “x” (minterms indifférents) F (A, B, C ) = A F (A, B, C ) : C x 1 0 1 1 B 2 x 3 x 5 0 7 0 4 1 6 ⇒ F = A0 + BC 0 X = (0, 1, 2, 3, 6) Circuits Combinatoires Circuits Combinatoires Un circuit combinatoire est un arrangement de portes logiques interconnectées qui implémentent une relation entre une variable de n entrées et une variable de m sorties Un circuit combinatoire est décrit par une table de vérité qui montre la combinaison de sortie correspondant à chacune des 2n combinaisons d’entrée Dans un circuit combinatoire, la sortie est indépendante du temps, et ne dépend que de l’entrée du circuit Dans un circuit combinatoire, la sortie est “re-calculée” aussitôt qu’un changement à l’entrée intervient Circuits Combinatoires Procédé de conception de circuits combinatoires Procédé de conception de circuits combinatoires 1 Définir le problème 2 Assigner différentes lettres symboliques aux variables d’entrée et de sortie 3 Obtenir la table de vérité qui définit la relation entre les entrées et les sorties 4 Obtenir l’expression booléenne simplifiée pour chaque variable de sortie 5 Dessiner le diagramme logique du circuit Circuits Combinatoires Procédé de conception de circuits combinatoires Example 7 (Demi-additionneur). Entrée x y 0 0 0 1 1 0 1 1 Sorties C S 0 0 0 1 0 1 1 0 =⇒ Table de vérité Diagramme Logique S =x ⊕y C = xy Circuits Combinatoires Procédé de conception de circuits combinatoires Example 8 (Exercice: Additionneur complet). Montrez qu’un additionneur complet peut s’implémenter en utilisant deux demi-additionneurs et une porte OU. Circuits Séquentiels: Introduction Circuits Séquentiels: Introduction À la différence des circuits combinatoires, les circuits séquentiels sont des circuits logiques dont la sortie n’est pas seulement une fonction des entrées du circuit, mais aussi de signaux logiques dépendants du temps. Les circuits séquentiels les plus courants aujourd’hui sont les circuits séquentiels synchrones. La synchronisation des circuits séquentiels synchrones est assurée par des impulsions d’horloge, générées par une horloge commune. Dans les circuits séquentiels régis par une horloge, les sorties sont “calculées” uniquement à l’arrivée d’une impulsion d’horloge de synchronisation. Entre deux impulsions d’horloge consécutives, la sortie du circuit séquentiel ne change pas. Les Bascules (Flip-Flops) Les Bascules (Flip-Flops) Une bascule est une cellule binaire capable de ranger un bit d’information entre deux impulsions d’horloge consécutives. Les Bascules (Flip-Flops) La Bascule SR La Bascule SR R Q S Q SR Symbole graphique S R Q(t + 1) 0 0 1 1 0 1 0 1 Q(t) 0 1 ? Pas de changement à l’entrée Remise à 0 Mise à 1 Indéterminé (ne peut pas être prédit !) Table caractéristique La condition indéterminée rend la bascule SR difficile à gérer, par conséquent elle est peu utilisée en pratique. Les Bascules (Flip-Flops) La Bascule JK La Bascule JK Une bascule JK est une amélioration de la bascule SR, en ce sens que la condition indéterminée y est bien définie. K1 C J1 J K Q(t + 1) 0 0 1 1 0 1 0 1 Q(t) 0 1 Q 0 (t) Q Q JK Symbole graphique Pas de changement à l’entrée Remise à 0 Mise à 1 Complément Table caractéristique Les Bascules (Flip-Flops) La bascule D La bascule D Une bascule D place l’entrée à sa sortie au début de chaque cycle d’horloge. La relation entre l’entrée et la sortie d’une bascule D est définie par l’équation caractéristique suivante: Q(t + 1) = D, où D symbolise le signal d’entrée D Q(t + 1) 0 1 0 1 Q D C Q D Symbole graphique Table caractéristique Les Bascules (Flip-Flops) La bascule T La bascule T En plus de l’entrée d’horloge, que toutes les bascules possèdent, la bascule T (aussi appelée Bascule Toggle) a une entrée T qui permet d’inverser la sortie ou de la laisser telle quelle. La relation entre l’entrée et la sortie d’une bascule T est définie par l’équation caractéristique suivante: Q(t + 1) = Q(t) ⊕ T , où T symbolise le signal d’entrée Symbole graphique T Q(t + 1) 0 1 Q(t) Q’(t) Table caractéristique Les Bascules (Flip-Flops) La bascule T Example 9. Montrez qu’une bascule T est équivalente à une bascule JK pour laquelle J = K = T . Les Bascules (Flip-Flops) Les Bascules Déclenchées par Transition Les Bascules Déclenchées par Transition Les bascules les plus courantes aujourd’hui sont les bascules déclenchées par transition. Dans les bascules déclenchées par transition montante, les changements à la sortie ont lieu lorsque l’impulsion passe d’un niveau bas (0 logique) à un niveau haut (1 logique). Les Bascules (Flip-Flops) Les Bascules Déclenchées par Transition Dans les bascules déclenchées par transition descendante, les changements à la sortie ont lieu lorsque l’impulsion passe d’un niveau haut (1 logique) à un niveau bas (0 logique). Les Bascules (Flip-Flops) Tables d’Excitation Tables d’Excitation Pour la conception de circuits séquentiels, la transition requise de l’état présent vers l’état suivant est généralement connue. Le concepteur doit déterminer les entrées d’excitation qui causent la transition recherchée. Les Bascules (Flip-Flops) Tables d’Excitation Circuits Séquentiels Circuits Séquentiels La figure suivante montre le diagramme bloc d’un circuit séquentiel typique. Inputs Combinational circuit Outputs Flip−flops Clock Un circuit séquentiel typique est composé d’un circuit combinatoire et de plusieurs bascules. Les entrées des bascules sont prises aux sorties du circuit combinatoire. Les entrées du circuit combinatoire sont prises aux sorties des bascules, ainsi qu’à des entrées externes (si il y en a). Circuits Séquentiels Equations d’Entrée de Bascules Equations d’Entrée de Bascules Les équations d’entrée de bascules sont des expressions booléennes qui définissent les entrées de chaque bascule en fonction des variables booléennes du circuit. Figure 1: Diagramme logique du circuit séquentiel Circuits Séquentiels Equations d’Entrée de Bascules Dans le diagramme ci-dessus, les équations d’entrée des bascules sont: DA = Ax + Bx, et DB = A0 x. Le circuit séquentiel a une sortie externe y . Elle peut s’exprimer par: y = Ax 0 + Bx 0 . Circuits Séquentiels Table d’états Table d’états Le comportement des circuits séquentiels est déterminé par les entrées, les sorties, les états présents et les prochains états de leurs bascules. Les sorties et les prochains états dépendent tous deux des entrées du circuit et des états présents des bascules. Dans ce contexte, la table d’états est une table qui montre les sorties du circuit et les prochains états pour chaque combinaison des entrées/états présents du circuit. Pour un circuit séquentiel avec m bascules, n variables d’entrée, et p variables de sortie, la table d’états comprend: m colonnes qui représentent les états présents des bascules n colonnes qui représentent les entrées du circuit m colonnes qui représentent les prochains états des bascules p colonnes qui représentent les sorties du circuit 2m+n lignes de combinaisons binaires allant de 0 à 2m+n − 1. Circuits Séquentiels Table d’états Circuits Séquentiels Table d’états Example 10 (Exemple de table d’états). Pour un circuit séquentiel avec une entrée externe, une sortie externe, et deux bascules, une table d’états aurait la forme suivante: Table 2: Exemple de table d’états Etat Présent A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Entrée x 0 1 0 1 0 1 0 1 Etat Prochain A B 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 Sortie y 0 0 1 0 1 0 1 0 Le diagramme logique d’un tel circuit séquentiel est montré sur le schéma 1. Circuits Séquentiels Diagramme d’état Diagramme d’état Un diagramme d’état est un graphe directionnel qui connecte tous les états possibles des circuits séquentiels, et dans lequel chaque transition a la forme suivante: input/output Present State Next State Le diagramme d’état du circuit logique de la Figure 1 est montré ci-dessous: Circuits Séquentiels Diagramme d’état Exemple de conception : Conception d’un compteur binaire On désire mettre au point un circuit séquentiel régit par une horloge pour créer, à l’aide de bascules JK, un compteur binaire décrit par le diagramme d’état suivant. ” A partir du diagramme d’état, on peut voir que le circuit séquentiel a: 4 états décrit par A et B =⇒ 2 bascules sont nécessaires 1 entrée externe, que l’on peut appeler x Pas de sorties externes Circuits Séquentiels Diagramme d’état Ensuite, on érige la table d’excitation du circuit séquentiel. Table 3: La table d’excitation du compteur binaire Etat présent A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Entrée x 0 1 0 1 0 1 0 1 Prochain Etat A B 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 Entrées des bascules JA KA JB KB 0 x 0 x 0 x 0 x 0 x x 0 1 x x 1 x 0 0 x x 0 1 x x 0 x 0 x 1 x 1 Notez que les 5 premières colonnes de la table d’excitation correspondent à la table d’état du circuit. Circuits Séquentiels Diagramme d’état On trouve les équations d’entrée de la bascule et les équations de sortie externe (il n’y en a pas dans ce cas) A JA (A, B, x) : x 0 0 2 x 0 1 0 B A KA (A, B, x) : 5 JA = Bx 7 x 4 x 1 3 x 0 x 6 x x 1 x B 2 0 5 x 3 KA = Bx 0 4 1 7 0 6 Circuits Séquentiels Diagramme d’état A JB (A, B, x) : x 0 0 1 1 x B 2 A KB (A, B, x) : 1 5 x 3 JB = x x 0 4 x 7 0 x 6 x 0 B 2 x x 5 1 1 1 3 KB = x x 4 7 0 6 Circuits Séquentiels Diagramme d’état Par conséquent, les équations d’entrée des bascules sont: JA = Bx KA = Bx JB = x KB = x On dessine le diagramme logique du circuit