composants reconfigurables

28
Synthèse de composants : Composants logiques reconfigurables Module d’Electronique Numérique

Upload: peronnin-eric

Post on 25-Jan-2017

888 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Composants reconfigurables

Synthèse de composants : Composants logiques reconfigurablesModule d’Electronique Numérique

Page 2: Composants reconfigurables

www.geii.eu 2

Composants programmables …Pour un projet de nature évolutive, vous avez besoin : de portes logiques, de mémoire, de buffers 3 états, d’additionneurs, compteurs, multiplicateurs …Tout cela par milliers !Doit-on utiliser 1000 composants discrets ? Non : mise au point ? Fiabilité ? Création d’un PCB ?Faut-il fabriquer un composant spécialisé ASIC pour quelques exemplaires seulement ? Non : c’est coûteux et long.

2

AND2

inst

AND2

inst1OR3

inst2

ALT_IOBUF

inst3

CLRN

DPRN

Q

DFF

inst4

address[]

outclock

memenab

inclock

w eoutenab

dio[]

LPM_RAM_IO

inst5

LPM_ADDRESS_CONTROLLPM_FILELPM_INDATALPM_NUMWORDSLPM_OUTDATA "UNREGISTERED"LPM_WIDTHLPM_WIDTHAD

Parameter Value

Page 3: Composants reconfigurables

www.geii.eu 3

Classification des composants logiques

ASIC : Application Specific Integrated Circuit SPLD : Simple Programmable Logic Device PAL : Programmable Array Logic CPLD : Complex Programmable Logic Device FPGA : Field Programmable Gate Array Psoc : Programmable System on a Chip 3

(source Dataquest)

Logic

Standard Logic ASIC

Programmable Logic Arrays

DevicesASIC Full Custom

SPLD CPLD FPGA PSoC

Page 4: Composants reconfigurables

www.geii.eu 4

Qu’est-ce qu’un composant logique reconfigurable ?

Ensemble de portes logiques et fonctions de traitement du signal liées par des réseaux d’interconnexions configurables Somme de produits de termes (ET puis OU). Mémoire de base (bascule D, RS, T, JK). RAM double accès. Multiplicateurs, additionneurs …Configurable Une seule fois : technologie anti-fusible. Plusieurs fois : technologie Flash, EEPROM (non volatile)

et SRAM (volatile).4

Page 5: Composants reconfigurables

www.geii.eu 5

A quoi ça sert ?Au traitement rapide en général Développement de cœur de processeur spécifique. Traitement numérique du signal (analyse HF, filtrage, détection …). Logique de systèmes de communication et datacenter. Instrumentation de test totalement reconfigurable (avec Labview par

exemple). Imagerie médicale. Système de contrôle d’énergie grâce aux fonctionnalités DSP incluent dans les

FPGA (exemples : onduleur, variateur).Au remplacement d’ASIC (Full Custom) numériques dans certains cas Petites et moyennes séries. Fortes contraintes de Time To Market. Besoins en structures évolutives.A la mise au point fonctionnelle d’ASIC (full custom) Des sociétés comme ONSEMI peuvent fabriquer un ASIC à partir d’un projet

exploitant un FPGA

5

Page 6: Composants reconfigurables

www.geii.eu 6

Différentes architecturesFaible nombre de portes logiques (composants appartenant à l’histoire …). PAL (Programmable Array Logic). GAL (Generic Array Logic).Nombre élevé de portes logiques CPLD (Complex Programmable Logic Device)

Des centaines de milliers de portes en équivalence. FPGA (Field Programmable Gate Array)

Plusieurs dizaines de millions de portes (équivalence). Intégration d’un processeur simple ou multi-coeurs (ARM

en général). PSoC (Programmable System on Chip)

Bloc logique configurable. Intégration d’un microcontrôleur (8051 au Cortex M3)

avec ses périphériques. Bloc analogique reconfigurable (ADC, DAC, AOp …). 6

CPLD

FPGA

Page 7: Composants reconfigurables

www.geii.eu 7

Choix à l’IUT : pourquoi Xilinx et Altera ?Xilinx est l’Inventeur du FPGA.Ils sont leaders sur le marché des FPGA.Ils développent tous les deux des programmes universitaires hors normes Soutien des projets de recherches. Soutien pédagogique avec des donations :

logiciels en version complète et couvrant toute le gamme des FPGA et CPLD Xilinx et Altera,

cartes de développement gratuites ou à tarif très préférentiel : Altera DE1 et DE2 à base de Cyclone II à l’IUT.

7

Page 8: Composants reconfigurables

FPGA : Famille Cyclone II AlteraModule d’Electronique Numérique

Page 9: Composants reconfigurables

www.geii.eu 9

Famille Cyclone IICaractéristiques principales Gravure en 90 nm. Architecture haute densité avec entre 4608

et 68416 LE (Eléments logiques).

Jusqu’à 1.1 Mbits de RAM (M4K Blocks) Largeur de bus de données configurable (x1, x2, x4, x8, x16, x32 et x36). Véritable mode double accès. Vitesse de fonctionnement pouvant atteindre 260 MHz.

Jusqu’à 150 Multiplicateurs 18x18 embarqués (Embedded Multipliers). Entrée/Sorties avancées (IOEs)

Différentielles (LVDS, LVPECL …). Simples (3.3v, 2.5v, 1.8v et 1.5v LVCMOS, 3.3v, 2.5v et 1.8v LVTTL …). PCI et PCI Express.

Configuration Mode rapide pour une configuration en moins de 100 ms. Mode série ou JTAG. Possible avec des mémoires de configuration série à bas coût. 9

Page 10: Composants reconfigurables

www.geii.eu 10

Elément logique (LE : Logic Element)Le plus petit élément de logique dans le Cyclone II LUT (Look up table) à 4 entrées permettant le calcul de n’importe quelle fonction de 4 entrées. 1 registre de sortie programmable. Les LE sont regroupés par 16 dans des LAB (Logic Array Bloc). 1 entrée de retenue dédiée (Carry Chain) provenant du LE précédent dans le même LAB. 1 signal de Carry de sortie destiné au LE suivant dans le même LAB.L’EP2C35 de la carte DE2 (travaux pratiques) en contient un peu plus de 33 000.

10

Page 11: Composants reconfigurables

www.geii.eu

11

Page 12: Composants reconfigurables

www.geii.eu 12

Bloc de Réseaux logiques (LAB)Le LAB, c’est : 16 Eléments Logiques (LE). Des signaux dédiés pour optimiser les calculs

entre LE (signal de carry par exemple). Un réseau d’interconnexion local pour la communication

entre LE du même LAB. Un accès direct aux éléments adjacents du LAB

dans la structure du FPGA : un autre LAB, un bloc mémoire pour les LAB adjacents aux zones

mémoires, un signal d’horloge d’une PLL, un multiplier un IOE (Elément d’entrée/sortie)).

Un accès aux réseaux d’interconnexions lignes/colonnes pour atteindre n’importe quel point du composant.

12

Page 13: Composants reconfigurables

www.geii.eu 13

LAB et interconnexions directes (entre éléments adjacents)

13

Page 14: Composants reconfigurables

www.geii.eu 14

Interconnexions longues distances

En lignes, pour optimiser les temps de propagation de 4 LABs en 4 LABs (existe aussi de 24 en 24 LABs).En colonnes, pour optimiser les temps de liaison de 4 en 4 LABs (existe également de 16 en 16 LABs).

14

Page 15: Composants reconfigurables

www.geii.eu 15

Réseau Global d’Horloges - PLLBut : Permettre une distribution optimale des signaux d’horloge avec un temps de

propagation le plus constant possible. Autoriser l’emploi d’une horloge externe de basse fréquence (simplification de la

conception du PCB). Etre capable de disposer de sources d’horloges diverses à partir d’une horloge

unique (par multiplication et division de fréquence, signaux en quadrature …).

15

Dans les Cyclone II 4 PLL pour multiplier ou diviser

les fréquences d’horloge entrantes, les retarder ...

Jusqu’à 16 lignes d’horloges en interne

Gestion jusqu’à la fréquence maximale de 402.5 MHz

Page 16: Composants reconfigurables

www.geii.eu 16

Standards d’entrées/sortiesLVTTL et LVCMOS Interfaçage avec des circuits logiques

d’usages généraux, fonctionnant à des fréquences en deçà de 100MHz.

SSTL Standard mis en place pour la

mémoire SDRAM DDR.LVDS (Low Voltage Differential Signaling) Signaux différentiels pour des communications à fort

débit et faible EMI (émissions électromagnétiques).LVPECL (Low Voltage Positive Emitter Coupled Logic) Signaux différentiels à haute immunité au bruit

utilisés en vidéo, télécom, distribution d’horloge.PCI et PCI Express Bus locaux des PC utilisés pour la connexion de carte

d’extension (vidéo …).16

Page 17: Composants reconfigurables

www.geii.eu 17

Multiplicateurs intégrésObjectifs Réaliser des fonctions de traitement du signal massivement

parallèles à faible coût sans amputer le potentiel en LE du FPGA.Applications ciblées Traitement du signal

(télévision numérique, radar ...). Traitement du son. Optimisation en vidéo-projection.Ressources de la famille Cyclone De 1 à 3 banques de multiplicateurs 18 bits x 18 pour un total

pouvant atteindre 150 multiplicateurs dans le plus gros Cyclone II.Note : ce chiffre peut être étendu en utilisant les modules mémoires

M4K pour réaliser des multiplicateurs logiciels (250 dans le plus gros Cyclone II).

17

Page 18: Composants reconfigurables

www.geii.eu 18

FPGA en 2015Stratix 10 Altera 1 867 680 ALM (Adaptative Logic

Module) pour un équivalent de 5 510 000 LE (35 000 sur le FPGA utilisé en TP).

Processeur ARM 64 bits quadri-cœurs à 1.5GHz et ses périphériques. Transceiver 30Gbps. Interfaces pour différents types de mémoires :

DDR3, DDR4. HMC (Hybrid Memory Cube).

Blocs DSP 10 TFLOPS de puissance

de calcul en simple précision 23 TMACS en 16 bits à

virgule fixe. Réseaux d’interconnexions optimisés. Coût d’un tel composant > 10 000 $ 18

Page 19: Composants reconfigurables

Synthèse de composants :Moyens utilisés – Approche hiérarchiqueModule d’Electronique Numérique

Page 20: Composants reconfigurables

www.geii.eu 20

Les moyens utilisés à l’IUTLe système de développement Quartus II Web Edition Outil de référence autorisant un développement de A à

Z. Pour nous, pas de différence notable avec la version

complète. Téléchargeable gratuitement sur internet pour les

utilisateurs enregistrés sur le site www.altera.com .Simulateur externe ModelSim-Altera Web Edition Complète et remplace avantageusement le simulateur

intégré de Quartus II. Capable de simuler au niveau du code source (ce que ne

fait pas Quartus II). GratuitCarte de développement DE2

20

Page 21: Composants reconfigurables

www.geii.eu 21

La carte DE2Elle est constituée d’un FPGA Cyclone II EP2C35 (35000 LEs). De mémoire Flash et SDRAM. De divers périphériques :

Nombreux afficheurs et leds. Interrupteurs et boutons poussoirs. CODEC audio, décodeur vidéo,

encodeur vidéoPorts USB, souris série, Ethernet.

D’un port de programmation et de debug JTAG.

Page 22: Composants reconfigurables

www.geii.eu 22

Cycle de développementIl peut être présenté de différentes façons. Le cycle en V en est une :

22

Analyse des besoins et faisabilité

Recette

Spécifications

Conception architecturale

Conception détaillée

Codage

Tests de validation

Tests d’intégration

Tests unitaire

Page 23: Composants reconfigurables

www.geii.eu 23

Cycle de développementLe cas du cycle de développement avec le logiciel Quartus II d’Altera

23

Page 24: Composants reconfigurables

www.geii.eu 24

Approche hiérarchiqueC’est un point du cycle en V La conception architecturale.Objectifs Apporter une lisibilité maximale au projet. Faciliter la mise en œuvre de tests. Rendre plus aisé l’emploi d’éléments pré-existants (IP :

Intellectual Property).Moyens Une représentation fonctionnelle du projet reposant sur un

schéma où s’interconnectent des blocs fonctionnels uniquement.

Un langage de haut niveau (le VHDL dans notre cas) pour décrire les blocs fonctionnels.

24

Page 25: Composants reconfigurables

www.geii.eu 25

Exemple : compteur de secondesEnjeu Compter les secondes de 0 à 9 sur un unique afficheur 7 segments à

partir d’une horloge à 50 MHz.Découpage fonctionnel proposé Construire un signal de 1 Hz à partir du signal d’horloge à 50 MHz. Compter les secondes avec un compteur BCD 4 bits synchrones.Schéma fonctionnel résultant dessiné sous Quartus II

25

PIN_N2VCC

clk_50MHz INPUT

PIN_V2VCC

reset INPUT

VCCclk_1hz INPUT

PIN_AE23

ledOUTPUT

PIN_AF10

segment_aOUTPUT

PIN_AB12

segment_bOUTPUT

PIN_AC12

segment_cOUTPUT

PIN_AD11

segment_dOUTPUT

PIN_AE11

segment_eOUTPUT

PIN_V14

segment_fOUTPUT

PIN_V13

segment_gOUTPUT

bcd[3..0]OUTPUT

clk_50MHz

reset

clk_1hz

clk_1hz

inst

reset

clk_1hz

bcd[3..0]

compteur_bcd

inst1

bcd[3..0] a

b

c

d

e

f

g

dec_bcd_7_seg

inst2

bcd[3..0]

clk_1hz

Page 26: Composants reconfigurables

www.geii.eu 26

Exemple : compteur de secondesDescription des blocs fonctionnels En langage VHDL (Very high speed Hardware Description Language). Ou à partir de macro-fonctions pré-existantes dans le logiciel

Quartus II.Tests Par la simulation fonctionnelle ou temporelle :

de chaque bloc fonctionnel pour commencer, de l’ensemble du projet hiérarchique pour une validation finale

lorsqu’elle est possible.Note : inutile de tenter des simulations durant une seconde avec

une horloge d’entrée à 50 MHz. En utilisant une cible et des outils d’introspection :

la carte DE 2 dans notre cas, outil SignalTap II debugging.

26

Page 27: Composants reconfigurables

Modèle Powerpoint utilisé par les présentations Intel

Page 28: Composants reconfigurables

www.geii.eu 28

…Il y a 30 ans, il y aurait eu deux possibilités : Mettre le projet à la corbeille par faute de moyen. Etre militaire ou impliqué dans la conquête spatiale et se

lancer dans un développement mettant en jeu des racks de cartes de blocs fonctionnels surchargées de composants.

Aujourd’hui : On fera le choix :

de composants logiques reconfigurables de types CPLD ou FPGA pour des applications purement numériques,

de circuits mixtes de type PSoC pour les applications oeuvrant dans les domaines analogiques et numériques.

28