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
Méthodologie de conception : Flot de conception
Méthodologie de conception : Flot de conception
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.
Méthodologie de conception : Flot de conception
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
Méthodologie de conception : Flot de conception
Méthodologie de conception : Flot de conception
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
Méthodologie de conception : Flot de conception
Méthodologie de conception : Tendance
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
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
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
Le flot de conception CoDesign : Présentation générale
Le flot de conception CoDesign : Présentation générale
Le flot de conception CoDesign : Présentation générale
Le flot de conception CoDesign : Présentation générale
Le flot de conception CoDesign : Les différentes étapes
Evaluation d’un cahier des charges
Aspects techniques
Evaluation de la complexité (nbre de portes, nbre E/S, …)
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)
Le flot de conception CoDesign : Les différentes étapes
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.
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
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.
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
Le flot de conception CoDesign : Les différentes étapes
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
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.
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.
Des outils de CoDesign : CoFluent Studio
Des outils de CoDesign : CoFluent Studio
Des outils de CoDesign : CoFluent Studio
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.
Conclusion : Evolution des systèmes microélectroniques
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.