Vous êtes sur la page 1sur 97

Ministère de l'Enseignement Supérieur et de la Recherche Scientifique de Tunisie

‫وزارة التعليم العالي والبحث العلمي‬

Environnement Spécifique
de l’électronique embarqué
M. Kthiri Moez
Maitre assistant à l’ISSAT de Mateur
Spécialité: électronique embarqué

M. kthiri/ISSAT
1 Kthiri.moez@yahoo.fr
 Les systèmes embarqués sont des systèmes
informatiques spécialisés conçus pour
effectuer des tâches spécifiques ou des
fonctions dédiées au sein d'un système plus
vaste. Ils sont appelés "embarqués" parce
qu'ils sont intégrés dans un appareil ou un
système plus grand plutôt que de fonctionner
comme des ordinateurs autonomes..
 Les systèmes embarqués sont couramment
2 utilisés dans une grande variété de
M. kthiri/ISSAT
Kthiri.moez@yahoo.fr
INTRODUCTION

Ce cours a pour but de présenter tous les éléments techniques


pour appréhender le mode des systèmes embarqués
d’aujourd’hui :

Les systèmes embarqués aujourd’hui: Temps Réel, Linux


embarqué, Codesign…
Le codesign aujourd’hui : le mariage du matériel avec le
logiciel.
La mise au point des systèmes embarqués : conception, les
outils de debug, trucs et astuces.

M. kthiri/ISSAT
3 Kthiri.moez@yahoo.fr
EXEMPLE d’un S. E

NIOS II
RAM
FPGA
RAM application Ethernet

Interface de contrôle

M. kthiri/ISSAT
4 Kthiri.moez@yahoo.fr
Partie I:
Généralité sur Les
Systèmes Embarqués

M. kthiri/ISSAT
5 Kthiri.moez@yahoo.fr
UN PEU D’HISTOIRE
Seconde guerre mondiale: premiers ordinateurs (ENIAC) qui
pèsent 30 tonnes.
Sa programmation nécessitait une intervention manuelle
humaine importante.

M. kthiri/ISSAT
6 Kthiri.moez@yahoo.fr
UN PEU D’HISTOIRE
1947-1954: Invention puis
commercialisation des transistors
semi-conducteurs.
Années 60 et 70: premiers circuits
intégrés
1971: premier processeur Intel
4004 qui intégre 2300 transistors
1960-2002:
Réduction des tailles de transistors
( 10000)
Augmentation exponentielle des
performances

M. kthiri/ISSAT
7 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE

Les systèmes (numériques) embarqués ont vu leur importance


progresser au rythme de l’importance prise par les
microprocesseurs.

1971 : premier microprocesseur 4 bits 4004 d’Intel à 92,5 kHz


vendu 200 $. Le succès a été là tout de suite.
Juin 1978 : premier processeur x86 8086 à 4,77 MHz
(technologie 3 μm, 29000 transistors), bus d ’adresse 20 bits à 9,5
Mo/s, bus de données 16 bits.
Juin 1979 : 8088 intégré dans le premier IBM-PC en 1981.
Motorola, Zilog, TI ont emboîté le pas…

M. kthiri/ISSAT
8 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE

M. kthiri/ISSAT
9 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE

La loi de Moore est toujours vraie bien qu’en ralentissement


progressif

M. kthiri/ISSAT
10 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE

Grâce aux progrès de l’intégration sur silicium, on est passé


rapidement du processeur 4 bits au :
– processeur 8 bits.
– processeur 16 bits.
– processeur 32 bits.
– processeurs 64 bits.

Quel est le microprocesseur le plus vendu?


Réponse classique: « Le pentium 92% du marché »

Faux!...
M. kthiri/ISSAT
11 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE
Il ne faut pas croire que le marché du microprocesseur se
résume à celui du PC via les processeurs x86.
Les pentium ne représentent que 2% des microprocesseurs
vendu dans le monde.

M. kthiri/ISSAT
12 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE
Il a été vendu 108 millions de processeurs x86 pour le marché
du PC contre 1,4 milliard de processeurs 8 bits pour le marché
des systèmes embarqués (appelé aussi marché de l’embarqué) !

On voit ainsi que 5 % des processeurs vendus sont pour le


marché du PC. Dans 85 % des cas, Microsoft Windows est utilisé.

Pour 95 % des autres processeurs vendus, on utilisera


généralement un autre système d’exploitation (OS : Operating
System).

On trouvera ici dans 60 % des cas un OS propriétaire ;


beaucoup optent pour des OS libres comme Linux pour limiter les
coûts…

M. kthiri/ISSAT
13 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE

En 2004
Marché des systèmes embarqués est devenu supérieur au
marché PC.

En 1996
Selon le New-York Times, l'américain moyen était en
"contact" avec 60 processeurs / jour

En 2004
On estime ce nombre à 100!

M. kthiri/ISSAT
14 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE

Le nombre de "systèmes embarqués" devrait


atteindre 16 milliards en 2010.

Un téléphone haut de gamme (smart phone) peut


contenir des millions de lignes de code.

Croissance > 10% /an.

M. kthiri/ISSAT
15 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE

M. kthiri/ISSAT
16 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE

Exercice 1: Nommer au moins 10 systèmes embarqués

M. kthiri/ISSAT
17 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE
Un Système Embarqué intègre des logiciels et des matériels
conjointement et spécifiquement conçus pour assurer des
fonctionnalités souvent critiques.

M. kthiri/ISSAT
18 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE
Grand public :
Appareils photographiques et caméras, lecteurs DVD, chauffage
et climatisation, éclairage, électroménager, domotique, sécurité
(incendie, intrusion, surveillance, piscine), ascenseurs, HiFi,
audio et vidéo, consoles de jeux, décodeurs, etc.

Transports :
Automobile, aéronautique, spatial, marine, assistance à la
conduite ou au pilotage, maintenance, signalisation, contrôle du
trafic aérien, maritime (aujourd’hui aide, demain automatique,
objectif trafic autoroutier), distributeur de billets, radar, etc.

Défense :
Contrôle de trajectoire, lanceur, etc.
M. kthiri/ISSAT
19 Kthiri.moez@yahoo.fr
IMPORTANCE DU MARCHE DE L’EMBARQUE
Secteur manufacturier et industrie :
Chaînes de production, automates, production et distribution
électricité, réacteurs chimiques, réacteurs nucléaires, raffineries,
dispositifs de sécurité, aide à la maintenance, etc.
Information et communication :
Imprimante, périphérique, téléphone, répondeur, fax, Internet,
routeurs, téléphonie mobile, satellites, GPS, etc.
Santé :
Imagerie médicale, diagnostique, soins, implants,
handicapés, etc.
Autres :
Carte à puce, distributeurs, etc.
M. kthiri/ISSAT
20 Kthiri.moez@yahoo.fr
EVOLUTION DE LA CONCEPTION

Vitesse du processeur : doublement tous les ans


depuis 85.
x 100 sur derniers dix ans
Mais c'est fini! => nombre de coeurs!

Capacité mémoire: doublement tous les 2 ans depuis


96.
x 64 sur derniers dix ans

Capacité disque: doublement tous les ans depuis 97.


x 250 sur derniers dix ans

M. kthiri/ISSAT
21 Kthiri.moez@yahoo.fr
Partie II:
Caractéristiques Des
Systèmes Embarqués

M. kthiri/ISSAT
22 Kthiri.moez@yahoo.fr
DEFINITION d’un S. E

Un système embarqué peut être défini comme un


système électronique et informatique autonome, dédié
à une application spécifique, ne possédant pas des
entrées/sorties standards comme un clavier ou un écran
d'ordinateur (PC).

M. kthiri/ISSAT
23 Kthiri.moez@yahoo.fr
DEFINITION d’un S. E

Un système embarqué :
Est un système numérique.
Utilise généralement un processeur.
Exécute un logiciel dédié pour réaliser une fonctionnalité
précise.
N ’a pas réellement de clavier standard (BP, clavier matriciel...).
L ’affichage est limité (écran LCD…) ou n ’existe pas du tout.
N ’est pas un PC.
Exécute une tache précise dédiée à une application spécifique.

M. kthiri/ISSAT
24 Kthiri.moez@yahoo.fr
LES 4 TYPES DE SYSTEMES EMBARQUES
Calcul généraliste
Application similaire à une application de bureau mais empaquetée
dans un système embarqué.
EXP: plateforme de jeu vidéo.
Contrôle de systèmes
Contrôle de systèmes en Temps Réel.
EXP: Moteur d’automobile, process chimique, process nucléaire,
système de navigation aérien.
Traitement de signaux
Calcul sur de grosses quantités de données.
EXP: Radar, compression vidéo.
Communications & Réseaux
Transmission d’information et commutation.
EXP: Téléphone, Internet.
M. kthiri/ISSAT
25 Kthiri.moez@yahoo.fr
CARACTÉRISTIQUES D ’UN SYSTÈME EMBARQUÉ

Il doit présenter un faible encombrement et un faible poids.

Environnement :
Température, vibrations, chocs, variations d ’alimentation,
interférences RF, corrosion, eau, feu, radiations.
Prise en compte des évolutions des caractéristiques des
composants en fonction de la température, des radiations...

Faible consommation :
Batterie de 8 heures et plus (PC portable : 2 heures).

La puissance dissipée, le coût, le temps de développement et


la fiabilité sont aussi des métriques qui influencent la
conception.

M. kthiri/ISSAT
26 Kthiri.moez@yahoo.fr
CARACTÉRISTIQUES D ’UN SYSTÈME EMBARQUÉ

Fonctionnement critique pour la sécurité des personnes.


Sûreté :
Le système doit toujours fonctionner correctement.
Sûreté de fonctionnement du logiciel.
Système opérationnel même quand un composant électronique
lâche.

Réactivité :
Les opérations de calcul doivent être faites en réponse à un
événement extérieur (interruption matérielle).

M. kthiri/ISSAT
27 Kthiri.moez@yahoo.fr
CARACTÉRISTIQUES D ’UN SYSTÈME EMBARQUÉ

Contraintes temporelles (temps-réel)

Un système temps-réel doit réagir aux stimuli de son


environnement dans un délai temporel imposé par
l'environnement et l'application.
Exp: Système de freinage, Contrôle automatisme, Procédés
industriels...

Pour un système temps-réel, il ne suffit pas de fournir des


résultats corrects, il faut aussi les fournir en temps.

M. kthiri/ISSAT
28 Kthiri.moez@yahoo.fr
CARACTÉRISTIQUES D ’UN SYSTÈME EMBARQUÉ

Temps Réel dures (Hard real-time)


Une contrainte est dite "dure", si elle n’est pas
respectée, résulterait une catastrophe.

Temps Réel lâches (Soft real-time)


Toutes les autres contraintes temporelles.

M. kthiri/ISSAT
29 Kthiri.moez@yahoo.fr
CARACTÉRISTIQUES D ’UN SYSTÈME EMBARQUÉ

Exercice 2 :

Un décodeur de télévision est-il temps-réel?


Un robot sur une chaîne de montage automobile est-il temps-
réel?
La déclaration des revenus sur Internet est-elle temps-réel?
Un jeu vidéo est-il temps-réel?
Une application de réservation de billets d’avion est-elle
temps-réel?
Un téléphone mobile est-il temps-réel?

M. kthiri/ISSAT
30 Kthiri.moez@yahoo.fr
CARACTÉRISTIQUES D ’UN SYSTÈME EMBARQUÉ

Construire des systèmes de fonctionnalité et qualité déterminée


et garantie, à coût acceptable, est un défi technologique et
scientifique majeur.

Quartes technologies clés pour les systèmes embarqués:


Processeurs
Circuits intégrés
Conception
Logiciel (programmation, compilation, OS)

M. kthiri/ISSAT
31 Kthiri.moez@yahoo.fr
 Partie III.1:Architecture des systèmes
Embarqués

M. kthiri/ISSAT
32 Kthiri.moez@yahoo.fr
 Les systèmes embarqués sont omniprésents dans notre vie
quotidienne, bien que souvent discrets et invisibles pour la plupart des
utilisateurs. Ils se cachent dans nos smartphones, nos appareils
électroménagers, nos voitures et même dans nos jouets pour enfants.
Ces systèmes sont conçus pour accomplir des tâches spécifiques, et
leur architecture est le résultat d'un mariage complexe entre le
matériel et le logiciel, visant à répondre aux besoins particuliers de
chaque application.
 Ce cours vise à explorer en profondeur les composants essentiels qui
rendent ces systèmes fonctionnels. De la sélection des processeurs à
la conception des bus de communication, des mémoires aux
accélérateurs matériels.
 L'architecture des systèmes embarqués est une discipline en
constante évolution, car les exigences des applications et les
avancées technologiques repoussent sans cesse les limites de ce qui
est possible. Au cours de ce cours, nous examinerons les choix
cruciaux que les concepteurs de systèmes embarqués doivent faire
pour optimiser les performances, la consommation d'énergie, la
fiabilité et bien d'autres aspects.

M. kthiri/ISSAT
33 Kthiri.moez@yahoo.fr
Les processeurs généralistes pour l'embarqué :
Les processeurs généralistes, également appelés microprocesseurs, sont des
unités de traitement centrales qui sont couramment utilisées dans les
systèmes embarqués. Ils sont polyvalents et peuvent exécuter une grande
variété de tâches. Les processeurs x86 d'Intel et les processeurs ARM sont
deux exemples de processeurs généralistes couramment utilisés. Ces
processeurs sont adaptés aux applications qui nécessitent une grande
flexibilité, comme les systèmes d'exploitation et les applications
multitâches.

M. kthiri/ISSAT
34 Kthiri.moez@yahoo.fr
 Les DSP sont conçus spécifiquement pour le traitement des signaux,
tels que le traitement audio, vidéo et de données. Ils sont capables
d'exécuter rapidement des opérations mathématiques complexes sur
des signaux en temps réel. Les DSP sont souvent utilisés dans des
applications telles que les téléphones portables, les appareils audio, les
radars et les systèmes de communication.
 L'architecture d'un processeur de traitement de signal (DSP, pour
Digital Signal Processor) est conçue spécifiquement pour le traitement
de signaux numériques. Les DSP sont largement utilisés dans un
certain nombre d'applications, notamment le traitement audio, vidéo,
radar, sonar, les communications sans fil et bien d'autres domaines où
le traitement en temps réel des signaux numériques est essentiel. Voici
un aperçu de l'architecture d'un DSP et de son principe de
fonctionnement :

M. kthiri/ISSAT
35 Kthiri.moez@yahoo.fr
 Architecture d'un DSP :
 Unité de calcul à virgule flottante (FPU) : Les DSP sont
dotés de FPUs qui sont capables d'effectuer des opérations
arithmétiques sur des nombres en virgule flottante, ce qui
les rend très adaptés pour des calculs complexes.
 Pipeline à plusieurs étages : Les DSP utilisent souvent
un pipeline à plusieurs étages pour améliorer les
performances en traitant plusieurs instructions en
parallèle. Cela permet de réduire le temps nécessaire pour
effectuer un ensemble donné d'instructions.

M. kthiri/ISSAT
36 Kthiri.moez@yahoo.fr
 Mémoires spécialisées : Les DSP sont généralement équipés de
mémoires spécialisées, notamment des mémoires RAM pour stocker
des données et des instructions, ainsi que des mémoires de
coefficients pour stocker des valeurs constantes utilisées dans le
traitement de signal.
 Instructions SIMD (Single Instruction, Multiple Data) : Les DSP
sont conçus pour traiter de manière efficace des données en parallèle.
Les instructions SIMD permettent d'effectuer la même opération sur
plusieurs données simultanément, ce qui est particulièrement utile
pour le traitement de signal.
 Unité d'adressage efficace : Les DSP disposent d'unités d'adressage
efficaces pour accéder rapidement à la mémoire et aux données.
 Principe de fonctionnement :
 Le DSP fonctionne en traitant des échantillons de signaux numériques
en temps réel. Voici les étapes typiques du traitement de signal par un
DSP :

M. kthiri/ISSAT
37 Kthiri.moez@yahoo.fr
 Échantillonnage : Le signal analogique est échantillonné
à des intervalles réguliers pour le convertir en une
séquence de valeurs numériques.
 Prétraitement : Les échantillons bruts peuvent être
soumis à des opérations de prétraitement, telles que la
mise en forme du signal, la normalisation ou le filtrage
pour éliminer le bruit.
 Traitement principal : Le DSP effectue les opérations de
traitement sur les échantillons, telles que la convolution, la
transformation de Fourier rapide (FFT), le filtrage
numérique, etc. Ces opérations sont effectuées en parallèle
sur plusieurs échantillons en utilisant des instructions
SIMD.

M. kthiri/ISSAT
38 Kthiri.moez@yahoo.fr
 Post-traitement : Après le traitement principal, le signal
peut subir des opérations de post-traitement, telles que la
détection, la compression ou la modulation.
 Sortie : Le signal traité est converti en signal analogique
(le cas échéant) et renvoyé pour une utilisation ultérieure.
 Le DSP est capable d'exécuter ces étapes de manière
rapide et efficace, ce qui en fait un composant essentiel
dans de nombreuses applications qui nécessitent un
traitement de signal en temps réel. Sa conception
matérielle spécialisée et ses fonctionnalités dédiées en font
un choix idéal pour de telles tâches.

M. kthiri/ISSAT
39 Kthiri.moez@yahoo.fr
M. kthiri/ISSAT
40 Kthiri.moez@yahoo.fr
 3. Les processeurs graphiques (GPU) :
 Les GPU sont des processeurs conçus pour accélérer le
rendu graphique et le calcul parallèle. Ils sont devenus
essentiels dans les systèmes embarqués utilisés pour les
applications de traitement graphique, comme les jeux, la
vision par ordinateur, la réalité virtuelle et augmentée,
ainsi que l'apprentissage automatique accéléré par
matériel.

M. kthiri/ISSAT
41 Kthiri.moez@yahoo.fr
 4. Les processeurs spécifiques (ASIP) :
 Les ASIP (Application-Specific Instruction-Set Processor)
sont conçus pour des applications spécifiques. Ils sont
optimisés pour des tâches particulières et offrent des
performances supérieures à celles des processeurs
généralistes. Les ASIP sont couramment utilisés dans des
systèmes embarqués nécessitant une efficacité énergétique
ou des performances élevées pour des tâches bien définies,
comme le traitement d'image dans les caméras
numériques.

M. kthiri/ISSAT
42 Kthiri.moez@yahoo.fr
 5. Les accélérateurs matériels (ASIC) :
 Les ASIC (Application-Specific Integrated Circuits) sont
des circuits intégrés conçus sur mesure pour une
application spécifique. Ils sont extrêmement spécialisés et
peuvent offrir des performances exceptionnelles pour une
tâche donnée. Cependant, leur conception est coûteuse et
prend du temps. Les ASIC sont souvent utilisés dans des
systèmes embarqués de haute performance, tels que les
réseaux de neurones artificiels ou les dispositifs de
traitement de signaux haut de gamme.

M. kthiri/ISSAT
43 Kthiri.moez@yahoo.fr
 6. Les circuits programmables : FPGA et SOPC :
 Les FPGA (Field-Programmable Gate Arrays) et les SOPC (System-
on-a-Programmable-Chip) sont des dispositifs programmables qui
permettent aux concepteurs de systèmes embarqués de mettre en
œuvre des fonctions matérielles personnalisées. Les FPGA offrent une
grande flexibilité et sont utilisés lorsque des modifications fréquentes
du matériel sont nécessaires.

M. kthiri/ISSAT
44 Kthiri.moez@yahoo.fr
 Un FPGA, ou Field-Programmable Gate Array, est un composant
électronique programmable utilisé principalement dans le domaine de
la conception électronique et de la logique numérique. Les FPGA sont
des dispositifs à semi-conducteurs qui contiennent une matrice de
blocs logiques programmables interconnectés, des éléments mémoires
et des composants d'entrée/sortie (E/S).

M. kthiri/ISSAT
45 Kthiri.moez@yahoo.fr
 Architecture d'un FPGA :
– Matrice de blocs logiques : Un FPGA est composé d'une matrice
de blocs logiques programmables, qui sont des éléments de base
contenant des portes logiques (comme des AND, OR, NOT, etc.)
et des flip-flops. Ces blocs logiques peuvent être interconnectés
pour créer des circuits logiques complexes.

– Éléments mémoires : Les FPGA contiennent également des


éléments mémoires, tels que des mémoires RAM, qui peuvent être
utilisées pour stocker des données temporaires.

– Composants d'E/S : Les FPGA ont des broches d'entrée/sortie qui


permettent de connecter le FPGA à d'autres composants
électroniques, comme des microcontrôleurs, des capteurs ou
d'autres FPGA.

M. kthiri/ISSAT
46 Kthiri.moez@yahoo.fr
 Programmation d'un FPGA :
– Le FPGA est programmé à l'aide de langages de description
matérielle (HDL, Hardware Description Language) tels que
VHDL ou Verilog. Ces langages permettent de décrire la
fonctionnalité logique que le FPGA doit réaliser.

– Une fois le code HDL écrit, il est synthétisé en une netlist, qui
représente la structure logique du circuit.

– La netlist est ensuite convertie en un fichier de configuration


spécifique au FPGA. Ce fichier est généralement généré à l'aide
d'un logiciel de synthèse et contient des informations sur la façon
dont les éléments programmables du FPGA doivent être
configurés.

M. kthiri/ISSAT
47 Kthiri.moez@yahoo.fr
M. kthiri/ISSAT
48 Kthiri.moez@yahoo.fr
 Configuration du FPGA :
– Le fichier de configuration est chargé dans le FPGA à l'aide d'un
programmateur ou d'un dispositif de chargement.
– Une fois configuré, le FPGA fonctionne comme un circuit logique
personnalisé, exécutant la fonctionnalité spécifiée dans le code
HDL.
 Réprogrammation :
– L'un des avantages clés des FPGA est leur capacité à être
reprogrammés. Cela signifie que vous pouvez changer la
fonctionnalité du FPGA en reprogrammant simplement le fichier
de configuration.
– La reprogrammation est utile pour le prototypage rapide, les mises
à jour de conception, les tests et les adaptations à de nouveaux
besoins.

M. kthiri/ISSAT
49 Kthiri.moez@yahoo.fr
 Applications des FPGA :
– Les FPGA sont utilisés dans une variété d'applications, y compris
la conception de systèmes embarqués, la vision par ordinateur, la
communication sans fil, le traitement du signal numérique, la
cryptographie, la robotique, la simulation matérielle etc..

M. kthiri/ISSAT
50 Kthiri.moez@yahoo.fr
 Les SOPC combinent des FPGA avec un ou plusieurs processeurs
pour créer des systèmes embarqués personnalisés.
 Les bus de communication :
Les bus de communication sont utilisés pour permettre aux différents
composants d'un système embarqué de communiquer entre eux. Les
bus, tels que I2C, SPI, UART, PCIe, et CAN, facilitent la
transmission de données entre les périphériques, les processeurs et la
mémoire. Le choix du bus dépend des exigences de bande passante,
de la distance de communication, de la fiabilité, et d'autres facteurs
spécifiques à l'application.
8. Les mémoires :
Les mémoires jouent un rôle essentiel dans les systèmes embarqués
pour le stockage de données et de code. Il existe plusieurs types de
mémoires, notamment la mémoire flash, la RAM, la ROM, la
mémoire EEPROM, etc. Le choix des mémoires dépend des exigences
de l'application en matière de capacité de stockage, de vitesse d'accès
et de rétention de données.
M. kthiri/ISSAT
51 Kthiri.moez@yahoo.fr
M. kthiri/ISSAT
52 Kthiri.moez@yahoo.fr
Partie III.2:
Conception Des Systèmes
Embarqués

M. kthiri/ISSAT
53 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Type Eléments de base Conception

Conception électrique
Composants 1 2

discrets Optimisation des caractéristiques


1 2
électriques
Conception logique
SSI 2 2 2
1
Small Scale 3
1
3 3
1
Optimisation des équations logiques
Integration

Conception numérique
MSI Full
Middle Scale
Registre Mux
Adder Optimisation des traitements
Integration

Conception architecturale
LSI UAL
Séquenceur
Large Scale Choix des fonctionnalités
Integration

Conception fonctionnelle
VLSI
Very Large
Scale
E/S P E Fpga S E Asic S
Optimisation des implémentations
matérielles ou logicielles
Integration

Conception système
ULSI
Rom Buff. E/S
Cœur DSP MPEG Optimisation conjointe des
Ultra Large
Scale Cœur RISC Ram implémentations
Integration
Buff. E/S Analog. matérielles et logicielles

M. kthiri/ISSAT
54 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
La conception d’un système embarqué passe de la
spécification à la réalisation.

M. kthiri/ISSAT
55 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Nécessité d’une méthodologie
 Systèmes de grande complexité à intégrer
 Capacité d’intégration croissante
 Espace de recherche de solutions extrêmement vaste
 Temps de conception de plus en plus court (Pb de Time-to-Market)

Objectifs
 Favoriser l’exploration de l’espace architectural
 Limiter les erreurs de conception (sûreté de fonctionnement)
 Utiliser les outils de CAO pour les tâches répétitives
 Rester indépendant le plus longtemps possible vis à vis de la
technologie
 Prendre en compte les contraintes matérielles au plus tôt

M. kthiri/ISSAT
56 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

les outils de CAO peuvent


être répartis en deux
catégories:
Les outils front end permettent de
passer d’une spécification à une
architecture validée.
Les outils back end permettent la
réalisation des étapes physiques de
dessin des masques technologiques.

M. kthiri/ISSAT
57 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

Le coût du circuit dépend de la surface de silicium occupé.

M. kthiri/ISSAT
58 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

Quatre grands niveaux de conception :


 Niveau Spécification (ou système) : définition du
problème
 Niveau Architectural : agencement général de la
réalisation
 Niveau Logique (ou logiciel) : conception détaillée
 Niveau Implantation : réalisation physique

La réalisation peut être matérielle, logicielle ou conjointe

M. kthiri/ISSAT
59 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

Conception top-down :
– Commencer par une description très abstraite;
– Enrichir de détails  solutions spécifiques.

Conception Bottom-up :
– Assembler des petits composants pour obtenir un
gros système  assemblage spécifique.

Conception à base de plate-formes :


– Cas réels utilisent ces deux techniques
 assemblage et configuration spécifique.

M. kthiri/ISSAT
60 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

Conception top-down
Dans cette approche, encore appelée conception globale ou
descendante, le système est divisé en blocs. Chaque bloc est
ensuite progressivement modélisé, en partant du plus haut
niveau d’abstraction, interconnecté et simulé jusqu’à ce que
l’ensemble soit partitionné à son niveau le plus fondamental.
(Définition Electronique International Hebdo)

Conception bottom-up
Méthode de conception dans laquelle des composants de bas
niveau sont définis, à partir desquels les composants plus
complexes pourront être à leur tour assemblés.(conception
ascendante)

M. kthiri/ISSAT
61 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

M. kthiri/ISSAT
62 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Synthèse Système
HDL
Schéma Niveau fonctionnel
Diagramme d’états

Synthèse Architecturale
HDL
Schéma Niveau architectural
Diagramme d’états

HDL
Schéma / Netlist Niveau logique
Equation logique

Equation
différentielle Niveau
Modèle électrique électrique et
Modèle physique physique

M. kthiri/ISSAT
63 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Caractéristiques d’une démarche descendante:
Spécification : définition des différentes tâches fonctionnelles et
des contraintes de conception (débit, surface, consommation…).
Conception fonctionnelle : détermination des fonctions
internes, des protocoles et des échanges entre fonctions.
Conception architecturale : détermination des opérateurs,
gestion des chemins de données et du contrôle.
Conception détaillée : transformation de la solution
architecturale en circuit. Optimisation des caractéristiques
temporelles.
Réalisation : optimisation de l’implémentation au niveau des
performances électriques et structurelles.
Cette méthodologie de conception a des processus long et coûteux

M. kthiri/ISSAT
64 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

M. kthiri/ISSAT
65 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

M. kthiri/ISSAT
66 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

M. kthiri/ISSAT
67 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

M. kthiri/ISSAT
68 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

Les ressources de développement (outils/méthodes/hommes)


n’évoluent pas aussi vite que la technologie

Les coûts de développement + fabrication ont une croissance


exponentielle (environ 500 Keuros pour un circuit de 100 mm²)
Nécessité de faire un circuit fonctionnel du premier coup

L’augmentation de complexité va à l’encontre de la


diminution du temps de développement

Solutions: outils et méthodes basés sur


Des développement conjoints à haut niveau (codesign)
La réutilisation des blocs préconçus

M. kthiri/ISSAT
69 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

M. kthiri/ISSAT
70 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign
Le CoDesign logiciel/matériel propose une approche structurée
pour la conception d’une classe de systèmes numériques  les
systèmes dédiées
Quatre grandes étapes sont distinguées dans l’approche CoDesign

1-) Spécification
2-) Partitionnement
3-) Synthèse logicielle & matérielle
4-) Co-simulation

La réalisation finale est une réalisation conjointe


matérielle/logicielle
M. kthiri/ISSAT
71 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION

Logicielles (SW): processeur+Logiciel


Flexibilité
Faible temps de conception

Matérielles (HW): ASIC


Performances
Consommation
Protection industrielle

M. kthiri/ISSAT
72 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign

Définition : Les méthodes de CoDesign sont


des méthodes de développement simultané (de
manière concurrente) des parties HW et SW
(spécification, design, vérification)

SW = microprocesseur
HW = FPGA ou ASIC

M. kthiri/ISSAT
73 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign

Buts :

 Gérer au mieux l’hétérogénéité de la nature des fonctions qui


composent le système (du logiciel à l’architecture reconfigurable).
 Comparer les différents choix de partitionnement.
 Définir les interfaces entre le SW et le HW.
 Valider le système complet (co-vérification et co-simulation).

M. kthiri/ISSAT
74 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign
SPECIFICATION HAUT NIVEAU DE L’APPLICATION

ordonnancement de l’application
proposition de candidats HW et SW
ESTIMATION SYSTEME

ESTIMATION LOGICIELLE ESTIMATION MATERIELLE

PARTITIONNEMENT Choix des réalisation HW ou SW

SYNTHESE LOGICIELLE SYNTHESE INTERFACE SYNTHESE MATERIELLE

COSIMULATION

Retour d’expérience IMPLEMENTATION


HW et SW

TESTS

M. kthiri/ISSAT
75 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Spécification Le flot de conception CoDesign Spécification
Evaluation d’un cahier des charges
 Aspects techniques
 Evaluation de la complexité (nbre de portes, nbre E/S, …).
 Performances électriques recherchées (surface, consommation,
alimentation…).
 Types de fonction à développer (numérique, analogique, RF).
 Encapsulation : type de boîtier.
…..
 Aspects économiques
 Délais de conception et de fabrication.
 Marché => Quantité de pièces prévues.
 Budget.
….
M. kthiri/ISSAT
76 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Spécification Le flot de conception CoDesign Spécification

Choix de la cible matérielle


 Une technologie.
 Un type de circuit (FPGA, ASIC, DSP, Processeurs…).
 Un flot de développement (outils CAO).

M. kthiri/ISSAT
77 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Partitionnement Le flot de conception CoDesign Partitionnement
Objectif
L’objectif du partitionnement est de regrouper les variables et
les comportements fortement dépendants, puis de décider
pour chaque regroupement d’une réalisation logicielle ou
matérielle.
Problèmatique
Les performances réelles de la réalisation ne peuvent être
connues qu’après l’étape de co-simulation.
Approche
Afin de permettre le partitionnement, des estimateurs de
performance rapides et précis doivent prédire les
performances et le coût d’une réalisation architecturale.

M. kthiri/ISSAT
78 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Partitionnement Le flot de conception CoDesign Partitionnement

M. kthiri/ISSAT
79 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Partitionnement Le flot de conception CoDesign Partitionnement

M. kthiri/ISSAT
80 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Partitionnement Le flot de conception CoDesign Partitionnement

M. kthiri/ISSAT
81 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Synthèse Le flot de conception CoDesign Synthèse
Cette étape regroupe les synthèses de la partie logicielle, de la
partie matérielle et des interfaces et protocoles de communication.
 Synthèse logicielle : correspond à la conversion d’une
description décrite dans un langage fonctionnel en un code
exécutable par un processeur.
 Synthèse matérielle : correspond à la conversion d’une
description décrite dans un langage fonctionnel en un ensemble
d’équations différentielles décrivant la structure d’un layout.
 Synthèse des communications : étape essentielle, elle doit
garantir les transferts de données entre les différents blocs
matériels et logiciels. Les protocoles et les modes de
communication sont définis durant cette étape.

M. kthiri/ISSAT
82 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign Synthèse logicielle

Processeurs standards:
Simplicité de mise en œuvre, flexibilité
Performances limitées

DSP:
Traitement de signal, opérations de calcul répétitives

M. kthiri/ISSAT
83 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign Synthèse logicielle
C File C File Asm. File

Compiler Assembler

Binary File Binary File Binary File

Linker
Debugger
Library

Exec. File
Profiler

Phase de développement Phase de vérification

M. kthiri/ISSAT
84 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign Synthèse logicielle

M. kthiri/ISSAT
85 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign Synthèse logicielle

Avantages:
Flexibilité: il suffit de modifier le programme pour modifier l’application
Simple à mettre en œuvre grâce à la programmation de haut niveau
Temps de conception courts et coûts de conception faible

Inconvénients:
Faibles performances (consommation, vitesse de fonctionnement, …)
à cause d’une architecture séquentielle et des trop nombreux accès à la
mémoire
Le passage par un compilateur peut dégrader les performances
Complexité du langage machine et de l’assembleur

M. kthiri/ISSAT
86 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign Synthèse matérielle
Niveau d’abstraction
Spécification
comportementale
Description
comportementale
Synthèse
Librairie de composants
architecturale

Description RTL
Synthèse
Librairie de portes
logique

Description logique
(portes)
Synthèse
physique Librairie de transistors

Layout
M. kthiri/ISSAT
87 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Le flot de conception CoDesign Synthèse matérielle

SUM :=

A1+B1

Algorithme

Circuit

M. kthiri/ISSAT
88 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation

Une nécessité !!

M. kthiri/ISSAT
89 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation

Les concepteurs souhaitent disposer des techniques de


vérification le plus précis possible mais dans un temps réduit.

M. kthiri/ISSAT
90 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation

M. kthiri/ISSAT
91 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation

Simulation: évaluation de la conception


du circuit par un ensemble de stimuli pour
vérifier les aspect fonctionnels et
temporels du système.
Des environnements CAO permettent de
vérifier par simulation la fonctionnalité du
système.
Ces outils sont basés sur des modèles
virtuels (codés en C).
Très flexible mais à une vitesse réduite
pour une simulation à un bas niveau
d’abstraction.
M. kthiri/ISSAT
92 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation

Accélération de la simulation par


l’utilisation d’un réseau de
processeurs.

M. kthiri/ISSAT
93 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation

Emulation: les machines d’émulation se


sont des réseaux de circuits FPGA permettant
d’évaluer les performances d’une
architecture.
Ces machines permettent de prototyper des
systèmes à partir de compilations de
descriptions VHDL propres à l’utilisateur.
Tenir en compte des limitations de
performances des circuits FPGA et des retards
dans les interconnexions des fonctions.
Vitesse très grande mais peu flexible.

M. kthiri/ISSAT
94 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation
Prototypage: utilisation de circuits
programmables FPGA et de cœurs de circuits
(DSP, microcontrôleurs, etc).

Validation fonctionnelle et temporelle d’une


architecture donnée.

Un logiciel d’exploitation permet de


programmer l’interconnexion des différents
modules et de visualiser les résultats en cours de
fonctionnement.

Définition du prototypage: réalisation


préliminaire d’un système sur une cible différente
de la réalisation finale.

M. kthiri/ISSAT
95 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation

Les cartes spécifiques: sont figées pour


un type d’application donnée.

Les cartes de prototypage sont de faible


coût et vendues par les fournisseurs de
circuits programmables ou de composants
virtuels.

M. kthiri/ISSAT
96 Kthiri.moez@yahoo.fr
METHODOLOGIE DE CONCEPTION
Co-simulation Le flot de conception CoDesign Co-simulation

Comparaison des techniques de vérification.

L'émulation consiste à substituer un élément de matériel


informatique – tel un terminal informatique, un ordinateur ou une
console de jeux – par un logiciel.
M. kthiri/ISSAT
97 Kthiri.moez@yahoo.fr

Vous aimerez peut-être aussi