13.07.2015 Views

ELP 304 : Cours 2 Circuits combinatoires Michel Jézéquel…

ELP 304 : Cours 2 Circuits combinatoires Michel Jézéquel…

ELP 304 : Cours 2 Circuits combinatoires Michel Jézéquel…

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>ELP</strong> <strong>304</strong> : <strong>Cours</strong> 2<strong>Circuits</strong> <strong>combinatoires</strong><strong>Michel</strong> JézéquelDépartement ÉlectroniqueSupport réalisé avec la participation de Christophe Jégo


Les circuits <strong>combinatoires</strong>• 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 logiquespage 1 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les circuits <strong>combinatoires</strong>• 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 logiquespage 2 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


DéfinitionExemple de modélisation d'un circuit combinatoirexxx123S = x1 ⋅ x2+ x3Δ = 2 nanosecondesSUn circuit combinatoire estune mise en œuvre matérielled'une fonction combinatoireUn circuit combinatoire ades caractéristiquestemporellesqui dépendentde la technologie employéepage 3 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2x 1x 2x 3S2 ns


Définition<strong>Circuits</strong> <strong>combinatoires</strong> versus <strong>Circuits</strong> séquentiels <strong>Circuits</strong> <strong>combinatoires</strong> :‣ C’est l’absence de mémoirequi caractérise les circuits<strong>combinatoires</strong>.‣ Les sorties sont une fonctioncombinatoire des entrées:S=f(E).‣ A une configuration desentrées correspond uneconfiguration unique dessorties. <strong>Circuits</strong> séquentiels :‣ Les sorties sont fonctions desentrées mais aussi de l’étatinterne du système.‣ A une configuration desentrées peut correspondreplusieurs configurations dessorties.‣ L’état interne du système estune trace du passé dusystème numérique.page 4 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Définition• <strong>Circuits</strong> <strong>combinatoires</strong> :• C’est l’absence de mémoirequi caractérise les circuits<strong>combinatoires</strong>.• Les sorties sont unefonction combinatoire desentrées: S=f(E).• A une configuration desentrées correspond uneconfiguration unique dessorties.• <strong>Circuits</strong> Séquentiels :• Les sorties sont fonctionsdes entrées mais aussi del’état interne du système.• A une configuration desentrées peut correspondreplusieurs configurations dessorties.• L’état interne du systèmeest une trace du passé dusystème numérique.page 5 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les circuits <strong>combinatoires</strong>• 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 logiquespage 6 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs de transcodage : définitionUn opérateur de transcodage est un circuit transformant uneinformation présente en entrée sous une forme donnée (code 1) en lamême information en sortie mais sous une autre forme (code 2)Les trois types de transcodeurs≤ 2 nnn≤ 2 nn 1 n 2Codeur (encodeur)DécodeurTranscodeurpage 7 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs de transcodage :les codeursClassiquement pour un codeur, lorsqu'une entrée (sur les N) estactivée, les sorties affichent le numéro de l’entrée active dans lecode binaire choisi (sur n bits), tel que:Exemple: codeur décimal vers binaire (10 entrées vers 4 sorties)entréesE0E1E2n−2 1 < N ≤ 2codeurnA0A1A2A3sortiesE9Ex: si E5=1 et Ei=0 pour toutes les autres entrées, alors les sortiesaffichent (A3,A2,A1,A0)=(0,1,0,1).page 8 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs de transcodage :les codeurs prioritairesCe type de codeur fixe un ordre de priorité entre les entrées.Pour un codage en binaire pur, le codeur prioritaire donne enprincipe la priorité à l’entrée de poids le plus élevé.Exemple: codeur prioritaire (4 entrées vers 2 sorties)E3E2E1E0A1A0E0100X10XX1XXX110101entréesE1E2encodeurprioritaireA0A1sorties000100E3Équations de sortie :A 0 = E 3 + E 2 .E 1 A 1 = E 3 + E 2page 9 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs de transcodage :les décodeursLes décodeurs:‣ n entrées de données‣ N sorties avecnN ≤ 2‣ Une seule sortie est active à la fois‣ Quand un nombre est codé enbinaire pur à l’entrée, c’est la sortiecorrespondante qui est activée.Exemple de décodeur binaire "1 parmi 8"3Es 0s 1..s 78sortiessss012etc.An-1A0Equations de sortie===eee222eee111eee0000123n2 -1page 10 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs de transcodage :les décodeursAccroissement de capacité par association de circuitsRéaliser un décodeur "1 parmi 16" à l'aide de décodeurs "1 parmi 8"= 3 2 1 0 Solution :y0c c c cy1= c3c2c1c0⋅⋅⋅y7= c3c2c1c0y8= c3c2c1cy9= c3c2c1c⋅⋅⋅y15= c3c2c1cpage 11 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2000deux décodeurs traitent enparallèle les bits c 2 , c 1 , c 0 .Le bit c 3 sélectionne lessorties de celui qui doitêtre actifSchéma deprincipeVa = entrée de validationVb = S 0 + S 1 + …. + S 7c 3/s 0 /y 0E /s 1 /y 1v a. .v b. ./s 7 /y 7/s 0 /y 8E /s 1 /y 9v a. .v b. ./s 7 /y 15


Les opérateurs de transcodage :les transcodeursExemple: le transcodeur BCD/7 segments1010001ABCDS0S1S2S3S4S5S6TranscodeurBCD / 7 segmentsIl est souvent nécessaire de visualiser une information codée en binaire sur desafficheurs (7 segments) => convertisseur BCD (Binary-Coded Decimal) / 7 segments=> convertisseur binaire pur / 7 segmentspage 12 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs de transcodage :les transcodeursExemple: le transcodeur BCD/7 segmentsTabledevérité00Code BCD000001S611S5007 segmentsS4 S3 S21 1 11 0 0S110S010S00000110111110111100011S1S601001110010S501010111011S2S4001111010110111010101110001111111S310011111011page 13 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les circuits <strong>combinatoires</strong>• 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 logiquespage 14 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs d'aiguillage : définitionMultiplexeurDémultiplexeur2 nentréessortieentrée2 nsortiesnadressenadresserôle : aiguiller un signal d’entréeparmi 2 n vers une sortie à l’aidede n bits d’adresserôle : aiguiller un signal d’entréevers une des 2 n sorties enfonction de l’état des bitsd’adressepage 15 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs d'aiguillage :multiplexeursApplications des multiplexeurs• Conversion parallèle/série : aiguiller les informationsprésentes en parallèle à l’entrée du MUX en des informationsde type série en sortie ; toutes les combinaisons d’adressessont énumérées une par une sur les entrées de sélection.• Réalisation de fonctions logiques : toute fonction logique deN variables est réalisable avec un multiplexeur de 2 N vers 1ABF(A,B)VDDE0001E1F010E2110111VDDE3ABpage 16 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs d'aiguillage :démultiplexeursLes démultiplexeurs réalisent la fonction inverse du multiplexeur :• 1 entrée de données• n entrées de sélection• N =2 n sortiesEApplications: conversion d’uneinformation de type série en uneinformation de type parallèle.Q 0Q 1Q 2Q 3S 11 parmi 2 2S 0Q 0 = E si (S 1 S 0 ) 2 =00 sinonQ 1 = E si (S 1 S 0 ) 2 =10 sinonpage 17 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les circuits <strong>combinatoires</strong>• 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 logiquespage 18 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs de comparaison : définitionComparateur élémentaire :opérateur capable de détecterl’égalité et de comparer deuxnombres.A00B01E(A=B)10S(A>B)00I(AB)= ABE=1 si ( A=B A = B)= A⊕I=1 si ( A


Les opérateurs de comparaison :comparateur completExemple : comparer 2 mots de n=4 bits E : A=B si A3=B3 et A2=B2 et A1=B1 et A0=B0 (égalité) S : A>B si A3>B3 ou (A3=B3 et A2>B2) ou (A3=B3 et A2=B2 etA1>B1) ou (A3=B3 et A2=B2 et A1=B1 et A0>B0) I : A Bin), (Ain=Bin) et (Ain B inA = B inA < B inA > B outA = B outA < B outsorties


Les circuits <strong>combinatoires</strong>• 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 logiquespage 21 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs arithmétiques :les additionneursLe demi additionneur prend en entrée 2 bits A k et B ket délivre en sortie leur somme S k et la retenue (ou carry) C kB k=1A kA kB kS k00000101&100111C k01C kS kC = A . BkkkSk=Ak⊕Bkpage 22 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


L’additionneur complet permet de prendre encompte une retenue entrante C k− 1A k00001111Les opérateurs arithmétiques :les additionneursB k00110011retenueentranteC k-101010101page 23 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2retenuesortanteC k0 00 10 11 00 11 01 01 1S ksommeÉquations logiques del’additionneur complet:SCkk==A k .B k>=1AA⊕ B⊕ Ck k k −1k. Bk+ ( Ak⊕ Bk) Ck−1B k A k C k-11/2 add.A k ⊕ B k1/2 add.C k(A k ⊕ B k ).C k-1S k =A k ⊕B k ⊕C k-1


Les opérateurs arithmétiques : lesadditionneursAdditionneurs à retenue propagée (ripple-carry adder)A k ASk= Ak⊕ Bk⊕ Ck−1B k BCk= AkBk+ ( Ak⊕ Bk) Ck−1C k-1A A2CB outB 2S S 2CA Ain1CB B out1S SC 1A Ain0CB B out0S'0' C Sin01/2 add.1/2 add.C inC outSC kS kProblème : les tps de propagation s’ajoutent>=1page 24 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs arithmétiques :les additionneursAdditionneurs à retenue anticipée (carry look-ahead adder)Principe : le calcul des retenues est fait directement à partir des entréesavantage : calculs en parallèle gain en rapiditéinconvénient : plus de portes logiques coût en complexité matérielleCk= AkBk+ ( Ak⊕ Bk) Ck−1Calcul de la retenue anticipée:avecCGPkkkGPuis, développement de (1)page 25 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2= k + k k −1= A= AkkB⊕kP CB(1): terme de générationk: terme de propagationpar récurrence


Les opérateurs arithmétiques :les additionneursAdditionneurs à retenue anticipée (carry look-ahead adder)C4C0C3C2C1C 4= G 3+ P 3(G 2+ P 2(G 1+ P 1(G 0+ C 0P 0)))page 26 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs arithmétiques :les multiplieursMultiplication binaireA 3A 2A 1A 00A 0 B 1A 0 B 2Porte ANDB 0A 3 B 0 A 2 B 0 A 1 B 0 A 0 BAdditionneur + A 3 b 1 A 2 B 1 A 1 B 1+ A 3 B 2 A 2 B 2 A 1 B 2+ A 3 B 3 A 2 B 3 A 1 B 3 A 0 B 3P 7 P 6 P 5 P 4 P 3 P 2 P 1 P 0page 27 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2B 3B 2B 1


Les opérateurs arithmétiques :les multiplieursSolution combinatoireB0A3 A2 A1 A0B1A3 A2 A1 A00Réseau de portes ETetd’additionneurs binairesB2r3b3 a3 b2 a2 b1 a1 b0 a0Additionneur 4 bitsr-1s3 s2 s1 s0A3 A2 A1 A00b3 a3 b2 a2 b1 a1 b0 a0Additionneur 4 bitsr3 r-1s3 s2 s1 s00B3A3 A2 A1 A0r3b3a3s3b2 a2 b1Additionneur 4 bitss2 s1a1s0b0a0r-10page 28 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2P7P6 P5 P4P3 P2 P1P0


Les opérateurs arithmétiques :les Unités Arithmétiques et Logiques (UALs)composants capables d’effectuer un ensemble d’opérationsarithmétiques. Nous pouvons distinguer 4 types de fonction‣ opérations logiques de base‣ comparaison et décalage‣ addition et soustraction‣ multiplication et divisioncodeopérateuropérandeUALopérandeLes n entrées desélection ou decommandepermettent desélectionner uneopération parmi 2 n .résultatpage 29 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2


Les opérateurs arithmétiques :les Unités Arithmétiques et Logiques (UALs)Exemple : le circuit xx382•Les entrées de commande S2 S1 S0permettent de sélectionner une opérationparmi 8.Opérations arithmétiques: A plus B, Amoins B, B moins AOpérations logiques: XOR(A,B), A ouB, A et BMise à 0 (Clear), Mise à 1 (Preset)•Opérandes: A et B sur 4 bits.•C n : retenue entrante; C n+4 : retenuesortante•OVR (Overflow): indicateur dedépassement de capacité.C nALU F3…F0382OVRC n+4A3...A0B3...B0S2 S1S0page 30 <strong>ELP</strong> <strong>304</strong> <strong>Cours</strong> 2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!