Ignore:
Timestamp:
Oct 1, 2014, 11:30:42 AM (10 years ago)
Author:
cfuguet
Message:

tsar_generic_leti: introduce emulator mode

  • IO cluster is not instantiated when USE_PIC == 0
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_leti/top.cpp

    r803 r826  
    697697#endif
    698698
     699
     700#if USE_PIC
    699701    //////////////////////////////////////////////////////////////////
    700702    // IO bus and external peripherals in cluster[X_SIZE-1,Y_SIZE]
     
    923925    wt_iobus->p_dspin_rsp              (signal_dspin_bound_rsp_in[X_SIZE-1][Y_SIZE-1][NORTH]);
    924926
     927#endif // USE_PIC
     928
    925929    // Clock & RESET for clusters
    926930    for (size_t x = 0; x < (X_SIZE); x++)
     
    11161120    }
    11171121
     1122#if USE_PIC == 0
     1123    signal_dspin_bound_cmd_in[X_SIZE-1][Y_SIZE-1][NORTH].write = false;
     1124    signal_dspin_bound_rsp_out[X_SIZE-1][Y_SIZE-1][NORTH].read = true;
     1125    signal_dspin_bound_cmd_out[X_SIZE-1][Y_SIZE-1][NORTH].read = true;
     1126    signal_dspin_bound_rsp_in[X_SIZE-1][Y_SIZE-1][NORTH].write = false;
     1127#endif
     1128
    11181129    // set default values for VCI signals connected to unused ports on iobus
    11191130    signal_vci_tgt_memc.rspval = false;
     
    12341245            // clusters[1][1]->router_m2p->print_trace();
    12351246
     1247#if USE_PIC
    12361248            // trace external ioc
    12371249            bdev->print_trace();
     
    12431255            signal_vci_tgt_iopi.print_trace("[SIG]IOPI_TGT");
    12441256            signal_vci_ini_iopi.print_trace("[SIG]IOPI_INI");
     1257#endif
    12451258
    12461259            // trace internal tty
     
    12501263        }  // end trace
    12511264
    1252         if (0)
     1265#if 0
     1266#if USE_PIC
     1267        // trace BDV interrupts events
     1268        if ( signal_irq_bdev.read() != prev_irq_bdev )
    12531269        {
    1254             // trace BDV interrupts events
    1255             if ( signal_irq_bdev.read() != prev_irq_bdev )
    1256             {
    1257                 prev_irq_bdev = signal_irq_bdev.read();
    1258                 std::cout << std::dec << "@@@ IRQ_BDEV = " << signal_irq_bdev.read()
    1259                           << " at cycle " << n << std::endl;
    1260             }
    1261 
    1262             // trace TTY interrupts events
    1263             for ( size_t x = 0 ; x < 8 ; x++ )
    1264             {
    1265                 if ( signal_irq_mtty_rx[x].read() != prev_irq_mtty_rx[x] )
    1266                 {
    1267                     prev_irq_mtty_rx[x] = signal_irq_mtty_rx[x].read();
    1268                     std::cout << std::dec << "@@@ IRQ_MTTY["<<x<<"] = "
    1269                               << signal_irq_mtty_rx[x].read()
    1270                               << " at cycle " << n << std::endl;
    1271                 }
    1272             }
    1273 
    1274             // trace processor interrupts events
    1275             for ( size_t x = 0 ; x < X_SIZE ; x++ )
    1276             for ( size_t y = 0 ; y < Y_SIZE ; y++ )
    1277             for ( size_t i = 0 ; i < NB_PROCS_MAX ; i++ )
    1278             {
    1279                 if ( clusters[x][y]->signal_proc_irq[i] != prev_irq_proc[x][y][i] )
    1280                 {
     1270           prev_irq_bdev = signal_irq_bdev.read();
     1271           std::cout << std::dec << "@@@ IRQ_BDEV = " << signal_irq_bdev.read()
     1272              << " at cycle " << n << std::endl;
     1273        }
     1274
     1275        // trace TTY interrupts events
     1276        for ( size_t x = 0 ; x < 8 ; x++ )
     1277        {
     1278           if ( signal_irq_mtty_rx[x].read() != prev_irq_mtty_rx[x] )
     1279           {
     1280              prev_irq_mtty_rx[x] = signal_irq_mtty_rx[x].read();
     1281              std::cout << std::dec << "@@@ IRQ_MTTY["<<x<<"] = "
     1282                 << signal_irq_mtty_rx[x].read()
     1283                 << " at cycle " << n << std::endl;
     1284           }
     1285        }
     1286        // trace VCI transactions on IOPIC and XCU(0,0)
     1287        signal_vci_tgt_iopi.print_trace("@@@ IOPI_TGT");
     1288        signal_vci_ini_iopi.print_trace("@@@ IOPI_INI");
     1289#endif
     1290
     1291        // trace processor interrupts events
     1292        for ( size_t x = 0 ; x < X_SIZE ; x++ )
     1293           for ( size_t y = 0 ; y < Y_SIZE ; y++ )
     1294              for ( size_t i = 0 ; i < NB_PROCS_MAX ; i++ )
     1295              {
     1296                 if ( clusters[x][y]->signal_proc_irq[i] != prev_irq_proc[x][y][i] )
     1297                 {
    12811298                    prev_irq_proc[x][y][i] = clusters[x][y]->signal_proc_irq[i];
    12821299                    std::cout << std::dec << "@@@ IRQ_PROC["<<x<<","<<y<<","<<i<<"] = "
    1283                               << clusters[x][y]->signal_proc_irq[i]
    1284                               << " at cycle " << n << std::endl;
    1285                 }
    1286             }
    1287 
    1288             // trace VCI transactions on IOPIC and XCU(0,0)
    1289             signal_vci_tgt_iopi.print_trace("@@@ IOPI_TGT");
    1290             signal_vci_ini_iopi.print_trace("@@@ IOPI_INI");
    1291             clusters[0][0]->signal_vci_tgt_xicu.print_trace("@@@ XCU_0_0");
    1292         }
     1300                       << clusters[x][y]->signal_proc_irq[i]
     1301                       << " at cycle " << n << std::endl;
     1302                 }
     1303              }
     1304
     1305        clusters[0][0]->signal_vci_tgt_xicu.print_trace("@@@ XCU_0_0");
     1306#endif
    12931307
    12941308        sc_start(sc_core::sc_time(1, SC_NS));
Note: See TracChangeset for help on using the changeset viewer.