0% ont trouvé ce document utile (0 vote)
165 vues37 pages

Cours Co-Design

Ce document décrit le développement d'un système embarqué à base du processeur NIOS II. Il présente les étapes de conception d'un tel système, les outils de développement fournis par Altera ainsi qu'un exemple simple d'application.

Transféré par

Hamza Mhal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
165 vues37 pages

Cours Co-Design

Ce document décrit le développement d'un système embarqué à base du processeur NIOS II. Il présente les étapes de conception d'un tel système, les outils de développement fournis par Altera ainsi qu'un exemple simple d'application.

Transféré par

Hamza Mhal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi