Beispiel #1
0
def init_globals(grid_width=8, grid_height=8, DBG=0):

    if USE_CGRA_INFO:
        sys.path.append("../decoder")
        global cgra_info
        from lib import cgra_info
        # cgra_info.read_cgra_info()

        try:
            cgra_info.ntiles()
        except:
            print "Loading cgra_info..\n"
            cgra_info.read_cgra_info()

    # Declare these
    # E.g. if third tile placed is 0x0101 then order[0x0101] = 2 (right?)
    global order
    order = {}

    # Set these
    global GRID_WIDTH
    global GRID_HEIGHT

    # Derive these
    global NTILES
    global tiles

    GRID_WIDTH = grid_width
    GRID_HEIGHT = grid_height
    NTILES = GRID_HEIGHT * GRID_WIDTH

    # print(661, GRID_WIDTH, GRID_HEIGHT)
    if USE_CGRA_INFO:
        # FIXME should also use cgra_info to set width, height
        NTILES = cgra_info.ntiles()
        (GRID_WIDTH, GRID_HEIGHT) = cgra_info.grid_dimensions()

    print "# Grid is maybe %dx%d" % (GRID_WIDTH, GRID_HEIGHT)
    # print(662, GRID_WIDTH, GRID_HEIGHT)

    tiles = range(NTILES)
    if DBG:
        print "# tiles:"
        print '#', tiles, '\n'
Beispiel #2
0
def init_globals(grid_width=8, grid_height=8, DBG=0):

    if USE_CGRA_INFO:
        sys.path.append("../decoder")
        global cgra_info
        from lib import cgra_info
        # cgra_info.read_cgra_info()

        try:
            cgra_info.ntiles()
        except:
            print "Loading cgra_info..\n"
            cgra_info.read_cgra_info()

    # Set these
    global GRID_WIDTH
    global GRID_HEIGHT

    # Derive these
    global NTILES
    global tiles
    global order

    GRID_WIDTH = grid_width
    GRID_HEIGHT = grid_height
    NTILES = GRID_HEIGHT * GRID_WIDTH

    if USE_CGRA_INFO:
        # FIXME should also use cgra_info to set width, height
        NTILES = cgra_info.ntiles()

    tiles = range(NTILES)
    if DBG:
        print "# tiles:"
        print '#', tiles, '\n'

    order = 64 * [-1]
    if DBG:
        print "# order:"
        print '#', order, '\n'
Beispiel #3
0
def process_args():
    DBG = 0
    bitstream_filename = False

    # Get name of this script
    scriptname = sys.argv[0]
    scriptname_tail = scriptname
    parse = re.search('([/].*$)', scriptname)
    parse = re.search('([^/]+$)', scriptname)
    if (parse): scriptname_tail = parse.group(1)
    args = sys.argv[1:]  # shift

    usage = '''
Decodes/annotates the indicated bitstream file, output to stdout
Usage:
   %s [ -v ] -cgra [cgra_info_file] < [bsb-file]
   %s [ -v ] -cgra [cgra_info_file] [bsb-file]
   %s [ -v ] < [bsb-file]
   %s [ -v ] [bsb-file]
   %s --help
''' % (scriptname_tail, scriptname_tail, scriptname_tail, scriptname_tail,
       scriptname_tail)

    # Load cgra_info
    cgra_filename = cgra_info.get_default_cgra_info_filename()

    # if (len(args) < 1): print usage; sys.exit(-1);

    global VERBOSE
    # cgra_filename = get_default_cgra_info_filename()
    while (len(args) > 0):
        if (args[0] == '--help'):
            print usage
            sys.exit(0)
        elif (args[0] == '-v'):
            VERBOSE = True
        elif (args[0] == '-q'):
            VERBOSE = False
        elif (args[0] == '-cgra' or args[0] == '-cgra_info'):
            cgra_filename = args[1]
            args = args[1:]
        else:
            bitstream_filename = args[0]
        args = args[1:]

    cgra_info.read_cgra_info(cgra_filename, verbose=VERBOSE)

    global input_lines
    if bitstream_filename:
        input_stream = open(bitstream_filename)
        for line in input_stream:
            input_lines.append(line)
        input_stream.close()
    else:
        for line in sys.stdin:
            input_lines.append(line)

    # Read the input, store to 'input_lines' tuple
    input_lines = preprocess(input_lines)
    if DBG > 1:
        for i in input_lines:
            print i
Beispiel #4
0
    # global verbose # this causes problems/errors
    # if   (args[0] == '-nodefaults'): sbdefaults = False
    if   (args[0] == '-v'):    verbose = True
    elif (args[0] == '-4x4'): print 'WARNING switch "-4x4" not used'
    elif (args[0] == '-8x8'): print 'WARNING switch "-8x8" not used'
    elif (args[0] == '-cgra' or args[0] == '-cgra_info'):
        cgra_filename = args[1]
        args = args[1:];
    else:
        bitstream_filename = args[0];
    args = args[1:]

# read_cgra_info() does this...
# if verbose: print("Using uh cgra_info file %s" % cgra_filename)
# if verbose: print("and verbose is '%s'" % str(verbose))
cgra_info.read_cgra_info(cgra_filename, verbose=verbose)

# # TBD this (below) could be a separate "print_intro()" function like
# if (verbose):
#     print "# ";
#     print "# -----------------------------------------------------------------------------"
#     print "# Assume 4x4 grid of tiles, all with 2-input PEs\n"+\
#           "#                                            \n"+\
#           "#      tileno                   r,c          \n"+\
#           "#   0   1   2   3     (0,0) (0,1) (0,2) (0,3)\n"+\
#           "#   4   5   6   7     (1,0) (1,1) (1,2) (1,3)\n"+\
#           "#   8   9  10  11     (2,0) (2,1) (2,2) (2,3)\n"+\
#           "#  12  13  14  15     (3,0) (3,1) (3,2) (3,3)\n"+\
#           "# ";
#     print "# Note: 's1t3' means 'side 1 track 3' (sides [0123] map to [ESWN] respectively)"
#     print "# -----------------------------------------------------------------------------"