Ignore:
Timestamp:
Jun 16, 2015, 9:24:36 PM (9 years ago)
Author:
cfuguet
Message:

reconf: introducing a hardware barrier in the global-local interface of
the local interconnects.

  • This barrier is controlled by a port (barrier enable) in the dspin and vci local interconnects.
  • The barrier enable port is connected to a configuration register of the XICU component to allow the software to control this barrier. The barrier is enabled when the barrier enable port value is different of 0xFFFFFFFF. As the configuration register of the XICU component are reset to 0, this barrier is enabled by default.
  • This barrier allows to isolate the cluster from the rest of the architecture and only if it self-diagnoses as functional, it release the barrier to communicate with the others.
  • The same barrier enable signal is connected to the five local interconnects. Therefore, either all are released or all are disabled.
  • If a local initiator or an external initiator sends a packet out or into the cluster respectively, and the barrier is enabled, the packet is dropped.
File:
1 edited

Legend:

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

    r1000 r1001  
    852852    sc_signal<bool>                   signal_resetn("resetn");
    853853
    854     sc_signal<bool>                   signal_irq_false;
     854    sc_signal<bool>                   signal_false;
     855
    855856    sc_signal<bool>                   signal_irq_bdev;
    856857    sc_signal<bool>                   signal_irq_mtty_rx[NB_TTY_CHANNELS];
     
    873874    VciSignals<vci_param_ext>         signal_vci_tgt_bdev("signal_vci_tgt_bdev");
    874875    VciSignals<vci_param_ext>         signal_vci_tgt_cdma("signal_vci_tgt_cdma");
    875     VciSignals<vci_param_ext>         signal_vci_tgt_iopi("signal_vci_ini_iopi");
    876     VciSignals<vci_param_ext>         signal_vci_tgt_simh("signal_vci_ini_simh");
    877     VciSignals<vci_param_ext>         signal_vci_tgt_rom("signal_vci_ini_rom");
     876    VciSignals<vci_param_ext>         signal_vci_tgt_iopi("signal_vci_tgt_iopi");
     877    VciSignals<vci_param_ext>         signal_vci_tgt_simh("signal_vci_tgt_simh");
     878    VciSignals<vci_param_ext>         signal_vci_tgt_rom("signal_vci_tgt_rom");
    878879
    879880   // Horizontal inter-clusters INT network DSPIN
     
    12261227    std::cout << std::endl;
    12271228
    1228 //    clusters[0][0]->xicu->set_faulty_wti(3, 0);
     1229    //clusters[0][0]->xicu->set_faulty_wti(4, 0);
    12291230
    12301231    ///////////////////////////////////////////////////////////////////////////////
     
    13231324    {
    13241325       if     (i < NB_NIC_CHANNELS)    iopi->p_hwi[i] (signal_irq_mnic_rx[i]);
    1325        else if(i < 2 )                 iopi->p_hwi[i] (signal_irq_false);
     1326       else if(i < 2 )                 iopi->p_hwi[i] (signal_false);
    13261327       else if(i < 2+NB_NIC_CHANNELS)  iopi->p_hwi[i] (signal_irq_mnic_tx[i-2]);
    1327        else if(i < 4 )                 iopi->p_hwi[i] (signal_irq_false);
     1328       else if(i < 4 )                 iopi->p_hwi[i] (signal_false);
    13281329       else if(i < 4+NB_CMA_CHANNELS)  iopi->p_hwi[i] (signal_irq_cdma[i-4]);
    1329        else if(i < 8)                  iopi->p_hwi[i] (signal_irq_false);
     1330       else if(i < 8)                  iopi->p_hwi[i] (signal_false);
    13301331       else if(i < 9)                  iopi->p_hwi[i] (signal_irq_bdev);
    1331        else if(i < 16)                 iopi->p_hwi[i] (signal_irq_false);
     1332       else if(i < 16)                 iopi->p_hwi[i] (signal_false);
    13321333       else if(i < 16+NB_TTY_CHANNELS) iopi->p_hwi[i] (signal_irq_mtty_rx[i-16]);
    1333        else                            iopi->p_hwi[i] (signal_irq_false);
     1334       else                            iopi->p_hwi[i] (signal_false);
    13341335    }
    13351336
     
    13651366            clusters[x][y]->p_clk     (signal_clk);
    13661367            clusters[x][y]->p_resetn  (signal_resetn);
     1368            clusters[x][y]->p_false   (signal_false);
    13671369        }
    13681370    }
     
    15131515
    15141516   signal_resetn = false;
    1515    signal_irq_false = false;
     1517   signal_false = false;
    15161518
    15171519   // network boundaries signals
     
    16241626               std::cout << "### IRQ_PROC_" << std::dec
    16251627                  << x << "_" << y << "_" << l << " ACTIVE" << std::endl;
     1628
     1629            c->int_xbar_d->print_trace();
    16261630         }
    16271631
Note: See TracChangeset for help on using the changeset viewer.