Projet de Systems-on-Chip
Weekly outline
-
Résumé
Les étudiants mettront en pratique leurs connaissances en génie informatique, principalement au niveau du matériel. Ils utiliseront des micro-contrôleurs et des systèmes sur FPGA & ARM. Les laboratoires permettront de mettre en oeuvre du Linux embarqué sur FPGA/ARM. Ils utiliseront des outils de cross-développement ainsi que des analyseurs logiques et oscilloscopes.Contenu
Ce cours est centré sur des laboratoires pratiques à réaliser par les étudiants.
Généralement une introduction d'une heure est suivie de 1 à 3 sessions de laboratoires pratiques pour réaliser des mini-projets par groupes.
Lors des laboratoires, les travaux seront effectués sur des cartes FPGA-SOC avec processeurs embarqués sous forme softcore (NIOSII) et/ou hardcore (ARM). Des interfaces programmables simples et complexes seront développées en VHDL pour s'interfacer avec des modules externes à contrôler.
La méthodologie pas-à-pas sera utilisée pour arriver à la réalisation de systèmes relativement complexe.
Les sujets suivants seront étudiés et implémentés :
- Analyse du système : Multicore ARMs, FPGA, I/Os, et interfaces programmables spécialisées ;
- Design et simulation d'une interface programmable réalisée en VHDL (I, II) ;
- Design et simulation d'un accélérateur spécifique réalisé en VHDL (I,II, III) ;
- Test du système spécifique avec développement de logiciel en C avec des outils de cross-debugging (baremetal coding)(I) ;
- Boot et test d'un système embarqué, baremetal design (I, II) ;
- Installation d'un OS: Adaptation et compilation de Linux pour la carte de laboratoire (I, II) ;
- Développement d'un logiciel de démonstration (I, II) ;
- Présentation des résultats.
Méthodes d'enseignement
- Travail par groupes de 2 étudiants
- Laboratoires pratiques
- Mini-projets spécifiques par groupe
- Travaux avec des outils de développement croisé et de systèmes matériels réels
- Utilisation des outils de débogage tels que cross-debugger, oscilloscopes et analyseurs logiques
- Les travaux sont réalisés sur les systèmes matériels réels avec des micro-contrôleurs et FPGA.
Systèmes utilisés
Le support de laboratoire consiste en carte de développement DE0-nano-SoC (Terasic) avec FPGA Cyclone V (Altera) contenant 2 processeurs ARM-A9 embarqués.
Des cartes d'extension particulières pour ces laboratoires ont été développées:- Caméra PAL sur support mobile, à interfacer par décodeur PAL
- 2 servo-moteurs, à contrôler par FPGA
- Joystick à interfacer sur bus SPI
- Caméra thermique sur I2c et SPI à gérer par FPGA
- Affichage LCD à contrôler par FPGA
- QuartusII, Qsys d'Altera
- Simulateur ModelSim de Mentor
- Outils de cross-compilation et debugger pour ARM: ARM-DS5
- Analyseur Logique sur USB LogicPro16 de saleae
-
A wiki to document the hardware and the software used during this course.
-
Assignements
- Analyse du système : Multicore ARMs, FPGA, I/Os, et interfaces programmables spécialisées ;
-
Cours théorie (1h)
- Description générale du cours
- Formation des groupes
- Analyse du système :
- Multicore ARMs,
- FPGA,
- I/Os,
- Interfaces programmables spécialisées
- VHDL
Pratique (2h)
- Lab 1.0 - PWM Control Software
-
Cours
-
Lab 1.0
-
Annexes
-
Standard user = vm
Password = 1234
Root user = root
Password = 1234
- Description générale du cours
-
Cours théorie (0h)
Pratique (3h)
- Lab 1.1 - PWM Control Hardware
-
Lab 1.1
-
Annexes
- Lab 1.1 - PWM Control Hardware
-
Cours théorie (0h)
Pratique (3h)
- Lab 1.2 - Joystick Interface
-
Lab 1.2
-
Annexes
- Lab 1.2 - Joystick Interface
-
Cours théorie (1h)
Pratique (2h)
- Lab 1.2 - Joystick Interface
Fin du contrôle des servo-moteurs par Joystick sur l'ADC. - DEMO!
-
Cours
- Lab 1.2 - Joystick Interface
-
Cours théorie (1h)
- Introduction aux caméras: IR, PAL, CMOS
Pratique (2h)
- Lab 2.0 - Thermal Camera Interface
-
Lab 2.0
-
Cours théorie (0h)
Pratique (3h)
- Lab 2.1 - Full System Integration
-
Lab 2.1
-
Annexes
- Lab 2.1 - Full System Integration
-
Part III: Test sur carte, validation
Test du système spécifique avec développement de logiciel en C avec des outils de cross-debugging (baremetal coding)
Intro au système ARM-A9
-
Boot et test d'un système embarqué, baremetal design (I, II)
Base du système avec processeurs ARM sur FPGA
-
Lab 3.0
-
-
Continuation du Lab 3.0 sur le boot et test d'un système embarqué avec un processeur ARM.
-
Vacances Pâques
-
Installation d'un OS: Adaptation et compilation de Linux pour la carte de laboratoire
-
Lab 3.1
-
-
Continuation du Lab 3.1 sur l'installation d'un OS: Adaptation et compilation de Linux pour la carte de laboratoire.
-
Développement d'un logiciel de démonstration sous Linux embarqué.
Quelques exemples:- Afficher "vidéo" thermique sur LCD.
- Créer une color map pour la caméra thermique (rouge = chaud, bleu = froid), ...
- Streaming "vidéo" thermique vers un autre PC / serveur web.
- Appliquer des filtres (openCV) sur les images thermiques en fonction de l'input des joysticks.
- Jeux vidéos version libncurses:
- Snake
- Space Invaders
- Pacman
- ...
Vous pouvez bien sûr aussi proposer des idées.
-
Présentation Mini-projet:
15' WITH SLIDES + 15' demo & questions
AND your usual report, delay 10 of June at LAST
Another date is possible:
Thursday 6th of June 10h-12h
send me an email if you want this option !
-
Ascension, congé
-
Final presentation last date possible !!
Jeudi 6 de 8h15 à 11h.
Merci de remplir le doodle (1 ligne/groupe, mettez tous les noms du groupe.
https://epfl.doodle.com/poll/c4qzy95nvnmuq534