FPGA-presentatie deel 1

Download Report

Transcript FPGA-presentatie deel 1

FPGA : Field Programmable Gate Array
Reeds behandelde PLD-soorten:

PROM, PLA, PAL, GAL en CPLD

allen gebaseerd op de basisstructuur van AND-poorten en ORpoorten om logische functies samen te stellen






PROM met vaste AND-matrix en programmeerbare OR-matrix
PLA met programmeerbare AND- èn OR-matrix
PAL met programmeerbare AND-matrix en vaste OR-matrix
GAL met programmeerbare AND-matrix en vaste OR-matrix en vrij
configureerbare uitgangsblok om tientallen verschillende PALs te
kunnen vervangen
EPLD of CPLD met verschillende GAL-achtige blokken met
daartussen een programmable interconnect
gebruikte programmeertechnieken



Dirk Smets
KHLim - dep. IWT
opblaasbare zekeringen (snel, maar eenmalig)
EPROM (UV-wisbaar)
E²PROM (elektrisch wisbaar, eventueel ISP)
Digitale Elektronica
Programmeerbare Logica
DIA
1
FPGA : Field Programmable Gate Array
Volledig andere benadering : FPGA

Field Programmable Gate Array




Input/Output
Block
is niet meer gebaseerd op de basisstructuur met AND- en OR-matrix om
logische functies samen te stellen
is daarentegen opgebouwd als een array
(matrix) van allemaal bouwblokjes
waarin beperkte functies kunnen
ondergebracht worden (configurable
logic blocks)
tussen deze blokjes worden routing
channels voorzien om de nodige
verbindingen te kunnen realiseren
tenslotte is dit geheel omgeven door een
ring van input/output blocks, waarin de
verbindingen naar de pennen van het IC
worden gerealiseerd
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
FPGA
Routing
Channels
Configurable
Logic Block
DIA
2
FPGA : Field Programmable Gate Array
Programmeertechniek bij de FPGA



Niet alleen de structuur van de FPGA is anders dan bij de voorheen
behandelde soorten, ook de manier om de FPGA te configureren
verschilt
FPGA hanteert SRAM-cellen als configuratiegeheugen
Dit heeft duidelijk nadelen :

SRAM is vluchtig


telkens de spanning wegvalt, is de FPGA zijn configuratie (denk
maar: zijn schema of zijn schakeling) kwijt
zal telkens opnieuw moeten geconfigureerd worden



Dirk Smets
KHLim - dep. IWT
vanuit een vast geheugen
vanuit een externe PC
...
Digitale Elektronica
Programmeerbare Logica
DIA
3
FPGA : Field Programmable Gate Array
Programmeertechniek bij de FPGA



Niet alleen de structuur van de FPGA is anders dan bij de voorheen
behandelde soorten, ook de manier om de FPGA te configureren
verschilt
FPGA hanteert SRAM-cellen als configuratiegeheugen
Dit heeft duidelijk nadelen , maar ook voordelen :



SRAM kan een oneindig aantal keren opnieuw geprogrammeerd
worden (PROM: 0x, EPROM bv. 100x, E²PROM bv. 1000x)
FPGA kan (en moet) steeds in de schakeling geprogrammeerd
worden (ISP = In System Programmable)
FPGA is reprogrammable ‘in the flight’


Dirk Smets
KHLim - dep. IWT
bij productie kan de FPGA bv. aanvankelijk een bepaalde teststructuur bevatten
als de test in orde is, kan de eigenlijke schakeling gedownload
worden naar de FPGA
Digitale Elektronica
Programmeerbare Logica
DIA
4
FPGA : Field Programmable Gate Array
Xilinx


Het was de firma Xilinx die in 1985 als eerste op de
markt kwam met dergelijke SRAM-gebaseerde FPGA’s
Deze eerste reeks was de XC2000-familie

met slechts 2 componenten:




XC2064 met 64 blokjes (8x8 matrix)
XC2018 met 100 blokjes (10x10 matrix)
aanvankelijk gebruikte Xilinx voor deze componenten de naam
LCA = Logic Cell Array
ook al zijn deze componenten inmiddels reeds enige tijd
‘discontinued’, toch bekijken we de inwendige opbouw ervan
om een duidelijk begrip van de principiële werking van de
FPGA’s te verkrijgen
R
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
DIA
5
FPGA : Field Programmable Gate Array
R
Basic FPGA Architecture
IOB =
CLB =
INPUT/OUTPUT
BLOCK
CONFIGURABLE
LOGIC BLOCK
PROGRAMMABLE
INTERCONNECT
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
DIA
6
FPGA : Field Programmable Gate Array
R

XC2000-reeks : CLB
CLB = Configurable Logic Block

hierin moet de logica gerealiseerd worden


elke CLB zelf moet volledig vrij configureerbaar zijn
kan zowel een combinatorische als een sequentiële schakeling (of beide) bevatten
X
O U T PU T S
IN PU T S
A
B
C
D
G
COMB.
L O G IC
Y
S
F
D
Q
C
R
K
Dirk Smets
KHLim - dep. IWT
C LO C K
Digitale Elektronica
Programmeerbare Logica
DIA
7
FPGA : Field Programmable Gate Array
R


XC2000-reeks : CLB - comb
Voor het realiseren van de combinatorische logica gebruikt
men niet meer de gekende structuur met AND- en OR-poorten,
maar wel een LUT = Look Up Table
een LUT is eigenlijk een stukje RAM-geheugen, in dit geval
met 4 adreslijnen (A,B,C,D) en een data-uitgang
g e h e u g e n 1 6 *1

hiermee kunnen willekeurige functies gerealiseerd worden
(zie ook PLD-presentatie 1 : (P)ROM als functiegenerator)
S0
S1
S2
S3
S4
X
IN PU T S
A
B
C
D
G
COMB.
L O G IC
Y
A
LOOK-UP TABLE
B
D
C
S
F
Q
D
C
ADRES DECODE R
( 1 -u i t - 1 6 )
S5
O U T PU T S
S6
S7
S8
S9
S 10
S 11
R
S 12
S 13
S 14
S 15
K
Dirk Smets
KHLim - dep. IWT
C LO C K
OUT
Digitale Elektronica
Programmeerbare Logica
DIA
8
FPGA : Field Programmable Gate Array
R

XC2000-reeks : LUT in CLB
Door speciale interne voorzieningen kan men met deze LUT
verschillende functies realiseren :



ofwel twee keer dezelfde functie van 4 variabelen
ofwel twee onafhankelijke functies van 3 variabelen
ofwel een dynamische selectie tussen twee onafhankelijke functies
van 3 variabelen
A
B
A
AN Y
F U N C T IO N
OF 3
VAR I ABLES
B
C
F
C
AN Y
F U N C T IO N
OF 3
VAR I ABLES
F
AN Y
F U N C T IO N
OF 3
VAR I ABLES
G
D
F
A
B
C
AN Y
F U N C T IO N
OF 4
VAR I ABLES
D
Q
Q
A
A
G
Q
D
AN Y
F U N C T IO N
OF 3
VAR I ABLES
B
C
G
D
D
Q
Dirk Smets
KHLim - dep. IWT
C
Digitale Elektronica
Programmeerbare Logica
Q
DIA
9
FPGA : Field Programmable Gate Array
R
XC2000-reeks : CLB - seq
Voor het realiseren van het sequentiële gedeelte van de logica
is er een flipflop voorzien in de CLB





deze kan geprogrammeerd worden als een niveau-opererende D-latch of als
een flank-getriggerde D-flipflop
de klokingang kan hierbij komen van de speciale klokingang K, van de
universele ingang C of van de uitgang G van de (zelf gerealiseerde) functie
de klok is naar keuze actief op stijgende of dalende flank
ook de aansturing van de asynchrone PRESET- en CLEAR-ingangen kan per
CLB apart geconfigureerd worden
A
F
X
SET
OUTPUTS
INPUTS
A
B
C
D
G
F
Y
COMB.
LOGIC F
D
S
K
C
Q
C
D
Q
C
G
R ES
R
D
K
Dirk Smets
KHLim - dep. IWT
G
CLOCK
Digitale Elektronica
Programmeerbare Logica
DIA
10
FPGA : Field Programmable Gate Array
R
XC2000-reeks : IOB
Het IOB = Input/Output Block moet de verbinding verzorgen
tussen de interne logica (CLB’s) en de pinnen van het IC
Bijna elke pin van het IC kan naar keuze gebruikt worden
als ingang of als uitgang
Gebruik als uitgang:



Het signaal dat van een CLB komt en
naar een (uitgangs)pin moet gevoerd
worden, passeert via een tri-state buffer



voor een vaste uitgang mag de Output
Enable ingang van de tri-state buffer
permanent ge-enabled zijn
voor een echte tri-state uitgang wordt de
Output Enable ingang van de buffer
aangestuurd door de TS-lijn, die
afkomstig kan zijn van eender welke CLB
de uitgangsbuffer kan een stroom leveren
van 4 mA, zodat we kunnen spreken van
‘high fan-out CMOS or TTL-compatible
signal levels’
OFF
TS
TS
ON
(O U T PU T EN ABLE)
O
OU
UT
P IN
IN
D
Q
C
I/O C LO C K
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
DIA
11
FPGA : Field Programmable Gate Array
R
XC2000-reeks : IOB
Het IOB = Input/Output Block moet de verbinding verzorgen
tussen de interne logica (CLB’s) en de pinnen van het IC
Bijna elke pin van het IC kan naar keuze gebruikt worden
als ingang of als uitgang
Gebruik als ingang:



Het signaal moet van de (ingangs)pin via
een buffer doorgevoerd worden naar een
ingang van een CLB


TS
dit kan rechtstreeks gebeuren
ofwel kan het ingangssignaal onmiddellijk
ingeklokt worden in een D-flipflop


OFF
hierbij gebruiken de I/O-blokken die langs
dezelfde zijde van de chip liggen, ook
dezelfde I/O-clock lijn
ON
(O U T PU T EN ABLE)
OUT
P IN
de drempelspanning (threshold voltage)
van de ingangsbuffer kan naar keuze compatibel genomen worden met TTL (1.4 V) of
met CMOS (2.2 V)
IN
D
Q
C
I/O C
CLOC
LO CK
K
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
DIA
12
FPGA : Field Programmable Gate Array
R



Uiteraard moet er een groot aantal verbindingen kunnen gelegd worden
tussen de verschillende blokjes (CLB’s) enerzijds en tussen de CLB’s en
de IOB’s anderzijds
Deze verbindingen kunnen we in drie niveaus rangschikken:
direct interconnect




alleen tussen naburige blokjes
korte, snelle verbindingen
beperkte mogelijkheden
CLB
CLB
general purpose interconnect





XC2000-reeks : interconnecties
horizontale en verticale routing kanalen
verbindingen via ‘switch matrices’
zeer veel mogelijkheden
vertraging afhankelijk van ‘routing’
SWITCH
MATRIX
speciale ‘longlines’


minimale ‘skew’ (tijdsverschuiving)
speciaal voor kloksignalen
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
CLB
CLB
DIA
13
FPGA : Field Programmable Gate Array
R
XC2000 : direct interconnect
deze rechtstreekse verbindingen zijn de
kortste en dus ook de snelste verbindingen
ze zijn echter alleen mogelijk tussen
PIP =
aangrenzende blokjes
Programmable


de verbindingsmogelijkheden zijn
uiteraard zeer beperkt:



de C of D-ingang van het blokje net
erboven
en/of met de A- of B-ingang van van het
blokje net eronder
de Y-uitgang van een CLB kan alleen
verbonden worden met de B-ingang van
het blokje net rechts ervan

SW IT CH
MAT RIX
A
B
C


CLB
K
D IR EC T
IN T ER C ON N EC T
de ‘rand’-CLB’s kunnen rechtstreeks
aansluiten op de IOB’s:

CLB
Interconnection
Point
de X-uitgang van een CLB kan verbonden
worden met


CLB
X
CLB
Y
D
SW IT CH
MAT RIX
CLB
CLB
links als ingang
rechts als uitgang
boven en onder als ingang of als uitgang
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
DIA
14
FPGA : Field Programmable Gate Array
R




XC2000 : general purpose interconnect
de universele verbindingen moeten zowat alle
mogelijke aansluitpunten (over de hele chip
verspreid) ook effectief kunnen verbinden
hiervoor zijn er horizontale en verticale routing
kanalen voorzien, waarop de verschillende inen uitgangen van elke CLB kunnen
aangesloten worden
op elk ‘kruispunt’ van de kanalen staat er een
‘switch matrix’, die ervoor kan zorgen dat de
juiste (horizontale en/of verticale) lijnsegmenten met elkaar verbonden worden
LB
CL
B
SWIT
SW IT CH
MAT RIX
A
B
C
CLB
K
C LB
LB
D
SWIT
SW IT CH
MAT RIX
LB
CL
B
Digitale Elektronica
Programmeerbare Logica
X
Y
in nevenstaand voorbeeld gaan we de Yuitgang van een CLB verbinden met (verschillende) ingangen van drie andere CLB’s
Dirk Smets
KHLim - dep. IWT
C LB
LB
C LB
LB
DIA
15
FPGA : Field Programmable Gate Array
R


XC2000 : general purpose interconnect
Om deze universele verbindingen mogelijk te
maken, moeten er dus zeer veel verbindingsmogelijkheden zijn van de CLB in/uitgangen
naar de horizontale en verticale lijnen
CLB
CLB
Deze blokjes noemt men PIP’s :
SW IT CH
MAT RIX
PIP =
Programmable Interconnection Point
A
B
A
B

De implementatie-software zal voor elk
gebruikt signaaltje moeten gaan bepalen op
welk lijnsegment dit aangesloten moet worden
en dus ook welke PIP ‘open’ en welke ‘dicht’
moet zijn
C
CLB
K
Digitale Elektronica
Programmeerbare Logica
X
C
CLB
Y
D
K
D
Y
SW IT CH
MAT RIX
CLB
Dirk Smets
KHLim - dep. IWT
X
CLB
DIA
16
FPGA : Field Programmable Gate Array
R
XC2000 : general purpose interconnect
Op de kruispunten tussen de horizontale en
verticale verbindingslijnen zitten er “switch
matrices”

S W IT C H
M A T R IX
In zo’n “switch matrix” zitten er weer enorm
veel verbindingsmogelijkheden




1
3
S W IT C H
M A T R IX
7
A
B
X
C
Voor één zo’n deel-schakelmatrix geven we
even de verschillende aansluitmogelijkheden
vanuit elk aansluitingspunt
Dirk Smets
KHLim - dep. IWT
2
8
In de XC2000 is de schakelmatrix eigenlijk
opgesplitst in twee verschillende schakelmatrices
Zoals u ziet, in totaal zijn dit weeral zeer veel
mogelijkheden. En elke aparte mogelijke
verbinding zal door één bit kunnen in- of
uitgeschakeld worden.
S W IT C H
M A T R IX
K
6
S W IT C H
M A T R IX
Digitale Elektronica
Programmeerbare Logica
D
Y
4
5
S W IT C H
M A T R IX
DIA
17
FPGA : Field Programmable Gate Array
R




XC2000 : general purpose interconnect
Deze ‘general purpose interconnect’ verbindingen maken het mogelijk om elk gewenst
punt van de FPGA met een (of meer) ander(en)
te connecteren
Hiervoor wordt dus gebruik gemaakt van de
horizontale en verticale routing-kanalen, met op
elk kruispunt een universele ‘switch matrix’.
Het nadeel van dit principe is wel dat de signalen een grotere vertraging zullen krijgen omdat
ze via talrijke pass-transistoren passeren.
De propagation delay zal afhankelijk zijn van de
gevolgde weg, de afgelegde afstand en het
aantal gepasseerde pass-transistoren en PIPs.
Het ‘place and route’ algoritme van de
implementatie-software zal een belangrijke
invloed hebben op uiteindelijke kwaliteit van de
verkregen schakeling!
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
C LB
C LB
SWIT CH
MAT RIX
A
B
C
CLB
X
C LB
Y
K
D
SWIT CH
MAT RIX
C LB
C LB
DIA
18
FPGA : Field Programmable Gate Array
R

XC2000 : long lines
Voor bv. kloksignalen zijn de universele verbindingen absoluut geen goede oplossing:
er kan immers veel te veel ‘skew’ (tijdsverschuiving) optreden tussen de klokingangen van flipflops die ver van elkaar af
liggen op de chip
Speciaal voor dit soort signalen zijn de long
lines of global interconnects voorzien.

CLB
SW IT CH
MAT RIX
Het aantal aansluitmogelijkheden van de
CLB’s op deze long lines is eerder beperkt.
Bovendien passeren deze lijnen niet via de
schakelmatrices.
Op die manier zal de resulterende tijdsvertraging heel wat kleiner zijn dan bij de
universele verbindingen.
Dirk Smets
KHLim - dep. IWT
Digitale Elektronica
Programmeerbare Logica
Horizontale
en verticale
Long Lines
A
B
C

CLB
CLB
K
X
CLB
Y
D
SW IT CH
MAT RIX
CLB
CLB
DIA
19