Upload
giuseppa-lillo
View
227
Download
4
Tags:
Embed Size (px)
Citation preview
Andrea Neviani – Laboratorio di elettronica digitale 1
Università di Padova - DEI
Laboratorio di elettronica digitaleLezione 3
Introduzione ai circuiti logici programmabili– Simple PLD: PROM, PLA PAL– Complex PLD e FPGA: caratteristiche e confronto
Andrea Neviani - L.E.D. 2
PLDs
SPLDs CPLDs
PLAsPROMs PALs GALs etc.
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
Classificazione dei SPLD
Andrea Neviani - L.E.D. 3
a b c
l l l
Address 0 &
Address 1 &
Address 2 &
Address 3 &
Address 4 &
Address 5 &
Address 6 &
Address 7 &
a !a b !b c !c
!a !c!b& &
!a c!b& &
!a !cb& &
!a cb& &
a !c!b& &
a c!b& &
a !cb& &
a cb& &
Predefined AND array
Pro
gram
mab
le O
R a
rray
w x y
Predefined linkProgrammable link
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
SPLD con architettura PROM
La struttura tipica di un SPLD basato su una ROM programmabile è fatta da un piano AND predefinito, che corrisponde al decodificatore di riga di una ROM, e da un piano OR programmabile.
Il piano AND fornisce tutti i mintermini degli N ingressi (in questo caso N=3). Il piano OR consente di fare la somma logica di uno o più mintermini.
Andrea Neviani - L.E.D. 4
a b c w x y
0 0 0 0 1 00 0 1 0 1 10 1 0 0 1 00 1 1 0 1 11 0 0 0 1 01 0 1 0 1 11 1 0 1 0 11 1 1 1 0 0
l
&a
b
c
w
x
y
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
SPLD PROM: esempio 1/2
Andrea Neviani - L.E.D. 5
a b c
l l l
Address 0 &
Address 1 &
Address 2 &
Address 3 &
Address 4 &
Address 5 &
Address 6 &
Address 7 &
a !a b !b c !c
!a !c!b& &
!a c!b& &
!a !cb& &
!a cb& &
a !c!b& &
a c!b& &
a !cb& &
a cb& &
Predefined AND array
Pro
gram
mab
le O
R a
rray
w x y
Predefined linkProgrammable link
w = (a & b)
x = !(a & b)
y = (a & b) ^ c
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
SPLD PROM: esempio 2/2
Ogni uscita è costruita facendo la somma logica (OR) dei mintermini opportuni.
Ad esempio:
w = (a & b) =
= (a & b & c) | (a & b & !c)
Andrea Neviani - L.E.D. 6
a b c
&
&
&
a !a b !b c !c
N/A
Predefined AND array
Pro
gram
mab
leO
R a
rray
Predefined linkProgrammable link
l l l
w x y
N/A
N/A
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
SPLD con architettura PLA
Una PLA (programmable logic array) è simile a una PROM ma ha sia il piano AND che il piano OR programmabili. A differenza delle PROM, la dimensione del piano AND è indipendente dal numero di ingressi. Lo svantaggio principale è una minore velocità perché il segnale in una PLA deve attraversare due livelli di collegamenti programmabili (che sono più lenti di un collegamento fisso).
Programmable AND array
Andrea Neviani - L.E.D. 7
a b c
&
&
&
a !a b !b c !c
a cb& &
a c&
!b !c&
Predefined AND array
Pro
gram
mab
leO
R a
rray
Predefined linkProgrammable link
l l l
w x y
w = (a & c) | (!b & !c)
x = (a & b & c) | (!b & !c)
y = (a & b & c)
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
Programmable AND array
SPLD PLA: esempio
Andrea Neviani - L.E.D. 8
a b c
l l l
&
&
&
&
&
&
a !a b !b c !c
ProgrammableAND array
Pre
defin
ed O
R a
rray
w x y
Predefined linkProgrammable link
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
SPLD con architettura PAL
L'architettura PAL (programmable array logic) è nata come tentativo di risolvere il problema della bassa velocità delle PLA, mantenendo la programmabilità del piano AND.
Il piano OR predefinito limita il numero di implicanti che contribuiscono ad ogni uscita (nell'esempio a fianco ci sono due implicanti per uscita).
Andrea Neviani - L.E.D. 9
ProgrammableInterconnect
matrix
Input/output pinsSPLD-like
blocks
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
PLD complessi (CPLD)
Concetto base: matrice di blocchi SPLD collegati da una rete di interconnessioni programmabili.
Andrea Neviani - L.E.D. 10
100 wires
30 wires
Programmablemultiplexer
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
CPLD: il problema delle interconnessioni programmabili
I primi CPLD (Mega-PAL di Monolithic Memories Inc.) risultarono un fallimento a causa dell'eccessivo consumo di potenza e della bassa velocità, entrambi dovuti alla scelta di garantire il 100% di connettività (ogni uscita di un blocco poteva essere connessa a qualunque ingresso di un altro blocco).
Altera propose una architettura con connettività incompleta, realizzata in tecnologia CMOS con celle di memoria EPROM.
Andrea Neviani - L.E.D. 11
PLDs ASICs
Standard Cell
Full Custom
Gate Arrays
Structured ASICs*
SPLDs
CPLDs
*Not available circa early 1980s
TheGAP
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
PLD e ASIC
Subito dopo l'avvento dei primi CPLD, è emersa chiaramente una lacuna tra la categoria dei circuiti integrati programmabili, versatili e veloci da progettare e realizzare, ma limitati a funzioni relativamente semplici, e la categoria dei circuiti integrati per applicazioni specifiche (ASIC), che permettono di realizzare sistemi di grande complessità, ma richiedono una fase di progetto e realizzazione lunga e costosa, e non sono riconfigurabili.
Andrea Neviani - L.E.D. 12
Programmableinterconnect
Programmablelogic blocks
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
Field programmable gate array (FPGA)
• componenti proposti per la prima volta da Xilinx del 1984
• realizzati in tecnologia CMOS con memoria di configurazione SRAM
• architettura simile ai primi CPLD ma con un numero più elevato di blocchi logici programmabili più semplici, immersi in una griglia di interconnessioni con matrici di commutazione agli incroci
Andrea Neviani - L.E.D. 13
3-inputLUT
abc
flip-flop
clock
muxy
qd
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
FPGA: esempio di blocco logico programmabile
• look-up table (LUT) per realizzare una qualsiasi funzione combinatoria a 35 ingressi
• possibilità di salvare il risultato in un registro
• ingresso ausiliario per combinare più funzioni logiche attraverso un MUX
Andrea Neviani - L.E.D. 14
|
&ab
cy
y = (a & b) | !c
Required function Truth table
1011101
0000010100111001011101111
y
a b c y
00001111
00110011
01010101
10111011
SRAM cells
Programmed LUT
8:1
Mul
tiple
xer
a b c
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
FPGA: funzionamento di una LUT a SRAM
• i segnali di selezione del MUX diventano gli ingressi della funzione
• il contenuto delle celle SRAM determina la funzione logica realizzata dalla LUT
• riscrivendo il contenuto della SRAM si ottiene una nuova funzione logica
Andrea Neviani - L.E.D. 15
FPGA e CPLD: confronto
La struttura base di FPGA e CPLD è simile: una matrice di blocchi logici programmabili collegati da una griglia di interconnessioni, anch'esse programmabili. Le principali differenze sono a livello architetturale e spesso sono abbastanza sfumate:
• complessità: per i CPLD tipicamente varia da 1 Kgate a 100 Kgate, per le FPGA dal 10 Kgate a 10 Mgate
• granularità: nei CPLD si trova un numero ridotto (1 100) di blocchi logici programmabili di tipo PLA e di dimensioni relativamente grandi (alcune decine di ingressi), con un sistema di interconnessioni semplice; nelle FPGA si trova un numero maggiore di blocchi logici (100 100K) di dimensioni ridotte (2 6 ingressi, 1 o 2 registri), con una griglia di interconnessioni molto complessa.
• ritardi: nei CPLD i tempi di propagazione complessivi sono dominati dai blocchi logici e il contributo delle interconnessioni può essere calcolato a priori abbastanza accuratamente; nelle FPGA il contributo delle interconnessioni domina i tempi di propagazione, e dipende fortemente dal piazzamento dei blocchi logici, per cui non può essere stimato accuratamente a priori
• meccanismo di programmazione: nei CPLD più spesso è E2PROM/FLASH, nelle FPGA SRAM o antifusibili
Andrea Neviani - L.E.D. 16
Prefabricated I/O,cores, etc.
Embedded RAM
Sea-of-tiles
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
FPGA: moduli funzionali specifici
Le FPGA spesso includono moduli funzionali specifici come:
• sommatori
• moltiplicatori
• unità MAC
• memorie RAM
• core di microprocessori
• interfaccie di I/O veloci
Andrea Neviani - L.E.D. 17
FPGA e CPLD: progetto
• La fase di progetto di FPGA/CPLD è in buona parte simile a quella di un ASIC– supportata da un linguaggio HDL e da strumenti CAD per la
simulazione e la sintesi– i passi del flusso di progettazione, dal concepimento dell'idea
alla derivazione dello schema circuitale a livello logico (rete di porte logiche), sono gli stessi
– le differenze riguardano essenzialmente il progetto a livello fisico: un ASIC richiede il piazzamento delle celle di libreria e il loro collegamento tramite connessioni create ad hoc; in un FPGA/CPLD il piazzamento consiste nell'allocazione delle risorse logiche disponibili sul componente e in una opportuna configurazione della griglia di interconnessioni
Andrea Neviani - L.E.D. 18
(a) Host computer (b) Device programmer
Unprogrammeddevice
Programmeddevice
The Design Warrior’s Guide to FPGAsDevices, Tools, and Flows. ISBN 0750676043Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
FPGA/CPLD: programmazione del componente
Il risultato della fase di progetto è un insieme di bit di configurazione (configuration stream), che viene caricato nel componente attraverso un dispositivo di programmazione o semplicemente attraverso terminali dedicati sul componente stesso. I bit di configurazione fissano lo stato (aperto/chiuso) degli interruttori che determinano la funzione svolta dai blocchi programmabili e la topologia delle interconnessioni.
Andrea Neviani - L.E.D. 19
Xilinx Spartan-II: architecture
Andrea Neviani - L.E.D. 20
Xilinx Spartan-II CLB
• Each CLB has two identical slices.• Slice has two logic cells:
– LUT.– Carry logic.– Registers.
Andrea Neviani - L.E.D. 21
Xilinx Spartan-II: CLB
Andrea Neviani - L.E.D. 22
Xilinx Spartan-II: slice
Andrea Neviani - L.E.D. 23
Spartan-II CLB details
• Each lookup table can be used as a 16-bit synchronous RAM or 16-bit shift register.
• Arithmetic logic includes an XOR gate.• Each slice includes a mux to combine the results of the two
function generators in the slice.• Register can be configured as DFF or latch.• Has three-state drivers (BUFTs) for on-chip busses.
Andrea Neviani - L.E.D. 24
Spartan-II CLB details
Andrea Neviani - L.E.D. 25
Spartan-II CLB operation
• Arithmetic:– Carry block includes XOR gate.– Use LUT for carry, XOR for sum.
• Each slice uses F5 mux to combine results of multiplexers.• F6 mux combines outputs of F5 muxes.• Registers can be FF/latch; clock and clock enable.• Includes three-state output for on-chip bus.
Andrea Neviani - L.E.D. 26
Spartan-II expansion MUXs
• MUXF5 combines 2 LUTs to create:– 4×1 multiplexer
– or any 5-input function (LUT5)
– or selected functions up to 9 inputs
• MUXF6 combines 2 slices to create:– 8×1 multiplexer
– or any 6-input function (LUT6)
– or selected functions up to 19 inputs
Andrea Neviani - L.E.D. 27
Spartan-II distributed RAM
• … or as distributed RAM– 1 LUT = 16×1 bit RAM
– cascade LUT to increment RAM size
• Each LUT can be configured as a 16-bit shift register …
Andrea Neviani - L.E.D. 28
Spartan-II interconnect
• Types of interconnect:– local;– general-purpose;– dedicated;– I/O pin.
Andrea Neviani - L.E.D. 29
Spartan-II interconnect
Andrea Neviani - L.E.D. 30
Spartan-II general-purpose routing
• Provides majority of routing resources:– General routing matrix (GRM) connects horizontal/vertical
channels and CLBs.– 24 interconnect between adjacent GRMs.– 96 hex lines connect GRM to GRMs six blocks away.– 12 longlines span the chip.
Andrea Neviani - L.E.D. 31
Spartan-II general-purpose routing
• Relationship between GRM, hex lines, and local interconnect:
96
96
96
96
24
24 24
24
Andrea Neviani - L.E.D. 32
Spartan-II local routing
Andrea Neviani - L.E.D. 33
Spartan-II types of interconnect
Andrea Neviani - L.E.D. 34
Spartan-II three-state bus
• Horizontal on-chip busses:
Andrea Neviani - L.E.D. 35
Spartan-II clock distribution