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

Documents pareils