Upload
emilien-lecoq
View
110
Download
3
Embed Size (px)
Citation preview
Filière 1Filière 1UV-4 UV-4 Conception de Conception de
systèmes numériques systèmes numériques le CoDesignle 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 & ASIC (Mtr/cm2)
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
d’alimentation (V)
0.9
1.1
0.8
1
0.7
1
0.6
0.9
0.5
0.7
0.5
0.7
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/
- 7 -
Introduction : Implications de l’évolution technologique
productivité vs complexité
0,001
0,01
0,1
1
10
100
1000
10000
1981
1983
1985
1987
1989
1991
1993
1995
1997
1999
2001
2003
2005
2007
2009
Nb
re d
e tr
an
sist
ors
pa
r ci
rcu
it (
M)
0,01
0,1
1
10
100
1000
10000
100000
pro
du
ctiv
ité
(K)
tra
nsi
sto
r/éq
uip
e-m
oiscomplexité d'intégration
productivité
complexité 58 %/an
productivité 21 %/an
[SIA99]
??
- 8 -
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.
Cœur
RISC
Cœur
DSP
MP
EG
Analog.Buff. E/S
Rom
Buff. E/S
Ram
Ram 25% de conception personnalisée
Introduction : Implications de l’évolution technologique
- 9 -
Introduction : Implications de l’évolution technologique
Favoriser la réutilisation de fonctions
- 12 -
Introduction : Implications de l’évolution technologique
Cœur
RISC
Cœur
DSP
MP
EG
Analog.Buff. E/S
Rom
Buff. E/S
Ram
Ram
des capacités technologiques
des orientations méthodologiques
un flot de conception traditionnel
Définition d’un flot Définition d’un flot de conception pour de conception pour
les Systèmes sur Puceles Systèmes sur Puce Cœur
RISC
Cœur
DSP
MP
EgG
Analog.Buff. E/S
Rom
Buff. E/S
Ram
Ram
- 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
- 14 -
Méthodologie de conception : Nécessité & Objectifs
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 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.
- 17 -
Méthodologie de conception : Niveaux d’abstraction
Type Eléments de base Conception
Composants discrets
Conception électrique
Optimisation des caractéristiques électriques
SSI
Small Scale Integration
Conception logique
Optimisation des équations logiques
MSI
Middle Scale Integration
Conception numérique
Optimisation des traitements
LSI
Large Scale Integration
Conception architecturale
Choix des fonctionnalités
VLSI
Very Large Scale
Integration
Conception fonctionnelle
Optimisation des implémentations
matérielles et logicielles
ULSI
Ultra Large Scale
Integration
Conception système
Optimisation conjointe des implémentations
matérielles et logicielles
1 2
1 2
12
31
2
31
2
3
PE/S FpgaE S AsicE S
Cœur RISC
Cœur DSP
Analog.Buff. E/S
Buff. E/S
Ram
Rom
MPEG
UAL Séquenceur
Registre Mux Full Adder
- 18 -
Méthodologie de conception : Flot de conception
Démarche de conceptionDémarche de conception
Spécification
Conception Architecturale
Conception Logique
Placement/Routage
Silicium
Top-Down Design Bottom-Up Design
Démarche
descendante
Démarche
ascendante
Raffinement
de chaque constituant
Abstraction sur un ensemble de constituants
- 19 -
Méthodologie de conception : Flot de conception
Niveau technologique(portes logiques)
Niveau logique(équations logiques)
Niveau architectural(description structurelle)
Niveau système(description comportementale)
Boites à outil pour le concepteur du niveau supérieur
Physique du composants
Dimensionnement des transistors
Simplifications logiques
Equations booléennes
Ordonnancement
Sélection de composants
Machine d’états
Algorithmie
Traitement du signal et de l’image
Domaine de travailDomaine de travailDémarche ascendanteDémarche ascendante
- 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.
- 21 -
Méthodologie de conception : Flot de conception Z
DDéémmaarrcchhee ddeesscceennddaannttee
Conception fonctionnelle
Conception architecturale
Cahier des charges
Elaboration Spécification
Définition de la
réalisation
Production solution
CONTRAINTES
Spécifications fonctionnelles
Spécifications temporelles
Spécifications électriques
Spécifications technologiques
Modèle de spécification
Modèle fonctionnel
Modèle architectural
Modèle de réalisation
Modèle technologique
- 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 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
- 24 -
Méthodologie de conception : Flot de conception
Méthode globaleMé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 partielsSolution : optimisations locales et rebouclages partiels
- 25 -
Méthodologie de conception : Flot de conception
Méthode globaleMéthode globale
Conception fonctionnelle
Synthèse architecturale
Spécificationsystème
Synthèse logique
PlacementRoutage
Vérification des spécifications
Découpage en fonctions
Simulation fonctionnelle
Choix de l’algorithmeLibrairie de composants (tps/surf/cons)
Estimation grossière
Simulation fonctionnelle et structurelle
Choix de composants et ordonnancement
ProcessCircuit
CONTRAINTES
Précision des estimations
Librairie de portes
Estimation fine
Simulation au niveau logique
Paramètres connus (…)
Estimation exacte
Simulation électrique
Tests
(vecteurs de test)
- 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 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 -
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
Le flot de conception CoDesign : Présentation générale
- 31 -
Domaines relevant du CoDesignDomaines relevant du CoDesign
Le flot de conception CoDesign : Présentation générale
- 33 -
Le flot de conception CoDesign : Présentation générale
Solutions architecturales
Circuitsprécaractérisés
Circuitsprédiffusés
Circuitssur mesure
Sea of gates
ASIC(Application Specific Integrated
Circuit)
Circuitprogrammable
ASIP(Application Specific Instruction
set Processor)
Machineprogrammable
FPGA EPLD PLA CustomSemi-
Custom
Gate array
DSP C
Processeursgénéraux
DSP C
Processeursmultimédias
Full Custom
Standart cellVLIW RISC
- 35 -
Le flot de conception CoDesign : Les différentes étapes
SpécificationSpécification
Evaluation d’un cahier des chargesAspects 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érielleUne technologieUn type de circuit (FPGA, ASIC, DSP, Processeurs…) Un flot de développement (outils CAO)
- 36 -
Le flot de conception CoDesign : Les différentes étapes
PartitionnementPartitionnement
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.
- 38 -
Le flot de conception CoDesign : Les différentes étapes
PartitionnementPartitionnement
Comparaison de quelques techniques automatiques
- 40 -
Le flot de conception CoDesign : Les différentes étapes
SynthèseSynthèseCette é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 logicielleSynthèse logicielle
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
- 42 -
Outils de mesure
Le flot de conception CoDesign : Les différentes étapes
Synthèse logicielleSynthèse logicielle
Phase de développement
Phase de vérification
Phase de vérification
Emulator
Debugger
Programmer
Development processor
Phase de développement
- 43 -
Le flot de conception CoDesign : Les différentes étapes
Synthèse matérielleSynthèse matérielle
comportementaleDescription
Description RTL
Description logique(portes)
GAUTCatapult-C
Synthèse architecturale
Synthèse logique
physiqueSynthèse
Layout
MENTOR GRAPHICSCADENCESYNOPSYS…
MENTOR GRAPHICSCADENCE…
comportementaleSpécification
Librairie de portes
Librairie de composants
Librairie de transistors
Niveau d’abstractionNiveau d’abstraction
Fiabilité des Fiabilité des prédictionsprédictionsCAOCAO
- 44 -
Le flot de conception CoDesign : Les différentes étapes
Synthèse matérielleSynthèse matérielle
SUM :=
A1+B1
Algorithme
Circuit
- 45 -
Le flot de conception CoDesign : Les différentes étapes
Synthèse des communicationsSynthèse des communications
- 46 -
Le flot de conception CoDesign : Les différentes étapes
Synthèse des communicationsSynthèse des communicationsPartitionnement 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
- 47 -
Le flot de conception CoDesign : Les différentes étapes
Co-simulationCo-simulation Une nécessité !!Une nécessité !!
- 48 -
Co-Simulation
Le flot de conception CoDesign : Les différentes étapes
Co-simulationCo-simulation
- 49 -
ExempleExemple
PrincipePrincipe
Le flot de conception CoDesign : Les différentes étapes
Co-simulationCo-simulation
- 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
- 52 -
Rosetta Université du Kansas http://www.sldl.org/
Superlog CoDesign Automation http://www.superlog.org/
Cynlib Forte Design Systems (CynApps) http://www.forteds.com/
SpecC CECS Université de Californie Irvine http://www.SpecC.gr.jp/eng/
SystemC OSCI (Synopsys & Coware) http://www.systemc.org/
SystemVerilog Accellera http://www.systemverilog.org/
Et d’autres SDL, Esterel, StateChart, Signal, HardwareC, VHDL+,
Polis, OpenJ, Javatime, SPI, Okapi….
SpecC CECS Université de Californie Irvine http://www.SpecC.gr.jp/eng/
SystemC OSCI (Synopsys & Coware) http://www.systemc.org/
SystemVerilog Accellera http://www.systemverilog.org/
Un langage de conception système : Etat de l’art
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
- 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
- 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
Légende
Wrapper :
séparation des communications du comportement
- 57 -
Un langage de conception système : SystemC
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.
Sys
tem
RT
LP
hys
ical
HWImplementation
Verification &Analysis
SystemLevel IP
SWImplementation
C-Compiler
Soft IP
Hard IP
- 59 -
Version 2.1
Spécification de l’ensemble du système
Octobre 2004
Conception de l’architectureExploration de l’espace architecturale
Février 2002
Version 2
Synthèse logique Simulation matérielle
Avril 2000
Version 1
Norme IEEE 1666
Décembre 2005PISCATAWAY, 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.
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 deprocessus. 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
- 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
- 72 -
SoC Environment
Processus de modélisation
Processus de raffinement
Processus d’exploration Processus de synthèse
- 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 sous- ensembles qui sont ensuite intégrés, testés puis validés. La solution matérielle peut se développer séparément de la solution logicielle.
- 74 -
Des outils de CoDesign : CoFluent Studio
MCSE = Méthodologie de Conception des Systèmes Electroniques
- 75 -
CoFluent Studio covers 3 steps of the MCSE design flow (out of 5 steps): Functional design Architectural design, including executive structure design Prototyping
Des outils de CoDesign : CoFluent Studio
- 76 -
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.
www.cofluentdesign.com
Des outils de CoDesign : CoFluent Studio
- 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
Behavioral C/C++ Behavioral C/C++ System DesignSystem Designand Partitioningand Partitioning
ExecutableExecutableImplementableImplementable
Refine
Refine
Interface SynthesisInterface Synthesis
Cycle-Accurate C/C++ Cycle-Accurate C/C++ HW-SW Co-designHW-SW Co-designand Multi-leveland Multi-levelCo-verificationCo-verification
Testb
ench
SW
Op
timiza
tion
In
terfa
ce
Sy
nth
es
isIn
terfa
ce
Sy
nth
es
is
Gen
erateH
DL
RTLCRTLC
HW
Desig
n
IP and Performance Models
Function
Algorithms, Control and Testbench
ANSI C/C++, SystemC
Architecture
"Traditional""Traditional"HW-SW Co-verificationHW-SW Co-verification
SW Image + RTL SW Image + RTL ImplementationImplementation
Environnement de modélisation,
de co-simulation et de gestion des
interfaces
- 79 -
Des outils de CoDesign : ConvergenSC
Matériel Logiciel
Niveau C
Niveau Assemblage
Pré RTL
Post RTL
Caractéristiques de Caractéristiques de l’outil ConvergenSCConvergenSC
- 80 -
Des outils de CoDesign : leaders de la CAO Electronique
Outil de Co-Simulation :
Seamless
Environnement niveau système :
SPWOutil de Co-Simulation
VCC
Environnement niveau système :
System Studio
- 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/ Nantes
SLS/TIMA tima.imag.fr/SLS/sls_v_francaise.htm Grenoble
LESTER lester.univ-ubs.fr:8080/ Lorient
LASTI archi.enssat.fr/ Lannion
COSI www.irisa.fr/cosi/ Rennes
I3S 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 Evry
LIP6 www-asim.lip6.fr Paris
LIRMM www.lirmm.fr Montpellier
Projets de recherche internationauxThe Chinook Project www.cs.washington.edu/research/projects/lis/chinook/ Washington
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/ Berkeley
IMEC Lab www.imec.be/ Louvain
COBRA Project www.fzi.de/divisions/sim/projects/cobra.html Karlsruhe
C. E. Department www-ti.informatik.uni-tuebingen.de/ Tuebingen
COMITY Project www.it.uc3m.es/~comity/ Madrid
CIRCUS Project www.grm.polymtl.ca/circus/ Montréal