Site affiché en Français Voir le site en English (USA) Voir le site en English (GB)
Vous êtes ici: ac6 > ac6-formation > FPGAs & ASICs > Lattice Mico32 - Processeur embarqué
Télécharger le catalogue
Télécharger le catalogue
Télécharger la page
Télécharger la page
Ecrivez nous
Ecrivez nous
Version imprimable
Version imprimable
 

H1 Lattice Mico32 - Processeur embarqué

Mise en oeuvre et programmation d'un processeur Soft-Core dans un FPGA


formateur
Objectifs
bullet_jaune_1 Comprendre les phases de création d'un système intégrant un cœur de processeur
bullet_jaune_2 Assemblage de la plateforme matérielle
bullet_jaune_2 Installation du FPGA
bullet_jaune_2 Programmation du logiciel applicatif
bullet_jaune_2 Intégration finale
bullet_jaune_1 Maîtriser les particularité du cœur Open Source MICO32:
bullet_jaune_2 Architecture logicielle
bullet_jaune_2 Bus Wishbone
bullet_jaune_2 Périphériques standard: UART, Ethernet (10/100/1000)...
bullet_jaune_1 Apprendre à programmer une plateforme à cœur programmable à travers Eclipse.
bullet_jaune_1 Découvrir l'installation de ùicrium uC/OSII et uClinux sur la plateforme
Ce cours apprend à maîtriser la création d'une plateforme utilisant un CPU embarqué. Tous les exercices sont faits sur une carte Lattice ECP2 avec le cœur Open Source MICO32; l'installation de uc/OSII et de uClinux seront présentées rapidement.
Matériel
bullet_jaune_2 Un PC Windows par binôme avec
bullet_jaune_3 L'outil ISPlever de programmation du FPGA
bullet_jaune_3 L'outil de création de plateforme Mico32 Open Source
bullet_jaune_3 L'environnement de développement logiciel (basé sur Eclipse)
bullet_jaune_3 L'installation de uC/OSII et uClinux sur la plateforme
bullet_jaune_2 Une carte cible Lattice ECP2
bullet_jaune_2 Support de cours imprimé
bullet_jaune_2 Présentation et solutions des exercices
Pré-requis
bullet_jaune_2 Compréhension de base de l'architecture des processeurs
bullet_jaune_2 Bonne connaissance de la programmation VHDL (niveau cours V1)
bullet_jaune_2 Connaissance de la programmation embarquée en C (si possible niveau cours L2)
bullet_jaune_2 Pour une bonne compréhension de l'installation de uClinux il est souhaitable d'avoir une connaissance de base de
bullet_jaune_3 Linux Embarqué (voir cours D1) pour comprendre le processus de démarrage de uCLinux
bullet_jaune_3 la programmation Linux (voir cours D0), pour les exercices de programmation Linux

Plan
Premier jour
Méthodologie de développement d'une plateforme
bullet_jaune_2 Définition de la plateforme
bullet_jaune_3 Création de l'architecture matérielle du système
bullet_jaune_3 Choix des caractéristiques et dimensionnement
bullet_jaune_2 Génération du code VHDL de la plateforme
bullet_jaune_2 Implémentation de la plateforme
bullet_jaune_3 Vérification de la plateforme
bullet_jaune_3 Création du bitstream de programmation du FPGA
bullet_jaune_2 Programmation de la Plateforme
bullet_jaune_3 Choix de l'infrastructure logicielle
bullet_jaune_3 Programmation en C et assembleur
Définition de la plateforme avec Mico System Builder
bullet_jaune_2 Choix des options du cœur
bullet_jaune_3 caches
bullet_jaune_3 contrôleur d'interruptions
bullet_jaune_2 Choix et configuration de la mémoire
bullet_jaune_3 RAM et ROM internes
bullet_jaune_3 Flash externe, série ou parallèle
bullet_jaune_3 SRAM ou DDRAM externe
bullet_jaune_2 Choix et configuration des périphériques
bullet_jaune_3 GPIOs
bullet_jaune_3 Timer
bullet_jaune_3 UART, SPI, I2C
bullet_jaune_3 Ethernet
bullet_jaune_3 Contrôleur de DMA
bullet_jaune_2 Stratégies d'arbitrage du bus
bullet_jaune_3 Bus privés ou partagés
bullet_jaune_3 Arbitrage fixe ou dynamique
bullet_jaune_2 Configuration de la plateforme
bullet_jaune_3 Connection des périphériques aux bus
bullet_jaune_3 Connection des périphériques aux contrôleurs d'interruptions et de DMA
bullet_jaune_3 Choix des adresses et des interruptions
bullet_jaune_2 Vérification de la cohérence de la plateforme
bullet_jaune_2 Génération du code VHDL de la plateforme
Second jour
Implémentation de la plateforme
bullet_jaune_2 Simulation comportementale
bullet_jaune_3 Utilisation du TestBench généré par le MSB
bullet_jaune_2 Synthèse en fonction du FPGA choisi
bullet_jaune_3 Définition des entrées/sorties
bullet_jaune_3 Placement
bullet_jaune_3 Routage
bullet_jaune_2 Simulation après routage
bullet_jaune_3 Vérification des timings
bullet_jaune_3 Contrôle des vitesses de traitement
bullet_jaune_2 Programmation du FPGA
bullet_jaune_3 Génération du bitstream
bullet_jaune_3 Transfert sur la cible
Programmation de la Plateforme
bullet_jaune_2 Programmation en C
bullet_jaune_3 L'environnement de programmation basé sur Eclipse
bullet_jaune_3 Environnement d'exécution des programmes
bullet_jaune_3 Contraintes de programmation et de génération des programmes
bullet_jaune_3 Définition de la mémoire pour l'éditeur de liens
bullet_jaune_2 Simulation sur la station de développement
bullet_jaune_3 Utilisation du simulateur de plateforme MICO32
bullet_jaune_2 Transfert sur la cible
bullet_jaune_2 Debug croisé
bullet_jaune_3 Utilisation de GDB pour débugger le programme sur la cible
Installation et utilisation de uC/OSII
bullet_jaune_2 Installation de micrium uC/OSII sur la cible
bullet_jaune_3 Besoins spécifiques à uC/OSII à satisfaire sur la plateforme
bullet_jaune_3 Configuration de uC/OSII en fonction de la plateforme
bullet_jaune_3 Création d'un programme simple
bullet_jaune_3 Recompilation
bullet_jaune_3 Transfert sur la cible
bullet_jaune_3 Debug croisé
Troisième jour
Installation et utilisation de uClinux
bullet_jaune_2 Installation d'u-boot sur la cible
bullet_jaune_3 Configuration en fonction de la plateforme
bullet_jaune_3 Recompilation de u-boot
bullet_jaune_3 Transfert sur la cible
bullet_jaune_3 Auto-test de la plateforme par u-boot
bullet_jaune_2 Installation de uClinux
bullet_jaune_3 Configuration du noyau Linux
bullet_jaune_3 Choix des paramètres de boot
bullet_jaune_2 Création de programmes pour uClinux
bullet_jaune_3 Compilation sous Eclipse pour uClinux
bullet_jaune_3 Debug croisé
Création de composants spécifiques
bullet_jaune_2 Définition de composants d'entrée/sortie spécifiques
bullet_jaune_3 Création du code VHDL do composant
bullet_jaune_3 Intégration dans le Mico System Builder
bullet_jaune_3 Création d'une plateforme incluant le nouveau composant
bullet_jaune_2 Utilisation de composants spécifiques
bullet_jaune_3 Création d'un programme manipulant le composant
bullet_jaune_3 Notion de driver
Déploiement du système
bullet_jaune_2 Déploiement du bitstream en flash SPI
bullet_jaune_3 Utilisation du port JTAG pour programmer la flash
bullet_jaune_2 Déploiement du code testé en flash parallèle
bullet_jaune_3 Création de l'infrastructure de programmation de la flash
bullet_jaune_3 Reconfiguration de l'application pour exécution en flash
bullet_jaune_3 Déploiement d'une application intégrée
bullet_jaune_3 Déploiement d'un système uClinux complet