WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mise en oeuvre de l'auto-reconfiguration partielle et dynamique sur FPGA Xilinx Virtex-II pro

( Télécharger le fichier original )
par Guy WASSI
Université Pierre et Marie Curie (Paris VI Jussieu) - Master informatique industrielle et systèmes automatisés 2005
  

sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Mémoire :

Mise en OEuvre de l'auto reconfiguration partielle

et dynamique sur un FPGA Xilinx Virtex-II Pro

Présenté par :
Guy WASSI LEUPI

En vue de l'obtention du :

Spécialité :

Informatique Industrielle et Systèmes

Automatisés (IISA)

Laboratoire d'accueil

ETIS
ENSEA - Université de Cergy

Soutenu le 07 Mars 2006

Jury :

Michel Drouin, Président

Véronique Perdereau, Responsable de la formation

Amine Benkhelifa, Encadrant de stage

RESUME

Pour faire face à la complexité algorithmique et aux exigences de flexibilité des applications futures (systèmes de radio Communication 3G et 4G par exemple), de nouvelles approches doivent être envisagées dans la conception des architectures numériques. Dans ce contexte, les architectures reconfigurables dynamiquement présentent des atouts considérables car elles offrent le meilleur compromis Flexibilité/Performance. Les FPGAs (Field Programmable Gate Array) sont les composants reconfigurables les plus denses et flexibles, permettant des manipulations au niveau bit. Aujourd'hui, il existe des plateformes mixtes (FPGA et Processeur intégré dans un SOC unique une seule puce) permettant d'envisager l'auto-reconfiguration partielle du FPGA sous le contrôle de son processeur embarqué. Dans une telle configuration, la partie FPGA serait un accélérateur matériel dont les fonctionnalités évolueraient et s'adapteraient aux contextes, et ce sans interruption de service.

Mais les environnements de développement fournis par les constructeurs de telles plateformes n'intègrent pas encore le flot de conception des applications auto-reconfigurables. Certes les outils tels que JBits API (Application Programming Interface) permettent de manipuler sélectivement les ressources configurables des FPGAs Xilinx à partir d'un PC. Mais JBits nécessite que JVM (Java Virtuel Machine) tourne sur le processeur hôte, ce qui peut ne pas être souhaitable dans le cas d'un système embarqué.

Ce rapport présente la mise en oeuvre d'une approche modulaire (Modular Design Flow) de l'auto-reconfiguration dynamique et partielle sur un FPGA Virtex-II Pro de Xilinx, le processeur PPC405 intégré reconfigurant dynamiquement et partiellement le FPGA via un port interne. Pour cela nous avons développé une application basée sur une API1 ICAP de Xilinx écrite en C et permettant de lire/écrire/modifier la mémoire de configuration du FPGA via l'interface interne ICAP (Internal Configuration Access Port). Bien entendu cette API est assez légère pour tourner sur le processeur PPC405 embarqué.

1 Application Programming Interface

SOMMAIRE

 

Sommaire

Abréviations

Liste des figures

Liste des tableaux

Remerciements

2
5

5

6
5

1

INTRODUCTION

8

1.1

Le Contexte

8

1.2

But du stage

9

1.3

Travaux similaires

10

1.4

Environnement de travail

10

1.5

Plan du rapport

11

2

FPGA, RECONFIGURATION DYNAMIQUE ET CONCEPTION DE SYSTEMES

12

 

EMBARQUES

 

2.0

Introduction

12

2.1

Implémentation logicielle vs implémentation matérielle d'une application

14

2.1.1

Implémentation logicielle

14

2.1.2

Implémentation matérielle

14

2.1.3

Partitionnement Matériel / Logiciel

15

2.2

Architecture des FPGAs (Field Programmable Gate Array)

16

2.2.1

Introduction

16

2.2.2

Principe de fonctionnement et Architecture Interne des FPGAs

16

2.2.3

Exemple d'architecture de FPGA : la série Virtex-II Pro de Xilinx

18

2.2.4

Détails de quelques unes des ressources du Virtex-II Pro

19

a)

Les CLBs (Configurable Logic Blocks - Blocs de logiques configurables)

19

b)

Les SLICES

19

c)

Les blocs multiplieurs 18 x 18 bits

20

 

d)

Le processeur PowerPC 405

21

2.3

Les divers scenarii de reconfiguration des FPGAs

22

2.3.1

Les modèles de reconfiguration

22

a)

La reconfiguration à contexte unique (Single Context)

22

b)

La reconfiguration multi-contextes (Multi-Context)

22

c)

La reconfiguration partielle ( Partially Reconfigurable)

23

 

2.3.2

Configuration du Virtex-II Pro de Xilinx

24

a)

Vue en couche d'un FPGA

24

b)

 

Organisation de la mémoire de configuration et son influence sur la délimitation des modules reconfigurables

25

c)

Les modes de reconfiguration

27

d)

Le port de configuration interne ICAP

28

e)

Analyse des trames de configuration

30

3

METHODOLOGIES DE MISE EN OEUVRE DE L'AUTO-RECONFIGURATION

32

 

PARTIELLE ET DYNAMIQUE SUR LE VIRTEX-II PRO

 

3.1

Méthodologie de conception

33

3.1.1

Flot de conception standard (Ordinary Design Flow)

34

3.1.2

Le Flot de conception incrémentale (Incremental Design Flow)

35

a)

La synthèse incrémentale

36

b)

Le Placement et Routage (P&R) Incrémental

36

3.1.3

Le Modular Design Flow pour la reconfiguration partielle

36

a)

Présentation

36

b)

Modular Design pour la reconfiguration partielle

37

 

3.2

Principe de l'Auto-Reconfiguration partielle et dynamique

38

3.2.1

De la reconfiguration partielle

38

3.2.2

De l'auto-reconfiguration dynamique

39

3.3

Exemple de mise en oeuvre d'une application auto-reconfigurable sous ISE et EDK...

39

3.3.0

Introduction

39

3.3.1

La plateforme matérielle de développement, la carte Virtex-II Pro de Memec Design

40

3.3.2

Conception sous EDK du module << Système a processeur »

42

a)

Architecture du système

42

b)

Création de la plateforme matérielle du système sous Xilinx EDK

43

c)

Création de la plateforme logicielle

45

d)

Gestion de la mémoire et génération du linker script

45

e)

Implémentation du système à processeur

46

3.3.3

Conception sous ISE du design global <<Top » suivant le Modular Design Flow

47

a)

Création des codes sources

47

b)

Etape de synthèse des fichiers sources

48

 

c)

Etape d'Initial Budgetting

50

d)

Etape d'Active Module Implémentation

51

e)

Etape de Final Assembly

52

f)

Etape de génération du bistream final

52

3.4

Récapitulatifs

53

4

DIFFICULTES RENCONTREES, CONCLUSION ET PERSPECTIVES

55

4.1

Difficultés rencontrées

55

4.1.1

 

Les restrictions physiques à la reconfiguration partielle des FPGAs Xilinx

55

4.1.2

Les outils

56

4.2

Conclusion

57

4.3

Perspectives

58

4.3.1

Implémenter les bus macros pour les connexions inter-modules

58

4.3.2

Utiliser XMS , le fichier de système de Xilinx

58

4.3.3

Implanter l'interface de Ethernet

58

4.3.4

OS temps réels pour la gestion de la ressource FPGA

59

A.

ANNEXES

60

A-1

ANNEXE 1: Les Outils

60

A-1.1

L'outil Floorplanner (Editeur de contraintes de placement, cas de 2 modules)

60

A-1.2

FPGA Editor (Routage avec bitstream complet)

60

A-2

ANNEXE 2: Procédure de création du fichier SYSTEM.BMM

61

A-2.1

Fichier system_stub.bmm

61

A-2.2

Le fichier system.bmm

62

A-3.

ANNEXE 3: Utilisation de la Plate-forme de démonstration

62

A-3.1

Génération des bitstreams à partir des du répertoire Modular

62

A-3.2

Paramètres de configuration de l'HyperTerminal

63

A-3.3

Message d'accueil de la demo

64

A-3.4

Exemple de début et fin de fichier RBT (module compteur_rapide)

65

A-4.

ANNEXE 4 : Listing des programmes

66

A-4.1

Le code VHDL du Top (top.vhd)

66

A-4.2

Code VHDL d'un design du module reconfigurable (compteur_lent.vhd)

69

A-4.3

Fichier de contraintes (top.ucf)

71

A-4.4

Les codes sources des programmes développés en C pour le processeur PPC405.

73

A-4.5

Les fichiers de commande .batch pour le Modular Design Flow

82

 

RÉFÉRENCES BIBLIOGRAPHIQUES

85

sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy