Systemesdigitaux Cours 5
Au derniercours On a vu des blocs classiques plus sophistiques: Additionneur Soustracteur Multiplicateur Comparateur On a vu les architectures et comment les concevoir Aujourd hui, on vacontinuer a explorer des blocs classiques 2
Aujourd hui On couvrira Les decodeurs Les encodeurs et les encodeurs de priorite Les multiplexeurs On verra comment concevoir n importe quelle fonction avec les decodeurs et multiplexeurs 3
Decodeur Un decodeurprendun nombrede N bits et le convertiten 2 N bits Il traduitun nombrebinaireen representation one-hot One-hot : nombre binaire contenant des 0 partout sauf a UNE seule place... 4
Decodeur Le one-hot estgrosfacile a gerer: Un bit par signal Le binaireestpetit maisplus difficilea gerer N bits pour 2 N signaux Avec 2 boutons, je controle4 lumieres Avec 10 boutons, je controle 1024 lumieres 5
Decodeur Avec N entrees, ilaura toujours2 N sorties L entree est un nombre binaire La sortie aura toujoursun SEUL 1 estles autresseront des 0 (one-hot) Le 1 sera a la position qui correspond au nombre binaire en entree Ici, l entreeest 10, donc, c estla position 2 qui esta 1 Pour eviter l ambiguite, c est pratique d identifier les pattes... 6
Decodeur Pour rendreles chosesexplicites, voiciles entrees et sorties du decodeur2 a 4: 7
Decodeur Comment implementer ce genre de fonctions? On peut considerer chaque sortie: La sortie 00 sera 1 quandl entreeest00 La sortie 01 sera 1 quandl entreeest01 La sortie 10 sera 1 quandl entreeest10 La sortie 11 sera 1 quandl entreeest11 8
Decodeur Notre decodeur complet pourrait ressembler a ceci: 9
Exemple(seul) Dessinezle circuit des 4 premieres sorties (000 a 011) d un decodeur3 a 8 suivantla meme architecture que tantot. 10
Exemple(seul) On rend disponible TOUTES les valeurs d entree possible On prendceuxqui correspondent a notre sortie eston met un ET: 11
Exemple(Discussion) Proposezun circuit qui controlele convertisseur analogique a numerique: En utilisant3 bits pour controler8 lignes Les commutateurs sont des portes de transmission 12
Fonctionslogiquesavec decodeur La fonctionpremiere des decodeursestde convertir des signaux binaires en one-hot Ils ont aussi une autre caracteristique interessante: Raison: On est capable d implementer des finctions avec Ilssontcommedes tables de verite Faisons un raisonnement pour expliquer pourquoi ca fonctionne... 13
Fonctionslogiquesavec decodeur Imaginonsqu onconnectetoutesles sorties a une porte OU: Quelle genre de fonction faisons-nous? Et pourquoi? 14
Fonctionslogiquesavec decodeur Cette fonction donnerait TOUJOURS 1... Quandl entreeest00, la premiere devient1 Quandl entreeest01, la deuxiemedevient1...et pour toutes les autres entrees Si je voulaisetreplus selectif, je pourraisne connecter QUE certaines sorties du decodeur Cessorties sontles cellesqui correspondents aux 1 dans ma table de verite... 15
Exemple Concevezun XOR avec un decodeur2 a 4 16
Exemple Je commence par faire la table de verite A B XOR 0 0 0 0 1 1 1 0 1 1 1 0 Je connecteque les sorties qui donnent1 a monou... 17
Exemple(seul) Implementezla fonctionsomme d un additionneuravec un decodeur3 a 8 Vousavezle droitd utiliserun decodeuret uneporte OU 18
Exemple(seul) On commence avec la table de verite On dessinele decodeuravecles sorties A B C SOMME 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 Cesontles sorties qu ondoitfaire entrerdansle OU 19
Exemple(seul) Le circuit final ressembledonca: 20
Encodeur On utilise le decodeurquandun signal binaire eststockeet on veutcommander en one-hot Parfois, on veut faire l operation inverse: J aiun signal one-hot qui indiquelequeldes 8 convertisseurs est actif J aimeraisenregistrercettedonneeparcequeca m interesse pour une raison quelconque J aurais besoin d un encodeur... 21
Encodeur L encodeurfait l operationinverse du decodeur: Il prendun code one-hot et le transformeen code binaire Son entree estdonclongue tandisquesasortie est courte L entreea unetaillede 2 N et la sortie a unetaillede N De faconequivalente, l entreea unetaillede N et la sortie a unetaillede LOG 2 N 22
Encodeur Il faut s assurer que l entree soit one-hot Si toutesles entrees etaient 0, ca pourrait causer un probleme Il existe parfois un signal VALIDE qui detecte quand toutes les entrees sont 0 S ily avaitplus queun 1, ca pourraitaussi causer des problemes Peut se resoudre aussi avec VALIDE Il existe aussi une autre option... 23
Encodeur Pour rendreles chosesexplicites, voiciles entrees et sorties de l encodeur4 a 2: 24
Encodeur Pour concevoir l encodeur, on utilise: Table de verite Table de Karnaugh Implementation Maisla table de veriteesttropgrosse, donc, on va simplement sauter a Karnaugh b3b2 b1b0 00 01 11 10 On met des DON T CARE quand l entree est illegale (plus queun 1 oumoinsqueun 1 ) 00 X X 01 X X X 11 X X X X 10 X X X 25
Encodeur Pour le MSB, on a 1 quandl entreeestsoit 1000 ou0100 Ca donnerait 11 et 10, respectivement Pour le LSB, on 1 quandl entreeestsoit1000 ou 0010 Ca donnerait 11 et 01 respectivement b3b2 b1b0 00 01 11 10 b3b2 b1b0 00 01 11 10 00 X 1 X 1 01 X X X 11 X X X X 10 X X X 00 X X 1 01 X X X 11 X X X X 10 1 X X X 26
Encodeur Avec cetteinformation, on peutdire que Le MSB qui esten position du haut est: H MSB = b 2 + b 3 Le LSB qui esten position du bas est: B LSB = b 1 + b 3 Cegenre de systemefontionnebienquandles regles sont respectees: Les entrees doivent etre en one-hot Doncun seul 1 et le resteest 0 Ce n est pas toujours le cas... 27
Encodeurde priorite Imaginez un systeme d intercom a l hotel Cuisine (1000) Securite(0100) Entretien(0010) Service d urgence(0001) Quandon veutl intercom, on met un bit a 1 (sinon, ca reste 0 ) Le signal esttransformeen binaireet cecilui donne acces a l intercom Si on recoit1000, ca correspond a 11 et ca donnel intercoma la cuisine 28
Encodeurde priorite Qu arrive-t-il lorsque la securite et l entretien veulent l intercom en meme temps? H MSB = b 2 + b 3 B LSB = b 1 + b = 3 b 0 : Urgence b 1 : Securite b 2 : Entretien b 3 : Cuisine 29
Encodeurde priorite Securite(b 1 ) et l entretien(b 2 ) H MSB b 2 + b 3 B LSB = b 1 + b = 3 Le MSB et le LSB seraient1: 11 Ca donnerait l intercom a la cuisine! b 0 : Urgence b 1 : Securite b 2 : Entretien b 3 : Cuisine Il y a doncun problemesica fonctionnait commeca... Le problemeestqueca pensequeles entrees seront toutes one-hot quand ce n est pas vrai... 30
Encodeurde priorite Pour resoudrele probleme, on utilise un encodeur de priorite: On ne fait plus semblantquec estdu one-hot On ditqueca peutetren importequoi, MAIS ily a une priorite a respecter... L urgence sera plus importante que la securite La securite sera plus importante que l entretien L entretien sera plus importante que la cuisine 31
Encodeurde priorite Ce genre de chose s implemente bien... b 3 b 2 b 1 b 0 MSB LSB X X X 1 0 0 X X 1 0 0 1 X 1 0 0 1 0 1 0 0 0 1 1 b 3 b 2 b 1 b 0 00 01 11 10 00 01 1 11 1 10 1 b 3 b 2 b 1 b 0 00 01 11 10 00 1 01 1 11 1 10 1 1 H MSB + = b2 b1 b0 b3 b1 b0 B LSB = b1 b0 + b3 b2 b0 32
Multiplexeur Un multiplexeur est un selectionneur: Il selectionnequelleentree vapasser a la sortie Penseza uneroute a 2 voiesqui devient1 voie Il y a un multiplexagenaturelqui se produitquandon selectionne la prochaine voiture qui passe Parfoisca vientd unevoie, parfoisca vientde l autre Multiplexeur2 a 1 33
Multiplexeur Un multiplexeur a plusieurs entrees et 1 sortie Multiplexeur2 a 1 Multiplexeur4 a 1 En plus des entrees qu onvoiten haut, ila aussi des lignes de selection C estpar ceslignesqu ondecide quelleentree vaa la sortie Multiplexeur2 a 1 34
Multiplexeur On utilise un signal de selection pour indiquer quelle entree passe en sortie Entree0 Entree1 Sel 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 Sortie 35
Multiplexeur Le multiplexage est utile pour partager Certainssystemes(#3) on seulementune entree d un certain type Cependant, 2 systemes (#1 et #2) veulentlui parler Comment faire? 36
Multiplexeur Voicila table de verited un multiplexeur2 a 1 SEL E 1 E 0 00 01 11 10 0 0 1 1 0 1 0 0 1 1 MUX = SEL E + SEL 0 E 1 Ca nous permetde trouverson circuit... 37
Fonctionsavec multiplexeurs Tout commeles decodeurs, ilestpossible d implementer des fonctions avec des MUX On peutimplementer unefonctionde N variables sinotremux a N lignesde selection C esta dire quenotremux a 2 N entrees Ex: Pour 4 entrees, ily a 2 lignesde selection On peutimplementer unefonctiona 2 entrees avec un multiplexeur 4-a-1 38
Fonctionsavec multiplexeurs Il estmeme possible d implementerdes fonctions a N entrees avec N-1 selections Ca fait quenotredesign sera plus efficace La derniere facon etait facile: On mettaitsoit 0 ousoit 1 selonla table de verite Cettefois, on vamettren-1 entrees aux selections La derniereentree sera parmiles entrees du MUX Il fautjouerun peuavec pour queca marche... 39
Exemple ConcevezuneporteXOR a 2 entrees avec un MUX 2-a-1. 40
Exemple On met unedes entrees a la selection et on voit ce qu il manque: Si A=0 et B=0, la sortie doitetre0 Ce0 peutsoitetreun vrai0, ouetreegala B On ne le saitpas... continuons... Si A=0 et B=1, la sortie doitetre1 On saitmaintenantquel entree0 doitetreb 41
Exemple On continue le raisonnement: Donc: Si A=1 et B=0, la sortie doitetre1 Ce1 peutsoitetre1 oul inversede B On ne le saitpas... on continue... Si A=1 et B=1, la sortie doitetre0 Ca ne peutetrequel inversede B 42
Exemple(seul) Implementezla fonctiona 3 entrees qui calcule la retenue dans une addition Utilisezun MUX 4-a-1 43
Exemple(seul) Pour 3 entrees, on a besoind un muxa 2 selections (4 a 1 commedansla question) On vautiliser A et B dansla selection et C sera aux entrees A B C C OUT 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 44
Exemple(seul) QuandA=0 et B=0, on a toujours0. Entree0 sera 0 QuandA=0 et B=1, la sortie estegalea C. Entree1 sera doncconnectea C QuandA=1 et B=0, la sortie estegalea C Entree2 sera aussiconnectea C QuandA=1 et B=1, la sortie esttoujours1. Entree3 sera 1 45
Exemple(seul) Le circuit final ressemblera a ceci: 46
Exemple(discussion) A l interieur d un microprocesseur, il existe une unite de calcul arithmetique(alu) Il calcule l addition, la soustraction, etc. Nous voulonscreerunealu pour 2 fonctions logiquessur2 entrees de 4 bits: Si le controleetait0, l ALUferaitA B Si le controleetait1, l ALUferaitA+B (ou) 47