Changes between Version 47 and Version 48 of SoclibCourseTp1


Ignore:
Timestamp:
Nov 22, 2012, 5:37:44 PM (12 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp1

    v47 v48  
    207207Les modèles de simulation respectant le style CABA disponibles dans SoCLib permettent une simulation rapide, en utilisant le moteur de simulation SystemC2.0 fourni par le consortium OSCI, puisque dans le cas où tous les composants matériels se comportent comme des automates de Moore, les deux fonctions ''transition'' et ''genMoore'' de chaque composant ne sont exécutées qu'une seule fois par cycle.
    208208
    209 Le moteur de simulation SystemC2.0 (fourni par le consortium OSCI) utilise une technique d'ordonnancement dynamique (avec gestion d'un échéancier), qui a le mérite d'être très générale, et de s'adapter à à peuprès n'importe quel style d'écriture des modèles SystemC.
    210 
    211 Mais il est possible d'accélérer fortement la simulation en  utilisant le moteur de simulation SystemCASS (développé par le laboratoire LIP6), qui utilise une technique d'ordonnancement statique (sans échéancier) pour exploiter
    212 les caractéristiques particulières des modèles SoCLib.
     209Le moteur de simulation SystemC2.0 (fourni par le consortium OSCI) utilise une technique d'ordonnancement dynamique (avec gestion d'un échéancier), qui a le mérite d'être très générale, et de s'adapter à à peuprès n'importe quel style d'écriture des modèles SystemC. Mais la gestion de cet échéancier reste coûteuse en temps de calcul, et il est possible d'accélérer fortement la simulation en  utilisant le moteur de simulation SystemCASS (développé par le laboratoire LIP6). En effet, SystemCASS exploite les caractéristiques particulières des modèles SoCLib CABA pour mettre en oeuvre une technique d'ordonnancement statique (sans échéancier).
    213210
    214211Pour utiliser SystemCASS, il n'est pas nécessaire de modifier le code SystemC des composants instanciés, ni le code SystemC décrivant la top_cell, mais il faut recompiler l'ensemble des fichiers sources, en modifiant les chemins d'accès aux fichiers inclus et aux bibliothèques de SystemC.
    215212La génération des fichiers objets utilise la commande suivante :
    216213{{{
    217 $ g++ -Wno-deprecated -I. -I/users/outil/dsx/systemcass/include -c -o filename.o filename.cpp
     214$ g++ -Wno-deprecated -fpermissive -I. -I/users/outil/dsx/systemcass/include -c -o filename.o filename.cpp
    218215}}}
    219216La génération de l'exécutable utilise la commande suivante :
    220217{{{
    221 $ g++ -Wno-deprecated -L. -L/users/outil/dsx/systemcass/lib -o  fast_simulator.x fifo_gcd_master.o fifo_gcd_coprocessor.o tp1_top.o -lsystemc -ldl 2>&1 | c++filt
     218$ g++ -Wno-deprecated -fpermissive -L. -L/users/outil/dsx/systemcass/lib -o  fast_simulator.x fifo_gcd_master.o fifo_gcd_coprocessor.o tp1_top.o -lsystemc -ldl 2>&1 | c++filt
    222219}}}
    223220Modifiez le fichier Makefile de la question précédente pour générer un exécutable fast_simulator.x et comparez les vitesses des deux simulateurs.
    224221
    225 
    226222= 4. Compte-rendu =
    227223