Ignore:
Timestamp:
May 24, 2015, 6:37:08 PM (9 years ago)
Author:
cfuguet
Message:

reconf: modify the broadcast routing function to support holes in the
mesh.

  • Add a test platform in dspin_router directory that validates the introduced modifications.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/modules/dspin_router/caba/source/include/dspin_router.h

    r947 r994  
    8484    DspinOutput<flit_width>     *p_out;
    8585
    86     // reconfiguration port
    87     sc_in<uint32_t>             *p_recovery_cfg;
    88 
    8986    // constructor / destructor
    9087    DspinRouter( sc_module_name  name,
     
    9592                 const size_t    in_fifo_depth,
    9693                 const size_t    out_fifo_depth,
    97                  const bool      broadcast_supported = false );
     94                 const bool      broadcast_supported = false,
     95                 const bool      configuration_supported = false );
    9896
    9997    ~DspinRouter();
     
    107105        bool                 eop;
    108106    } internal_flit_t;
     107
     108    // reconfiguration port
     109    // port binding is performed with the bind_recovery_port() function
     110    sc_in<uint32_t>             *p_recovery_cfg;
    109111
    110112    // registers
     
    135137    void    transition();
    136138    void    genMoore();
     139
    137140    int     xfirst_route( size_t xdest, size_t ydest );
     141    int     recovery_route( size_t xdest, size_t ydest );
    138142    int     route( sc_uint<flit_width> data );
     143
    139144    int     broadcast_route( int iter, int source, sc_uint<flit_width> data );
    140145    bool    is_broadcast( sc_uint<flit_width> data );
     146    sc_uint<flit_width> compute_broadcast_header( int source );
    141147
    142     // fault-recovery methods
    143148    bool    is_destination_blackhole( size_t xdest, size_t ydest, int bhpos );
    144     int     recovery_route( size_t xdest, size_t ydest );
    145 
    146     public:
    147 
    148     inline void set_disable_mask( int mask )
    149     {
    150         m_disable_mask = mask;
    151     }
     149    int     blackhole_position();
    152150
    153151    inline bool is_network_recovery_enable()
     
    161159    }
    162160
    163     inline int blackhole_position()
     161    inline bool is_reconfigurable()
    164162    {
    165         return (p_recovery_cfg->read() & 0xF);
     163        return (p_recovery_cfg != NULL);
    166164    }
    167165
    168     void bind_recovery_port( sc_core::sc_signal<uint32_t> &s );
     166    public:
     167
     168    inline void set_disable_mask( int mask )
     169    {
     170        m_disable_mask = mask;
     171    }
     172
     173    void bind_recovery_port(sc_signal<uint32_t> &s);
    169174
    170175    void print_trace();
Note: See TracChangeset for help on using the changeset viewer.