Séminaire sur la logique combinatoire Les objectifs du séminaire: A. Appliquer des notions d’algèbre booléenne. B. Établir les tables de vérité d’un circuit. C. Écrire une équation logique à partir de la table de vérité. D. Traduire des équations en schémas. E. Réduire des équations par la méthode de Karnaugh. F. Effectuer des conversions entre des bases numériques et des codes. G. Monter des circuits de base. A. Appliquer des notions d’algèbre booléenne 1-1 Variables booléennes : Une variable booléenne est une grandeur physique qui ne peut prendre que deux états stables. Exemples : - Appareils de commande : un interrupteur peut être fermé ou ouvert un poussoir bouton peut être actionné ou non actionné. - Récepteurs : Une lampe d’éclairage peut être allumée ou éteinte un électro-aimant peut être excité ou non excité. Certaines applications qui ne prennent en compte que deux valeurs relatives à des grandeurs physiques (ex: tension, charge électromagnétique, etc.) font que ces dernières soient considérées comme des variables binaires. 1-2 État logique d’une variable booléenne : Les deux valeurs que peut prendre une variable binaire définissent ses deux états logiques. Par convention, chaque état stable est désigné: par le chiffre zéro (0) et par un (1). Opérateurs binaires de logique combinatoire Opérateur OUI ou opérateur égalité La sortie est à l’état 1 si, et seulement si, l’entrée est à l’état 1. Opérateur NON ou opérateur négation La sortie est à l’état 1 si, et seulement si, l’entrée est à l’état 0. Opérateur ET ou produit logique La sortie est à l’état 1 si, et seulement si, toutes les l’entrées sont à l’état 1. Opérateur ET-NON ou opérateur négation du ET La sortie est à l’état 0 si, et seulement si, toutes les l’entrées sont à l’état 1. Opérateur OU ou somme logique La sortie est à l’état 1 si, et seulement si, une ou plusieurs entrées sont à l’état 1. Opérateur OU-NON ou opérateur négation du OU La sortie est à l’état 1 si, et seulement si, toutes les l’entrées sont à l’état 0. Opérateur OU EXCLUSIF La sortie est à l’état 1 si, et seulement si, une seule entrée est à l’état 1. Opérateur OU-NON EXCLUSIF La sortie est à l’état 1 si, et seulement si, les deux entrées sont dans le même état. Les lois de l’algèbre de Boole Les Théorèmes de l’algèbre de Boole Postulats de l’algèbre de Boole B. Établir les tables de vérité d’un circuit I –Règles de construction : La table de vérité est une compilation, sous forme de tableau, de tous les états logiques de la sortie en fonction des états logiques des entrées. Les étapes à suivre pour construire une table de vérité : - Écrire, sur une première ligne, le nom des variables d’entrées et celui de la variable de sortie. - Diviser le tableau en un nombre de colonnes égal au total des entrées et de la sortie. - Déterminer le nombre de combinaisons possibles à l’aide des variables d’entrée : soit 2nombre d’entrée . - Tracer des lignes horizontales en un nombre égal au nombre de combinaisons possibles - Remplir chaque ligne par une combinaisons possible des variables d’entrée : ça revient à compter en binaire de 0 à (2n – 1). - Inscrire, dans la colonne « sortie », la valeur de la fonction pour chaque combinaison. A l'aide de petit tableau, on indiquera que si l'interrupteur est ouvert alors la lampe sera éteinte et que si l'interrupteur est fermé les électrons passeront par cet interrupteur ainsi que dans la lampe pour aller vers la borne positive de la source. La lampe sera allumée. On remarque qu' un interrupteur ouvert reçoit un"0" logique et que s'il est fermé, il reçoit un "1" logique. Le petit tableau sous le schéma de principe est appelé table de vérité. TABLE DE VERITE à 2 variables b a 0 0 0 1 1 0 1 1 S Exemple : Soit S = A . B + B . C table de vérité à 3 variables d’entrée TABLE DE VERITE à 3 variables c b a 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 S TABLE DE VERITE à 4 variables d 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 c 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 a 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S C. Écrire une équation logique à partir de la table de vérité Écriture d’une équation à partir d’une table de vérité : Il existe 2 méthodes : 1. Première forme canonique: Somme de produits A chaque "1" de la variable de sortie, faire correspondre un produit des n variables d’entrée sous la forme normale lorsque la variable d’entrée est à " 1", sous la forme complément si la variable d’entrée est à " 0". Faire la somme logique de produits. Sa b c ab cabc 2. Deuxième forme canonique: Produit de sommes A chaque « 0" de la variable de sortie, faire correspondre une somme des n variables d’entrée sous la forme normale lorsque la variable d’entrée est à " 0", sous la forme complément si la variable d’entrée est à " 1". Faire le produit logique de sommes. S a b c a b c a b c a b c a b c D. Traduire des équations en schémas Schémas logiques : Généralité Un schéma logique est la représentation graphique de l’équation d’une ou plusieurs variables de sortie grâce aux opérateurs de base vus précédemment. On distingue 3 types de schémas logiques: - Le 1er type comprend des opérateurs NON, ET, OU - Le 2éme type ne comprend que des opérateurs NON ET (NAND) - Le 3éme type ne comprend que des opérateurs NON OU (NOR). 1 Schéma logique comprenant des opérateur NON, ET, OU : Pour traduire une équation en schéma logique avec ces opérateurs, il faut : - Déterminer le nombre d’opérateurs NONcompter le nombre des variables complémentées. - Déterminer le nombre d’opérateurs ET compter le nombre de groupes de produit logique et déduire le nombre d’entrées nécessaires sur chaque opérateur. - Déterminer le nombre d’opérateur OU compter le nombre de groupes de somme logique et déduire le nombre d’entrées nécessaires sur chaque opérateur. - Relier les différents opérateurs de base. Exemples : - Nombre d’opérateurs NON : 4 Nombre d’opérateurs ET : 3 à 3 entrées Nombre d’opérateurs OU : 1 à 3 entrées. L’équation comporte deux fois B3; pour les obtenir, il suffit d’utiliser un seul opérateur NON , d’où 3 opérateurs NON au lieu de 4. Schéma logique 2 Schéma logique ne comprenant que des opérateurs NON ET SS . Pour réaliser ce schéma, il faut les deux conditions suivantes : - l’équation ne doit comporter que des ET logiques transformer l’équation en appliquant les théorèmes de De Morgan. - l’équation doit être entièrement recouverte par une barre utiliser les propriétés de la négation S . S Exemple: R1B1B2B3 B4B1B5 B4B2B3 Transformation des OU logiques en ET logique en appliquant le théorème de De Morgan : R1R1B1B2 B3 B4 B1B5 B4 B2 B3 B1B2 B3B4 B1B5 B4 B2 B3 Il y a huit barres 8 opérateurs NON ET. Schéma logique 3 Schéma logique ne comprenant que des opérateur NON OU Pour réaliser ce schéma il faut les deux conditions suivantes : - l’équation ne doit comporter que des ou logiques transformer l’équation en appliquant les théorèmes de Morgan. - l’équation doit être entièrement recouverte par une barre utiliser les propriétés de la négation : Exemple: R1B1B2B3 B4B1B5 B5B2B3 Schéma logique E. Réduire des équations par la méthode de Karnaugh I- Transposition d’une équation logique dans un diagramme de Karnaugh : 1-1 Diagramme de Karnaugh : C’est un diagramme qui reprend les indications de la table de vérité pour les mettre sous une autre forme. Le nombre de cases est égal au nombre de lignes de la table de vérité, ou encore au nombre de combinaisons des variables d’entrée. Exemple : A/ 1 variable d’entrée A B/ 2 variables d’entrée A et B C/ 3 variables d’entrée A, B, et C 21 combinaisons = 2 cases. 22 combinaisons = 4 cases. 23 combinaisons = 8 cases TABLEAU DE KHARNAUGH à 2 VARIABLES a b 0 0 1 1 TABLEAU DE KHARNAUGH à 3 VARIABLES ab c 00 0 1 01 11 10 TABLEAU DE KHARNAUGH à 4 VARIABLES ab cd 00 01 11 10 00 01 11 10 LS 7408 V CC 4B 4A 4Y 3B 3A 3Y 14 13 12 11 10 9 8 1 2 3 4 5 6 7 1A 1B 1Y 2A 2B 2Y GND LS 7432 VCC 4B 4A 4Y 3B 3A 3Y 14 13 12 11 10 9 8 1 2 3 4 5 6 7 1A 1B 1Y 2A 2B 2Y GND LS7400 4B 4A 4Y 3B 14 13 12 11 1 2 3 1B 1Y V CC 1A 3A 3Y 10 9 8 4 5 6 7 2A 2B 2Y GND SN74LS10 V CC 1C 1Y 3C 3B 3A 3Y 14 13 12 11 10 9 8 1 2 3 4 5 6 7 1B 2A 2B 2C 2Y 1A GND SN74LS02 Vcc 4Y 4B 4A 3Y 14 13 12 11 10 1 2 3 4 5 6 1Y 1A 2B 2Y 2A 2B 3B 9 3A 8 7 GND F. Effectuer des conversions entre des bases numériques et des codes. – Conversion entre bases : 1-1 Conversion des bases 2, 8 ou 16 en base 10 : Pour convertir un nombre de base 10, il suffit de décomposer le nombre en ses quantités et d’en faire la somme. Exemples : (10110, 01)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 0 x 20 + 0 x 2-1 + 1 x 2-2 = 1 x 16 + 0 x 8 + 1 x 4 + 1 x 2 + 0 x 1 + 0 x 0, 5 + 1 x 0, 25 = (22, 25)10 (372, 06)8 = 3 x 82+ 7 x 81+ 2 x 80 + 0 x 8-1+ 6 x 8-2 = 3 x 64 + 7 x 8 + 2 x 1 + 0 x 0, 125 + 6 x 0, 015625 = (250, 09375)10 (FD, 2A)16 = F x 161 + D x 160 + 2 x 16-1 + A x 16-2 = 15 x 16 + 13 x 1 + 2 x 0, 0625 + 10 x 0, 00390625 =(253, 1640625)10 1-2- Conversion de la base 10 aux bases 2, 8 et 16 : Cette conversion se fait en deux parties. 1- La partie entière. 2- La partie fractionnaire. Exemple 1 : Conversion du nombre 91, 2 en BASE 2 On traite d’abord la partie entière : On divise le nombre 91 par 2 successivement. Les restes de la division correspondent aux symboles composant le nombre binaire, le premier reste occupant la position 20 . Position 20 21 23 24 25 26 on l’écrit dans le sens. (91)10 = (1011011)2 Reste 1 1 0 1 1 1 91/2 45/2 22/2 11/2 5/2 2/2 0 On traite après la partie fractionnaire : 0, 4 x 2 = 0_, 8 0, 8 x 2 = 1, 6 0, 6 x 2 = 1, 2 0, 2 x 2 = 0, 4 0, 4 x 2 = 0,8 D’où (0, 4)10 = (0, 01100)2 Résultat : (91, 4)10 = (1011011, 0110)2 1-3- Conversion de la base binaire à la base octale : On obtient l’équivalent octal du nombre binaire en le partageant en tranche de 3 chiffres de droite à gauche pour la partie entière et de gauche à droite pour la partie fractionnaire, puis en remplaçant chaque tranche par son équivalent octal. Exemple : * (011/010/101/110 , 001/011/100)2 = ( 3 2 5 6 , 1 3 4 )8 * On peut faire l’opération à l’inverse du octal au binaire Ex : (2 4 3, 2 1)8 (010 100 011, 010 001)2 1-4 Conversion de la base 2 à la base 16 : On obtient l’équipement hexadécimale du nombre binaire en le partageant en tranches de 4 chiffres de D à G pour la partie entière et de G à D pour la partie fractionnaire et en remplaçant chaque tranche par son équivalent hexadécimal. Exemple : * (0011/1101/0010/1110 , 1101/0100)2 = ( 3 D 2 E , D 3 4 )16 * On peut faire l’opération inverse de la base 16 à la base 2. Ex : (B 3 0, 1 A)16 (1011 0011 0000, 0001 1010)2 II- Conversions Intercode : 2-1 Conversion du code (naturel) en code Gray : (binaire réfléchi) Pour chaque chiffre du nombre à transformer, on le transcrit tel que ou bien on le remplace par son complément selon que ce chiffre est précédé d’un 0 ou d’un 1. Exemple : Binaire : 001101 Gray : 01011 0100100 110110 2-2 Conversion du code de Gray au code binaire : On part de gauche à droite, on transcrit chaque chiffre tel que ou on le remplace par son complément selon que le chiffre précédent obtenu de l’équipement binaire est un 0 ou un 1. Exemple : Gray : 10110 100101100111 Binaire : 0110411 0111001000101 G. Montage des circuits de base Multiplexeur Sélection d’une voie parmi 2N par N bits de commande Si (S1S0)2 = 0 alors Q = I0 I0 I1 I2 I3 Q S0 . S1 . I O Q Si (S1S0)2 = 1 alors Q = I1 Q S0 .S1.I1 Mux 4 vers 1 S1 S0 Q S1 . S0 . I 0 S1 . S 0 . I 1 S1 . S 0 . I 2 S1 . S 0 . I 3 18/03/2020 Yannick HERVE (ENSPS) 58 Multiplexeur (constitution) Q S1 . S0 . I 0 S1 . S 0 . I 1 S1 . S 0 . I 2 S1 . S 0 . I 3 I0 & I1 & Q I2 & >1 I3 S1 S0 18/03/2020 & Yannick HERVE (ENSPS) 59 Multiplexeur : réalisation de fonctions Utilisation de la première forme canonique ab 00 01 10 11 F 0 1 1 0 F(0,0) F(0,1) F(1,0) F(1,1) 0 1 1 0 I0 I1 Mux I2 4 vers 1 I3 S S 1 0 Q= F a b 18/03/2020 Yannick HERVE (ENSPS) 60 Multiplexeur : réalisation de fonctions Utilisation de la première forme canonique ab 00 01 10 11 F 0 1 1 0 F(0,0) F(0,1) F(1,0) F(1,1) 0 1 1 0 I0 I1 Mux I2 4 vers 1 I3 S S 1 0 Q= F a b Toute fonction logique de N variables est réalisable avec un multiplexeur de 2N vers 1 18/03/2020 Yannick HERVE (ENSPS) 61 Multiplexeur : réalisation de fonctions (2) abc 000 001 010 011 100 101 110 111 F 0 0 1 1 0 1 1 0 18/03/2020 (ab)2 = 0 F=0 (ab)2=1 F=1 (ab)2 = 2 F=c (ab)2 = 3 F=c 0 1 c c I0 I1 Mux I2 4 vers 1 I3 S S 1 0 Q= F a b Yannick HERVE (ENSPS) 62 Multiplexeur : réalisation de fonctions (2) abc 000 001 010 011 100 101 110 111 F 0 0 1 1 0 1 1 0 (ab)2 = 0 F=0 (ab)2=1 F=1 (ab)2 = 2 F=c (ab)2 = 3 F=c 0 1 c c I0 I1 Mux I2 4 vers 1 I3 S S 1 0 Q= F a b Toute fonction logique de N variables est réalisable avec un multiplexeur de 2N-1 vers 1 et un inverseur 18/03/2020 Yannick HERVE (ENSPS) 63 Démultiplexeur : 1 parmi 2n Q0 Q1 E 1 parmi 2N S1 S0 18/03/2020 Q2 Q3 Q0 = E si (S1S0)2=0 E sinon Q1 = E si (S1S0)2=1 E sinon Remarque : E peut ne pas être «disponible» Sortie sélectionnée = 1 les autres 0 ou Sortie sélectionnée = 0 les autres 1 Yannick HERVE (ENSPS) 64 Démultiplexeur : 1 parmi 2n E=1 Q0 E . S1 . S0 E . S1 . S0 E 1 parmi 2N Q0 Q1 Q2 Q3 E . S1 . S0 E .( S1 S0 ) Q1 E . S1 . S0 E . S1 . S0 E . S1 . S0 E .( S1 S0 ) S1 S0 18/03/2020 Q0 S1 . S0 Q1 S1 . S0 Qi=(i)2 Yannick HERVE (ENSPS) 65 Démultiplexeur: réalisation de fonctions ab 00 01 10 11 F 0 1 1 0 Q0 F(0,0) F(0,1) F(1,0) F(1,1) Q1 1 Q2 Q3 F >1 1 parmi 2N a b S1 S0 18/03/2020 Yannick HERVE (ENSPS) 66 Codeur (ou Encodeur) Faire correspondre un mot code à un symbole 1 entrée parmi N 0 1 0 0 I0 I1 I2 I3 C0 C1 Le code de l’entrée Exemple : Clavier / Scan code Caractère / Code ASCII 18/03/2020 Yannick HERVE (ENSPS) 67 Décodeur Remarque : Multiplexeur Codeur Démultiplexeur Décodeur Décodeur = Démultiplexeur (à E fixe) Exemple 0 1 Q0 C0 C1 Q1 Q2 Q3 0 0 1 0 Exemple : adresses pixel / position effective pixel 18/03/2020 Yannick HERVE (ENSPS) 68