Upload
amela-shelton
View
48
Download
12
Embed Size (px)
DESCRIPTION
LOGICHE HARDWARE PROGRAMMABILI. FPGA based. Componenti Elettronici. A pplication S pecific. ASICs. I ntegrated C ircuit. ASIC s array based. 1. 2. Non è necessariamente programmabile. PLDs. a. b. c. Predefined link. Programmable link. N/A. SPLDs. CPLDs. e. &. l. a. b. c. - PowerPoint PPT Presentation
Citation preview
LOGICHE HARDWARE LOGICHE HARDWARE PROGRAMMABILIPROGRAMMABILI
FPGA basedFPGA based
Componenti ElettroniciComponenti Elettronici
IIntegratedntegrated C CircuitircuitAApplicationpplication S Specificpecific ASICsASICs
ASICASICss array basedarray based
1
2Non è necessariamente
programmabile
SSimpleimple PLD PLDssa b c
&
&
&
a !a b !b c !c
N/A
Programmable AND array
Pro
gra
mm
ab
leO
R a
rra
y
Predefined link
Programmable link
l l l
w x y
N/A
N/A
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
ma
ble
OR
arr
ay
w x y
Predefined link
Programmable link
a b c
l l l
&
&
&
&
&
&
a !a b !b c !c
ProgrammableAND array
Pre
de
fin
ed
OR
arr
ay
w x y
Predefined link
Programmable link
SPLD - PAL
SPLD - PLA
SPLD - PROM
PLDs
SPLDs CPLDs
PLAsPROMs PALs GALs etc.
Decoder Encoder
Programmabilitàesclusivamentedella matrice diinterconnessione
CComplexomplex PLD PLDss
ProgrammableInterconnect
matrix
Input/output pinsSPLD-like
blocks
100 wires
30 wires
Programmablemultiplexer
Altera propose una architettura con
connettività incompleta, realizzata in tecnologia
CMOS con celle di memoria EPROM.
A causa dell'eccessivo consumo di potenza e della bassa velocità non posso
garantire il 100% di connettività
PLDPLDss v.s.v.s. ASIC ASICssPLDs ASICs
Standard Cell
Full Custom
Gate Arrays
Structured ASICs*
SPLDs
CPLDs
*Not available circa early 1980s
TheGAP
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.
Circuiti integrati programmabili, versatili e
veloci da progettare e realizzare, ma limitati a funzioni relativamente
semplici.
FPGA FPGA v.s.v.s. CPLD CPLDLa 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 oppure FLASH, nelle FPGA SRAM o antifusibili
FFieldield P Programmablerogrammable
Programmableinterconnect
Programmable
logic blocks
• 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
FPGAFPGAGGate ate AArrayrray
• 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
Esempio di Esempio di blocco logico blocco logico programmabileprogrammabile
3-inputLUT
abc
flip-flop
clock
muxy
qd
?
Funzionamento di una Funzionamento di una LUT a LUT a SRAMSRAM
• 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
|
&ab
cy
y = (a & b) | !c
Required function Truth table
1011101
000
001
010
011
100
101
110
1111
y
a b c y
00001111
00110011
01010101
10111011
SRAM cells
Programmed LUT
8:1
Mul
tiple
xer
a b c
Moduli funzionali specificiModuli funzionali specifici
• sommatori
• moltiplicatori
• unità MAC
• memorie RAM
• core di microprocessori
• interfaccie di I/O veloci
Le FPGA spesso
includono moduli
funzionali specifici?
FPGA e CPLD: FPGA e CPLD: progettoprogetto
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
FPGA/CPLD: programmazione del FPGA/CPLD: programmazione del componentecomponente
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.
(a) Host computer (b) Device programmer
Unprogrammeddevice
Programmeddevice
Xilinx Spartan-IIXilinx Spartan-II - - Architecture Architecture
?
Xilinx Spartan-IIXilinx Spartan-II - - CLBCLB Each Each CLBCLB has two identical has two identical SlicesSlices.. SliceSlice has has two logic cellstwo logic cells::
LUT 4 inputLUT 4 input Carry logicCarry logic RegistersRegisters CLBCLB
Xilinx Spartan-IIXilinx Spartan-II - Slice - Slice
Slice
?
Xilinx Spartan-IIXilinx Spartan-II -- Slice details Slice details
DFF or Latch
Xilinx Spartan-IIXilinx Spartan-II -- expansion expansion MUXsMUXs
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
00 / 1a
bcd
abcd
0
0
Xilinx Spartan-IIXilinx Spartan-II -- distributed distributed RAMRAM
Distributed RAMDistributed RAM 1 LUT = 161 LUT = 16×1 bit RAM×1 bit RAM cascade LUT to increment RAM cascade LUT to increment RAM
sizesize 16-bit shift register …16-bit shift register …
Each LUT can be configured as a …Each LUT can be configured as a …
Xilinx Spartan-IIXilinx Spartan-II -- interconnectinterconnect
Types of interconnect: Local General-Purpose Dedicated I/O pin
Xilinx Spartan-IIXilinx Spartan-II -- types of interconnecttypes of interconnect
Xilinx Spartan-IIXilinx Spartan-II -- DetailsDetails
Horizontal on-chip bussesHorizontal on-chip busses
Clock distributionClock distribution