Ignore:
Timestamp:
Sep 14, 2015, 9:42:15 AM (9 years ago)
Author:
cfuguet
Message:

reconf: when a local router in a cluster is faulty, the cores are kept
deactivated.

  • In the physical implementation this is achieved with the hardware reset signal. This signal is masked with the GO signals of the NoC BIST. Only when all the local routers pass the BIST, the reset signal of the cores is deasserted.
Location:
branches/reconfiguration/platforms/tsar_generic_iob
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/platforms/tsar_generic_iob/top.cpp

    r1007 r1015  
    334334   uint32_t frozen_cycles    = MAX_FROZEN_CYCLES; // monitoring frozen processor
    335335
     336   bool disable_cluster_procs[X_SIZE][Y_SIZE];
     337   for (int x = 0; x < X_SIZE; ++x)
     338      for (int y = 0; y < Y_SIZE; ++y)
     339         disable_cluster_procs[x][y] = false;
     340
    336341   std::vector<size_t> faulty_routers;
    337342
     
    435440                                     (x << (Y_WIDTH)) |
    436441                                     (y));
     442
     443            disable_cluster_procs[x][y] = true;
    437444         }
    438445         else if ((strcmp(argv[n], "-FAULTY_MASK") == 0) && (n+1 < argc) )
     
    11641171
    11651172                distributed_boot,
     1173                disable_cluster_procs[x][y],
    11661174
    11671175                *loader,
  • branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h

    r1001 r1015  
    242242
    243243                    bool                               distboot,
     244                    bool                               disable_procs,
    244245
    245246                    const Loader                       &loader,       // loader for XRAM
     
    255256  protected:
    256257
     258    const size_t m_nb_procs;
     259    const bool   m_disable_procs;
     260
    257261    SC_HAS_PROCESS(TsarIobCluster);
    258 
    259262    void init();
    260 
    261 
    262263};
    263264
     
    267268
    268269// Local Variables:
    269 // tab-width: 3
    270 // c-basic-offset: 3
     270// tab-width: 4
     271// c-basic-offset: 4
    271272// c-file-offsets:((innamespace . 0)(inline-open . 0))
    272273// indent-tabs-mode: nil
    273274// End:
    274275
    275 // vim: filetype=cpp:expandtab:shiftwidth=3:tabstop=3:softtabstop=3
     276// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
    276277//
  • branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp

    r1001 r1015  
    8080
    8181        bool                               distboot,
     82        bool                               disable_procs,
    8283
    8384        const Loader                       &loader,
     
    9495            p_clk("clk"),
    9596            p_resetn("resetn"),
    96             p_false("false")
     97            p_false("false"),
     98            m_nb_procs(nb_procs),
     99            m_disable_procs(disable_procs)
    97100{
    98101
     
    124127
    125128    ////////////  PROCS
    126     for (size_t p = 0; p < nb_procs; p++)
     129    for (size_t p = 0; p < nb_procs && !m_disable_procs; p++)
    127130    {
    128131        std::ostringstream s_proc;
     
    539542
    540543    //////////////////////////////////// Processors
    541     for (size_t p = 0; p < nb_procs; p++)
     544    for (size_t p = 0; p < nb_procs && !m_disable_procs; p++)
    542545    {
    543546        proc[p]->p_clk                           (this->p_clk);
     
    692695tmpl(void)::init()
    693696{
    694    signal_ram_dspin_cmd_false.write = false;
    695    signal_ram_dspin_rsp_false.read  = true;
     697    for (size_t p = 0; p < m_nb_procs && m_disable_procs; p++)
     698    {
     699        signal_int_vci_ini_proc[p].cmdval = false;
     700        signal_int_vci_ini_proc[p].rspack = true;
     701        signal_int_dspin_m2p_proc[p].read = true;
     702        signal_int_dspin_p2m_proc[p].write = false;
     703        signal_int_dspin_clack_proc[p].write = false;
     704    }
     705
     706    signal_ram_dspin_cmd_false.write = false;
     707    signal_ram_dspin_rsp_false.read  = true;
    696708} // end init
    697709
Note: See TracChangeset for help on using the changeset viewer.