- Timestamp:
- Dec 11, 2014, 4:52:15 PM (10 years ago)
- Location:
- branches/reconfiguration/platforms/tsar_generic_iob
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/reconfiguration/platforms/tsar_generic_iob/Makefile
r890 r904 1 1 TAGS := cscope.out 2 3 SOCLIB_CC_ARGS := 4 SOCLIB_CC_ARGS += "-b caba:reconf:vci_xicu" 2 5 3 6 all: simul.x … … 5 8 6 9 simul.x: top.cpp top.desc 7 soclib-cc -P-p top.desc -I. -o simul.x10 soclib-cc $(SOCLIB_CC_ARGS) -p top.desc -I. -o simul.x 8 11 9 12 $(TAGS): top.desc -
branches/reconfiguration/platforms/tsar_generic_iob/scripts/onerun.py
r902 r904 21 21 compileonly -- stops after platform's compilation 22 22 batchmode -- TTY and FB are only redirected to FILES 23 faultyrouter -- a list containing faulty routers' coordinates ( x, y)23 faultyrouter -- a list containing faulty routers' coordinates (t, x, y) 24 24 faultymask -- a mask of disabled routers' interfaces 25 25 faultycore -- a list containing faulty cores' coordinates (x, y, l) … … 103 103 command.extend(["-FAULTY_MASK", str(args.faultymask)]) 104 104 for f in args.faultyrouter: 105 command.extend(["-FAULTY_ROUTER", str(f[0]), str(f[1]) ])105 command.extend(["-FAULTY_ROUTER", str(f[0]), str(f[1]), str(f[2])]) 106 106 107 107 if args.debug != None: … … 112 112 else: 113 113 # by observation, the procedure grows linearly with the diameter of the mesh. 114 maxcycles = 150000 + (args.x + args.y) * 20000;114 maxcycles = 400000 + (args.x + args.y) * 20000; 115 115 command.extend(["-NCYCLES", str(maxcycles)]) 116 116 … … 158 158 159 159 parser.add_argument( 160 '--faulty-router', '-fr', dest='faultyrouter', action='append', nargs= 2,161 help='ID ( X,Y) of faulty router')160 '--faulty-router', '-fr', dest='faultyrouter', action='append', nargs=3, 161 help='ID (T,X,Y) of faulty router. The T is 0:CMD, 1:RSP') 162 162 163 163 parser.add_argument( -
branches/reconfiguration/platforms/tsar_generic_iob/scripts/random_faulty_core_router.py
r902 r904 84 84 SIM_FAULTFREE = False 85 85 SIM_FAULTCORES = False 86 SIM_FAULTROUTERS = False87 SIM_FAULTMIXED = True86 SIM_FAULTROUTERS = True 87 SIM_FAULTMIXED = False 88 88 89 89 # probability of faulty router (for mixed simul) 90 90 SIM_FAULTMIXED_PROBROUTER = 0.05 # 5% 91 92 # NoC index for faulty routers 93 CMD = 0 94 RSP = 1 91 95 92 96 for xsize, ysize in [(4, 4), (4, 8), (8, 8), (8, 16), (16, 16)]: … … 135 139 cx = random.randint(0, args.xmax) 136 140 cy = random.randint(0, args.ymax) 137 if args.add_faultyrouter(( cx, cy)): n += 1141 if args.add_faultyrouter((CMD, cx, cy)): n += 1 138 142 139 143 onerun.run(args) … … 159 163 # add faulty router 160 164 fr += 1 161 while not args.add_faultyrouter(( cx, cy)):165 while not args.add_faultyrouter((CMD, cx, cy)): 162 166 cx = random.randint(0, args.xmax) 163 167 cy = random.randint(0, args.ymax) -
branches/reconfiguration/platforms/tsar_generic_iob/top.cpp
r900 r904 415 415 debug_period = strtol(argv[n+1], NULL, 0); 416 416 } 417 else if ((strcmp(argv[n], "-FAULTY_ROUTER") == 0) && (n+2 < argc) ) 418 { 419 size_t x = strtol(argv[n+1], NULL, 0); 420 size_t y = strtol(argv[n+2], NULL, 0); 421 n++; 417 else if ((strcmp(argv[n], "-FAULTY_ROUTER") == 0) && (n+3 < argc) ) 418 { 419 size_t t = strtol(argv[n+1], NULL, 0); 420 size_t x = strtol(argv[n+2], NULL, 0); 421 size_t y = strtol(argv[n+3], NULL, 0); 422 n+=2; 423 if( (t > 4) ) 424 { 425 std::cout << "FAULTY_ROUTER NoC index is too big (index > 4)" << std::endl; 426 exit(0); 427 } 422 428 if( (x>=X_SIZE) || (y>=Y_SIZE) ) 423 429 { … … 425 431 exit(0); 426 432 } 427 faulty_routers.push_back((x << Y_WIDTH) | y); 433 faulty_routers.push_back((t << (X_WIDTH + Y_WIDTH)) | 434 (x << (Y_WIDTH)) | 435 (y)); 428 436 } 429 437 else if ((strcmp(argv[n], "-FAULTY_MASK") == 0) && (n+1 < argc) ) … … 1131 1139 #endif 1132 1140 1133 // disable all interfaces of the faulty router 1141 // disable all interfaces of the faulty CMD routers 1142 std::cout << "\n*** List of deactivated routers ***\n"; 1134 1143 for (std::vector<size_t>::iterator it = faulty_routers.begin(); 1135 1144 it != faulty_routers.end(); 1136 1145 ++it) 1137 1146 { 1138 int router_id = *it; 1139 int router_x = router_id >> Y_WIDTH; 1140 int router_y = router_id & ((1 << Y_WIDTH) - 1); 1141 clusters[router_x][router_y]->int_router_cmd[0]->set_disable_mask(faulty_mask); 1147 int ry = (*it) & ((1 << Y_WIDTH) - 1); 1148 int rx = (*it >> Y_WIDTH) & ((1 << X_WIDTH) - 1); 1149 int rt = (*it) >> (X_WIDTH + Y_WIDTH); 1150 1151 if (rt == 0) 1152 { 1153 std::cout << "Deactivate CMD router (" << rx << "," << ry << ")" 1154 << std::endl; 1155 clusters[rx][ry]->int_router_cmd[0]->set_disable_mask(faulty_mask); 1156 continue; 1157 } 1158 if (rt == 1) 1159 { 1160 std::cout << "Deactivate RSP router (" << rx << "," << ry << ")" 1161 << std::endl; 1162 clusters[rx][ry]->int_router_rsp[0]->set_disable_mask(faulty_mask); 1163 continue; 1164 } 1165 if (rt == 2) 1166 { 1167 std::cout << "Deactivate M2P router (" << rx << "," << ry << ")" 1168 << std::endl; 1169 clusters[rx][ry]->int_router_cmd[1]->set_disable_mask(faulty_mask); 1170 continue; 1171 } 1172 if (rt == 3) 1173 { 1174 std::cout << "Deactivate P2M router (" << rx << "," << ry << ")" 1175 << std::endl; 1176 clusters[rx][ry]->int_router_rsp[1]->set_disable_mask(faulty_mask); 1177 continue; 1178 } 1179 if (rt == 4) 1180 { 1181 std::cout << "Deactivate CLACK router (" << rx << "," << ry << ")" 1182 << std::endl; 1183 clusters[rx][ry]->int_router_cmd[2]->set_disable_mask(faulty_mask); 1184 continue; 1185 } 1142 1186 } 1143 1187 … … 1475 1519 uint64_t ms2 = (uint64_t) t2.tv_sec * 1000ULL + 1476 1520 (uint64_t) t2.tv_usec / 1000; 1477 std::cerr << "### cycle = " << n << " / frequency (Khz) = "1521 std::cerr << "### cycle = " << std::dec << n << " / frequency (Khz) = " 1478 1522 << (double) stats_period / (double) (ms2 - ms1) << std::endl; 1479 1523 } -
branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h
r884 r904 73 73 sc_signal<bool> signal_irq_mdma[8]; 74 74 sc_signal<bool> signal_irq_memc; 75 sc_signal<uint32_t> signal_cfg_router; 75 sc_signal<uint32_t> signal_cfg_router_cmd[3]; 76 sc_signal<uint32_t> signal_cfg_router_rsp[2]; 76 77 77 78 // INT network DSPIN signals between DSPIN routers and DSPIN local_crossbars -
branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp
r884 r904 197 197 xcu_nb_inputs, // number of soft IRQs 198 198 16, // number of output IRQs 199 1); // number of config regs199 5); // number of config regs 200 200 201 201 //////////// MDMA … … 431 431 int_router_cmd[k]->p_clk (this->p_clk); 432 432 int_router_cmd[k]->p_resetn (this->p_resetn); 433 (*int_router_cmd[k]->p_blackhole_pos) (signal_cfg_router );433 (*int_router_cmd[k]->p_blackhole_pos) (signal_cfg_router_cmd[k]); 434 434 for (int i = 0; i < 4; i++) 435 435 { … … 443 443 int_router_rsp[k]->p_clk (this->p_clk); 444 444 int_router_rsp[k]->p_resetn (this->p_resetn); 445 (*int_router_rsp[k]->p_blackhole_pos) (signal_cfg_router );445 (*int_router_rsp[k]->p_blackhole_pos) (signal_cfg_router_rsp[k]); 446 446 for (int i = 0; i < 4; i++) 447 447 { … … 554 554 else xicu->p_hwi[i] (signal_false); 555 555 } 556 xicu->p_cfg[0] (signal_cfg_router); 556 xicu->p_cfg[0] (signal_cfg_router_cmd[0]); // CMD 557 xicu->p_cfg[1] (signal_cfg_router_rsp[0]); // RSP 558 xicu->p_cfg[2] (signal_cfg_router_cmd[1]); // M2P 559 xicu->p_cfg[3] (signal_cfg_router_rsp[1]); // P2M 560 xicu->p_cfg[4] (signal_cfg_router_cmd[2]); // CLACK 557 561 558 562 ///////////////////////////////////// MEMC
Note: See TracChangeset
for help on using the changeset viewer.