| |
| Formation - Synthèse logique et
simulation VHDL pour conception de FPGA
Xilinx (reference 002572A) |
|
| |
| |
|
 |
|
Partenaires
- Les outils utilisés pendant cette
formation sont les suivants :
- Outils de synthèse XST (Xilinx)
et Synplify-Pro (Synplicity)
- Outils d'implémentation Xilinx
ISE
- Simulateur VHDL Modelsim
- Chaque binôme dispose d'un PC
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Formations connexes
D'autres formations
proposées par MVD permettent d'approfondir les
aspects suivants sur les FPGA :
- Optimisation des
performance
- Optimisation des
performances pour concepteurs d' ASIC
- Techniques
d'implémentation de fonctions DSP pour
FPGA Xilinx
- Conception de
systèmes PCI
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Pré-requis
- Cette formation
s'adresse aux ingénieurs électroniciens
ayant déjà de bonnes connaissances en
conception de circuit d'électronique
numérique, désireux d'acquérir une
solide méthodologie de conception, et de
tirer le meilleur parti du langage VHDL,
ainsi que des outils de synthèse et de
simulation associés pour développement
de FPGA Xilinx, et plus particulièrement
les familles Spartan3 et dérivées..
- De nombreux travaux
pratiques accompagnés de démonstrations
permettent de vérifier le bien-fondé de
cette méthodologie faisant appel entre
autres à l'utilisation d'un style
d'écriture VHDL approprié permettant
une implémentation efficace et
réutilisable, tout en facilitant la mise
au point.
|
|
|
| |
|
|
|
|
|
|
 |
|
 |
|
Objectifs de la formation
- Appréhender les
multiples possibilités offertes par le
langage VHDL
- Comprendre les
notions de synthèse logique
- Connaître les
styles d'écriture et leur impact sur la
qualité des résultats de synthèse
- Connaître les
performances pouvant être attendues des
FPGA Xilinx
- Apprendre à
paramétrer les options de compilation et
les contraintes d'implémentation
- Manipuler les
outils de débug et les rapports
d'implémentation
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Durée
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Programme Architecture des FPGA
Spartan3 et familles dérivées
- Structure générale
- Notions de CLB et de slices
- Logique combinatoire et bascules
- Logique arithmétique
- Notions de mémoire distribuée
- Registres à décalage SRL16
- Blocs d'entrée sortie
- Bascules d'entrée/sortie
- Registres DDR
- Paramétrages électriques et de timing
et spécificités Spartan3E, Spartan3A
- Blocs de RAM dédiée et modes
d'utilisation
- Implémentation de FIFOs paramétrables
- Autres exemples d'utilisation
- Distribution d'horloges et DCMs
- Buffer globaux, buffers locaux (Sparta
3E/A)
- DCMs et paramétrage
- Multiplieurs dédiés et blocs DSP48A
(Spartan_3A-DSP)
- Configuration
- Maitre, esclave, SPI (Spartan3E/A)
Différences fondamentales avec
l'architecture Virtex 4
Introduction à l'architecture Virtex
5
Outils d'implémentation et de mise au
point (ISE 9.x)
- Flot d'implémentation et de génération
de bitstream
- Translate
- Map
- Place and Route (PAR)
- BitGen
- Analyse des rapports MRP et PAR
- Principales options d'implémentation
- MAP
- Empaquetage des bascules d'Ios
- CLB Pack factor
- MAP-timing
- PAR
- Effort global
- Extra effort
- Multi Pass Place and Route
- Autres options
- BITGEN
- Options de configuration
- Options de Startup
- Outils d'analyse de résultats
d'implémentation - contraintes
- FLOORPLANNER
- Comment analyser la qualité du
placement
- Génération de contraintes de
placement
- Par éléments
- Par blocs fonctionnels
- FPGA EDITOR
- Vérification de détails
d'implémentation
- Identification des ressources
arithmétiques
- Navigation
- Vérification d'aspects
importants du routage (lignes
d'horloges, accès aux BUFGs,
DCMs ...)
- TIMING ANALYZER
- Analyse globale de la performance
d'un design
- Crossprobing entre le Timing
Analyzer et FPGA Editor ou
Floorplanner
- Conclusions à tirer pour
optimisation du design
- Modifier le code source
- Rajout et/ou relâchement
de contraintes
- Effectuer de nouvelles
itérations
d'implémentation avec de
nouvelles options
- Introduction à CHIPSCOPE
- Fichier de contraintes
- Contraintes de placement et de
configuration électrique des Ios
- Contraintes basiques de timing
- Contraintes avancées de timing
- Chemins multi-cycle
- Faux chemins
- Limitations sur les Contraintes
sur chemins reliant 2 domaines
d'horloge différents
- Contraintes avancées de placement
- AreaGroup : précautions
d'utilisation
Règles d'écriture du code VHDL en
synthèse logique
- Notion d'entité/architecture
- Instructions concurrentes et
séquentielles
- Objets et types prédéfinis
- Opérateurs prédéfinis et d'utilisation
étendue par l'utilisation de packages
standardisés
- Les process
- Importance de la liste de sensibilité
- Instructions séquentielles : if, case,
loop
- Utilisation de variables
- Quelques pièges classiques à éviter
- Incohérences potentielles
d'interprétation entre la synthèse
logique et la simulation : comment s'en
affranchir ?
Travaux pratiques
Méthodologie de conception hardware
en synthèse logique
- Conception asynchrone et pièges
classiques
- Métastabilité et aléas de
fonctionnement
- Limitations de la simulation
fonctionnelle et timing sur les designs
asynchrones : comment s'en affranchir ?
- Conception synchrone - avantages -
méthodologie - mise au point
- Analyse statique de timing : comment
l'utiliser ?
- Optimisation de performances
indépendamment de la cible
- Notions de pipeline
- Gestion d'évènements asynchrones
- Aléatoires
- Flots de données
Travaux pratiques
Approfondissements sur le langage VHDL
pour l'optimisation et la réutilisation du code
en synthèse logique
- Notions de variables et exemples
d'utilisation
- Généricité et re-paramétrage
automatique des modules réutilisables
- Attributs prédéfinis utiles en
synthèse logique
- Fonctions et procédures
- Définition de packages et librairies
Travaux pratiques
Gestion de la hiérarchie pour une
meilleure réutilisation
- Organisation de design par modules
fonctionnels : quel découpage choisir ?
- Notions d'inférence et d'instanciation
- Quand doit-on instancier primitives ou
macros ?
- Précautions à prendre pour un code
évolutif et/ou réutilisable
- Importance du choix de noms des modules
et des nets pour faciliter
l'implémentation physique, la simulation
et la mise au point
- Doit-on préserver la hiérarchie lors de
la synthèse logique ?
Travaux pratiques
Testbenches et simulation
- Quelques règles de base pour l'écriture
d'un testbench efficace
- Instructions VHDL spécifiques à la
simulation
- Wait et ses différentes formes
- Boucles " Loop "
- Assertions
- Types de données
- Autres
- Ecriture de modèles de composants
destinés à rendre la simulation plus
réaliste
- Utilisation de modèles et packages de
simulation existants
Travaux pratiques
- Intégration de " pseudo logique
" afin de faciliter
l'interprétation des résultats de
simulation
- Ecriture et lecture de fichiers ASCII
- Affectation d'un flot de données à
partir d'un fichier
- Stockage des résultats de simulation
dans un fichier
- L'interpréteur de commandes
- Génération de messages d'information
Travaux pratiques
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Notes importantes
Cette formation a été mise au point par des
professionnels fortement expérimentés en
conception de circuits d'électronique
numérique. Son approche didactique permet de
comprendre l'intérêt d'une véritable
méthodologie de design et facilite sa mise en
uvre par une approche d'anticipation. Sa
durée peut être adaptée en fonction des
besoins précis des participants, et de leur
expérience préalable.
Pour un déroulement plus fluide de la formation,
les exemples développés pour la synthèse
logique sont ensuite réutilisés pour les
travaux pratiques de simulation. La formation se
déroule pas à pas, avec des mises en pratiques
progressives, permettant de vérifier par la
pratique (exemples VHDL) de vérifier les
différents aspects des architectures et des
outils de synthèse et d'implémentation.
Les aspects "optimisation" du code pour
les différents types de cibles en fonction des
outils de synthèse (et de leur performances sur
tel ou tel type de cible) choisis peuvent être
abordés pour une meilleure compréhension de
l'impact du choix des outils de synthèse sur les
résultats en fonction de la cible choisie.
Pour les travaux pratiques, MVD recommande - et
met à la disposition des participants - les
outils suivants :
- Synthèse logique : Synplify-Pro (Synplicity) -
Faire la demande avec anticipation
- Simulation : ModelSim
- Implémentation physique et analyse statique de
timing : Xilinx ISE 9.1 ou postérieure
Cependant d'autres outils de synthèse,
simulation et implémentation physique peuvent
être utilisés sur demande. Nous consulter pour
tout besoin particulier.
Configuration matérielle des
microordinateurs pour un fonctionnement optimal :
- PCs à base de Pentium IV ou équivalent
- Windows 2000 ou XP
- 2 Giga octets disponibles sur le disque dur
- 512 Méga octets de RAM
- Lecteur de CDROM
- Résolution écran : égale ou supérieure à
1024 x 768
Pour les formations " intra ", prévoir
un vidéo-projecteur |
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Documentation
Les supports de cours en français sont fournis
aux participants. Précis et faciles à utiliser,
ils peuvent servir de référence par la suite.
Le listing des exercices est également fourni
aux participants. |
|
|
 |
|
|
|
|
|
|