genericData.h

Go to the documentation of this file.
00001 /*
00002  * =====================================================================================
00003  *
00004  *       Filename:  genericData.h
00005  *
00006  *    Description:  
00007  *
00008  *        Version:  1.0
00009  *        Created:  02/21/2010 04:59:48 PM
00010  *       Revision:  none
00011  *       Compiler:  gcc
00012  *
00013  *         Author:  Mitchelle Rasquinha (), mitchelle.rasquinha@gatech.edu
00014  *        Company:  Georgia Institute of Technology
00015  *
00016  * =====================================================================================
00017  */
00018 #ifndef  _genericdata_h_INC
00019 #define  _genericdata_h_INC
00020 
00021 #include        "../simIris/data_types/impl/flit.h"
00022 #include        "simIrisComponentHeader.h"
00023 
00024 using namespace std;
00025 
00026 enum ROUTING_SCHEME { XY, NEGATIVE_FIRST, ODD_EVEN, WEST_FIRST, NORTH_LAST, NORTH_LAST_NON_MINIMAL, TORUS_ROUTING, RING_ROUTING };
00027 enum SW_ARBITRATION { ROUND_ROBIN, FCFS, ROUND_ROBIN_PRIORITY };
00028 enum RouterPipeStage { 
00029    /* 0 */ INVALID, 
00030    /* 1 */ EMPTY,
00031    /* 2 */ IB, 
00032    /* 3 */ FULL, 
00033    /* 4 */ ROUTED,
00034    /* 5 */ VCA_REQUESTED, 
00035    /* 6 */ SWA_REQUESTED, 
00036    /* 7 */ SW_ALLOCATED, 
00037    /* 8 */ SW_TRAVERSAL, 
00038    /* 9 */ REQ_OUTVC_ARB, 
00039    /* 10 */ VCA_COMPLETE 
00040 };
00041 
00042 enum  ROUTER_MODEL { PHYSICAL, VIRTUAL};
00043 enum  MC_MODEL { GENERIC_MC, FLAT_MC, SINK};
00044 enum  TERMINAL_MODEL { GENERIC_PKTGEN, TPG};
00045 
00046 class InputBufferState
00047 {
00048     public:
00049         InputBufferState();
00050         ~InputBufferState(){}
00051         uint input_port;
00052         uint input_channel;
00053         uint output_port;
00054         uint output_channel;
00055         double stat_pkt_intime;
00056         double arrival_time;
00057         int length;
00058         int credits_sent;
00059         vector < uint > possible_ovcs;
00060         vector < uint > possible_oports;
00061         RouterPipeStage pipe_stage;
00062         message_class msg_class;
00063         ullint address;
00064         uint destination;
00065         bool clear_message;
00066         bool sa_head_done;
00067         uint flits_in_ib;
00068         bool sent_head;
00069         bool has_pending_pkts;
00070         bool pkt_in_progress;
00071         int bodies_sent;
00072         string toString () const;
00073 
00074 };
00075 
00076 /*
00077  * =====================================================================================
00078  *        Class:  LinkArrivalData
00079  *  Description:  
00080  * =====================================================================================
00081  */
00082 class LinkArrivalData
00083 {
00084     public:
00085         LinkArrivalData ();                             /* constructor */
00086         ~LinkArrivalData ();                             /* constructor */
00087         uint type;
00088         uint vc;
00089         Flit* ptr;
00090         bool valid;
00091 
00092     protected:
00093 
00094     private:
00095 
00096 }; /* -----  end of class LinkArrivalData  ----- */
00097 
00098 /*
00099  * =====================================================================================
00100  *        Class:  VirtualChannelDescription
00101  *  Description:  
00102  * =====================================================================================
00103  */
00104 class VirtualChannelDescription
00105 {
00106     public:
00107         VirtualChannelDescription ();                             /* constructor */
00108         uint vc;
00109         uint port;
00110 
00111     protected:
00112 
00113     private:
00114 
00115 }; /* -----  end of class VirtualChannelDescription  ----- */
00116 
00117 /*
00118  * =====================================================================================
00119  *        Class:  RouteEntry
00120  *  Description:  
00121  * =====================================================================================
00122  */
00123 class RouteEntry
00124 {
00125     public:
00126         RouteEntry ();                             /* constructor */
00127         uint destination;
00128         vector< vector<uint> > ports;
00129         vector< vector<uint> > channels;
00130 
00131     protected:
00132 
00133     private:
00134 
00135 }; /* -----  end of class RouteEntry  ----- */
00136 
00137 class SA_unit
00138 {
00139     public:
00140         SA_unit(){};
00141         uint port;
00142         uint ch;
00143         ullint in_time;
00144         ullint win_cycle;
00145 };
00146 
00147 #endif   /* ----- #ifndef _genericdata_h_INC  ----- */
00148 

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