Vous êtes sur la page 1sur 40

FISE2

Flots de conception et Codesign

1 Guedri Hichem
Flot De Conception Conjointe
Matérielle/Logicielle : Co-Design

 Rappel
 Spécification
 Partitionnement
 Synthèse logicielle et matérielle
 Co-simulation (Validation)

2
Rappel
 Evolution des systèmes microélectroniques

« ASIC based system »

-Prototype
-Programmable
rapide
HW/SW -Programmable
-Complexité -Conception
-performances
faible cout

Matériel standard

Matériel spécifique «FPGA based system »


3
«SOC»
Rappel
 Méthodologie de conception : Flot de conception
Synthèse Système
HDL
Schéma Niveau fonctionnel
Diagramme d’états

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

HDL
Schéma / Netlist
Equation logique Niveau logique

Equation différentielle
Modèle électrique Niveau
Modèle physique électrique et physique
4
Rappel
 Quoi de neuf dans un SoC
 Assemblage de composants virtuels
 IP: Intellectual Properties
 « IP core »
 Partitionnement logiciel – matériel
 Interfaces entre IP Evolution des
 Vérification méthodologies

Co-Design

Nouveau flot de
conception
 Solutions architecturales

5
Rappel

Flot de conception continu depuis les


spécifications systèmes jusqu'à
l'implémentation

6
Co-Design

 Comment passer d’un algorithme à un circuit

7
Co-Design

 Le co-design dans la méthodologie d’un système embarqué


est de plus en plus utilisé.

 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 le circuit 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 ou les choix matériels
sont faits en premier lieu

8
Co-Design

9
Co-Design

 À partir d’un cahier des


charges de l’application,
définir:
 ce qui doit être fait par le
logiciel,
 ce qui doit être fait par le
matériel.

10
Co-Design
 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 grands é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

11
Co-Design

Estimations
Spécification

Optimisations
Modèles

Partitionnement HW/SW

Synthèse logicielle Synthèse Interfaces Synthèse matérielle

Proc / DSP Co-Simulation ASIC / FPGA

12
Co-Design

 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 : partage logiciel matériel.
 Synthèse et optimisation : synthèse matérielle et
compilation logicielle
 Validation : co-simulation
 Intégration : rassemblement des différents modules.
 Tests d’intégration : vérification du fonctionnement

13
Co-Design

14
Co-Design

15
Co-Design
 La recherche en co-design traverse plusieurs champs de
compétences tels que :
 Spécification système et modélisation
 Exploration du design
 Partitionnement
 Ordonnancement
 Co-vérification et Co-simulation
 Génération de code matériel et logiciel
 Interfaçage matériel/logiciel

 L'objectif commun ici est de développer une


méthodologie unifiée pour créer des systèmes qui
contiennent à la fois du matériel et du logiciel.

16
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

 Choix de la cible matérielle


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

18
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.
19
Partitionnement

20
Partitionnement

21
Synthèse

 Il faudra prévoir des


itérations de test et de
validation:

 pour le logiciel
 pour le matériel
 conjoint

22
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. 23
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

24
Synthèse logicielle

Phase de
développemen
t
Phase de Development processor

développemen
Debugger
t
Phase de
Emulator
vérification

Outils
de
mesure
Programmer

Phase de vérification

25
Synthèse matérielle
Niveau d’abstraction
Spécification
comportementale
Description
comportementale
GAUT Synthèse
Librairie de composants
Catapult-C architecturale

Description RTL
MENTOR GRAPHICS
CADENCE Synthèse
SYNOPSYS Librairie de portes
logique

Description logique
(portes)
MENTOR GRAPHICS Synthèse
CADENCE Librairie de transistors
… physique
Fiabilité des
CAO prédictions
Layout

26
Synthèse matérielle

SUM :=

A1+B1

Algorithme

Circuit

27
Synthèse des communications

28
Synthèse des communications
Partitionnement Logiciel/Matériel
Bibliothèque de
protocoles
Spécification des Choix des modèles
communications et des langages

Sélection des Estimation des


protocoles performances

Logiciel Matériel
Génération Synthèse des bus
des interfaces Synthèse des interfaces
matérielle et logicielle
Coûts de synthèse ?
Interfaces Caractéristiques temporelles des transferts ?

Vérification et/ou correction


du partitionnement

29
Co-simulation : Référentiel de validation

 Il est souvent complexe


d’avoir un référentiel
commun pour la
validation:
 Les équipes sont
souvent différentes.
 Les philosophies sont
différentes.
 Les langages/outils et
méthodes sont
différents.

30
Co-simulation : Échelle de temps

 Les échelles de temps ne


sont pas les mêmes.
 Attendre la fabrication
d’un circuit pour tester le
logiciel dessus, n’est pas
raisonnable!

31
Co-simulation

32
Co-simulation

33
Co-simulation
Exemple
Principe

34
Top/down ou bottom/up

 Conception top-down
 Commencer par une description très abstraite;
Enrichir de détails pour obtenir des solutions
spécifiques.
 Conception Bottom-up
 Assembler des petits composants pour obtenir un gros
système par assemblage spécifique.

 Cas réels utilisent ces deux techniques:


assemblage et configuration spécifique.

35
La méthodologie top/down

36
Avantages de Co-Design

 Amélioration des performances : parallélisme, algorithmes


distribués, architecture spécialisée,…
 Reconfiguration statique ou dynamique en cours de
fonctionnement
 Indépendance vis-à-vis des évolutions technologiques des
circuits logiques programmables
 Mise à profit des améliorations des outils de conception
fournis par les fabricants de circuits logiques
 Programmables : synthèse plus efficace, performance
accrue.

37
Méthodologie de co-design plus complète

38
Méthodologie de co-design plus complète

Spécification

Allocation des ressources

39
Méthodologie de co-design plus complète

Partitionnement Ordonnancement

Gestion de l’énergie Synthèse du matériel Synthèse du logicielle La vérification

40

Vous aimerez peut-être aussi