composants reconfigurables
TRANSCRIPT
Synthèse de composants : Composants logiques reconfigurablesModule d’Electronique Numérique
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
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
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
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
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
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
FPGA : Famille Cyclone II AlteraModule d’Electronique Numérique
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
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
www.geii.eu
11
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
www.geii.eu 13
LAB et interconnexions directes (entre éléments adjacents)
13
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
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
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
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
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
Synthèse de composants :Moyens utilisés – Approche hiérarchiqueModule d’Electronique Numérique
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
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.
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
www.geii.eu 23
Cycle de développementLe cas du cycle de développement avec le logiciel Quartus II d’Altera
23
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
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
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
Modèle Powerpoint utilisé par les présentations Intel
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