Ignore:
Timestamp:
Jun 16, 2014, 3:15:08 PM (11 years ago)
Author:
alain
Message:

Introduce genmap tool in giet_python

Location:
soft/giet_vm/giet_python
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_python/genmap

    r325 r328  
    22
    33#######################################################################################
    4 #   file   : tsarmap
     4#   file   : genmap
    55#   date   : april 2014
    66#   author : Alain Greiner
     
    3434# - sort (one thread per processor)
    3535# - transpose (one thread per processor)
     36# - convol (one thread per processor)
    3637#######################################################################################
    3738
     
    4243from transpose import *
    4344from sort import *
     45from convol import *
    4446
    4547import sys
     
    8688parser.add_option( '--transpose', action = 'store_true', dest = 'transpose',
    8789                   default = False,
    88                    help = 'map the "transpose" application for the GIET' )
     90                   help = 'map the "transpose" application for the GietVM' )
    8991
    9092parser.add_option( '--sort', action = 'store_true', dest = 'sort',     
    9193                   default = False,
    92                    help = 'map the "sort" application for the GIET' )
     94                   help = 'map the "sort" application for the GietVM' )
     95
     96parser.add_option( '--convol', action = 'store_true', dest = 'filt',     
     97                   default = False,
     98                   help = 'map the "convol" application for the GietVM' )
    9399
    94100######################################################################################
     
    112118xml_path      = options.xml_path    # path for map.xml file     
    113119
    114 map_transpose = options.transpose   # map "sort" application if True
    115 map_sort      = options.sort        # map "transpose" application if True
     120map_transpose = options.transpose   # map "transpose" application if True
     121map_sort      = options.sort        # map "sort" application if True
     122map_convol    = options.filt        # map "convol" application if True
    116123
    117124######################################################################################
     
    131138# build mapping calling the function (function name)
    132139mapping = select.genmap( x_size, y_size, nprocs )
    133 print '[tsarmap] platform %s build' % mapping.name
     140print '[genmap] platform %s build' % mapping.name
    134141
    135142# generate the hard_confi.h file for top.cpp compilation
     
    137144f = open ( pathname, 'w' )
    138145f.write( mapping.hard_config() )
    139 print '[tsarmap] %s generated' % pathname
     146print '[genmap] %s generated' % pathname
    140147
    141148######################################################################################
     
    145152if ( map_transpose ):
    146153    transpose( mapping )
    147     print '[tsarmap] application "transpose" loaded'
     154    print '[genmap] application "transpose" loaded'
    148155
    149156if ( map_sort ):     
    150157    sort( mapping )
    151     print '[tsarmap] application "sort" loaded'
     158    print '[genmap] application "sort" loaded'
     159
     160if ( map_convol ):     
     161    convol( mapping )
     162    print '[genmap] application "convol" loaded'
    152163
    153164######################################################################################
     
    160171    f = open ( pathname, 'w' )
    161172    f.write( mapping.xml() )
    162     print '[tsarmap] %s generated for debug' % pathname
     173    print '[genmap] %s generated for debug' % pathname
    163174
    164175######################################################################################
     
    171182    f = open ( pathname, 'w' )
    172183    f.write( mapping.netbsd_dts() )
    173     print '[tsarmap] %s generated for netbsd' % pathname
     184    print '[genmap] %s generated for netbsd' % pathname
    174185
    175186######################################################################################
     
    182193    f = open ( pathname, 'w' )
    183194    f.write( mapping.almos_arch() )
    184     print '[tsarmap] %s generated for almos' % pathname
     195    print '[genmap] %s generated for almos' % pathname
    185196
    186197######################################################################################
     
    194205    f = open ( pathname, 'w' )
    195206    f.write( str( mapping.cbin( verbose ) ) )
    196     print '[tsarmap] %s generated for giet_vm' % pathname
     207    print '[genmap] %s generated for giet_vm' % pathname
    197208
    198209    pathname = giet_path + '/hard_config.h'
    199210    f = open ( pathname, 'w' )
    200211    f.write( mapping.hard_config() )
    201     print '[tsarmap] %s generated for giet_vm' % pathname
     212    print '[genmap] %s generated for giet_vm' % pathname
    202213
    203214    pathname = giet_path + '/giet_vsegs.ld'
    204215    f = open ( pathname, 'w' )
    205216    f.write( mapping.giet_vsegs() )
    206     print '[tsarmap] %s generated for giet_vm' % pathname
    207 
     217    print '[genmap] %s generated for giet_vm' % pathname
     218
  • soft/giet_vm/giet_python/mapping.py

    r327 r328  
    143143                  x_io = 0,                      # cluster_io x coordinate
    144144                  y_io = 0,                      # cluster_io y coordinate
     145                  peri_increment = 0x10000,      # address increment for globals
    145146                  reset_address = 0xBFC00000 ):  # Processor wired boot_address
    146147
     
    158159        self.x_io           = x_io
    159160        self.y_io           = y_io
     161        self.peri_increment = peri_increment
    160162        self.reset_address  = reset_address
    161 
    162         self.vseg_increment = 0x10000
    163163
    164164        self.total_vspaces  = 0
     
    344344                   pseg,                # destination pseg name
    345345                   identity   = False,  # identity mapping required if true
    346                    replicated = False,  # replicated in all clusters if true
    347346                   binpath    = '' ):   # pathname for binary code
    348347
    349         assert (identity and replicated) == False
    350 
    351348        assert mode in VSEGMODES
    352349
     
    357354        assert (x < self.x_size) and (y < self.y_size)
    358355
    359         if ( replicated ):                  # replicated
    360             for x_rep in xrange( self.x_size ):           
    361                 for y_rep in xrange( self.y_size ):           
    362                     vbase_rep = vbase + (((x_rep << self.y_width) + y_rep) << 16)
    363                     name_rep  = name + '_%d_%d' % ( x_rep , y_rep )
    364  
    365                     # add one vseg [x,y] into mapping
    366                     vseg = Vseg( name_rep, vbase_rep, mode, x_rep, y_rep, pseg, identity )
    367                     self.globs.append( vseg )
    368                     self.total_globals += 1
    369                     vseg.index = self.total_vsegs
    370                     self.total_vsegs += 1
     356        # add one vseg into mapping
     357        vseg = Vseg( name, vbase, mode, x, y, pseg, identity )
     358        self.globs.append( vseg )
     359        self.total_globals += 1
     360        vseg.index = self.total_vsegs
     361        self.total_vsegs += 1
    371362           
    372                     # add one vobj [x,y] in the mapping
    373                     vobj = Vobj( name_rep, size, vtype, binpath, 0, 0 )
    374                     vseg.vobjs.append( vobj )
    375                     vobj.index = self.total_vobjs
    376                     self.total_vobjs += 1
    377 
    378         else:                          # single vseg
    379             # add one vseg into mapping
    380             vseg = Vseg( name, vbase, mode, x, y, pseg, identity )
    381             self.globs.append( vseg )
    382             self.total_globals += 1
    383             vseg.index = self.total_vsegs
    384             self.total_vsegs += 1
    385            
    386             # add one vobj into mapping
    387             vobj = Vobj( name, size, vtype, binpath, 0, 0 )
    388             vseg.vobjs.append( vobj )
    389             vobj.index = self.total_vobjs
    390             self.total_vobjs += 1
     363        # add one vobj into mapping
     364        vobj = Vobj( name, size, vtype, binpath, 0, 0 )
     365        vseg.vobjs.append( vobj )
     366        vobj.index = self.total_vobjs
     367        self.total_vobjs += 1
    391368
    392369        return
     
    825802        nb_fbf       = 0
    826803        fbf_channels = 0
     804        fbf_arg      = 0
    827805        seg_fbf_base = 0xFFFFFFFF
    828806        seg_fbf_size = 0
     
    885863        nb_xcu       = 0
    886864        xcu_channels = 0
     865        xcu_arg      = 0
    887866        seg_xcu_base = 0xFFFFFFFF
    888867        seg_xcu_size = 0
     
    911890                    seg_fbf_size = periph.pseg.size
    912891                    fbf_channels = periph.channels
     892                    fbf_arg      = periph.arg
    913893                    nb_fbf +=1
    914894
     
    986966                    seg_xcu_size = periph.pseg.size
    987967                    xcu_channels = periph.channels
     968                    xcu_arg      = periph.arg
    988969                    nb_xcu +=1
    989970   
     
    10481029                boot_stack_found        = True
    10491030
    1050         # check all BOOT vsegs are found and identity mapping
     1031        # check that BOOT vsegs are found and identity mapping
    10511032        if ( (boot_mapping_found == False) or (boot_mapping_ident == False) ):
    10521033             print 'error in hard_config() : seg_boot_mapping missing or not ident'
     
    11261107        s += '#define USE_RAMDISK            %d\n'    % self.use_ramdisk
    11271108        s += '\n'
     1109        s += '#define FBUF_X_SIZE            %d\n'    % fbf_arg
     1110        s += '#define FBUF_Y_SIZE            %d\n'    % fbf_arg
     1111        s += '\n'
     1112        s += '#define XCU_NB_INPUTS          %d\n'    % xcu_arg
     1113        s += '\n'
    11281114
    11291115        s += '/* physical base addresses for peripherals */\n'
     
    11771163        s += '#define SEG_RDK_SIZE           0x%x\n'  % seg_rdk_size
    11781164        s += '\n'
    1179         s += '#define VSEG_CLUSTER_INCREMENT 0x%x\n'  % self.vseg_increment
     1165        s += '#define PERI_CLUSTER_INCREMENT 0x%x\n'  % self.peri_increment
    11801166        s += '\n'
    11811167
Note: See TracChangeset for help on using the changeset viewer.