10 | | L'objectif de ce premier TP est de vous amener à écrire vous-même, en utilisant le langage SystemC |
11 | | quelques modèles de composants matériels très simples, en respectant le niveau d'abstraction CABA |
12 | | (Cycle Accurate, Bit Accurate) utilisé pour modéliser les composants de la bibliothèque SoCLib. |
| 9 | L'objectif de ce premier TP est d'illustrer -sur un exemple très simple ne comportant que deux composants matériels - |
| 10 | les principes de la modélisation SystemC au niveau d'abstraction CABA |
| 11 | (Cycle Accurate, Bit Accurate).La modélisation CABA est l'un des deux niveaux d'abstraction utilisés pour modéliser les composants de la bibliothèque SoCLib. |
| 96 | L'archive attachement:soclib_tp1.tgz contient différents fichiers dont vous aurez besoin pour ce premier TP. |
| 97 | Créez un répertoire de travail spécifique TP1 pour ce TP, recopier l'archive dans ce répertoire TP1, et décompressez-la: |
| 98 | {{{ |
| 99 | $ tar xjvf soclib_tp1.tgz |
| 100 | }}} |
| 101 | Cette archive contient en principe les fichiers suivants : |
| 102 | * ''fifo_signals.h'' : fichier définissant l'objet C++ '''FifoSignal''' représentant les signaux d'un canal FIFO. Ce fichier est complet et ne doit pas être modifié. |
| 103 | * ''fifo_ports.h'' : fichier définissant les objets C++ '''FifoInput''' et '''FifoOutput''' représentant les ports d'accès à un canal FIFO. Ce fichier est complet et ne doit pas être modifié. Ce fichier est complet et ne doit pas être modifié. |
| 104 | * ''fifo_lcd_master.h'' : fichier définissant l'objet C++ '''FifoLcdMaster''' représentant le modèle du master. Ce fichier est complet et ne doit pas être modifié. |
| 105 | * ''fifo_lcd_master.cpp" : fichier contenant l'implémentation C++ des méthodes utilisées par le composant master. Ce fichier est complet et ne doit pas être modifié. |
| 106 | * ''fifo_lcd_coprocessor.h'' : fichier définissant l'objet C++ '''FifoLcdCoprocessor''' représentant le modèle du coprocesseur. Ce fichier ne contient qu'une carcasse vide et devra être complété. |
| 107 | * ''fifo_lcd_master.cpp" : fichier contenant l'implémentation C++ des méthodes utilisées par le composant master. Ce fichier ne contient qu'une carcasse vide et devra être complété. |
| 108 | * ''tp1_top.cpp" : fichier C++ décrivant l"architecture matérielle du système, dont la compilation générera le simulateur proprement dit. Ce fichier est partiellement incomplet, et devra être complété. |
| 109 | |
99 | | Le modèle de simulation d'un composant matériel (appelé ''module'' en SystemC) nécessite la définition d'une classe C++ dont le nom correspond au nom du module matériel modélisé. Il faut donc écrire deux fichiers. |
100 | | * Le fichier ""module.h'' contient la définition de la classe |
101 | | * de |
| 112 | Pour une présentation détaillée des règles d'écriture des modèles de simulation au niveau CABA, vous pouvez consulter la documention disponible en ligne sur le site sur le site WEB du projet SoCLib : [https://www.soclib.fr/trac/dev/wiki/WritingRules/Caba]. |
| 113 | |
| 114 | Le modèle de simulation d'un composant matériel (appelé ''module'' en SystemC) nécessite la définition d'une classe C++ dont le nom correspond au nom du module matériel modélisé. |
| 115 | En vous inspirant du code fourni pour le composant '''master''', complêter les deux fichiers ''fifo_lcd_coprocessor.h'' et |
| 116 | ''fifo_lcd_coprocessor.cpp''. |