Modélisation de système sur puce (SoC) matériel/logiciel
Transcription
Modélisation de système sur puce (SoC) matériel/logiciel
Modélisation de système sur puce (SoC) matériel/logiciel en SystemC/TLM et approche pour la transformation de modèles UML vers TLM Journées Neptune’2007 Sébastien Revol Doctorant CIFRE STMicroelectronics/CEA-LIST [email protected] STMicroelectronics Contexte STMicroelectronics Entreprise leader dans le domaine des Systèmes sur Puce (SoC) Domaine d’application: la conception de systèmes électroniques complexes STMicroelectronics Journées Neptune 23/05/2007 2 Plan Problématique Présentation des approches TLM et SPIRIT à ST Apport d’UML autour de ces approches Implémentation du flot UML Collaborations Conclusion STMicroelectronics Journées Neptune 23/05/2007 3 Les Systèmes sur Puces (SoC) A quoi ressemble un SoC aujourd’hui? Nombre important de blocs sur une seule puce Utilisation croissante de firmwares et logiciels embarqués Réutilisation fréquente de composants Système d’adressage complexe Structures d’interconnection complexes STMicroelectronics Journées Neptune 23/05/2007 4 Problématique Pressions de temps de mise sur le marché toujours plus fortes Complexité des systèmes croissante: Loi de Moore: « le nombre de transistors intégrables sur une puce double tous les 18 mois » « Design gap »: les méthodologies de conception ne suivent pas le rythme! Phase de vérification des circuits: de 70 à 80% du temps de conception: Plus une erreur est découverte tard, plus elle est coûteuse. STMicroelectronics Journées Neptune 23/05/2007 5 Tendance actuelle: l’électronique au niveau système (ESL) Principe: proposer une modélisation des systèmes complets (Matériel + Logiciel) à haut niveau d’abstraction Objectifs: Combler les fossés entre les spécifications et l’implémentation Favoriser le développement conjoint du matériel et du logiciel Accélérer certaines phases de conception (exploration architecturale, intégration, vérification…) Permettre la détection d’erreurs le plus tôt possible dans le flot Favoriser la réutilisation des composants existants STMicroelectronics Journées Neptune 23/05/2007 6 Approches ESL complémentaires Modélisation au niveau Transactionnel (TLM) Pour la simulation Format d’échange SPIRIT/IP-XACT Pour la réutilisation des composants Et plus récemment, UML et l’ingénierie dirigée par les modèles Accélérateur du flot Pivot entre les différentes technologies mises en jeu au cours du flot STMicroelectronics Journées Neptune 23/05/2007 7 Caractéristiques de TLM Focalise modélisation des communications des SoC Modélisation bit true (= identique à la vraie plateforme matérielle du point de vue du logiciel embarqué) Abstraction des notions d’horloges et de cycle: la synchronisation se fait sur les transactions Taille des transactions arbitraire Point d’entrée pour le raffinement du design (IP et communications) Grande vitesse de simulation (x1000 vs simulation RTL) Annotations temporelles Implémentation basée sur SystemC (1) (1) www.systemc.org STMicroelectronics Journées Neptune 23/05/2007 8 Utilisation de TLM Simulation conjointe Matériel/Logiciel rapide Développement du logiciel embarqué Fabrication de banc de test pour la vérification Exploration architecturale, analyse de performances Verification Fonctionelle Logiciel Embarqué fonctionnel Co-simulation Modèles PV Analyse Architecturale STMicroelectronics Modèles Temporisés Optimisation du logiciel embarqué Journées Neptune 23/05/2007 9 SPIRIT/IP-XACT Standard défini par le SPIRIT consortium (1) Encapsulation de composants et générateurs dans une description XML Favorise l’échange de composants entre constructeurs Réutilisation des composants Assemblage rapide de plateformes Automatisation de la configuration des composants Supporte différents langages et niveaux de représentation SystemC, VHDL, Verilog etc. Niveau Transfert de registres (RTL), et Transactionnel (TLM) (1) www.spiritconsortium.org STMicroelectronics Journées Neptune 23/05/2007 10 Approche UML Intérêt récent de la communauté électronique Capacités de modélisation à différents niveaux d’abstraction au cours du flot de conception Spécifications (par exemple avec SysML) Modèles exécutables: fonctionnels, logiciels, matériels Peut reposer sur des méthodologies et standards existants Automatisation par les transformations de modèles et génération de code Langage unique, pivot pour relier les approches différentes approches STMicroelectronics Journées Neptune 23/05/2007 11 Flot général de conception des SoC (avant UML) Spécifications papier Premier modèle fonctionnel exécutable (C/C++ /matlab …) «référence pour » «référence pour » Architecture Analysis-Validation Réutilisation Analysis (Excel)/Simulation (TLM-Temporisé) Base de composants IP-XACT partitionnement HW/SW TLM SW Devel STMicroelectronics Devel «référence pour » Cosimulation RTL (pour verif HW ou SW) Devel Automatisation via SPIRIT/IP-XACT Niveau porte logique Silicium Journées Neptune 23/05/2007 12 Approche proposée avec UML Transfo de modèles Génération de code Automatisation via SPIRIT Méthodo SysML/UML Specs initiales Intégration de modèles de spec Matlab/C/C++ Modèle UML fonctionnel Modèle UML du logiciel Platform Specific Model Code logiciel embarqué STMicroelectronics Modèles d’analyse (MARTE) Rétro Annotations Export vers des outils d’analyse Modèle UML du matériel IP-XACT Platform Specific Model (UML for SystemC) Code Cosimulation SystemC-TLM Journées Neptune 23/05/2007 13 Implémentation du flot Partie haute du flot inspirée des méthodologies des spécifications pour l’embarqué, comme ACCORD|UML du CEA-LIST, formalisation des spécifications avec SysML Réutilisation de celles-ci pour la partie logicielle Focalisation sur la partie Matérielle Dérivation modèle fonctionnel -> modèle matériel Import/Export avec IP-XACT Génération de code SystemC-TLM STMicroelectronics Journées Neptune 23/05/2007 14 Focalisation des développements Depuis un modèle UML fonctionnel Reuse Modèle UML HW indépendant du langage Base de composants IP-XACT transfo Model d’analyse (MARTE) transfo Modèle d’association Modèles UML HW spécifiques au langage (e.g UML for SystemC) Génération de code Génération de code Environnements de conceptions matérielles compatibles IP-XACT vues Description IP-XACT code éxécutable/synthétisable (e.g SystemC-TLM) Nouveau composant Générateurs IPXACT Ad-hoc STMicroelectronics Journées Neptune 23/05/2007 15 Profils UML utilisés le long du flot Modèle d’analyse: utilisation du standard OMG MARTE Génération de code SystemC-TLM: UML for SystemC Import/Export IP-XACT: définition d’un nouveau profil: UML for ESL STMicroelectronics Journées Neptune 23/05/2007 16 UML for SystemC Défini par STMicroelectronics (Sara Bocchio & Alberto Rosti, ST Milan, nombreuses publications, cf DAC UML for SoC workshop) Transcription 1-pour-1 des concepts de SystemC au niveau UML Permet la génération de code exécutable C++/SystemC STMicroelectronics Journées Neptune 23/05/2007 17 Exemple de modélisation structurelle avec UML for SystemC Déf de Port et connexion d’Interface Définition de Module Définition des attributs de classe Déclaration de la liste de Sensibilité définition des opérations de classe Déclaration de sc_thread STMicroelectronics Journées Neptune 23/05/2007 18 Description d’une plateforme avec UML for SystemC STMicroelectronics Journées Neptune 23/05/2007 19 Description comportementale Control pseudo state C++ assertions wait state STMicroelectronics Journées Neptune 23/05/2007 20 Travaux sur le profil UML for SystemC Permettre la génération de code au niveau TLM Définition d’une librairie de modèles implémentant la hiérarchie de classe spécifique au niveau transactionnel Portage du générateur de code dans l’Eclipse Modeling Framework (actuellement seulement dans Entreprise Architect) Implémentation du profil Définition d’un Méta-Modèle EMF SystemC-C++ sérialisable via les plugins OpenArchitectureWare Transfos de modèle d’UML vers ce Méta-Modèle (étude en cours pour le choix Java, ATL ou OpenArchitectureWare) STMicroelectronics Journées Neptune 23/05/2007 21 Définition du profil UML for ESL Modélisation structurelle indépendante du langage Doit être compatible avec le standard OMG UML for SoC Mais ajout de nombreux concepts que l’on retrouve dans IP-XACT: Meilleure définition des interfaces bus (Master/Slave/Mirrored) Notions d’adressage, register map Distinction entre spécification et implémentation: Modèle d’association avec les Platform Specific Models tels qu’UML for SystemC STMicroelectronics Journées Neptune 23/05/2007 22 Plus définition comportementale On veut inclure dans ce profil la description comportementale au niveau transactionnel (premier modèle du matériel) Plus abstrait qu’UML for SystemC Philosophie des modèles TLM: Encapsuler dans des ressources d’exécutions à l’intérieur de composants des algorithmes C/C++, se synchronisant entre-eux ainsi qu’avec les entrée-sortie du composant (registres et ports) Transfos de modèles envisagées: D’un modèle fonctionnel vers UML for ESL UML for ESL vers UML for SystemC-TLM STMicroelectronics Journées Neptune 23/05/2007 23 Bilan des transformations à implémenter IP-XACT Profil UML for ESL (indépendant du langage) Profil UML for SystemC-TLM Métamodèle EMF SystemC/C++ EMF Générateur de Code SystemC/C++ Transfo Complète (struct + comportement) Transfo Complète (seulement structure) Transfo partielle STMicroelectronics Journées Neptune 23/05/2007 24 Collaborations en cours Collaboration étroite avec le CEA-LIST (F. Terrier et S. Gérard) par l’encadrement d’une thèse CIFRE Collaboration avec ST Milan pour le portage au niveau TLM d’UML for SystemC Projet européen IST SPRINT: favorisation de l’adoption des standards TLM et IP-XACT + tache spéciale UML pour la définition du profil fonctionnel et UML for ESL Projet Minalogic OpenTLM: conception d’un environnement Open Source Eclipse pour faciliter le développement de logiciel embarqué sur des plateforme TLM STMicroelectronics Journées Neptune 23/05/2007 25 Conclusion UML pour les SoC: Langage adapté pour couvrir le flot de spécification Pivot, permet d’intégrer les différents formalismes (ex: Spec, IP-XACT, TLM) et de passer rapidement de l’un à l’autre par l’IDM Toujours en cours d’implémentation Travail important à réaliser sur la modélisation comportementale dans UML for ESL Des ouvertures possibles: Connexion avec les méthodes formelles (génération de code correct par construction, papier FDL’06) Génération de code synthétisable STMicroelectronics Journées Neptune 23/05/2007 26