Skip to content

Commit

Permalink
checkpoint: add crossbar initial stubs
Browse files Browse the repository at this point in the history
  • Loading branch information
drjohnson committed Mar 22, 2012
1 parent eee912d commit 06df1d1
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
1 change: 1 addition & 0 deletions rigel-sim/Makefile.am
Expand Up @@ -35,6 +35,7 @@ common_SOURCES = \
src/interconnect/tile_interconnect_new.cpp \
src/interconnect/tile_interconnect_bcast.cpp \
src/interconnect/tree_network.cpp \
src/interconnect/crossbar.cpp \
src/memory/memory_model_ideal.cpp \
src/memory/memory_model_gddr4.cpp \
src/memory/dram_controller.cpp \
Expand Down
44 changes: 44 additions & 0 deletions rigel-sim/include/interconnect/crossbar.h
@@ -0,0 +1,44 @@
#ifndef __CROSSBAR_H__
#define __CROSSBAR_H__

#include "sim/componentbase.h"
#include "util/construction_payload.h"

extern ComponentCount CrossBarCount;

//forward declarations
class Packet;
template<class T> class InPortBase;
template<class T> class OutPortBase;

namespace rigel {
class ConstructionPayload;
}

class CrossBar : public ComponentBase {

public:

CrossBar(
rigel::ConstructionPayload cp,
ComponentCount& count = CrossBarCount
);

/// component interface
/// required interface
void Dump() {};
void Heartbeat() {};
void EndSim() {};
int PerCycle() {};

private:

int _numports;

std::vector< InPortBase<Packet*>* > inports;
std::vector< OutPortBase<Packet*>* > outports;

};


#endif
28 changes: 28 additions & 0 deletions rigel-sim/src/interconnect/crossbar.cpp
@@ -0,0 +1,28 @@

#include "interconnect/crossbar.h"
#include "port/port.h"

ComponentCount CrossBarCount;

CrossBar::CrossBar(
rigel::ConstructionPayload cp,
ComponentCount& count
) :
ComponentBase(cp.parent,
cp.change_name("CrossBar").component_name.c_str(),
count),
_numports(rigel::NUM_TILES), // FIXME: set dynamically
inports(_numports),
outports(_numports)
{
// instantiate ports
// TODO: do elsewhere, and connect
for (int i = 0; i < inports.size(); i++) {
inports[i] = new InPortBase<Packet*>( PortName(name(), id(), "in", i) );
}

for (int i = 0; i < outports.size(); i++) {
outports[i] = new OutPortBase<Packet*>( PortName(name(), id(), "out", i) );
}
}

0 comments on commit 06df1d1

Please sign in to comment.