Progettare un circuito combinatorio significa realizzare una rete di porte logiche il cui comportamento è conforme ad una descrizione data a parole ed in termini umani o, più formalmente, ad una tabella di verità.
Sono necessari tre passaggi:
Vogliamo realizzare un circuito combinatorio che somma aritmeticamente tre numeri di un bit ciascuno:
Creiamo la tabella di verità che corrisponde alla descrizione:
Per scrivere velocemente tutte le otto combinazioni degli ingressi A, B e C sono possibili due tecniche:
L'ordine delle righe non ha particolare importanza, anche se è utile per evitare confusione, dimenticanze o righe duplicate (nota 1).
La tabella, non ancora completata:
A | B | C | MSB | LSB |
0 | 0 | 0 | ||
0 | 0 | 1 | ||
0 | 1 | 0 | ||
0 | 1 | 1 | ||
1 | 0 | 0 | ||
1 | 0 | 1 | ||
1 | 1 | 0 | ||
1 | 1 | 1 |
Possiamo quindi scrivere il valore delle uscite, leggendo la descrizione data a parole. L'ultima colonna, la somma in decimale, è stata inserita solo per chiarezza:
A | B | C | MSB | LSB | |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | 1 |
0 | 1 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 1 | 0 | 2 |
1 | 0 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 1 | 0 | 2 |
1 | 1 | 0 | 1 | 0 | 2 |
1 | 1 | 1 | 1 | 1 | 3 |
Se preferiamo, possiamo leggere la tabella precedente come costituita da due tabelle, ciascuna con una sola uscita:
A | B | C | MSB |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
A | B | C | LSB |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
Si definisce mintermine il prodotto (nota 3) delle variabili di ingresso prese in forma normale (A) se valgono 1, prese in forma negata (A) se valgono 0. A volte è indicato con la lettera m minuscola. La tabella seguente, relativa ad una rete con tre ingressi, mostra gli otto mintermini:
A | B | C | m |
0 | 0 | 0 | A · B · C |
0 | 0 | 1 | A · B · C |
0 | 1 | 0 | A · B · C |
0 | 1 | 1 | A · B · C |
1 | 0 | 0 | A · B · C |
1 | 0 | 1 | A · B · C |
1 | 1 | 0 | A · B · C |
1 | 1 | 1 | A · B · C |
Per il passaggio dalla tabella di verità all'espressione booleana occorre:
A | B | C | MSB | ||
0 | 0 | 0 | 0 | ||
0 | 0 | 1 | 0 | ||
0 | 1 | 0 | 0 | ||
0 | 1 | 1 | 1 | ← | A · B · C |
1 | 0 | 0 | 0 | ||
1 | 0 | 1 | 1 | ← | A · B · C |
1 | 1 | 0 | 1 | ← | A · B · C |
1 | 1 | 1 | 1 | ← | A · B · C |
MSB = (A·B·C) + (A·B·C) + (A·B·C) + (A·B·C)
Tale espressione viene chiamata Prima Forma Canonica oppure Forma Canonica SP (somma di prodotti).
La Prima Forma Canonica è l'espressione duale della Seconda Forma Canonica (nota 2) e viceversa, ovviamente.
La scrittura della prima forma canonica relativa a LSB è lasciata come esercizio.
Si definisce maxtermine la somma (nota 3) delle variabili di ingresso prese in forma normale (A) se valgono 0, prese in forma negata (A) se valgono 1. A volte è indicato con la lettera M maiuscola. La tabella seguente, relativa ad una rete con tre ingressi, mostra gli otto maxtermini:
A | B | C | M |
0 | 0 | 0 | A + B + C |
0 | 0 | 1 | A + B + C |
0 | 1 | 0 | A + B + C |
0 | 1 | 1 | A + B + C |
1 | 0 | 0 | A + B + C |
1 | 0 | 1 | A + B + C |
1 | 1 | 0 | A + B + C |
1 | 1 | 1 | A + B + C |
Per il passaggio dalla tabella di verità all'espressione booleana occorre:
A | B | C | MSB | ||
0 | 0 | 0 | 0 | ← | A + B + C |
0 | 0 | 1 | 0 | ← | A + B + C |
0 | 1 | 0 | 0 | ← | A + B + C |
0 | 1 | 1 | 1 | ||
1 | 0 | 0 | 0 | ← | A + B + C |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 1 |
MSB = (A+B+C) · (A+B+C) · (A+B+C) · (A+B+C)
Tale espressione viene chiamata Seconda Forma Canonica oppure Forma Canonica PS (prodotto di somme).
La Seconda Forma Canonica è l'espressione duale della Prima Forma Canonica (nota 2) e viceversa, ovviamente.
La scrittura della seconda forma canonica relativa a LSB è lasciata come esercizio.
L'ultimo passaggio è il disegno della rete a partire da una qualunque delle due forme canoniche; in genere conviene scegliere la più piccola, se esiste. Nel caso di questo esempio è indifferente (il numero di 1 coincide con il numero di 0) e viene mostrata la rete completa ottenuta con la Prima Forma Canonica:
Ricavare la Seconda Forma Canonica di LSB del precedente Esempio 1
Disegnare lo schema logico di MSB e LSB del precedente esempio ottenuto a partire dalla Seconda Forma Canonica
Realizziamo un "votatore"
L'uso delle forme canoniche ha diversi vantaggi:
Ha lo svantaggio importante che il circuito prodotto è piuttosto grande (molte porte con molti ingressi). Per esempio, anche intuitivamente, è facile verificare che il seguente circuito produce lo stesso risultato della prima parte della rete progettata al punto precedente pur usando meno porte ciascuna delle quali ha meno ingressi:
Svariati sono i metodi che permettono di ottenere reti logiche ottimali, nessuno dei quali verrà qui spiegato:
Pagina creata nel settemnre 2020.
Ultima modifica: 26 settembre 2020
Tornare a scuola - Versione 0.990 - Gennaio 2021
Copyright 2012-2021, Vincenzo Villa (https://www.vincenzov.net)
Quest'opera stata rilasciata con licenza Creative Commons | Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)