Changes between Version 47 and Version 48 of SoclibCourseTp1
- Timestamp:
- Nov 22, 2012, 5:37:44 PM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp1
v47 v48 207 207 Les 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. 208 208 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. 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. 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). 213 210 214 211 Pour 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. 215 212 La génération des fichiers objets utilise la commande suivante : 216 213 {{{ 217 $ g++ -Wno-deprecated - I. -I/users/outil/dsx/systemcass/include -c -o filename.o filename.cpp214 $ g++ -Wno-deprecated -fpermissive -I. -I/users/outil/dsx/systemcass/include -c -o filename.o filename.cpp 218 215 }}} 219 216 La génération de l'exécutable utilise la commande suivante : 220 217 {{{ 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++filt218 $ 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 222 219 }}} 223 220 Modifiez 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. 224 221 225 226 222 = 4. Compte-rendu = 227 223