Changes between Version 4 and Version 5 of SoclibCourseTp4


Ignore:
Timestamp:
Oct 4, 2009, 9:06:11 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp4

    v4 v5  
    1515(un seul processeur et 4 cibles), il a fallu compiler une cinquantaine de fichiers source (.cpp)
    1616et un nombre encore plus grans de fichiers d'en-tête (.h).
     17
    1718Tous ces fichiers proviennent du serveur WEB SoCLib, qui contient lui-même un serveur SVN
    1819permettant d'archiver les différents modèles de simulation. Ce serveur SVN fournit un service de
     
    2122bien adapté à une approche de compilation séparée.
    2223
     24Identifier et localiser
     25n'est pas un problème simple.
    2326Les archives qui vous a été fournie pour les trois premiers TPs rassemblaient dans un seul répertoire
    2427tous les fichiers nécessaires à la compilation et à la génération du simulateur, ainsi que le Makefile associé.
    2528
    26 Dans le cas général, l'identification des dépendances entre composants logiciels  (le fichier A
    27 fait référence à des objets définis dans le fichier B, qui lui-même fait appel au fichier C),
    28 et la construction du Makefile permettant de générer le simulateur constituent un travail non négligeable.
     29Dans le cas général, l'identification  tous les fichiers nécessaires à la génération du simulateur d'une architecture particulièredes est un travail non négligeable, à cause des dépendances entre composants logiciels  (le fichier A
     30fait référence à des objets définis dans le fichier B, qui lui-même fait appel au fichier C, etc.), et
     31la construction du Makefile permettant de générer le simulateur est généralement un exercice complexe.
    2932
    3033Par ailleurs, la plupart des modèles ont des paramètres templates (puisque la plupart des composants ont des interfaces VCI, et que les largeurs des champs VCI sont paramètrables). Pour chaque composant possédant un
     
    3740du Makefile.
    3841       
     42Pour permettre cette automatisation, tout composant logiciel de SoCLib doit être accompagné d'un fichier
     43de ''métadata'' (fichier possédant le suffixe ''.sd'') qui contient les informations suivantes:
     44 *
     45 *
     46 *
     47 *
     48Ce fichier est écrit en langage Python, et on trouvera ci-dessous à titre d'exemple le fichier de metadata associé
     49au composant ''vci_simple_ram'':
     50{{{
     51# -*- python -*-
     52       
     53__id__ = "$Id$"
     54__version__ = "$Revision$"
     55       
     56Module('caba:vci_simple_ram',
     57        classname = 'soclib::caba::VciSimpleRam',
     58        tmpl_parameters = [parameter.Module('vci_param',  default = 'caba:vci_param')],
     59        header_files = ['../source/include/vci_simple_ram.h',],
     60        implementation_files = ['../source/src/vci_simple_ram.cpp'],
     61        ports = [
     62                  Port('caba:vci_target', 'p_vci'),
     63                  Port('caba:bit_in', 'p_resetn', auto = 'resetn')     
     64                  Port('caba:clock_in', 'p_clk', auto = 'clock')],
     65        uses = [
     66                  Uses('caba:base_module'),
     67                  Uses('common:linked_access_buffer',
     68                             addr_t = parameter.StringExt('sc_dt::sc_uint<%d>', parameter.Reference('addr_size')),
     69                             id_t = parameter.StringExt('sc_dt::sc_uint<%d>', parameter.Reference('srcid_size'))),
     70                  Uses('common:loader'),
     71                  Uses('common:mapping_table',],
     72        instance_parameters = [
     73                  parameter.IntTab('ident'),
     74                  parameter.Module('mt', 'common:mapping_table', auto='env:mapping_table'),
     75                  parameter.Module('loader', 'common:loader', auto='env:loader'),
     76                  parameter.Int('latency')],
     77        extensions = [
     78        'dsx:addressable=ident',
     79        'dsx:get_ident=ident:p_vci',
     80        'dsx:mapping_type=memory'],
     81)
     82}}}