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.