ptopSwaVcs.h

Go to the documentation of this file.
00001 /*
00002  * =====================================================================================
00003  *
00004  *       Filename:  myFullyVirtualArbiter.h
00005  *
00006  *    Description:  
00007  *
00008  *        Version:  1.0
00009  *        Created:  04/27/2010 01:52:11 AM
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 
00019 #ifndef  _ptopswitcharbitervcs_h_INC
00020 #define  _ptopswitcharbitervcs_h_INC
00021 
00022 #include        "../interfaces/networkComponent.h"
00023 #include        "../../data_types/impl/flit.h"
00024 #include        "../../../util/genericData.h"
00025 #include        <vector>
00026 #include        <fstream>
00027 
00028 using namespace std;
00029 extern SW_ARBITRATION sw_arbitration;
00030 extern message_class priority_msg_type;
00031 class PToPSwitchArbiterVcs
00032 {
00033     public:
00034         PToPSwitchArbiterVcs ();                             /* constructor */
00035         ~PToPSwitchArbiterVcs();
00036         void resize(uint p, uint v);
00037         bool is_requested(uint outp, uint inp, uint ovc);
00038         void clear_requestor(uint outp, uint inp, uint ovc);
00039         void request(uint p, uint op, uint inp, uint iv);
00040         SA_unit pick_winner( uint p);
00041         SA_unit do_round_robin_arbitration( uint p);
00042         SA_unit do_priority_round_robin_arbitration( uint p);
00043         SA_unit do_fcfs_arbitration( uint p);
00044         void request(uint oport, uint inport, message_class m);
00045         bool is_empty();
00046         string toString() const;
00047         uint address;
00048         string name;
00049         uint node_ip;
00050 
00051     protected:
00052 
00053     private:
00054         uint ports;
00055         uint vcs;
00056         vector < vector <bool> > requested;
00057         vector < vector <bool> > priority_reqs;
00058         vector < vector<SA_unit> > requesting_inputs;
00059         vector < SA_unit > last_winner;
00060         vector < uint> last_port_winner;
00061 
00062 }; /* -----  end of class PToPSwitchArbiterVcs  ----- */
00063 
00064 #endif   /* ----- #ifndef ptopswitcharbitervcs_INC  ----- */

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