Upload
trinhbao
View
217
Download
0
Embed Size (px)
Citation preview
Paolo MeloniElettronica – Introduzione al corso
Informazioni sul corsoInformazioni sul corso
• Paolo MELONI
• Dipartimento di Ingegneria Elettrica ed ElettronicaPadiglione B, secondo piano
• Tel. 070675 5774 – Email: [email protected]
• Orario di ricevimento: su appuntamento
Paolo MeloniElettronica – Introduzione al corso
Programma dettagliato del corsoProgramma dettagliato del corso
• Circuiti digitali, simulazione e verifica con HDL• Introduzione ai sistemi digitali. Rappresentazione
logica/circuita/HDL. Progettazione con HDL. Il linguaggio VERILOG. Reti combinatorie e sequenziali. Importanza del testbench. Tempi di ritardo in un circuito digitale. Reti asincrone e sincrone. Frequenza massima di un circuito. Datapath e controllo.
• Sintesi di sistemi digitali• Flusso di progetto top-down. Concetto di libreria. Sintesi RTL.
Circuiti completamente sintetizzabili. Costrutti supportati completamente per la sintesi Costrutti non accettati. Operatori sintetizzabili. Area/DelayTrade-off. Sintesi di blocchi condizionali non-full. Progetto di moduli singoli. Esempi di prototipazione su dispositivi FPGA.
• Macchine a stati• Analisi e progetto di macchine a stati finiti. Macchine di
Mealy e di Moore. Analisi e Sintesi. Descrizione strutturale e algoritmica in Verilog. Inizializzazione, simulazione, esempi di analisi e progetto.
Paolo MeloniElettronica – Introduzione al corso
Struttura del corsoStruttura del corso
Ore di lezione: 50Libri di testo:Lucidi di lezione (sono sufficienti per preparare l’esame)• D. J. Smith - "HDL Chip Design" - Doone Publications - ISBN - 09651934-3-
8• J. F. Wakerly - "Digital Design" - Prentice Hall - ISBN 0130825999• D.R. Smith, P.D. Franzon - "Verilog styles for synthesis of digital systems" -
Prentice Hall - ISBN 0-201-61860-5Struttura dell’esame: scritto e oraleSono previste 2 prove scritte intermedie:
1a: circa meta’ novembre 2a: circa meta’ gennaio
Sito del corso: http://www.diee.unica.it/eolab2/corsi.html
Paolo MeloniElettronica – Introduzione al corso
Sistemi DigitaliSistemi Digitali
Sistemi DigitaliSistemi Digitali
Paolo MeloniElettronica – Introduzione al corso
Sistemi DigitaliSistemi Digitali
• Un sistema digitale e’ un qualsiasi sistema elettronico in cui le informazioni vengono rappresentate in forma binaria, utilizzando cioe’ solo due simboli (0 e 1) e l’elaborazione si basa sull’algebra di Boole (o della commutazione).
• I sistemi digitali occupano ormai in maniera pervasivaquasi ogni aspetto della realta’ moderna
• Sono alla base praticamente di ogni sistema di elaborazione, conservazione o trasferimento dell’informazione, qualunque sia la natura dell’informazione stessa
Paolo MeloniElettronica – Introduzione al corso
Sistemi digitaliSistemi digitali
• Utilizziamo un insieme di sistemi digitali complessi quando:• Telefoniamo• Guardiamo un DVD• Preleviamo soldi dal bancomat• Lavoriamo al PC• Fotografiamo• Programmiamo il condizionatore d’aria• Guidiamo
Paolo MeloniElettronica – Introduzione al corso
Sistemi DigitaliSistemi Digitali
Algebra di Boole : 3 operatori (AND-OR-NOT)– 2 simboli (V-F)
Esempio: Operatore ANDAsserzione A: Marco e’ fabicoAsserzione B: Marco passa attraverso un campo di faveAsserzione C: Marco muore
Esempio: Operatore ORAsserzione A: Francesco e’ presenteAsserzione B: Pino e’ presenteAsserzione C: il prof dovra’ fare lezione
A AND B => C
A OR B => C
Paolo MeloniElettronica – Introduzione al corso
Sistemi DigitaliSistemi Digitali
Algebra di Boole : 3 operatori (AND-OR-NOT)– 2 simboli (V-F)
a) Qualsiasi segnale (grandezza fisica) può essere scritto sotto forma di una sequenza di numeri senza perdita
b) Qualsiasi numero può essere scritto in forma binaria e quindi trattato con l’algebra di Boole
c) Gli operatori booleani possono essere realizzati fisicamente maneggiando grandezze fisiche
d) Esistono operatori booleani di dimensioni micrometriche in forma elettronica
Paolo MeloniElettronica – Introduzione al corso
Sistemi DigitaliSistemi Digitali
a) Qualsiasi segnale (grandezza fisica) può essere a) Qualsiasi segnale (grandezza fisica) può essere scritto sotto forma di una sequenza di numeri scritto sotto forma di una sequenza di numeri
senza perdita (o con perdita minima)senza perdita (o con perdita minima)
Campionamento e Campionamento e quantizzazionequantizzazione
Paolo MeloniElettronica – Introduzione al corso
Sistemi digitaliSistemi digitali
• Proprio il fatto che le informazioni sono rappresentate sempre come numeri ha dato il nome a questo tipo di sistemi• DIGIT : Termine inglese per CIFRA
• Non tutti i sistemi elettronici sono sistemi digitali, ad esempio• Musicassette• Televisione terrestre analogica
Paolo MeloniElettronica – Introduzione al corso
Segnali digitaliSegnali digitali
• La traduzione di un fenomeno fisico in un segnale digitale, che si tratti di suono, un’immagine, una temperatura o qualsiasi altra cosa, avviene tramite la rappresentazione della grandezza stessa tramite una sequenza di NUMERI:• Ogni numero rappresenta il valore del segnale in
un particolare istante (istante di campionamento)• Ogni numero può assumere un insieme discreto e
finito di valori possibili
• I segnali digitali sono dunque• DISCRETIZZATI NEL TEMPO• DISCRETIZZATI IN AMPIEZZA
Paolo MeloniElettronica – Introduzione al corso
Segnali digitaliSegnali digitali
t
t
t
•Segnale: Il segnale originale varia con continuità nel tempo e può assumere qualsiasi valore in ampiezza
•Campionamento: Si considera il valore del segnale solo in determinati istanti di tempo chiamati istanti di campionamento
•Quantizzazione: Si suddivide l’intervallo di variazione del segnale in un certo numero (finito) di livelli di quantizzazionee si discretizza il valore campionato, ossia si memorizza solo l’intervallo di appartenenza e non il valore esatto
Paolo MeloniElettronica – Introduzione al corso
• Quantizzare significa discretizzare, passare cioè da un insieme continuo di valori ad un insieme discreto.
• Avendo, ad esempio, un segnale che può assumere valori fra 0 e 4, discretizzare su 4 livelli significa dividere l’intervallo 0-4 in 4 sottointervalli:• Intervallo 0-1• Intervallo 1-2• Intervallo 2-3• Intervallo 3-4
• A seconda dell’intervallo nel quale ricade il segnale, esso verràrappresentato con un numero associato a quel particolare intervallo. Tutti i valori dello stesso intervallo vengono quindi rappresentati con lo stesso numero
QuantizzazioneQuantizzazione
0
1
2
32.76
0.5
3.34
2
0
3
Errore di quantizzazione
Paolo MeloniElettronica – Introduzione al corso
15
Campionamento e Campionamento e quantizzazionequantizzazione
• E’ possibile dimostrare, matematicamente, che il processo di campionamento, che permette di trasformare un segnale continuo (come un suono) in una sequenza di numeri NON comporta perdita di informazione. E’ quindi sempre possibile, sotto opportune condizioni, ricostruire esattamente il segnale originale
• Il processo di quantizzazione, invece, introduce un errore (errore di quantizzazione) che non puo’ piu’essere recuperato (se rappresento sia 2.76 che 2.1 con il numero 2 non saprò mai quale era il numero originario). Se il numero di livelli di quantizzazione, pero’, e’ sufficientemente elevato, l’errore diventa molto piccolo e trascurabile. L’errore massimo e’ infatti pari all’ampiezza del singolo intervallo, che risulta molto piccola se si prende un gran numero di intervalli
Paolo MeloniElettronica – Introduzione al corso
Segnali digitaliSegnali digitali
Un’immagine fissa, ad esempio, èrappresentata da una matrice di numeri che rappresentano l’intensità luminosa
39 49 58 42 54 35
31 68 52 36 74 27
48 56 53 61 50 22
51 69 94 89 36 22
48 73 65 40 53 38
30 32 27 28 30 31
Un video è rappresentato da una sequenza di immagini fisse, quindi un insieme di immagini ognuna presa in un certo istante di campionamento 39 49 58 42 54 35
31 68 52 36 74 27
48 56 53 61 50 22
51 69 94 89 36 22
48 73 65 40 53 38
30 32 27 28 30 31
48 39 49 58 54 35
48 31 68 52 74 27
48 56 53 61 50 22
51 69 94 89 36 22
48 73 65 40 53 38
30 32 27 28 30 31
48 56 39 49 58 35
48 56 31 68 52 27
48 56 53 61 50 22
51 69 94 89 36 22
48 73 65 40 53 38
30 32 27 28 30 31
Paolo MeloniElettronica – Introduzione al corso
17
Segnali digitaliSegnali digitali
• Un documento di testo e’ rappresentato da una sequenza di numeri, ognuno dei quali rappresenta una lettera e le eventuali sequenze di controllo (a capo, tabulazione, etc.) secondo un sistema di codifica detto ASCII 73 I
110 n
115 s
116 t
97 a
108 l
108 l
105 i
110 n
103 g
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione dei numeriRappresentazione dei numeri
b) Qualsiasi numero può essere scritto in forma binaria e quindi trattato con
l’algebra di Boole
Rappresentazione binaria dei segnali campionati e discretizzati
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione dei numeriRappresentazione dei numeri
• Come vengono rappresentati in generale i numeri?
• Utilizzando la notazione posizionale
b3b2b1b0 N = b3r3+b2r2+b1r1+b0r0
Cifra (può assumere un valore compreso fra 0 e r-1)
Base (radix, in inglese)
In una rappresentazione decimale, ovviamente, r=10 e le cifre sono comprese fra 0 e 9
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione binariaRappresentazione binaria
• In generale, in un sistema digitale la base utilizzata è2 (numeri binari) in quanto si hanno a disposizione solo due cifre (0 e 1)
b3b2b1b0 D = b323+b222+b121+b020
Esempio:
10112 D = 1x23+0x22+1x21+1x20= 1110
Il pedice in basso a destra indica la base della notazione
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione dei numeriRappresentazione dei numeri
• Generalizzando rispetto al numero N di cifre utilizzate, la formula per ricavare l’equivalente decimale di un numero binario è:
0 1 1 0 1 0 0 1
Word (N bit)
Bit (bi)
∑−
=
=1
02
N
i
i
ibDb0 bit meno significativo (estrema destra)bN-1 è il bit più significativo (estrema sinistra)
b0bN-1
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione dei numeriRappresentazione dei numeri
c)Gli operatori booleani possono essere realizzati fisicamente maneggiando
grandezze fisiche
Realizzazione fisica delle porte logiche
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione binariaRappresentazione binaria
La rappresentazione fisica avviene per mezzo di grandezze elettriche.
A disposizione ci sono fondamentalmente 3 grandezze da utilizzare (tensione, corrente, carica).
Normalmente la scelta cade sulla tensione, che è più facile da maneggiare e misurare.
1 (vero)
0 (falso)
V (volt)
0
5
3.5
1.5
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione binariaRappresentazione binaria
A ciascun simbolo, quindi, viene associato un intervallo di valori di tensione e non un singolo valore.I due intervalli sono separati da una banda proibita di valori di tensione che non dovrebbero MAI essere raggiunti.La presenza di disturbi (rumore) quindi non altera i dati a meno che l’intensità del rumore stesso non causi un salto da un intervallo all’altro.
V (volt)
0
5
3.5
1.5
ΔV1
ΔV2
Il dato cambia valore
Il dato non cambia valore
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione binariaRappresentazione binaria
• La rappresentazione binaria è quindi un’astrazione logica che consente di dimenticare i dettagli fisici (il segnale in realtà èuna tensione quindi un segnale analogico) per concentrarsi sugli aspetti logici del sistema
• L’esistenza di soli 2 simboli, inoltre, rende più semplice realizzare i circuiti perché il rumore influenza molto meno il comportamento dei dispositivi.
• Le operazione logiche seguono le regole dell’algebra di Boole (della commutazione).
Paolo MeloniElettronica – Introduzione al corso
Vantaggi dei sistemi digitaliVantaggi dei sistemi digitali
• Versatilita’Il fatto che tutte le informazioni, di qualunque natura siano, vengano rappresentate nello stesso modo (con NUMERI), permette di utilizzare gli stessi strumenti elettronici per applicazioni diverse. Ad esempio, lo stesso microcontrollore utilizzato nel cellulare per elaborare e codificare la voce (un suono) potrebbe essere usato nella realizzazione del sistema ABS della macchina, che elabora invece la velocità delle ruote per decidere come ripartire la frenata.
• Programmabilita’Visto che i dati sono rappresentati nello stesso modo, al cambiare deltipo di dato si può cambiare non il sistema stesso ma solo la sequenzadi operazioni che esso svolge sui dati stessi (il programma)
Paolo MeloniElettronica – Introduzione al corso
Vantaggi dei sistemi digitaliVantaggi dei sistemi digitali
• PrecisioneLa rappresentazione interna delle informazioni avviene usando SOLO 2 simboli (1 e 0). Questo rende i circuiti digitali più precisi perché piùresistenti al rumore (i due simboli sono ben separati l’uno dall’altro)
• Velocita’La maggiore precisione consente anche una maggiore velocità, perchéi circuiti NON digitali sono costretti a sprecare molte risorse per garantire lo stesso livello di precisione. L’utilizzo di un maggior numero di risorse causa un rallentamento dell’elaborazione
Paolo MeloniElettronica – Introduzione al corso
Vantaggi dei sistemi digitaliVantaggi dei sistemi digitali
• CostoLa versatilità e programmabilità dei sistemi digitali nei diminuisce il costo perché aumenta il potenziale numero di applicazioni sui cui dividere i costi fissi. Se lo stesso processore lo posso vendere ai produttori di cellulari, ai fabbricanti di automobili ed elettrodomestici, ai produttori di hi-fi, suddividerò il costo di progettazione, realizzazione e ricerca su tutti gli utenti diminuendone l’impatto sul prezzo finale
• Semplicita’ di progettazioneL’uso dei soli due simboli consente di applicare tecniche di progettazione standard, facili da apprendere e da automatizzare (vedremo meglio in seguito)
Paolo MeloniElettronica – Introduzione al corso
Elaborazione di segnali digitaliElaborazione di segnali digitali
Richiami sull’algebra di Boole
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole
• L’algebra di Boole o della commutazione è lo strumento che si usa per l’elaborazione dell’informazione binaria.
• L’algebra di Boole si basa su 2 simboli (0/1) e i 3 operatori: somma (+), prodotto (•) e negazione (‘).
Paolo MeloniElettronica – Introduzione al corso
Algebra della commutazioneAlgebra della commutazione
• L’algebra della commutazione è definita su un insieme di due elementi (0 e 1), che sono gli elementi con cui abbiamo costruito la rappresentazione delle informazioni e che corrispondono al FALSO e VERO dell’algebra inizialmente sviluppata da Boole
• Gli operatori sono 3, gli stessi di Boole:
• PRODOTTO LOGICO (AND,· )• SOMMA LOGICA (OR ,+)• NEGAZIONE (NOT ,‘ )
Paolo MeloniElettronica – Introduzione al corso
Funzioni logicheFunzioni logiche
• Una funzione logica e’ una relazione algebrica ingresso/uscita che lega un numero N di ingressi con l’uscita.
F(x1,x2,…,xN)
x1x2
xN
F
Paolo MeloniElettronica – Introduzione al corso
Rappresentazione di funzioni logicheRappresentazione di funzioni logiche• Una qualsiasi funzione logica può essere rappresentata in
svariati modi.• Tabella di verita’: la tabella di verità ha tante righe
quante sono le possibili combinazioni degli ingressi e per ogni riga viene indicato il valore della funzione
• Espressione logica: la funzione è rappresentata per mezzo di un’espressione algebrica contenente le variabili di ingresso e gli operatori logici di base
• Mappe di Karnaugh: rappresentazione grafica basata sulla visualizzazione delle combinazioni di ingressi per cui la funzione vale 1 (o 0), utilizzata per la minimizzazione della funzione stessa
• Schematico: rappresentazione grafica per mezzo di simboli
Paolo MeloniElettronica – Introduzione al corso
Principali funzioni logichePrincipali funzioni logiche
Z=X’
Simbolo grafico
XTabella di verità
Z
0 1
1 0
X Y Z
0 0 0
0 1 0
1 0 0
1 1 1
X Y Z
0 0 0
0 1 1
1 0 1
1 1 1
Z=X+Y Z=X•Y
Espressione algebrica
OR AND
NOT
Paolo MeloniElettronica – Introduzione al corso
Principali funzioni logichePrincipali funzioni logiche
X Y Z
0 0 1
0 1 1
1 0 1
1 1 0
X Y Z
0 0 1
0 1 0
1 0 0
1 1 0
Z=(X+Y)’
NOR
Z=(X•Y)’
NAND
X Y Z
0 0 1
0 1 0
1 0 0
1 1 1
X Y Z
0 0 0
0 1 1
1 0 1
1 1 0
Z= X•Y’ + X’•Y
XOR
Z=X’•Y’+X•Y
XNOR
Paolo MeloniElettronica – Introduzione al corso
24 Settembre 2007 ED - Intro Massimo Barbaro 36
Implementazione di funzioni logicheImplementazione di funzioni logiche
• E’ dimostrabile che qualsiasi funzione logica può essere implementata con i soli operatori di somma, prodotto e negazione e con solo 2 livelli di logica. Ossia con somme di prodotti o prodotti di somme.
Somma di prodotti Prodotto di somme
F’
CD’
AB’F
C’D
A’B
2° livello1° livello 2° livello1° livello
Paolo MeloniElettronica – Introduzione al corso
Insieme funzionalmente completiInsieme funzionalmente completi
• L’insieme AND, OR, NOT e’ dunque funzionalmente completo perchéavendo a disposizione solo tali operatori e’ possibile implementare ogni funzione logica
• Anche il solo insieme AND, NOT e’ funzionalmente completo, grazie al teorema di DeMorgan che consente di trasformare una somma in un prodotto
• Per dualità e’ completo anche il solo insieme OR, NOT
Paolo MeloniElettronica – Introduzione al corso
Insieme funzionalmente completiInsieme funzionalmente completi
• Il solo operatore NAND (il simbolo della NAND è ↑) è un insieme funzionalmente completo, infatti:• Con una NAND si può implementare l’operatore NOT:
• A’ = (AA)’ = A NAND A• Con la NAND si può implementare il prodotto
• AB = (AB)’’ = (A ↑ B)’ = (A ↑ B) ↑ (A ↑ B)• Con la NAND si può implementare la somma
• A+B = (A+B)’’ = (A’B’)’ = (A ↑ A) ↑ (B ↑ B)• Analogamente si può mostrare che la sola NOR è un insieme
funzionalmente completo
Paolo MeloniElettronica – Introduzione al corso
Implementazione con operatori NANDImplementazione con operatori NAND
FC’D
A’B
FC’D
A’B F
C’D
A’B
Per il teorema di DeMorgan èpossibile trasformare la somma di prodotti in modo da avere solo operatori NAND
(X•Y)’=NAND(X,Y) (X’+Y’)=(X•Y)’=NAND(X,Y)
Paolo MeloniElettronica – Introduzione al corso
Implementazione con operatori NORImplementazione con operatori NOR
FC’D
A’B
FC’D
A’B F
C’D
A’B
Analogamente è possibile realizzare il prodotto di somme con soli operatori NOR
(X+Y)’=NOR(X,Y) (X’ • Y’)=(X+Y)’=NOR(X,Y)
Paolo MeloniElettronica – Introduzione al corso
Forma canonicaForma canonicaA B C D F
0
0
0
0 0 1 1 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
1
0 000
0
0
0 1 0
1
1 0 0
1 1 1
Un modo, molto compatto, per rappresentare una funzione logica èquello della sua forma canonica(somma o prodotto)
Paolo MeloniElettronica – Introduzione al corso
Somma canonicaSomma canonicaA B C D F
0
0
0
0 0 1 1 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
1
0 000
0
0
0 1 0
1
1 0 0
1 1 1
∑ DCBA ,,, )15,13,12,5,4(
Nel caso della somma si selezionano solo le righe che contengono 1 e si rappresentano con un numero che corrisponde al numero di riga
Paolo MeloniElettronica – Introduzione al corso
Somma canonicaSomma canonica
∑ DCBA ,,, )15,13,12,5,4(
Avendo la somma canonica è possibile scrivere facilmente l’espressione algebrica: si fa una somma di termini ciascuno dei quali è il prodotto delle variabili stesse prese però negate se il bit corrispondente nel codice binario della riga è 0
(ABCD)5d = 0101b
F=A’BC’D’+A’BC’D+ABC’D’+ABC’D+ABCD)
A e C negate
B e D non negate
Paolo MeloniElettronica – Introduzione al corso
Prodotto canonicoProdotto canonicoA B C D F
0
0
0
0 0 1 1 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
1
0 000
0
0
0 1 0
1
1 0 0
1 1 1
Si selezionano le righe contenenti 0Nel passare alla espressione algebrica si usa la convenzione opposta (la variabile è negata se c’è un 1 nel codice della riga)
∏ DCBA ,,, )14,11,10,9,8,7,6,3,2,1,0(
F=(A+B+C+D) (A+B+C+D’) (A+B+C’+D) (A+B+C’+D’) (A+B’+C’+D) (A+B’+C’+D’) (A’+B+C+D) (A’+B+C+D’) (A’+B+C’+D) (A’+B+C’+D’) (A’+B’+C’+D)
Paolo MeloniElettronica – Introduzione al corso
Implementazione di funzioni logicheImplementazione di funzioni logiche
• E’ dimostrabile che qualsiasi funzione logica può essere implementata con i soli operatori di somma, prodotto e negazione e con solo 2 livelli di logica. Ossia con somme di prodotti o prodotti di somme.
Somma di prodotti Prodotto di somme
F’
CD’
AB’F
C’D
A’B
2° livello1° livello 2° livello1° livello
Paolo MeloniElettronica – Introduzione al corso
Mappe di Mappe di KarnaughKarnaugh
• La rappresentazione per mezzo di mappe di Karnaugh permette di trovare l’implementazione in forma minima.
1 1
1 1
1
ABCD
0000 10
F=F(A,B,C,D)
01
1011
01 11
Indici di colonne o righe adiacenti differiscono di un solo bit
Si rappresenta un 1 nelle caselle che corrispondono a combinazioni di ingresso per cui F=1
L’ultima colonna (riga) è adiacentealla prima.
Paolo MeloniElettronica – Introduzione al corso
Mappe di Mappe di KarnaughKarnaugh
CD
01 11AB
10 4 12 8
1 5 13 9
3 7 15 11
2 6 14 10
00 10
00
01
11
111
10
1
Le singole celle, per comodità, possono essere etichettate con il numero corrispondente alla combinazione ABCD ossia ogni cella corrisponde ad una delle righe della tabella di verità
Paolo MeloniElettronica – Introduzione al corso
Mappe di Mappe di KarnaughKarnaugh• Per minimizzare la funzione si coprono tutte le caselle contenenti gli 1 con gli
implicanti più grandi possibili (ossia con riquadri contenenti un numero di caselle che sia una potenza di 2 e che contengono solo 1).
• Dopodiché la forma su due livelli di logica della funzione è ottenuta come somma dei prodotti rappresentati dagli implicanti
1 1
1 1
1
CD00
00 01 11
01
1011
10AB
F=BC’+ABD
Quando i nomi di variabile sono costituiti da una sola lettera èpossibile omettere il simbolo del prodotto (•)
Paolo MeloniElettronica – Introduzione al corso
Mappe di Mappe di KarnaughKarnaugh
1 1
1 1
1
CD
01
1011
0000 01 11 10
AB
Se dentro l’implicante la variabile è pari a 1 si mette la variabile stessa, altrimenti si mette la variabile negata
F=BC’+ABD
Per ogni implicante si mettono solo le variabili che non cambiano all’interno dell’implicante stesso
Un implicante con 2k caselle ha N-kvariabili
Paolo MeloniElettronica – Introduzione al corso
Mappe di Mappe di KarnaughKarnaugh
• Per ottenere la funzione in termini di prodotto di somme bisognamodificare la rappresentazione:• Si mettono zeri nelle caselle corrispondenti a combinazioni
d’ingresso per cui la funzione è 0• Si coprono con implicanti contenenti solo zeri• Nell’espressione algebrica dell’implicante si mette la variabile
stessa se essa compare col valore 0 altrimenti si mette la variabile negata se compare col valore 1
Paolo MeloniElettronica – Introduzione al corso
Mappe di Mappe di KarnaughKarnaugh
0 0
0 0
0 0 0
0 0 0 0
ABCD
01
1011
0000 1001 11
F=B (C’+D) (A+C’)
Nel caso della funzione precedente
F
C’
C’
DA
B
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
Scrivere la somma ed il prodotto canonico delle seguenti funzioni.
∑ CBA ,, )7,6,4,2(
∏ CBA ,, )5,4,3,1,0(
F=X+YZ’F=V’+(W’X)’
(1)
(2)
(3)
(4)
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
∑ CBA ,, )7,6,4,2(A B C F
0
0
0
0 1 1 0
1 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
0 00
0 1 0
1 0 1
F=(A’BC’)+(AB’C’)+(ABC’)+(ABC)
Somma canonica
A’BC’
AB’C’
ABC’ABC
0 1 0
1 0 0
1 1 0 1 1 1
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
A B C F
0
0
0
0 1 1 0
1 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
0 00
0 1 0
1 0 1
F=(A+B+C)(A+B+C’)(A+B’+C’)(A’+B+C)(A’+B+C’)
∏ CBA ,, )5,4,3,1,0(Prodotto canonico
A’+B+C’1 0 1
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
X Y Z F
0
0
0
0 1 1 0
1 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
0 00
0 1 0
1 0 1
F=(X’YZ’)+(XY’Z’)+(XY’Z)++(XYZ’)+(XYZ)
F=(X+Y+Z)(X+Y+Z’)(X+Y’+Z’)
F=X+YZ’Somma canonica
Prodotto canonico
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
V W X F
0
0
0
0 1 1 1
1 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
0 10
0 1 1
1 0 1
F=(V’W’X’)+(V’W’X)+(V’WX’)++(V’WX)+(VW’X’)+(VWX’)++(VWX)
F=V’+W+X’
F=V’+(W’X)’Somma canonica
Prodotto canonico
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
∑ CBA ,, )7,6,4,2(
Minimizzare ed esprimere in termini di NAND-NAND o NOR-NOR la funzione
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
∑ CBA ,, )7,6,4,2(
0 2 6 4
1 3 7 5C1
000 01 11 10
AB
1 11
1
F=(BC’)+(AC’)+(AB)
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
∑ CBA ,, )7,6,4,2(
Paolo MeloniElettronica – Introduzione al corso
Algebra di Algebra di BooleBoole -- EserciziEsercizi
∑ CBA ,, )7,6,4,2( In termini di sole NAND
Paolo MeloniElettronica – Introduzione al corso
Linguaggi HDL (Hardware Linguaggi HDL (Hardware DescriptionDescription LanguageLanguage))
• Rappresentano attualmente il metodo piu’ diffuso per la rappresentazione dei circuiti digitali
• Permettono di rappresentare e simulare circuiti semplici o sistemi molto complessi
• NON SONO LINGUAGGI DI PROGRAMMAZIONE• Non descrivono una sequenza di operazioni• Descrivono il funzionamento di un circuito formato da
componenti che lavorano continuamente e contemporaneamente (non in sequenza)
• I piu’ diffusi sono il VERILOG e il VHDL• Servono principalmente per due scopi:
• Simulazione di circuiti digitali• Sintesi di circuiti digitali
• Caso Particolare : SystemC
Paolo MeloniElettronica – Introduzione al corso
VERILOGVERILOG
• L’unita’ base di un progetto verilog e’ il modulo. Corrisponde concettualmente ad un blocco funzionale all’interno di un sistema digitale
• Si compone delle seguenti parti• Interfaccia• Definizioni• Instanze• Procedure• Assegnamenti
Paolo MeloniElettronica – Introduzione al corso
VERILOGVERILOG
• Interfaccia: vengono definiti gli ingressi e le uscite del modulo. In tale fase si da’ anche una definizione del tipo di ogni ingresso/uscita (wire o reg). Se non si specifica nessun tipo, come defaultogni ingresso/uscita specificato e’ considerato un wire.
• Definizioni• Instanze• Procedure• Assegnamenti
Paolo MeloniElettronica – Introduzione al corso
VERILOGVERILOG
• Interfaccia• Definizioni: Vengono definiti net (wire) e variabili
(reg) usati nel modulo. Le definizioni sono locali al modulo (private).
• Instanze• Procedure• Assegnamenti
Paolo MeloniElettronica – Introduzione al corso
VERILOGVERILOG
• Interfaccia• Definizioni• Instanze: Vengono definite istanze di altri moduli o
primitive del verilog (nand, nor, not, and, or). Ogni istanza si definisce con: <nome del modulo/prim. da istanziare> <nome che si vuole assegnare all’istanza> (<nome del segnale assegnato al primo segnale dell’interfaccia del modulo>, <nome del segnale assegnato al primo segnale dell’interfaccia del modulo>, ecc…);Le primitive non hanno bisogno del nome istanza.
• Procedure• Assegnamenti
Paolo MeloniElettronica – Introduzione al corso
VERILOGVERILOG
• Interfaccia• Definizioni• Instanze• Procedure: Sequenze di operazioni che
implemantano una funzionalita’ riciesta al circuito. Sono tipiche delle descrizioni funzonali dei moduli.
• Assegnamenti
Paolo MeloniElettronica – Introduzione al corso
VERILOGVERILOG
• Interfaccia• Definizioni• Instanze• Procedure• Assegnamenti: definizione di segnali come
combinazione logica di altri segnali
Paolo MeloniElettronica – Introduzione al corso
VERILOGVERILOG
• Interfaccia• Definizioni• Instanze• Procedure• Assegnamenti
• Procedure, istanze e assegnamenti definiscono dei blocchi funzionali che lavorano in parallelo a prescindere dall’ordine in cui vengono riportati.
• All’interno di una procedura le operazioni avvengono invece in modo sequenziale.
• Nessuna altra istruzione può essere definita al di fuori di una procedura.
Paolo MeloniElettronica – Introduzione al corso
• Consideriamo il circuito
• Puo’ essere descritto in verilog in questo modo
module my_and(z,a,b); // interfacciainput a,b; // interfacciaoutput z; // interfacciawire nand_out; // definizionenand u1(nand_out, a, b); // istanza a primitivanot u2(z, nand_out); // istanza a primitivaendmodule
Esempio di circuito VERILOG Esempio di circuito VERILOG
Paolo MeloniElettronica – Introduzione al corso
module my_and(z,a,b); // interfacciainput a,b; // interfacciaoutput z; // interfacciawire nand_out; // definizionenand u1(nand_out, a, b); // istanza a primitivanot u2(z, nand_out); // istanza a primitivaendmodule
module my_and_A1(z,a,b); // interfacciainput a,b; // interfacciaoutput z; // interfacciawire nand_out; // definizioneassign nand_out=~(a&b); // assegnamento assign z=~nand_out; // assegnamentoendmodule
Esempio di circuito VERILOG Esempio di circuito VERILOG
Paolo MeloniElettronica – Introduzione al corso
module my_and(z,a,b); // interfacciainput a,b; // interfacciaoutput z; // interfacciawire nand_out; // definizionenand u1(nand_out, a, b); // istanza a primitivanot u2(z, nand_out); // istanza a primitivaendmodule
module my_and_A2(z,a,b); // interfacciainput a,b; // interfacciaoutput z; // interfacciaassign z=(a&b); // assegnamentoendmodule
Esempio di circuito VERILOG Esempio di circuito VERILOG