diff --git a/dram/resources/configs/memconfigs/memconfig.xml b/dram/resources/configs/memconfigs/memconfig.xml
index b708be0d..ba84ec9e 100644
--- a/dram/resources/configs/memconfigs/memconfig.xml
+++ b/dram/resources/configs/memconfigs/memconfig.xml
@@ -1,12 +1,11 @@
-
+
-
-
+
+
-
-
+
diff --git a/dram/resources/configs/memspecs/MatzesWideIO.xml b/dram/resources/configs/memspecs/MatzesWideIO.xml
index 12f75921..57599053 100644
--- a/dram/resources/configs/memspecs/MatzesWideIO.xml
+++ b/dram/resources/configs/memspecs/MatzesWideIO.xml
@@ -28,7 +28,7 @@
-
+
diff --git a/dram/src/common/dramExtension.cpp b/dram/src/common/dramExtension.cpp
index 61d24fb4..591ec8ab 100644
--- a/dram/src/common/dramExtension.cpp
+++ b/dram/src/common/dramExtension.cpp
@@ -6,7 +6,7 @@ using namespace tlm;
/* Static methods
*
*/
-const DramExtension& DramExtension::getExtension(const tlm_generic_payload *payload)
+DramExtension& DramExtension::getExtension(const tlm_generic_payload *payload)
{
DramExtension *result = NULL;
payload->get_extension(result);
@@ -14,7 +14,7 @@ const DramExtension& DramExtension::getExtension(const tlm_generic_payload *payl
return *result;
}
-const DramExtension& DramExtension::getExtension(const tlm_generic_payload &payload)
+DramExtension& DramExtension::getExtension(const tlm_generic_payload &payload)
{
return DramExtension::getExtension(&payload);
}
diff --git a/dram/src/common/dramExtension.h b/dram/src/common/dramExtension.h
index d515be44..9bbf4b04 100644
--- a/dram/src/common/dramExtension.h
+++ b/dram/src/common/dramExtension.h
@@ -135,9 +135,10 @@ public:
const Column& getColumn() const{return column;}
const unsigned int getBurstlength() const{return burstlength;}
+ void setRow(const Row& row){this->row = row;}
- static const DramExtension& getExtension(const tlm::tlm_generic_payload *payload);
- static const DramExtension& getExtension(const tlm::tlm_generic_payload &payload);
+ static DramExtension& getExtension(const tlm::tlm_generic_payload *payload);
+ static DramExtension& getExtension(const tlm::tlm_generic_payload &payload);
};
#endif /* DRAMEXTENSION_H_ */
diff --git a/dram/src/core/BankStates.cpp b/dram/src/core/BankStates.cpp
index b89136f1..d125bbe5 100644
--- a/dram/src/core/BankStates.cpp
+++ b/dram/src/core/BankStates.cpp
@@ -8,14 +8,14 @@
#include "BankStates.h"
#include "ControllerCore.h"
#include "../common/DebugManager.h"
+#include "../common/Utils.h"
using namespace std;
namespace core
{
-BankStates::BankStates(unsigned int numberOfBanks) :
- rowsInRowBuffers(numberOfBanks)
+BankStates::BankStates()
{
closeAllRowBuffers();
}
@@ -26,31 +26,31 @@ BankStates::~BankStates()
bool BankStates::rowBufferIsOpen(const Bank &bank) const
{
- return rowsInRowBuffers.at(bank.ID()) != Row::NO_ROW;
+ return rowsInRowBuffers.at(bank) != Row::NO_ROW;
}
Row BankStates::getRowInRowBuffer(const Bank &bank) const
{
- return rowsInRowBuffers.at(bank.ID());
+ return rowsInRowBuffers.at(bank);
}
void BankStates::openRowInRowBuffer(const Bank &bank, const Row &row)
{
DebugManager::getInstance().printDebugMessage(ControllerCore::senderName, "Row buffer for bank " + to_string(bank.ID()) + " is now open");
- rowsInRowBuffers.at(bank.ID()) = row;
+ rowsInRowBuffers[bank] = row;
}
void BankStates::closeRowBuffer(const Bank &bank)
{
DebugManager::getInstance().printDebugMessage(ControllerCore::senderName, "Row buffer for bank " + to_string(bank.ID()) + " is now closed");
- rowsInRowBuffers.at(bank.ID()) = Row::NO_ROW;
+ rowsInRowBuffers[bank] = Row::NO_ROW;
}
bool BankStates::allRowBuffersAreClosed() const
{
- for(auto row : rowsInRowBuffers)
+ for(unsigned int i=0; i
+#include