Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi...
-
Upload
lothario-mauro -
Category
Documents
-
view
217 -
download
1
Transcript of Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi...
DispositiviDispositiviprogrammabiliprogrammabili
Dispositivi programmabili
– Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu’ o meno complessi che possono essere opportunamente interconnessi secondo diverse configurazioni in funzione delle specifiche di progetto
– Dispongono di• Componenti logici (porte logiche, Flip-Flop, Buffer)• Linee di connessione• Sistemi di inetrconnessione (Multiplexer, connessioni)• Porte di I/O
– Tipologie di Circuiti Programmabili– PLA, PAL, ROM.– CPLD– FPGA
Dispositivi Programmabili
• I diversi dispositivi possono essere classificati in base a diversi aspetti:– Modalita’ di programmazione
• programmabili a maschera (MPGA)• programmabili una volta (Fuse o Antifuse)• riprogrammabili (EEPROM, SRAM)• riconfigurabili (SRAM)
– Connessioni• Globali• Locali e distribuite
Modalita’ di programmazione
– FUSE• Le connessioni tra linee sono inizialmente tutte attive• In fase di programmazione si disattivano permanentemente le
connessioni inutili
– ANTIFUSE• Le connessioni tra linee sono inizialmente tutte inattive• In fase di programmazione si attivano permanentemente le connessioni
utili
– EEPROM • le connessioni inizialmente sono tutte inattive• In fase di programmazione si possono attivare o disattivare
elettricamente in modo non distruttivo• Lo stato viene mantenuto anche in assenza di alimentazione
Modalita’ di programmazione
– SRAM le connessioni inizialmente sono tutte inattive
• In fase di programmazione si possono attivare o disattivare elettricamente in modo non distruttivo
• Lo stato NON viene mantenuto in assenza di alimentazione• Maggiore velocita’ di programmazione rispetto la tecnologia EEPROM
• In base alla tecnologia la programmazione puo’ avvenire:– Durante la fase non operativa del dispositivo (riprogrammabile)– Durante la fase operativa del dispositivo (riconfigurabile)
• Si interviene separatamente su varie parti del dispositivo
Fuse
• Le linee del dispositivo sono in origine tutte connesse– La programmazione consiste nel “BRUCIARE” (fuse) alcune
connessioni in modo tale da mantenere solo quelle necessarie– La programmazione avviene mediante una tensione piu’
elevata di quella di normale funzionamento
Antifuse
• Le linee del dispositivo sono in origine tutte disconnesse– La programmazione consiste nel “CREARE” (antifuse) le
connessioni necessarie– La programmazione avviene mediante una tensione piu’
elevata di quella di normale funzionamento
EEPROM
• Le linee del dispositivo sono in origine tutte disconnesse– La programmazione consiste nel “DEPOSITARE” una carica
sul gate flottante del transistor in modo da mandarlo in conduzione
– La cancellazione puo’ avvenire elettricamente o tramite esposizione a raggi UV
SRAM (RAM statica)
• Le linee del dispositivo sono in origine tutte disconnesse– La programmazione consiste nel “MEMORIZZARE” un valore
logico (‘0’ o ‘1’) in una cella di RAM Statica
Connessioni
• Le connessioni globali sono caratteristiche dei– Dispositivi logici a due livelli:
• PAL, PLA, ROM
– CPLD (Complex Programmable Logic Device)
• Le connessioni locali sono caratteristiche degli– FPGA (Field Programmable Gate Array)
Logiche programmabili a 2 livelli
• Sono usate per realizzare funzioni logiche a due livelli NOTA1: qualunque funzione combinatoria puo’ essere espressa come somma di termini minimi
• NOTA2: si possono realizzare funzioni a piu’ livelli sfuttando la retroazione
• Dispongono di:• Un numero di ingressi fissato (Buffer di Ingresso)• Un piano di AND (per realizzare i termini minimi)• Un piano di OR (per realizzare le somme)• Un numero di uscite fissato (Buffer di Uscita)
Logiche programmabili a due livelli
• Vi sono tre tipi principali– PLA (Programmable Logic Array)
• Piano AND programmabile– Implementa solo i termini minimi necessari
• Piano OR programmabile
– PAL (Programmable Array Logic)• Piano AND programmabile• Piano OR fissato
– Impone un vincolo sul numero di termini minimi che la funzione contiene
– ROM (Read Only Memory)• Piano AND fissato
– Implementa tutti i possibili termini minimi (DECODER)• Piano OR programmabile
Programmable Logic Array (PLA)
• Consente di realizzare qualunque funzione logica • Questa e’ espressa in somme di implicanti
Programmable Logic Array (PLA)
• Schema logico di una PLA – Esempio con 3 ingressi e due uscite (non programmata)
Programmable Logic Array (PLA)
Programmable Logic Array (PLA)
Programmable Array Logic (PAL)
• Piano di AND programmabile e piano OR fissato• Consente di implementare somme di prodotti
– Vi puo’ essere un limite sul numero massimo di prodotti che possono concorrere nella realizzazione di una funzione
Programmable Array Logic (PAL)
• Schema logico di una PAL– Esempio di PAL a 3 ingressi e 2 uscite (non programmata)
Read Only Memory (ROM)
– Puo’ essere realizzata con un piano di AND fisso e completo e con un piano di OR programmabile
– In pratica implementa m funzioni a n ingressi– ad una configuarzione d’ingresso (INDIRIZZO) viene
associata una configurazione d’uscita (PAROLA)– Il piano AND agisce da DECODIFICATORE degli indirizzi
Read Only Memory (ROM)
• Piano AND (decodificatore degli indirizzi)– realizza tutti i possibili termini minimi– per ogni configurazione d’ingresso attiva una ed una sola linea
d’uscita
Read Only Memory (ROM)
• Schema logico del piano AND
Read Only Memory (ROM)
• Schema logico di una ROM– Esempio di una ROM a 3 ingressi e 4 uscite (non
programmata)
Read Only Memory (ROM)
• Esempio:– dalla tabella di verita’ della funzione a piu’ uscite
abc f1 f2 f3 f4 f5000 0 0 0 1 0
001 1 1 1 1 0
010 0 0 1 0 1
011 1 0 1 1 0
100 1 0 1 1 1
101 1 1 1 1 1
110 1 0 1 1 1
111 1 1 0 1 1
Read Only Memory (ROM)
• Realizzazione della funzione
PLA e PAL avanzate
• PLA e PAL consentono di realizzare solo reti combinatorie a due livelli
• Questo limite puo’ essere superato– Introducendo una rete di reazione
• permette di implementare reti combinatorie a piu’ di due livelli
– Introducendo elementi di memoria (Flip-Flop)• permette di implementare macchine sequenziali (sincrone)
PLA e PAL avanzate
• Esempio di implementazione di una rete combinatoria a piu’ livelli grazie alla retroazione
PLA e PAL avanzate
• Esempio: realizzazione
PLA e PAL avanzate
• L’aggiunta di elementi di memoria in uscita possono ulteriormente ampliare le prestazioni del dispositivo
CPLD Complex Programmable Logic Device
• Sono la logica evoluzione di PAL e PLA• Sono caratterizzati da:
– Connessioni globali– Logica Concentrata
• Rispetto PAL e PLA– Sono piu’ complessi
e hanno dimensioni maggiori
– Consentono di ottenere prestazioni piu’ elevate
CPLD - XC9500 Architecture
5 volt in-system programmable (ISP) CPLDs5 ns pin-to-pin36 to 288 macrocells (6400 gates) Industry’s best pin-locking architecture10,000 program/erase cyclesComplete IEEE 1149.1 JTAG capability
FunctionBlock 1
JTAGController
FunctionBlock 2
I/O
FunctionBlock 4
3
Global Tri-
States 2 or 4
FunctionBlock 3
I/O
In-SystemProgramming Controller
FastCONNECTSwitch Matrix
JTAG Port
3
I/O
I/O
Global Set/Reset
Global Clocks
I/OBlocks
1
ToFastCONNECT
FromFastCONNECT
2 or 43 GlobalTri-State
GlobalClocks
I/O
I/O
36
Product-Term
Allocator
Macrocell 1
ANDArray
Macrocell 18
Each function block is like a 36V18 !
XC9500 Function Block
Struttura XC9500
Struttura della macrocella
Struttura XC9500
Struttura del “product term allocator”
Struttura XC9500
Possibilita’ di collegamento offerte dal “product term allocator”
Struttura XC9500
Possibilita’ di collegamento offerte dal “product term allocator”
Struttura XC9500
Linee globali di clock, set, reset
Struttura XC9500
Cella di I/O
XC9500 Product Family
9536
Macrocells
Usable Gates
tPD (ns)
Registers
Max I/O
36 72 108 144 216
800 1600 2400 3200 4800
5 7.5 7.5 7.5 10
36 72 108 144 216
34 72 108 133 166
Packages VQ44PC44 PC44
PC84TQ100PQ100
PC84TQ100PQ100PQ160
PQ100PQ160
288
6400
10
288
192
HQ208BG352
PQ160HQ208BG352
9572 95108 95144 95216 95288
1k
R1
1k
R2
1nC1 1nC2
0
OUTIN
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente architettura?
1k
R1
1k
R2
1nC1 1nC2
0
OUTIN
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente architettura?
A: NO con una CPLD si possono realizzare solo circuiti DIGITALI
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione, ossia un predeterminato RITARDO asincrono ?
RIT = 20nsIn Out
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione, ossia un predeterminato RITARDO asincrono ?
RIT = 20nsIn Out
A: NO: non vi e’ alcun modo o alcun elemento che possa realizzare questa funzione.
Nota1: nei circuiti digitali il ritardo e’ una conseguenza (indesiderata) della struttura stessa del circuito e non un parametro da soddisfareNota2: Un elemento di ritardo e’ tuttavia realizzabile in modo SINCRONO
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione logica (gli ingressi e le uscite siano collegati direttamente ai pin di I/O del dispositivo)?
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione logica (gli ingressi e le uscite siano collegati direttamente ai pin di I/O del dispositivo)?
A: NO: Non esiste alcun collegamento diretto tra i pin e la logica interna, ma bisogna passare attraverso ai buffer di I/O (il tool di sviluppo corregge automaticamente questo tipo di errore)
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione (una logica pilota altre logiche struttando un bus tri-state)
Logic 1
Logic 2 Logic 3
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione (una logica pilota altre logiche struttando un bus tri-state)
Logic 1
Logic 2 Logic 3
A: NO ! Gli unici buffer tri-state del dispositivo sono disponibili nei blocchi di I/O e pertanto non possono essere usati per pilotare logiche interne al dispositivo stesso! (un eventuale loop dal pin di uscita dovrebbe passare attraverso un buffer di ingresso che ne annullerebbe l’effetto
FPGA: Introduzione
– Le FPGA (Field Programmable Gate Array) sono dispositivi programmabili costituiti da una matrice di componenti logici collegabili tra loro
Architecture PAL/22V10-like Gate array-likeMore Combinational More Registers + RAM
Density Low-to-medium Medium-to-high 0.5-10K logic gates 1K to 3.2M system gates
Performance Predictable timing Application dependent Up to 250 MHz today Up to 200 MHz today
Interconnect “Crossbar Switch” Incremental
Complex Programmable Logic Device (CPLD)
Field-Programmable Gate Array (FPGA)
FPGA
• Le FPGA mettono a disposizione dell’utente– Componenti logici (CLB - Slice) costituiti da
• logica, piccole memorie, flip-flop, buffer, multiplexer.
– Linee di connessione • sia locali (corte) che distribuite (lunghe)
– Matrici di inter-connessione• per collegare varie line tra loro e da queste ai blocchi logigi
– Blocchi di I/O• particolari blocchi logici dedicati all’I/O provvedono Buffer, protezioni,
Fan-out, resistenze di pull-up e pull-down, adattatori d’impedenza, …
– Blocchi particolari• memorie, moltiplicatori, PLL, decodificatori, …
FPGA
• Pregi e difetti:– Estremamente versatili– Elevata complessita’ computazionale– Piu’ lente di CPLD e ASIC– Costo elevato per singolo componente (ma esistono famiglie
particolarmente economiche)– Costo del prototipo ridotto– “Time to market” molto ridotto– Possibilita’ di “upgrade” del circuito (anche a distanza)– Ottime per la realizzazione di prototipi, (ma si usano sempre di
piu’ anche negli elevati volumi di fabbricazione)– Capacita’ di supportare sistemi interni (embedded systems)
XC4000 Architecture XC4000 Architecture and Featuresand Features
XC4000 Architecture
CLB
CLB
CLB
CLB
SwitchMatrix
ProgrammableInterconnect I/O Blocks (IOBs)
ConfigurableLogic Blocks (CLBs)
D Q
SlewRate
Control
PassivePull-Up,
Pull-Down
Delay
Vcc
OutputBuffer
InputBuffer
Q D
Pad
D QSD
RDEC
S/RControl
D QSD
RDEC
S/RControl
1
1
F'
G'
H'
DIN
F'
G'
H'
DIN
F'
G'
H'
H'
HFunc.Gen.
GFunc.Gen.
FFunc.Gen.
G4G3G2G1
F4F3F2F1
C4C1 C2 C3
K
Y
X
H1 DIN S/R EC
XC4000E/X Configurable Logic Blocks
D QSD
RDEC
S/RControl
D QSD
RDEC
S/RControl
1
1
F'
G'
H'
DIN
F'
G'
H'
DIN
F'
G'
H'
H'
HFunc.Gen.
GFunc.Gen.
FFunc.Gen.
G4G3G2G1
F4F3F2F1
C4C1 C2 C3
K
YQ
Y
XQ
X
H1 DIN S/R EC
• 2 Four-input function generators (Look Up Tables)- 16x1 RAM or Logic function
• 2 Registers- Each can be configured as Flip Flop or Latch- Independent clock polarity- Synchronous and asynchronous Set/Reset
Look Up Tables
Capacity is limited by number of inputs, not complexity
Choose to use each function generator as 4 input logic (LUT) or as high speed sync.dual port RAM
• Combinatorial Logic is stored in 16x1 SRAM Look Up Tables (LUTs) in a CLB
• Example:
A B C D Z
0 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 10 1 0 0 10 1 0 1 1 . . .1 1 0 0 01 1 0 1 01 1 1 0 01 1 1 1 1
Look Up Table
Combinatorial Logic
AB
CD
Z
4-bit address
GFunc.Gen.
G4G3G2G1
WE
2(2 )4
= 64K !
XC4000X I/O Block Diagram
Shaded areas are not included in XC4000E family.
Xilinx FPGA Routing
1) Fast Direct Interconnect - CLB to CLB
2) General Purpose Interconnect - Uses switch matrix
CLBCLB
CLBCLB
CLBCLB
CLBCLB
SwitchMatrix
SwitchMatrix
3) Double Lines4) Long Lines
Segmented across chipGlobal clocks, lowest skew2 Tri-states per CLB for busses
What’s Really In that Chip?
CLB(Red)
Switch Matrix
Long Lines(Purple)
Direct Interconnect (Green)
Routed Wires (Blue)
Programmable Interconnect Points, PIPs (White)
Spartan-II Architecture Spartan-II Architecture and Featuresand Features
Presentation Name 63
Virtex-II
CPLDs Low Power
FPGAsSRAM-basedFeature RichHigh Performance
Spartan-IIE
Density (System Gates)
Fea
ture
s
FPGAsSRAM-basedFeature RichLow Cost
10K 600K 10M
XilinxYour Programmable Logic Solution
Features
• Plentiful logic and memory resources– 15K to 200K system gates (up to 5,292 logic cells)– Up to 57 Kb block RAM storage
• Flexible I/O interfaces– From 86 to 284 I/Os – 16 signal standards
• Advanced 0.25/0.22um 6-Layer Metal Process• High performance
– System frequency as high as 200 MHzAdvanced Clock Control with 4 Dedicated DLLsUnlimited Re-programmabilityFully PCI Compliant
Spartan-II Top-level Architecture
• Configurable logic blocks– Implement logic here!
• I/O blocks– Communicate with other chips– Choose from 16 signal
standards
• Block RAM– On-chip memory for higher
performance
Spartan-II Top-level Architecture
• Clocks and delay locked loops– Synchronize to clock on and off
chip
• Rich interconnect resources – Three-state internal buses
• Power down mode– Lower quiescent power
F5IN
CINCLKCE
COUT
D Q
CK
S
REC
D Q
CK
REC
O
G4G3G2G1
Look-UpTable
Carry&
ControlLogic
O
YB
Y
F4F3F2F1
XBX
Look-UpTable
BYSR
S
Carry&
ControlLogic
SLICE
COUT
D Q
CK
S
REC
D Q
CK
REC
O
G4G3G2G1
Look-UpTable
Carry&
ControlLogic
O
YB
Y
F4F3F2F1
XBX
Look-UpTable
F5INBYSR
S
Carry&
ControlLogic
CINCLKCE SLICE
CLB Structure
• Each slice has 2 LUT-FF pairs with associated carry logic• Two 3-state buffers (BUFT) associated with each CLB, accessible by all CLB
outputs
CLB Slice (Simplified)
• 1 CLB holds 2 slices• Each slice contains two sets
of the following:– Four-input LUT
• Any 4-input logic function• Or 16-bit x 1 RAM• Or 16-bit shift register
CLB Slice (cont’d)
• Each slice contains two sets of the following:– Carry & control
• Fast arithmetic logic• Multiplier logic• Multiplexer logic
– Storage element• Latch or flip-flop• Set and reset• True or inverted inputs• Sync. or async. control
Inputs(ABCD) Output(Z)0000 00001 00010 10011 0…… ..1110 11111 1
Truth Table
LUT =
4-input logic function
C
D
Z
A
B
Four-Input LUT
• Implements combinatorial logic– Any 4-input logic function– Cascaded for wide-input functions
RAM16X1S
O
DWEWCLKA0A1A2A3
RAM32X1S
O
DWEWCLKA0A1A2A3A4
RAM16X2S
O1
D0
WEWCLKA0A1A2A3
D1
O0
=
=LUT
LUT or
LUT
RAM16X1D
SPO
D
WE
WCLK
A0
A1
A2
A3
DPRA0 DPO
DPRA1
DPRA2
DPRA3
or
Distributed RAM
• CLB LUT configurable as Distributed RAM
– A LUT equals 16x1 RAM– Implements Single and Dual-Ports– Cascade LUTs to increase RAM size
• Synchronous write• Synchronous/Asynchronous read
– Accompanying flip-flops used for synchronous read
D QCE
D QCE
D QCE
D QCE
LUT
INCECL
K
DEPTH[3:0]
OUTLUT =
Shift Register
• Each LUT can be configured as shift register– Serial in, serial out
• Dynamically addressable delay up to 16 cycles
• For programmable pipeline• Cascade for greater cycle
delays• Use CLB flip-flops to add
depth• Use for programmable clock
delay
Shift Register
• Register-rich FPGA– Allows for addition of pipeline stages to increase throughput
• Data paths must be balanced to keep desired functionality
64Operation
A4 Cycles 8 Cycles
Operation B
3 Cycles
Operation C
64
12 Cycles
3 Cycles9-Cycle imbalance
12 Cycles
64Operation
A4 Cycles 8 Cycles
Operation B
3 Cycles
Operation C
12 Cycles Paths staticallybalanced
9 Cycles
Pipeline
64
Shift Register
• LUT as shift register– Used to add pipeline stages
• Increase overall register count– 16 bit shift register per LUT– 64 bit shift register per CLB
CLB Arithmetic Logic
• Dedicated carry logic– Provides high performance for
counters & arithmetic functions– Discrete XOR component for
single level sum completion– Two separate carry chains in CLB
allow for 3 operand functions– Can also be used to cascade
LUTs for wide-input logic functions
Single-level Sum
LUT
0 1
LUT
0 1
LUT
0 1
LUT
0 1
COUT
Look-UpTable
SLICE0CIN
COUT
O
Look-UpTable
Carry&
ControlLogic
Look-UpTable
SLICE1CIN
CLB
Look-UpTable
B1B0
A1A0
C1C0
SUM1
SUM0
PARTIAL0
PARTIAL1Carry
&ControlLogic
Carry&
ControlLogic
Carry&
ControlLogic
3 Operand Adder Function
• A, B, C are two-bits wide– SUM = A + B + C or PARTIAL + C, where PARTIAL = A + B– Implementation
• First 2-operand sum ‘A+B’ is performed in Slice 0• Second 2-operand sum ‘PARTIAL + C’ is performed in Slice 1
– Fast local feedback connection within the CLB• Very small delay for on PARTIAL
Sommatore a 4 bits
Overflow
Carry Out
Carry In
CLB
MUXF6
Slice
LUT
LUTMUXF5
Slice
LUT
LUTMUXF5
Dedicated Expansion Multiplexers
• MUXF5 combines 2 LUTs to form– 4x1 multiplexer– Or any 5-input function
• MUXF6 combines 2 slices to form– 8x1 multiplexer– Or any 6-input function
200 MHz Memory Continuum
Highest performance FPGA memory system
bytes
16x1
DSP CoefficientsSmall FIFOsShallow/Wide
Distributed RAMkilobytes
4Kx12Kx21Kx4512x8
256x16
Large FIFOs Packet BuffersVideo Line BuffersCache Tag MemoryDeep/Wide
Block RAMmegabytes
SDRAMZBTRAMSSRAMSGRAM
External RAM
Memory Bandwidth and Flexibility
• Spartan-II on-chip SelectRAM+TM memory
Spartan-IIDual-R/W
PortBlock RAM
Port A
Port B
W
R
WR
WR
RW
Data Flow Spartan-IIA to B YesB to A YesA to A YesB to B Yes
Block RAM Provides 4K Bits Each
• Dual read/write ports, each with:– Independent clock, R/W, and enable– Independently configurable data width from 4Kx1 to 256x16
Local Routing
• Interconnect among LUTs, FFs, GRM• CLB feedback path for connections to LUTs in same CLB• Direct path between horizontally adjacent CLBs
Local Routing
General Purpose Routing
• 24 single-length lines– Route GRM signals to adjacent GRMs in 4 directions
• 96 buffered hex lines– Route GRM signals to another GRMs six blocks away in each of the four directions
• 12 buffered Long lines– Routing across top and bottom, left and right
SINGLE
HEX
LONG
SINGLE
HEX
LONG
SIN
GL
E
HE
X
LO
NG
SIN
GL
E
HE
X
LO
NG
TRISTATE BUSSES
SWITCHMATRIX
SLICE SLICE
LocalFeedback
CA
RR
Y
CA
RR
Y
CLB
CA
RR
Y
CA
RR
Y
DIRECTCONNECTION
INTERNAL BUSSES
Single-length linesBuffered Hex lines
Direct connections
Long lines and Global linesInternal 3-state Bus
Internal Three-state Buses
Clock distribution Nets
• High speed• Low skew• 4 distribution nets• 4 dedicated input PADS• 4 dedicated Global buffers
with inputs or– from clock pad– from internal signal
Delay Lock Loops (DLLs) Lower Board Costs
System Clock Management
De-skew clocks
4 low-skew global clocks
Mirror clock for board distribution
Multiply Divide Shift
Convert clock to different
I/O standards using SelectI/O™
DLL1 DLL2
DLL3 DLL4Syst
em C
lock
s
DLL Capabilities
• Easy clock duplication– System clock distribution – Cleans and reconditions incoming clock
• Quick and easy frequency adjustment• Single crystal easily generates multiple clocks
• Faster state machine utilizing different clock phases • Excellent for advance memory types
• De-skew incoming clock• Generate fast setup and hold time or fast clock-to-outs
ClockDe-skew
I/O Block (Simplified)
• Registered input, output, 3-state control• Programmable slew rate, pull-up, pull-down, keeper and
input delay
IOBs Organized As Independent Banks
• As many as eight banks on a device– Package dependent
• Each bank can be assigned any of the 16 signal standards
Programmable Output Driver
• Significant EMI reduction benefit• Programmable driver strength
– Pull-up and Pull-down drivers can be individually controlled
– 16 different setting for each– 2 slew rate settings
Simultaneous Switching Output Guidelines
Supports multiple voltage and signal standards simultaneously
Eliminate costly bus transceivers
System Interfaces -- SelectI/O™
Voltage Standards2.5V 1.8V3.3V 1.5V
SSTLHSTLCTT
High-speed Memory Interfaces
Chip-to-Chip Interfaces
LVTTLLVCMOSLVPECLLVDS
Backplane Interfaces
GTL GTL+AGP PCI BLVDS
19 DifferentStandardsSupported!
SelectI/OTM Standards
• VCCO defines output voltage
Standard VREF VCCO
Chip to Chip InterfaceLVTTL na 3.3LVCMOS2 na 2.5LVCMOS18 na 1.8LVDS na 2.5LVPECL na 3.3
Backplane InterfacePCI 33MHz 3.3V na 3.3PCI 66MHz 3.3V na 3.3GTL 0.80 naGTL+ 1.00 naAGP-2X 1.32 3.3Bus LVDS na 2.5
Memory InterfaceHSTL-I 0.75 1.5HSTL-III & IV 0.90 1.5SSTL3-I & II 1.50 3.3SSTL2-I & II 1.25 2.5CTT 1.50 3.3
User I/O Pin
VCCO
VREF
InternalReferenc
e
Output
Input
• VREF defines input threshold reference voltage
• Available as user I/O when using internal reference
Chip to ChipLVTTL, LVCMOS
Chip to MemorySSTL2-I, SSTL2-II, SSTL3-I,SSTL3-II, HSTL-I, HSTL-III,HSTL-IV, CTT
Chip to BackplanePCI33-5V, PCI33-3.3V, GTL, GTL+, AGP
Allows support for future standards!
SD
RA
M
SSTL
GT
L+
LVTTL
LVCMOSCTT
SR
AM
HSTL
Spartan-II As Center for Signal Translation
Partial Reconfiguration
Frame by frame reconfiguration supported while device is running- Routing changes affect device operation- Re-initializing a block RAM requires stopping all access in that column
Can dynamically load the required logic at a given time- Minimizes cost further by time-multiplexing the logic resources
Power-down Mode
• Controlled by single power down pin• All inputs blocked, appear low internally• All outputs disabled• All register states preserved• Power-down status pin• Synchronous wake up• 100 uA typical
Mode
Config.Data
Format
Direction ofSynchronizing
Clock UseSlaveSerial
Serial FPGA receivesCCLK
Processor or CPLD or another FPGA ( in Mastermode) controls configuration of slave FPGA
Also for configuring multiple slave FPGAs in adaisy chain (2ND, 3RD FPGA, etc.).
MasterSerial
Serial FPGA generatesCCLK
FPGA in Master mode configures itself from aserial PROM.
Also, 1st FPGA (master) in daisy chain controlsconfiguration of slave FPGA(s) in a daisy chain.
SlaveParallel
Byte FPGA receivesCCLK
Processor or CPLD controls the fast configuration ofslave FPGA.
JTAG Serial FPGA receivesTCK
Make use of existing boundary scan port
There are four ways to program a Spartan-II FPGA
Configuration Modes
Device XC2S15 XC2S30 XC2S50 XC2S100 XC2S150 XC2S200
Logic Cells 432 972 1728 2700 3888 5292
Block RAM Bits 16,384 24,576 32,768 40,960 49,152 57,344
Block RAM Qty. 4 6 8 10 12 14
Max. User I/Os 86 132 176 196 260 284
Package VQ100 VQ100
CS144 CS144
TQ144 TQ144 TQ144 TQ144
PQ208 PQ208 PQ208 PQ208 PQ208
FG256 FG256 FG256 FG256
FG456 FG456 FG456
Spartan-II Family Overview
Spartan-II Architecture Summary
Delivers all the key requirements for ASIC replacement– 200,000 gates– 200 MHz– Flexible I/O interfaces– On-chip distributed and block RAM– Clock management– Low power– Complete development system support