Projet de systems-on-chip
Weekly outline
-
Topic: rene.beuchat@epfl.ch's Zoom Meeting PrSOC Time: This is a recurring meeting Meet anytime Join Zoom Meeting https://epfl.zoom.us/j/788002070 Meeting ID: 788 002 070
Résumé
Les étudiants mettront en pratique leurs connaissances en génie informatique, principalement au niveau du matériel. Ils utiliseront des microcontrôleurs et des systèmes sur FPGA & ARM. Les laboratoires permettront de mettre en œuvre 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 microcontrô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
-
Manuel de référence carte DE0-nano-soc
https://www.terasic.com.tw/cgi-bin/page/archive_download.pl?Language=English&No=941&FID=861ddacf76301ff9b48079426b003675
- 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 (<1h)
Pratique (2h)
- NIOS II & Lab 1.1 - PWM Control Hardware
-
Lab 1.1
-
Annexes
- NIOS II & Lab 1.1 - PWM Control Hardware
-
Cours théorie (1h)
- Joystick, ADC on SPI introduction
Pratique (3h)
- Lab 1.2 - Joystick Interface
-
Cours
-
Lab 1.2
-
Annexes
-
Cours théorie (1h)
Pratique (2h)
- Lab 1.2 - Joystick Interface
Fin du contrôle des servo-moteurs par Joystick sur l'ADC. - DEMO!
-
Usefull link for documentation on used FPGA boards and tools
- 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
-
Schematics:
Layout et pins:
https://media.digikey.com/pdf/Data%20Sheets/FLIR%20PDFs/250-0577-00_DS_1-2021.pdf
Ref Board:
https://www.digikey.ch/product-detail/en/flir-lepton/250-0577-00/1577-250-0577-00-ND/10385179
Ref Sensor Lepton 2.5:
https://www.digikey.ch/product-detail/en/flir-lepton/500-0763-01/500-0763-01-ND/6250105
-
Cours théorie (10')
Pratique (3h)
- Lab 2.1 - Full System Integration
-
Lab 2.1
-
Annexes
-
The very big documentation on the qsys (enmbedded designer ) description
-
The Nios II Software Build Tools Reference guide (from IntelFPGA)
- Lab 2.1 - Full System Integration
-
Part III: Test sur carte, validation de la caméra avec NIOS II
Test du système spécifique avec développement de logiciel en C avec des outils de cross-debugging (baremetal coding)
-
Boot et test d'un système embarqué, baremetal design (I, II)
Intro au système ARM-A9
Base du système avec processeurs ARM sur FPGA
-
What is the Cyclone V architecture?
-
Lab 3.0
-
-
Vacances Pâques
-
Continuation du Lab 3.0 sur le boot et test d'un système embarqué avec un processeur ARM.
https://epfl.zoom.us/j/788002070
Attention!!!!!
Les infos dans les énoncés ne fonctionnent que avec la version 18.1 de Quartus !!!
Utilisez la VM fournie ou chargez la version 18.1 de Quartus !!!!
-
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.
-
Ascension, congé
-
Mini-Project
For Final presentation, select on doodle:
To be added
Please fill the doodle with all the slot where you can present your mini-project.
Please put the name of the 2 persons in the group
Max 30' per group, including question and demo, oral presentation with slides on :
- introduction on your mini-project
- your system architecture,
- development methodology
- result
- demo
- conclusion
Put bloc diagrams, timing diagrams
With you report, put a small video with your result.
Best
-
Semaine du lundi de Pentecôte
Extra session, presentation of the Mini-projet, la date précise sera déterminée ultérieurement