1
FISE2
Flots de conception et Codesign
Guedri Hichem
Chapitre 1: 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
3
« ASIC based system »
«FPGA based system »
Matériel standard
«SOC»
Matériel spécifique
-Prototype
rapide
-Programmable
-Conception
faible cout
-Programmable
HW/SW
-Complexité
-performances
4
Rappel
 Méthodologie de conception : Flot de conception
4
5
 Méthodologie de conception : Flot de conception
Rappel
Synthèse Architecturale
Synthèse Système
Niveau fonctionnel
Niveau architectural
Niveau logique
Niveau
électrique et physique
HDL
Schéma
Diagramme d’états
HDL
Schéma
Diagramme d’états
HDL
Schéma / Netlist
Equation logique
Equation différentielle
Modèle électrique
Modèle physique
5
6
Rappel
6
7
Rappel
7
8
Rappel
8
Rappel
 Quoi de neuf dans un SoC
 Assemblage de composants virtuels
 IP: Intellectual Properties
 « IP core »
 Partitionnement logiciel – matériel
 Interfaces entre IP
 Vérification
 Solutions architecturales
9
Evolution des
méthodologies
Nouveau flot de
conception
Co-Design
Rappel
10
Flot de conception continu depuis les
spécifications systèmes jusqu'à
l'implémentation
Co-Design
 Comment passer d’un algorithme à un circuit
11
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
12
Co-Design
13
Co-Design
14
 À 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.
Co-Design
15
 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
Co-Design
16
Spécification
Synthèse logicielle Synthèse Interfaces Synthèse matérielle
Proc / DSP ASIC / FPGA
Estimations
Modèles
Partitionnement HW/SW
Optimisations
Co-Simulation
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
17
Co-Design
18
Co-Design
19
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.
20
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)
21
Partitionnement
22
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.
23
Partitionnement
24
Partitionnement
25
Synthèse
26
 Il faudra prévoir des
itérations de test et de
validation:
 pour le logiciel
 pour le matériel
 conjoint
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. 27
Synthèse logicielle
28
Compiler
Linker
C File C File Asm. File
Binary File Binary File Binary File
Exec. File
Assembler
Library
Phase de développement
Debugger
Profiler
Phase de vérification
Synthèse logicielle
29
Outils
de
mesure
Phase de
développemen
t
Phase de
vérification
Phase de vérification
Emulator
Debugger
Programmer
Development processor
Phase de
développemen
t
Synthèse matérielle
30
comportementale
Description
Description RTL
Description logique
(portes)
GAUT
Catapult-C
Synthèse
architecturale
Synthèse
logique
physique
Synthèse
Layout
MENTOR GRAPHICS
CADENCE
SYNOPSYS
…
MENTOR GRAPHICS
CADENCE
…
comportementale
Spécification
Librairie de portes
Librairie de composants
Librairie de transistors
Niveau d’abstraction
Fiabilité des
prédictions
CAO
Synthèse matérielle
31
SUM :=
A1+B1
Algorithme
Circuit
Synthèse des communications
32
Synthèse des communications
33
Partitionnement Logiciel/Matériel
Spécification des
communications
Sélection des
protocoles
Génération
des interfaces
Vérification et/ou correction
du partitionnement
Coûts de synthèse ?
Caractéristiques temporelles des transferts ?
Choix des modèles
et des langages
Estimation des
performances
Synthèse des bus
Synthèse des interfaces
matérielle et logicielle
Bibliothèque de
protocoles
Logiciel Matériel
Interfaces
Co-simulation : Référentiel de validation
34
 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.
Co-simulation : Échelle de temps
35
 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!
Co-simulation
36
Co-simulation
37
Co-simulation
38
Exemple
Principe
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.
39
La méthodologie top/down
40
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.
41
Méthodologie de co-design plus complète
42
Méthodologie de co-design plus complète
43
Spécification
Allocation des ressources
Méthodologie de co-design plus complète
44
Partitionnement Ordonnancement
Gestion de l’énergie Synthèse du matériel Synthèse du logicielle La vérification

Flots de conception et Codesign (1).pptx

  • 1.
    1 FISE2 Flots de conceptionet Codesign Guedri Hichem
  • 2.
    Chapitre 1: FlotDe Conception Conjointe Matérielle/Logicielle : Co- Design  Rappel  Spécification  Partitionnement  Synthèse logicielle et matérielle  Co-simulation (Validation) 2
  • 3.
    Rappel  Evolution dessystèmes microélectroniques 3 « ASIC based system » «FPGA based system » Matériel standard «SOC» Matériel spécifique -Prototype rapide -Programmable -Conception faible cout -Programmable HW/SW -Complexité -performances
  • 4.
    4 Rappel  Méthodologie deconception : Flot de conception 4
  • 5.
    5  Méthodologie deconception : Flot de conception Rappel Synthèse Architecturale Synthèse Système Niveau fonctionnel Niveau architectural Niveau logique Niveau électrique et physique HDL Schéma Diagramme d’états HDL Schéma Diagramme d’états HDL Schéma / Netlist Equation logique Equation différentielle Modèle électrique Modèle physique 5
  • 6.
  • 7.
  • 8.
  • 9.
    Rappel  Quoi deneuf dans un SoC  Assemblage de composants virtuels  IP: Intellectual Properties  « IP core »  Partitionnement logiciel – matériel  Interfaces entre IP  Vérification  Solutions architecturales 9 Evolution des méthodologies Nouveau flot de conception Co-Design
  • 10.
    Rappel 10 Flot de conceptioncontinu depuis les spécifications systèmes jusqu'à l'implémentation
  • 11.
    Co-Design  Comment passerd’un algorithme à un circuit 11
  • 12.
    Co-Design  Le co-designdans 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 12
  • 13.
  • 14.
    Co-Design 14  À partird’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.
  • 15.
    Co-Design 15  Le CoDesignlogiciel/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
  • 16.
    Co-Design 16 Spécification Synthèse logicielle SynthèseInterfaces Synthèse matérielle Proc / DSP ASIC / FPGA Estimations Modèles Partitionnement HW/SW Optimisations Co-Simulation
  • 17.
    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 17
  • 18.
  • 19.
  • 20.
    Co-Design  La rechercheen 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. 20
  • 21.
    Spécification  Evaluation d’uncahier 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) 21
  • 22.
  • 23.
    Partitionnement  Objectif  L’objectifdu 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. 23
  • 24.
  • 25.
  • 26.
    Synthèse 26  Il faudraprévoir des itérations de test et de validation:  pour le logiciel  pour le matériel  conjoint
  • 27.
    Synthèse  Cette étaperegroupe 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. 27
  • 28.
    Synthèse logicielle 28 Compiler Linker C FileC File Asm. File Binary File Binary File Binary File Exec. File Assembler Library Phase de développement Debugger Profiler Phase de vérification
  • 29.
    Synthèse logicielle 29 Outils de mesure Phase de développemen t Phasede vérification Phase de vérification Emulator Debugger Programmer Development processor Phase de développemen t
  • 30.
    Synthèse matérielle 30 comportementale Description Description RTL Descriptionlogique (portes) GAUT Catapult-C Synthèse architecturale Synthèse logique physique Synthèse Layout MENTOR GRAPHICS CADENCE SYNOPSYS … MENTOR GRAPHICS CADENCE … comportementale Spécification Librairie de portes Librairie de composants Librairie de transistors Niveau d’abstraction Fiabilité des prédictions CAO
  • 31.
  • 32.
  • 33.
    Synthèse des communications 33 PartitionnementLogiciel/Matériel Spécification des communications Sélection des protocoles Génération des interfaces Vérification et/ou correction du partitionnement Coûts de synthèse ? Caractéristiques temporelles des transferts ? Choix des modèles et des langages Estimation des performances Synthèse des bus Synthèse des interfaces matérielle et logicielle Bibliothèque de protocoles Logiciel Matériel Interfaces
  • 34.
    Co-simulation : Référentielde validation 34  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.
  • 35.
    Co-simulation : Échellede temps 35  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!
  • 36.
  • 37.
  • 38.
  • 39.
    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. 39
  • 40.
  • 41.
    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. 41
  • 42.
    Méthodologie de co-designplus complète 42
  • 43.
    Méthodologie de co-designplus complète 43 Spécification Allocation des ressources
  • 44.
    Méthodologie de co-designplus complète 44 Partitionnement Ordonnancement Gestion de l’énergie Synthèse du matériel Synthèse du logicielle La vérification

Notes de l'éditeur

  • #14 Le support logiciel dans un SoC est une composante importante qu’il ne faut pas négliger. Il est important de prévoir la possibilité de configurer, corriger, utiliser ou faire utiliser le produit après la fabrication du circuit. À l’opposé d’un circuit programmable générique, qui doit anticiper proposer des fonctionnalités qui pour des applications non connues à l’avance, pour un SoC destiné à une application spécifique, l’étape de partitionnement est très importante. À partir du cahier des charges, on doit identifier les fonctionnalités qui peuvent être implémentées de façon logicielle et évaluer les performances nécessaires pour une cible processeur. Si cela est compatible avec les objectifs de coût et de consommation en utilisant des cibles existantes, il n’est peut-être pas utile de développer un matériel dédié. Sinon, il faut décider quelles fonctionnalités auront besoin d’une implémentation matérielle et comment partager les tâches.
  • #22 En plus du cahier des charges de l’application, d’autres éléments vont intervenir dans le choix du partitionnement. D’un point de vue logiciel, l’existence (et la disponibilité) de bibliothèques logicielles, de systèmes d’exploration (ainsi que de pilotes) doit être considérée. D’un point de vue matériel, les blocs matériels existant doivent être pris en compte. Au-delà de l’existant, il faudra prévoir d’éventuelles adaptations à l’application développée ainsi que les développements spécifiques nouveaux. Il faut aussi prendre en compte les fonctions annexes qui devront être fournies par le système.
  • #26 Dans un flot de conception conjoint, au-delà des cycles de développement et validation des fonctions logicielles et matérielles, il faudra mettre en place des mécanismes de validation conjointe. Il ne s’agit pas seulement de vérifier que le logiciel fonctionne avec le matériel, mais aussi de garantir que les performances prévues sont bien présentes (vitesse, consommation, coût). Si les performances ne sont pas atteintes, il faudra, éventuellement, revenir sur le partitionnement initial. Il est important de noter que, du fait du coût important de la fabrication d’un circuit, ces étapes de validation doivent avoir lieu en amont.
  • #34 Il est important de conserver une référence, commune aux différentes équipes impliquées, tout au long des phases de développement. Cette référence peut être: une spécification textuelle, une spécification formelle, un modèle fonctionnel ou formel. La mise en place d’une telle référence est un enjeu important dans la conception de SoC complexes.
  • #35 Une fois l’architecture matérielle définie, il faudra développer un modèle fonctionnel intégrant les différentes IPs (ou des modèles comportementaux). Ceci permet de vérifier que les spécifications sont respectées. Ensuite, les modèles sont raffinés vers des modèles RTL synthètisables. Une fois ces modèles validés, on passe dans une deuxième phase du flot de conception appelée backend. Durant cette phase, les étapes de synthèse et de placement routage ont lieu ainsi qu’une série d’étapes de validation pour arriver finalement aux dessins des masques. Tout au long des phases de développement conjoint (matériel/logiciel), des mécanismes de vérification sont mis en place: de la simulation conjointe, des prototypes FPGA, des émulateurs.