universita’ degli studi di cagliari - diee.unica.it · di analisi e progetto. paolo meloni...

72
Paolo Meloni Universita’ degli studi di Cagliari Elettronica Elettronica

Upload: trinhbao

Post on 21-Feb-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Paolo MeloniUniversita’ degli studi di Cagliari

ElettronicaElettronica

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 MeloniUniversita’ degli studi di Cagliari

Linguaggi HDL e Linguaggi HDL e VERILOGVERILOG

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