| 249 | | Il faut ensuite compiler les différents fichiers pour générer le simulateur. |
| | 251 | Il faut ensuite compiler les différents fichiers pour générer le simulateur. |
| | 252 | On va utiliser la même méthode que dans le TP1, mais il y a une difficulté supplémentaire, à cause |
| | 253 | du paramètre template ''vci_param'' des composants''!VciLcdMaster'', ''!VciLcdCoprocessor''. |
| | 254 | Dans un contexte de compilation séparée, il est nécessaire de définir explicitement la valeur de ce paramètre |
| | 255 | dans chacun des fichiers source avant de lancer la génération du fichier objet associé. |
| | 256 | Pour cela, il faut rajouter la ligne suivante à la fin du fichier ''vci_lcd_master.cpp'' : |
| | 257 | {{{ |
| | 258 | template class VciLcdMaster<soclib::caba::VciParams<4, 8, 32, 1, 1, 1, 12, 1, 1, 1> >; |
| | 259 | }}} |
| | 260 | Il faut évidemment modifier également le fichier ''vci_lcd_coprocessor.cpp''. |
| | 261 | |
| | 262 | Ceci étant fait, écrivez le Makefile permettant la génération du fichier exécutable ''simple_simulator.x''. |
| | 263 | N'oubliez pas d'inclure dans la liste des fichiers objets les fichiers ''mapping_table.o'', ''segment.o'', ''address_decoding_table.o'', |
| | 264 | ''address_masking_table.o'' (en plus des fichiers objet correspondant aux deux composants matériels |
| | 265 | |
| | 266 | Le lancement du simulateur doit vous fournir la même trace d'exécution que celle que obtenue dans le TP1, puisque |
| | 267 | les calculs effectués sont les mêmes (seul le protocole de communication a changé. |
| | 275 | Il faut également ajouter à la fin du fichier ''vci_vgsb.cpp'' la ligne permettant de défénir la valeur du paramètre template |
| | 276 | ''vci_param'' : |
| | 277 | {{{ |
| | 278 | template class VciVgsb<soclib::caba::VciParams<4, 8, 32, 1, 1, 1, 12, 1, 1, 1> >; |
| | 279 | }}} |
| | 280 | |
| | 281 | Modifiez le makefile pour générer le fichier exécutable ''multi_simulator.x'', en n'oubliant pas d'inclure le fichier ''vci_vgsb.o'' |
| | 282 | dans l'ensemble des fichiers objet. |
| | 283 | Le lancement du simulateur doit vous fournir une trace d'exécution qui entrelace les compte-rendus des trois initiateurs |
| | 284 | qui s'exécutent en parallèle. Chaque initiateur commande un seul coprocesseur, et la seule ressource partagée est le |
| | 285 | bus de communication. |
| | 286 | |