Reti Logiche
Introduzione
Capitolo 1: Introduzione
Reti Logiche
Contemporary Logic Design
Randy H. Katz
University of California, Berkeley
May 1993
Trasparenze tradotte da:
Luciano Lavagno
Universita’ di Udine
Settembre 1998
© R.H. Katz 1-1
Motivazione
Reti Logiche
Introduzione
Il modo in cui l’hardware viene progettato sta cambiando radicalmente
• Strumenti di Progetto Assistito da Calcolatore (CAD)
Minore importanza data a tecniche di progetto manuale
Maggiore importanza data a rappresentazioni astratte
Il progetto hardware sembra sempre piu’ al progetto software
• Tecnologie circuitali per prototipazione rapida
Uso di logica programmabile invece di logica discreta
• Importanza di metodi di progetto solidi e ben fondati
Progetto sincrono
Regole di composizione
© R.H. Katz 1-2
Reti Logiche
Introduzione
Gli elementi di un progetto moderno
Rappresentazioni, tecnologie circuitali, prototipazione rapida
Comportamenti
Blocchi
Rappresentazioni
del progetto
Forme d’onda
Porte logiche
Tavole di verita’
Algebra Booleana
Tecnologie di
prototipazione rapida
Interruttori
Simulazione Sintesi
MOS
PAL, PLA, ROM, PLD
Computer-Aided
Design
TTL
Tecnologie
circuitali
© R.H. Katz 1-3
Struttura del capitolo
Reti Logiche
Introduzione
• Flusso di progetto
• Sistemi digitali
• Rappresentazioni di progetto
• Prototipazione rapida
© R.H. Katz 1-4
Reti Logiche
Introduzione
Il flusso di progetto
Progetto
realizzazione
Debug
Progetto
Idea iniziale: qual’e’ la funzione che l’oggetto deve svolgere?
Vincoli: Quanta velocita’? Quanta area? Quanto costo?
Trasformare blocchi funzionali astratti in realizzazioni piu’ concrete
realizzazione (“implementazione”)
Comporre blocchi primitivi in blocchi piu’ complessi
Composizione tramite interconnessione (“fili”)
Scegliere tra alternative per migliorare il progetto
Debug (identificazione e correzione degli errori)
Errori in un sistema: progetto, composizione, componenti
Progettare in modo da facilitare il debugging
Abilita’ specifiche per ipotizzare e correggere gli errori
© R.H. Katz 1-5
L’arte del progetto: Trasformazione di rappresentazioni
Reti Logiche
Introduzione
1. Specifica funzionale/Che cosa il sistema deve fare
Es: Controllore di semaforo
Luci in 4 direzioni: N, S, E, O
Luci N e S hanno la stessa funzione (idem E ed O)
Ripete la sequenza VERDE-GIALLO-ROSSO
N-S e E-O mai VERDI o GIALLI allo stesso istante
VERDE per 45 secondi, GIALLO per 15, ROSSO per 60
2. Vincoli di prestazioni e costo
velocita’: calcolare le transizioni in meno di 100 ms
potenza: consumare meno di 20 W
area: realizzazione in meno di 20 cm2
costo: fabbricazione con meno di 20 Euro
© R.H. Katz 1-6
Reti Logiche
Introduzione
L’arte del progetto: ”Progettare e’ rappresentare"
1. Specifiche in italiano (spesso in inglese…)
facili da scrivere, ma imprecise ed ambigue
inizio
2. Descrizione funzionale
Specifica piu’ precisa
diagrammi di flusso, pezzi di programma
3. Descrizione strutturale
componenti complessi decomposti in
composizioni di componenti piu’ semplici
4. Descrizione fisica
il progetto descritto in termini dei
componenti “piu’ elementari”,
p.es. porte logiche o transistor
N-S verde
E-O rosso
dopo 45 secondi
N-S giallo
E-O rosso
dopo 15 secondi
N-S rosso
E-O verde
dopo 45 secondi
N-S rosso
E-O giallo
dopo 15 secondi
© R.H. Katz 1-7
Reti Logiche
Introduzione
Il flusso di progetto
Realizzazione come composizione
Progetto Top Down:
Funzioni complesse sostituite da funzioni piu’ semplici
Progetto Bottom Up:
Blocchi semplici composti per ottenere blocchi complessi
Regole di composizione (“correttezza per costruzione”):
Regole elettriche: quanti componenti possono essere
interconnessi?
Regole di temporizazione: come cambia il sistema in risposta
ad eventi periodici di eccitazione
(“triggering”)?
© R.H. Katz 1-8
Reti Logiche
Introduzione
Il flusso di progetto
Decomposizione Top Down
Progetto
Rappresentazione
strutturale
Start
N-S Green
N-S Yellow
N-S Red
E-W Green
E-W Yellow
E-W Red
Traffic Light
Subsystem
45 seconds
Start
Light
Sequencer
Timer
15 seconds
45 seconds
Start
Timer
15 seconds
N-S Lights
Primitive
Sequencer
E-W Lights
Decoder
N-S Green
N-S Yellow
N-S Red
E-W Green
E-W Yellow
E-W Red
N-S Green
N-S Yellow
N-S Red
E-W Green
E-W Yellow
E-W Red
Decomposizione di funzioni complesse in funzioni piu’ semplici
© R.H. Katz 1-9
Reti Logiche
Introduzione
Il flusso di progetto
Composizione Bottom Up
Progetto
Blocchi semplici composti per creare
blocchi piu’ complessi
edificio
p.es. un gruppo di stanze costituisce un piano
p.es. un gruppo di piani costituisce un edificio
piano
un gruppo di transistor costituisce una
porta logica
un gruppo di porte logiche costituisce
un circuito sommatore
circuiti sommatori ed elementi di memoria
costituiscono il datapath di un processore
stanze
© R.H. Katz 1-10
Reti Logiche
Introduzione
Il flusso di progetto: debugging del sistema
Che cosa puo’ non funzionare
• Errori di progetto
La realizzazione non soddisfa la specifica funzionale
Il progetto logico e’ sbagliato (realizza la funzione sbagliata)
Interpretazione errata o dimenticanza di casi
• Errori di realizzazione
I componenti funzionano correttamente, ma la composizione no
Interpretazione errata delle interfacce e temporizzazioni
Errori di interconnessione, errori di compatibilita’ tra famiglie
• Errori nei componenti
Logicamente corretto, interconnessione corretta
Non tutti i componenti hardware funzionano sempre!
P.es. componente bruciato
© R.H. Katz 1-11
Il flusso di progetto
Reti Logiche
Introduzione
Debugging per via simulativa prima della realizzazione
Abilita’ di debugging:
• Migliorare la collaudabilita’ del progetto
• Formulare un piano di collaudo e sviluppare casi da
esaminare
• Ipotizzare le cause di un malfunzionamento
• Isolare parti della realizzazione per collaudarle
• Usare in modo appropriato gli strumenti di laboratorio
© R.H. Katz 1-12
Reti Logiche
Introduzione
Sistemi digitali hardware
Sistemi digitali
Forme d’onda digitali ed analogiche
+5
+5
1
0
1
V
V
Tempo
–5
Digitale (numerico):
assume solo un insieme
finito discreto di valori
Tempo
–5
Analogico:
il valore varia in modo continuo
su un’ampia gamma
© R.H. Katz 1-13
Reti Logiche
Introduzione
Sistemi digitali hardware
Vantaggi dei sistemi digitali
Sistemi analogici: un piccolo errore in ingresso puo’ causare
un grande errore in uscita
I sistemi digitali sono piu’ accurati ed affidabili
Facile considerarli come blocchi a se’ stanti, e comporli
per generare altri blocchi
I calcolatori oggi usano circuiti digitali al loro interno
I circuiti di interfaccia (sensori ed attuatori) sono spesso analogici
Questo corso parla di progetto logico,
non di progetto di sistema (architettura di un processore)
ne’ di progetto circuitale (livello di transistor)
© R.H. Katz 1-14
Sistemi hardware digitali
Reti Logiche
Introduzione
Sistemi digitali binari
• Due valori discreti:
si’, acceso, 5 volt, corrente scorre, magnetizzato a nord, "1"
no, spento, 0 volt, corrente non scorre, magnetizzato a sud, "0"
• Vantaggio dei sistemi binari:
solide basi matematiche, in termini di logica
IF la porta del garage e’ aperta
AND l’auto funziona
THEN l’auto puo’ uscire dal garage
la porta deve essere
aperta e la macchina
deve funzionare
prima che io possa
uscire dal garage
IF N-S e’ verde
AND E-O e’ rosso
AND sono passati 45 secondi dall’ultimo cambio delle luci
THEN possiamo passare alla prossima configurazione delle luci
le tre pre-condizioni devono essere vere per implicare la conclusione
© R.H. Katz 1-15
Reti Logiche
Introduzione
Sistemi hardware digitali
Algebra booleana ed operazioni logiche
Algebra: variabili, valori, operazioni
Nell’algebra booleana i valori sono 0 ed 1
Se un’affermazione logica e’ falsa, ha valore 0
Se un’affermazione logica e’ vera, ha valore 1
Operazioni: AND, OR, NOT
X
Y
X AND Y
X
Y
X OR Y
X
NOT X
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
© R.H. Katz 1-16
Reti Logiche
Introduzione
Sistemi hardware digitali
Sistemi hardware ed operazioni logiche
IF la porta del garage e’ aperta
AND l’auto funziona
THEN l’auto puo’ uscire dal garage
porta aperta? auto funziona?
falso/0
falso/0
vero/1
falso/0
falso/0
vero/1
vero/1
vero/1
puo’ uscire?
falso/0
falso/0
falso/0
VERO/1
© R.H. Katz 1-17
Reti Logiche
Introduzione
Sistemi hardware digitali
Il mondo reale
I componenti fisici sono (quasi…) continui, non discreti!
Componenti continui sono alla base di tutti i sistemi discreti!
+5
1 logico
V
0 logico
0
Una transizione dall’1 allo 0 logico
non e’ istantanea nei sistemi
digitali reali
Valori intermedi possono essere
visibili “per breve tempo”
L’algebra booleana e’ utile per analizzare il comportamento
in stato stazionario dei sistemi digitali
Ma talvolta bisogna fare attenzione al comportamento
dinamico, nel tempo!
© R.H. Katz 1-18
Sistemi hardware digitali
Reti Logiche
Introduzione
Tecnologie dei circuiti digitali
Tecnologie dei circuiti integrati
scelta di materiali conduttori, isolanti e semi-conduttori
interruttori controllati elettronicamente quando
l’interazione tra i materiali permette di controllare
il flusso di elettroni
Tecnologie principali
MOS: Metallo-Ossido-Silicio
Bipolare
Transistor-Transistor Logic
Emitter Coupled Logic
© R.H. Katz 1-19
Reti Logiche
Introduzione
Sistemi hardware digitali
Tecnologia MOS
Transistor
interruttore elettrico fondamentale
Gate
Drain
Sourc e
interruttore a tre terminali: gate, source, drain
se la tensione tra gate e source e’ al di sopra della soglia,
l’interruttore conduce, o ”e’ chiuso"
gli elettroni scorrono tra source e drain
se la tensione viene tolta,
l’interruttore non conduce, o ”e’ aperto"
la connessione source-drain e’ interrotta
© R.H. Katz 1-20
Reti Logiche
Introduzione
Sistemi hardware digitali
Circuito che realizza la negazione logica (NOT)
+5
1 all’ingresso produce 0 all’uscita
0 all’ingresso produce 1 all’uscita
tensione di
1 logico
comportamento dell’Inverter in funzione della
tensione in ingresso
l’ingresso sale da 0V a 5V
tensione di
l’uscita rimane a 5V per un certo intervallo
0 logico
di tensioni in ingresso
poi cambia rapidamente,
ma non istantaneamente!
VOut
0
V In
+5
ricordate la distinzione tra comportamento
stazionario e dinamico!
© R.H. Katz 1-21
Reti Logiche
Introduzione
Sistemi hardware digitali
Logica combinatoria e sequenziale
X1
X2 -
Xn
-
Rete
logica
Z1
Z2
-
Rete di porte logiche. La presenza
o meno di memoria distingue tra
reti sequenziali
e combinatorie.
Zm
Logica combinatoria
le uscite sono funzione degli ingressi
condizione sufficiente: assenza di cicli
p.es. circuito full adder (sommatore ad 1 bit):
(A, B, Carry In) genera (Sum, Carry Out)
A
B
Cin
Full
Adder
Sum
Cout
© R.H. Katz 1-22
Reti Logiche
Introduzione
Sistemi hardware digitali
Logica sequenziale
gli ingressi e le uscite “interagiscono”
le uscite dipendono sia dagli ingressi sia
dall’intera storia precedente della rete
la rete tipicamente ha un numero finito di configurazioni uniche,
chiamate stati
p.es. il controllore del semaforo procede all’infinito lungo una
sequenza di 120 (45+15+45+15) stati
nuovo tipo di componenti nelle reti sequenziali:
elementi di memoria, che ricordano lo stato presente
uscite e stato futuro funzione degli ingressi e dello stato presente
cioe’ uscite che rientrano in reazione realizzano lo stato!
Sistemi sincroni
un segnale periodico di riferimento, il clock, fa si’ che gli elementi
di memoria accettino nuovi ingressi e cambino stato
Sistemi asincroni
non c’e’ un singolo segnale che dice quando cambiare stato
© R.H. Katz 1-23
Reti Logiche
Introduzione
Sistemi hardware digitali
Logica combinatoria e sequenziale
Esempio del controllore
di semaforo
Other Inputs,
Like T imer Alarms
Traffic Light
Controller
New Traffic Light
Controller Configuration
Current Traffic
Light Controller
Configuration
Cloc k
Timer
Alarms
Next State
Combinational
Logic
S
T
A
T
E
Output
Combinational
Logic
Detailed Light
Control Signals
Current State
Logica di stato futuro Stato presente
Trasforma stato
Elementi di memoria
corrente ed
cambiano valore
eventi del
quando arriva il
temporizzatore
segnale di clock
nello stato futuro
Logica di uscita
Trasforma lo stato
corrente nei segnali
per le luci e per
attivare il
temporizzatore
IF lo stato e’ N-S verde, E-O rosso
AND l’ingresso del temporizzatore a 45 secondi e’ presente
THEN lo stato futuro diventa N-S giallo,
E-O rosso la prossima volta in cui il segnale clk e’ presente
© R.H. Katz 1-24
Reti Logiche
Introduzione
Rappresentazioni di un progetto digitale
Due tipi di interruttori:
Un interruttore connette due punti sotto il controllo
di un terzo segnale
Normalmente
aperto (NMOS)
quando il controllo e’ a 0 (falso), e’ aperto
Normalmente
chiuso (PMOS)
quando il controllo e’ a 1 (vero), e’ aperto
quando e’ ad 1 (vero), e’ chiuso
quando e’ a 0 (falso), e’ chiuso
True
Control
Clos ed
Sw itc h
True
Control
Fals e
Normally Open
Sw itc h
Open
Sw itc h
Fals e
Normally Clos ed
Sw itc h
Open
Sw itc h
Clos ed
Sw itc h
© R.H. Katz 1-25
Reti Logiche
Introduzione
Rappresentazioni di un progetto digitale: Interruttori
Esempio: portare gli ingressi in uscita in un labirinto
Esempio:
IF auto in garage
AND porta aperta
AND auto funziona
THEN puoi uscire
auto in
garage
auto
funziona
puoi
uscire
Vero
Esempio:
IF auto sul vialetto
OR (auto in garage
AND NOT porta
aperta)
AND auto funziona
THEN puoi uscire
porta
aperta
porta
chiusa
auto in
garage
auto
funziona
Vero
puoi
uscire
Vero
auto sul
vialetto
Nodi fluttuanti (non pilotati, alta impedenza):
che cosa accade se l’auto non funziona?
le uscite fluttuano invece di assumere il valore “falso”
In qualsiasi configurazione dei segnali di controllo
(1) tutte le uscite vanno collegate ad un ingresso lungo un cammino
(2) nessuna uscita puo’ essere collegata a piu’ di un ingresso
© R.H. Katz 1-26
Reti Logiche
Introduzione
Rappresentazioni di un progetto digitale: interruttori
Realizzazione di funzioni AND ed OR con interruttori
A
False
B
A
output
True
Funzione AND
Connessione in serie a VERO
False
B
output
True
Funzione OR
Connessione in parallelo a VERO
© R.H. Katz 1-27
Reti Logiche
Introduzione
Rappresentazioni di un progetto digitale
Tabelle di verita’ (o tavole di verita’)
elencare tutte le possibili combinazioni di valori in ingresso
ed i corrispondenti valori in uscita
Esempio: half adder
somma due numeri binari
per generare Sum e Carry
(somma e riporto)
A
B
Sum
Carry
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
NOTA: 1 piu’ 1 fa 0 con il
riporto di 1 in binario...
Esempio: full adder
somma due numeri binari e
Carry in per generare Sum e
Carry Out
A
0
0
0
0
1
1
1
1
B Cin
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1
Sum Cout
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
© R.H. Katz 1-28
Reti Logiche
Introduzione
Rappresentazioni di un progetto digitale
Algebra booleana
valori: 0, 1
variabili: A, B, C, . . ., X, Y, Z
operazioni: NOT, AND, OR, . . .
NOT X e’ scritto X
X AND Y e’ scritto X & Y, oppure X Y
X OR Y e’ scritto X | Y, oppure X + Y
Derivazione di equazioni booleane da una tabella di verita’:
A B
0
0
1
1
0
1
0
1
Sum Carry
0
1
1
0
0
0
0
1
Sum = A B + A B
termini prodotto messi in OR
per ogni riga in cui
la funzione vale 1
se una variabile di ingresso vale 0,
appare complementata (“negata”);
se vale 1, appare non-complementata
Carry = A B
© R.H. Katz 1-29
Rappresentazioni di un progetto digitale: algebra booleana
Reti Logiche
Introduzione
Un altro esempio:
A
B Cin
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Sum Cout
0
1
1
0
1
0
0
1
Sum = A B Cin + A B Cin + A B Cin + A B Cin
0
0
0
1
0
1
1
1
Cout = A B Cin + A B Cin + A B Cin + A B Cin
© R.H. Katz 1-30
Rappresentazioni di un progetto digitale: algebra booleana
Reti Logiche
Introduzione
Come ridurre la complessita’ di espressioni booleane
Possiamo applicare le leggi dell’algebra booleana alla funzione
Carry out per derivare un’espressione semplificata:
Cout = A Cin + B Cin + A B
B Cin
A Cin
AB
A
0
0
0
0
1
1
1
1
B Cin Cout
0 0
0
0 1
0
1 0
0
1 1
1
0 0
0
0 1
1
1 0
1
1 1
1
Verificate l’equivalenza con la tabella di verita’ originale:
mettete un 1 in ogni riga della tabella in cui un termine prodotto e’ vero
ogni termine prodotto dell’equazione “copre” esattamente due righe
della tabella
molte righe sono “coperte” da piu’ di un termine
© R.H. Katz 1-31
Reti Logiche
Rappresentazioni di un progetto digitale
Introduzione
Porte logiche
il blocco base piu’ usato nel progetto di circuiti logici digitali
Rappresentazione
logica standard
Schema dell’half adder
A
Inverter
AND
Net 1
SUM
B
OR
Net 2
CARRY
Rete (net): insieme di fili elettricamente connessi
Netlist: lista degli ingressi e delle uscite delle porte,
e delle reti a cui sono connesse
© R.H. Katz 1-32
Rappresentazioni di un progetto digitale: porte logiche
Reti Logiche
Introduzione
Schema del full adder
\Cin \ B \ A
Cin B
A
A
B
SUM
Cin
A
B
Cout
B
Cin
Cout
A
Cin
Fan-in: numero di ingressi di una porta
Fan-out: numero di ingressi cui un’uscita e’ collegata
Le “regole di compatibilita’ logica" limitano fan-in e fan-out
© R.H. Katz 1-33
Reti Logiche
Introduzione
Rappresentazioni di un progetto digitale
Forme d’onda
comportamento dinamico di un circuito
i circuiti reali hanno ritardi non-nulli
Diagramma temporale dell’half adder
100
200
A
B
SUM
CARRY
ritardo di
ritardo di
propagazione
propagazione
di sum
di sum
alea: 1 piu’ 0 e’ 1, non 0!
Cambiamenti in uscita sono ritardati rispetto agli ingressi
Il ritardo di propagazione dipende dal cammino entro il circuito
Le uscite possono momentaneamente cambiare al valore errato
e poi di nuovo a quello giusto: questo femomeno e’ chiamato
glitch o alea
© R.H. Katz 1-34
Reti Logiche
Rappresentazioni di un progetto digitale: forme d’onda
Introduzione
10 unita’ di tempo
Analizziamo il ritardo: A=0,B=0 to A=0,B=1
di ritardo
0
1
0
0
1
0
A
0
1
0
0
1
A
0
SUM
1
0
0
B
SUM
1
0
0
0
B
0
CARRY
0
CARRY
1
1
(i) condizioni iniziali
0
1
0
1
(ii) Y cambia da 0 ad 1
1
0
1
0
A
1
0
1
1
A
1
SUM
1
0
0
B
0
SUM
1
0
0
B
CARRY
1
0
(iii) l’uscita della porta AND in alto
cambia dopo 10 unita’ di tempo
0
CARRY
1
0
(iv) l’uscita della porta OR
cambia dopo 10 unita’ di tempo
© R.H. Katz 1-35
Reti Logiche
Introduzione
Rappresentazioni di un progetto digitale
Blocchi
organizzazione strutturale del progetto
“scatole nere” con terminali di ingresso e di uscita (“porte”)
svolgono funzioni ben definite
permettono di concentrarsi sull’interconnessione per realizzare
la funzione complessa desiderata
A A Sum
HA
B B Carry
Sum
A
Sum
HA
B Carry
A
B
Cout
Cin
full adder realizzato
componendo half adder
Cin
Sum
A
B
Sum
FA
Cout
Cin Cout
rappresentazione del blocco
full adder
© R.H. Katz 1-36
Reti Logiche
Introduzione
Rappresentazioni di un progetto digitale
Verifica delle forme d’onda
Il full adder composto con due half adder si comporta allo
stesso modo di quello composto di porte logiche?
100
Glitch
200
A
B
Cin
Sum
Cout
Le forme d’onda di Sum, Cout sono in ritardo rispetto agli ingressi
Quante unita’ di tempo dopo che gli ingressi sono cambiati
possiamo esaminare “in modo sicuro” le uscite?
© R.H. Katz 1-37
Rappresentazioni di un progetto digitale : comportamento
Reti Logiche
Introduzione
ABEL Hardware Description Language
MODULE half_adder;
a, b, sum, carry PIN 1, 2, 3, 4;
TRUTH_TABLE {[a, b] -> [sum, carry]}
Specifica con
tabella di verita’
[0, 0] -> [0, 0];
[0, 1] -> [1, 0];
[1, 0] -> [1, 0];
[1, 1] -> [0, 1];
END half_adder;
MODULE half_adder;
a, b, sum, carry PIN 1, 2, 3, 4;
Specifica con
equazioni
EQUATIONS
SUM = (A & !B) # (!A & B);
CARRY = A & B;
END half_adder;
AND
OR
NOT
© R.H. Katz 1-38
Rappresentazioni di un progetto digitale
Comportamento
Linguaggi di descrizione dell’hardware (HDL)
descrivono struttura e funzione di un progetto digitale
Reti Logiche
Introduzione
Esempio: Half Adder in VHDL
-- *****modello di una porta inverter *****
-- porte esterne
ENTITY inverter_gate;
PORT (a: IN BIT; z: OUT BIT);
END inverter_gate;
-- comportamento interno
ARCHITECTURE behavioral OF inverter_gate IS
BEGIN
z <= NOT a AFTER 10 ns;
END behavioral;
-- ***** modello di una porta and *****
-- porte esterne
ENTITY and_gate;
PORT (a, b: IN BIT; z: OUT BIT);
END and_gate;
“Scatola Nera”
visibile dall’esterno
Comportamento
interno
Notate l’istruzione
di ritardo
(AFTER 10 ns)
-- comportamento interno
ARCHITECTURE behavioral OF and_gate IS
BEGIN
z <= a AND b AFTER 10 ns;
END behavioral;
© R.H. Katz 1-39
Rappresentazioni di un progetto digitale: comportamento
-- ***** modello di una porta or *****
-- porte esterne
ENTITY or_gate;
PORT (a, b: IN BIT; z: OUT BIT);
END or_gate;
Reti Logiche
Introduzione
modelli di AND, OR, NOT
di solito sono parte di
una biblioteca (“libreria”)
-- comportamento interno
ARCHITECTURE behavioral OF or_gate IS
BEGIN
z <= a OR b AFTER 10 ns;
END behavioral;
-- *****modello di un half adder *****
-- porte esterne
ENTITY half_adder;
PORT (a_in, b_in: INPUT; sum, c_out: OUTPUT);
END half_adder;
Componenti che
-- comportamento interno
saranno usati dal
ARCHITECTURE structural of half_adder IS
modello
-- tipi di componenti da usare
dell’half adder
COMPONENT inverter_gate
PORT (a: IN BIT; z: OUT BIT); END COMPONENT;
COMPONENT and_gate
PORT (a, b: IN BIT; z: OUT BIT); END COMPONENT;
COMPONENT or_gate
PORT (a, b: IN BIT; z: OUT BIT); END COMPONENT;
-- segnali interni (fili)
SIGNAL s1, s2, s3, s4: BIT;
© R.H. Katz 1-40
Rappresentazioni di un progetto digitale: comportamento
Reti Logiche
Introduzione
BEGIN
-- una riga per porta logica, descrivendone il tipo e le connessioni
i1: inverter_gate PORT MAP (a_in, s1);
i2: inverter_gate PORT MAP (b_in, s2);
Descrizione testuale
a1: and_gate PORT MAP (b_in, s1, s3);
della netlist
a2: and_gate PORT MAP (a_in, s2, s4);
o1: or_gate PORT MAP (s3, s4, sum);
END structural;
Questa specifica VHDL corrisponde a questo schema logico
A
i1
s1
a1
s3
o1
SUM
B
a2
i2
s4
s2
a3
Carry
© R.H. Katz 1-41
Prototipazione veloce di sistemi elettronici
Reti Logiche
Introduzione
Obiettivi:
creazione rapida di sistemi digitali per dimostrare idee
esplorazione rapida di alternative di progetto
prestazioni ridotte per avere una realizzazione piu’ in fretta
Tecniche:
Strumenti CAD
simulazione: verificare come il sistema si comportera’
prima di costruirlo
sintesi: generare descrizioni dettagliate, come gli schemi logici,
da descrizioni ad alto livello, come le equazioni booleane
tecniche di realizzazione veloce
logica programmabile
© R.H. Katz 1-42
Prototipazione veloce di sistemi elettronici
Reti Logiche
Introduzione
Progetto assistito da calcolatore (CAD)
Strumenti di sintesi
creare una parte del progetto a partire da altre parti
tradurre una rappresentazione piu’ astratta in una piu’ concreta
VHDL
Sintesi
comportamentale
ABEL, VHDL
Equazioni
Booleane
Sintesi logica
Schemi
logici
Biblioteche
di porte logiche
trasformare una rappresentazione in una forma piu’
ottimizzata, p.es. espresso
© R.H. Katz 1-43
Reti Logiche
Introduzione
Prototipazione veloce di sistemi elettronici
Simulazione
programma che esegue dinamicamente una rappresentazione
astratta del circuito
verificare correttezza funzionale ed alcune informazioni sui
ritardi prima della realizzazione fisica
piu’ facile da analizzare e correggere che una realizzazione...
la simulazione non garantisce che un progetto funziona
valida quanto i casi esaminati
non controlla errori elettrici
non considera (astrazione) alcuni aspetti dei sistemi reali
Simulazione logica
progetto descritto tramite porte logiche
valori sono 0, 1 (piu’ altri che vedremo poi)
va bene per verificare tabelle di verita’
Simulazione con ritardi (“timing”)
forme d’onda in ingresso ed uscita
considera i ritardi delle porte
le forme d’onda sono come ci si aspettava?
identificazione dei colli di bottiglia delle prestazioni
© R.H. Katz 1-44
Reti Logiche
Introduzione
Realizzazione veloce di sistemi elettronici
Tecnologie di realizzazione veloce
la funzione e le interconnessioni di un componente
possono essere ”personalizzate"
alternativa a porte logiche discrete (TTL…) e fili
riduce complessita’ delle interconnessioni e numero di pezzi
facilita modifiche e miglioramenti del progetto
Programmazione con zeri ed uni
funzione del componente configurata con tabella di verita’
interconnect among internal modules also configured in this way
selectively blown fuses
programmable switching matrix configured by 1's and 0's
© R.H. Katz 1-45
Reti Logiche
Introduzione
Prototipazione veloce di sistemi elettronici
Esempio: memorie a sola lettura (Read-Only Memories, ROM)
realizzazione hardware di un vettore bidimensionale
ingressi sono l’indice entro il vettore (indirizzo)
la parola binaria nella posizione indirizzata costituiscono
i valori di uscita
il contenuto e’ programmato una volta, letto molte volte
Half Adder realizzato in ROM:
indice
00
01
Half adder
10
11
A
B
contenuto
0 0
1 0
1 0
0 1
S C
U A
M R
R
Y
Full Adder realizzato in ROM:
indice
00 0
00 1
01 0
01 1
Full adder 1 0 0
10 1
11 0
11 1
A
B
Cin
contenuto
0 0
1 0
1 0
0 1
1 0
0 1
0 1
1 1
S C
U o
M u
t
© R.H. Katz 1-46
Riassunto del capitolo
Reti Logiche
Introduzione
Abbiamo visto:
• il flusso di progetto:
decomposizione funzionale e progetto tramite composizione
• il tipo di sistemi che progetteremo:
logica combinatoria e sequenziale
sistemi digitali binari
realizzati in tecnologia MOS e bipolare
• i livelli di rappresentazione di un progetto:
da interruttori a comportamento
• il cambiamento del panorama dell’elettronica:
realizzazione rapida di sistemi elettronici
aiutata da strumenti CAD
(in particolare simulazione e sintesi)
basata su dispositivi programmabili
© R.H. Katz 1-47
Scarica

Capitolo 1: Introduzione Contemporary Logic Design Randy H. Katz