Vous êtes sur la page 1sur 52

Systèmes embarquéstemps-réel

Faten BEN ABDALLAH


faten.benabdallah@supcom.tn

Année universitaire 2020/2021


Chapitre 3: Evolution FPGA-
Exemples Familles Xilinx
Evolution famille xilinx

Chapitre 3: Exemples de circuits FPGA XILINX -3 -


Evolution famille xilinx: La série 7

Chapitre 3: Exemples de circuits FPGA XILINX -4 -


Evolution famille xilinx: La famille Zynq

Chapitre 3: Exemples de circuits FPGA XILINX -5 -


Chapitre 3
1. Famille XC4000E/XC4000X
2. Famille Virtex
3. Famille Virtex II Pro
4. Famille Kintex -7

Chapitre 3: Exemples de circuits FPGA XILINX -6 -


XC4000E/XC4000X

• famille standard : possède plus d'options de routage que les Spartan mais
moins que les Virtex
• 466-7448 blocs logiques (CLBs)
• 1K-180K portes
• 112-448 E/S programmables
• La famille XC4000XV rajoute des composantes de plus haute densité :
9728-20102 CLBs, 235K-500K portes.
• Discontinuée depuis 2002 environ

Chapitre 3: Exemples de circuits FPGA XILINX -7 -


Caractéristiques

Chapitre 3: Exemples de circuits FPGA XILINX -8 -


Architecture d’un CLB d’un XC4000

Chapitre 3: Exemples de circuits FPGA XILINX - 9-


LUTs du CLB d’un XC4000
• Dans un bloc logique il y a:
– 2 LUTs à 4 entrées (F et G) ;
– 1 LUT à 3 entrées (H).
• Les sorties de ces LUTs peuvent être appliquées sur 2 bascules ou
directement à la sortie du CLB (sorties X et Y).
• Un CLB peut être utilisé pour réaliser:
– 2 fonctions combinatoires indépendantes à 4 entrées (LUTs F et G)
– une fonction à 5 entrées (LUTs F, G et H).
– 2 fonctions: une à quatre variables et une autre à cinq variables.
– 2 blocs de mémoire vive à port unique de 16 x 1 chacun ; (F et G)
– 1 bloc de mémoire à port unique de 32 x 1 ;
– 1 bloc de mémoire à double port de 16 x 1.
Chapitre 3: Exemples de circuits FPGA XILINX - 10 -
Registres dans le CLB d’un XC4000

Dans un CLB, il y a 2 registres (Bascules D) pouvant être configurés


– comme bascule
– ou comme verrou: Si l’entrée EC est à 0, alors la sortie Q ne bouge pas,
la bascule est verrouillée. D’où le nom de bascule Verrou.
– pour se déclencher sur une transition positive ou négative de l'horloge ;
– pour être dotés d'une entrée S/R (SET ou RESET), lequel signal peut avoir
une provenance locale ou globale.

Chapitre 3: Exemples de circuits FPGA XILINX - 11 -


IOB d’un XC4000
 I1 et I2 des entrées, peuvent être
connectés à des flip-flip ou des latch
 Configurations:
– Signal en entrée
– Signal en sortie
– Inversion ou non du signal
avant son application à l'IOB
– Synchronisation du signal sur des fronts
montants ou descendants d'horloge
– Mise en place d'un " pull-up " ou
" pull-down " dans le but de limiter la
consommation des E/S inutilisées

Chapitre 3: Exemples de circuits FPGA XILINX - 12 -


Chapitre 3
Exemples de circuits FPGA de la famille
XILINX

1. Famille XC4000E/XC4000X
2. Famille Virtex
3. Famille Virtex II Pro
4. Famille Kintex -7

Chapitre 3: Exemples de circuits FPGA XILINX 13


- -
Famille du circuit Virtex

• CLB=4 LC = 2 slices
• Chaque Block RAM contient 4096 bits
• Maximum SelectRAM = 64*CLB
Chapitre 3: Exemples de circuits FPGA XILINX - 14 -
Architecture du virtex

Remarque

Configuration SRAM =Table de vérité


Chapitre 3: Exemples de circuits FPGA XILINX - 15 -
Vue générale d’un CLB du Virtex

 Un CLB est composé de 4 LC et réparti en 2 tranches (Slices)


 Une LC inclut une LUT à 4 entrées, logique carry et une bascule D

Chapitre 3: Exemples de circuits FPGA XILINX - 16 -


Slice du Virtex

Chapitre 3: Exemples de circuits FPGA XILINX - 17 -


Slice du Virtex

Chapitre 3: Exemples de circuits FPGA XILINX - 18 -


LUT à 4 entrées dans un LC du Virtex

Implémente des fonctions combinatoires


– Toute fonction à 4 entrées
– Mise en cascade pour des fonctions avec un plus grand nombre
d’entrées

Chapitre 3: Exemples de circuits FPGA XILINX - 19 -


Multiplexeurs à 4 entrées dans un CLB du Virtex

Les Multiplexeurs dédiés sont plus rapides


et prennent moins d’espace que les LUTs:
• MUXF5 utilise deux LUTs pour créer :
– Mux 4x1
– Ou toute fonction à 5 entrées
– Ou certaines fonctions à 9 entrées
• MUXF6 utilise 2 slices pour créer
– Mux 8x1
– Ou toute fonction à 6 entrées
– Certaines fonctions à 19 entrées

Chapitre 3: Exemples de circuits FPGA XILINX - 20 -


LUT configurée en RAM distribuée

 LUT configurable comme RAM


distribuée
1) LUT=RAM 16x1
2) Combiner 2 LUTs du slice
pour former RAM16x2, 32x1
ou 16x1 à double port
 Operations:
 Ecriture synchrone
 Lecture synchrone/
Asynchrone

Pour les lectures synchrones, utilisation des flips-flops


Chapitre 3: Exemples de circuits FPGA XILINX - 21 -
LUT configurée en Registre à décalage

 Chaque LUT peut être configurée


comme registre à décalage
16 bits par LUT

 Adressable statiquement ou
dynamiquement jusqu’à 16 cycles

 Mise en cascade pour


augmenter le délai
64 bits par CLB

Chapitre 3: Exemples de circuits FPGA XILINX - 22 -


Logique Carry dédiée dans un slice du virtex

– Offre de meilleures performances


pour compteurs & fonctions arithmétiques
– Composants XOR pour calcul de
la somme.
– Dans un LC, un additionneur complet
à 1 bit peut être réalisé
– 2 chaines de carry séparées dans
chaque CLB
– Peuvent être utilisés en cascade pour
fonctions arithmétique avec un grand
nombre d’entrées
Chapitre 3: Exemples de circuits FPGA XILINX - 23 -
Exemple: additionneur 8 bits (slice 1)

Chapitre 3: Exemples de circuits FPGA XILINX - 24 -


Multiplieur dédié dans un CLB du virtex

• Logique dédiée:
– Portes AND dédiées
– Implémentation Efficace
de l’algorithme ‘Shift & Add’

• Résultats:
Pour multiplieur 16x16 au lieu
d’utiliser que des CLBs
30% réduction en surface

Chapitre 3: Exemples de circuits FPGA XILINX - 25 -


Exemple: Multiplieur 5 bits (Shift & add)

Chapitre 3: Exemples de circuits FPGA XILINX - 26 -


Implémentation: Multiplieur 2 bits

Chapitre 3: Exemples de circuits FPGA XILINX - 27 -


Implémentation Multiplieur 2 bits (slice 1)

Chapitre 3: Exemples de circuits FPGA XILINX - 28 -


Implémentation Multiplieur 2 bits (slice 2)

Chapitre 3: Exemples de circuits FPGA XILINX - 29 -


Implémentation And à 12 entrées

Ressources utilisées:
3 LUTs & 3 MUXCY
au lieu de 4 LUTs

Chapitre 3: Exemples de circuits FPGA XILINX - 30 -


Implémentation OR à 12 entrées

Ressources utilisées:
3 LUTs & 3 MUXCY
au lieu de 4 LUTs

Chapitre 3: Exemples de circuits FPGA XILINX - 31 -


BUFTS (Buffer Tri States)

2 Buffers 3 états à la sortie de chaque CLB


– Utilisé pour connecter des bus
– Chaque BUFT a une entrée de contrôle et une pin d’entrée

Chapitre 3: Exemples de circuits FPGA XILINX - 32 -


Block select RAM
• Il s’agit d’une mémoire embarquée d’une taille de 4096 bits chacune avec
deux ports d’accès au max
• La taille de la donnée peut être configurée: entre 18x1Kbit et 512x36 bits.

Chapitre 3: Exemples de circuits FPGA XILINX - 33 -


Caractéristiques de base du Virtex
• 4 blocs DLL (Delay Locked Loop)
• Mémoire hiérarchique
– LUTs configurées comme RAM à 16 bits, 32 bits, 16 bits double port ou registre à
décalage
– Blocs RAMs à double port configurable d’une taille de 4k bits chacun
• Architecture flexible qui réconcilie vitesse et densité
– Circuit de propagation de retenue dédié pour arithmétique haute vitesse
– Multiplieur dédié
– "Cascade chain" pour les fonctions à très grand nombre d’entrées
– Nombre important de registres/verrous avec entrée de validation de l’horloge et des
signaux set et reset synchrones ou asynchrones
– Buffers 3 états
• Configuration à base de cellules SRAM
• Densités de 50K à 1M de portes, Fréquence max 200 MHz
• Technologie: 0.22μ CMOS, 5 couches de métal
Chapitre 3: Exemples de circuits FPGA XILINX - 34 -
Chapitre 3
Exemples de circuits FPGA de la famille
XILINX

1. Famille XC4000E/XC4000X
2. Famille Virtex
3. Famille Virtex II Pro
4. Famille Kintex -7

Chapitre 3: Exemples de circuits FPGA XILINX 35


- -
FPGA Virtex-II PRO
o Intègre entre 1 à 2 cœurs de processeur powerPC405 ;
o Permet d’implémenter des algorithmes très complexes grâce à la disponibilité d’un grand
nombre de slices qui peuvent atteindre 44.096 unités ;
o Intègre des multiplieurs 18x18 bits, des DCM (Digital Clock Manager).

Générateur d’horloge

PPC
405
Processeur
PowerPC
32 bit 300MHz

Multiplieurs 18 * 18
Blocs mémoire

Chapitre 3: Exemples de circuits FPGA XILINX - 36 -


Famille Virtex-II Pro

Logic Cell ≈ (1) 4-input LUT + (1)FF + Carry Logic

Chapitre 3: Exemples de circuits FPGA XILINX - 37 -


Digital Clock Manager (DCM)

Chapitre 3: Exemples de circuits FPGA XILINX - 38 -


CLB du Virtex II-Pro

• Ressources flexibles
• Larges fonctions d’entrées
• Multiplexeurs 16:1 par CLB
• Fonctions Arithmétiques
rapides
• 2 Chaînes de retenue
• Registre à décalage de
128 bits par CLB
• 2 buffer 3 états

Chapitre 3: Exemples de circuits FPGA XILINX - 39 -


Les Multiplexeurs dans un CLB du Virtex II-Pro

Chapitre 3: Exemples de circuits FPGA XILINX - 40 -


Slice du Virtex II-Pro

Chaque slice contient:


– 2 LUT à 4 entrées
– 2 RAM 16 bits
– 2 Registres à décalage de
16 bits
– 2 Registres Latch
– Une logique dédiée
• Multiplexeurs
• Arithmétique logique
• ORCY

Chapitre 3: Exemples de circuits FPGA XILINX - 41 -


Détails du slice (Moitié haute)

Chapitre 3: Exemples de circuits FPGA XILINX - 42 -


Rôle de ORCY
Utilisé pour générer des fonctions dont le nombre de somme est
grand.

Chapitre 3: Exemples de circuits FPGA XILINX - 43 -


IOB du Virtex II-Pro
 Chemin d’entrée:
2 registres/Latch DDR
 Chemin de sortie
• 2 registres/Latch DDR
• 2 registres/Latch DDR à trois
états
 Horloges séparés pour les entrées
et les sorties
 Signaux de SET et RESET sont
partagés: Synchrone/asynchrone

Chapitre 3: Exemples de circuits FPGA XILINX - 44 -


Principe du DDR (1/2)

Chapitre 3: Exemples de circuits FPGA XILINX - 45 -


Principe du DDR (2/2)

Chapitre 3: Exemples de circuits FPGA XILINX - 46 -


Chapitre 3
1. Famille XC4000E/XC4000X
2. Famille Virtex
3. Famille Virtex II Pro
4. Famille Kintex -7

Chapitre 3: Exemples de circuits FPGA XILINX 47


- -
Le FPGA Kintex7
Exemple La plateforme GENESYS2

Chapitre 3: Exemples de circuits FPGA XILINX - 48 -


DSP Slice: Principe

Chapitre 3: Exemples de circuits FPGA XILINX - 49 -


DSP Slice
Dans la série 7, le MAC est hautement polyvalent d’où sa complexité apparente. Il est conçu
pour être cascadé avec d’autres DSP slices afin de réaliser des filtres numériques rapides
(500MHz à comparer avec les 250 MHz de la logique programmable usuelle) :

Chapitre 3: Exemples de circuits FPGA XILINX - 50 -


LUT 6 entrées
Les LUT sont passées à 6 entrées. On peut les utiliser en une fonction combinatoire à 6
entrées ou en 2 fonctions combinatoires indépendantes à 5 entrées.
Il y a maintenant 4 bascules (D ou Latch) plus 4 bascules D par slice, soit 2 bascules par LUT.

Chapitre 3: Exemples de circuits FPGA XILINX - 51 -


XADC: Dual 12-Bit 1-MSPS ADCs
Le bloc XADC permet soit de surveiller les alimentations et la température du FPGA via des
capteurs sur la puce, soit d’acquérir jusqu’à 17 signaux analogiques externes via un
multiplexeur. Il comporte deux convertisseurs analogique/numérique (ADC) 1 Msps 12 bits.

Chapitre 3: Exemples de circuits FPGA XILINX - 52 -

Vous aimerez peut-être aussi