topology.h

Go to the documentation of this file.
00001 /*
00002  * =====================================================================================
00003  *
00004  *! \brief Filename:  topology.h
00005  *
00006  *    Description: This class describes the abstract base class for a generic topology
00007  *
00008  *        Version:  1.0
00009  *        Created:  07/19/2010 10:01:20 AM
00010  *       Revision:  none
00011  *       Compiler:  gcc
00012  * 
00013  *         Author: Sharda Murthi, smurthi3@gatech.edu
00014  *        Company:  Georgia Institute of Technology
00015  *
00016  * ===================================================================================== 
00017 */
00018 
00019 #ifndef TOPOLOGY_H_
00020 #define TOPOLOGY_H_
00021 
00022 #include        <iostream>
00023 #include        <fstream>
00024 #include        "../../simIris/components/impl/genericRouterPhy.h"
00025 #include        "../../simIris/components/impl/routerVcMP.h"
00026 #include        "../../simIris/components/impl/routerReqReply.h"
00027 #include        "../../simIris/components/impl/genericInterfaceNB.h"
00028 #include        "../../simIris/components/impl/genericTracePktGen.h"
00029 #include        "../../simIris/components/impl/genericPktGen.h"
00030 #include        "../../simIris/components/impl/genericFlatMc.h"
00031 #include        "../../simIris/components/impl/genericSink.h"
00032 #include        "../../simIris/components/impl/genericLink.h"
00033 #include        "../../simIris/components/impl/mcFrontEnd.h"
00034 
00035 #include        "../../simIris/data_types/impl/flit.h"
00036 #include        "../../simIris/data_types/impl/highLevelPacket.h"
00037 #include        "../../util/genericData.h"
00038 
00039 #include        <string.h>
00040 #include        <sys/time.h>
00041 #include        <algorithm>
00042 #include        <stdio.h>
00043 #include        <stdlib.h>
00044 #include        <time.h>
00045 #include        <setjmp.h>
00046 #include        <signal.h>
00047 #include        <sys/types.h>
00048 #include        <unistd.h>
00049 #include        <sys/time.h>
00050 #include        <sys/io.h>
00051 
00052 /*
00053 #include        "../../zesto/host.h"
00054 #include        "../../zesto/misc.h"
00055 #include        "../../zesto/sim.h"
00056 #include        "../../zesto/machine.h"
00057 #include        "../../zesto/endian.h"
00058 #include        "../../zesto/version.h"
00059 #include        "../../zesto/options.h"
00060 #include        "../../zesto/stats.h"
00061 //#include      "../../zesto/loader.h"
00062 #include        "../../zesto/regs.h"
00063 #include        "../../zesto/memory.h"
00064 #include        "../../zesto/thread.h"
00065 */
00066 
00067 class Topology
00068 {
00069         public:
00070                 virtual void init(uint ports, uint vcs, uint credits, uint buffer_size, uint no_nodes, uint grid_size, uint links) = 0;
00071                 virtual void setup(void) = 0;
00072                 virtual void connect_interface_processor(void) = 0;
00073                 virtual void connect_interface_routers(void) = 0;
00074                 virtual void connect_routers(void) = 0;
00075                 virtual string print_stats(void) = 0;
00076                 Topology() {}
00077                 virtual ~Topology() {}
00078 
00079                 unsigned long long int max_sim_time;
00080                 map< uint , uint > east_links;
00081                 map< uint , uint > west_links;
00082                 map< uint , uint > north_links;
00083                 map< uint , uint > south_links;
00084                 vector <Router*> routers;
00085                 vector <Interface*> interfaces;
00086                 vector <Processor*> processors;
00087                 vector <GenericLink*> link_a;
00088                 vector <GenericLink*> link_b;
00089 }
00090 ;
00091 
00092 #endif /* TOPOLOGY_H_ */
00093 

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