Changeset 959 for trunk/platforms/tsar_generic_iob/top.cpp
- Timestamp:
- Mar 27, 2015, 5:21:52 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_iob/top.cpp
r953 r959 50 50 // Besides the external peripherals, each cluster contains one XICU component, 51 51 // and one multi channels DMA component. 52 // The XICU component is mainly used to handle WTI IRQs, as only 5 HWI IRQs53 // are connected to XICU in each cluster:54 // - IRQ_IN[0] : MMC55 // - IRQ_IN[1] : DMA channel 056 // - IRQ_IN[2] : DMA channel 157 // - IRQ_IN[3] : DMA channel 258 // - IRQ_IN[ 4] : DMA channel 352 // The XICU component is mainly used to handle WTI IRQs, as only 53 // 1 + NB_PROCS_MAX HWI IRQs are connected to XICU in each cluster: 54 // - IRQ_IN[0] : MMC 55 // - IRQ_IN[1] : DMA channel 0 56 // - IRQ_IN[2] : DMA channel 1 57 // - ... ... 58 // - IRQ_IN[NB_PROCS_MAX] : DMA channel NB_PROCS_MAX 59 59 // 60 60 // All clusters are identical, but cluster(0,0) and cluster(XMAX-1,YMAX-1) … … 80 80 // - X_SIZE : number of clusters in a row 81 81 // - Y_SIZE : number of clusters in a column 82 // - NB_PROCS_MAX : number of processors per cluster ( power of 2)83 // - NB_DMA_CHANNELS : number of DMA channels per cluster ( up to 8)82 // - NB_PROCS_MAX : number of processors per cluster (up to 8) 83 // - NB_DMA_CHANNELS : number of DMA channels per cluster (>= NB_PROCS_MAX) 84 84 // - NB_TTY_CHANNELS : number of TTY channels in I/O network (up to 16) 85 85 // - NB_NIC_CHANNELS : number of NIC channels in I/O network (up to 2) … … 87 87 // - FBUF_X_SIZE : width of frame buffer (pixels) 88 88 // - FBUF_Y_SIZE : heigth of frame buffer (lines) 89 // - XCU_NB_INPUTS : number of HWIs = number of WTIs = number of PTIs 89 // - XCU_NB_HWI : number of XCU HWIs (>= NB_PROCS_MAX + 1) 90 // - XCU_NB_PTI : number of XCU PTIs (>= NB_PROCS_MAX) 91 // - XCU_NB_WTI : number of XCU WTIs (>= 4*NB_PROCS_MAX) 92 // - XCU_NB_OUT : number of XCU output IRQs (>= 4*NB_PROCS_MAX) 90 93 // 91 94 // Some secondary hardware parameters must be defined in this top.cpp file: … … 445 448 "The YMAX parameter cannot be larger than 16" ); 446 449 447 assert( (NB_PROCS_MAX <= (1 << P_WIDTH)) and 448 "NB_PROCS_MAX parameter cannot be larger than 2^P_WIDTH" ); 449 450 assert( (NB_DMA_CHANNELS <= 8) and 450 assert( (NB_PROCS_MAX <= 8) and 451 "NB_PROCS_MAX parameter cannot be larger than 8" ); 452 453 assert( (XCU_NB_HWI > NB_PROCS_MAX) and 454 "XCU_NB_HWI must be larger than NB_PROCS_MAX" ); 455 456 assert( (XCU_NB_PTI >= NB_PROCS_MAX) and 457 "XCU_NB_PTI cannot be smaller than NB_PROCS_MAX" ); 458 459 assert( (XCU_NB_WTI >= 4*NB_PROCS_MAX) and 460 "XCU_NB_WTI cannot be smaller than 4*NB_PROCS_MAX" ); 461 462 assert( (XCU_NB_OUT >= 4*NB_PROCS_MAX) and 463 "XCU_NB_OUT cannot be smaller than 4*NB_PROCS_MAX" ); 464 465 assert( (NB_DMA_CHANNELS >= NB_PROCS_MAX) and 451 466 "The NB_DMA_CHANNELS parameter cannot be larger than 8" ); 452 467 … … 1070 1085 L1_DSETS, 1071 1086 XRAM_LATENCY, 1072 XCU_NB_INPUTS, 1087 XCU_NB_HWI, 1088 XCU_NB_PTI, 1089 XCU_NB_WTI, 1090 XCU_NB_OUT, 1073 1091 1074 1092 loader, … … 1431 1449 1432 1450 // Monitor a specific address for one L1 cache 1433 // clusters[0][0]->proc[0]->cache_monitor(0x 600800ULL);1451 // clusters[0][0]->proc[0]->cache_monitor(0x800080ULL); 1434 1452 1435 1453 // Monitor a specific address for one L2 cache 1436 // clusters[0][0]->memc->cache_monitor( 0x 600800ULL, false ); // full line1454 // clusters[0][0]->memc->cache_monitor( 0x800080ULL, false ); // full line 1437 1455 1438 1456 // Monitor a specific address for one XRAM … … 1457 1475 clusters[x][y]->signal_int_vci_ini_proc[l].print_trace(proc_signame.str()); 1458 1476 1459 // clusters[x][y]->xicu->print_trace(l);1460 //std::ostringstream xicu_signame;1461 //xicu_signame << "[SIG]XICU_" << x << "_" << y;1462 //clusters[x][y]->signal_int_vci_tgt_xicu.print_trace(xicu_signame.str());1477 clusters[x][y]->xicu->print_trace(1); 1478 std::ostringstream xicu_signame; 1479 xicu_signame << "[SIG]XICU_" << x << "_" << y; 1480 clusters[x][y]->signal_int_vci_tgt_xicu.print_trace(xicu_signame.str()); 1463 1481 1464 1482 clusters[x][y]->mdma->print_trace(); 1465 std::ostringstream mdma_signame; 1466 mdma_signame << "[SIG]MDMA_" << x << "_" << y; 1467 clusters[x][y]->signal_int_vci_tgt_mdma.print_trace(mdma_signame.str()); 1483 std::ostringstream mdma_tgt_signame; 1484 mdma_tgt_signame << "[SIG]MDMA_TGT_" << x << "_" << y; 1485 clusters[x][y]->signal_int_vci_tgt_mdma.print_trace(mdma_tgt_signame.str()); 1486 std::ostringstream mdma_ini_signame; 1487 mdma_ini_signame << "[SIG]MDMA_INI_" << x << "_" << y; 1488 clusters[x][y]->signal_int_vci_ini_mdma.print_trace(mdma_ini_signame.str()); 1468 1489 1469 1490 // local interrupts in cluster(x,y)
Note: See TracChangeset
for help on using the changeset viewer.