Electronique numérique avancée
Ref: 3SQ4030
Description
Ce
cours présente et forme à la méthodologie de conception de systèmes numériques et
logiques complexes partant de la spécification fonctionnelle jusqu'à la
synthèse logique sur FPGA. Dans une première partie constituée de cours
magistraux et TD et dans l’objectif de préparer la deuxième partie du module, on
étudie la méthode de conception d’une architecture détaillée sous forme de
schéma bloc assemblant des blocs usuels dimensionnés à la taille optimale, en
partant d’un cahier des charges décrivant un algorithme. La seconde partie du
module est centrée autour d’un projet à réaliser à partir d’un cahier des
charges. L’objectif du projet est d’obtenir une réalisation complète qui
fonctionne sur carte FPGA. En guise d’introduction, une intervention d’un
partenaire industriel présentera le contexte et la méthodologie de
développement des systèmes numériques embarqués sur FPGA. Une fois le cahier
des charges présenté, une architecture en schéma bloc devra être proposée par
les élèves. Puis une succession de cours/TD permettra, tout en apprenant le langage
VHDL, de réaliser des blocs de base nécessaires au projet avec l’outil
ModelSim. Enfin durant les séances de projet, les élèves devront implémenter
leur solution, réaliser les tests unitaires, valider en simulation et enfin sur
carte FPGA.
Période(s) du cours
SM10
Prérequis
Ce
cours est directement lié au cours d’architecture et conception de systèmes
embarqués dispensé en SD9 de la dominante SCOC.
Par
ailleurs, avoir suivi le cours SPI "Systèmes Electroniques" (deux occurrences
en SG1 et deux occurrences en SG3) et le cours électif "Architecture des
Systèmes Numériques et des Processeurs" (SG6) est un vrai plus.
Syllabus
Déroulé du cours:
Fondements sur les architectures logiques et numériques (6 HPE) :
- Cours (3h) : Compléments de bases de numérique sur le séquentiel (Finite State Machine), multi domaine horloge et synchronisation, systèmes complexes (chemins de données/séquenceur).
- TD (3h) : Architecture et fonctionnement de l'accumulateur et d'un filtre FIR
Contextualisation du projet dans un cadre industriel (3 HPE) :
- Cours (3h)
: Intervention de Airbus sur le contexte et la méthodologie de conception d’un système sur FPGA en entreprise et présentation du projet à réaliser
Cours, TD et études préliminaires au projet (12 HPE) :
- Cours/TD (3h): Introduction au VHDL, processus, hiérarchie et testbench / implémentation d'un premier bloc
- Cours/TD (3h) : Paquetages et opérations arithmétiques / calculs en type nombres signés et virgule fixe
- Cours/TD (3h) : Fonctions séquentielles simples / diviseur de fréquence
- Cours/TD (3h): Machines d'état
Développement du projet (15 HPE)
- Projet (3h): Conception de l’architecture du projet
- Projet (10h30) : Réalisation, tests unitaires et validation
- Examen (1h30) : Présentation orale avec présentation du projet et des résultats.
Composition du cours
Le cours commence par un cours magistral sur les fondements du numérique. Puis le module se compose exclusivement de séances de cours/TD et de projet afin de favoriser l'acquisition de compétence par apprentissage. Pour toutes ces séances pratiques, les élèves sont en groupe réduit. Chaque élève disposera d'un poste équipé d'une station Linux ou Windows installée avec des logiciels de conception et d'une carte FPGA de type DE10-lite.
Ressources
Les élèves seront amenés à pratiquer sur des outils professionnels de conception numérique tels que ModelSim et Quartus. Deux salles du CETIC sont équipées de stations Linux/Windows avec ces outils et de cartes FPGA. Les outils peuvent également être installés sur les machines personnelles des élèves si dotées d’un système Windows et Linux.
Résultats de l'apprentissage couverts par le cours
A
l'issue de ce cours les élèves sont capables de concevoir un système numérique
complexe en partant d'une spécification et d'une modélisation haut niveau. Ils
seront capables de construire une architecture de type schéma bloc réalisant
l’algorithme demandé, réaliser en VHDL les différents blocs, les tester en
simulation, interpréter les résultats, comprendre les causes des échecs
rencontrés et proposer des solutions à ces problématiques. Ils auront acquis la
maîtrise d’un outil de développement de système numérique sous FPGA.