source: branches/fault_tolerance/softs/test_llsc/scripts/test_llsc.py @ 738

Last change on this file since 738 was 724, checked in by cfuguet, 10 years ago

branches/fault_tolerance:

  • Recreating fault_tolerance branch with all new modifications from trunk.
  • Introducing distributed boot rom in the tsar_generic_iob platform
  • Property svn:executable set to *
File size: 3.0 KB
Line 
1#!/usr/bin/env python
2
3import sys
4import dsx
5from tsarch import TSArch
6from dsx.mapper.mapper import Mapper
7from dsx import *
8
9
10
11if len(sys.argv) < 4 or sys.argv[1] == '' or sys.argv[2] == '':
12   print "Usage: ", sys.argv[0], "<nb_clusters_x> <nb_clusters_y> <memspace_size>"
13   exit()
14
15cluster_x = int(sys.argv[1])
16cluster_y = int(sys.argv[2])
17memspace_size = int(sys.argv[3]) * 4
18
19nb_procs = 4
20nb_total_procs = nb_procs * cluster_x * cluster_y
21
22hd = TSArch(cluster_x = cluster_x, cluster_y = cluster_y, nb_proc = nb_procs, nb_tty = 4)
23
24test_llsc = TaskModel(
25        'test_llsc_main',
26        ports = {
27            'table':   MemspacePort(),
28            'barrier': BarrierPort(),
29            'barrier2': BarrierPort(),
30        },
31        impls = [
32                SwTask('test_llsc_main_func',
33                           stack_size = 2048,
34                           sources = ['test_llsc_main.c', 'functions.c'],
35                           headers = ['functions.h'],
36                           defines = [])
37        ], 
38        uses = ['tty']
39        )
40
41
42test_llsc_no_tty = TaskModel(
43        'test_llsc_no_tty',
44        ports = {
45            'table':   MemspacePort(),
46            'barrier': BarrierPort(),
47            'barrier2': BarrierPort(),
48            'id' : ConstPort(),
49        },
50        impls = [
51                SwTask('test_llsc_no_tty_func',
52                           stack_size = 2048,
53                           sources = ['test_llsc_no_tty.c', 'functions.c'],
54                           headers = ['functions.h'],
55                           defines = [])
56        ],
57        )
58 
59
60barrier = Barrier('barrier')
61barrier2 = Barrier('barrier2')
62memspace = Memspace('memspace', memspace_size)
63
64tasks = ()
65
66
67tasks += Task('task_llsc_main', 'test_llsc_main',
68            {
69               'table'   : memspace,
70               'barrier' : barrier,
71               'barrier2' : barrier2,
72            },
73            defines = {} ),
74
75
76for i in range(1, nb_total_procs):
77   tasks += Task('task_llsc_no_tty_%d' % i, 'test_llsc_no_tty',
78            {
79               'table'   : memspace,
80               'barrier' : barrier,
81               'barrier2' : barrier2,
82               'id' : i,
83            },
84            defines = {} ),
85
86tcg = dsx.Tcg('test_llsc', *tasks)
87
88mpr = Mapper(hd, tcg) 
89
90mpr.map('task_llsc_main', cluster = 0, proc = 0, stack = "PSEG_RAM_0")
91
92for i in range(1, nb_total_procs):
93   #print "cluster = %d - proc = %d" % (int(i) / 4, i % 4)
94   mpr.map('task_llsc_no_tty_%d' % i, cluster = int(i) / 4, proc = int(i) % 4, stack = "PSEG_RAM_%d" % (int(i) / 4))
95
96for const in tcg.nodesOfType('const'):
97   mpr.map(const, pseg = 'PSEG_RAM_0')
98
99
100mpr.map('memspace', pseg = "PSEG_RAM_0")
101mpr.map('barrier', pseg = "PSEG_RAM_0")
102mpr.map('barrier2', pseg = "PSEG_RAM_0")
103
104mpr.map(tcg, code = 'PSEG_RAM_0', data = 'PSEG_RAM_0', ptab = "PSEG_RAM_0")
105mpr.map('system', boot = 'PSEG_RAM_0', kernel = 'PSEG_RAM_0', scheduler = True)
106
107mpr.generate(dsx.Giet(outdir = '.', vaddr_replicated_peri_inc = 0x2000, debug = False))
108
Note: See TracBrowser for help on using the repository browser.