Académique Documents
Professionnel Documents
Culture Documents
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
Dispositivi Programmabili
I diversi dispositivi possono essere classificati in base a
diversi aspetti:
Modalita di programmazione
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
Connessioni
Le connessioni globali sono caratteristiche dei
Dispositivi logici a due livelli:
PAL, PLA, ROM
Dispongono di:
Piano OR programmabile
Piano OR programmabile
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
CPLD
Complex Programmable Logic Device
JTAG Port
JTAG
Controller
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
2 or 4
Function
Block 4
5 volt in-system
programmable (ISP) CPLDs
5 ns pin-to-pin
36 to 288 macrocells
(6400 gates)
Industrys best pin-locking
architecture
10,000 program/erase
cycles
Complete IEEE 1149.1 JTAG
capability
AND
Array
Global
Tri-State
2 or 4
Macrocell 1
I/O
Macrocell 18
I/O
ProductTerm
Allocator
36
From
FastCONNECT
To
FastCONNECT
Struttura XC9500
Struttura della macrocella
Struttura XC9500
Struttura del product term allocator
Struttura XC9500
Possibilita di collegamento offerte dal
product term allocator
Struttura XC9500
Struttura XC9500
Linee globali di clock, set, reset
Struttura XC9500
Cella di I/O
9572
95108
95144
95216
95288
Macrocells
36
72
108
144
216
288
Usable Gates
800
1600
2400
3200
4800
6400
tPD (ns)
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?
IN
R1
R2
1k
1k
C1
1n
OUT
C2
1n
XC9500 - Q e A
Q: E possibile realizzare tramite CPLD XC9500 la seguente
architettura?
IN
R1
R2
1k
1k
C1
1n
OUT
C2
1n
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
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)?
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 leffetto
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
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 dellutente
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 allI/O provvedono Buffer, protezioni,
Fan-out, resistenze di pull-up e pull-down, adattatori dimpedenza,
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
CLB
Input
Buffer
Programmable
Interconnect
C1 C2 C3 C4
H1 DIN S/R EC
S/R
Control
F4
F3
F2
F1
G
Func.
Gen.
DIN
F'
G'
EC
RD
G'
H'
S/R
Control
DIN
SD
F'
G'
H'
H'
H'
H
Func.
Gen.
F
Func.
Gen.
SD
D
F'
Vcc
Output
Buffer
CLB
Q
G4
G3
G2
G1
Passive
Pull-Up,
Pull-Down
EC
RD
Configurable
Logic Blocks (CLBs)
Delay
Pad
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
F4
F3
F2
F1
DIN
F'
G'
G
Func.
Gen.
F
Func.
Gen.
YQ
H'
H
Func
.Gen.
EC
RD
1
G'
H'
Y
S/R
Control
DIN
F'
G'
SD
D
XQ
H'
H'
SD
D
F'
EC
RD
Look Up Tables
A B C D
A
B
Z
C
D
G
Func.
Gen.
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
Z
0
0
0
1
1
1
. . .
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
(2 )
2
= 64K !
CLB
CLB
Switch
Matrix
CLB
CLB
Switch
Matrix
CLB
CLB
CLB
CLB
Direct
Interconnect
(Green)
CLB
(Red)
Long Lines
(Purple)
Spartan-II Architecture
and Features
Xilinx
Features
Virtex-II
Spartan-IIE
CPLDs
Low Power
10K
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
I/O blocks
Communicate with other chips
Choose from 16 signal
standards
Block RAM
On-chip memory for higher
performance
CLB Structure
COUT
G4
G3
G2
G1
Look-Up
Table O
Carry
&
Control
Logic
COUT
YB
Y
D
CK
EC
CIN
CLK
CE
Look-Up
Table O
F5IN
BY
SR
F4
F3
F2
F1
G4
G3
G2
G1
Carry
&
Control
Logic
YB
Y
D
CK
EC
F5IN
BY
SR
Look-Up
Table O
Carry
&
Control
Logic
XB
X
D
CK
EC
F4
F3
F2
F1
SLICE
CIN
CLK
CE
Look-Up
Table O
Carry
&
Control
Logic
XB
X
D
CK
EC
SLICE
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
Inputs(ABCD) Output(Z)
0000
0
0001
0
0010
1
0011
0
..
1110
1
1111
1
B
Z
C
D
Distributed RAM
RAM16X1S
RAM32X1S
Synchronous write
Synchronous/Asynchronous read
LUT
D
WE
WCLK
A0
A1
A2
A3
D
WE
WCLK
A0
A1
A2
A3
A4
LUT
or
=
RAM16X2S
D0
D1
WE
WCLK O
A0
0
O
A1
1
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
Shift Register
12 Cycles
64
Operation
A
4 Cycles
Operation
B
8 Cycles
Operation
C
3 Cycles
Pipelin
e
9 Cycles
12 Cycles
64
Paths statically
balanced
01
LUT
01
LUT
Single-level Sum
01
LUT
01
LUT
B1
B0
A1
A0
Look-Up
Table
Carry
&
Control
Logic
Look-Up
Table
Carry
&
Control
Logic
CIN
COUT
PARTIAL1
PARTIAL0
SLICE0
C1
C0
Look-Up
Table O
Carry
&
Control
Logic
Look-Up
Table
Carry
&
Control
Logic
CIN
CLB
SUM1
SUM0
SLICE1
Sommatore a 4 bits
Carry Out
Overflow
Carry In
CLB
Slice
MUXF6
LUT
LUT
MUXF5
Slice
LUT
LUT
MUXF5
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
W
R
Port B
Port A
W
R
Spartan-II
Dual-R/W
Port
Block RAM
R
W
W
R
Local Routing
Local Routing
INTERNAL BUSSES
CARRY
CARRY
SINGLE
HEX
LONG
LONG
LONG
HEX
HEX
SINGLE
LONG
DIRECT
CONNECTION
HEX
SWITCH
MATRIX
SINGLE
SINGLE
SLICE
SLICE
Direct connections
Local
Feedback
24 single-length lines
CARRY
CARRY
CLB
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 Clocks
DLL1
DLL2
De-skew clocks
4 low-skew
global clocks
DLL3
DLL4
Convert clock to
different
I/O standards using
SelectI/O
Multiply
Divide
Shift
DLL Capabilities
Easy clock duplication
System clock distribution
Cleans and reconditions incoming clock
Clock
De-skew
2.5V
1.8V
19 Different
Standards
Supported!
1.5V
Chip-to-Chip Interfaces
LVDS
LVPECL
Backplane Interfaces
AGP
GTL GTL+
LVCMOS
LVTTL
PCI BLVDS
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
Memory Interface
HSTL-I
HSTL-III & IV
SSTL3-I & II
SSTL2-I & II
CTT
VCCO
Output
Input
Internal
Reference
VREF
SDRAM
Chip to Chip
LVTTL, LVCMOS
SSTL
Chip to Memory
HSTL
LVCMOS
CTT
GTL+
SRAM
LVTTL
Chip to Backplane
PCI33-5V, PCI33-3.3V,
GTL, GTL+, AGP
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
Power-down Mode
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
JTAG
FPGA receives
TCK
Serial
972
1728
2700
3888
5292
16,384
24,576
32,768
40,960
49,152
57,344
10
12
14
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
200,000 gates
200 MHz
Flexible I/O interfaces
On-chip distributed and block RAM
Clock management
Low power
Complete development system support