+ +
- -
Cours en ligne
 
Calendrier  Détails
Systèmes d'Exploitation
 
Calendrier  Détails
Programmation
Calendrier  Détails
Processors
 
Calendrier  Détails
Communications
 
 
 
Calendrier  Détails
+ +
> >
- -

 
ac6 >> ac6-training >> Cours en ligne >> Programmable Logic >> Caractéristiques avancées du langage VHDL Télécharger le catalogue Télécharger la page Ecrivez nous Version imprimable

oV2 Caractéristiques avancées du langage VHDL

formateur
Objectifs
  • Comprendre les différentes possibilités offertes par le langage VHDL
  • Être capable de lire et de tester des composants VHDL
  • Comprendre les notions de synthèse logique
  • Comprendre le problème crucial de l’implémentation des machines à états finis (FSMs) dans le matériel
  • Organiser le code en développent des packages et des librairies
  • Réutilisation des composants
  • Apprendre à écrire des testbenches efficaces pour la simulation
  • Connaître les différents styles de rédaction et leur impact sur la qualité des résultats de la synthèse
  • Vérifier les timings
  • Comment structurer et écrire des environnements de vérification structurés VHDL importants et complexes
  • introduction aux méthodologies de vérification VHDL OSVVM et UVVM
Pré-requis
Environnement du cours
  • Cours théorique
    • Support de cours au format PDF (en anglais)
    • Cours dispensé via le système de visioconférence Teams
    • 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 Linux en ligne par stagiaire pour les activités pratiques
    • Xilinx Vivado IDE
    • Exemples de code, exercices et solutions
    • Le formateur a accès aux PC en ligne des stagiaires pour l'assistance technique et pédagogique
    • Certains travaux pratiques peuvent être réalisés entre les sessions et sont vérifiés par le formateur lors de la session suivante
  • 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
Audience visée
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus
Durée
  • Totale : 24 heures
  • 4 sessions de 6 heures chacune (hors temps de pause)
  • De 40% à 50% du temps de formation est consacré aux activités pratiques
  • Certains travaux pratiques peuvent être réalisés entre les sessions et sont vérifiés par le formateur lors de la session suivante

Première session
Synthesis and Testbenches
  • Synthesis
    • Syntactic and Semantic Restriction
    • Creating synthesizable Designs
    • Inferring Hardware elements
    • Initialization and Reset
    • Pragmas
  • Testbenches
    • A few basic rules for the writing of an efficient test bench
    • Potential incoherencies between logical synthesis and simulation: how to avoid it
    • VHDL instructions specific to simulation
    • Testbench with File I/O
Exercise :  Designing and testing a logical address decoder
Exercise :  Simulation of sequential processes
Exercise :  Advanced simulation techniques Text files
Finite State Machine (1st part)
  • The Finite State Machine Approach
    • Sequential Circuits and State Machines
    • State Transition Diagram
    • Transition Types
    • Moore-to-Mealy Conversion
    • Mealy-to-Moore Conversion
    • Exercises
  • Hardware Fundamentals
    • Flip-Flops
    • Metastability and Synchronizers
    • Pulse Detection
    • Glitches
    • Pipelined Implementations
    • Exercises
    • Hardware Architectures for State Machines
    • Fundamental Design Technique for Moore Machines
    • Fundamental Design Technique for Mealy Machines
    • Moore versus Mealy Time Behavior
    • State Machine Categories and State-Encoding Options
    • Safe State Machines
Deuxième session
Finite State Machine (2nd part)
  • Design Steps and Classical Mistakes
    • Classical Problems and Mistakes
    • Design Steps Summary
  • Regular State Machines
    • Architectures for Regular Machines
    • Number of Flip-Flops
    • Exercises
  • Timed State Machines
    • Architectures for Timed Machines
    • Timer interpretation
    • Transition Types and Timer Usage
    • Timer Control Strategies
    • Time Behavior of Timed Moore and Mealy Machines
    • Examples of Timed Machines
Exercise :  Designing a burstable RAM controller
Hierarchical Conception
  • Hierarchical division
  • Analysis and Elaboration
  • Components and Configurations
    • Components
    • Configuring components instances
    • Direct instantiation
    • Basic configurations
    • Configuration declaration
    • Default binding
    • Configuration specification
  • Port map and Generic map
    • Genericity and automatic configuration of re-usable modules
  • Packages
    • Package Declarations
    • Package Bodies
    • Using package
  • Libraries
Exercise :  Designing a generic 4-digits BCD-counter and displaying it on a 7-segment display
Exercise :  Enhancing a 4-bit BCD-counter/decounter to create a generic one
Exercise :  Working with configurations
Exercise :  Designing a n digits BCD-counter/decounter and displaying it on a 7-segment display
Troisième session
Design Methodology for Synthesis
  • Designing for Synthesis
  • Metastability
  • Memory Synthesis
  • Reset Generation
  • Crossing Clock domains
Exercise :  Metastability
Timing analysis and constraints
  • Timing Closure challenges
  • A methodology for successful Timing Closure
  • Common Timing Closure Issues
  • Static Timing Analysis
  • Role of Timing Constraints in STA
  • Common Issues in STA
  • Delay Calculation versus STA
  • Timing Path
  • Setup and Hold
  • Slack
  • On-Chip Variation
  • Clock
  • Port Delays
  • Completing Port Constraints
  • False Paths
  • Multi Cycle Paths
  • Combinational Paths
  • Xilinx Extensions
Exercise :  Design closure
Exercise :  Analyzing and Resolving timing violations
Quatrième session
Introduction to Open Source VHDL Verification Methodology (OSVVM)
  • Overview
  • Transaction-Level Modeling
  • Constrained Random Test Generation
  • Functional Coverage
  • Intelligent Coverage Randomization Methodology
  • Utilities for Testbench Process Synchronization
  • Transcript Files
  • Error Logging and Reporting – Alerts and Affirmations
Introduction to Universal VHDL Verification Methodology (UVVM)
  • Utility Library
  • VVC (VHDL Verification Component) Framework
  • BFMs (Bus Functional Models
  • OSVVM and UVVM
Vivado Debug
  • Vivado Integrated Logic Analyzer (ILA)
  • Adding debug nets
  • Analyzing debug data
  • Resources