ELP 304 : Cours 2 Circuits combinatoires
Transcription
ELP 304 : Cours 2 Circuits combinatoires
ELP 304 : Cours 2 Circuits combinatoires Michel Jézéquel Département Électronique Support réalisé avec la participation de Christophe Jégo Les circuits combinatoires Définition Les opérateurs de transcodage • les codeurs • les décodeurs • les transcodeurs Les opérateurs d’aiguillage • les multiplexeurs • les démultiplexeurs Les opérateurs de comparaison Les opérateurs arithmétiques • les additionneurs • les multiplieurs • les unités arithmétiques et logiques page 1 ELP 304 Cours 2 Les circuits combinatoires Définition Les opérateurs de transcodage • les codeurs • les décodeurs • les transcodeurs Les opérateurs d’aiguillage • les multiplexeurs • les démultiplexeurs Les opérateurs de comparaison Les opérateurs arithmétiques • les additionneurs • les multiplieurs • les unités arithmétiques et logiques page 2 ELP 304 Cours 2 Définition Exemple de modélisation d'un circuit combinatoire x1 S = x1 ⋅ x2 + x3 x2 Δ = 2 nanosecondes x3 Un circuit combinatoire est une mise en œuvre matérielle d'une fonction combinatoire Un circuit combinatoire a des caractéristiques temporelles qui dépendent de la technologie employée page 3 ELP 304 Cours 2 x1 x2 x3 S 2 ns S Définition Circuits combinatoires versus Circuits séquentiels Circuits combinatoires : ¾ C’est l’absence de mémoire qui caractérise les circuits combinatoires. ¾ Les sorties sont une fonction combinatoire des entrées: S=f(E). ¾ A une configuration des entrées correspond une configuration unique des sorties. page 4 ELP 304 Cours 2 Circuits séquentiels : ¾ Les sorties sont fonctions des entrées mais aussi de l’état interne du système. ¾ A une configuration des entrées peut correspondre plusieurs configurations des sorties. ¾ L’état interne du système est une trace du passé du système numérique. Définition Circuits combinatoires : Circuits Séquentiels : • C’est l’absence de mémoire qui caractérise les circuits combinatoires. • Les sorties sont fonctions des entrées mais aussi de l’état interne du système. • Les sorties sont une fonction combinatoire des entrées: S=f(E). • A une configuration des entrées peut correspondre plusieurs configurations des sorties. • A une configuration des entrées correspond une configuration unique des sorties. page 5 ELP 304 Cours 2 • L’état interne du système est une trace du passé du système numérique. Les circuits combinatoires Définition Les opérateurs de transcodage • les codeurs • les décodeurs • les transcodeurs Les opérateurs d’aiguillage • les multiplexeurs • les démultiplexeurs Les opérateurs de comparaison Les opérateurs arithmétiques • les additionneurs • les multiplieurs • les unités arithmétiques et logiques page 6 ELP 304 Cours 2 Les opérateurs de transcodage : définition Un opérateur de transcodage est un circuit transformant une information présente en entrée sous une forme donnée (code 1) en la même information en sortie mais sous une autre forme (code 2) Les trois types de transcodeurs n n1 n ≤ 2n n2 ≤ 2n Codeur (encodeur) page 7 ELP 304 Cours 2 Décodeur Transcodeur Les opérateurs de transcodage : les codeurs Classiquement pour un codeur, lorsqu'une entrée (sur les N) est activée, les sorties affichent le numéro de l’entrée active dans le code binaire choisi (sur n bits), tel que: 2 n −1 < N ≤ 2 n Exemple: codeur décimal vers binaire (10 entrées vers 4 sorties) E0 E1 E2 entrées codeur A0 A1 A2 A3 sorties E9 Ex: si E5=1 et Ei=0 pour toutes les autres entrées, alors les sorties affichent (A3,A2,A1,A0)=(0,1,0,1). page 8 ELP 304 Cours 2 Les opérateurs de transcodage : les codeurs prioritaires Ce type de codeur fixe un ordre de priorité entre les entrées. Pour un codage en binaire pur, le codeur prioritaire donne en principe la priorité à l’entrée de poids le plus élevé. Exemple: codeur prioritaire (4 entrées vers 2 sorties) E3 E2 E1 E0 A1 A0 1 X X X 1 1 0 1 X X 1 0 0 0 1 X 0 1 E2 0 0 0 1 0 0 E3 Équations de sortie : A0 = E3 + E2.E1 A1 = E3 + E2 page 9 ELP 304 Cours 2 E0 A0 E1 entrées encodeur prioritaire A1 sorties Les opérateurs de transcodage : les décodeurs Les décodeurs: ¾ ¾ ¾ ¾ n entrées de données N sorties avec N ≤ 2 n Une seule sortie est active à la fois Quand un nombre est codé en binaire pur à l’entrée, c’est la sortie correspondante qui est activée. An-1 0 1 2 3 A0 n 2 -1 Exemple de décodeur binaire "1 parmi 8" Equations de sortie s0 <e2,e1,e0> s1 E . 3 . s7 page 10 ELP 304 Cours 2 8 sorties s0 = e2 e1 e0 s1 = e2 e1e0 s2 = e2 e1 e0 etc. Les opérateurs de transcodage : les décodeurs Accroissement de capacité par association de circuits Réaliser un décodeur "1 parmi 16" à l'aide de décodeurs "1 parmi 8" y0 = c3 c2 c1 c0 y1 = c3 c2 c1c0 ⋅⋅⋅ y7 = c3c2 c1c0 y8 = c3 c2 c1 c0 y9 = c3 c2 c1c0 ⋅⋅⋅ y15 = c3c2 c1c0 page 11 Solution : deux décodeurs traitent en parallèle les bits c2, c1, c0. Le bit c3 sélectionne les sorties de celui qui doit être actif Schéma de principe <c2,c1,c0> Va = entrée de validation ELP 304 Cours Vb = S2 0 + S1 + …. + S7 c3 /s0 E /s1 va . vb . /s7 /y0 /y1 . . /y7 /s0 E /s1 va . vb . /s7 /y8 /y9 . . /y15 Les opérateurs de transcodage : les transcodeurs Exemple: le transcodeur BCD/7 segments 01 01 0 10 A B C D S0 S1 S2 S3 S4 S5 S6 Transcodeur BCD / 7 segments Il est souvent nécessaire de visualiser une information codée en binaire sur des afficheurs (7 segments) => convertisseur BCD (Binary-Coded Decimal) / 7 segments => convertisseur binaire pur / 7 segments page 12 ELP 304 Cours 2 Les opérateurs de transcodage : les transcodeurs Exemple: le transcodeur BCD/7 segments Table de vérité Code BCD S0 S1 S6 S5 S2 S4 S3 page 13 7 segments S6 S5 S4 S3 S2 S1 S0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 ELP 304 Cours 2 Les circuits combinatoires Définition Les opérateurs de transcodage • les codeurs • les décodeurs • les transcodeurs Les opérateurs d’aiguillage • les multiplexeurs • les démultiplexeurs Les opérateurs de comparaison Les opérateurs arithmétiques • les additionneurs • les multiplieurs • les unités arithmétiques et logiques page 14 ELP 304 Cours 2 Les opérateurs d'aiguillage : définition Démultiplexeur Multiplexeur n 2 entrées sortie n adresse rôle : aiguiller un signal d’entrée parmi 2n vers une sortie à l’aide de n bits d’adresse page 15 ELP 304 Cours 2 2n sorties entrée n adresse rôle : aiguiller un signal d’entrée vers une des 2n sorties en fonction de l’état des bits d’adresse Les opérateurs d'aiguillage : multiplexeurs Applications des multiplexeurs Conversion parallèle/série : aiguiller les informations présentes en parallèle à l’entrée du MUX en des informations de type série en sortie ; toutes les combinaisons d’adresses sont énumérées une par une sur les entrées de sélection. Réalisation de fonctions logiques : toute fonction logique de N variables est réalisable avec un multiplexeur de 2N vers 1 VDD A B F(A,B) E0 0 0 1 E1 0 1 0 E2 1 0 1 E3 1 1 1 F VDD A page 16 ELP 304 Cours 2 B Les opérateurs d'aiguillage : démultiplexeurs Les démultiplexeurs réalisent la fonction inverse du multiplexeur : • 1 entrée de données • n entrées de sélection •N =2n sorties E 1 parmi 22 S1 S0 Applications: conversion d’une information de type série en une information de type parallèle. page 17 ELP 304 Cours 2 Q0 Q1 Q2 Q3 Q0 = E si (S1S0)2=0 0 sinon Q1 = E si (S1S0)2=1 0 sinon Les circuits combinatoires Définition Les opérateurs de transcodage • les codeurs • les décodeurs • les transcodeurs Les opérateurs d’aiguillage • les multiplexeurs • les démultiplexeurs Les opérateurs de comparaison Les opérateurs arithmétiques • les additionneurs • les multiplieurs • les unités arithmétiques et logiques page 18 ELP 304 Cours 2 Les opérateurs de comparaison : définition Comparateur élémentaire : opérateur capable de détecter l’égalité et de comparer deux nombres. Table de vérité A B E (A=B) S (A>B) I (A<B) 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 A S = 1 si (AA>> BB) = AB B A= = B) = A ⊕ B E = 1 si(A ( A<<BB) = AB I = 1 si A page 19 ELP 304 Cours 2 Les opérateurs de comparaison : comparateur complet Exemple : comparer 2 mots de n=4 bits 9 E : A=B si A3=B3 et A2=B2 et A1=B1 et A0=B0 (égalité) 9 S : A>B si A3>B3 ou (A3=B3 et A2>B2) ou (A3=B3 et A2=B2 et A1>B1) ou (A3=B3 et A2=B2 et A1=B1 et A0>B0) 9 I : A<B si I = E + S Réalisation possible à partir de 4 comparateurs de 2 bits ou utilisation d’un comparateur modulaire A B Les entrées (Ain > Bin), (Ain=Bin) et (Ain<Bin) permettent de cascader les comparateurs page 20 ELP 304 Cours 2 A3 A2 A1 A0 comparateur x x 85 B3 B2 B1 B0 A > B in A = B in A < B in A > B out A = B o ut A < B out sorties Les circuits combinatoires Définition Les opérateurs de transcodage • les codeurs • les décodeurs • les transcodeurs Les opérateurs d’aiguillage • les multiplexeurs • les démultiplexeurs Les opérateurs de comparaison Les opérateurs arithmétiques • les additionneurs • les multiplieurs • les unités arithmétiques et logiques page 21 ELP 304 Cours 2 Les opérateurs arithmétiques : les additionneurs Le demi additionneur prend en entrée 2 bits Ak et Bk et délivre en sortie leur somme Sk et la retenue (ou carry) Ck Bk Ak Bk Ck Sk 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 & Ck Ck = Ak .Bk page 22 ELP 304 Cours 2 Ak =1 Sk S k = Ak ⊕ Bk Les opérateurs arithmétiques : les additionneurs L’additionneur complet permet de prendre en Équations logiques de compte une retenue entrante Ck −1 retenue entrante retenue sortante somme Ak Bk Ck-1 Ck Sk 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 page 23 ELP 304 Cours 2 l’additionneur complet: S k = Ak ⊕ Bk ⊕ Ck −1 Ck = Ak .Bk + ( Ak ⊕ Bk )Ck −1 Bk Ak Ck-1 1/2 add. Ak.Bk >=1 Ck Ak ⊕ Bk 1/2 add. (Ak ⊕ Bk ).Ck-1 Sk=Ak⊕Bk ⊕Ck-1 Les opérateurs arithmétiques : les additionneurs Additionneurs à retenue propagée (ripple-carry adder) Ak Bk S k = Ak ⊕ Bk ⊕ Ck −1 Ck = Ak Bk + ( Ak ⊕ Bk ) Ck −1 Ck-1 '0' S0 Problème : les tps de propagation s’ajoutent page 24 ELP 304 Cours 2 1/2 add. A Cout B S Cin S1 1/2 add. A0 B0 A Cout B S Cin S2 >=1 A Cout B S Cin A2 B2 A1 B1 A Cout B S Cin Ck Sk Les opérateurs arithmétiques : les additionneurs Additionneurs à retenue anticipée (carry look-ahead adder) Principe : le calcul des retenues est fait directement à partir des entrées avantage : calculs en parallèle Î gain en rapidité inconvénient : plus de portes logiques Î coût en complexité matérielle Ck = Ak Bk + ( Ak ⊕ Bk )Ck −1 Calcul de la retenue anticipée : Ck = Gk + Pk Ck −1 (1) avec Gk = Ak Bk : terme de génération Pk = Ak ⊕ Bk : terme de propagation Puis, développement de (1) par récurrence page 25 ELP 304 Cours 2 Les opérateurs arithmétiques : les additionneurs Additionneurs à retenue anticipée (carry look-ahead adder) C4 C0 C3 C2 C1 C4 = G3 + P3(G2 + P2(G1 + P1(G0 + C0P0))) page 26 ELP 304 Cours 2 Les opérateurs arithmétiques : les multiplieurs Multiplication binaire Porte AND + Additionneur + P7 page 27 + A3 A2 A1 A0 B3 B2 B1 B0 A3B0 A2B0 A1B0 A0B0 A3b1 A2B1 A1B1 A0B1 A3B2 A2B2 A1B2 A0B2 A3B3 A2B3 A1B3 A0B3 P6 P5 ELP 304 Cours 2 P4 P3 P2 P1 P0 Les opérateurs arithmétiques : les multiplieurs B0 A3 A2 A1 A0 Solution combinatoire B1 A3 A2 A1 A0 0 b3 Réseau de portes ET et d’additionneurs binaires a3 r3 s3 B2 A3 b3 s3 B3 A3 b3 r3 page 28 A2 a3 r3 b2 a2 b 1 a1 Additionneur 4 bits s2 s1 s0 s3 a0 r-1 A1 0 A0 b2 a2 b1 a1 Additionneur 4 bits s2 s1 s0 A2 a3 b0 b0 a0 r-1 A1 0 A0 b2 a2 b1 a1 Additionneur 4 bits s2 s1 s0 b0 a0 r-1 0 ELP 304 Cours 2 P7 P6 P5 P4 P3 P2 P1 P0 Les opérateurs arithmétiques : les Unités Arithmétiques et Logiques (UALs) composants capables d’effectuer un ensemble d’opérations arithmétiques. Nous pouvons distinguer 4 types de fonction ¾ opérations logiques de base ¾ comparaison et décalage ¾ addition et soustraction ¾ multiplication et division opérande code opérateur opérande UAL résultat page 29 ELP 304 Cours 2 Les n entrées de sélection ou de commande permettent de sélectionner une opération parmi 2n. Les opérateurs arithmétiques : les Unités Arithmétiques et Logiques (UALs) Exemple : le circuit xx382 •Les entrées de commande S2 S1 S0 permettent de sélectionner une opération parmi 8. S2 S1S0 Cn Opérations arithmétiques: A plus B, A A3... A0 moins B, B moins A Opérations logiques: XOR(A,B), A ou B, A et B Mise Cn+4 •Opérandes: A et B sur 4 bits. •OVR (Overflow): indicateur de dépassement de capacité. page 30 ELP 304 Cours 2 F3 …F0 OVR à 0 (Clear), Mise à 1 (Preset) •Cn : retenue entrante; Cn+4 : retenue sortante ALU 382 B3... B0