Esercizio 4comparatore a maggiore di b su due numeri a due bit (tema d'esame luglio 2022)
In questa pagina 5
Testo (tema d'esame luglio 2022, secondo appello, esercizio 1). Sintetizzare la funzione logica , dove e sono due interi positivi senza segno da due bit con e i bit più significativi, utilizzando le mappe di Karnaugh. Riportare la tabella di verità della funzione, la mappa di Karnaugh con i raggruppamenti utilizzati per semplificare la funzione e l'equazione finale ottenuta.
Teoria usata: 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 →, Progettazione di una rete combinatoria - approccio gerarchico e porte NAND-NORUna rete combinatoria ha uscite che dipendono solo dagli ingressi presenti (nessuna memoria, nessuna retroazione); una sequenziale dipende anche dalla storia (stato, memoria, feedback). Progetto: specifiche, tabella di verità, funzione a costo minimo, diagramma logico, verifica. Con molti ingressi si usa l'approccio gerarchico (blocchi e sottoblocchi riusabili; regolarità). Blocchi base: funzioni di una variabile, vettori, enabling. Mappatura tecnologica: in CMOS NAND e NOR sono più compatte, quindi SOP $\to$ NAND-NAND e POS $\to$ NOR-NOR.Progettazione di una rete combinatoria - approccio gerarchico e porte NAND-NOR →, Introduzione al VHDL - entity, architecture, tipi e livelli di descrizioneVHDL è un linguaggio di descrizione dell'hardware (HDL), non di programmazione: le dichiarazioni sono concorrenti e descrivono blocchi di circuito; serve per documentare, simulare e sintetizzare. Un blocco ha una entity (nome e porte in/out) e almeno una architecture (cosa c'è dentro: structural con component e port map, dataflow con equazioni booleane, behavioral con comportamento). Tipi: std_logic (da 1164: '0','1','X','Z','U','-',...), std_logic_vector, bit, boolean, integer. Signal per i collegamenti interni, constant per i valori fissi.Introduzione al VHDL - entity, architecture, tipi e livelli di descrizione → (stesso comparatore in VHDL).
Passo 1: tabella di verità
Ci sono ingressi, quindi righe: per ogni coppia di numeri da a si scrive se . L'indice della riga è in binario.
| 00 | 0 | 00 | 0 | 0 | 10 | 2 | 00 | 0 | 1 | |
| 00 | 0 | 01 | 1 | 0 | 10 | 2 | 01 | 1 | 1 | |
| 00 | 0 | 10 | 2 | 0 | 10 | 2 | 10 | 2 | 0 | |
| 00 | 0 | 11 | 3 | 0 | 10 | 2 | 11 | 3 | 0 | |
| 01 | 1 | 00 | 0 | 1 | 11 | 3 | 00 | 0 | 1 | |
| 01 | 1 | 01 | 1 | 0 | 11 | 3 | 01 | 1 | 1 | |
| 01 | 1 | 10 | 2 | 0 | 11 | 3 | 10 | 2 | 1 | |
| 01 | 1 | 11 | 3 | 0 | 11 | 3 | 11 | 3 | 0 |
I mintermini sono (ci sono coppie con , tra coppie con ).
Passo 2: mappa di Karnaugh
Righe , colonne (codice Gray):
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | 0 | 0 | 0 | 0 |
| 01 | 1 | 0 | 0 | 0 |
| 11 | 1 | 1 | 0 | 1 |
| 10 | 1 | 1 | 0 | 0 |
Passo 3: raggruppamenti
Gli implicanti primi sono tre:
- il gruppo da 4 celle (righe e , colonne e ): costanti , ("il bit alto di vale 1 e quello di vale 0": );
- il gruppo da 2 celle (colonna , righe e ): costanti , , ;
- il gruppo da 2 celle (riga , colonne e , adiacenti attraverso il bordo): costanti , , .
Sono tutti essenziali: la cella è coperta solo dal secondo, la cella solo dal terzo, la cella solo dal primo.
Passo 4: verifica e commento
Il controllo sui casi dà l'uguaglianza con per ogni coppia. Sulla struttura: copre i casi in cui il bit alto decide; gli altri due prodotti coprono i casi in cui i bit alti sono uguali () e decide il bit basso: infatti (, ) e (, ) si possono riscrivere con una XNOR: , forma "gerarchica" che si estende ai comparatori a più bit.
Costo (ingressi di porta, inverter di compresi): AND a 2 ingressi + AND a 3 + AND a 3 + OR a 3 + 2 inverter .
In VHDL la funzione si descrive in dataflow come
AgtB <= (A(1) and not B(1)) or (A(0) and not B(1) and not B(0)) or (A(1) and A(0) and not B(0));La POS minima ha 5 somme: : più costosa della SOP (qui si preferisce la SOP).
Errori comuni
- Dimenticare il raggruppamento attraverso il bordo ().
- Raggruppare le celle di (diagonale) o di .
- Ordinare le colonne in binario () invece che in Gray.
Versione ripasso
- Testo. se , con , senza segno: tabella di verità, mappa di Karnaugh, equazione.
- Mintermini (): .
- Mappa (righe , colonne ): gruppi , , (bordo), tutti essenziali.
- Risultato: ; costo 13 ingressi; forma gerarchica ; POS a 5 somme (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 →).
- Errori: bordo dimenticato; colonne non in Gray.