Simulateur compilé d’une description multi-langage des systèmes hétérogènes

La conception de systèmes hétérogènes exige deux étapes importantes, à savoir : la modélisation et la simulation. Habituellement, des simulateurs sont reliés et synchronisés en employant un bus de co-simulation. Les approches courantes ont beaucoup d’inconvénients : elles ne sont pas toujours adaptées aux environnements distribués, le temps d’exécution de simulation peut être très décevant, et chaque simulateur a son propre noyau de simulation. Nous proposons une nouvelle approche qui consiste au développement d’un simulateur compilé multi-langage où chaque modèle peut être décrit en employant différents langages de modélisation tel que SystemC, ESyS.Net ou autres. Chaque modèle contient généralement des modules et des moyens de communications entre eux. Les modules décrivent des fonctionnalités propres à un système souhaité. Leur description est réalisée en utilisant la programmation orientée objet et peut être décrite en utilisant une syntaxe que l’utilisateur aura choisie. Nous proposons ainsi une séparation entre le langage de modélisation et la simulation. Les modèles sont transformés en une même représentation interne qui pourrait être vue comme ensemble d’objets. Notre environnement compile les objets internes en produisant un code unifié au lieu d’utiliser plusieurs langages de modélisation qui ajoutent beaucoup de mécanismes de communications et des informations supplémentaires. Les optimisations peuvent inclure différents mécanismes tels que le regroupement des processus en un seul processus séquentiel tout en respectant la sémantique des modèles. Nous utiliserons deux niveaux d’abstraction soit le « register transfer level » (RTL) et le « transaction level modeling » (TLM). Le RTL permet une modélisation à bas niveau d’abstraction et la communication entre les modules se fait à l’aide de signaux et des signalisations. Le TLM est une modélisation d’une communication transactionnelle à un plus haut niveau d’abstraction. Notre objectif est de supporter ces deux types de simulation, mais en laissant à l’usager le choix du langage de modélisation. De même, nous proposons d’utiliser un seul noyau au lieu de plusieurs et d’enlever le bus de co-simulation pour accélérer le temps de simulation. The design of heterogeneous systems requires two main steps, modeling and simulation. Usually, simulators are connected and synchronized by using a cosimulation bus. These current approaches have many disadvantages: they are not always adapted to the distributed environments, the execution time can be very disappointing, and each simulator has its own core of simulation. We propose a new approach which consists in developing a multi-language compiled simulator where each model can be described by employing various modeling languages such as SystemC, ESyS.Net or others. Each model contains modules and communication links between them. These modules describe functionalities for a desired system. Their description is realized by using the programming object and can be described by using a syntax that a user will have chosen. We thus propose a separation between the language of modeling and simulation. The models are transformed into the same internal representation which could be seen like unique objects. Our environment compiles these internal objects by producing a unified code instead of using several languages of modeling which add many mechanisms of communications and extra informations. Optimizations can include various mechanisms such as merging processes into only one sequential process while respecting the semantics of the models. We will use two abstraction levels, the “register transfer level”(RTL) and the “transaction-level modeling”(TLM). RTL allows a low level abstraction for modeling and the communication between the modules is done with signals. The TLM is a modeling for transactional communication with a higher abstraction level than RTL. Our aim is to support these two types of simulation, but the user can choose the language of modeling. In the same way, we propose to use a single core and to remove the cosimulation bus to accelerate the simulation time.

Keyphrases: Simulateur, SystemC, Co-simulation, Multi-langage, Systèmes, SystemC, SystemC, Simulator, SystemC, Cosimulation, Multi-laguages, Systems