Logica Digitale Fondamenti di Informatica - Prof. Gregorio Cosentino 1 Ma in fondo quali sono i mattoncini che compongono un calcolatore elettronico ? Porte And, Or, Nand, Nor, Not Circuiti Multiplexer, Codif, Shifter, ALU Aritmetica Sommatori Memorie Latch, Flip Flop Bus Sincroni clk, Asincroni M/slave I/O Chip paralleli Fondamenti di Informatica - Prof. Gregorio Cosentino 2 Circuiti Digitali i1 INGRESSI in CIRCUITO DIGITALE o1 USCITE om • Circuiti elettronici i cui ingressi e le cui uscite assumono solo due livelli • Al circuito sono associate le funzioni che calcolano le uscite a partire dagli ingressi o1 = f1(i1,….,in ) .. . om = fm(i1,….,in ) Fondamenti di Informatica - Prof. Gregorio Cosentino 3 Una semplice applicazione •Variabile di controllo: X –due stati: • X=0 -> interruttore aperto • X=1 -> interruttore chiuso •Uscita Y –Due stati: • Lampadina spenta (Y=0) • Lampadina accesa (Y=1) X=0 Y=0 X=1 Fondamenti di Informatica - Prof. Gregorio Cosentino Y=1 4 Modello logico AND X2 X1 Y Y = X1 X2 X1 Y OR Y = X1 + X2 X2 Fondamenti di Informatica - Prof. Gregorio Cosentino 5 Funzioni Logiche (Booleane) y,x1,…,xn ∈{ 0,1} y = f(x1,…,xn) f { 0,1} { 0,1} → n • Variabili con due soli valori possibili: { 0,1} FALSO VERO {F,T} FALSE TRUE Tavola di verità x1 0 0 .. . 1 x2 …… x n-1 xn 0 …….. 0 0 0 …….. 0 1 .. .. .. . . . 1 …….. 1 1 f 0 1 .. . 0 • 2n n combinazioni di ingresso • 22 funzioni distinte di n variabili Fondamenti di Informatica - Prof. Gregorio Cosentino 6 Funzioni Booleane (Esempi) • Con n=1 si hanno 4 funzioni: x1 0 1 f0 0 0 f1 0 1 f2 f3 1 1 0 1 • La funzione f2 è detta NOT • Con n=2 si hanno 16 funzioni, tra cui: x1 0 0 1 1 x2 0 1 0 1 f0 0 0 0 0 f1 0 0 0 1 f2 0 0 1 0 f3 0 0 1 1 f4 0 1 0 0 f5 0 1 0 1 f6 0 1 1 0 f7 0 1 1 1 • La funzione f1 è nota come AND • La funzione f7 è nota come OR Fondamenti di Informatica - Prof. Gregorio Cosentino 7 Algebra Circuitale (Booleana) • È una struttura algebrica (insieme più operatori) • Reticolo distributivo complementato Insieme: I = { 0,1 } Operatori: AND, OR Complementazione: NOT Notazione • Se x e y sono due variabili booleane: – L’ AND di x e y si indica con x·y – L’ OR di x e y si indica con x + y – Il NOT di x si indica con x Fondamenti di Informatica - Prof. Gregorio Cosentino 8 Porte NAND e NOR È possibile simulare AND, OR e NOT, e quindi realizzare qualsiasi circuito, usando soli NAND oppure soli NOR che richiedono meno transistors. 0,0 1 1,1 Simulazione AND Fondamenti di Informatica - Prof. Gregorio Cosentino 9 Porte XOR • Calcola la funzione OR Esclusivo (diverso da OR): dà uscita 1 (vero) quando uno solo degli ingressi (ma non entrambi) vale 1 • Facilmente realizzabile con porte AND, OR e NAND 0 0 0 0 1 1 0 0 1 0 1 Fondamenti di Informatica - Prof. Gregorio Cosentino 10 Riepilogo Operatore NOT Simbolo y=x Proprietà y=1 se e solo se x=0 AND y=x1x2 y=1 se e solo se x1=x2=1 OR y=x1+x2 y=0 se e solo se x1=x2=0 NAND y=x1/x2 y=0 se e solo se x1=x2=1 NOR y= x↓x2 y=1 se e solo se x1=x2=0 XOR y = x1⊕x2 y=1 se e solo se x1≠x2 XNOR y= x1≡x2 y=1 se e solo se x1=x2 Fondamenti di Informatica - Prof. Gregorio Cosentino 11 Porte universali •Con l’insieme delle tre porte (NOT, AND, OR) può essere realizzata qualunque funzione (insieme completo); non è minimo: l’operatore AND (oppure OR) è ridondante •Le porte NAND ed NOR sono le (uniche) porte universali poiché mediante esse può essere realizzata qualunque funzione binaria Fondamenti di Informatica - Prof. Gregorio Cosentino 12 Circuiti Logici • Porte Logiche: circuiti elementari che realizzano gli operatori dell’algebra Qualsiasi funzione booleana può essere calcolata con un circuito realizzato con sole porte AND, OR e NOT • Le porte logiche vengono realizzate con circuiti elettronici: NOT NAND NOR Fondamenti di Informatica - Prof. Gregorio Cosentino 13 Circuiti Logici •Una porta logica e’ un dispositivo con N ingressi ed una uscita che realizza un legame tra il valore logico presente all’uscita e quelli presenti all’ingresso, esprimibile tramite una funzione logica elementare NOT NAND NOR Fondamenti di Informatica - Prof. Gregorio Cosentino 14 Forme canoniche •Esiste un modo “standard” (o canonico) per definire una qualunque funzione? •Si, 2 forme: Somma di Prodotti (SP) e la duale Prodotto di Somme (PS) Fondamenti di Informatica - Prof. Gregorio Cosentino 15 Mintermine •Un mintermine mi di n variabili, è una funzione che vale 1 solo in corrispondenza dell’assegnamento di verità i m13=x4 x3 x2 x1 •Qualunque funzione è esprimibile come somma dei mintermini per cui y = 1 Fondamenti di Informatica - Prof. Gregorio Cosentino 16 Espressioni Algebriche Teor.: ogni funzione booleana è algebrica, cioè rappresentabile con un’espressione dell’algebra Prima Forma Canonica f = Σj=1..m Π i=1..n xij* • xij* vale xi oppure xi • f è espressa come OR delle combinazioni per cui la funzione è vera (somma di mintermini) Qualsiasi funzione booleana può essere messa in questa forma Fondamenti di Informatica - Prof. Gregorio Cosentino 17 Funzioni Booleane (Esempio) ES • Tre variabili booleane A, B, C • Funzione di maggioranza M: è vera solo se almeno due delle tre variabili sono vere D0 D1 D2 D3 D4 D5 ABC D6 ABC D7 ABC ABC M = ABC + ABC + ABC + ABC 111 D3 111 D5 111 D6 111 D7 Fondamenti di Informatica - Prof. Gregorio Cosentino 18 Funzioni Booleane (Esempio) ES •Tre variabili booleane A, B, C •Funzione di maggioranza M: Consente di operare la sintesi di una qualsiasi funzione logica con una tecnica a due livelli, un primo livello di porte AND ai cui ingressi pervengono le variabili di ingresso (dirette o negate) ed un secondo livello di OR a cui pervengono le uscite delle porte AND del primo livello. M = ABC + ABC + ABC + ABC Fondamenti di Informatica - Prof. Gregorio Cosentino 19 Circuiti Logici: (Esempio) (Funzione di Maggioranza) M = ABC + ABC + ABC + ABC Fondamenti di Informatica - Prof. Gregorio Cosentino 20 Circuiti Logici: (Esempio) (Funzione di Maggioranza) Invia alla sua unica uscita il valore logico presente nell’i-esimo dei suoi 2n ingressi selezionato dal valore i codificato in N ulteriori ingressi di controllo Fondamenti di Informatica - Prof. Gregorio Cosentino 21 Circuiti Logici: (Esercizio) 1) Uno dei seguenti non rappresenta un insieme di operatori logici universali. a) and e or b) nand c) or e not Motivare brevemente la risposta (massimo tre righe) Fondamenti di Informatica - Prof. Gregorio Cosentino 22 Circuiti Logici: (Esercizio) 1)Data una rappresentazione delle cifre decimali (0...9) in cui 0 è codificato come 0000, 1 come 0001, 2 come 0010 ,..., 9 come 1001, scrivere la tabella di verità della funzione di commutazione che è vera quando la cifra è compresa tra 4 e 6, estremi inclusi. Fornire il circuito logico che la calcola come somma di mintermini. Fondamenti di Informatica - Prof. Gregorio Cosentino 23 Circuiti Logici: (Esercizio) 1) Data una rappresentazione delle cifre decimali (0...9) in cui 0 è codificato come 0000, 1 come 0001, 2 come 0010 ,..., 9 come 1001, scrivere la tabella di verità della funzione di commutazione che è vera quando la cifra è compresa tra 3 e 6, estremi inclusi. Fornire il circuito logico che la calcola come somma di mintermini. Fondamenti di Informatica - Prof. Gregorio Cosentino 24 Circuiti Logici: (Esercizio) 1) Data una rappresentazione delle cifre decimali (0...9) a quattro digit, scrivere la tabella di verità della funzione di commutazione che è vera quando la cifra è pari, escluso lo zero. Commentare e Fornire il circuito logico che la calcola come somma di mintermini. Fondamenti di Informatica - Prof. Gregorio Cosentino 25 Circuiti Integrati • Un circuito integrato è un dispositivo elettronico costituito dall'integrazione di un circuito elettronico su di un substrato di materiale semiconduttore. • Molte porte realizzate sulla stessa piastrina di silicio (chip) • Contenitori da 14 a 68 piedini • Vari livelli di integrazione: – SSI (Small Scale) 1-10 porte – MSI (Medium Scale) 10-100 ” – LSI (Large Scale) 102-105 ” – VLSI (Very Large Sc.) > 105 ” • Tempi di commutazione 1-20 nsec Fondamenti di Informatica - Prof. Gregorio Cosentino 26 Circuiti Integrati • Quattro porte realizzate sulla stessa piastrina di silicio (chip) • Contenitori da 14 piedini: due input e un output per porta, una alimentazione e una terra • livello di integrazione: – SSI (Small Scale) 1-10 porte – il notch identifica l’orientamento Fondamenti di Informatica - Prof. Gregorio Cosentino 27 Comparatore 0 0 0 0 0 0 0 0 0 1 0 0 NOR gate 0 Semplice 4-bit comparatore Word A Word B. Se tutti e quattro i bit sono uguali, al NOR arrivano quattro zero,in uscita avrò zero, faccio NOR cosi da avere 1 se le word sono uguali. Fondamenti di Informatica - Prof. Gregorio Cosentino 28 Semiaddizionatore (Half Adder) AND gate • Circuito a 2 ingressi e 2 uscite: somma e riporto (carry) • Non può essere usato per la somma di numerali a più bit, dove occorre sommare anche il riporto della cifra precedente Fondamenti di Informatica - Prof. Gregorio Cosentino 29 ALU a 1 bit (bit slice) • A e B sono bit omologhi degli operandi • F0 e F1 segnali di controllo selezionano la funzione (00: AND), (01: OR), (10: NOT), (11: SUM) del decoder ( 00 passa linea 0,etc) • La linea passata = 1 abilita un solo and della logical unit oppure il sommatore;uscita su OR semplice • ENA ed ENB sono segnali di enable • INVA permette di negare A • Default ENA=ENB=1 e INVA=0 per non modificare in questo caso il valore di A e B, servono per altre funzioni Fondamenti di Informatica - Prof. Gregorio Cosentino 30 ALU a 1 bit (bit slice) • Per realizzare una ALU ad 8 bit non devo fare altro che mettere in serie 8 ALU a 1 bit Fondamenti di Informatica - Prof. Gregorio Cosentino 31 Arithmetic Logic Units (2) Otto 1-bit ALU connessi per realizzare un 8-bit ALU. I segnali di Enables e Invert non sono riportati per semplicità grafica. Il segnale INC è utile per effettuare addizioni: esso incrementa ( INC ) di 1 il risultato, rendendo possibili operazioni tipo A+1 e A+B+1 molto utili in tutti i programmi software Fondamenti di Informatica - Prof. Gregorio Cosentino 32 Clocks Oscillatore (a) A clock.(b) The timing diagram for the clock.(c) Generation of an asymmetric clock. Ilclock è un circuito che emette una serie di impulsi con una precisa ampiezza e un preciso intervallo tra impulsi consecutivi, praticamente da il tempo in modo che due o più eventi “ digitali “ siano sincronizzati. Il delay produce una serie in ritardo, aumento il numero di impulsi ( b ) Se metto A in AND con B aumento ancora il numero di impulsi Fondamenti di Informatica - Prof. Gregorio Cosentino 33 Circuiti Logici: (Esercizio) 1) Un circuito digitale con funzione di comparatore a due ingressi A e B ciascuno di quattro bit è composto da: a) quattro and e un or b) un nand e quattro or c) quattro or esclusivo e un nor Motivare brevemente la risposta (massimo tre righe + una figura obbligatoria) Fondamenti di Informatica - Prof. Gregorio Cosentino 34