Modélisation TLM en SystemC

De Ensiwiki.

Aller à : Navigation, rechercher

Sommaire

  • 1 Sur le Kiosk
  • 2 Ressources sur le web
  • 3 FAQ sur l'utilisation de TLM/SystemC
    • 3.1 Installer SystemC et TLM sur sa machine personnelle
    • 3.2 Utilisation de SystemC et TLM sur ensisun
    • 3.3 Messages d'erreur de G++
    • 3.4 Erreurs à l'exécution
    • 3.5 <systemc.h> ou <systemc> ?

Sur le Kiosk

  • http://intranet.ensimag.fr/KIOSK/Telecom/3A/ACE/SystemC/ : la page du Kiosk sur SystemC/TLM

Ressources sur le web

  • http://www.systemc.org : le site de SystemC et TLM
  • http://www.doulos.com/knowhow/systemc/tlm2/ : tutorial abordable sur TLM-2
  • http://standards.ieee.org/getieee/1666/download/1666-2005.pdf : Le standard IEEE pour SystemC

FAQ sur l'utilisation de TLM/SystemC

Installer SystemC et TLM sur sa machine personnelle

Cf. la page Installer SystemC et TLM.

Utilisation de SystemC et TLM sur ensisun

Les bibliothèques SystemC et TLM sont installées dans ~moy/tlm/. Pour les utiliser, faites simplement :

source ~moy/tlm/setup-ensisun.sh

ceci définiera deux variables $SYSTEMCROOT et $TLMOSCI qui pointent sur les répertoires où SystemC et TLM sont installés. Ces variables sont utilisées dans les Makefiles fournis pour les TPs et les exemples. Par exemple, pour compiler le petit exemple de rendez-vous :

wget 'http://www-verimag.imag.fr/~moy/cours/tlm/code-rendezvous.tar.gz'
tar xzvf code-rendezvous.tar.gz
cd code/rendezvous/
source ~moy/tlm/setup-ensisun.sh
make
./run.x

Messages d'erreur de G++

error: `sc_time' has not been declared
error: expected class-name before ',' token
error: expected class-name before ‘{’ token

Vous vouliez probablement dire sc_core::sc_time ou sc_core::sc_module(ou bien utiliser "using namespace sc_core;")

target_socket.h:66: error: ‘struct Memory’ has no member named ‘read’

Vous avez probablement déclaré la méthode read du mauvais type (attention, le moindre const compte !)

error: ‘SC_CURRENT_USER_MODULE’ has not been declared

Il manque la macro SC_HAS_PROCESS(nom-du-module) dans la déclaration du module.

autre

Voir la page Les Erreurs de GCC. N'hésitez pas à ajouter d'autres messages ici.

Erreurs à l'exécution

Error: (E115) sc_signal<T> cannot have more than one driver: 
 signal `IRQ' (sc_signal)
 first driver `Generator1.compute' (sc_thread_process)
 second driver `LCDC.compute' (sc_thread_process)

Notre manière d'utiliser sc_signal n'est pas compatible avec les vérifications faites par SystemC en version 2.2, il faut faire export SC_SIGNAL_WRITE_CHECK=DISABLE pour la désactiver.

<systemc.h> ou <systemc> ?

Certains programme utilisent

 #include <systemc.h>

d'autres

 #include <systemc>

En fait, systemc.h est la forme obsolète, qui fait à peu près la même chose que systemc-sans-le-point-h, mais aussi des using namespace ...; qui facilitent la vie, mais qui sont reconnus universellement comme étant une mauvaise pratique dans les fichiers .h.

Récupérée de « http://ensiwiki.ensimag.fr/index.php/Mod%C3%A9lisation_TLM_en_SystemC »
Catégories : Informatique | Troisième Année | SLE
Powered by MediaWiki
Attribution-Share Alike 3.0 Unported
  • Dernière modification de cette page le 16 octobre 2009 à 12:22.
  • Cette page a été consultée 2 280 fois.
  • Contenu disponible sous Attribution-Share Alike 3.0 Unported.
  • Politique de confidentialité
  • À propos de Ensiwiki
  • Avertissements
 
Affichages
  • Page
  • Discussion
  • Voir le texte source
  • Historique
Outils personnels
  •  
  • Connexion
Actualité
  • Stage Unix de rentrée
  • Soutenances de PFE
  • Projet système
  • Projets spécialité
  • Lexique franco-anglais
  • Projet C
  • Plannings des stages
Navigation
Ensimag
  • Accueil
  • FAQ
  • Mode d'emploi
  • Droit d'auteur
  • Modifications récentes
  • Page au hasard
Boîte à outils
  • Pages liées
  • Suivi des pages liées
  • Pages spéciales
  • Version imprimable
  • Lien historique
  • Principaux contributeurs