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
  

précédent 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

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

Introduite en 2002 et fabriquées en technologie CMOS 1.5V/130nm, la série Virtex-II Pro vise les fortes densités (jusqu'à 10 millions de portes). Elle intègre en dur de un à quatre coeurs de processeur RISC IBM PowerPC 405 (jusqu'à 400Mhz) ainsi que des blocs optimisés pour les applications orientées traitement du signal (blocs de RAMs de 18 Ko et de multiplieurs 18x18, etc...). Outre la logique programmable, elle comprend ainsi (Error! Reference source not found.):

- Des entrées/sorties configurables en entrée, sortie ou bidirectionnel, supportant de nombreux standards (LDVS, PCI-X, differentiel,...) et interfaçant les pins externes du circuit et la logique reconfigurable interne.

- Des blocs multiplieurs 18x18 bits cablées et donc rapides et de faible consommation.

- Des CLBs (Configurables Logics Blocs - Figure 7) qui sont des blocs de ressources programmables permettant d'implémenter des fonctions combinatoires et séquentielles.

- Des émetteurs/récepteurs série haut débit (RocketIO) supportant des débits atteignant 3,125 Gb/s par canal (6,25 Gb/s pour les RocketIO X).

- Des blocs de mémoire selectRAM qui sont des RAM dual port de 18 kb, chacune programmable en mémoire de 16K X 1 bit à 512 x 36 bits, et cascadables pour former des blocs mémoires de taille plus grande.

- Des blocs DCMs (Digital Clock Manager) permettant la synthèse de fréquences (multiplication et divivion d'horloge), l'auto-calibration, la compensation des retards pour une parfaite distribution d'horloge, etc...

1 On peut distinguer les FPGAs par leur type de mémoire de configuration (fuse, anti-fuse, EEPROM, E2PROM/Flash, SRAM). Le type détermine la reconfigurabilité du FPGA. Par exemple les FPGAs à SRAM peuvent facilement être reconfigurés partiellement et dynamiquement.

Table 2 : FPGAs de la famille Virtex-II Pro et leurs principales ressources

(la colonne grisée montre les éléments du FPGA XVP7 que nous avons utilisée)

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

Nous détaillons ci-dessous les caractéristiques qui permettent de mieux comprendre les règles de reconfiguration du Virtex-II Pro.

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

Un FPGA Xilinx comprend un certain nombre de colonnes de CLBs. Chaque CLB comprend 4 Slices identiques et 2 buffers tri-states (TBUF, Figure 7) . Chaque colonne de CLB comprend 2 colonnes de Slices. Chaque CLB est relié à une matrice d'interconnexion (switch matrix) pour accéder à la matrice générale de routage. Les Slices d'un même CLB sont reliés entre eux et aux CLBs voisins par des interconnexions directes et rapides (fast connects to neighbors, Figure 7).

b) Les SLICES (Figure 78) Chaque Slice contient :

- Deux générateurs de fonction (F & G); ce sont des LUTs (Look-Up-Table) pouvant implémenter soit une fonction logique à 4 entrées, soit une mémoire SelectRAM 16 bits (dans ce cas on parle de distributed selectRam) , ou encore un registre à décalage 16 bits.

- Deux éléments de stockage (Register/Latch) qui servent de registres D flip-flop de sortie.

- Deux multiplexeurs MUXFX qui combinés aux générateurs de fonction permettent de générer des fonctions logiques de plus de 4 entrées.

- Des portes logiques qui facilitent l'implémentation de la logique arithmétique ( des XORs pour additionneurs, des ORs pour les sommes de produit et des ANDs pour les multiplieurs).

- Des chaînes de propagation rapide de retenue (CY).

Figure 7 : Structure interne d'un CLB Figure 8 : Structure interne d'un Slice

Figure 9 : Bloc multiplieur et SelectRam Figure 10 : Vue générale du

Virtex-II Pro XVP7

c) Les blocs multiplieurs 18 x 18 bits (Figure 910)

Ils réalisent des multiplications en complement à 2 (signes), et peuvent être associés à de blocs memoires SelectRam 18 Kb pour former des modules MAC (Multiplier-Accumulator) très utiles en traitement numérique du signal (filtres FIR et IIF). Cables en dur, ils sont optimisés en vitesse et en consommation. Un virtex-II pro peut contenir jusqu'a 444 blocs multiplieurs de ce type, et autant de blocs SelectRam (Error! Reference source not found.).

Toutes ces ressources permettent également au Slice de combiner avec des Slices voisins pour implémenter des fonctions plus complexes.

d) Le processeur PowerPC 405

Le PowerPC 405 est un processeur RISC1 de 32 bits d'architecure Harvard1. Il est optimise pour de hautes performances (jusqu'à 400Mhz pour certains) et des basses consommations (0.9mW/MHz). Il est intégré dans le FPGA Virtex-II Pro comme le montre la Figure 9 10.

Figure 11 : Architecture générale du processeur PowerPC 405 Il possède essentiellement:

- Une MMU (memory management unit) qui peut faciliter la misen en oeuvre d'un systeme de fichier, solution envisageable dans notre cas pour stocker les configurations en mémoire embarquée sous forme de fichier.

- Deux interfaces mémoires (Figure 11) ; l'interface OCM (On-Chip-Memory) subdivisée en deux blocs ; l'un pour les données et l'autre pour les instructions et l'interface PLB.

- Une interface JTAG permettant le debugage (en plus de trois autres modes de debogage supportés).

- Un pipeline de 5 étages

- Des caches de données et d'instruction séparées et de 16 Ko chaque. - 3 Timers programmables.

1 Reduced Instruction Set Computer ; concept consistant à réduire le jeu d'instruction des processeur, et parti du constat suivant lequel dans 80% des cas un processeur n'utilisait que 20% de son jeu d'instruction (essentiellement des Load/Sore)

- Une unité de division/multiplication.

En outre ce processeur implémenté en dur occupe 2% de la surface totale d'un FPGA Virtex-II Pro XVP50 par exemple (Error! Reference source not found.). Mais il n'a pas d'unité arithmétique flottante.

Le processeur est connecté au bus PLB (Processor Local Bus) directement, et a un second bus (OPB pour On-chip Peripheral Bus) via un pont entre les deux bus.

précédent 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