Développement d’un Système
embarqués à base du processeur
NIOS II
Développement d’un Système embarqué
Cibles logiciels et matérielles
Co-design Hardware/Software
Processeur Soft Core
Processeur NIOS II
Logiciels de développement
Développement d’un Système Embarqué
La difficulté est comment implémenter une fonctionnalité.
Exemple: un algorithme de compression vidéo :
– Plus rapide par hardware mais plus cher.
– Plus flexible par logiciel mais plus lent.
On doit être capable de jongler en plus avec les paramètres suivants:
– Coût.
– Rapidité.
– Robustesse.
3
Développement d’un Système Embarqué
4
Développement d’un Système Embarqué
1ère étape: Choix du matériel (composants électroniques, processeur…)
pour le système embarqué.
2ème étape: Donner le système conçu aux programmeurs.
3ème étape: Les programmeurs doivent réaliser un logiciel qui « colle » au
matériel en n’exploitant que les ressources offertes.
5
Complexité d’un Système embarqué
Les systèmes embarqués sont de plus en plus complexes.
Il est de plus en plus difficile de penser à une solution globale optimisée
du premier jet.
Il est de plus en plus difficile de corriger les « bugs ».
Il est de plus en plus difficile de maintenir le système au cours du temps .
En conséquence, l ’approche traditionnelle de développement d ’un
système embarqué doit évoluer...
6
Conception d’un Système Embarqué
Concevoir un système embarqué demande au concepteur des
compétences multidisciplinaires :
–Compétences hardware et software : microprocesseur,
microcontrôleur, DSP, FPGA, Co-design, VDHL, assembleur, E/S, C,
RTOS, réseau, Linux, Java...
– Connaissance des systèmes numériques.
– Savoir travailler en équipe avec des ingénieurs d’autres disciplines.
– Comprendre le besoin du client et savoir aussi l’identifier !
7
Co-design Hardware/Software
Définition:
Le Co-design permet de concevoir en même temps à la fois le matériel
et le logiciel pour une fonctionnalité à implémenter. Cela est
maintenant possible avec les niveaux d’intégration offerts dans les
circuits logiques programmables.
Le Co-design permet de repousser, le plus loin possible dans la
conception du système, les choix matériels à faire, contrairement à
l’approche classique où les choix matériels sont faits en premier lieu !
8
Conception et Co-design
Conception traditionnelle Co-design
Réalisée par des groupes Réalisée par le même groupe
d’ingénieurs indépendants d’ingénieurs en coopération
9
Conception et Co-design
Cahier des charges
Spec au niveau
système
Partitionnement
Spec HW Spec SW
Synthèse HW Synthèse SW
Tests unitaires Tests unitaires
Tests d’Intégration
Evaluation des perfs 10
Les étapes dans le Co-design
Durant le processus de Co-design, on distingue les étapes suivantes :
– Spécifications : liste des fonctionnalités du système de façon abstraite.
– Modélisation : conceptualisation et affinement des spécifications
produisant un modèle du matériel et du logiciel.
– Partitionnement.
– Synthèse et optimisation : synthèse matérielle et compilation logicielle.
– Validation.
– Intégration.
– Tests d’intégration.
11
Les cibles logicielles :
Les µP, µC et DSP:
Avantages :
– Simple à mettre en œuvre grâce à la programmation de haut niveau
(langage C) (possibilité de grande abstraction par rapport au matériel)
– Temps de conception courts et coûts de conception faibles
– Flexibilité: il suffit de modifier le programme pour modifier l’application
– Prix de revient faible
Inconvénients :
- Faibles performances (vitesse de fonctionnement, puissance de calcul,
etc) à cause d’une architecture séquentielle (une opération à la fois)
- Trop nombreux d’accès à la mémoire (instructions + données)
Les cibles matérielles spécialisées (ASIC) :
Spécialisé pour une application
Réalisation complexe
Extrêmement performant
Circuit = cahier des charges
Les cibles matérielles spécialisées (ASIC) :
Les cibles matérielles spécialisées (ASIC) :
Avantages :
Inconvénients :
Les cibles matérielles (FPGA) :
Les cibles matérielles (FPGA) :
Avantages :
– Possibilité de prototypage,
– Low time to market,
– Adaptabilité aux évolutions futures (reconfiguration),
– Flexibilité.
Inconvénients :
– Intégration limitée,
– Moins performant qu’un ASIC,
– Prix unitaire élevé en production de masse.
Processeur Soft Core
Processeurs propriétaires:
On retrouve les solutions des deux leaders mondiaux en matière de
circuits logiques programmables, Xilinx et Altera :
Processeur Microblaze pour Xilinx
Processeur NIOS II pour Altera.
18
Processeur Soft Core NIOS II
En 2004, Altera Corporation annonce la disponibilité de processeurs RISC
embarqués à cœur logiciel Nios II 32 bits.
La deuxième génération du NIOS II affiche une performance supérieure à
200 DMIPS.
Ce processeur à cœur logiciel affiche:
La plus grande flexibilité,
Les meilleures performances ,
Le plus faible coût.
Avantage:
Comme le processeur Nios II est un soft Core, les développeurs peuvent choisir
un nombre infini de configurations systèmes afin de répondre à leurs objectifs
de performances et de coûts sans avoir à évaluer un ASIC.
Processeur Soft Core NIOS II
La gamme Nios II est composée de trois Soft Core : un cœur pour un
maximum de performances, un cœur optimisé pour une utilisation limitée
de la logique et un cœur qui est un compromis des deux autres.
Cœur NIOS II
FAST STANDARD ECONOMY
Perf max Perf moy Perf min
Processeur Soft Core NIOS II
Le processeur Nios II est définit avec un langage de description matérielle(HDL),
qui peut être implémenté sur les circuit FPGA d’Altera .
système complet
Le processeur Nios II permet aux développeurs d’étendre le jeu d’instructions en
ajoutant jusqu’à 256 instructions définies par l’utilisateur afin d’accélérer les tâches
de traitement dans un délai toujours critique.
Processeur Soft Core NIOS II
Exemple d’un système embarqué:
SoPC
Problème: Coût, Complexité & Power
Processeur Soft Core NIOS II
Flot de design d’un système NIOS II
Outils de développement de ALTERA
Altera fournit une gamme de logiciels facilitant le développeur dans les
différentes étapes de la conception d’un système SoC exploitant le
processeur NIOS II.
Quartus II :
Logiciel de conception utilisé pour concevoir des FPGA, des CPLD et des
ASIC structurés d’Altera.
25
Outils de développement de ALTERA
SOPC Builder :
Un outil de développement qui automatise la définition et les phases
d’intégration système du développement d’un SoC, en simplifiant
énormément la création de ces projets complexes et en diminuant de
façon significative le délai de mise sur le marché des nouveaux produits.
Cet outil est intégré au logiciel Quartus II.
Le processeur NIOS II est un des composants pouvant être proposé dans
la bibliothèque de SoPC Builder.
26
Outils de développement de ALTERA
Quartus II
Outils de développement de ALTERA
Nios II IDE :
Fournit un environnement graphique de développement logiciel basé
sur Eclipse.
Permet d’éditer, compiler, télécharger, debugger et programmer la flash.
Carte de développement
29
Bloc diagramme de la carte
30
Exemple de développement d’un SoPC
DE2 115
SOPC(FPGA)
50MHZ
System Interconnect Fabric
RESET
NIOS II On-Chip
POWER
Processor Memory
LCD LCD
USB JTAG
PC Controller
Blaster UART
31
Exemple de développement d’un SoPC
Développement du software
Boucle infinie:
while(1)
Fonction de lecture:
IORD_ALTERA_AVALON_PIO_DATA(ADD_BASE);
Fonction d’écriture:
IOWR_ALTERA_AVALON_PIO_DATA(ADD_BASE, val);
33
Exemple du software
#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
int main()
{
int count = 0;
int delay;
while(1)
{
IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count & 0x01);
delay = 0;
while(delay < 2000000)
{
delay++;
}
count++;
}
return 0;
} 34
Carte de développement SoC Arm®/FPGA
ZedBoard™ Zynq®-7000
35
Carte de développement SoC Arm®/FPGA
ZedBoard™ Zynq®-7000
Le ZedBoard est une carte de développement économique pour le SoC
entièrement programmable (AP SoC) Xilinx Zynq-7000.
Elle contient tous les éléments requis pour créer une conception basée sur
Linux, Android, Windows ou tout autre système d’exploitation/système
d'exploitation en temps réel (RTOS).
De plus, plusieurs connecteurs d'extension exposent le système de traitement et
les E/S logiques programmables pour un accès utilisateur aisé.
36
Carte de développement SoC Arm®/FPGA
ZedBoard™ Zynq®-7000
Fonctionnalités
•AP SoC Xilinx Zynq-7000 XC7Z020-CLG484
•ARM Cortex®-A9 double cœur
•512 Mo de DDR3
•256 Mo de Flash Quad-SPI
•Carte SD de 4 Go
•Programmation USB-JTAG embarquée
•10/100/1000 Ethernet
•USB OTG 2.0 et USB-UART
•Codec audio 24 bits, 96 kHz, basse consommation, stéréo SigmaDSP®
ADAU1761 d'Analog Devices
•Émetteur HDMI 225 MHz hautes performances ADV7511 d'Analog Devices
(1080p HDMI, 8 bits VGA, 128 x 32 OLED)
•Extension E/S PS et PL (FMC, Pmod et XADC)
37