Vai al contenuto
Elettronica dei Sistemi Digitali

Algebra di Boole, forme canoniche e mappe di Karnaugh

Operazioni e teoremi dell'algebra booleana, De Morgan con dimostrazione, somme di prodotti e prodotti di somme, mappe di Karnaugh con esempio completo, condizioni di indifferenza.

I circuiti digitali lavorano con due soli valori, 0 e 1, e il loro comportamento si descrive con l’algebra di Boole. Progettare una rete logica significa scrivere la funzione che deve calcolare e semplificarla, perché un’espressione più corta richiede meno porte, meno area, meno consumo e meno ritardo. In questa lezione vediamo gli assiomi e i teoremi dell’algebra booleana, le forme canoniche e il metodo delle mappe di Karnaugh.

Le operazioni e i teoremi

Le operazioni fondamentali sono il prodotto logico (AND, A\cdot B o AB), la somma logica (OR, A + B) e la negazione (NOT, \overline{A}). Valgono le proprietà commutativa, associativa e distributiva, con una sorpresa: in Boole sono distributive entrambe le operazioni, anche A + BC = (A + B)(A + C). Altre identità utili:

NomeForma con ORForma con AND
elemento neutroA + 0 = AA\cdot 1 = A
elemento assorbenteA + 1 = 1A\cdot 0 = 0
idempotenzaA + A = AA\cdot A = A
complementoA + \overline{A} = 1A\cdot\overline{A} = 0
assorbimentoA + AB = AA(A + B) = A
De Morgan\overline{A + B} = \overline{A}\,\overline{B}\overline{AB} = \overline{A} + \overline{B}

Ogni identità ha una duale, ottenuta scambiando AND con OR e 0 con 1.

Teorema (De Morgan). \overline{A + B} = \overline{A}\cdot\overline{B}.

Dimostrazione. Con due variabili ci sono solo quattro casi, e basta controllarli tutti (dimostrazione per esaustione, sempre possibile in un’algebra con valori finiti): per A = B = 0 entrambi i membri valgono 1; negli altri tre casi almeno una variabile è 1, quindi A + B = 1 e il primo membro vale 0, e il secondo pure, perché almeno uno dei due fattori negati è 0. ∎

De Morgan ha una conseguenza pratica fondamentale: con le sole porte NAND (o le sole NOR) si costruisce qualsiasi funzione, ed è proprio così che sono fatte le porte CMOS (lezione sulla logica CMOS di Dispositivi elettronici).

Le forme canoniche

Qualsiasi funzione si può scrivere partendo dalla sua tabella di verità.

  • Somma di prodotti (SOP): per ogni riga in cui la funzione vale 1 si scrive il prodotto delle variabili, negate dove valgono 0 (un mintermine), e si sommano tutti. Si abbrevia con la lista dei numeri delle righe: f = \sum m(\dots).
  • Prodotto di somme (POS): il duale, partendo dalle righe in cui la funzione vale 0.

La forma canonica è corretta ma lunga: una funzione di 4 variabili con 8 mintermini richiede 8 porte AND a 4 ingressi e una OR a 8 ingressi.

Le mappe di Karnaugh

L’idea per semplificare è il teorema AB + A\overline{B} = A: due mintermini che differiscono per una sola variabile si fondono, e quella variabile sparisce. La mappa di Karnaugh dispone la tabella di verità in una griglia in cui le caselle adiacenti differiscono per una sola variabile: righe e colonne seguono il codice Gray (00, 01, 11, 10), e i bordi opposti sono anch’essi adiacenti, come se la mappa fosse avvolta su un toro.

Mappa di Karnaugh a quattro variabili con due raggruppamenti
Le righe corrispondono ad AB e le colonne a CD, entrambe in codice Gray. Gli 1 nei quattro angoli formano un unico gruppo, perché i bordi opposti sono adiacenti, e danno il termine B negato per D negato; il blocco centrale di quattro 1 dà il termine BD. La funzione semplificata è la somma dei due termini.

Il procedimento.

  1. Si riportano gli 1 della funzione nelle caselle.
  2. Si raggruppano gli 1 in rettangoli di 1, 2, 4, 8… caselle adiacenti, i più grandi possibile; un 1 può stare in più gruppi.
  3. Ogni gruppo di 2^k caselle elimina k variabili: restano quelle che nel gruppo non cambiano.
  4. La funzione è la somma dei termini dei gruppi, scelti in numero minimo per coprire tutti gli 1.

Esempio. f(A, B, C, D) = \sum m(0, 2, 5, 7, 8, 10, 13, 15). I mintermini 5, 7, 13, 15 formano un quadrato al centro della mappa: in tutti B = 1 e D = 1, mentre A e C cambiano, quindi il gruppo vale BD. I mintermini 0, 2, 8, 10 sono nei quattro angoli, che sono adiacenti tra loro: hanno B = 0 e D = 0, e danno \overline{B}\,\overline{D}. Quindi

    \[ f = \overline{B}\,\overline{D} + BD \]

cioè la funzione vale 1 quando B e D sono uguali: è il complemento di uno XOR, \overline{B \oplus D}. Otto mintermini a quattro variabili si riducono a un’unica porta XNOR.

Le condizioni di indifferenza. Spesso alcune combinazioni d’ingresso non possono presentarsi (per esempio i codici da 10 a 15 in un circuito che riceve cifre decimali in BCD). Nella mappa si segnano con una X e si possono considerare 1 o 0, come conviene per formare gruppi più grandi.

Oltre le mappe

Le mappe funzionano bene fino a 4-5 variabili. Per funzioni più grandi si usano algoritmi (Quine-McCluskey, Espresso), che oggi sono dentro gli strumenti di sintesi logica: il progettista descrive la funzione in un linguaggio come VHDL o Verilog (lezione sulle FPGA) e il programma trova la rete di porte, ottimizzando area, ritardo e consumo.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x