Modélisation TLM en SystemC

Un article 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
Affichages
  • Page
  • Discussion
  • Voir le texte source
  • Historique
Outils personnels
  •  
  • Identification
Actualité
  • Lexique franco-anglais
  • Stage Unix de rentrée
  • Projet Architecture
  • TER
  • Log. de Base
Navigation
 
  • Accueil
  • FAQ
  • Mode d'emploi
  • Droit d'auteur
  • Modifications récentes
  • Une page au hasard
Boîte à outils
  • Pages liées
  • Suivi des liens
  • Importer un fichier
  • Pages spéciales
  • Version imprimable
  • Lien historique
  • Principaux contributeurs
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 1 698 fois.
  • Contenu disponible sous Attribution-Share Alike 3.0 Unported.
  • Politique de confidentialité
  • À propos de Ensiwiki
  • Avertissements