genericCrossbar.h

Go to the documentation of this file.
00001 
00021 #ifndef  _genericcrossbar_h_INC
00022 #define  _genericcrossbar_h_INC
00023 
00024 #include        "../interfaces/crossbar.h"
00025 #include        <iostream>
00026 
00027 using namespace std;
00028 
00029 class GenericCrossbar: public Crossbar
00030 {
00031     public:
00032         GenericCrossbar ();                             /* constructor */
00033         ~GenericCrossbar();
00034         void setup( uint ports, uint vcs );
00035         uint get_no_input_ports();
00036         uint get_no_output_ports (); 
00037         void set_no_virtual_channels ( uint no);
00038         uint get_no_channels ();
00039         uint get_map ( uint in_port, uint ch );
00040         void configure_crossbar( uint in_port, uint out_port, uint ch );
00041         void push (uint in_port, uint ch);
00042         void pull ( uint out_port, uint ch );
00043         bool is_full ( uint in_port, uint ch);
00044         bool is_empty(uint out_port, uint ch);
00045         string toString() const;
00046 
00047     protected:
00048 
00049     private:
00050         vector < vector<uint> > map;
00051         uint input_ports;
00052         uint output_ports;
00053         uint vcs;
00054         /*
00055          * =====================================================================================
00056          *        Class:  CrossbarUnit
00057          *  Description:  This class pairs a pointer to a flit with a bool
00058          *  indicating if it is valid.
00059          * =====================================================================================
00060          */
00061         class CrossbarUnit
00062         {
00063             public:
00064                 Flit* data;
00065                 bool valid;
00066 
00067             protected:
00068 
00069             private:
00070 
00071         }; /* -----  end of class CrossbarUnit  ----- */
00072         vector < vector<bool> > busy;
00073         void clear();
00074 
00075 }; /* -----  end of class GenericCrossbar  ----- */
00076 
00077 #endif   /* ----- #ifndef _genericcrossbar_h_INC  ----- */
00078 

Generated on Tue Oct 19 17:22:00 2010 for IRIS by  doxygen 1.5.8