2. 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
inst1
OR3
inst2
ALT_IOBUF
inst3
CLRN
D
PRN
Q
DFF
inst4
address[]
outclock
memenab
inclock
w e
outenab
dio[]
LPM_RAM_IO
inst5
LPM_ADDRESS_CONTROL
LPM_FILE
LPM_INDATA
LPM_NUMWORDS
LPM_OUTDATA "UNREGISTERED"
LPM_WIDTH
LPM_WIDTHAD
Parameter Value
3. 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
Devices
ASIC Full Custom
SPLD CPLD FPGA PSoC
4. 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
5. 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
6. www.geii.eu 6
Différentes architectures
Faible 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
7. 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
8. FPGA : Famille Cyclone II Altera
Module d’Electronique Numérique
9. www.geii.eu 9
Famille Cyclone II
Caracté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
10. 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
12. 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
14. 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
15. www.geii.eu 15
Réseau Global d’Horloges - PLL
But :
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
16. www.geii.eu 16
Standards d’entrées/sorties
LVTTL 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
17. www.geii.eu 17
Multiplicateurs intégrés
Objectifs
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
18. www.geii.eu 18
FPGA en 2015
Stratix 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
20. www.geii.eu 20
Les moyens utilisés à l’IUT
Le 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).
Gratuit
Carte de développement DE2
20
21. www.geii.eu 21
La carte DE2
Elle 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.
22. www.geii.eu 22
Cycle de développement
Il 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
23. www.geii.eu 23
Cycle de développement
Le cas du cycle de développement avec le logiciel Quartus II
d’Altera
23
24. www.geii.eu 24
Approche hiérarchique
C’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
25. www.geii.eu 25
Exemple : compteur de secondes
Enjeu
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_N2
VCC
clk_50MHz INPUT
PIN_V2
VCC
reset INPUT
VCC
clk_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
26. www.geii.eu 26
Exemple : compteur de secondes
Description 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
28. 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