05EKL- Progetto di Circuiti Digitali Tutore: Federico Quaglio [email protected] 011--564 4004 (4004 011 (4004)) Richiami di Reti Logiche Tutoraggio #1 1 Sommario • • • • • • Richiami di algebra booleana Mappe di Karnaugh Coperture SP & PS Alee statiche e loro minimizzazione Circuiti sequenziali semplici Ulteriori Circuiti Sommario • • • • • • Richiami di algebra booleana Mappe di Karnaugh Coperture SP & PS Alee statiche e loro minimizzazione Circuiti sequenziali semplici Ulteriori Circuiti 2 Richiami di Algebra Booleana • • • • Negazione: A={0,1} B=NOT(A)={1,0} Prodotto logico: AND; C=A*B C=1 ó A=B=1 Somma logica: OR; C=A+B C=0 ó A=B=0 OR Esclusivo: EXOR; C=A + B C=1 ó A = B Richiami di Algebra Booleana Proprietà fondamentali: A*0=0; A+1=1; A*A=A; A+A=A A*(NOT(A))=0; A+(NOT(A))=1 A+B=B+A; A*B=B*A (A+B)+C=A+(B+C);(A*B)*C=A*(B*C) A+A*B=A; A*(A+B)= A NOT(A+B)=NOT(A)*NOT(B) NOT(A*B)=NOT(A)+NOT(B) NOT(NOT(A))=A 3 Sommario • • • • • • Richiami di algebra booleana Mappe di Karnaugh Coperture SP & PS Alee statiche e loro minimizzazione Circuiti sequenziali semplici Ulteriori Circuiti Mappe di Karnaugh • • • Servono a minimizzare espressioni logiche Copertura a Somma di Prodotti (SP) f(A,B,C)=(A*B*C)+(A’BC)+ etc… Copertura a Prodotti di Somme (PS) f(A,B,C)=(A+B+C)(A’+B+C)etc… 4 Mappe di Karnaugh Metodo grafico molto veloce Adatto per minimizzazione manuale Complessità esponenziale con numero di variabili di ingresso Al massimo fino a 5-6 ingressi • • • • Mappe di Karnaugh X 0 Y XY W 1 0 0 2 1 3 00 11 10 0 1 U=… 01 1 XY WZ 00 01 11 10 00 01 11 0 2 6 4 1 3 7 5 U=… 10 0 4 12 8 1 5 13 9 3 7 15 11 2 6 14 10 U=… 5 Da tabella di verità a Mappa di Karnaugh • Tabella di verità ABC U • 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 Mappa AB 00 0 0 1 0 01 0 1 0 1 11 2 3 1 1 10 6 7 0 1 4 5 U Regola per la copertura • • Iniziare a coprire gli ‘1’ (o gli ‘0’) non ancora coperti Massimizzare il “CUBO” includendo il maggior numero di ‘1’ (o ‘0’) 6 Esempio AB AB 00 C 0 01 0 0 0 1 11 0 1 2 1 1 10 0 6 1 3 4 1 7 5 BC AC Mappe particolari A,B A 0 B 0 0 1 1 C,D 1 1 0 2 EXOR 0 1 00 00 0 01 1 11 0 C 00 0 0 1 1 01 11 1 0 0 2 0 1 10 10 1 10 0 1 4 0 1 12 1 5 1 3 0 0 9 1 15 1 6 8 13 7 0 2 11 11 0 14 10 1 6 1 3 1 0 3 A,B 01 4 0 7 5 7 Sommario • • • • • Richiami di algebra booleana Mappe di Karnaugh Coperture SP & PS Alee Statiche e loro minimizzazione Circuiti sequenziali semplici Copertura SP • • • • Si coprono gli ‘1’ Rimangono solo ingressi che non sono “variati” dentro uno stesso cubo Ingresso vale ‘1’ Compare in uscita il suo valore diretto (A) Ingresso vale ‘0’ Compare in uscita il suo valore negato (A’) 8 Copertura PS • • Si coprono gli ‘0’ Comportamento duale a copertura SP Esempio di rete combinatoria Tabella di verità # A B C D U 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 9 Mappa di Karnaugh A,B C,D 00 00 1 01 1 11 0 10 0 01 1 0 11 10 0 0 4 1 1 12 1 5 1 7 1 2 1 13 1 3 8 0 15 0 6 9 11 0 14 10 Copertura minima SP A,B C,D A’C’ 00 00 1 01 1 11 0 10 0 01 1 0 1 0 0 12 1 5 1 3 1 1 C’D 9 0 15 0 6 8 13 7 1 2 10 4 1 A’B 11 11 BD 0 14 10 U=A’B+A’C’+BD+C’D 10 Copertura minima SP C,D B+C’ A,B 00 00 1 01 1 11 0 10 0 01 1 0 10 0 0 4 1 1 12 1 5 1 3 1 1 9 A’+D 0 15 0 6 8 13 7 1 2 11 11 0 14 10 U=(A’+D)(B+C’) Sommario • • • • • • Richiami di algebra booleana Mappe di Karnaugh Coperture SP & PS Alee Statiche e loro minimizzazione Circuiti sequenziali semplici Ulteriori circuiti 11 Esempio: • Sia data la tabella di verità: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 0 C 0 1 0 1 0 1 0 1 U 0 0 1 0 0 1 1 1 • Dalla mappa di Karnaugh si ricava A,B C BC’ 00 0 0 1 0 01 11 1 0 1 2 0 1 10 0 6 1 3 4 1 7 5 AC U=AC+BC’ Rete Combinatoria ottenuta 12 Comportamento ideale: porte logiche con ritardi nulli A B C C’ AC BC’ U Porte con ritardi non nulli • • Supponiamo che le porte abbiano tempi di propagazione diversi. Ad esempio: t_AND1 = 2 ns t_AND2 = 1 ns 13 Comportamento del circuito A B C C’ Transizione spuria AC BC’ U t_AND2 t_AND2 t_AND1 Analisi del comportamento • • • • • I diversi tempi di ritardo causano transizioni spurie (“Glitch”) Sono dovuti al fatto che nella funzione logica non considero variazioni simultanee di + segnali Transizioni spurie causano anche maggiore dissipazione di potenza Per minimizzarne l’effetto si inserisce altra logica che mantiene fissi i segnali Non ho più funzioni minime 14 Copertura Hazard-Free • • Inserisco anche i “cubi” che coprano variazioni contemporanee di + segnali Esempio Cubo Aggiunto A,B BC’ C 00 01 11 0 0 1 1 1 0 0 2 0 1 10 0 6 1 3 4 1 7 5 AC AB U=AB+AC+BC’ Sommario • • • • • • Richiami di algebra booleana Mappe di Karnaugh Coperture SP & PS Alee Statiche e loro minimizzazione Circuiti sequenziali semplici Ulteriori circuiti 15 Concetti preliminari • Circuiti digitali sono costituiti da una parte di “elaborazione” (Rete combinatori”) ed una parte di controllo e temporizzazione (“Parte sequenziale”) Concetti Preliminari • • • • Le uscite dei circuiti sequenziali dipendono: dagli ingressi attuali, ma anche dagli INGRESSI PASSATI Sono cioè circuiti con MEMORIA Il circuito si trova in uno STATO PRESENTE Evolverà in uno STATO FUTURO 16 Concetti Preliminari • Un circuito sequenziale generico sarà costituito da Ingressi Stato Uscite Calcolo Uscite e Stato Stato Presente (interno) Futuro R Concetti preliminari • • • Tipi principali di circuiti sequenziali: Circuiti Asincroni: lo stato può cambiare in ogni istante Circuiti Sincroni: lo stato può cambiare solo in corrispondenza di un segnale di cadenza 17 Concetti preliminari • • • La maggioranza dei circuiti integrati digitali progettati sono “CIRCUITI SINCRONI” Esiste un segnale di cadenza (chiamato spesso “clock”) che “valida” e sincronizza i segnali considerati Esempio: Dato Valido Concetti preliminari • • I segnali devono mantenersi “stabili” a seguito di un “fronte” del segnale di cadenza Si devono inserire dei circuiti logici che memorizzino lo stato dei segnali 18 Latch SR Latch e flip-flop D 19 FLIP-FLOP D • D Tabella di verità: Q CK QN RST RST CK 0 1 - 1 D Q_n QN_n 0 0 0 1 1 1 1 0 Tempistica del Flip-Flop • • Il dato D è “campionato” sul “fronte di salita” del clock Se D varia durante tale fronte cosa succede? CLK D Q Oscillazione dell’uscita di durata non predicibile a priori METASTABILITA’ 20 Tempi di set-up e hold • • • Per evitare metastabilità dato deve essere “stabile” prima e dopo fronte del clock Tempo min. per cui dato deve essere stabile prima del clock tempo di set-up (t_ su) Tempo min. per cui dato deve essere stabile dopo il clock tempo di hold (t_ h) CLK D t_su t_h Flip-Flop T • T Q CK QN RST • • Tabella di verità: RST 0 1 1 CK - T 0 Q_n QN_n 0 1 Q_n-1 QN_n-1 1 QN_n-1 Q_n-1 Se ingresso T=‘1’ l’uscita Q varia, alternandolo, il suo valore ad ogni colpo di CLK (“toggle”) Si dimezza la frequenza di clock 21 Flip-Flop J-K • J CK K Q QN RST Tabella di verità: RST 0 1 CK - J 0 K 0 Q_n QN_n 0 1 Q_n-1 QN_n-1 1 0 1 0 1 1 1 0 1 0 1 1 1 QN_n-1 Q_n-1 Registri • • Affiancando n flip-flop D si ottiene un registro Esempio Registro a 4 bit: D Q D Q 4 4 R D Q D Q 22 Sommario • • • • • • Richiami di algebra booleana Mappe di Karnaugh Coperture SP & PS Alee Statiche e loro minimizzazione Circuiti sequenziali semplici Ulteriori circuiti Multiplexer • • • Seleziona tra n ingressi Necessita di log 2(n) segnali di selezione Esempio MUX a 2 ingressi: A B M U X U SEL 23 Driver Tri-State • • • • EN Si utilizzano per pilotare bus biderezionali Presentano un ingresso di abilitazione “enable” (EN) Se è attivo uscita corrisonde ad ingressi Se è disattivato uscita è in Alta Impedenza (HiZ) OUT A • Tabella di verità EN A 0 0 1 0 1 - OUT 0 1 HiZ Shift Register • • Serie di flip-flop D in cui l’uscita di 1 corrisponde all’ingresso del successivo Esempio Shith Register a 4 bit CLK Din D Q D Q D Q D Q 24 Sincronizzatore • • Metastabilità non si può eliminare completamente, ma si può cercare di ridurre Tale problema è molto più evidente per gli ingressi provenienti dall’esterno che variano + lentamente CLK D Sincronizzatore • • Si possono far passare gli ingressi in una catena di flipflop Si riduce notevolmente la probabilità di entrare in 25 Contatore n • • “Conta” un numero 2 di colpi di clock (n è il numero di flip-flop utilizzati) Esempio Contatore UP modulo 8 (3 flip-flop) CLK OUT D Q D Q D Q Logica di conteggio Esempio progetto logica di conteggio • Analizziamo andamento delle uscite: 000 001 010 011 … • • • L’ultimo bit varia ad ogni colpo di clock Comportamento tipo flip-flop T (“toggle”) Lo realizziamo: ‘1’ T Q QN 26 Esempio: • Usiamo flip-flop T: 1 T Q QN • • • • Uscita Q varia quando ingresso è ‘1’ Da tabella di verità T1=Q0 Da tabella di verità: T2=Q0*Q1 Fine conteggio (TC): TC=Q0*Q1*Q2 27