Cenni alle reti logiche Luigi Palopoli Cosa sono le reti logiche? • Fino ad ora abbiamo visto § Rappresentazione dell’informazione § Assembler • L’obbie:vo di questo corso è mostrare come si proge>o una computer • Quindi abbiamo adesso bisogno di fare una piccola digressione su come si proge>ano I circuiA logici • Avremo un corso specifico su questo….. Valori logici • I computer moderni sono realizzaA tramite circuiA ele>ronici • Tra>andosi di elemenA digitali avremo due livelli fondamentali § Alto, Asserito (1): associato alla tensione di alimentazione Vdd § Basso, negato (0): associato alla massa (tensione = 0) • Altri livelli di tensione sono non significaAvi e assunA solo in fase transitoria Reti logiche • Le porte logiche sono dei circuiA che trasformano alcuni valori logici in ingresso in altri valori logici in uscita • Le porte logiche sono di due Api § Combinatorie ü Relazione funzionale tra ingresso e uscita ü Non hanno memoria ü L’uscita dipende solo dal valore dell’ingresso § Sequenziali ü L’uscita dipende dalla storia degli ingressi passaA e non solo dal valore a>uale ü Hanno memoria (de>a anche stato della rete) Tabella di verità • Una possibile maniera di specificare una rete logica combinatoria è tramite una tabella di verità che elenca I valori delle uscite in corrispondenza dei vari ingressi INPUT OUTPUT A B C D E F 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 Algebra di boole • Una maniera più compa>a è di specificare le funzioni logiche combinatorie tramite espressioni algebriche definite con l’algebra di boole • Esistono tre operatori di base § AND ü viene rappresentato tramite il simbolo di prodo>o. Esempio A•B. ü Produce 1 se entrambi gli operandi sono uno e zero negli altri casi § OR ü rappresentato tramite il simbolo della somma (+). Esempio A+B ü Produce zero se e solo se entrambi gli operandi sono 0 § Not ü Rappresentato da una barra. Esempio: Ā ü Ha l’effe>o di inverAre il valore logico Algebra di Boole • Ci sono una serie di regole che ci perme>ono di manipolare facilmente le espressioni logiche § IdenAtà: A+0=A, A•1=A § Regola zero e uno: A + 1 = 1, A•0=0 § Regola dell’inversa A + Ā=1, A•Ā=0 § Regola commutaAva: A+B=B+A, A•B=B•A § Regola AssociaAva: A+(B+C)=(A+B)+C, A•(B•C)=(A•B)•C § Regola distribuAva: A•(B+C)=(A•B)+(A•C), A+B•C=(A +B)(A+C) Algebra di Boole • In più esistono dure regole molto importanA, de>e di De Morgan A·B =A+B A+B =A·B • Queste leggi ci dicono che se abbiamo una nand, o una nor tu: gli altri operatori logici si possono ricavare Algebra di Boole Esempio • Torniamo alla nostra tabella INPUT OUTPUT A B C D E F 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 • Possiamo vedere facilmente D =A+B+C F =A·B·C Algebra di Boole - Esempio • Torniamo alla nostra tabella INPUT OUTPUT A B C D E F 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 E vale 1: § Se A=1, B=1, C=0 oppure § Se A=1, C=1 B = 0 oppure § Se B=1, C=1, A= 0 E = (A · B · C) + (A · C · B) + (B · C · A) • O usando De Morgan E = (A + B + C) · (A + C + B) · (B + C + A) Porte logiche • In realtà esistono dei circuiA ele>ronici (porte logiche) che mi implementano gli operatori booleani fondamentali AND OR NOT Porte logiche • Le porte si possono combinare tra di loro (con il not che può essere semplificato tramite un cerchio) A+B Alcuni circuiti • Decoder Alcuni circuiti • MulAplexor • Deviatore che sulla base di un input di controllo, determina quale degli input passa. Alcuni circuiti • MulAplexor a N vie •••• •••• Decoder Forme canonica SP • Abbiamo visto che Arare fuori un’espressione logica da una tabella di verità è semplice • Basta prendere ciascuna riga uguale a 1 e scrivere un termine di prodo>o logico de>ato dalla configurazione degli ingressi • A quel punto si può fare la somma di tu: I prodo: individuaA Altro esempio • Consideriamo come ulteriore esempio: A 0 0 0 0 1 1 1 1 INPUT B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 OUTPUT D 0 1 1 0 1 0 0 1 D = (A · B · C) + (A · B · C) + (A · B · C) + (A · B · C) PLA • La stru>ura che abbiamo visto si compone di due stadi: la prima è una barriera di AND (cde: anche mintermini) e una barriera di OR • La dimensione totale del PLA è data dalla somma di Piano AND (numero di mintermini e loro complessità) e del piano OR (Numero di uscite) • Cara>erisAche importanA: § Ci sono porte logiche solo per le configurazione che prudcono 1 § Se un mintermine è condiviso tra varei uscita, basta una sola entry Esempio • Ritorniamo all’esempio INPUT OUTPUT A B C D E F 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 Esempio • Implementazione tramite porte logiche D =A+B+C F =A·B·C E = (A · B · C) + (A · C · B) + (B · C · A) Esempio • Una diversa rappresentazione (usando i punA nei piani and e or) D = A + B + C F =A·B·C E = (A · B · C) + (A · C · B) + (B · C · A) Costo • Le funzioni logiche possono essere implementate in maniera diversa (più o meno efficiente) • Per COSTO di una rete logica si intende normalmente la somma del numero di porte e del numero di ingressi della rete (indipendentemente dal fa>o che siano posiAvi o negaA) • E’ possibile trovare delle implementazioni di una rete che hanno cosA diversi Minimizzazione di funzioni logiche • La minimizzazione di alcune espressioni logiche è banale, in altri casi è necessario applicare le regole algebriche in modo “furbo” • Es. f (x1 , x2 , x3 ) = x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3 = x1 x2 (x3 + x3 ) + x1 x2 (x3 + x3) = x1 x2 + x1 x2 = (x1 + x1 )x2 = x2 Minimizzazione • Esistono metodi di minimizzazione sistemaAci basaA sull’applicazione iteraAva di queste regole • Altri metodi sono basaA su rappresentazioni grafiche (mappe di Karnaugh), ma si applicano solo a casi più semplici • Questo argomento si chiama “sintesi logica” e per gli interessaA è coperto nel corso di reA logiche Array di elementi logici • Molto spesso si costruiscono array di elemenA che operano su daA complessi • Ad esempio come realizzare un mulAplexer che opera su un bus a 32 bit uAlizzando elemenA a un bit • BUS: insieme di file (ad esempio 32) che viene visto come un singolo segnale logico Multiplexor a 32 bit