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