Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable...

19
Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 Reeds behandelde PLD-soorten: PROM, PLA, PAL, GAL en CPLD allen gebaseerd op de basisstructuur van AND-poorten en OR-poorten 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 opblaasbare zekeringen (snel, maar eenmalig) EPROM (UV-wisbaar) E²PROM (elektrisch wisbaar, eventueel ISP)

Transcript of Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable...

Page 1: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

1DIA

1

Reeds behandelde PLD-soorten: PROM, PLA, PAL, GAL en CPLD

allen gebaseerd op de basisstructuur van AND-poorten en OR-poorten 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 opblaasbare zekeringen (snel, maar eenmalig) EPROM (UV-wisbaar) E²PROM (elektrisch wisbaar, eventueel ISP)

Page 2: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

2DIA

2

Volledig andere benadering : FPGA Field Programmable Gate Array

is niet meer gebaseerd op de basis-structuur met AND- en OR-matrix om logische functies samen te stellen

FPGA

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

FPGAFPGAFPGA

RoutingChannels

ConfigurableLogic Block

Input/OutputBlock

Page 3: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

3DIA

3

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

vanuit een vast geheugen vanuit een externe PC ...

Page 4: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

4DIA

4

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 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’ bij productie kan de FPGA bv. aanvankelijk een bepaalde test-

structuur bevatten als de test in orde is, kan de eigenlijke schakeling gedownload

worden naar de FPGA

, maar ook voordelen :

Page 5: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

5DIA

5

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

Page 6: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

6DIA

6

Basic FPGA Architecture

CLB =CONFIGURABLELOGIC BLOCK

IOB =INPUT/

OUTPUTBLOCK

PROGRAMMABLE

INTERCONNECT

R

Page 7: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

7DIA

7

XC2000-reeks : CLB CLB = Configurable Logic Block

COMB.LOGIC F

GABCD

INPUTS

DS

C

R

Q

K CLOCK

Y

X

OUTPUTS

R

hierin moet de logica gerealiseerd worden elke CLB zelf moet volledig vrij configureerbaar zijn

kan zowel een combinatorische als een sequentiële schake-ling (of beide) bevatten

Page 8: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

8DIA

8

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

hiermee kunnen willekeurige functies gerealiseerd worden

(zie ook PLD-presentatie 1 : (P)ROM als functiegenerator)

COMB.LOGIC F

GABCD

INPUTS

DS

C

R

Q

K CLOCK

Y

X

OUTPUTS

LOOK-UP TABLE

AD

RE

SD

EC

OD

ER

(1-u

it-16

)

geheugen 16*1

S0

S1

S2

S3

S4

S5

S6

S7

S8

S9

S10

S11

S12

S13

S14

S15

A

B

C

D

OUT

R

Page 9: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

9DIA

9

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

R

ANYFUNCTION

OF 4VARIABLES

ABCD

Q

F

G

ANYFUNCTION

OF 3VARIABLES

A

B

C

D

Q

F

ANYFUNCTION

OF 3VARIABLES

A

B

C

D

Q

G

ANYFUNCTION

OF 3VARIABLES

A

C

D

Q

F

ANYFUNCTION

OF 3VARIABLES

A

C

D

Q

G

B

ofwel twee onafhankelijke functies van 3 variabelen ofwel een dynamische selectie tussen twee onafhankelijke functies van 3 variabelen

Page 10: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

10DIA

10

XC2000-reeks : CLB - seq Voor het realiseren van het sequentiële gedeelte van de logica

is er een flipflop voorzien in de CLB

R

CO M B.LO G IC F

GABCD

INPUTS

DS

C

R

Q

K CLOCK

Y

X

OUTPUTS

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

F

KC

D G

A F

G

Q

RES

SET

D

C

Page 11: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

11DIA

11

XC2000-reeks : IOBR

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

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

Gebruik als uitgang:

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

PIN

D Q

C

OFF

ON

OUT

IN

I/O CLOCK

TS

(OUTPUT ENABLE)

PIN

D Q

C

OFF

ON

OUT

IN

I/O CLOCK

TS

(OUTPUT ENABLE)

PIN

D Q

C

OFF

ON

OUT

IN

I/O CLOCK

TS

(OUTPUT ENABLE)

PIN

D Q

C

OFF

ON

OUT

IN

I/O CLOCK

TS

(OUTPUT ENABLE)

de uitgangsbuffer kan een stroom leveren van 4 mA, zodat we kunnen spreken van ‘high fan-out CMOS or TTL-compatible signal levels’

Page 12: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

12DIA

12

XC2000-reeks : IOBR

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

Het signaal moet van de (ingangs)pin via een buffer doorgevoerd worden naar een ingang van een CLB

dit kan rechtstreeks gebeuren

Gebruik als ingang:

ofwel kan het ingangssignaal onmiddellijk ingeklokt worden in een D-flipflop

PIN

D Q

C

OFF

ON

OUT

IN

I/O CLOCK

TS

(OUTPUT ENABLE)

PIN

D Q

C

OFF

ON

OUT

IN

I/O CLOCK

TS

(OUTPUT ENABLE)

PIN

D Q

C

OFF

ON

OUT

IN

I/O CLOCK

TS

(OUTPUT ENABLE)

hierbij gebruiken de I/O-blokken die langs dezelfde zijde van de chip liggen, ook dezelfde I/O-clock lijn PIN

D Q

C

OFF

ON

OUT

IN

I/O CLOCK

TS

(OUTPUT ENABLE)

de drempelspanning (threshold voltage) van de ingangsbuffer kan naar keuze com-patibel genomen worden met TTL (1.4 V) of met CMOS (2.2 V)

Page 13: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

13DIA

13

XC2000-reeks : interconnectiesR

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

direct interconnect alleen tussen naburige blokjes korte, snelle verbindingen beperkte mogelijkheden

CLB CLB

CLB CLB

CLB CLB

CLB CLB

Deze verbindingen kunnen we in drie niveaus rangschikken:

general purpose interconnect horizontale en verticale routing kanalen verbindingen via ‘switch matrices’ zeer veel mogelijkheden vertraging afhankelijk van ‘routing’

CLB CLB

CLB CLB

SW ITCHM ATRIX

speciale ‘longlines’ minimale ‘skew’ (tijdsverschuiving) speciaal voor kloksignalen

CLB CLB

CLB CLB

SW ITCHM ATRIX

Page 14: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

14DIA

14

XC2000 : direct interconnectR

deze rechtstreekse verbindingen zijn de kortste en dus ook de snelste verbindingen

ze zijn echter alleen mogelijk tussen aangrenzende blokjes

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

de verbindingsmogelijkheden zijn uiteraard zeer beperkt:

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

de Y-uitgang van een CLB kan alleen verbonden worden met de B-ingang van het blokje net rechts ervan

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

DIRECTINTERCONNECT

PIP = Programmable Interconnection

Point

de ‘rand’-CLB’s kunnen rechtstreeks aansluiten op de IOB’s:

links als ingang rechts als uitgang boven en onder als ingang of als uitgang

de X-uitgang van een CLB kan verbonden worden met

de C of D-ingang van het blokje net erboven

en/of met de A- of B-ingang van van het blokje net eronder

Page 15: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

15DIA

15

XC2000 : general purpose interconnectR

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 in- en uitgangen van elke CLB kunnen aangesloten worden

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

op elk ‘kruispunt’ van de kanalen staat er een ‘switch matrix’, die ervoor kan zorgen dat de juiste (horizontale en/of verticale) lijn-segmenten met elkaar verbonden worden

in nevenstaand voorbeeld gaan we de Y-uitgang van een CLB verbinden met (verschil-lende) ingangen van drie andere CLB’s

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

Page 16: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

16DIA

16

XC2000 : general purpose interconnectR

Om deze universele verbindingen mogelijk te maken, moeten er dus zeer veel verbindings-mogelijkheden zijn van de CLB in/uitgangen naar de horizontale en verticale lijnen

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

A

X

YD

K

C

B

Deze blokjes noemt men PIP’s :PIP =

Programmable Interconnection Point

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

Page 17: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

17DIA

17

XC2000 : general purpose interconnectR

Op de kruispunten tussen de horizontale en verticale verbindingslijnen zitten er “switch matrices”

A

X

YD

K

C

B

SWITCHMATRIX

SWITCHMATRIX

SWITCHMATRIX

SWITCHMATRIX

In zo’n “switch matrix” zitten er weer enorm veel verbindingsmogelijkheden

SWITCHMATRIX

In de XC2000 is de schakelmatrix eigenlijk opgesplitst in twee verschillende schakel-matrices

Voor één zo’n deel-schakelmatrix geven we even de verschillende aansluitmogelijkheden vanuit elk aansluitingspunt

1 2

3

4

56

7

8

1 2

3

4

56

7

8

1 2

3

4

56

7

8

1 2

3

4

56

7

8

1 2

3

4

56

7

8

1 2

3

4

56

7

8

1 2

3

4

56

7

8

1 2

3

4

56

7

8

1 2

3

4

56

7

8

1 2

3

4

56

7

8

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.

Page 18: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

18DIA

18

XC2000 : general purpose interconnectR

Deze ‘general purpose interconnect’ verbin-dingen maken het mogelijk om elk gewenst punt van de FPGA met een (of meer) ander(en) te connecteren

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

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 signa-len 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!

Page 19: Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica FPGA : Field Programmable Gate Array DIA 1 DIA 1 Reeds behandelde PLD-soorten:

Dirk SmetsKHLim - dep. IWT

Digitale ElektronicaProgrammeerbare Logica

FPGA : Field Programmable Gate Array

DIA

19DIA

19

XC2000 : long linesR

Voor bv. kloksignalen zijn de universele ver-bindingen absoluut geen goede oplossing: er kan immers veel te veel ‘skew’ (tijds-verschuiving) optreden tussen de klokin-gangen van flipflops die ver van elkaar af liggen op de chip

CLB CLB

CLB

CLB CLB

CLB X

Y

AB

C

K

D

SWITCHMATRIX

SWITCHMATRIX

Speciaal voor dit soort signalen zijn de long lines of global interconnects voorzien.

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 tijdsver-traging heel wat kleiner zijn dan bij de universele verbindingen.

Horizontale en verticaleLong Lines

Horizontale en verticaleLong Lines