ECTS
30 crédits
Composante
ENSEIRB-MATMECA
Code interne
EES9SE00
Liste des enseignements
UE E9SE-A - Architecture matérielle et conception conjointe
6 créditsUE E9SE-B - Architecture logicielle et systèmes d'exploitation
6 créditsUE E9SE-C - Réseaux et sécurité des systèmes
6 créditsUE E9SE-D - Approfondissement
7 créditsUE Langues et culture de l'ingénieur
5 crédits
UE E9SE-A - Architecture matérielle et conception conjointe
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Appréhender les techniques de conception de systèmes sur silicium (SoC) mêlant matériel et logiciel par la méthode du codesign : (C1, N3), (C2, N3)
Appréhender les techniques de mise en oeuvre de matériels libres et logiciels libres dans un système embarqué : (C1, N3), (C2, N3)
Appréhender les techniques de synthèse de haut niveau pour la conception de systèmes sur silicium (SoC) : (C1, N3), (C2, N3)
Appréhender la mise en oeuvre de machines de calculs dites de haute performances : (C1, N3), (C2, N3)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Concevoir un système sur silicium à base de circuit FPGA par la méthode du codesign : (C3, N3), (C4, N3), (C5, N2)
Choisir des solutions matérielles et logicielles libres pour concevoir son système sur silicium : (C3, N3), (C4, N2), (C5, N2)
Concevoir un système sur silicium sur circuit FPGA à l'aide des outils de synthèse de haut niveau (HLS) : (C3, N3), (C4, N3), (C5, N3)
Mettre en oeuvre un langage de description matériel au niveau système (systemC) : (C3, N3), (C4, N3), (C5, N3)
Mettre en oeuvre des solutions de calcul intensif sur système sur puce multi-cœurs et GPGPU avec l'aide de bibliothèques adaptées (OpenMP, CUDA...) : (C3, N3), (C4, N3), (C5, N3)
Flot de conception numérique avancée
Composante
ENSEIRB-MATMECA
L'objectif de cet enseignement est de faire prendre conscience auxétudiants des différents niveaux d'abstraction séparant les spécificationsd'un système de son implantation matérielle. Une méthodologie basée surle langage SystemC est employée afin d'illustrer les différentes étapesde conception nécessaires pour aboutir à la définition d'un architecturefonctionnelle. Pour conclure, une étude comparative de la solution développée manuellement est comparée à une solution générée par unoutil de synthèse d'architecture (HLS) du commerce.
Conception conjointe matérielle/logicielle. Matériels libres pour l'embarqué
Composante
ENSEIRB-MATMECA
Cours :
SoC. Codesign.
Etat de l'art technologique.
Blocs IP et composants virtuels.
Partitionnement matériel-logiciel.
Description de la mise en oeuvre du codesign sur la plateforme SoPC Quartus II Prime d'Intel (ex Altera).
TP :
- Grand TP1 : outils Intel (ex Altera). Mise en oeuvre du codesign sur une carte Terasic DE10-Standard avec Quartus Prime. Construction d'un premier SoPC avec le processeur softcore NIOS II, PLL, SDRAM, timer, switchs, boutons poussoirs, leds et afficheurs 7 segments. Construction d'une deuxième SoPC avec en plus une interface VGA. Programmation en langage C embarqué. Mise en oeuvre du noyau Temps Réel microC/OS II. Tests des périphériques matériels. Miniprojets (chronomètre, horloge).
- Grand TP2 : outils AMD (ex Xilinx). Mise en oeuvre du codesign sur une carte Digilent ZedBoard avec Vivado. Développement en VHDL RTL et intégration d'un périphérique matériel libre (compteur 64 bits). Programmation en langage C sous Linux embarqué. Mise en oeuvre de l'extension Linux Temps Réel dur Xenomai Cobalt. Tests du périphérique matériel. Mesures des performances Temps Réel et de temps de latence.
Calcul haute performance pour les systèmes embarqués (HPEC)
Composante
ENSEIRB-MATMECA
Cet enseignement a pour but de traiter de l'évolution des systèmes embarqués qui tendent à devenir des machines de calculs dites de haute performance.
Le cours s'articule autour de la conception en langage C/C++ d'un outil de simulation de collisions de galaxies en temps réel, sur la carte de développement embarqué NVIDIA Jetson TK1. La complexité algorithmique (O²) d'un tel simulateur nécessite la pleine utilisation de toutes les capacités de calculs disponibles sur le système-sur-puce (multi-cœurs et GPGPU) en utilisant les API adéquates (OpenMP et CUDA). L'accent est également mis sur l'utilisation de deux API SDL et OpenGL, permettant respectivement la gestion des entrées/sorties de l'utilisateur et la visualisation des simulations en 3D.
UE E9SE-B - Architecture logicielle et systèmes d'exploitation
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Comprendre le fonctionnement des systèmes d'exploitation Temps Réel et l'ordonnnancement des tâches : (C1, N3), (C2, N3)
Appréhender les techniques de communication inter-processus entre processus et l'interaction avec le matériel dans le cadre d'un système d'exploitation complexe de type Unix : (C1, N3), (C2, N3)
Appréhender la conception des systèmes embarqués et plus particulièrement des objets connectés par prototypage rapide avec mise en oeuvre de solutions libres : (C1, N3), (C2, N3)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Etre capable de choisir une solution Temps Réel pour un système embarqué : (C3, N3), (C4, N3), (C5, N2)
Mettre en oeuvre un noyau Temps Réel dur (microC/OS II) sur un processeur DSP : (C3, N3), (C4, N3), (C5, N2)
Etre capable de faire communiquer des processus sous UNIX et d'interagir avec le matériel sous Unix : (C3, N3), (C4, N3), (C5, N2)
Mettre en oeuvre des techniques de contrôle à distance d'une système embarqué : (C3, N3), (C4, N3), (C5, N2)
Choisir des solutions logicielles libres pour concevoir son système embarqué : (C3, N3), (C4, N2), (C5, N2)
Systèmes d'exploitation Temps réel
Composante
ENSEIRB-MATMECA
Cours :
Généralités sur le Temps Réel.
Linux et le Temps Réel.
Les offres Linux Temps Réel.
Compléments techniques : ordonnancement, gestion du temps.
Présentation et mise en oeuvre de PREEMPT-RT.
Présentation et mise en oeuvre de Xenomai Cobalt.
Programmation Temps Réel.
Programmation sous Xenomai : API Alchemy.
Présentation de la norme POSIX.
Programmation sous Xenomai : API POSIX Cobalt.
Présentation du noyau Temps Réel microC/OS II et de ses fonctionnalités.
TP :
Etude et mise en oeuvre du noyau Temps Réel microC/OS II sur carte Blackfin.
Etude et mise en oeuvre de l'extension Temps Réel Xenomai Xenomai Cobalt sur carte ARM Raspberry Pi.
Systèmes embarqués. Logiciels libres pour l'embarqué
Composante
ENSEIRB-MATMECA
Cours :
Caractéristiques d'un système embarqué.
Importance du codesign dans l'embarqué.
Internet embarqué. Internet des objets. Etat de l'art dans l'IoT.
Linux et l'embarqué : Linux embarqué.
Temps Réel sous Linux. Introduction au Temps Réel.
Contrôle et communication des objets connectés. Protocoles HTTP et MQTT. Modulation LoRa et architecture LoRaWAN.
Prototypage rapide : application à l'IoT. Conception d'un objet connecté.
TP :
Etude et mise en oeuvre de Linux embarqué sur carte Raspberry Pi.
Etude et mise en oeuvre de protocoles IP pour le contrôle à distance d'un système électronique sous Linux embarqué : sockets, HTTP (serveur Web), SMTP (client email)...
IoT : mise en oeuvre d'un objet connecté à base d'un module Raspberry Pi Pico W et contrôle par MQTT.
Outils de construction pour l’embarqué
Composante
ENSEIRB-MATMECA
Apprendre l'usage des build systems Buildroot et Yocto pour la construction de distributions Linux pour l'embarqué.
Présentation et mise en oeuvre de Buildroot.
Présentation et mise en oeuvre de Yocto.
UE E9SE-C - Réseaux et sécurité des systèmes
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Appréhender les technologies mises en oeuvre dans les réseaux de capteurs que l'on trouve dans l'IoT : (C1, N3), (C2, N3)
Appréhender la sécurité matérielle et les techniques de protections matérielles pour la propriété intellectuelle d'un système embarqué : (C1, N3), (C2, N3)
Appréhender la sécurité logicielle aur les aspects réseaux et services associés d'un système embarqué : (C1, N3), (C2, N3)
Appréhender le développement de services avec prise en compte de la QoS sur Internet : (C1, N3), (C2, N3)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Etre capable de mettre en oeuvre un réseau de capteurs sans fil en utilisant le réseau ZigBee : (C3, N3), (C4, N3), (C5, N2)
Etre capable de fiabiliser un système en terme de sécurité logicielle et détecter une intrusion : (C3, N3), (C4, N3), (C5, N2)
Etre capable de déployer des service voix-données avec QoS sur Internet : (C3, N3), (C4, N3), (C5, N2)
Réseaux de capteurs. Internet des objets
Composante
ENSEIRB-MATMECA
Responsable :
Logan Saint Germain, CATIE
L'objectif de ce module est de construire un réseau de capteurs.
Pour ce faire, le protocole Zigbee sera étudié et appliqué.
Par ailleurs, l'enseignement de ce module reposera sur des cartes Arduino (http://www.arduino.cc/) et des modules périphériques (Xbee).
Les modules Arduino sont des plate-formes de prototypage microcontrôlées en matériel libre. Elles permettent de créer des systèmes électroniques plus ou moins complexes.
Sécurité matérielle des systèmes et des données
Composante
ENSEIRB-MATMECA
Responsable :
Lilian Bossuet, Université de Saint Etienne
Ce cours est une introduction et une sensibilisation aux problèmes de la sécurité des données et des systèmes pour l'embarqué. Il débute par une présentation de la problématique de sécurité en particulier pour les systèmes embarqués mobiles et communicants. Sans être exhaustif ce cours présentera les attaques matérielles classiques contre de tels systèmes ainsi que les principales contre-mesures. Enfin des solutions sécurisées seront étudiées, il s'agit de systèmes reconfigurables ( à base de FPGA) et de systèmes programmables (crypto-processeurs et module sécurisé).
Introduction.
Problématiques de sécurité.
Cryptographie.
Sécurité des systèmes embarqués - les attaques.
Sécurité des systèmes embarqués - les protections.
Systèmes reconfigurables et sécurité.
études de cas.
Processeurs sécurisés et TPM (Trusted Platform Module).
Sécurité logicielle des systèmes et des réseaux
Composante
ENSEIRB-MATMECA
Responsables :
Mathieu Blanc, CEA
Franck de Goër, ANSSI
Présentation des points sensibles au niveau de la sécurité sous Unix et des problèmes de sécurité avec TCP/IP. Présentation de solutions pour la sécurisation d'un environnement TCP/IP. Méthodes de détection et de gestion des intrusions.
Présentation des points sensibles au niveau de la sécurité sous Unix .
Présentation des problèmes de sécurité avec TCP/IP.
Sécurisation d'un environnement TCP/IP (notion de firewall, DMZ...).
Méthode de conception de réseaux intégrant la sécurisation.
Détection et gestion des intrusions.
Pots de miel et leurres informatiques.
Audits et tests d'intrusions.
Présentation détaillée d'un exemple de firewall sous Linux : Netfilter.
UE E9SE-D - Approfondissement
ECTS
7 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Appréhender la technologie Java embarqué mise en oeuvre dans un système embarqué : (C1, N3), (C2, N3)
Maîtriser les technologies Java ME pour système embarqué : (C1, N3), (C2, N3)
Maîtriser les techniques du machine learning de l'intelligence artificielle pour une implantation dans un système embarqué : (C1, N3), (C2, N3)
Appréhender les techniques de développement d'intergiciel ou pilote de périphérique pour interfacer un matériel spécifique à un système d'exploitation : (C1, N3), (C2, N3)
Maîtriser le développement d'un système embarqué suivant un cahier des charges basé sur des solutions embarquées matérielles et/ou logicielles : (C1, N4), (C2, N4)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Etre capable de développer des applications embarquées Java sur systèmes embarqués pour l'IoT : (C3, N3), (C4, N3), (C5, N2)
Etre capable de développer un algorithme de machine learning de l'intelligence artificielle pour ensuite l'incorporer dans un système embarqué : (C3, N3), (C4, N3), (C5, N2)
Etre capable de développer un pilote de périphérique pour interfacer un matériel à un système d'exploitation de type Unix : (C3, N3), (C4, N3), (C5, N2)
Etre capable de développer un système embarqué suivant un cahier des charges dans une approche projet : (C3, N3), (C4, N3), (C5, N3), (C7, N3), (C8, N3)
Middleware : développement de pilotes de périphériques
Composante
ENSEIRB-MATMECA
Responsable :
Hong Guan, Université de Versailles
Cours :
Introduction au pilotes de périphériques.
Noyau Linux.
Notion de modules.
Notion de périphériques.
Périphériques caractère.
Entrées/Sorties.
Gestion des interruptions.
Pilotes bloc et réseau.
TP :
Ecriture de différents drivers.
Ecriture d'un driver pour piloter un gadget USB.
Java pour l'embarqué. Application pour l'Internet des objets
Composante
ENSEIRB-MATMECA
Cours :
Présentation du langage Java par analogie au langage C++.
Présentation de l'API Java ME, API pour les systèmes embarqués et l'IoT.
TP :
Etude et mise en oeuvre de Java ME sous Linux pour le contrôle local et à distance d'un objet connecté IoT à base d'une carte Raspberry Pi.
Intelligence Artificielle pour l'embarqué
Composante
ENSEIRB-MATMECA
Responsables :
Guillaume Bourmaud, ENSEIRB-MATMECA
Frédéric Druillole, CENBG
Cours :
Première partie : IA classique
Introduction à l'apprentissage supervisé.
Approches paramétriques.
Réseaux de neurones.
Perceptron multicouche MLP.
Apprentissage des paramètres d'un réseau de neurones.
Fonctions de coût.
Optimisation des paramètres d'un réseau de neurones par rétropropagation du gradient. Descente de gradient stochastique.
ADAM.
Généralisation / Arrêt prématuré.
Architecture de réseaux de neurones.
Couche de convolution.
BatchNorm.
Connexion résiduelle.
ResNet.
Spécialisation d'un réseau de neurones.
Augmentation de données.
Introduction à PyTorch.
Deuxième partie : IA embarquée
Après avoir décidé le type de réseau de neurones, le nombre de couches et le nombre de neurones par couche, après avoir défini les fonctions d'activation de chaque couche, le nombre d'epochs et le choix de la fonction de perte, vous avez un réseau de neurone qui a appris.Mais comment exploiter son potentiel dans une architecture embarquée ? En effet, le nombre de coefficients et donc le nombre d'opérations matricielles à effectuer est à priori trop volumineux pour être intégrable dans un système tel qu'un FPGA.L'objectif est donc de découvrir les outils nécessaires et les étapes pour essayer de valider un modèle d'IA appris pour FPGA à partir d'une sauvegarde en format json et hd5.Il faut transformer le modèle à travers des opérations de pruning et de quantification de créer des lookUp tables selon la fonction d'activation utilisée.
Après avoir défini la plateforme et donc la technologie du système embarqué :
GPU.
Multi-purpose multi-processor component.
Circuits neuromorphiques.
System On Chip (Xilinx).
Nous regarderons les frameworks d'optimisation des modèles IA et leur transformation en code VHDL synthétisable à travers des outils disponibles sur le marché :
Vivado HLS et Vitis.
HLS4ML.
Nous exploiterons HLS4ML et Vivado HLS/Vitis à travers d'exemples simple puis dans un exemple de catégorisation de signaux temporels issus d'un capteur. Nous verrons ainsi l'ensemble des étapes en créant un modèle d'IA pour une cible FPGA Zynq. Cela nous permettra d'explorer l'ensemble des fonctions que nous offre ce FPGA type SoC contenant 2 processeurs ARM9 intégrables.
TP :
Perceptron MLP avec numpy.
Introduction à PyTorch. Perceptron MLP avec PyTorch.
Perceptron MLP et CNN avec la base de données MNIST.
Projet sur la spécialisation d'un réseau de neurones.
IA embarquée autour des outils HLS4ML et Vivado HLS/Vitis.
Projet avancé en systèmes embarqués
Composante
ENSEIRB-MATMECA
Travail en équipe de 4 étudiants sur un projet touchant aux systèmes embarqués sur les aspects matériels et/ou logiciels.
UE Langues et culture de l'ingénieur
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
Engagement Etudiant facultatif (Niveau élevé)
Composante
ENSEIRB-MATMECA
Engagement Étudiant facultatif (Niveau très élevé)
Composante
ENSEIRB-MATMECA
LV1 Anglais
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Maitriser l'anglais et connaître d'autres cultures (C10, N1 à N4)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Savoir communiquer avec des personnes de langues et cultures différentes (C10, N2 à N4)
Savoir s'adapter dans différents contextes, dans l'entreprise, à l'international (C10, C12, N1 à N3)
Savoir communiquer avec de spécialistes et non-spécialistes (C12, N1 à N3)
Apprendre à mieux se connaître, à s'autoévaluer, à gérer ses compétences (C13, N2 - N3)
Intégrer l'entreprise
Composante
ENSEIRB-MATMECA
Ce module se compose de deux parties complémentaires :
- Projet Professionnel
- Business Challenge.
Partie 1 : PROJET PROFESSIONNEL (4 heures)
Identification des sources de motivation et des forces/faiblesses/opportunités/menaces rencontrées pendant le stage de 1ere année et 2ème année se préparer à l'embauche Construire son pitch et se préparer à la soutenance du projet professionnel.
MODULE 1 :Debriefing du stage 2A,
MODULE 2 : Préparation du pitch en vue de la soutenance de projet professionnel
Partie 2 : BUSINESS CHALENGE (24 heures)
A travers une simulation l'étudiant doit :- Apprendre à développer une stratégie- comprendre les mécanismes de fonctionnement de l'entreprise ( coûts, comptabilité, finances, marketing, production...)- Analyser les résultats- Se sensibiliser au DDRSMieux comprendre les intéractions entre les différentes dimensions d'une entreprise est un des principaux objectifs de Global Challenge. Les participants devront traiter de multiples disciplines liées à la gestion en les intégrant dans une stratégie globale. De plus, les participants devront apprendre à travailler en équipe, afin de mieux analyser les implications opérationnelles et financières de leurs décision.Chaque équipe, regroupée en unité autonome de gestion, doit gérer un ensemble de produits sur un marché virtuel.