FPGACoursISTA
FPGACoursISTA
FPGACoursISTA
net/publication/375280361
CITATIONS READS
0 174
1 author:
Elhabib Bensikaddour
Agence Spatiale Algérienne
29 PUBLICATIONS 144 CITATIONS
SEE PROFILE
All content following this page was uploaded by Elhabib Bensikaddour on 03 November 2023.
El habib Bensikaddour
CDS-ASAL
2023-2024
Table des matières
1 Technologies des circuits intégrés ....................................................................3
2.3.1 SRAM-FPGA..................................................................................... 14
2.3.2 Flash-FPGA...................................................................................... 14
2
1 Technologies des circuits intégrés
Les circuits intégrés, ou puces électroniques, sont des composants électroniques qui
intègrent plusieurs composants électroniques individuels tels que les transistors, les
diodes, les résistances, et d'autres éléments sur une seule puce de semiconducteur,
généralement fabriquée en silicium.
Les circuits intégrés sont classés selon leurs caractéristiques et leur domaine d'emploi.
Le classement est montré dans la figure suivante :
Cette catégorie de circuits intégrés est conçue sur mesure pour répondre de manière
précise et efficace aux besoins d'une application particulière. Ces circuits peuvent
intégrer à la fois des structures analogiques et numériques (Mixed-Signal ASIC, Figure
2), ce qui signifie qu'ils sont capables de traiter à la fois des signaux analogiques et
des signaux numériques. Cette capacité à combiner des composants analogiques et
numériques les rend très polyvalents pour une large gamme d'applications, mais elle
peut également contribuer à la complexité de leur conception. Les ASIC sont une
solution adaptée lorsque des composants prêts à l'emploi ne répondent pas aux
3
besoins spécifiques de l'application, même si leur développement peut être coûteux en
raison de leur nature personnalisée. Exemples d’applications :
1. Circuits de traitement d'image : Les caméras numériques et les équipements
de traitement d'image, tels que les appareils photo numériques, les caméras de
vidéosurveillance, les systèmes de vision artificielle, utilisent des ASIC pour
effectuer le traitement d'image en temps réel.
2. Circuits de communication : Les ASIC sont largement utilisés dans les
équipements de communication, tels que les routeurs, les commutateurs, les
modems, les téléphones mobiles, les réseaux sans fil, pour gérer les fonctions
de communication.
4
les dispositifs de communication et les systèmes de contrôle automatisé. Dans le
système numérique, les circuits logiques se répartissent généralement en deux
catégories (Figure 4).
Les circuits programmés offrent une flexibilité de conception précieuse, car ils peuvent
être reconfigurés pour différentes tâches. Deux ce type de circuits, on peut distinguer
deux sous-catégories (Figure 5).
5
Figure 5. La famille des circuits Programmable.
6
Exemple :
Nom du circuit intégré : 22V10
Fabricant : Plusieurs fabricants, dont Lattice Semiconductor
Fonctionnalité : Le 22V10 est un SPLD qui peut être programmé pour réaliser
des fonctions logiques personnalisées. Il contient 10 macrocellules
programmables et 22 entrées/logiques.
Taille : Il est généralement encapsulé dans un boîtier DIP ( Dual In-Line Package)
à 24 broches.
Programmabilité : Les utilisateurs peuvent programmer les interconnexions entre
les macrocellules pour créer des fonctions logiques spécifiques. La
programmation se fait à l'aide de logiciels de conception électronique o u d'un
programmateur de dispositif dédié.
Applications : Le 22V10 SPLD est utilisé dans des applications électroniques
relativement simples nécessitant un traitement logique de base, telles que des
minuteries, des compteurs, des décodeurs, des contrôles de séquences, etc.
b. Complex PLD : Les CPLD sont plus complexes que les SPLD, ce qui
signifie qu'ils offrent une plus grande capacité de traitement logique. Ils
contiennent une structure logique composée de plusieurs blocs logiques
programmables, de bascules, de multiplexeurs et d'autres éléments
logiques.
Exemple :
Nom du circuit intégré : MAX® II family de Altera (Intel)
Fonctionnalités : Les CPLD de la famille MAX II offrent une capacité de logique
programmable plus importante que les SPLD, avec un grand nombre de
macrocellules logiques, de bascules, de multiplexeurs et d'autres éléments
logiques. Ils peuvent également contenir des mémoires EEPROM pour le stockage
de la configuration.
7
Applications : Les CPLD MAX II sont utilisés dans une variété d'applications,
notamment le contrôle de périphériques, l'interface de communication, la gestion
d'affichage, les applications embarquées, les automates programmables, etc. Leur
capacité de logique programmable les rend adaptés à des conceptions
électroniques de complexité moyenne.
8
Pourquoi le FPGA ?
Les FPGA (Field-Programmable Gate Arrays) sont utilisés pour une variété de raisons
dans la conception électronique en raison de leurs avantages spécifiques :
Flexibilité : L'un des avantages majeurs des FPGA est leur flexibilité. Les
concepteurs peuvent les programmer pour effectuer une large gamme de
fonctions électroniques en utilisant des descriptions matérielles (HDL) telles que
VHDL ou Verilog. Cela permet de personnaliser le FPGA pour répondre aux
besoins spécifiques d'une application, ce qui est particulièrement utile
lorsqu'une solution matérielle dédiée n'est pas disponible.
Prototypage Rapide : Les FPGA sont couramment utilisés pour le prototypage
rapide de nouveaux designs électroniques. Les concepteurs peuvent itérer
rapidement et tester différentes configurations matérielles sans avoir à créer un
nouveau circuit imprimé à chaque fois. Cela réduit les coûts de développement
et accélère le cycle de conception.
Réutilisation : Les FPGA permettent de réutiliser du matériel programmable
pour différentes applications. Une fois programmé, un FPGA peut être
reprogrammé pour une nouvelle tâche sans avoir à créer un nouveau matériel
physique. Cela permet d'économiser du temps et des ressources.
Traitement Parallèle : Les FPGA sont adaptés au traitement parallèle, ce qui les
rend adaptés à des applications exigeant un traitement intensif, telles que le
traitement de signal, la vision par ordinateur, la cryptographie, etc. Ils peuvent
effectuer de nombreuses opérations en parallèle, ce qui améliore les
performances.
Réduction de l'énergie : Certains FPGA sont conçus pour être économes en
énergie, ce qui les rend adaptés à des applications alimentées par batterie ou
nécessitant une faible consommation d'énergie.
9
Figure 8. Exemples d’applications FPGA
Pour comparer les FPGA aux autres circuits (CPU, GPU et ASIC) en termes de
flexibilité, de facilité d'utilisation, de performances et d'efficacité énergétique, la figure
9 est une démonstration représentative.
Les processeurs, tels que les CPU, offrent une grande flexibilité et une facilité
d'utilisation, car les utilisateurs peuvent choisir des langages de programmation de
haut niveau comme Python ou C++ pour développer leurs applications. Ce pendant,
cette flexibilité accrue a un impact sur les performances et l'efficacité énergétique, car
les processeurs ne sont pas optimisés pour des tâches spécifiques. En revanche, les
dispositifs ASIC et offrent des performances et une efficacité énergétique maximales,
car ils sont conçus pour exécuter une application particulière de la manière la plus
efficace possible. Cependant, leur flexibilité est limitée, et ils nécessitent une
connaissance précise de l'application.
10
Les FPGA se situent entre les deux extrêmes. Ils offrent une flexibilité significative, car
ils peuvent être reconfigurés pour effectuer une variété de tâches, mais cela peut
nécessiter un effort de développement supplémentaire par rapport aux processeurs.
Les performances et l'efficacité énergétique des FPGA dépendent de la qualité de la
conception matérielle.
Le choix entre FPGA, CPU, GPU et ASIC dépend des exigences spécifiques de
l'application. Les FPGA offrent un équilibre entre la flexibilité et les performances,
mais leur efficacité énergétique dépend de la conception. Les CPU sont flexibles mais
moins performants et économes en énergie. Les ASIC offrent des performances élevées
et une efficacité énergétique, mais au prix de la flexibilité.
11
Configurable Logic Bloc), tandis que les structures similaires dans les FPGA
basés sur Altera sont appelées blocs de tableau logique ou (LAB : Logic Array
Blocks). La figure 11 présente un exemple d’un CLB. Il contient des tables de
recherche (LUT : Lookup Table), des bascules et parfois des unités
arithmétiques dédiées. Les CLB peuvent être configurés pour exécuter diverses
fonctions logiques combinatoires et séquentielles.
Block RAM (BRAM): Il s'agit de la mémoire sur puce disponible sur un FPGA,
utilisée pour stocker les données et implémenter les fonctions de mémoire.
Digital Signal Processing (DSP) Blocks: Il s'agit de blocs matériels spécialisés
dédiés à l'exécution d'opérations arithmétiques, telles que la multiplication et
l'accumulation, à grande vitesse.
Dans les FPGA modernes (figure 12), certaines fonctions sont intégrées en tant que
"cœurs matériels HARDCORE" efficaces et non configurables. Cela peut inclure :
Processeurs ARM Multicœurs : Certaines séries de FPGA, comme la série ZYNQ
de XILINX, intègrent plusieurs cœurs de processeurs pour une puissance de
traitement accrue et une intégration système.
Transmetteurs Multi-Gigabit : Ces transmetteurs haute vitesse sont intégrés
dans le FPGA pour permettre une communication de données rapide,
12
essentielle pour des applications telles que les transferts de données à grande
vitesse et les réseaux.
PCIe/Ethernet PHY (couche physique) : Les dispositifs FPGA peuvent inclure
des composants PHY intégrés pour les connexions PCIe et Ethernet, simplifiant
la connectivité pour le transfert de données.
Contrôleurs de mémoire : Les contrôleurs de mémoire intégrés permettent un
accès efficace à divers types de mémoire, tels que la RAM DDR (Double Data
Rate), facilitant la gestion de la mémoire.
Les FPGA peuvent être classés de plusieurs manières en fonction de différents critères,
notamment la technologie, la génération, la capacité et l'architecture . Dans ce cours,
on va évoquer seulement la classification par technologie.
La classification par technologie s'appuie sur les techniques utilisées pour contrôler
les commutateurs programmables utilisés. Les dispositifs FPGA peuve nt être classés
dans les trois types suivants : SRAM-FPGA, Antifuse-FPGA, et Flash-FPGA.
13
Figure 13. SRAM wiring program, Center: FLASH wiring program, Right: Antifuse wiring program.
2.3.1 SRAM-FPGA
Le plus largement utilisé dans les applications terrestres est le FPGA basé sur SRAM,
qui présente de nombreux avantages intéressants, tels qu'une capacité élevée, une
reprogrammabilité et une vitesse élevée. La reprogrammabilité représente un avantage
intéressant, ce qui signifie que la conception originale peut être mise à jour/améliorée
au cours de fonctionnement.
2.3.2 Flash-FPGA
Ces FPGA utilisent des mémoires Flash pour stocker la configuration, ce qui permet de
conserver la config1uration même en cas de coupure de courant.
2.3.3 Antifuse-FPGA :
Les Antifuse-FPGA utilisent des antifusibles pour configurer les connexions internes,
offrant une configuration permanente (OTP : One Time Programmable).
14
3 Flux de conception FPGA
15
contiennent la description de la logique et du comportement souhaités pour le
circuit. Ces fichiers source sont écrits en langage de description matérielle
(HDL) : VHDL ou Verilog.
2- Design Synthesis : La synthèse de conception, la deuxième étape de la
conception d'un FPGA, convertit les fichiers sources de haut niveau en une
netlist (description de la connectivité) au niveau de la porte .
3- Design implementation : Au cours de cette étape, la netlist générée à l'étape
précédente est traduite en une conception physique qui peut être programmée
sur le périphérique FPGA.
4- Bitstream File generation : cette étape de génération du fichier Bitstream
produit le fichier nécessaire à la programmation du FPGA. Le fichier Bitstream
contient les informations de configuration qui permettront au FPGA
d'implémenter le design numérique spécifié sur le matériel.
5- Upload on FPGA : La programmation d'un FPGA consiste à charger un fichier
Bitstream, contenant les données de configuration, sur le dispositif FPGA à
l'aide de logiciels spécialisés et d'interfaces matérielles. Cela configure le FPGA
pour un design numérique spécifique.
Le VHDL (Very high speed integrated circuit HDL) a été développé au début des années
1980, avec des travaux préliminaires qui ont commencé en 1983. Il a été standardisé
en 1987 par l'IEEE (Institute of Electrical and Electronics Engineers). Le VHDL (IEEE
Standard 1076) a été conçu pour décrire les implémentations matérielles, en
particulier dans les circuits programmables comme les FPGA et les ASIC. Pour plus de
détails, voir la partie 02.
16
4.2 Langage Verilog
Le Verilog ("Verification" + "Logic") a été développé au cours des années 1980 pour la
description de circuits électroniques et a été standardisé en 1995 (IEEE Standard
1364). Il a été conçu pour décrire des implémentations matérielles, en mettant l'accent
sur la modélisation et la simulation de circuits électroniques, en particulier dans les
circuits programmables comme les FPGA et les ASIC. Pour plus de détails, voir la partie
03 de ce cours.
Les deux langages peuvent être utilisés pour créer du code qui s'exécute sur des FPGA
et des ASIC. Globalement, il y a plusieurs points dont vous devez être conscient :
Typage : VHDL est fortement typé, ce qui signifie que le compilateur impose des
contraintes strictes sur les types de données. Cela peut rendre plus difficile
pour les débutants d'éviter les erreurs, mais cela garantit également une
meilleure robustesse du code. Verilog, en revanche, est faiblement typé, ce qui
permet d'écrire un code potentiellement erroné, mais il est souvent plus concis.
Le choix entre Verilog et VHDL dépend souvent des préférences individuelles, des
exigences du projet et des normes de l'industrie. Les débutants peuvent trouver
Verilog plus accessible en raison de sa ressemblance avec les langages de
programmation logicielle, mais VHDL offre une vérification plus stricte qui peut éviter
17
certaines erreurs. Le choix dépendra des objectifs spécifiques du projet et du confort
personnel avec les langages. La figure représente la popularité des deux langages dans
certains pays. Par ailleurs, la figure 16 représente un exemple de implémentation
hardware réalisée par les deux langages.
18