Progettazione di una rete combinatoria - approccio gerarchico e porte NAND-NOR
In questa pagina 6
Finora abbiamo visto gli strumenti: porte, algebra di Boole, mappe di Karnaugh. Qui si usano per progettare un circuito dalla specifica al diagramma logico.
Combinatorio e sequenziale
Si introduce la variabile tempo e si considera la situazione stazionaria di ingressi e uscite a un istante .
Definizione (circuito combinatorio e sequenziale)
- Un circuito è combinatorio se le sue uscite dipendono solo dal valore presente degli ingressi, non dai valori assunti in passato. Non ha memoria; è formato da porte logiche interconnesse senza percorsi di retroazione (dall'uscita all'ingresso): è un circuito aciclico.
- Un circuito è sequenziale se le uscite dipendono dagli ingressi presenti e dalla loro storia (lo stato). Contiene blocchi combinatori ed elementi di memoria, con almeno un percorso di retroazione che riporta lo stato in ingresso (Elementi di memoria - latch SR, latch D e flip-flop DUn circuito sequenziale ha uscite che dipendono da ingressi e stato (memoria); è un circuito combinatorio con elementi di memoria in retroazione; stato presente = uscite dei FF, stato futuro = ingressi dei FF. Sincrono (clock) o asincrono. Latch SR (NOR): S=1,R=0 set; S=0,R=1 reset; 00 memoria; 11 proibito. Latch D: C=1 trasparente (Q=D), C=0 memoria, sensibile al livello. Flip-flop D edge-triggered = due latch D in cascata (master-slave) con clock opposti: cambia solo sul fronte attivo e non è trasparente. Si assume D flip-flop positive-edge-triggered.Elementi di memoria - latch SR, latch D e flip-flop D →).
Esempio. Un half adder con ingressi dà sempre , (combinatorio); un contatore con lo stesso ingresso può dare uscite diverse a seconda dello stato (sequenziale).
Come distinguerli da una sequenza di ingressi e uscite. Un sistema con ingressi e uscite è certamente sequenziale: allo stesso ingresso ha risposto prima e poi . Un circuito combinatorio non può farlo. L'opposto non vale: una sequenza compatibile con una funzione non dimostra che il sistema sia combinatorio.
Procedura di progetto
- Specifiche: individuare ingressi e uscite, dare loro un nome.
- Tabella di verità che lega ingressi e uscite.
- Funzione booleana a costo minimo per ogni uscita (mappe di Karnaugh, algebra, ecc.): Mappe di Karnaugh - implicanti e copertura minimaLa mappa di Karnaugh è la tabella di verità disposta in una griglia con righe e colonne in codice Gray, così che celle adiacenti (anche tra bordi opposti) differiscano in una sola variabile. Si raggruppano gli 1 in rettangoli di $2^k$ celle: ogni gruppo elimina $k$ variabili e dà un prodotto. Implicante primo = gruppo massimo; essenziale = unico a coprire un mintermine; la copertura minima contiene tutti gli essenziali più il minimo di altri primi (può non essere unica). Efficace fino a 4 variabili.Mappe di Karnaugh - implicanti e copertura minima →.
- Diagramma logico con i blocchi disponibili nella tecnologia scelta.
- Verifica della correttezza (tabella o simulazione).
Approccio gerarchico
Con 8 ingressi la tabella ha righe: troppo per le mappe. Si usa l'approccio gerarchico (impropriamente "divide et impera"): il sistema è diviso in blocchi e sottoblocchi, ricorsivamente, finché ognuno è abbastanza semplice da progettare da solo; i blocchi si collegano poi tra loro, riusando quelli uguali.
Esempio: comparatore di uguaglianza a 4 bit
Specifica: ingressi e , uscita se , altrimenti . Due vettori sono uguali se sono uguali a coppie tutti i bit: per .
- Primo livello: quattro comparatori a 1 bit che producono ( se , se diversi) e un blocco che combina i quattro .
- Secondo livello: il comparatore a 1 bit è una XOR; il blocco finale deve dare solo se tutti gli valgono 0, quindi è una NOR a 4 ingressi: .
Verifica: , ; , ✓. Costo in ingressi: (XOR) (NOR) .
La rappresentazione ad albero mostra solo la struttura (sistema blocchi porte). Se un blocco compare più volte si può disegnare una sola volta ("circuiti regolari"): quanto più un circuito è regolare, tanto meno lavoro richiede il progetto. Il rapporto tra il numero di porte nel circuito finale e il numero di blocchi nel diagramma gerarchico è una misura della regolarità.
Blocchi combinatori elementari
Funzioni di una variabile. Con un solo ingresso le uscite possibili sono: value-fixing ( oppure costante), value-transferring (, un semplice filo), value-inverting (, un inverter).
Vettori. Un ingresso a bit si disegna con una linea con una barretta obliqua e il numero di bit; per usare solo alcuni bit si indica l'indice: .
Definizione (circuito di abilitazione). Enabling (abilitazione). Un circuito di abilitazione lascia passare il segnale all'uscita se il segnale di enable EN vale 1, altrimenti forza l'uscita a un valore fisso. Due forme: (se allora ) e (se allora ).
Esempio: comandi di un'auto. Luci, radio e alzacristalli funzionano solo ad auto accesa: il segnale di accensione IS fa da enable per i tre interruttori . Equazioni: , , . Se tutte le uscite sono 0 qualunque sia lo stato degli interruttori (nella tabella di verità le righe con hanno negli ingressi interruttore: sono righe "multi-mintermine", un prodotto che non è un mintermine).
I blocchi più importanti, decoder, encoder e multiplexer, hanno una nota a parte: Decoder, encoder e priority encoderUn decoder $n$-to-$m$ ($m\le2^n$) converte un ingresso binario a $n$ bit in un'uscita 1-hot (un solo 1, nella posizione indicata): le sue uscite sono i mintermini degli ingressi, realizzati con $m$ AND; per decoder grandi si usa l'approccio gerarchico (costo in ingressi: 3-to-8 = 27, 6-to-64 = 182) e un enable. Ogni funzione = decoder + OR dei suoi mintermini. L'encoder fa l'operazione inversa (1-hot $\to$ binario) ma sbaglia con più ingressi a 1 o tutti a 0: il priority encoder risolve con una priorità e un'uscita V (valid).Decoder, encoder e priority encoder →, Multiplexer e funzioni logiche realizzate con decoder e multiplexerIl multiplexer (MUX) $2^n$-to-1 ha $2^n$ ingressi dati, $n$ ingressi di selezione e un'uscita che copia l'ingresso selezionato: $Y=\sum_i m_i(S),I_i$. Si realizza con decoder + AND di enable + OR (costo 22 per il 4-to-1) o direttamente (costo 18). Un MUX $2^n$-to-1 realizza qualunque funzione di $n$ variabili (ingressi dati = colonna della tabella di verità); con un MUX $2^{n-1}$-to-1 si usano le $n-1$ variabili come selezione e gli ingressi dati valgono $0$, $1$, $X$ o $\overline X$ (l'ultima variabile). I MUX a vettori selezionano gruppi di bit.Multiplexer e funzioni logiche realizzate con decoder e multiplexer →.
Mappatura tecnologica: NAND e NOR
La mappatura tecnologica sostituisce il diagramma logico con uno che usa i componenti disponibili nella tecnologia scelta. Nella tecnologia CMOS (Porte CMOS e parametri tecnologici dei circuiti integratiNei circuiti integrati digitali (CMOS) i MOSFET si modellano come interruttori: nMOS chiuso se il gate vale 1, pMOS chiuso se il gate vale 0. Una porta CMOS ha una rete di pull-up (PUN, solo pMOS) verso Vdd e una di pull-down (PDN, solo nMOS) verso massa, duali: una è ON e l'altra OFF. NAND: nMOS in serie e pMOS in parallelo; NOR: nMOS in parallelo e pMOS in serie; una porta a $n$ ingressi ha $2n$ transistor. Parametri: fan-in, fan-out, margine di rumore, ritardo di propagazione ($t_{pHL}$, $t_{pLH}$, limita la frequenza di clock), dissipazione di potenza, costo (area di silicio; costi NRE e di produzione).Porte CMOS e parametri tecnologici dei circuiti integrati →) le porte NAND e NOR sono più compatte e veloci di AND e OR, quindi in genere si realizzano circuiti con sole NAND, NOR e inverter.
Proprietà (SOP realizzata con sole NAND). SOP NAND-NAND. Una somma di prodotti si realizza con AND seguite da una OR. Applicando due volte la doppia negazione e De Morgan: Ogni è l'uscita di una NAND con gli ingressi del prodotto, e la parte esterna è una NAND con ingressi. Esempio: diventa : tre NAND a 2 ingressi più una NAND a 3 ingressi (più gli inverter per e ). Un prodotto con un solo letterale richiede un inverter al posto della NAND. Le due realizzazioni (AND-OR e NAND-NAND) sono equivalenti per tutte le 16 combinazioni degli ingressi.
Esempio. : una NAND a ingressi per , un inverter per e una NAND finale a ingressi.
Proprietà (POS realizzata con sole NOR). POS NOR-NOR. Dualmente si realizza con NOR di somme e una NOR finale. Esempio: : tre NOR a 2 ingressi più una NOR a 3 ingressi.
Esempio. : due NOR a ingressi e una NOR finale a ingressi.
Per questo motivo le realizzazioni NAND sono più adatte alle SOP (molti prodotti, una somma) e quelle NOR alle POS. Caso per caso si valutano costo (porte, ingressi) e ritardi e si sceglie l'implementazione meno cara.
Il passaggio ai livelli di ritardo e al numero massimo di ingressi per porta (fan-in) si discute in Porte CMOS e parametri tecnologici dei circuiti integratiNei circuiti integrati digitali (CMOS) i MOSFET si modellano come interruttori: nMOS chiuso se il gate vale 1, pMOS chiuso se il gate vale 0. Una porta CMOS ha una rete di pull-up (PUN, solo pMOS) verso Vdd e una di pull-down (PDN, solo nMOS) verso massa, duali: una è ON e l'altra OFF. NAND: nMOS in serie e pMOS in parallelo; NOR: nMOS in parallelo e pMOS in serie; una porta a $n$ ingressi ha $2n$ transistor. Parametri: fan-in, fan-out, margine di rumore, ritardo di propagazione ($t_{pHL}$, $t_{pLH}$, limita la frequenza di clock), dissipazione di potenza, costo (area di silicio; costi NRE e di produzione).Porte CMOS e parametri tecnologici dei circuiti integrati →.
Errori comuni
- Dire che un sistema è combinatorio perché una breve sequenza lo è: serve l'intera funzione.
- Dimenticare gli inverter per le variabili negate nella mappatura NAND-NAND.
- Usare la forma NAND-NAND per una POS (o NOR-NOR per una SOP): funziona solo se prima si converte la forma.
- Sottovalutare i ritardi: un circuito molto profondo è più lento.
Versione ripasso
- Combinatoria: le uscite dipendono solo dagli ingressi presenti, senza memoria né retroazione (circuito aciclico). Sequenziale: dipende anche dallo stato, con elementi di memoria e retroazione (Elementi di memoria - latch SR, latch D e flip-flop DUn circuito sequenziale ha uscite che dipendono da ingressi e stato (memoria); è un circuito combinatorio con elementi di memoria in retroazione; stato presente = uscite dei FF, stato futuro = ingressi dei FF. Sincrono (clock) o asincrono. Latch SR (NOR): S=1,R=0 set; S=0,R=1 reset; 00 memoria; 11 proibito. Latch D: C=1 trasparente (Q=D), C=0 memoria, sensibile al livello. Flip-flop D edge-triggered = due latch D in cascata (master-slave) con clock opposti: cambia solo sul fronte attivo e non è trasparente. Si assume D flip-flop positive-edge-triggered.Elementi di memoria - latch SR, latch D e flip-flop D →). Se lo stesso ingresso produce uscite diverse in istanti diversi, il sistema è sequenziale.
- Procedura di progetto: specifiche (ingressi e uscite con nome) tabella di verità funzione a costo minimo (Mappe di Karnaugh - implicanti e copertura minimaLa mappa di Karnaugh è la tabella di verità disposta in una griglia con righe e colonne in codice Gray, così che celle adiacenti (anche tra bordi opposti) differiscano in una sola variabile. Si raggruppano gli 1 in rettangoli di $2^k$ celle: ogni gruppo elimina $k$ variabili e dà un prodotto. Implicante primo = gruppo massimo; essenziale = unico a coprire un mintermine; la copertura minima contiene tutti gli essenziali più il minimo di altri primi (può non essere unica). Efficace fino a 4 variabili.Mappe di Karnaugh - implicanti e copertura minima →) diagramma logico verifica.
- Approccio gerarchico: il sistema si divide in blocchi e sottoblocchi finché ognuno è semplice; i blocchi uguali si riusano (regolarità).
- Comparatore di uguaglianza a 4 bit: (un comparatore a 1 bit è una XOR), , cioè una NOR a 4 ingressi. Verifica: , dà e . Costo ingressi.
- Funzioni di una variabile: value-fixing ( o ), value-transferring (), value-inverting ().
- Enabling: (se allora ) oppure (se allora ). Esempio dell'auto: , , . Decoder, encoder e MUX sono trattati in Decoder, encoder e priority encoderUn decoder $n$-to-$m$ ($m\le2^n$) converte un ingresso binario a $n$ bit in un'uscita 1-hot (un solo 1, nella posizione indicata): le sue uscite sono i mintermini degli ingressi, realizzati con $m$ AND; per decoder grandi si usa l'approccio gerarchico (costo in ingressi: 3-to-8 = 27, 6-to-64 = 182) e un enable. Ogni funzione = decoder + OR dei suoi mintermini. L'encoder fa l'operazione inversa (1-hot $\to$ binario) ma sbaglia con più ingressi a 1 o tutti a 0: il priority encoder risolve con una priorità e un'uscita V (valid).Decoder, encoder e priority encoder → e Multiplexer e funzioni logiche realizzate con decoder e multiplexerIl multiplexer (MUX) $2^n$-to-1 ha $2^n$ ingressi dati, $n$ ingressi di selezione e un'uscita che copia l'ingresso selezionato: $Y=\sum_i m_i(S),I_i$. Si realizza con decoder + AND di enable + OR (costo 22 per il 4-to-1) o direttamente (costo 18). Un MUX $2^n$-to-1 realizza qualunque funzione di $n$ variabili (ingressi dati = colonna della tabella di verità); con un MUX $2^{n-1}$-to-1 si usano le $n-1$ variabili come selezione e gli ingressi dati valgono $0$, $1$, $X$ o $\overline X$ (l'ultima variabile). I MUX a vettori selezionano gruppi di bit.Multiplexer e funzioni logiche realizzate con decoder e multiplexer →.
- Mappatura tecnologica in CMOS: NAND e NOR sono più compatte e veloci di AND e OR.
- SOP NAND-NAND: : una NAND per prodotto, una NAND finale a ingressi. Esempio: diventa tre NAND a 2 ingressi e una NAND a 3 ingressi, più gli inverter per e . Con un solo letterale serve un inverter.
- POS NOR-NOR: : una NOR per somma e una NOR finale. Esempio: , tre NOR.
- Scelta: NAND per le SOP, NOR per le POS; si confrontano costo (porte, ingressi) e ritardi (Porte CMOS e parametri tecnologici dei circuiti integratiNei circuiti integrati digitali (CMOS) i MOSFET si modellano come interruttori: nMOS chiuso se il gate vale 1, pMOS chiuso se il gate vale 0. Una porta CMOS ha una rete di pull-up (PUN, solo pMOS) verso Vdd e una di pull-down (PDN, solo nMOS) verso massa, duali: una è ON e l'altra OFF. NAND: nMOS in serie e pMOS in parallelo; NOR: nMOS in parallelo e pMOS in serie; una porta a $n$ ingressi ha $2n$ transistor. Parametri: fan-in, fan-out, margine di rumore, ritardo di propagazione ($t_{pHL}$, $t_{pLH}$, limita la frequenza di clock), dissipazione di potenza, costo (area di silicio; costi NRE e di produzione).Porte CMOS e parametri tecnologici dei circuiti integrati →).
- Errori: inverter dimenticati nella mappatura NAND-NAND; forma NAND-NAND usata per una POS senza conversione; ritardi trascurati (un circuito più profondo è più lento); combinatorio giudicato tale perché una breve sequenza lo sembra.