Électronique Avancée : VHDL & FPGA
Conception numérique matérielle & machines d'états finis
OBJECTIFS PÉDAGOGIQUES
▹ Comprendre les différents types de circuits programmables et les
méthodologies de conception pour l'analyse des systèmes matériels.
▹ Acquérir les éléments fondamentaux de la programmation en VHDL.
▹ Savoir implémenter une machine à états finis (FSM) sur FPGA.
1 Introduction aux circuits programmables
1.1. Évolution et classification
• Des circuits SSI/MSI aux VLSI.
• Logique fixe vs. logique programmable.
1.2. Familles de circuits programmables
• PLA, PAL : logique simple.
• CPLD (Complex Programmable Logic Device) : architecture et applications.
• FPGA (Field-Programmable Gate Array) : définition, architecture interne (blocs
logiques configurables, blocs d'E/S, interconnexions).
2 Méthodologie de conception pour systèmes matériels
2.1. Approches de conception
• Top-Down (descendante) vs. Bottom-Up (ascendante).
2.2. Chaîne de conception (Design Flow)
• Spécification → Description (VHDL/schématique) → Simulation fonctionnelle →
Synthèse logique → Placement-routage → Programmation du FPGA.
2.3. Langages de description matérielle (HDL)
• VHDL et Verilog : rôles et différences.
3 Éléments fondamentaux de la programmation VHDL
3.1. Structure d’une entité VHDL
• Déclaration d’entité (ports : in, out, inout).
• Architecture (comportementale, structurelle, par flux de données).
3.2. Concepts clés
• Bibliothèques et packages (ieee.std_logic_1164.all).
• Types de données : bit, std_logic, std_logic_vector.
• Opérateurs logiques, arithmétiques et de comparaison.
3.3. Traitement de la concurrence
• Instructions concurrentes (when else, with select, generate).
• Processus séquentiels (process) et liste de sensibilité.
• Structures conditionnelles (if then else, case when).
4 Application : Machine à états finis (FSM) sur FPGA
4.1. Modélisation d’une FSM
• Machine de Moore (sorties liées à l’état).
• Machine de Mealy (sorties liées à l’état et aux entrées).
4.2. Implémentation VHDL d’une FSM
• Définition des états (type énuméré).
• Processus séquentiel (évolution des états).
• Processus combinatoire (gestion des sorties).
4.3. Prise en compte des équipements
• Gestion de l’horloge (clock) et des reset.
• Contraintes de timing et synchronisation.
Exemple pratique : conception d’un séquenceur / détecteur de séquence sur carte FPGA.
Microcontrôleurs PIC & Interfaçage des capteurs
Architecture, programmation et conditionnement des signaux
OBJECTIFS PÉDAGOGIQUES
▹ Connaître l’architecture et les éléments constructifs des microcontrôleurs
PIC.
▹ Maîtriser la programmation (C/assembleur) et les périphériques embarqués.
▹ Comprendre l’interfonctionnement entre capteurs et microcontrôleurs.
▹ Savoir concevoir l’interfaçage physique et logiciel des capteurs.
1 Architecture et éléments constructifs des PIC
1.1. Introduction aux microcontrôleurs
• Différence microprocesseur vs. microcontrôleur.
1.2. Architecture interne (PIC16F / PIC18F)
• CPU RISC, jeux d’instructions réduit.
• Mémoires : Flash (programme), RAM (données), EEPROM.
• Périphériques intégrés : horloge, watchdog, timers.
1.3. Notions de bus et gestion des ports
• Bus de données, bus d’adresses, bus de contrôle.
• Configuration des ports d’E/S (TRIS, PORT, LAT).
2 Programmation des microcontrôleurs PIC
2.1. Environnement de développement
• MPLAB X IDE, compilateur XC8 (C).
2.2. Configuration du microcontrôleur
• Bits de configuration (FOSC, WDT, etc.).
• Initialisation de l’horloge.
2.3. Entrées/Sorties et périphériques
• Configuration des broches numériques.
• Timers : génération de délais, temporisation.
• Modules de communication : UART, SPI, I²C.
• Convertisseur Analogique-Numérique (CAN).
3 Interfaçage des capteurs avec les microcontrôleurs PIC
3.1. Classification des capteurs
• Capteurs numériques (sortie logique, protocoles I²C/SPI).
• Capteurs analogiques (variation de tension / courant).
3.2. Conditionnement du signal
• Adaptation de niveaux de tension (diviseur résistif, translation).
• Filtrage et anti-rebond.
• Protection des entrées (diodes, résistances de limitation).
3.3. Interfaçage selon le type de capteur
• Capteur analogique : utilisation du module CAN, conversion tension → grandeur
physique.
• Capteur numérique simple : gestion des interruptions (ex : détecteur de présence).
• Capteur communicant : implémentation des protocoles (I²C pour capteur de
température, etc.).
4 Application pratique : acquisition et traitement de données
4.1. Étude de cas : chaîne d’acquisition complète
• Choix du capteur et du microcontrôleur PIC.
• Schéma de câblage (alimentation, pull-up, liaisons).
4.2. Programmation intégrée
• Initialisation des périphériques (horloge, CAN, UART).
• Lecture cyclique des données capteur.
• Traitement des données (moyennage, conversion).
• Transmission des résultats (affichage, liaison série).
4.3. Débogage et optimisation
• Vérification à l’oscilloscope / analyseur logique.
• Optimisation énergétique (modes veille, gestion dynamique).
Exemple concret : mesure de température avec un capteur I²C (ou LM35 via CAN) et
affichage sur console série.