Synthèse d`architecture

publicité
Filière 1
UV-4 Conception de
systèmes numériques
le CoDesign
JEGO CHRISTOPHE, Ed. 2006
-2-
Plan
• 1 Introduction
• 2 Méthodologie de conception
• 3 Le flot de conception CoDesign
• 4 Un langage de conception de niveau système
• 5 Des outils de CoDesign
-3-
Plan
• 1 Introduction
• 1 Prévision d’évolution technologique
• 2 Perspective d’intégration
• 3 Implications de l’évolution technologique
• 2 Méthodologie de conception
• 3 Le flot de conception CoDesign
• 4 Un langage de conception de niveau système
• 5 Des outils de CoDesign
-4-
Introduction : Prévision
d’évolution technologique
2005
2008
2011
2014
2017
2020
Technologie (µm)
90
65
45
30
20
15
Taille des puces µP & ASIC
(mm2)
246
246
246
246
246
246
Densité d’intégration µP
225
449
899
1 798
3 596
7 192
Fréquence d’horloge
SOC (GHz)
5.2
11
17.6
28.3
45.5
73.1
Tension
0.9
0.8
0.7
0.6
0.5
0.5
d’alimentation (V)
1.1
1
1
0.9
0.7
0.7
& ASIC (Mtr/cm2)
Source : November 2005 ITRS Release Conference
http://public.itrs.net/
-5-
Introduction : Prévision
d’évolution technologique
Source : 29 November 2001 ITRS Release Conference
http://public.itrs.net/
-6-
Introduction : Perspective
d’intégration
Système sur puce
Introduction : Implications de
l’évolution technologique
-7-
productivité vs complexité
1000
100000
complexité d'intégration
productivité
10000
?
100
complexité 58 %/an
10
1000
100
productivité 21 %/an
1
0,1
10
1
0,1
0,001
0,01
1981
1983
1985
1987
1989
1991
1993
1995
1997
1999
2001
2003
2005
2007
2009
0,01
[SIA99]
p ro d u c tiv ité (K ) tr a n s is to r /é q u ip e -m o is
N b re d e tr a n s is to r s p a r c irc u it (M )
10000
Favoriser la réutilisation de fonctions
Notion d’IP (Intellectual Property)
– Réutiliser les blocs déjà conçus dans la société ;
– Utiliser les générateurs de macro-cellules (Ram, multiplieurs,…)
– Acheter des blocs conçus hors de l’entreprise.
DSP
Cœur
RISC
Buff. E/S
Ram
Ram
Buff. E/S
MPEG
Cœur
Rom
-8-
Introduction : Implications de
l’évolution technologique
Analog.
25% de conception personnalisée
-9-
Introduction : Implications de
l’évolution technologique
Favoriser la réutilisation de fonctions
- 10
-
Introduction : Implications de
l’évolution technologique
Élever le niveau d’abstraction
- 11
-
Introduction : Implications de
l’évolution technologique
Élever le niveau d’abstraction
Introduction : Implications de
l’évolution technologique
- 12
-
un flot de conception
traditionnel
RISC
Ram
Ram
Buff. E/S
Analog.
Définition d’un flot
de conception pour
les Systèmes sur Puce
Cœur
DSP
Cœur
RISC
Buff. E/S
Ram
Ram
Buff. E/S
MPEG
Cœur
Buff. E/S
MPEgG
DSP
Rom
Cœur
Rom
des orientations
méthodologiques
des capacités
technologiques
Analog.
- 13
-
Plan
• 1 Introduction
• 2 Méthodologie de conception
• 1 Nécessité & Objectifs
• 2 Niveaux d’abstraction
• 3 Flot de conception
• 4 Tendances
• 3 Le flot de conception CoDesign
• 4 Un langage de conception de niveau système
• 5 Des outils de CoDesign
Méthodologie de conception :
Nécessité & Objectifs
- 14
-
 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-toMarket)

 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 et
laborieuses
 Rester indépendant le plus longtemps possible vis à vis de
la technologie
 Prendre en compte les contraintes matérielles au plus tôt

- 15
-
Méthodologie de conception :
Niveaux d’abstraction
• Conception d’un circuit ou d’un système : passer d’un cahier des
charges à une réalisation
• 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
- 16
-
Méthodologie de conception :
Niveaux d’abstraction
Diagramme en Y : " The basic idea underlying the Y-chart is that each element of an
electronic system can be described within three different domain [Gajski83] "
A l’intérieur de chaque domaine, les éléments peuvent être décrit à différents niveaux
d’abstraction. Les transitions à l’intérieur du diagramme en Y entre les domaines définissent les
étapes de conception.
Méthodologie de conception :
Niveaux d’abstraction
- 17
Type
Eléments de base
Conception
Conception électrique
Composants
discrets
1
2
1
Optimisation des caractéristiques électriques
2
Conception logique
SSI
Small Scale
Integration
2
2
1
1
3
3
Optimisation des équations logiques
2
1
3
Conception numérique
MSI
Optimisation des traitements
Middle Scale
Integration
Full
Adder
Mux
Registre
Conception architecturale
LSI
UAL
Large Scale
Integration
Choix des fonctionnalités
Séquenceur
Conception fonctionnelle
VLSI
Very Large
Scale
Integration
ULSI
Ultra Large
Scale
Integration
E/S
µP
E
Rom
Cœur DSP
Cœur RISC
Buff. E/S
Fpga
S
E
Buff. E/S
MPEG
Ram
Analog.
Asic
Optimisation des implémentations
S
matérielles et logicielles
Conception système
Optimisation conjointe des implémentations
matérielles et logicielles
- 18
-
Méthodologie de conception :
Flot de conception
Top-Down Design
Démarche de conception
Bottom-Up Design
Spécification
Démarche
descendante
Raffinement
de chaque constituant
Conception Architecturale
Conception Logique
Placement/Routage
Silicium
Démarche
ascendante
Abstraction sur un
ensemble de
constituants
- 19
-
Méthodologie de conception :
Flot de conception
Domaine de travail
Algorithmie
Traitement du signal et de l’image
Ordonnancement
Sélection de composants
Machine d’états
Simplifications logiques
Equations booléennes
Physique du composants
Dimensionnement des transistors
Démarche ascendante
Niveau système
(description comportementale)
Niveau architectural
(description structurelle)
Boites à outil
pour le concepteur
du niveau supérieur
Niveau logique
(équations logiques)
Niveau technologique
(portes logiques)
- 20
-
Méthodologie de conception :
Flot de conception
• Caractéristiques d’une démarche ascendante:
• La conception débute par une phase d’optimisation électrique.
• Une bibliothèque d’éléments optimisés est construite à chaque niveau
(utilisée au niveau d’abstraction supérieur).
• A chaque composant d’un niveau considéré, est associé une phase
d’abstraction (délimitation du composant auquel est associé une
fonction au niveau supérieur).
• Contraintes de la démarche ascendante:
• Nécessite une étude au niveau électrique longue et coûteuse qui ne
peut être justifiée que pour des réalisations à grande diffusion.
• Implique des contraintes de conception système difficiles à
appréhender car on commence par la spécification de sous-ensembles
en espérant progresser vers une solution architecturale pour le
système global.
Z
Méthodologie de conception :
Flot de conception
- 21
Cahier
des charges
Modèle
fonctionnel
Elaboration
Spécification
Spécifications
fonctionnelles
Démarche descendante
Modèle de
spécification
CONTRAINTES
Modèle
architectural
Conception
fonctionnelle
Spécifications
temporelles
Modèle de
réalisation
Conception
architecturale
Spécifications
électriques
Définition
de la
réalisation
Spécifications
technologiques
Modèle
technologique
Production
solution
- 22
-
Méthodologie de conception :
Flot 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
- 23
-
Méthodologie de conception :
Flot de conception
Synthèse Système
HDL
Schéma
Diagramme d’états
Niveau fonctionnel
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
Modèle physique
Niveau
électrique et physique
Méthodologie de conception :
Flot de conception
- 24
-
Méthode globale
 Optimisations: gain dominant au niveau système
• transformations algorithmiques
• choix des fonctions
• organisation des données
 Exploration de l’espace architectural
• éviter les remises en cause des décisions (rebouclage)
• ordonner les prises de décision => heuristique de réduction du tps de conception
• limiter l’espace de recherche des différents niveaux
 Affinement progressif du circuit
• flot continu du niveau système au circuit
• combler le fossé entre les concepteurs de système et les concepteurs de circuit
• définition de modèles globaux qui peuvent être affinés
 MAIS
• Rebouclage complet du flot => processus long et coûteux donc à proscrire
• Flot descendant sans feedback => illusoire
Solution : optimisations locales et rebouclages partiels
- 25
-
Méthodologie de conception :
Flot de conception
Méthode globale
Vérification des spécifications
Spécification
système
Conception
fonctionnelle
Découpage en fonctions
Simulation fonctionnelle
Choix de l’algorithme
Librairie de composants (tps/surf/cons)
Estimation grossière
Simulation fonctionnelle et structurelle
Choix de composants et ordonnancement
Synthèse
architecturale
Pré CO
cis NT
io n R A
d e IN T
se
E
sti S
ma
t io
n
Librairie de portes
Estimation fine
Simulation au niveau logique
Synthèse
logique
Paramètres connus (…)
Estimation exacte
Simulation électrique
Placement
Routage
Tests
(vecteurs de test)
s
Process
Circuit
- 26
-
Méthodologie de conception :
Tendance
- 27
-
Méthodologie de conception :
Tendance
 Mise en place d’un flot de conception continu des spécifications
systèmes à l’implantation électrique
 Systèmes embarqués
⇒ (gestion de la consommation et de la mémorisation)
 Définir des stratégies pour concevoir des circuits en technologies
sub-microniques
 Conception d’ASIP (Application Specific Instruction set Processor
) et de leur compilateur associé
 Hardware/Software CoDesign
- 28
-
Plan
• 1 Introduction
• 2 Méthodologie de conception
• 3 Le flot de conception CoDesign
• 1 présentation générale
• 2 les différentes étapes
• Spécification
• Partitionnement
• Synthèse logicielle & matérielle
• Co-Simulation
• 4 Un langage de conception de niveau système
• 5 Des outils de CoDesign
- 29
-
Le flot de conception CoDesign :
Présentation générale
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
Le flot de conception CoDesign :
Présentation générale
- 30
-
Estimations
Spécification
Optimisations
Modèles
Partitionnement HW/SW
Synthèse logicielle
Proc / DSP
Synthèse Interfaces
Co-Simulation
Synthèse matérielle
ASIC / FPGA
- 31
-
Le flot de conception CoDesign :
Présentation générale
Domaines relevant du CoDesign
- 32
-
Le flot de conception CoDesign :
Présentation générale
Le flot de conception CoDesign :
Présentation générale
- 33
-
Solutions architecturales
Machine
programmable
DSP
Processeurs
généraux
VLIW
RISC
µC
Processeurs
multimédias
ASIP
(Application Specific Instruction
set Processor)
DSP
µC
Circuit
programmable
FPGA
EPLD
ASIC
(Application Specific Integrated
Circuit)
PLA
Custom
SemiCustom
Circuits
sur mesure
Circuits
précaractérisés
Full
Custom
Standart
cell
Circuits
prédiffusés
Gate
array
Sea of
gates
- 34
-
Le flot de conception CoDesign :
Présentation générale
Compromis performance/flexibilité
- 35
-
Le flot de conception CoDesign :
Les différentes étapes
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…)
- 36
-
Le flot de conception CoDesign :
Les différentes étapes
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.
- 37
-
Le flot de conception CoDesign :
Les différentes étapes
Partitionnement
- 38
-
Le flot de conception CoDesign :
Les différentes étapes
Partitionnement
Comparaison de quelques techniques automatiques
- 39
-
Le flot de conception CoDesign :
les différentes étapes
Partitionnement
- 40
-
Le flot de conception CoDesign :
Les différentes étapes
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.
- 41
-
Le flot de conception CoDesign :
Les différentes étapes
Synthèse logicielle
C File
C File
Compiler
Binary File
Asm. File
Assembler
Binary File
Binary File
Linker
Debugger
Library
Exec. File
Phase de développement
Profiler
Phase de vérification
- 42
-
Le flot de conception CoDesign :
Les différentes étapes
Synthèse logicielle
Phase de
développement
Development processor
Phase de
développement
Debugger
Phase de
vérification
Emulator
Outils de
mesure
Programmer
Phase de vérification
Le flot de conception CoDesign :
Les différentes étapes
- 43
-
Niveau d’abstraction
Synthèse matérielle
Spécification
comportementale
Description
comportementale
GAUT
Catapult-C
MENTOR GRAPHICS
CADENCE
SYNOPSYS
…
MENTOR GRAPHICS
CADENCE
…
CAO
Synthèse
architecturale
Librairie de composants
Description RTL
Synthèse
logique
Synthèse
physique
Layout
Librairie de portes
Description logique
(portes)
Librairie de transistors
Fiabilité des
prédictions
- 44
-
Le flot de conception CoDesign :
Les différentes étapes
Synthèse matérielle
SUM :=
A1+B1
Algorithme
Circuit
- 45
-
Le flot de conception CoDesign :
Les différentes étapes
Synthèse des communications
Le flot de conception
- 46
Les différentes étapes
Synthèse des communications
CoDesign :
Partitionnement Logiciel/Matériel
Bibliothèque de
protocoles
Spécification des
communications
Sélection des
protocoles
Logiciel
Matériel
Interfaces
Génération des
interfaces
Coûts de synthèse ?
Caractéristiques temporelles des transferts ?
Vérification et/ou correction
du partitionnement
Choix des modèles
et des langages
Estimation des
performances
Synthèse des bus
Synthèse des interfaces
matérielle et logicielle
Le flot de conception
- 47
Les différentes étapes
Co-simulation
Une nécessité !!
CoDesign :
- 48
-
Le flot de conception CoDesign :
Les différentes étapes
Co-simulation
Co-Simulation
- 49
-
Le flot de conception CoDesign :
Les différentes étapes
Co-simulation
Principe
Exemple
- 50
-
Plan
• 1 Introduction
• 2 Méthodologie de conception
• 3 Le flot de CoDesign
• 4 Un langage de conception de niveau système
• 1 Intérêt & état de l’art
• 2 SpecC
• 3 SystemC
• 4 SystemVerilog (A system-level language war ???)
• 5 Des outils de CoDesign
- 51
-
Un langage de conception
système : Pourquoi
L’utilisation d’un langage de conception au niveau système devient
indispensable.
Quatre grandes raisons peuvent être énoncées :
 Les systèmes sont une combinaison de blocs matériel(s) et logiciel(s).
⇒ les langages de conception sont dédiés à la partie matérielle uniquement.
 Les systèmes comprennent des blocs IPs de sources différentes.
⇒ ces différentes sources doivent avoir un langage de description système commun
pour modéliser l’ensemble de l’application.
 La simulation au niveau RTL devient trop complexe
⇒ une simulation à un haut niveau d’abstraction pour des systèmes complexes
permet un gain de temps important.
 La modélisation au niveau système doit être exploitable lors des
synthèses logicielles et matérielles
⇒ un prototype virtuel de la partie matérielle doit être disponible pour le
développement de la partie logicielle
Un langage de conception
système : Etat de l’art
- 52
-
La définition d’un langage de niveau système a fait l’objet de nombreux
travaux de recherche d’où la proposition de nombreux langages
 Rosetta
 Superlog
 Cynlib
Université du Kansas
CoDesign Automation
http://www.sldl.org/
http://www.superlog.org/
Forte Design Systems (CynApps)
http://www.forteds.com/
 SpecC
CECS Université de Californie Irvine http://www.SpecC.gr.jp/eng/
SpecC
CECS Université de Californie Irvine http://www.SpecC.gr.jp/eng/
 SystemC
OSCI (Synopsys & Coware) http://www.systemc.org/
SystemC
OSCI (Synopsys & Coware) http://www.systemc.org/
 SystemVerilog
Accellera
http://www.systemverilog.org/
SystemVerilog
Accellera
http://www.systemverilog.org/
Et d’autres SDL, Esterel, StateChart, Signal, HardwareC, VHDL+,
Polis, OpenJ, Javatime, SPI, Okapi….
- 53
-
Un langage de conception
système : SpecC
SpecC est un environnement pour la conception au niveau système. Cet
environnement se compose de 3 éléments:
 la méthodologie SpecC : méthodologie de CoDesign basée sur la
notion d’IPs pour la spécification, la modélisation et la conception de
systèmes embarqués au niveau système.
 le langage SpecC : langage construit à partir du langage ANSI-C avec
des extensions dédiées à la conception.
 les outils de CAO SpecC : environnement de CAO comprenant des
outils de compilation, de simulation, d’estimation et de synthèse.
L’environnement SpecC est issu des travaux de l’équipe du professeur
Gajski du CECS (Center for Embedded Computer Systems) de
l’Université de Californie, Irvine
- 54
-
Un langage de conception
système : SpecC
- 55
-
Un langage de conception
système : SpecC
•Langage SpecC:
• extension du langage de programmation ANSI-C (enrichissement avec des
concepts matériels et logiciels).
• première version du langage SpecC développée par l’équipe de Gajski en 1997.
• éléments ajoutés dans le langage SpecC:
Hiérarchie structurelle : notion de canal (ensemble de variables et de fonctions définissant le
protocole de communication) et notion d’interface (ensemble de fonctions de communication
spécifiées au sein du canal).
Hiérarchie comportementale : trois modèles d’exécution (séquentiel, concurrent et pipeline)
Synchronisation : le type prédéfini event est l’élément de base de la synchronisation (argument
des fonctions wait et notify)
Délai temporel : différentiation entre l’intervalle de temps (niveau fonctionnel) et l’instant précis
d’exécution (niveau architectural)
Gestion d’exceptions : deux types d’exception sont supportés : abortion & interrupt
Types de données : deux nouveaux types : booléen (bool) et bit-vecteur (bit[;])
Réutilisation et IP : le langage SpecC favorise la réutilisation et l’intégration d’IPs (Wrapper)
- 56
-
Un langage de conception
système : SpecC
Wrapper :
séparation des communications
du comportement
Légende
- 57
SystemC
Un langage de conception
système : SystemC
• un sous-ensemble du langage ANSI-C++ combiné à un ensemble de
librairies favorisant la spécification, la simulation et la synthèse de
systèmes numériques complexes.
• initialement dédié à la simulation au niveau architectural mais ce langage
s’enrichit de bibliothèques pour pouvoir répondre à toutes les
caractéristiques d’un langage système.
System
Soft IP
Physical
System
Level IP
RTL
HW
Implementation
Verification &
Analysis
SW
Implementation
C-Compiler
Hard IP
- 58
-
Un langage de conception
système : SystemC
Origines du langage
- 59
-
Un langage de conception
système : SystemC
Décembre 2005
PISCATAWAY, N.J., USA, 12 December 2005 The IEEE has approved a
new electronic design standard for the SystemC 2.1 language. The standard,
IEEE 1666(TM), “Standard SystemC Language Reference Manual,”
addresses the increasing complexity of system-on-chip (SoC) design at the
systems level, where the most substantial performance and productivity
gains in semiconductors can be made.
Norme IEEE 1666
Octobre 2004
Spécification
de l’ensemble du système
Conception de l’architecture
Exploration de l’espace
architecturale
Version 2.1
Février 2002
Version 2
Avril 2000
Synthèse logique
Simulation matérielle
Version 1
- 60
-
Un langage de conception
système : SystemC
- 61
-
Un langage de conception
système : SystemC
La structure du langage SystemC repose sur 5 éléments :
 le module : un modèle SystemC est construit à partir d’une hiérarchie de modules qui
peuvent eux-mêmes contenir des modules et des processus (similaire en VHDL et Verilog). Les
modules et les processus communiquent à travers des signaux par l’intermédiaire de ports (in,
out, in/out) associés aux modules.
 le processus : il existe 3 types de processus
 SC_METHOD : s’exécute directement (pas d’attente ou de boucle infinie)
 SC_THREAD : s’exécute séquentiellement grâce à l’instruction Wait (ex: FSM)
 SC_CTHREAD : cas particulier du précédent, une horloge est associée à ce type de
processus. Les signaux de sortie sont alors disponibles sur des fronts de l’horloge
 la synchronisation : l’attente (waiting) ⇒ fin du cycle ou événement
l’observation (watching) ⇒ globale ou locale
 le canal*:ensemble de variables et de fonctions définissant le protocole de
communication
 l’interface*: ensemble de fonctions de communication spécifiées au sein du canal
(*) concept de SpecC
- 62
-
Un langage de conception
système : SystemVerilog
- 63
-
Un langage de conception
système : SystemVerilog
Structure de SystemVerilog 3.1
- 64
-
Plan
• 1 Introduction
• 2 Méthodologie de conception
• 3 Le flot de CoDesign
• 4 Un langage de conception de niveau système
• 5 Des outils de CoDesign
• 1 SCE (SoC Environment)
• 2 CoFluent Studio (CoFluent Design)
• 3 ConvergenSC (CoWare)
• 4 outils chez les leaders de la CAO Electronqiue
- 65
-
Des outils de CoDesign : SoC
Environment
- 66
-
SoC Environment
- 67
-
SoC Environment
- 68
-
SoC Environment
- 69
-
SoC Environment
- 70
-
SoC Environment
- 71
-
SoC Environment
- 72
-
SoC Environment
Processus
Processus
de
synthèse
Processus
ded’exploration
raffinement
Processus de modélisation
- 73
-
Des outils de CoDesign : CoFluent
Studio
MCSE = Méthodologie de Conception des Systèmes Electroniques
MCSE est une démarche complète allant de l'analyse du problème jusqu'à la réalisation et qui préconise
l'utilisation d'une approche descendante.
Elle recommande de procéder selon 4 étapes. A chaque étape sont associés un modèle en entrée et un
modèle en sortie, et une procédure qui aide le concepteur à déterminer la solution appropriée respectant
le modèle.
 La première étape concerne l'élaboration des spécifications. Il s'agit d'exprimer le QUOI de
l'application en caractérisant le système à développer selon une vue purement externe.
 La deuxième étape concerne l'élaboration d'un premier modèle de la solution interne. Le
concepteur procède par raffinements successifs à partir des spécifications fonctionnelles, la
solution devant être conforme au modèle fonctionnel.
 La troisième étape concerne la détermination du support exécutif et de la configuration.
L'architecture matérielle doit tenir compte des contraintes de répartition géographique et des
interfaces nécessaire pour le couplage avec l'environnement.
 La dernière étape concerne la réalisation. La solution est développée par des sousensembles qui sont ensuite intégrés, testés puis validés. La solution matérielle peut se
- 74
-
Des outils de CoDesign :
CoFluent Studio
MCSE = Méthodologie de Conception des Systèmes Electroniques
- 75
-
Des outils de CoDesign : CoFluent
Studio
CoFluent Studio covers 3 steps
of the MCSE design flow (out of 5 steps):



Functional design
Architectural design, including executive
structure design
Prototyping
- 76
-
Des outils de CoDesign : CoFluent
Studio
www.cofluentdesign.com
CoFluent Studio is a set of tools encapsulated into a common framework
and presented to developers in a coherent and context-sensitive way that
strictly follows the recommended MCSE design flow.
- 77
-
Des outils de CoDesign :
ConvergenSC
L’environnement ConvergenSC (ex : CoWare N2C) permet la modélisation de
systèmes complexes à travers l’utilisation d’une représentation unifiée SystemC.
ConvergenSC System Designer permet la spécification de modules matériels
(par exemple IPs) à deux niveaux d’abstraction principaux (fonctionnel et cycle).
La spécification peut être réalisée en C/C++ ou en SystemC.
ConvergenSC System Verifier permet grâce à la disponibilité de modèles de
cœur de processeur et des interfaces correspondantes (SystemC) un
prototypage réaliste et par conséquent la co-simulation de l’ensemble du
système.
Les communications entre la partie matérielle et la partie logicielle sont
modélisées par l’environnement ConvergenSC à travers la gestion de l’interface.
Cette interface est soit fournie avec le cœur de processeur, soit générée par
ConvergenSC.
- 78
-
Des outils de CoDesign :
ConvergenSC
Environnement de
modélisation,
de co-simulation et
de gestion des
interfaces
Algorithms, Control
and Testbench
IP and Performance
Models
ANSI C/C++, SystemC
Architecture
Function
Ref
i
HW Desi g n
S W Op t i mi z at i on
I nt er f ace
feR
i
n
Executable e
Implementable
T est b ench
Behavioral C/C++
System Design
and Partitioning
ne
Interface Synthesis
RTLC
Gener at e
HDL
S y nt h esi s
Cycle-Accurate C/C++
HW-SW Co-design
and Multi-level
Co-verification
SW Image + RTL
"Traditional"
HW-SW Co-verification Implementation
- 79
-
Des outils de CoDesign :
ConvergenSC
Caractéristiques de l’outil ConvergenSC
Pré RTL
Niveau C
Post RTL
Niveau
Assemblage
Matériel
Logiciel
- 80
-
Des outils de CoDesign :
leaders de la CAO Electronique
Environnement niveau système :
SPW
Outil de Co-Simulation
VCC
Environnement niveau système :
System Studio
Outil de Co-Simulation :
Seamless
- 81
-
Conclusion : Un flot de
conception SOC
- 82
-
Conclusion : Evolution des
systèmes microélectroniques
- 83
-
Bibliographie
[Calvez93] J. P. Calvez, "Spécification et conception des ASICs", Ed. Masson, 1993.
[DeMicheli95] G. De Micheli, M. Sami, " Hardware/Software CoDesign", Ed. Kluwer Academic
Publisher, 1995.
[Calvez96] J. P. Calvez, " A CoDesign Case Study with the MCSE Methodology, in the journal
"Design Automation for Embedded Systems “ in the journal "Design Automation for Embedded
Systems", Vol 1, Kluwer Academic Publishers, 1996, pp 183-212.
[Keating99] M. Keating, P Bricaud , " Reuse Methodology Manual for System-on-a-Chip Designs
", 2nde Edition, Ed. Kluwer Academic Publisher, 1999.
[Gajski00] D. D.Gajski, J.Zhu, R. Dömer, A. Gerstlauer, S. Zhao, " SpecC: SpecCification
Language and Design Methodology " , Ed. Kluwer Academic Publisher, 2000.
[Edwards00] S. A. Edwards ," Languages for Digital Embedded Systems“ , Ed. Kluwer Academic
Publisher, 2000.
[Tabbara00] B. Tabbara, A. Tabbara, A. Sangiovanni-Vincentelli, « Function/Architectural
Optimization and Co-Design of Embedded Systems " , Ed. Kluwer Academic Publisher, 2000.
[Thoen00] F.Thoen, F. Catthoor, "Modeling Verification and Exploration of Task-Level
Concurrency in Real-Time Embedded Systems", Ed. Kluwer Academic Publisher, 2000.
[Gerstlauer01] A. Gerstlauer, R. Dömer, J. Peng, D. D.Gajski, " System Design: A Practical Guide
with SpecC" , Ed. Kluwer Academic Publisher, 2000.
[SIA01] Semiconductor Industry Association, "The National Technology Roadmap For
Semiconductors", 2001.
[Vahid02] F. Vahid, T. D. Givargis," Embedded System Design: A Unified Hardware/Software
Introduction" , Ed. John Wiley & Sons, 2002.
- 84
-
Bibliographie
 Equipes de recherche française
MCSE
mcse.ireste.fr/
SLS/TIMA
tima.imag.fr/SLS/sls_v_francaise.htm
LESTER
lester.univ-ubs.fr:8080/
LASTI archi.enssat.fr/
Lannion
COSI www.irisa.fr/cosi/
Rennes
I3S
Grenoble
Lorient
www.i3s.unice.fr/~kwiatkow/mosarts//presentationt.htm Nice
L3I
servif5.insa-lyon.fr/l3i/ Lyon
CMoS
www.lami.univ-evry.fr/cmos/index.htm
LIP6 www-asim.lip6.fr
LIRMM

Nantes
Evry
Paris
www.lirmm.fr
Montpellier
Projets de recherche internationaux
The Chinook Project www.cs.washington.edu/research/projects/lis/chinook/
ESM Group
www.cecs.uci.edu/~cad/projects.html
Irvine
www.cecs.uci.edu/~SpecC/
DSCAD Group
chronos.stanford.edu/users/cad/ Stanford
POLIS Project
www-cad.eecs.berkeley.edu/~polis/
IMEC Lab
www.imec.be/
COBRA Project
www.fzi.de/divisions/sim/projects/cobra.html Karlsruhe
C. E. Department
Berkeley
Louvain
www-ti.informatik.uni-tuebingen.de/
COMITY Project www.it.uc3m.es/~comity/
Madrid
Tuebingen
Washington
Téléchargement