Differenza tra analogico e digitale
La prima cosa da conoscere è la differenza tra quantità analogiche e quantità digitali.
- Analogica, è una grandezza che varia con continuità: una variabile analogica può assumere un numero infinito di valori (ad esempio la distanza tra due punti nello spazio può assumere un numero infinito di valori).
- Digitale, è una grandezza discreta che varia “a salti”: una variabile digitale può assumere solo un numero finito di valori (come la durata di un giorno). Per passare da una grandezza analogica a digitale, bisogna campionare la grandezza analogica e associare ogni punto ad un bit.
Perché trasformare un dato da analogico a digitale: il digitale è il sistema che risulta più efficiente nel trasmettere e ricevere i dati (quali colori, suoni, immagini, ecc…). Salvare infatti, su un supporto, un segnale analogico richiederebbe più spazio e memoria. Le sequenze di bit, d’altro canto, possono essere compresse senza perdita d’informazione.
Informazione
L’informazione all’interno di un circuito digitale viene trasmessa tramite impulsi elettrici, letti come un codice binario: 0 per bassa tensione (low), 1 per alta tensione (high).
- Viene detto impulso l’alterazione di un flusso di energia elettrica da bassa tensione ad alta. Questo esempio di impulso, che presenta il fronte di salita e il fronte di discesa, è un segnale ideale, che tuttavia in natura non sempre è tale poiché esistono delle interferenze che vanno ad agire su quest’ultimo. Infatti, gli impulsi dei circuiti reali non sono come quelli ideali, ma sono caratterizzati da tempo di salita (rise time), tempo di discesa (fall time), ampiezza (amplitude), e tanti altri fenomeni.
- Viene detto periodo (T) l’intervallo temporale in cui un impulso si ripete con le stesse caratteristiche (in formula: T=1/f) e quindi comprende un lasso di tempo in cui il segnale è alto e un altro in cui è basso.
- Viene detta frequenza (f) la quantità di impulsi che si hanno in un secondo (f=1/T, unità di misura 1/s).
- Viene detta ampiezza (A) la distanza tra il valore minimo e il valore massimo dell’impulso.
- Viene detta dimensione ( ) la larghezza di un impulso.
- /). Viene detto duty cycle il rapporto tra ampiezza e dimensione.
Per far capire meglio un’onda periodica, si può osservare quello che è il clock di un semplice circuito digitale:
Diagrammi temporali
I diagrammi temporali mostrano le relazioni esistenti tra due o più forme d’onda.
Trasmissione seriale e parallela
- La trasmissione seriale è una modalità di comunicazione tra dispositivi digitali nella quale i bit sono trasferiti lungo un canale di comunicazione uno di seguito all'altro e giungono sequenzialmente al ricevente nello stesso ordine in cui li ha trasmessi il mittente (USB).
- La trasmissione parallela indica la trasmissione di dati in cui tutti i bit sono trasferiti contemporaneamente lungo canali separati di un mezzo di comunicazione (ad esempio: bus dati, bus indirizzi, bus controllo).
Circuiti
Un circuito logico programmabile (PLD), nell'elettronica digitale, è un circuito integrato programmabile largamente utilizzato nei circuiti digitali. A differenza di una porta logica, che implementa una funzione logica predefinita e non modificabile, un PLD, al momento della fabbricazione, non è configurato per svolgere una determinata funzione logica e dunque prima di poterlo utilizzare in un circuito è necessario programmarlo. Ovvero, possiamo realizzare una funzione d’uscita attivando o disattivando connessioni esistenti tra porte logiche.
Circuiti combinatori e sequenziali
- Un circuito combinatorio è un circuito il cui:
- L’output è in funzione degli input correnti. La relazione tra output e input è descritta da una funzione logica, realizzata tramite l’utilizzo delle porte logiche.
- Non vi è presente alcuna informazione di stato.
- Non vengono memorizzate le informazioni.
- Il circuito sequenziale è un tipo di circuito il cui:
- L’output in un determinato istante è in funzione sia degli input correnti e sia, di quelli degli stati precedenti, registrati in memoria.
- Possiedono informazioni di stato.
- Avviene una memorizzazione delle informazioni (attraverso i flip-flop).
Circuiti sincroni e asincroni
- Un circuito sincrono ha le seguenti caratteristiche:
- È guidato da un clock.
- Tutti i flip-flop, usando lo stesso clock, cambiano stato sui suoi fronti di salita/discesa.
- Un circuito asincrono ha le seguenti caratteristiche:
- Non è coordinato da un clock.
- Possono cambiare in qualunque istante.
- In teoria, sono più rapidi (non devono attendere il clock), ma subiscono ritardi variabili.
Porte logiche
Tuttavia, ora vediamo le porte logiche, che sono predefinite e non programmabili. La porta logica è in grado di leggere dei segnali in input e restituire output diverso (in base al tipo di input e al tipo di porta); le porte logiche lavorano secondo i principi dell’algebra booleana.
Esistono diversi tipi di porte logiche:
Porta NOT
Porta NOT (inverter) è la porta logica che ci consente di invertire Input Output 1 0 il valore in input. Ossia: 0 1
- Quando l’input è LOW, l’output è HIGH.
- Quando l’input è HIGH, l’output è LOW.
ōverline, Notazione usata nelle espressioni: Overbar ¬, ‘. input output
Porta AND
Porta AND: produce un output HIGH quando tutti gli input sono HIGH, 0 0 0 altrimenti l’output è LOW. 0 1 0 ∧, Notazione usata nelle espressioni: · e tra le variabili 1 0 0 poste in AND (può essere omesso). 1 1 1
Porta OR
Porta OR: input Output
- Produce un output HIGH se almeno un input è HIGH 0 0 0
- Produce LOW se tutti gli input sono LOW 0 1 1 ∨. Notazione usata nelle espressioni: +, 1 0 1 1 1 1
Porta NAND
Porta NAND: input output
- Produce LOW quando tutti gli input sono HIGH 0 0 1
- Produce HIGH se almeno un input è LOW 0 1 1 ̅̅̅̅̅̅̅ ̅̅̅̅ · Notazione usata nelle espressioni: (o: ) 1 0 1
I vantaggi nell’utilizzare la porta NAND sono: 1 1 0
- Efficiente realizzazione dal punto di vista fisico, perché realizzo circuiti integrati composti dallo stesso tipo di componente.
- Porta universale perché posso realizzare altre porte usando la porta NAND.
Porta NOR
Porta NOR: input Output
- Produce un output LOW se almeno un input è HIGH. 0 0 1
- Produce HIGH se tutti gli input sono LOW. 0 1 0 ̅̅̅̅̅̅̅̅+ Notazione usata nelle espressioni: 1 0 0 1 1 0 input output
Porta XOR
Porta XOR: produce HIGH soltanto quando gli input assumono valori 0 0 0 opposti (uno LOW e l’altro HIGH). 0 1 1 ⊕. Notazioni usata nelle espressioni: 1 0 1 1 1 0
Porta XNOR
Porta XNOR produce un output HIGH soltanto quando il livello di A e input Output B è lo stesso (entrambi LOW o entrambi HIGH) 0 0 1 Notazione usata nelle espressioni: o. 0 1 0 1 0 0 1 1 1
Algebra booleana
Viene detta Algebra booleana la parte di matematica che interagisce con un sistema di numerazione binario.
- Viene detta variabile booleana una variabile che può assumere soltanto due stati (0 o 1).
- Viene detto literal una variabile o il suo opposto.
Tabelle di verità
Le espressioni logiche vengono formate attraverso un mapping tra la funzione logica, i circuiti logici e i gate logici. Ciascun gate implementa un’operazione presente nell’espressione. Gli input dei gate sono le variabili e costanti (come, ad esempio, valori alti e bassi, la tensione, la terra, ecc…) coinvolte nelle espressioni logiche. Per poter però creare un circuito di una espressione logica, è necessario tener conto di tutte le possibili combinazioni degli ingressi, sostituendo 0 ed 1 all’interno delle tabelle di verità. Per creare una tabella di verità è necessario tener conto che 2 per un’espressione a n variabili la tabella avrà righe.
Procedimento: si parte dall’ultima variabile inserendo alternativamente 0 e 2 1 per volte. La penultima variabile verrà composta da coppie di 0 e di 1 1 2 (2 ) alternativamente per volte; la terzultima variabile verrà composta da 2 2 gruppi da di 0 e di 1. Si procede con questo algoritmo a seconda del numero n di variabili.
Equivalenza di espressioni booleane
Due espressioni sono equivalenti se assumono lo stesso valore per tutte le combinazioni di valori delle variabili coinvolte. Per verificare l’equivalenza di due espressioni booleane, è possibile seguire due strade:
- Utilizzando la tabella di verità (hanno tabelle uguali).
- Utilizzando le proprietà dell’algebra booleana.
Semplificando un’espressione booleana è possibile ottenere espressioni equivalenti che coinvolgono meno literal (notazione per rappresentare un valore fisso nel codice sorgente) delle espressioni originali. Il circuito risultante sarà più economico/efficiente in quanto userà un numero minore di porte logiche.
Teoremi
- Proprietà distributiva. Una variabile in comune tra due AND messi in OR (SOP=somma di + = ( + ). prodotti) può essere messa a fattor comune: Applicando la proprietà distributiva ad un POS (prodotti di somme) otteniamo: ( + ) ( + ) = + ( + ) ∗ ( + ) = + + + =. Dimostrazione: + + + = (1 + + ) + = + .
- Teorema dell’adiacenza logica. ̅ ̅ ̅) + = . + = ( + = . Dimostrazione: ̅) ̅ ̅ ̅( + )( + = . + + + = (1 + + ) + 0 = . Dimostrazione:
- Teorema dell’assorbimento. + = . + = (1 + ) = . Dimostrazione: ( + ) = . ( + ) = + = + = . Dimostrazione:
- Teorema delle semplificazioni. ̅) ̅) ̅( + = . ( + = + = + 0 = . Dimostrazione: ̅ ̅ ̅)+ = + . + = ( + )( + = ( + )1 = + . Dimostrazione:
- Teorema del consenso, che risulta utile per la semplificazione di espressioni Booleane. Il termine che viene eliminato è detto termine di consenso. ̅ ̅ )(̅ )(̅ → ( ( + + = + + )( + + ) = + + ). Dati 2 termini tali che una variabile appare in un termine e il suo complemento nell’altro termine, il termine di consenso è ottenuto moltiplicando (POS) o sommando (SOP) la restante parte dei 2 termini. Dimostrazione:
Tuttavia, l’ordine con cui si applica il teorema del consenso potrebbe variare l’esito della semplificazione finale. Ad esempio:
Le proprietà dello XOR:
Progettazione di circuiti combinatori
Ciascun tipo di circuito richiede una progettazione alla base. I passi fondamentali per la costruzione “logica” del circuito sono:
- Individuazione degli input a disposizione e degli output che si vogliono ottenere (specifiche del circuito).
- Costruzione della tabella di verità per ciascuna combinazione degli input.
- Ricavo della funzione booleana associata tramite espansione in mintermini (forma SOP) o maxtermini (forma POS).
- Semplificazione della funzione booleana (ricerca dell’espressione equivalente a costo minore).
- Costruzione fisica del circuito.
Forme SOP e POS
Le espressioni Booleane possono essere scritte come somme di prodotti (Sum of Products - SOP) o prodotti di somme (Products of Sums - POS). L’utilizzo di SOP e POS, risulta utile nel semplificare l’implementazione dei circuiti.
Forma canonica SOP
Forma canonica SOP. Nelle SOP in forma standard, ciascuna variabile (positiva o negativa) ̅ + deve apparire in ciascun termine. Ad esempio: è una forma SOP standard ̅ + (CANONICA); è una forma SOP, ma non standard;
Tuttavia, quando una variabile manca in un termine, la si può aggiungere come somma della variabile stessa e del suo complemento.
̅̅ = + ESEMPIO: Convertiamo in forma standard: Notiamo che il primo termine ̅ non include la variabile C. Quindi, moltiplichiamo tale termine per (C + ) che sappiamo ̅ ̅ ̅̅ ̅ = ( + ) + = + essere uguale ad 1. Ciò che alla fine si otterrà sarà: ̅ ̅̅ + .
Ciascun termine della forma SOP viene detto mintermine. L’insieme dei mintermini si ottiene dalla tabella di verità della funzione (si considerano solo le combinazioni di variabili che restituiscono 1; per ogni combinazione il mintermine si costruisce prendendo la variabile stessa se all’interno della combinazione ha valore 1, altrimenti il suo complemento).
=0∑ La formula generale dell’espansione in mintermini è dove è il valore del singolo mintermine nella funzione (0 o 1), mentre è il mintermine costituito dai literal. La ∑ (0,2,4,6,8) notazione dei mintermini indica che essi sono stati trovati alle seguenti posizioni: 0,2,4,6,8.
Forma canonica POS
Forma canonica POS. Nella forma standard POS, ciascuna variabile deve apparire in ciascun termine somma. Espressioni non canoniche possono essere ricondotte a forme standard aggiungendo il prodotto della variabile mancante e del suo complemento, e infine applicando la proprietà distributiva.
(̅ ̅)( = + + + ) ESEMPIO: Convertiamo in forma standard. La prima somma ̅ (̅ ̅̅ ∗ : = + + ∗ )( + + non include la variabile C. Quindi, aggiungiamo). + = ( + )( + ) A questo punto applichiamo la proprietà distributiva: e (̅ ̅ (̅̅ ̅ = + + )( + + ) = + + otteniamo la seguente espressione: )(̅ ̅̅ + + )( + + ).
Ciascun termine della forma POS viene detto maxtermine. L’insieme dei maxtermini si ottiene dalla tabella di verità della funzione (si considerano solo le combinazioni di variabili che restituiscono 0; per ogni combinazione il maxtermine si costruisce prendendo la variabile stessa se all’interno della combinazione ha valore 0, altrimenti il suo =0∏ + complemento). La formula generale dell’espansione in maxitermini è . ∏ (1,3,5,7) La notazione dei maxitermini indica che essi sono stati trovati alle seguenti posizioni: 1,3,5,7.
Realizzazione di un circuito
Realizzazione di un circuito utilizzando l’espansione in ̅̅̅ ̅ ̅ = + + mintermini. Data la funzione :
Realizziamo lo stesso circuito utilizzando però la porta logica NAND:
- Sostituiamo gli AND con NAND.
- Aggiungiamo un NOT in ingresso all’OR, in modo da annullare il NOT dei NAND.
- Infine, possiamo realizzare i NOT e l’OR mediante NAND (1° CASO).
- Oppure, visto che ho negato gli ingressi della OR per annullare il NOT dei NAND, ogni ̅̅̅̅̅̅̅̅ ̅ () OR sarà del tipo + , che corrisponde ad e quindi a una NAND (2° CASO).
Circuito con 1’ caso Circuito con 2’ caso
Funzioni non completamente specificate
Una funzione è completamente specificata se il suo valore (0 o 1) è definito per tutte le combinazioni delle variabili d’ingresso. Una funzione booleana viene detta non completamente specificata se, per alcune combinazioni, non risulta necessario definire il valore di output. Tali combinazioni sono definite come “don’t care”. Si utilizzano il simbolo X o d al posto di 0 o 1 nelle righe per le quali la funzione non è specificata. Quando una tabella di verità presenta delle combinazioni don’t care, affinché possa essere espressa come espansione di mintermini o maxtermini, è necessario definire tutti i vari risultati che si ottengono dando un valore (tra 0 e 1) ad ogni don’t care.
Esempio:
Da ciò si può notare che in base al valore che la X assume, l’espansione ci fornisce un risultato diverso. In questi casi anche la formula generale cambia, infatti:
Minimizzazioni
Nei circuiti combinatori, gli output (in maniera statica), sono funzione solo degli input. Quindi il circuito non ha memoria (stato) e tutte le funzioni possono essere scritte tramite tabelle di verità o variabili booleane.
Come sappiamo l’espansione in maxtermini o mintermini non corrisponde necessariamente al circuito meno costoso (minor numero di porte, stesso tipo
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Riassunto esame Progettazione digitale
-
Esercizio di progettazione digitale Tozzi Villa progettazione orologio
-
Progettazione di Sistemi Digitali
-
Esercizio di progettazione digitale, prof. Tozzi - progettazione misuratore di riflessi