Dispositivi
programmabili
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’) inu una cella di RAM Statica
Connessioni
• Connessione Globale
– Linea che attraversa buona parte del dispositivo e condivisa
da molti elementi logici
• Elevati ritardi
• Puo’ essere pilotata da un solo elemento logico (scarsa flessibilita’)
• Connessione locale
– Linea che attraversa una parte ridotta del dispositivo ed e’
condivisa da pochi elementi
• ritardi piu’ contenuti
• elevata flessibilita’
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)
• ESEMPIO1:
– Realizzazione delle funzioni
f1 = ab + ac’ + a’b’c
f2 = ab + ac + a’b’c
– Prodotti
p1 = ab
p2 = ac
p3 = ac’
p4 = a’b’c
– Somme
f1 = p1 + p3 + p4
f2 = p1 + p2 + p4
Formato PLA:
1110
1-0
10
001
10
1101
1-1
01
001
01
Programmable Logic Array (PLA)
Programmable Logic Array (PLA)
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
000
001
010
011
100
101
110
111
f1
0
1
0
1
1
1
1
1
f2
0
1
0
0
0
1
0
1
f3
0
1
1
1
1
1
1
0
f4
1
1
0
1
1
1
1
1
f5
0
0
1
0
1
1
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
3
JTAG
Controller
JTAG Port
In-System
Programming Controller
Function
Block 1
I/O
I/O
I/O
I/O
Blocks
I/O
Global
Clocks
Global
Set/Reset
Global
Tri-States
Function
Block 2
FastCONNECT
Switch Matrix
Function
Block 3
3
1
Function
Block 4
2 or 4
5 volt in-system
programmable (ISP) CPLDs
5 ns pin-to-pin
36 to 288 macrocells
(6400 gates)
Industry’s best pin-locking
architecture
10,000 program/erase
cycles
Complete IEEE 1149.1
JTAG capability
XC9500 Function Block
Global
Clocks
AND
Array
3
Global
Tri-State
2 or 4
Macrocell 1
I/O
Macrocell 18
I/O
ProductTerm
Allocator
36
From
FastCONNECT
To
FastCONNECT
Each function block is like a 36V18 !
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 clok, set, reset
Struttura XC9500
Cella di I/O
XC9500 Product Family
9536
9572
95108
95144
95216
95288
Macrocells
36
72
108
144
216
288
Usable
Gates
800
1600
2400
3200
4800
6400
tPD (ns)
5
7.5
7.5
7.5
10
10
Registers
36
72
108
144
216
288
Max I/O
34
72
108
133
166
192
PC84
TQ100
PQ100
PQ160
PQ100
PQ160
Packages
VQ44
PC44
PC44
PC84
TQ100
PQ100
PQ160
HQ208
BG352
HQ208
BG352
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente
architettura?
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 ?
In
RIT = 20ns
Out
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente
funzione, ossia un predeterminato RITARDO asincrono ?
In
RIT = 20ns
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 soddisfare
Nota2: 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 tristate)
Logic 2
Logic 1
Logic 3
XC9500 - Q e A
Q: E’ possibile realizzare tramite CPLD XC9500 la seguente
funzione (una logica pilota altre logiche struttando un bus tristate)
Logic 2
Logic 3
Logic 1
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
Complex Programmable Logic
Device (CPLD)
Field-Programmable Gate Array
(FPGA)
Architecture
PAL/22V10-like
More Combinational
Gate array-like
More Registers + RAM
Density
Low-to-medium
0.5-10K logic gates
Medium-to-high
1K to 3.2M system gates
Performance
Predictable timing
Up to 250 MHz today
Application dependent
Up to 200 MHz today
Interconnect
“Crossbar Switch”
Incremental
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
and Features
XC4000 Architecture
CLB
Slew
Rate
Control
CLB
Switch
Matrix
D
CLB
Input
Buffer
Programmable
Interconnect
C1 C2 C3 C4
H1 DIN S/R EC
S/R
Control
DIN
G
Func.
Gen.
SD
F'
H'
EC
RD
1
F4
F3
F2
F1
H
Func.
Gen.
F
Func.
Gen.
Y
G'
H'
S/R
Control
DIN
SD
F'
D
G'
Q
H'
1
H'
K
Q
D
G'
F'
Vcc
Output
Buffer
CLB
Q
G4
G3
G2
G1
Q
Passive
Pull-Up,
Pull-Down
EC
RD
X
Configurable
Logic Blocks (CLBs)
D
Delay
I/O Blocks (IOBs)
Pad
XC4000E/X Configurable Logic Blocks
•
•
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
C1 C2 C3 C4
H1 DIN S/R EC
S/R
Control
G4
G3
G2
G1
DIN
F'
G'
G
Func.
Gen.
SD
H
Func
.Gen.
F
Func.
Gen.
EC
RD
G'
H'
Y
S/R
Control
DIN
F'
G'
SD
D
Q
XQ
H'
1
H'
K
YQ
H'
1
F4
F3
F2
F1
Q
D
F'
EC
RD
X
Look Up Tables
•
Combinatorial Logic is stored in 16x1 SRAM Look Up Tables
(LUTs) in a CLB
Look Up Table
• Example:
4-bit address
Combinatorial Logic
A B C D Z
A
4
0
0
0
0
0
(2
)
B
0 0 0 1 0
Z
C
0 0 1 0 0
D
0 0 1 1 1
0 1 0 0 1
 Capacity is limited by number of
0 1 0 1 1
2
= 64K !
inputs, not complexity
 Choose to use each function
generator as 4 input logic (LUT) or
as high speed sync.dual port
WE
RAM
G4
G3
G2
G1
G
Func.
Gen.
. . .
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
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
3) Double Lines
4) Long Lines
Segmented across
chip
Global clocks, lowest
skew
2 Tri-states per CLB
for busses
CLB
Switch
Matrix
CLB
Switch
Matrix
CLB
CLB
What’s Really In that Chip?
Programmable Interconnect Points, PIPs (White)
Switch
Matrix
Routed Wires (Blue)
Direct
Interconnect
(Green)
CLB
(Red)
Long Lines
(Purple)
Spartan-II Architecture
and Features
Xilinx
Features
Your Programmable Logic Solution
Virtex-II
Spartan-IIE
CPLDs
Low Power
10K
Presentation Name 63
FPGAs
FPGAs
SRAM-based
Feature Rich
Low Cost
SRAM-based
Feature Rich
High Performance
600K
Density (System Gates)
10M
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 MHz
Advanced Clock Control with 4 Dedicated DLLs
Unlimited Re-programmability
Fully 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
CLB Structure
COUT
G4
G3
G2
G1
Look-Up
Table O
Carry
&
Control
Logic
COUT
YB
Y
D
S
Q
CK
EC
CIN
CLK
CE
Look-Up
Table O
R
F5IN
BY
SR
F4
F3
F2
F1
G4
G3
G2
G1
Carry
&
Control
Logic
YB
Y
D
S
Q
CK
EC
R
F5IN
BY
SR
Look-Up
Table O
Carry
&
Control
Logic
XB
X
S
D
Q
CK
EC
F4
F3
F2
F1
R
SLICE
CIN
CLK
CE
Look-Up
Table O
Carry
&
Control
Logic
XB
X
S
D
Q
CK
EC
R
SLICE
• 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
Four-Input LUT
• Implements combinatorial logic
Truth Table
– Any 4-input logic function
– Cascaded for wide-input functions
Inputs(ABCD) Output(Z)
0000
0
0001
0
0010
1
0011
0
……
..
1110
1
1111
1
4-input logic function
A
LUT
=
B
Z
C
D
Distributed RAM
RAM16X1S
O
RAM32X1S
– A LUT equals 16x1 RAM
– Implements Single and Dual-Ports
– Cascade LUTs to increase RAM size
• Synchronous write
• Synchronous/Asynchronous read
=
LUT
• CLB LUT configurable as Distributed
RAM
D
WE
WCLK
A0
A1
A2
A3
D
WE
WCLK
A0
O
A1
A2
A3
A4
or
LUT
– Accompanying flip-flops used for
synchronous read
=
LUT
RAM16X2S
D0
D1
WE
WCLK O0
A0
O1
A1
A2
A3
or
RAM16X1D
D
WE
WCLK
A0
SPO
A1
A2
A3
DPRA0 DPO
DPRA1
DPRA2
DPRA3
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
LUT
IN
CE
CL
K
D
Q
CE
D
Q
CE
LUT
=
D
Q
CE
D
Q
CE
DEPTH[3:0]
OUT
Shift Register
12 Cycles
64
Operation
A
4 Cycles
Operation
B
8 Cycles
64
Operation
C
3 Cycles
• Register-rich FPGA
3 Cycles
9-Cycle imbalance
– Allows for addition of pipeline stages to increase throughput
• Data paths must be balanced to keep desired functionality
Shift Register
12 Cycles
64
Operation
A
4 Cycles
Operation
B
8 Cycles
Operation
C
3 Cycles
Pipelin
e
9 Cycles
• LUT as shift register
12 Cycles
– Used to add pipeline stages
• Increase overall register count
– 16 bit shift register per LUT
– 64 bit shift register per CLB
64
Paths statically
balanced
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
01
LUT
01
LUT
Single-level Sum
01
LUT
01
LUT
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
CLB
Slice
MUXF6
LUT
LUT
MUXF5
Slice
LUT
LUT
MUXF5
Memory Bandwidth and Flexibility
• Spartan-II on-chip SelectRAM+TM memory
DSP Coefficients
Small FIFOs
Shallow/Wide
4Kx1
2Kx2
1Kx4
512x8
256x16
16x1
Distributed RAM
bytes
Large FIFOs
Packet Buffers
Video Line Buffers
Cache Tag Memory
Deep/Wide
Block RAM
kilobytes
SDRAM
ZBTRAM
SSRAM
SGRAM
External RAM
megabytes
200 MHz Memory Continuum
Highest performance FPGA memory system
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
W
R
Port B
Port A
W
R
Spartan-II
Dual-R/W
Port
Block RAM
R
W
W
R
Data Flow Spartan-II
A to B
Yes
B to A
Yes
A to A
Yes
B to B
Yes
Local Routing
Local Routing
• Interconnect among LUTs, FFs, GRM
• CLB feedback path for connections to LUTs in same CLB
• Direct path between horizontally adjacent CLBs
INTERNAL BUSSES
CARRY
CARRY
SINGLE
HEX
LONG
General Purpose Routing
TRISTATE BUSSES
LONG
LONG
HEX
HEX
SINGLE
LONG
DIRECT
CONNECTION
HEX
SWITCH
MATRIX
SINGLE
SINGLE
SLICE
Internal 3-state Bus
Long lines and Global lines
Buffered Hex lines
Single-length lines
SLICE
Local
Feedback
Direct connections
•
24 single-length lines
•
96 buffered hex lines
•
12 buffered Long lines
CARRY
CARRY
CLB
– Route GRM signals to adjacent GRMs in 4 directions
– Route GRM signals to another GRMs six blocks away in each of the four directions
– Routing across top and bottom, left and right
Internal Three-state Buses
Routing Summary
• Vector-based routing
– Predictable routing delays independent
of device size and routing direction
• Core-friendly architecture
• Quick Place and Route times
– Design to system at 100,000 gates per minute
– Easier re-routing
• Internal 3-state bussing
– Eliminates bus routing contention
– Improves density and performance
CLB Array
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
System Clock Management
System Clocks
DLL1
DLL2
Mirror clock for
board distribution
De-skew clocks
4 low-skew
global clocks
DLL3
DLL4
Convert clock to
different
I/O standards using
SelectI/O™
Multiply
Divide
Shift
Delay Lock Loops (DLLs) Lower Board Costs
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
Clock
De-skew
• De-skew incoming clock
• Generate fast setup and hold time or fast clock-to-outs
Generic DLL Operation
• A DLL inserts delay on the clock net until the clock input rising
edge is in phase with the clock feedback rising edge
• Requires a well-designed clock distribution network: the clock
edges arrive simultaneously everywhere in the part
CLKIN
Delay
Delay
Delay
Delay
CLKOUT
Phase Delay
Control
CLKFB
Clock
Distribution
Network
Delay-locked Loop Functions






Eliminate clock distribution delay
System synchronization (e.g., clock mirrors)
Phase-shifted clocks
Clock multiplication and division
Clean up clocks with 50/50 duty cycle correction
Clock lock for internal & external synchronization
– DLL feedback connected internally or externally
– Can synchronize configuration to DLL lock
Improved Clock-to-out Using DLL

Spartan-II clock-to-out delays reduced over 50%
Output standard = LVTTL Fast 16mA
(OBUF_F_16)
Temp=room, Vdd=2.5V, Vcco=3.3V
Waveforms:
1: CLKIN
2: DATA OUT (no DLL)
3: DATA OUT (DLL deskewed)
Timing
w/o DLL
w/ DLL
r->r r->f
r->r r->f
3.6n 3.5n 1.4n 1.4n
DLL Macros


Two DLL versions available
– Controlled by macro choice
CLKDLL (low frequency)
– Input frequency: 25 MHz to 100 MHz
– All 6 outputs available
• CLK0, CLK90, CLK180, CLK270, CLK2X &
CLKDV

CLKDLLHF (high frequency)
– Input frequency 60 MHz to 200 MHz
– 3 outputs available
• CLK0, CLK180 & CLKDV
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
Simultaneous Switching Output Guidelines
• 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
System Interfaces -- SelectI/O™
Voltage Standards
3.3V
2.5V
1.8V
19 Different
Standards
Supported!
1.5V
Chip-to-Chip Interfaces
LVDS
LVPECL
Backplane Interfaces
AGP
GTL GTL+
LVCMOS
LVTTL
High-speed Memory Interfaces
PCI BLVDS
CTT HSTL SSTL
 Supports multiple voltage and signal standards
simultaneously
 Eliminate costly bus transceivers
SelectI/OTM Standards
Standard
VREF VCCO
Chip to Chip Interface
LVTTL
LVCMOS2
LVCMOS18
LVDS
LVPECL
na
na
na
na
na
3.3
2.5
1.8
2.5
3.3
Backplane Interface
PCI 33MHz 3.3V
PCI 66MHz 3.3V
GTL
GTL+
AGP-2X
Bus LVDS
na
na
0.80
1.00
1.32
na
3.3
3.3
na
na
3.3
2.5
0.75
0.90
1.50
1.25
1.50
1.5
1.5
3.3
2.5
3.3
VCCO
• VCCO defines output voltage
User I/O Pin
Output
Input
Internal
Reference
Memory Interface
HSTL-I
HSTL-III & IV
SSTL3-I & II
SSTL2-I & II
CTT
VREF
• VREF defines input threshold reference
voltage
• Available as user I/O when using internal
reference
Spartan-II As Center for Signal Translation
SDRAM
Chip to Chip
SSTL
LVTTL, LVCMOS
Chip to Memory
HSTL
LVCMOS
CTT
GTL+
SRAM
LVTTL
SSTL2-I, SSTL2-II, SSTL3-I,
SSTL3-II, HSTL-I, HSTL-III,
HSTL-IV, CTT
Chip to Backplane
PCI33-5V, PCI33-3.3V,
GTL, GTL+, AGP
Allows support for future standards!
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
Configuration Modes
Config.
Direction of
Data
Synchronizing
Mode Format
Clock
Slave Serial
FPGA receives
Serial
CCLK


Master Serial
Serial
FPGA generates
CCLK


Use
Processor or CPLD or another FPGA ( in Master
mode) controls configuration of slave FPGA
Also for configuring multiple slave FPGAs in a
daisy chain (2ND, 3RD FPGA, etc.).
FPGA in Master mode configures itself from a
serial PROM.
Also, 1st FPGA (master) in daisy chain controls
configuration of slave FPGA(s) in a daisy chain.
Slave Byte
Parallel
FPGA receives
CCLK
Processor or CPLD controls the fast configuration of
slave FPGA.
JTAG
FPGA receives
TCK
Make use of existing boundary scan port
Serial
There are four ways to program a Spartan-II FPGA
Spartan-II Family Overview
Device
Logic Cells
XC2S15 XC2S30 XC2S50 XC2S100 XC2S150 XC2S200
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
VQ100
VQ100
CS144
CS144
TQ144
TQ144
TQ144
TQ144
PQ208
PQ208
PQ208
PQ208
PQ208
FG256
FG256
FG256
FG256
FG456
FG456
FG456
Package
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