orca-sim
Tile.cpp
Go to the documentation of this file.
1 
22 #include <iostream>
23 #include <sstream>
24 #include <iomanip>
25 
26 //model API
27 #include <TDmaNetif.h>
28 #include <TRouter.h>
29 #include <UMemory.h>
30 
31 #include <Tile.h>
32 
38 Tile::Tile(uint32_t x, uint32_t y){
39 
40  //map id wire to memory (local storage)
41  uint32_t id = (ORCA_NOC_WIDTH * y) + x;
42 
43  stringstream ss;
44  ss << std::setw(3) << std::setfill('0') << id;
45 
46  _name = ss.str();
47 
48  _signal_id = new Signal<uint32_t>(MAGIC_TILE_ID, this->GetName() + ".id");
49  _signal_id->Write(id);
50 
51  //peripherals
52  _router = new HermesRouter(this->GetName() + ".router", x, y);
53 }
54 
59 
60  delete(_signal_id);
61 
62  //delete hardware modules
63  delete(_router);
64 
65 }
66 
67 /*
68  //setters
69  void SetSignalStall(Signal<int8_t>*);
70  void SetSignalIntr(Signal<int8_t>*);
71  void SetSignalSendStatus(Signal<int8_t>*);
72  void SetSignalRecvStatus(Signal<int8_t>*);
73  void SetSignalProgAddr(Signal<int32_t>*);
74  void SetSignalProgSize(Signal<int32_t>*);
75  void SetSignalProgSend(Signal<int8_t>*);
76  void SetSignalProgRecv(Signal<int8_t>*);
77 */
78 
83 HermesRouter* Tile::GetRouter(){
84  return _router;
85 }
86 
87 
92 std::string Tile::GetName(){
93  return _name;
94 }
95 
100 Signal<uint32_t>* Tile::GetSignalId(){
101  return _signal_id;
102 }
103 
104 
105 /************************************* SETTERS **************************************/
112 void Tile::SetName(std::string name){
113  _name = name;
114 }
#define MAGIC_TILE_ID
Definition: _MemoryMap.h:28
std::string _name
Definition: Tile.h:48
~Tile()
Destructor: cleans up allocated memory.
Definition: Tile.cpp:58
void SetName(std::string)
Set a name to this tile.
Definition: Tile.cpp:112
HermesRouter * _router
Definition: Tile.h:50
void Write(T val)
Writes some value to the bus.
Definition: Signal.cpp:127
std::string GetName()
Get current tile name.
Definition: Tile.cpp:92
HermesRouter * GetRouter()
Get current router of the PE.
Definition: Tile.cpp:83
Signal< uint32_t > * GetSignalId()
Get current signal for tile ID.
Definition: Tile.cpp:100
Signal< uint32_t > * _signal_id
Definition: Tile.h:51
Tile(uint32_t x, uint32_t y)
This file is part of project URSA.
Definition: Tile.cpp:38