Sistemi logici complessi
I circuiti logici standard prevedono, per la realizzazione di un
sistema complesso, i seguenti passi:
• definizione delle specifiche
• descrizione del sistema mediante interconnessione dei componenti
• assemblaggio su un circuito stampato
I componenti sono circuiti integrati ad esempio della serie 74 o della
serie 54 (specifiche militari), realizzati in tecnologia TTL, TTL
Schottky, TTL Schottky Low Power, CMOS etc. contenenti porte
logiche.
Al crescere della complessità del sistema l’approccio precedente
diventa poco pratico per l’aumento di costo, di dissipazione di
potenza, di ritardo di propagazione e di ingombro ed inoltre per
la relativa semplicità con cui un circuito può essere clonato
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Dispositivi Logici Programmabili
Sono circuiti ad elevata scala di integrazione che possono essere
opportunamente programmato (anche dall’utente finale) per
realizzare una specifica funzione logica senza aggiungere o
rimuovere componenti.
La programmazione avviene mediante descrizione ad alto livello in
opportuni ambienti di sviluppo (Hardware Description Language)
La programmazione può essere:
•Reversibile
•Non Reversibile
•Volatile
•Non Volatile
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Definizioni
PLD (Programmable Logic Device)o FPD (Field-Programmable Device)
SPLD (Simple Programmable Logic Device)
PLA (Programmable Logic Array)
[piani AND e OR programmabili]
CPLD (Complex Programmable Logic Device)
Sono costituiti da un insieme di SPLD
sullo stesso chip
PAL (Programmable Array Logic)
[piano AND programmabile e OR fisso]
FPGA (Field-Programmable Gate Array)
CPLD con meno ingressi e un maggior numero di Flip-Flop
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Definizioni
Programmable Switch ( Interruttore Programmabile )
consente di connettere tra loro elementi logici o fili mediante comando esterno
Logic Capacity (Capacità logica)
ammontare della logica esprimibile dal PLD in termini di numero equivalente di porte NAND a
due ingressi
Logic Density (Densità logica)
ammontare della logica per unità di area del PLD
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Interruttori Programmabili
Non reversibili-Non Volatili
Fuse (Fusibili)
Antifuse (Antifusibili)
Poly-Si
Dielettrico
Ossido
+
Diffusione N
Substrato di silicio
Aprono il circuito se attraversati
da corrente elevata tale da
bruciare il resistore
Chiudono il circuito se viene applicata
una tensione elevata tale da perforare il
dielettrico
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Interruttori Programmabili
Reversibili-Non Volatili
M
O
S
a
d
o
p
p
i
a
G
a
t
e
Transistor per EPROM
Programmabili fuori dal
circuito
Transistor per EEPROM
Programmabili nel
circuito
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Interruttori Programmabili
Reversibili-Volatili
Sono basati sull’utilizzo di memorie statiche SRAM per pilotare la gate
di transistor (pass-transistor) usati per connettere due fili
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Interruttori Programmabili
Riepilogo
Interruttore
Riprogrammabile
Volatile
Tecnologia
Fusibile
Antifusibile
EPROM
EEPROM
SRAM
No
No
Si (fuori dal circuito)
Si (nel circuito)
Si (nel circuito)
No
No
No
No
Si
Bipolare
CMOS
UV-CMOS
EE-CMOS
CMOS
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Capacità Logica
20000
Capacità
Logica
2000
200
SPLD CPLD FPGA
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Programmazione dei PLD
Linguaggi più usati per la programmazione dei PLD:
ABEL Advanced Boolean Equation Language
E’ utilizzato per piccoli moduli
VHDL Very high speed integrated circuit Hardware Description
Language
E’ utilizzato per moduli complessi
I linguaggi producono un “bit stream” che viene inviato al modulo per la
programmazione sul quale è inserito il PLD
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Programmazione dei PLD
Specifiche
Descrizione
VHDL
FPGA
CPLD
Sintesi
Simulazione
funzionale
Fitting
Netlist
Simulazione
timing
Mappa di programmazione
(Bit Stream)
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Struttura dei PLA
N variabili
in ingresso
Piano
Piano
AND
P termini
di prodotto
OR
M termini
di uscita
Si possono ottenere M espressioni logiche ognuna con P termini
di somma e N prodotti per ciascun termine
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Struttura dei PLA
A
B
C
D
xx xxxx xx
xxxxxx xx
xx xxxx xx
xx xxxxxx
xx xxxxxx
xx xxxx xx
x
x
x
x
x
x
Y1
x
x
x
x
x
x
Y2
x
x
x
x
x
x
Y3
Schema logico di un PLA con 4 ingressi e 3 uscite
Le x indicano i punti di connessione programmabile
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Realizzazione dei PLA
A
AND
B
I
I
1
C
2
Output
D
Y1
Le due matrici implementano funzioni
AND che diventano NAND a causa degli
Y2
invertitori
Y3
Y  (AB)(AB)  AB  AB
Realizzazione di un PLA mediante diodi e fusibili.
La funzione complessiva su ciascuna uscita Y è la NAND delle NAND degli ingressi
cioè la OR delle AND degli ingressi
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Realizzazione dei PLA
A
NOR
B
I
1
I
2
C
D
Output
Y1
Le due matrici implementano funzioni
NOR che, nella seconda, diventano OR a
Y2
causa degli invertitori
Y3
Y  A  B  A  B  AB  AB
Realizzazione di un PLA mediante NMOS e fusibili.
La funzione complessiva su ciascuna uscita Y è la OR delle NOR degli ingressi cioè
la OR delle AND degli ingressi negati (non è un problema perché gli ingressi sono
disponibili anche in forma negata)
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Esempio di funzioni con PLA
Y1  A1A 2  A1 A 2 A3 A 4
A1
x
A2
x
A3
x
x
x
x
x
Y3  A1A 2  A1 A3A 4  A1 A 2 A 4
x
x
x
Ovviamente le AND e le OR
indicate nello schema sono
solo simboliche
x
x
x
x
Y1
x
x
x
x
x
A4
Y2  A1 A3A 4  A1A3  A 2
x
x
x
Y2
x
Y3
Realizzazione delle tre funzioni Y1 Y2 Y3
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Ottimizzazione dei PLA
A
_
A
B
_
B
C
_
C
_
0 A+C
_
1 B+C
_ _
2 A+B+C
_ _
3 B+C
_ _ _
4 A+B+C
=
_
5 A+C
_ _
6 A+C
_
7 A+B+C
Vengono utilizzate solo il 40% delle possibili connessioni
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
_ ripiegamento nei PLA
Operazione
di
taglio
e
A
B
C
0
1
7
3
4
6
5
Le righe vengono
spostate e vengono
praticati tagli per
compattare la matrice.
Ovviamente si perde di
generalità ma si
guadagna in area
occupata
2
_
A
_
B
C
Dopo la riorganizzazione delle righe si utilizza il 79% delle connessioni
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Dispositivi PAL
I1
I2
I3
I4
Y1
Y2
Y3
E’ programmabile solo il piano AND e, in questo caso, ogni uscita può
avere solo 3 termini prodotto.
Nelle PAL commerciali il numero di termini prodotto varia da 6 a 8.
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Esempio di PAL
I1
Y1  I1I 2  I3 I 4  I 2 I3
I2
Y2  I1 I 2 I3  I1I 4
I3
Y3  I 2 I3  I1I 4
I4
x
x
Valori di uscita sempre 0 in
quanto ottenuti dalla AND di
Y1
Y2
Y3
una variabile e la sua negata
Se un termine prodotto è necessario per due uscite viene calcolato due
volte come i termini I1I4 e I2I3
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Logica in due passi per dispositivi PAL
Per consentire la realizzazione di funzioni con un numero maggiore
di termini prodotto si ricorre alla logica in due passi, cioè alcune
uscite vengono inviate come nuovi ingressi al piano AND
I1
I2
Si aumenta la flessibilità
ma anche il ritardo di
propagazione
I3
I4
Y1
Y2
Y3
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Logica in due passi per dispositivi PAL
Realizzazione delle funzioni Y1 e Y2 con una PAL a 3 prodotti
Y1  I1I 2 I3  I1 I 2 I3  I1I 2 I3  I1 I 2 I3
Y2  I1I 2 I3  I 2 I3I 4  I1I 4
I1
I2
Y3  I1I 2 I3  I1 I 2 I3
I3
I4
x
Y1
Y2
Y3
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Si utilizza l’uscita Y3
per generare i primi due
termini della funzione Y1
Selezione della polarità in uscita per dispositivi PAL
Realizzazione delle funzioni Y1 e Y2 con una PAL a 3 prodotti
Y1  I1I 2 I3  I1 I 2 I3  I1I 2 I3  I1 I 2 I3
Y2  I1  I 2  I3  I 4
Non è possibile implementare le funzioni direttamente, neanche con
la logica in due passi, perché sia Y1 che Y2 presentano più di 3
termini prodotto.
Sarebbe invece possibile implementare Y2  I1 I 2 I3 I 4 che contiene
un solo termine prodotto e usare:
Y3  I1I 2 I3  I1 I 2 I3
come nel caso precedente, in una logica a due passi.
Occorre quindi negare le uscite!
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
PAL con polarità dell’uscita programmabile
I1
I2
A B
0 0
0 1
1 0
1 1
I3
I4
Z1
Y1
A XOR B
0
1
1
0
Z3
Z2
Y2
Y3
Si utilizzano porte XOR programmabili
in cui uno dei due ingressi può essere
posto o a 0 o a 1 ottenendo in uscita
Y=Z oppure Y=Z, rispettivamente
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
PAL con polarità dell’uscita programmabile
I1
I2
I3
I4
x x
Y1  I1I 2 I3  I1 I 2 I3  I1I 2 I3  I1 I 2 I3
Y1
Y2
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
x
Y3
Y2  I1  I 2  I3  I 4
PAL con terminali I/O programmabili
I1
I2
I3
I4
Si utilizza un buffer tristate,
pilotato da una uscita dedicata
del piano AND, per avere Y3
come terminale di I/O
L’abilitazione del tristate può
essere funzione degli ingressi
o essere fissata, a secondo dei
casi.
Y1
Y2
Y3
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
PLD sequenziali
I1
Contengono Flip-Flop, per
consentire la realzzazione di
circuiti sequenziali.
I2
I3
I4
Clock
Y1
D
D
Q
Q
Y2
Y3
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
PAL sequenziali con terminali I/O programmabili
I1
I2
I3
I4
Clock
Y1
D
D
Q
Q
Y2
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Y3
Schema a blocchi semplificato di PAL
MATRICE
LOGICA
PROGAMMABILE
La struttura può essere vista
come costituita da una matrice
logica e diverse macrocelle in
uscita.
Clock
MACROCELLE
DI USCITA
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Possibile struttura delle macrocelle
Abilitazione tristate
I/O pin
Clock
Feedback
I multiplexer 2-1 programmabili consentono di escludere completamente il
Flip-Flop, conservando in ogni caso la possibilità di avere il terminale I/O
programmabile
.
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Macrocella in modalità sequenziale e combinatoria
Abilitazione tristate
I/O pin
Sequenziale
Clock
Feedback
Abilitazione tristate
I/O pin
Combinatoria
Feedback
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
CPLD
Blocco
Logico
Blocco
Logico
Blocco
Logico
Blocco
Logico
Interconnessioni
programmabili
I/O
I/O
Blocco
Logico
Blocco
Logico
Blocco
Logico
Blocco
Logico
Consentono di aumentare le potenzialità del sistema senza aumentare
eccessivamente il numero di ingressi dei singoli blocchi logici, ciascuno costituito
da una matrice tipo PAL.
Infatti aumentare troppo il numero di ingressi del singolo blocco comporterebbe
insostenibili problemi di FAN-IN delle porte che costituiscono il piano AND.
Il ritardo complessivo dipende poco dalla complessità del progetto.
.
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Schema di blocco logico di un CPLD
0 -- 16
termini
prodotto
dalla matrice di
interconnessioni
programmabile
allocatore 0 -- 16 Macrocella
2
Matrice
dei
termini
AND
termini prodotto
programmabile 80 termini prodotto
prodotto
0 -- 16
termini
prodotto
verso la matrice di
interconnessioni
programmabile
Cypress 370
.
Macrocella
1
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Macrocella
16
Caratteristiche dei CPLD della famiglia
Altera FLEX10K
Sigla
Capacità Logica
N. Blocchi Logici
N. Flip-Flop
N. Pin I/O
EPF10K10
EPF10K30
EPF10K50
EPF10K100
10000
576
720
150
30000
1728
1968
246
50000
2888
3184
310
100000
49992
5392
406
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Struttura generale degli FPGA
Canali di
collegamento
Celle
logiche
Le celle logiche hanno una funzionalità ridotta rispetto ai blocchi logici dei CPLD
ma sono in numero molto maggiore. Gli FPGA presentano quindi una architettura
a “grana fine” ed inoltre il numero elevato di celle consente di avere a disposizione
un numero elevato di Flip-Flop.
.
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale
Struttura interna di un FPGA
Interconnessioni
programmabili
Blocchi di I/O
Celle logiche
Il ritardo complessivo di un FPGA dipende in maniera marcata dallo schema che si
vuole realizzare, a differenza dei CPLD.
Luigi Zeni DII-SUN
Fondamenti di Elettronica Digitale