Andrés Upegui Logic Systems Laboratory – LSL EPFL

25
DYNAMIC PARTIAL RECONFIGURATION Andrés Upegui Logic Systems Laboratory – LSL EPFL

Transcript of Andrés Upegui Logic Systems Laboratory – LSL EPFL

Page 1: Andrés Upegui Logic Systems Laboratory – LSL EPFL

DYNAMIC PARTIAL RECONFIGURATION

Andrés UpeguiLogic Systems Laboratory – LSL

EPFL

Page 2: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 2

Reconfigurable computing

♦ Methods for execution of algorithms:• hardwired technology: high performance• software-programmed microprocessors: high flexibility

♦ Reconfigurable computing is intended to fill the gap between hard and soft, achieving potentially much higher performance than software, while maintaining a higher level of flexibility than hardware (Compton and Hauck, “Reconfigurable computing”, ACM Computing Surveys, June 2002)

♦ Reconfigurable computing:• systems incorporating some form of hardware programmability• when we talk about reconfigurable computing we are usually talking

about FPGA-based systems design

Page 3: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 3

FPGAs

programmableinterconnections

programmablefunctions

configuration

I/O celllogic cell

Page 4: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 4

Synthesis methodology

configuration bit-stringconfiguration bit-string

schematicschematic

graphic editor VHDL

placement

routing

partition

Page 5: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 5

Problèmes lié à ce processus

♦ Processus statique♦ Impossibilité de faire une génération aléatoire sur certain

paramètres avec cette méthodes -> comment faire algogénétique ? Simulation ou micro-controleur uniquement

♦ Comment faire une reconfiguration partielle ? Passer par FPGA editor, faire une design basé sur la notion de module.

Page 6: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 6

Dynamic Partial Reconfiguration

♦ Dynamic partial reconfiguration is done when the device is active. Except during some interdesign communication, certain areas of the device can be reconfigured while other areas remain operational and unaffected by the reprogramming.

♦ Just two commercial options :• Xilinx Virtex families• Atmel FPGAs

♦ Both use partial configuration to achieve run-time reconfiguration.

Page 7: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 7

Configuration Column Example(XCV50)

Page 8: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 8

Reconfiguration timing

♦ Minimal times (SelectMap 50 MHz)♦ Header + frame(s) + dummy frame

Minimum reconfiguration time [µs]Device Bits per

frame 1 frame 1 LUT 1 CLB column Full Device

XCV50 384 2,88 17,28 48 1.388,16

4.374

10.970,72

58.658

XCV300 672 4,32 29,52 83,28

XCV800 1088 6,4 47,2 134,24

XCV1000 1248 7,2 54 153,84

Page 9: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 9

Changing LUTs configuration

♦ Two styles:• Open the routed design with FPGA editor, modify any LUT function or

memory content, generate a partial bitstream with bitgen –r.• Module based designs, where a full module changes between two

configurations.

Page 10: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 10

Layout

In order to design the internal logic, it must be used modular design

Page 11: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 11

Bus Macro

♦ Uses horizontal lines that connect CLBs. • Limits the size of reconfigurable modules: the width must be a

multiple of 4, and must be placed on columns multiple of 4.

Page 12: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 12

Applications♦ Neural networks design

FPGA

Mod

ule

1

Mod

ule

2

Mod

ule

n Different possible configurations for module n

Page 13: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 13

Applications

♦ Fuzzy systemsFuzzifi-cation

InferenceRules

Defuzzi-fication

BU

S M

AC

RO

BU

S M

AC

RO

Page 14: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 14

Other Applications

♦ Processor architecture

Rec

onfig

urab

leFu

nctio

nal-u

nit

VLIW Processor

BU

S M

AC

RO

Rec

onfig

urab

leFu

nctio

nal-u

nit

Rec

onfig

urab

leFu

nctio

nal-u

nit

BU

S M

AC

RO

BU

S M

AC

RO

Rec

onfig

urab

leFu

nctio

nal-u

nit

BU

S M

AC

RO

Page 15: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 15

Other Applications

♦ Filter implementation

Rec

onfig

urab

lest

age

1

Rec

onfig

urab

lest

age

2

Rec

onfig

urab

lest

age

3

Rec

onfig

urab

le

BU

S M

AC

RO

BU

S M

AC

RO

BU

S M

AC

RO

stag

e 4

Page 16: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 16

Another option: JBits

♦ JBits is a Java API used for describing circuits• Circuits are created when the java code is executed• Structural description• Blocks are generated in run-time, depending on: available area,

desired speed, …• RTP Cores: run-time parameterizable cores

♦ Advantages of JBits• Design Flow compatible with RTR (run-time reconfiguration)• Manipulation of configuration bitstreams.• Easy access to low level FPGA details

♦ Disadvantage: Research tool !!!!! – not well documented

Page 17: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 17

JBits : qu’est-ce que c’est ?

♦ JBits est une API Java pour décrire des circuits• Description structurel, très bas niveau (LUT, MUX)• Circuits générés sous forme de bitstream lors de

l’exécution du code Java• Peut également générer d’autres formats (xdl, ncd, et des

fichiers destinés aux outils JBits) • Existe en v.2.8 pour Virtex et v.3.0 pour Virtex-II• RTPCores : run-time parameterizable cores : permet une

encapsulation des appels bas niveau

Page 18: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 18

JBits : Design Flow et architecture

Architecture sommaire de l’API JBits

Page 19: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 19

JBits : Les outils

♦ XHWIF : Xilinx HardWare InterFace API : interfacepermettant la communication avec des « board » FPGA.

♦ VirtexDS : Simulateur relié à XHWIF permettant de tester des bitstreams sans utiliser le matériel.

♦ BoardScope : outil interactif pour le debut de design sur Virtex ou sur VirtexDS

♦ WaveForm Viewer : visualisation de diagramme de temps des RTPCores.

Page 20: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 20

JBits : Les outils : Boardscope

Page 21: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 21

Evaluation de JBits : Avantages

♦ Dynamisme, possibilité de générer à la volée des configurations

♦ Reconfiguration partielle dynamique très aisée et pensée dans le design flow

♦ Gain de temps : compilation et exécution rapide, processus moins lourd qu’avec VHDL

♦ Manipulation directe de bitstream♦ Accès bas niveau au FPGA facilité

Page 22: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 22

Evaluation de JBits : Désavantages

♦ Peu documenté, peu d’aide, peu d’exemples♦ Communauté en quasi déliquescence :

• Attente d’une version compatible Virtex-II• Passage pénible de 2.8 à 3.0• Cela commence à aller mieux

♦ Surtout : politique peu claire de la part de Xilinx:• Pas de support officiel• Aucune certitude sur la poursuite du développement• Pas d’implication d’un point de vue médiatique• => Peu de personnes prêtent à prendre le risque• => Cercle vicieux

Page 23: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 23

Demo: A Dynamic Partially Reconfigurable Counter

Reg

+1

clkreset

Next value

Current value

en

Page 24: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 24

Demo: A Dynamic Partially Reconfigurable Counter

m2m1

BMReg

+1

clkreset

en

Page 25: Andrés Upegui Logic Systems Laboratory – LSL EPFL

Andres Upegui - Eduardo SanchezEcole Polytechnique Fédérale de LausannePage 25

Demo: A Dynamic Partially Reconfigurable Counter

BM

m2m1

Reg

+1

clkreset

m2

-1 en