Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CH 3

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 80

Systèmes Embarqués

Chapitre III
Ce(tte) œuvre est mise à
disposition selon les termes de
Technologies d’Implémentation
la Licence Creative Commons
Attribution - Pas d’Utilisation
Matérielle
Commerciale 4.0 International.
1 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
OUTLINE

1) Technologies d’implémentation des Systèmes Embarqués


2) Technologies des circuits logiques programmables
3) Méthodologies de Conception

2 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


TECHNOLOGIES D’IMPLÉMENTATION DES
SYSTÈMES EMBARQUÉS

4 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Introduction
• Du composant au système
complexe, divers niveaux
d'abstraction

Des solutions universelles qui


permettent l’orientation
automatique vers l’une ou
l’autre de ces cibles
d’implantation

1970 1980 1990 2000 2005+


5 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Introduction
• Cibles logicielles
• Microprocesseur,
• Microcontrôleur,
• DSP, …
• Cibles matérielles
• ASIC,
• FPGA, …
• Cibles mixtes
• Systèmes monopuces (SoC)
• FPGA à base de processeurs, …

6 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Technologies des processeurs
• Processeurs génériques (GP : General-purpose Processors):
• Permet d’exécuter des tâches de calculs très variables
• Grande Flexibilité et faible temps de développement et faible coût NRE
• Performance et consommation
• Processeurs spécifiques (ASIP: Application-Specific Instruction-set Processors)
• Conçus spécialement pour un domaine d’application mais restent programmables
• Rapidité et consommation meilleurs que pour le cas des GP
• Coût plus élevé
• Processeurs dédiés (SP: Single-purpose Processor ou encore par abus de language
ASIC : Application-Specific Integrated Circuit)
• Structure matérielle dédiée à une seule application (tâche)
• Très rapide et efficace avec faibles consommation et surface
• Non flexible et coût NRE élevé

7 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Technologies des processeurs
• Ces différents types de processeurs varient selon leur adaptabilité au
problème traité

8 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Technologies des processeurs

GP SP ASIP

9 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Technologies des processeurs

GP SP ASIP

10 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Classification des circuits intégrés
Logic

Standard Logic ASIC

Programmable
Gate Arrays Cell-Based IC Full Custom
Logic Devices

SPLD CPLD FPGA

11 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Circuit intégré spécifique à une application
(ASIC)
• Circuit conçu sur demande :
• convient uniquement pour les applications à fortes contraintes de temps
et/ou d’espaces et destinées à un grand marché (vente de grandes quantités)
• Time-to-market très important et coût NRE très élevé

12 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Circuit intégré spécifique à une application
(ASIC)
• L’implémentation des circuits numériques est effectuée à la base avec
du silicium selon plusieurs couches (10 voire plus)
• Les circuits numériques diffèrent selon leurs aptitudes à l’adaptation
par l’utilisateur
• Entièrement sur demande (Full-custom/VLSI)
• Semi-spécifiques (Semi-custom ASIC)
• Circuits programmables (PLD (Programmable Logic Device))

13 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Circuit intégré spécifique à une application (ASIC)
Full-custom/VLSI
• VLSI : Very Large Scale Integration
• Toutes les couches sont optimisées pour l’implémentation numérique
d’un système embarqué particulier
• Placement des transistors
• Dimensionnement des transistors
• Routage
• Avantages
• Excellentes performances, faible taille et faible consommation
• Inconvénients
• Coût NRE élevé (ex. 300K$) et time-to-market très important

14
14 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Circuit intégré spécifique à une application (ASIC)
Semi-custom
• Les couches basses sont entièrement ou partiellement construites
• Les concepteurs auront à définir le routage et éventuellement
rajouter d’autres modules
• Avantages
• Bonnes performances, bonne taille, coût NRE moins élevé que les circuits Full-
custom (10K$ à 100K$)
• Inconvénients
• Nécessite toujours un temps important de développement (des semaines
voire des mois)

15
15 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Circuit intégré spécifique à une application (ASIC)
PLD (Programmable Logic Device)
• Toutes les couches existent déjà
• Les concepteurs peuvent acheter le composant sur le marché
• Ils doivent élaborer les connexions à l’intérieur du circuit (soit par leurs
créations ou leurs destructions) pour implémenter les fonctionnalités
désirées
• Field Programmable Gate Array (FPGA) très populaires
• Avantages
• Faible coût NRE et disponibilité (time-to-market faible)
• Inconvénients
• Taille plus grande, coût cher pour les grands volumes (30$ par unité), grande
consommation, moins rapide

16
16 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Circuit intégré spécifique à une application (ASIC)
SoC : Système sur Puce
• « System on Chip » , Système sur puce, Système monopuce
• un système complet intégré sur une seule puce, résultant de la
cohabitation sur silicium de nombreuses fonctions complexes telles
que des processeurs, DSP, bus, mémoires, convertisseurs, blocs
analogiques, etc.
• Il doit comporter, au minimum, une unité logicielle de traitement
(CPU) et doit être le plus que possible indépendant des composants
externes pour exécuter ses tâches.
• Un SoC peut être construit soit uniquement à partir de cœurs IP
existants, ou encore d’une combinaison d’IP et de cœurs faits sur
mesure.
17
17 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Circuit intégré spécifique à une application (ASIC)
SoC : Système sur Puce
• Un SoC doit respecter les caractères :
hétérogène, embarqué et spécialisé.
ROM
RAM
• Concevoir un SoC demande généralement une
Capteur
grande expertise pour
• le choix de l'architecture, Processeur DSP
• la conception des interfaces, Spécifique
• la description des modules de contrôle des
CAN
périphériques
CNA
• le portage des systèmes d'exploitation. Périphériques
EEPROM
• Le processus de conception repose
généralement sur l'assemblage automatique d'IP Alimentation
préconçus en utilisant des composants et des
interfaces L/M standards.
18
18 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Circuit intégré spécifique à une application (ASIC)
SoC : Système sur Puce
• Le processus de conception repose généralement sur l'assemblage
automatique d'IP préconçus en utilisant des composants et des
interfaces Hw/Sw standards.
• De nos jours, les nouveaux circuits FPGA à haute densité permettent
l'intégration de systèmes complexes sur la même puce.
• Systèmes sur puces programmables (SoPC).
• Un acronyme inventé par Synopsys pour décrire tout système implémenté
dans un composant programmable (PLD) contenant au moins un élément de
traitement.

19
19 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
TECHNOLOGIES DES CIRCUITS LOGIQUES
PROGRAMMABLES

20 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Principes des Architectures & Technologies
• Ensemble de ressources logiques (portes, bascules, …etc) qui peuvent être
interconnectées de différentes façons.
• Réalisation de fonctions booléennes sous forme d’une somme limitée de monômes (PAL,
PLD, EPLD,...) Ou d’un réseau de cellules (FPGA)
• Technologies de programmation : Différentes technologies pour stocker la configuration:

Fuse /
Antifuse
Programmable une seule fois (configurable)

(E)EPROM Nombre de configuration limité (x103 à x106)

SRAM Configuration réalisée à chaque mise sous tension

21
21 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Principes des Architectures & Technologies
Technologie de programmation Fuse
• Technologie comparable à celle des PROMs
• Programmation par fusibles (comme les PROMs)
• Non reprogrammables

Fusibles
22
22 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Principes des Architectures & Technologies
Technologie de programmation Anti-Fuse
• Technologie à base de condensateur,
• Création d’un court circuit entre deux lignes
de métal: claquage,
• Programmation définitive,
• Très peu de place occupée sur le circuit,

23
23 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Principes des Architectures & Technologies
Technologie de programmation (E)EPROM
• Transistor à double grille : FAMOS (Floating gate Avalanche injection
MOS).
• Reprogrammable (effacement par UV ou électriquement)
• Le but est de piéger les électrons dans la grille flottante en appliquant
une très forte tension entre la grille et la source du transistor.

24
24 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Principes des Architectures & Technologies
Technologie SRAM
• Technologie CMOS standard
• Chaque bit d'une SRAM est formé
par une bascule (latch) constituée
par 4 à 6 transistors.
• L'information stockée peut être
maintenue sans dégradation pendant
une centaine d'heures.

25
25 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
PLA : Programmable Logic Array
• Première génération de logique programmable
• Réseaux logiques à 2 niveaux programmables (AND-OR)

• Permet de programmer des


sommes de produits.
• Limité par le nombre d’entrées
• Limité par le nombre de sorties
• Limité par le nombre de termes
de produit (p-term)

26
26 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
PLA : Programmable Logic Array

27
27 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
PLA : Programmable Logic Array

PLA 4x3 avant programmation PLA 4x3 après programmation

28
28 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
PAL (Programmable Array Logic)
• Sont programmables une seule fois. Ils utilisent la technologie des
mémoires PROM à fusibles.
• Ces circuits permettent de réaliser quelques fonctions logiques. La
logique disponible, pour chaque fonction, est composée de quelques
produits configurables suivis d'une porte OU (câblée fixe).
• Réseaux à 1 niveau programmable (AND programmable – OR fixe)
• PAL = Marque déposée de AMD

29
29 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
PAL (Programmable Array Logic)
• PAL 16L8 : possibilité de 16 variables d’entrées et 8 de sorties.

30
30 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
PAL (Programmable Array Logic)
• Utilisation du feedback sur les sorties.

31
31 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
GAL (Generic Array Logic)
• Circuits en technologie EEPROM.
• Ils comprennent un nombre plus élevé de produits (termes ET) pour chaque
fonction avec la possibilité d'utiliser un registre.
• GAL = Marque déposée de
LATTICE semiconductor.
• Similaires au PAL à
l’exception de la macro-
cellule au niveau des
sorties logiques (OLMC:
Output Logic MacroCells)
qui augmente la flexibilité. 32
32 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
Structure Générique
• Les SPLD comportent les blocs suivants :
• un bloc d'entrée,
• une partie combinatoire constituée d'une matrice ET et d'une matrice OU,
• un bloc de sortie,
• un bloc d'entrée-sortie.

33
33 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
Structure Générique
• Bloc d’entrée : fournit l’état de chaque entrée et de son complément.
• Bloc combinatoire :
• Principe « toute fonction logique peut s’exprimer sous la forme d’une somme
(matrice OU) de termes produit (matrice ET) avec des variables complémentées ou
non »
• Bloc d’E/S : comporte une porte 3 états et une broche d’E/S
• Bloc de sortie : appelé macro-cellule OLMC (Output Logic Macro Cell).
• Une porte OU exclusif, une bascule D,
• Des multiplexeurs et un dispositif de rebouclage sur la matrice ET,
• Des fusibles de configuration.

34
34 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des SPLD
Structure Générique
• Macro-cellule OLMC (Output Logic Macro Cell).

35
35 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des CPLD
• Architecture PAL hiérarchique
• Ensemble de blocs logiques LAB (Logic Array Block) composés de macrocellules
• Une matrice d'interconnexion PIA (Programmable Interconnect Array)
• Chaque E/S est liée à une macrocellule
E/S
macrocellule E/S
LAB macrocellule

matrice d'interconnexion
E/S E/S
macrocellule

...
E/S E/S
LAB LAB
E/S E/S
...

...
E/S E/S
LAB LAB
E/S E/S

36
36 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des CPLD
• Les signaux des macrocellules sont utilisés localement dans leur LAB.
Certains de ces signaux doivent être mis à la disposition d’autres LAB.
• Les LAB sont interconnectés entre eux sans fonction logique particulière
• Modèle électrique et délais prédictibles
E/S LAB LAB LAB LAB

37
37 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des CPLD
• Matrice de connexion : Ensemble de lignes et de points de connexion,
• PIA : Programmable Interconnect Array,
• PIM : Programmable Interconnect Matrix,
• UIM : Universal Interconnect Matrix,
• SM : Switch Matrix.
• PIA introduit un retard de propagation constant quelque soit le signal
transmis
• Performance temporelle prédictible.
• La phase de développement comporte deux étapes:
• Le remplissage (Fitter) qui permet d’affecter les macro cellules en fonction de
l’application : Répartition/Expansion
• Le routage qui consiste à déterminer les points de la matrice de connexion à utiliser,
38
38 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des CPLD
• Répartition de termes produit:
• Affecte à chaque macrocellule le nombre exact de termes produit dont elle a besoin,
• Affecte les termes produit à partager entre les macrocellules d’un même LAB.

• Expansion de termes produit:


• Construire des expressions logiques complexes,
• Augmenter le nombre de variables d’un termes produit dans une macrocellule,
• Construire les termes produit communs à plusieurs macrocellules d’un même LAB ou
de plusieurs.

39
39 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des CPLD

CPLD ALTERA 9000

40
40 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des CPLD

CPLD ALTERA 9000

41
41 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des CPLD

CPLD ALTERA 9000

42
42 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des CPLD

CPLD ALTERA 9000

43
43 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
• Field Programmable Gate Array

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S
• Ensemble de cellules logiques disposées en
E/S
E/S

matrice et séparées par des canaux de E/S


E/S

routage organisés en Rangées/Colonnes. A E/S


E/S

chaque intersection se trouve un E/S


E/S

commutateur. E/S
E/S

• Arrangement Matriciel de blocs logiques avec


E/S
E/S

configuration des : E/S


E/S

• Interconnexions entre les blocs logiques,


E/S
E/S

• La fonction de chaque bloc.


E/S
E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S
• Le temps de propagation dépend du routage canaux de routage
choisi pour réaliser l'interconnexion. cellule logique
44
44 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
Architecture interne

45
45 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
Architecture interne
• IOB(Input Output Bloc)
• Indépendant des cellules logiques,
contrairement au CPLD.
• Éléments de base : porte à 3 états
• Grande sélection des modes de
fonctionnement qui sont programmable
et configurable, tels que : inversion ou
non du signal, incorporation d’une
résistance de rappel à la tension
d’alimentation, choix de type de sortie
(Totem-pole, collecteur ouvert ou 3 états),
choix du temps de montée, …
46
46 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
Architecture interne
• CLB (Configurable Logic Bloc), LC (Logic Cell) ou LE (Logic Element)
• Constituées d’une partie combinatoire composée par un bloc de logique
combinatoire et divers multiplexeurs, et d’une partie séquentielle.
• La partie séquentielle comporte une ou deux bascules généralement de type D.
• Compte tenu du nombre de cellules logiques et de leurs structures, leur association
permet la réalisation de n’importe quel autre type de bascule.

47
47 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
Architecture interne
• CLB à base de LUT

Implémente toute
- Accélération des opérations
fonction à 4 variables
arithmétiques
d’entrées.
- Détournement du routage
par connexion directe avec la
cellule logique voisine

- Pipeline, registre, latch


- Signal d’horloge global
provenant de ressources
spécifiques.

48
48 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
Architecture interne
• Réseau d’interconnexion :
• Doit permettre de connecter n’importe
quelle CLB à une autre ou à une cellule
d’entrée-sortie.
• Les interconnexions sont composées des
segments verticaux et horizontaux qui
encadrent chaque CLB et qui peuvent être
reliés entre eux par une matrice de
commutation.
• Chaque segment peut être connecté à des
segments qui lui sont adjacents ou
perpendiculaire en utilisant des points de
connexion

49
49 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
Routage dans un FPGA A

• Ressources de routage avec des longueurs


différentes.
• Les interconnexions locales: Routage entre blocs
logiques B
(ex.: chaîne dédiée de retenue),
• Lignes de longueur moyenne: fil de routage orienté
sur la largeur de plusieurs blocs logiques,
• Lignes longues: fil de routage orienté sur toute la A
hauteur ou la largeur de la puce,
• Lignes globales: fil de routage orienté sur toute la
zone de la puce,
• Connections à haute vitesse, à biais réduit : disponible
pour tous les blocs logiques, B
• Habituellement utilisées pour les horloges, les
réinitialisations
=> grande adaptabilité du routage

50
50 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
IOB

FPGA XC4000X

51
51 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
CLB

FPGA XC4000X

52
52 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA
Lignes
d’interconnexion

FPGA XC4000X

53
53 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Structure des FPGA

FPGA XC4000X

54
54 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Evolution des FPGA

55
55 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Evolution des FPGA
• Virtex-II-Pro
Xilinx VII Pro
XC2VP30 - 30 816 logic cells
- 2 448Kb - 692

- 136 Multipliers

-8

-2

8
56 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Evolution des FPGA

57
57 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Evolution des FPGA

58
58 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Evolution des FPGA

59
59 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
F
Exercices d’application
• Fonction logique à la x
1 0
sortie des LUT ? 1 1
0 0
0 1
y
a 0 LUT11 LUT12
1 s
b 1 z
0 0
0
0 0
LUT 1 0
1 0
LUT21 LUT22

60 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Exercices d’application
• Le cœur de
l'architecture FPGA est
un bloc logique
configurable (CLB), qui
dispose d'un sous-bloc
logique combinatoire
• Donner le contenu de la
LUT G si on va générer
la fonction (G1 est
l’entrée de poids fort)
suivante :
𝒁𝒁 = 𝑮𝑮𝑮𝑮 + ����
𝑮𝑮𝑮𝑮. ����
𝑮𝑮𝑮𝑮. 𝑮𝑮𝑮𝑮. 𝑮𝑮𝑮𝑮 + ����
𝑮𝑮𝑮𝑮. 𝑮𝑮𝑮𝑮. 𝑮𝑮𝑮𝑮 + ����
𝑮𝑮𝑮𝑮. 𝑮𝑮𝑮𝑮. 𝑮𝑮𝑮𝑮

61 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Exercices d’application
• Proposer, pour chacun des
cas suivants, que sera l’état
des signaux de sélection et
l’affectation des sorties
concernées (X, Y et Z) si on
veut générer les fonctions
suivantes:
• Deux fonctions logiques L1 et
L2 à 4 variables chacune et une
fonction L3 à 3 variables.
• Une fonction L1 à 5 variables.
• Une fonction L1 à 4 variables
et une autre L2 qui dépend de
L1 et de 2 autres variables.
62 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
MÉTHODOLOGIES DE CONCEPTION

63 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Méthodologies de Conception Standard
Spécifications du Système

Conception Conjointe L/M


Conception au niveau Système
Conception RTL Standard
Analyse et Développement
Développement Algorithmique
Algorithmique

Partitionnement Hw/Sw
Spécifications Hardware Développement Algorithmique
& Modélisation des systèmes
Modèles
Modèles RTL
Modèle RTL et Testbench Software
Simulation hors-ligne
Simulateur
ISS Software
Simulation RTL RTL
Co-Simulation
Co-simulation Hw/Sw
Synthèse Logique Génération automatique de la
description RTL (code HDL)
Vérification de
l’Equivalence

Conforme aux
Synthèse Physique Non
Spécifications
(FPGA Place & Route) Synthèse Logique & Physique
Oui
Simulation Niveau Portes et Génération du fichier Bit & Synthèse
Analyse Temporelle Programmation du FPGA Logique Compilation
Synthèse Software
Génération du fichier Bit & Physique
Programmation du FPGA
Génération du fichier Bit &
Programmation du FPGA
64
64 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design des systèmes embarqués
Bibliothèque d’IP
Spécification Estimateurs

Partitionnement
Hw/Sw

Hardware Software
VHDL, Verilog C, C++

Synthèse Compilation

Co-Simulation

Vérification
Formelle

Description
d’Architecture

Mémoires Cœur de
sur puce Processeur

Blocs
Interfaces
Synthétisés 65
65 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Spécification
• Outils/Langages de spécification
• SpecC, SystemC
• UML
• Exemple : Niveaux hiérarchiques de spécification sous SystemC TLM:

66
66 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Partitionnement matériel/logiciel
• Problème : partager la spécification en parties matérielles et
logicielles, en faisant des compromis entre
• coût,
• efficacité (vitesse),
• Consommation,
• évolutivité et facilité de maintenance,…
• Méthodes empiriques, utilisation de fonctions de coût,…

67
67 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Partitionnement matériel/logiciel
• Généralement, un microprocesseur ou microcontrôleur est
préalablement choisi
• Compromis coût/performance en fonction de l'application visée
• Prise en compte d'autres critères, comme la durée de vie (période de
disponibilité du produit), les contraintes temps-réel,…
• Ce choix impacte les décisions pour le partitionnement.

68
68 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Développement matériel
• HDL : Langage de description matériel
• Niveaux algorithmique, RTL, portes logiques, et transistors.
• Verilog
• né au début des années 1980 (Gateway Design Automation), avec le simulateur
logique Verilog-XL
• mis dans le domaine public en 1990 par Cadence (acquéreur de Gateway Design
Automation)
• standardisé par l'IEEE en 1995 (IEEE Std. 1364-1995) puis en 2002 (IEEE Std. 1364-
2001)
• VHDL (standard IEEE 1076)
• développement entrepris en 1981 par le Département de la Défense des USA (DoD),
industriels largement impliqués dans le processus de standardisation
• premier manuel de référence fin 1984, et premiers outils en 1986
• standardisé par l'IEEE en 1987 (IEEE Std. 1076-1987), révisions en 1993 et en 2000

69
69 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Développement logiciel
• Divers aspects à prendre en compte dans le contexte des systèmes
embarqués :
• Les contraintes temporelles
• La taille et l'organisation de la mémoire
• compacité et optimisation du code
• Les caractéristiques spécifiques du processeur (Ex : little endian/big endian)
• Les protocoles de communication
• La sécurité
• …

70
70 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Développement logiciel
• La mémoire - Les programmes utilisent 3 zones spécifiques en mémoire
vive :
• Pour les allocations statiques (variables globales, tableaux alloués statiquement,…).
• Pour les contextes d'appel à des fonctions (variables locales,…) : la pile (stack).
• Pour les allocations dynamiques "à la demande" (malloc, new) : le tas (heap).
• Attention, les fuites mémoire (memory leak) représentent un gros
problème pour les systèmes embarqués (" certains ne disposent pas de
tas).
• La mémoire - Optimisation du code :
• Le code est stocké en ROM, de taille limitée
• des optimisations de toutes sortes sont nécessaires pour réduire la taille du code.

71
71 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Validation d’une conception
• La validation d’un circuit électronique passe par trois phases
distinctes :
• la simulation,
• l'analyse statique du temps
• la vérification sur circuit.
• Dans le processus de conception de systèmes hétérogènes, différents
langages sont requis pour étudier les différents sous-systèmes.
• la validation finale doit être assurée par un outil de co-simulation.
• une approche de simulation distribuée permettant de valider l'ensemble des
spécifications à différents stades du processus de conception

72
72 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Validation d’une conception
• La co-simulation L/M associe
• un simulateur RTL pour le matériel
• un simulateur de jeu d'instructions (ISS) pour le logiciel
• Une interface entre les simulateurs est nécessaire et se compose
généralement d'un bus d’interface et d’une communication interprocessus.
• Sur la base des résultats de co-simulation, le concepteur détermine
s'il faut continuer avec l'architecture étudiée ou d'explorer différentes
architectures en choisissant un nouveau partitionnement L/M.
• Une fois l'architecture est fixée et le système est vérifié, la synthèse
des composants matériels est exécutée selon le flot de conception
RTL, tandis que les composants logiciels passent par les stades de
compilation et de débogage.
73
73 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Validation d’une conception
• Exemple d’environnement de co-

Pr
re

oc
e
simulation adapté à la commande air r Sim

wa

es
i n ula
r B nt su

oft
HD teur

se
i e
des systèmes électriques : h
Fic écut on
a L

ur
rS
x i
s’e Stat

eu

Har
ess

dw

oc

Simulateur HDL

a
Modèles de

composants
processeur
Pr

Modèles de

re


Communication

Simulateur du Processus
Electrique

74
74 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Validation d’une conception
• Simulation HIL : une technique ①
Spécifications du Dispositif de Contrôleur
où des parties d'un véritable

système sont remplacées par Développement des
Simulation en
boucle fermée
un modèle de simulation. Algorithmes de Contrôle
Hors-ligne
Modèle
• Intégration de la simulation HIL ③ Mathèmatique
du Processus à
dans le flot de conception des
Génération du Code HDL Co-Simulation
Commander

algorithmes de contrôle ④
Plateforme FPGA
numérique Simulation HIL

l’intégration des
simulations HIL conduit à ⑤
la réduction de l'écart Validation Réelle
entre l'étape ❸ et ❺ Processus Réel

75
75 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Co-design : Backend
Bibliothèques d’IP
HDL /

• Outils de Synthèse L/M dédiés aux


MSS MHS
Schématique

Conception Software Conception Hardware Conception Hardware

FPGA Xilinx Bibliothèque


Software
• Génération de bibliothèques
(LibGen)
• Compilation des programmes
• Spécification du
Microprocesseur
• Génération des Netlists/
• Entrée de conception de la
logique personnalisée
Programmes • Synthèse (XST)
Sources sources (GNU(gcc)) Synthèse (Platgen/XST)

Applications Software Netlists de la Netlist du bloc


Compilées Plateforme Hardware synthétisé
Xflow
• Traduction
• Mappage
• Placement et Routage
• Génération du Bitstream

• Fusionner le Software dans le


Bitstream
• Simulation / Débogage

Bitstream de
XPS / EDK configuration ISE
: Fichier FPGA
: Outil Mémoires Processeur
sur puce Embarqué

Blocs
Interfaces
Synthétisés
76
76 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Évolution des Méthodologies de Conception
Conceptions Dirigées par
l’Espace ou par le Temps Conceptions Basées sur Blocs Conceptions Basées sur Plateformes
ADD / TDD BBD PBD

ROM
Processeur
ROM Spécifique B Flash
Processeur U
Spécifique SRAM
S
SRAM
RTOS

Coproceseur Logique
Logique Logique

Réutilisation d’IP opportuniste Réutilisation d’IP planifiée

77 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman


Conception basée sur plateformes
• PBD : « Platform-based design »
• Plateformes abstraites, "customizables", favorisant la réutilisabilité
• La PBD se concentre autour d’une architecture de bus standardisée tout en
minimisant le nombre de création d’interfaces et de modifications de blocs.
• Les évolutions technologiques de conception mises en place pour la méthodologie
PBD s’organisent autour de la création des blocs et l’intégration sur puce.
• Concevoir des blocs possédant des interfaces standardisées aisément réutilisables dans d’autres
conceptions
• Interfaçage des blocs et vérification de l’architecture.
• Des outils de conception haut-niveau utilisant des méthodes de codesign
permettent la modélisation au niveau système (sélection des IP), la réalisation du
partitionnement L/M, et la validation.
• Des outils de synthèse s’intéressent au placement des blocs pour bien les intégrer
suivant leurs relations. Des outils de validation se préoccupent des interfaces de
toute nature à tous les niveaux de modélisation (inter-bloc, bloc/bus,
numérique/analogique, etc.). 78
78 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Conception basée sur plateformes
• Vue logicielle abstraite de
l'interface avec la plateforme
d'architecture : prototype virtuel
• Fournit un modèle d'exécution de la
plateforme d'architecture permettant
notamment l'estimation de
performance
• La plateforme système combine
plateforme d'architecture et
plateforme API

79
79 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Conception basée sur plateformes
• Vue logicielle abstraite de
l'interface avec la plateforme
d'architecture : prototype virtuel
• Fournit un modèle d'exécution de la
plateforme d'architecture permettant
notamment l'estimation de
performance
• La plateforme système combine
plateforme d'architecture et
plateforme API

80
80 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman
Conception basée sur plateformes
Plateforme virtuelle
• Avantages : efficacité,
Fabrication
Conception du hardware

niveau système
Conception au
de la puce

Prototypage
précision, évolutivité,

Sans
Intégration du processeur

facilité de débogage,… Conception du software

• et gain au niveau du Time Conception du hardware


Fabrication

niveau système
Conception au
de la puce
To Market !

l’Application
Prototypage
Spécifique à
Prototypage Intégration du processeur

Conception du software

Fabrication
Conception du hardware

niveau système
Reconfigurable

Conception au
de la puce

Basé sur une


Prototypage

Plateforme
Prototypage &
Intégration du processeur
Co-émulation

Conception du software

12 mois 18 mois 24 mois


Temps de conception
81
81 | Cours Systèmes Embarqués, MR SysCoin, Préparé par : Slim Ben Othman

Vous aimerez peut-être aussi