Les bases du langage VHDL
Objectifs
|
- Cours théorique
- Support de cours au format PDF (en anglais) et imprimé
- Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique
- Activités pratiques
- Les activités pratiques représentent de 40% à 50% de la durée du cours
- Elles permettent de valider ou compléter les connaissances acquises pendant le cours théorique.
- Un PC par binôme pour les activités pratiques
- Pour Xilinx:
- Xilinx Xilinx Vivado IDE
- Carte Nexys-3 (basée sur Xilinx Spartan6) ou Nexys-4 (basée sur Xilinx Artix7)
- Pour Lattice :
- Diamond avec Synplify Pro et Active-HDL
- Carte ECP2 ou MachXO
- Pour Actel :
- Libero avec Synplify Pro
- ModelSim + Actel Fusion
- Exemples de code, exercices et solutions
- Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pours s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
- Connaissance de la technologie numérique
- Notions d'algèbre booléenne
- Quelques notions de programmation sont souhaitables (quel que soit le langage)
- Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
- Les prérequis sont vérifiés avant l'entrée en formation, sur la base des prérequis publiés sur cette fiche.
- Pendant la formation, les acquis sont évalués en continu : quiz de fin de séquence et observation directe du formateur.
- À l'issue de la formation, chaque participant reçoit une attestation de fin de formation.
Plan du cours
- Rappels d'électronique numérique
- Logique combinatoire
- Logique séquentielle (synchrone)
- Schémas / représentation hiérarchique
- Structure d'un circuit intégré
- SSI (small scale integration), TTL
- MSI (medium scale integration), PAL, GAL, PLD
- LSI (large scale integration), CPLD
- VLSI (very large scale integration), ASIC, ASSP, FPGA
- Élaboration des architectures logiques
- Contraintes technologiques
- Méthodes d'interconnexion (SRAM, Fuse, AntiFuse, Flash)
- Distribution de l'horloge
- Types d'éléments logiques
- Look Up Table
- Cellule logique de base
- Modules d'entrée/sortie
- Problèmes de timing
- Apports de VHDL
- Avantages de la programmation en VHDL
- Le flot de conception VHDL
- Programmation
- Simulation
- Synthèse
- Mapping
- Place and Route
- Analyse temporelle
- Génération du bitstream
- Le concept entity / architecture
- Déclaration d'entity
- Ports
- Différents styles d'architecture
- Bibliothèques et contexte
- Instanciation de composants
- Port map
- Flot et environnement de simulation
- Le testbench
- Prise en main de l'IDE
- Création d'un projet à partir de zéro
- Synthesis / Translate / Map / Place and Route (PAR) /BitGen
- Analyse des rapports
- Affectation des broches d'entrée/sortie avec Planahead (édition du fichier de contraintes)
- Vues schématiques
- Analyse du placement
- Programmation du composant avec Impact
- Éléments lexicaux
- Commentaires
- Identificateurs et mots-clés
- Caractères, chaînes, nombres, chaînes de bits
- Constantes
- Signaux
- Variables et alias
- Types de données
- Types scalaires :
- Integer
- Real
- Type énuméré
- Types physiques
- Types composites :
- Array
- Record
- Types particuliers
- Bibliothèques et packages
- Package standard
- Packages IEEE
- Package Std_logic_1164
- Types multivalués
- Types multi-driver et types résolus
- Types numériques
- Conversion de types
- Agrégats
- Attributs
- Attributs de type
- Attributs de signal
- Instructions concurrentes
- Instanciation de composants
- Affectation de signal
- Affectation simple
- Instruction With… Select… When
- Instruction When… Else
- Mot-clé Unaffected
- Agrégats de variables
- Opérateurs relationnels
- Opérateurs arithmétiques
- Concaténation / slicing
- Instructions séquentielles
- Process
- Liste de sensibilité, instruction Wait
- Incohérences d'interprétation possibles entre la synthèse logique et la simulation
- Affectation de signal
- Transparent Latch
- Utilisation des variables
- Instruction If… Then… Else
- Instruction Case… When
- Instruction Null
- Instructions itératives :
- Boucle For
- Boucle While
- Itération conditionnelle
- Packages Numeric_std / Numeric_bit
- Types et opérateurs définis
- Fonctions de conversion
- Ambiguïté sur les types et clause « use »
- Limites des conceptions asynchrones
- Conception synchrone, registres et timing
- Notion de pipeline
- Description d'une bascule D
- Utilisation des variables dans un process synchrone
- Synthèse des variables
- Gestion du reset et du set
- Clock Enable
- Description des buffers trois états
- Méthodologie de conception synchrone
- Synthèse des mémoires
- RAM asynchrone
- RAM synchrone
- Simple port
- Double port
- Pipelinée
- ROM
- Introduction au générateur d'IP
- Découpage hiérarchique
- Analyse et élaboration
- Composants et configurations
- Composants
- Configuration des instances de composants
- Instanciation directe
- Configurations de base
- Déclaration de configuration
- Liaison par défaut
- Spécification de configuration
- Port map et generic map
- Généricité et configuration automatique de modules réutilisables
- Packages
- Déclarations de package
- Corps de package
- Utilisation d'un package
- Bibliothèques
- Synthèse
- Restrictions syntaxiques et sémantiques
- Créer des designs synthétisables
- Inférence des éléments matériels
- Initialisation et reset
- Pragmas
- Testbenches
- Quelques règles de base pour l'écriture d'un testbench efficace
- Incohérences possibles entre la synthèse logique et la simulation : comment les éviter
- Instructions VHDL spécifiques à la simulation
- Testbench avec entrées/sorties fichier
Plus d'information
Pour vous enregistrer ou pour toute information supplémentaire, contactez nous par email à l'adresse info@ac6-formation.com.
Les inscriptions aux sessions de formation sont acceptées jusqu'à une semaine avant le début de la formation. Pour une inscription plus tardive nous consulter
Vous pouvez aussi remplir et nous envoyer le bulletin d'inscription
Ce cours peut être dispensé dans notre centre de formation près de Paris ou dans vos locaux, en France ou dans le monde entier.
Les sessions inter-entreprises programmées sont ouvertes dès deux inscrits. Sous condition d'un dossier complet, les inscriptions sont acceptées jusqu'à une semaine avant le début de la formation.
Dernière mise à jour du plan de cours : 2 juillet 2026
L'inscription à nos formations est soumise à nos Conditions Générales de Vente
Sur le même sujet :
Yocto ou Buildroot : comment choisir pour votre projet Linux embarqué