FondamentidiInformatica AlgebradiBoole eCircuitiLogici P ro f. C h r i st i a n E s p o s i to C o rs o d i L a u re a i n I n g e g n e r i a M e c ca n i ca e G e st i o n a l e ( C l a s s e I ) A.A.2016/17 AlgebradiBoole eCircuitiLogici L’AlgebradiBoole – 1/4 • Unpo’distoria • IlmatematicoingleseGeorgeBoole nel1847fondòuncampodellamatematicae dellafilosofiachiamatologicasimbolica • Shannon perprimoapplicòlalogicasimbolicaaicircuitinel1939 • L’algebradiBoole ècaratterizzatada • Variabilibooleane(obinarie): variabiliicuivaloripossonoessere0oppure1 • Maanche:vero/falso,on/off,si/no • Operazioni(ofunzioni)booleane: funzioniicuiinputedoutputsonovariabili booleane • Relazioneconicircuitilogici • Sistudial’algebrabooleanapoichélesuefunzionisonoisomorfeaicircuiti digitali:uncircuitodigitalepuòessereespressotramiteun’espressione booleanaeviceversa • Levariabilibooleanecorrispondonoasegnali • Lefunzionibooleanecorrispondonoacircuiti AlgebradiBoole eCircuitiLogici 02/52 L’AlgebradiBoole – 2/4 • Comevariabilicontemplasoloduecostanti:0 e1 (falso evero) • Corrispondonoaduestatichesiescludonoavicenda • Possonodescriverelostatodiaperturaochiusuradiungenerico contattoodiuncircuitoapiùcontatti 0 1 • Sullevariabilibooleanesidefinisconolefunzioni(odoperazioni) AND,OR,NOT • Edaltredefiniteapartiredaesse AlgebradiBoole eCircuitiLogici 03/52 L’AlgebradiBoole – 3/4 • LeoperazioniAND eOR sonooperazionibinarie (agiscono sudueoperandi),l’operazioneNOT èunaria • Nellavalutazionedelleespressionibooleaneesisteuna relazionediprecedenzafraglioperatori NOT,ANDeOR, nell’ordineincuisonostatielencati • Peralteraretalerelazionebisognausareleparentesi • Talvoltausatesolopermaggiorechiarezza AlgebradiBoole eCircuitiLogici 04/52 L’AlgebradiBoole – 4/4 • Glioperatori dell’algebrabooleanapossonoessererappresentatie descrittiinvarimodi • SpessosonodescrittisemplicementecomeAND,OReNOT • Tavolediverità • Nelladescrizionedeicircuitiappaionosottoformadiportelogiche AlgebradiBoole eCircuitiLogici 05/52 Operatore(ofunzione)OR • Sommalogica(OR): ilvaloredellasommalogicaèilsimbolo1 seil valoredialmenounodeglioperandièilsimbolo1 Tavoladi verità x1 x2 F(x1,x2)=x1+x2 0 0 0 0 1 1 1 0 1 1 1 1 • Ingenerale,daten variabilibinarie,lalorosommalogica(OR)èdatada 1 se almeno una xi vale 1, 𝑐𝑜𝑛1 ≤ 𝑖 ≤ 𝑛 x1+ x2+ …+ xn = 0 se x1= x2= …= xn = 0 AlgebradiBoole eCircuitiLogici 06/52 OperatoreOR:Possibili Rappresentazioni • x|y<- UsatoinMATLAB • or(x,y)<- UsatoinMATLAB • x#y • xory • x+y • x∪ 𝒚 • x∨ 𝒚 AlgebradiBoole eCircuitiLogici 07/52 Operatore(ofunzione)AND • Prodottologico(AND): ilvaloredelprodottologicoèilsimbolo1seil valoredituttiglioperandièilsimbolo1 x1 x2 F(x1,x2)=x1× x2 0 0 0 0 1 0 1 0 0 1 1 1 • Ingenerale,daten variabilibinarieindipendenti,illoroprodottologico (AND)èdatoda x1´ x2´ …´ xn = 0 se almeno una xi vale 0, 𝑐𝑜𝑛1 ≤ 𝑖 ≤ 𝑛 1 se x1= x2= …= xn = 1 AlgebradiBoole eCircuitiLogici 08/52 OperatoreAND:Possibili Rappresentazioni • x&y <- UsatoinMATLAB • and(x,y) <- UsatoinMATLAB • xandy • x∧ 𝒚 • x∩ 𝒚 • x×𝒚 • x*y • xy AlgebradiBoole eCircuitiLogici 09/52 Operatore(ofunzione)NOT • Operatoredinegazione(NOT): inverteilvaloredellacostantesucuiopera • Notoanchecomeinverter 1=𝟏 𝟎 1=𝟎 𝟏 4 =0 𝟎 4 =1 𝟏 • Ingenerale,lanegazionediunavariabile𝑥 è 𝑥̅ = 0 se x = 1 𝑥̅ = 1 se x = 0 • L’elemento𝑥̅ =NOT(x)vienedettocomplemento dix • Ilcomplementoèunico AlgebradiBoole eCircuitiLogici 10/52 OperatoreNOT:Possibili Rappresentazioni • y=~x<- UsatoinMATLAB • y=not(x)<- UsatoinMATLAB • y=!x • y=not x • y=x’ • y=¬𝒙 1 • y=𝒙 AlgebradiBoole eCircuitiLogici 11/52 AlgebradiBoole:Alcune Identità Funzione AND Funzione OR Funzione NOT 0×0=0 0+0=0 x+𝑥̅ = 1 0×1=0 0+1=1 x×𝑥̅ = 0 1×0=0 1+0=1 𝑥̿ = 𝑥 1×1=1 1+1=1 x×0=0 x+0=x 0×x=0 0+x=x x×1=x x+1=1 1×x=x 1+x=1 x×x=x x+x=x Legge dell’idempotenza AlgebradiBoole eCircuitiLogici 12/52 AlgebradiBoole:Proprietàe Leggi Proprietà Commutativa 𝑥1𝑥2 = 𝑥2𝑥1 𝑥1 + 𝑥2 = 𝑥2 + 𝑥1 Proprietà Distributiva 𝑥1 𝑥2 + 𝑥3 = 𝑥1𝑥2 + 𝑥2𝑥3 𝑥1 + 𝑥2𝑥3 = 𝑥1 + 𝑥2 + (𝑥1 + 𝑥3) Proprietà Associativa 𝑥1 𝑥2𝑥3 = (𝑥1𝑥2)𝑥3 𝑥1 + 𝑥2 + 𝑥3 = 𝑥1 + 𝑥2 + 𝑥3 Leggi di Assorbimento 𝑥1 + 𝑥1𝑥2 = 𝑥1 𝑥1(𝑥1 + 𝑥2) = 𝑥1 Leggi di De Morgan 𝑥1 + 𝑥2 = 𝑥11×𝑥12 𝑥1×𝑥2 = 𝑥11 + 𝑥12 Altre Note 𝑥1 + 𝑥11𝑥2 = 𝑥1 + 𝑥2 𝑥1(𝑥11 + 𝑥2) = 𝑥1𝑥2 AlgebradiBoole eCircuitiLogici 13/52 LeggidiDeMorgan– 1/4 • Ilcomplementodiunasommadivariabiliè ugualealprodottodeicomplimentidelle variabili • Ilcomplementodidueopiùvariabili posteinORèugualeall’ANDdei complimentidellesingolevariabili Leggi di De Morgan 𝑥1 + 𝑥2 = 𝑥11×𝑥12 𝑥1×𝑥2 = 𝑥11 + 𝑥12 AlgebradiBoole eCircuitiLogici 14/52 LeggidiDeMorgan– 2/4 • Ilcomplementodiunprodottodivariabiliè ugualeallasommadeicomplimentidelle variabili • Ilcomplementodidueopiùvariabili posteinANDèequivalenteall’ORdei complimentidellesingolevariabili Leggi di De Morgan 𝑥1 + 𝑥2 = 𝑥11×𝑥12 𝑥1×𝑥2 = 𝑥11 + 𝑥12 AlgebradiBoole eCircuitiLogici 15/52 LeggidiDeMorgan– 3/4 • Osservazione: 𝑥̿ = 𝑥(Eq. 1) • Legge1diDeMorgan: 𝑥1 + 𝑥2 = 𝑥11×𝑥12 (Eq.2) • Utilizzando(Eq.1) possoscrivere(Eq.2) comesegue:𝑥1 + 𝑥2 = 𝑥11×𝑥12 • Utilizzandoancora(Eq.1) ottengoche𝑥1 + 𝑥2 = 𝑥11×𝑥12 • L’ORfrax1 ex2 puòessereespressointerminidellesoleoperazioniAND eNOT • Ognivoltacheinun’espressionebooleanatroviamounOR,lopossiamosostituire conlaappropriatacombinazionediANDeNOT • OgniespressionepuòessereespressainterminidellesoledueoperazionilogicheANDe NOT AlgebradiBoole eCircuitiLogici 16/52 LeggidiDeMorgan– 4/4 • Osservazione: 𝑥̿ = 𝑥(Eq. 1) • Legge2diDeMorgan: 𝑥1×𝑥2 = 𝑥11 + 𝑥12 (Eq.3) • Utilizzando(Eq.1) possoscrivere(Eq.3) comesegue:𝑥1×𝑥2 = 𝑥11 + 𝑥12 • Utilizzandoancora(Eq.1) ottengoche𝑥1×𝑥2 = 𝑥11 + 𝑥12 • L’ANDfrax1 ex2 puòessereespressointerminidellesoleoperazioniOR eNOT • Ognivoltacheinun’espressionebooleanatroviamounAND,lopossiamosostituire conlaappropriatacombinazionediOReNOT • OgniespressionepuòessereespressainterminidellesoledueoperazionilogicheORe NOT AlgebradiBoole eCircuitiLogici 17/52 AlcuneOsservazioni • Identità,proprietàeleggivistefinoadorasono generalmenteapplicatenelletrasformazionidifunzioni booleaneinaltreequivalenti,madipiùfacilerealizzazione circuitale • DalleleggidiDeMorgansievincechelasceltadelle funzioniOR,ANDeNOT,comefunzioniprimitive,è ridondante AlgebradiBoole eCircuitiLogici 18/52 FunzioniLogiche(oBooleane) – 1/5 • Daten variabilibooleane indipendentix1,x2,…,xn,queste possonoassumere2n configurazioni distinte x1 x2 x3 F(x1,x2, x3) 0 0 0 0 0 0 1 0 • Ogniriga(inrosso)mostrailvalore restituitoapartiredauna particolareconfigurazionedell’input 0 1 0 0 0 1 1 1 • Unaconfigurazionespecificaè individuataunivocamentedaun ANDdituttelevariabili,dovequelle corrispondentiaivalori0compaiono negate 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 • Adesempiopern =3 sihanno8 configurazioni • Prodottofondamentaleoprodotto minimo(minterm) 010 AlgebradiBoole eCircuitiLogici x 1x 2x 3 19/52 FunzioniLogiche(oBooleane) – 2/5 x1 x2 x3 Configurazioni 𝑥11𝑥12𝑥13 F(x1,x2, x3) 0 0 0 0 𝑥11𝑥12𝑥3 0 0 1 0 𝑥11𝑥2𝑥13 0 1 0 0 𝑥11𝑥2𝑥3 0 1 1 1 𝑥1𝑥12𝑥13 1 0 0 0 𝑥1𝑥12𝑥3 1 0 1 1 𝑥1𝑥2𝑥13 1 1 0 1 𝑥1𝑥2𝑥3 1 1 1 1 • 011indicatrale23=8configurazioni possibili,quellaincui𝑥1 vale0,𝑥2 vale1e𝑥3 vale1 • Questaconfigurazionesiscrive semplicementeconilprodotto 𝑥11𝑥2𝑥3 • Seinunaconfigurazioneuna variabilecomparecon1,siassumeil valorediretto,seinvececomparecon uno0,siassumeilvalorenegato AlgebradiBoole eCircuitiLogici 20/52 FunzioniLogiche(oBooleane) – 3/5 • Unavariabileyèfunzione dellen variabiliindipendentix1,x2,…,xn, quandoesisteuncriteriochefacorrispondereinmodounivocoad ognunadelle2n configurazionidix undeterminatovalorey (ovviamente 0o1) y=F(x1,x2,…,xn) • Unarappresentazioneesplicitadiunafunzioneèlatavoladiverità,in cuisielencanotuttelepossibilicombinazionidix1, x2,…,xn, con associatoilvalorediy x1 x2 y y = x1+ x2 0 0 1 1 0 1 0 1 AlgebradiBoole eCircuitiLogici 0 1 1 1 21/52 FunzioniLogiche(oBooleane) – 4/5 • Sipuòspecificarel’outputdiognifunzionebooleanaesprimendo, tramiteun’espressionebooleana,qualicombinazionidellevariabilidi inputdeterminanol’output1 • Piùprecisamente,perpassaredalla rappresentazionemediantetavoladiverità allanotazionetramiteespressionebooleanaè necessario 1. Identificaretuttelerighedellatavoladiverità chedanno1inoutput 2. Perognirigaconun1inoutput,scriverela configurazionedellevariabilichela definiscono 3. CollegaretramiteORtutteleconfigurazioni ottenute 𝑥11𝑥2𝑥3 +𝑥1𝑥12𝑥3 + 𝑥1𝑥2𝑥13 +𝑥1𝑥2𝑥3 x1 x2 x3 F(x1, x2,x3) 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 AlgebradiBoole eCircuitiLogici 22/52 FunzioniLogiche(oBooleane) – 5/5 • 𝐹 𝑥1, 𝑥2, 𝑥3 = 𝑥11𝑥2𝑥3 + 𝑥1𝑥12𝑥3 + 𝑥1𝑥2𝑥13 + 𝑥1𝑥2𝑥3 • Conl’usodeiminterm possiamodeterminare l’espressionealgebricadiunafunzione booleanaapartiredallatavoladiverità • L’espressionealgebricatrovatasichiama formacanonica dellafunzioneesiottienecon unosviluppoinminterm • Unasomma(OR)diprodotti(AND) • Seunminterm assumevalore1anchela funzioneF assumeilvalore1 x1 x2 x3 F(x1, x2,x3) 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 AlgebradiBoole eCircuitiLogici 23/52 Esempio1:laFunzione Exclusive OR(XOR)– 1/2 • Ilcomportamento dellafunzioneExclusive OR puòesseredescritto comesegue • F =“L’outputdeveessere1(vero)sesolounodeisuoiinputè1,manonse entrambigliinputsono1” • Questopuòessererifrasato comesegue • F =“L’outputè1se(x1 ORx2)è1,ANDse(x1 ANDx2)sonoNOT1(falso)” • Chepuòesserescrittocome • 𝑭 = 𝒙𝟏 + 𝒙𝟐 ×(𝒙𝟏𝒙𝟐) AlgebradiBoole eCircuitiLogici 24/52 Esempio1:laFunzione Exclusive OR(XOR)– 2/2 • LafunzioneXORverificaladisuguaglianzadiduevariabili x1 0 0 1 1 x2 0 1 0 1 XOR 0 1 1 0 Si può scrivere la funzione come somma logica (OR) delle configurazioni corrispondenti agli 1 • L’espressionecomesommadiprodottièquindi XOR(x1,x2) = 𝑥11×𝑥2 + 𝑥1×𝑥12 Forma canonica: somma di prodotti (OR di AND) N.B. tutte le funzioni logiche si possono scrivere in questa forma AlgebradiBoole eCircuitiLogici 25/52 Esempio2:dallaTavoladi VeritàallaFunzione x y z F 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 0 • Problema: datetrevariabilibooleane (𝑥, 𝑦, 𝑧),siscrivalafunzioneF chevale1 quandosoloduediessehannovalore1 Si può scrivere la funzione come somma logica (OR) delle configurazioni corrispondenti agli 1 𝐹 𝑥, 𝑦, 𝑧 = 𝑥̅ yz + x𝑦L𝑧 + 𝑥𝑦𝑧̅ Forma canonica: somma di prodotti (OR di AND) N.B. tutte le funzioni logiche si possono scrivere in questa forma AlgebradiBoole eCircuitiLogici 26/52 Esempio3:dallaTavoladi VeritàallaFunzione x y z F 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 • Problema: datetrevariabilibooleane (𝑥, 𝑦, 𝑧),siscrivalafunzioneF chevale1 quandoilnumerodi1èdispari Si può scrivere la funzione come somma logica (OR) delle configurazioni corrispondenti agli 1 𝐹 𝑥, 𝑦, 𝑧 = 𝑥̅ 𝑦Lz + 𝑥̅ 𝑦𝑧̅ + 𝑥𝑦L𝑧̅ + xyz Forma canonica: somma di prodotti (OR di AND) N.B. tutte le funzioni logiche si possono scrivere in questa forma AlgebradiBoole eCircuitiLogici 27/52 Esempio4:dallaFunzionealla TavoladiVerità • Vediamounesempioperla funzione • 𝐹 = 𝑥×(𝑦 + 𝑧) x y z F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 AlgebradiBoole eCircuitiLogici 28/52 x1 x2 z1 z2 Circuit xm Outputs Inputs CircuitoLogico Digital Logic Circuits zn • Ilcuore diunsistemadigitale èilcircuitologico digitale • Progettatoapartiredaportelogiche •• The heart of a digital system is usually a digital Collegatetraloroperformarecircuitipiùgrandi circuit • Combinatiperrealizzarecircuitidigrandeimportanzapratica nell’architetturadelcomputer AlgebradiBoole eCircuitiLogici logic 29/52 PorteLogiche • Buildingblock utilizzatipercrearecircuitidigitali • Qualsiasicircuitopuòessereimplementatousandosoloportelogiche elementari(AND,OReNOT) • Lecosesifannocomplicatequandosihannonumerosiinputedoutput • Dispositivielettronicicheimplementanosemplicifunzionibooleane • Ciascunaportahailpropriosimbolologicochepermetteafunzioni complessediessererappresentatemedianteundiagrammalogico • Lafunzionediciascunaportapuòessererappresentatadaunatabella diveritàoutilizzandolanotazionebooleana AlgebradiBoole eCircuitiLogici 30/52 FunzioneOR:TavoladiVeritàe An OR-Gate and a NOT-Ga PortaLogica x1 x2 0 0 0 1 x1 ORx2 0 0 00 0 1 11 0 1 1 An OR-Gate 0and a NOT-Gate 1 1 1 1 0 0 0 1 0 1 0 1 1 10 1 1 1 0 1 1 AlgebradiBoole eCircuitiLogici CS126 1 0 11-7 31/52 FunzioneAND:TavoladiVerità ePortaLogica x1 x2 x1 ANDx2 0 0 0 0 1 0 1 0 0 1 An AND-Gate 1 1 0 0 1 0 0 0 1 0 0 1 1 1 AlgebradiBoole eCircuitiLogici • A smallest useful circuit is a logic gate 32/52 FunzioneNOT:TavoladiVerità ePortaLogica An OR-Gate and a NOT-Gate x NOTx 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 1 AlgebradiBoole eCircuitiLogici 33/52 PortaNAND AlgebradiBoole eCircuitiLogici 34/52 PortaNOR AlgebradiBoole eCircuitiLogici 35/52 PortaXOR AlgebradiBoole eCircuitiLogici 36/52 PortaExclusive NOR AlgebradiBoole eCircuitiLogici 37/52 Esempio5:dallaFunzioneal Circuito X = A + BC AlgebradiBoole eCircuitiLogici 38/52 Esempio6:dallaFunzioneal Circuito C= (𝐴 + 𝐵) O (𝐴𝐵) PortaNAND AlgebradiBoole eCircuitiLogici 39/52 Esempio7:dallaFunzioneal Circuito X = A BC + A BC + AB C AlgebradiBoole eCircuitiLogici 40/52 Esempio8:dallaFunzioneal Circuito Y = AB + CD PortaNOR AlgebradiBoole eCircuitiLogici 41/52 Esempio9:dalCircuitoalla Funzione– 1/2 AlgebradiBoole eCircuitiLogici 42/52 Esempio9:dalCircuitoalla Funzione– 2/2 • Procedereprogressivamentedagliinputversol’outputaggiungendoa turnoleespressionilogicheall’outputdiciascunaportalogica AlgebradiBoole eCircuitiLogici 43/52 Esempio10:Funzione=> TavoladiVerità=>Circuito • Siconsiderilaseguentefunzione:A(B + C) AlgebradiBoole eCircuitiLogici 44/52 Ricapitolando… • Abbiamovistocheunafunzionelogica (maancheuncircuitologico) puòessereespressainduemodi • TavoladiVerità • PorteLogiche • Perchéabbiamobisognodituttequestediverserappresentazioni? • • • • Alcunesonopiùfacilidialtrepercominciareaprogettareuncircuito Disolitosicominciaconlatavoladiverità Siderivaun’espressionebooleanadaessa(magariesemplificata) Sitrasformal’espressionebooleanainuncircuito AlgebradiBoole eCircuitiLogici 45/52 Esercizio1:determinarelafunzione espressadallaseguentetavoladiverità A B C X 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 AlgebradiBoole eCircuitiLogici 46/52 Esercizio2:trovarel’outputdel seguentecircuito(tavoladiveritàe funzione) x y y AlgebradiBoole eCircuitiLogici 47/52 Esercizio3:trovarel’outputdel seguentecircuito(tavoladiveritàe funzione) x y AlgebradiBoole eCircuitiLogici 48/52 Esercizio4:trovarel’outputdel seguentecircuito(tavoladiveritàe funzione) AlgebradiBoole eCircuitiLogici 49/52 Esercizio5:trovarel’outputdel seguentecircuito(tavoladiveritàe funzione) AlgebradiBoole eCircuitiLogici 50/52 Esercizio6:progettareilcircuitoper ciascunadelleseguentiespressioni • 𝑥̅ + 𝑦 •(𝑥 + 𝑦)𝑥 • ScriverelafunzioneXORusandoAND,OReNOT AlgebradiBoole eCircuitiLogici 51/52 Riferimenti • Libroditesto • Capitolo3 • Paragrafo4 • Altririferimenti • http://www.di.unito.it/~piccolo/teach/AA1516/Lezioni/Lezione2.pdf • http://liceocuneo.it/basteris/wp-content/uploads/sites/3/CIRCUITI20DIGITALI1.pdf • http://bias.csr.unibo.it/maltoni/arc/Dispense/LogicaDigitale.pdf • http://people.unipmn.it/bobbio/DIDATTICA/ARCH1_00/ALDISP_00/varbol00.pdf AlgebradiBoole eCircuitiLogici 52/52