diff --git a/DRAM/.cproject b/DRAM/.cproject
index 619d9447..856f3c3b 100644
--- a/DRAM/.cproject
+++ b/DRAM/.cproject
@@ -60,9 +60,7 @@
-
-
-
+
diff --git a/DRAM/.settings/org.eclipse.ltk.core.refactoring.prefs b/DRAM/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 00000000..b196c64a
--- /dev/null
+++ b/DRAM/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/DRAM/main.cpp b/DRAM/main.cpp
index 1247e277..76f435c8 100644
--- a/DRAM/main.cpp
+++ b/DRAM/main.cpp
@@ -12,7 +12,7 @@
#include
#include
#include
-
+#include
using namespace std;
using namespace testing;
diff --git a/DRAM/src/common/dramextension.cpp b/DRAM/src/common/dramextension.cpp
index fd168765..2db16157 100644
--- a/DRAM/src/common/dramextension.cpp
+++ b/DRAM/src/common/dramextension.cpp
@@ -50,6 +50,11 @@ bool operator !=(const Bank& lhs, const Bank& rhs)
return !(lhs == rhs);
}
+bool operator <(const Bank& lhs, const Bank& rhs)
+{
+ return lhs.ID() < rhs.ID();
+}
+
const Row Row::NO_ROW;
bool operator ==(const Row& lhs, const Row& rhs)
diff --git a/DRAM/src/common/dramextension.h b/DRAM/src/common/dramextension.h
index 9fe53a20..8d934451 100644
--- a/DRAM/src/common/dramextension.h
+++ b/DRAM/src/common/dramextension.h
@@ -55,6 +55,7 @@ bool operator==(const Thread &lhs, const Thread &rhs);
bool operator!=(const Thread &lhs, const Thread &rhs);
bool operator==(const Bank &lhs, const Bank &rhs);
bool operator!=(const Bank &lhs, const Bank &rhs);
+bool operator<(const Bank &lhs, const Bank &rhs);
bool operator==(const Row &lhs, const Row &rhs);
bool operator!=(const Row &lhs, const Row &rhs);
bool operator==(const Column &lhs, const Column &rhs);
diff --git a/DRAM/src/core/Configuration.h b/DRAM/src/core/Configuration.h
index a4396d00..2dfe1511 100644
--- a/DRAM/src/core/Configuration.h
+++ b/DRAM/src/core/Configuration.h
@@ -15,10 +15,13 @@ namespace controller{
struct Configuration
{
- unsigned int numberOfBanks;
+ Configuration():Timings(numberOfBanks){}
+ unsigned int numberOfBanks = 8;
TimingConfiguration Timings;
bool RefreshBankwise = false;
+
+ unsigned int nActivate = 4;
};
} /* namespace controller */
diff --git a/DRAM/src/core/Controller.cpp b/DRAM/src/core/Controller.cpp
index 2489c504..b6b36e62 100644
--- a/DRAM/src/core/Controller.cpp
+++ b/DRAM/src/core/Controller.cpp
@@ -9,5 +9,21 @@
namespace controller {
+/*Controller::Controller()
+{
+ //create command scheduler
+}
+
+Controller::~Controller()
+{
+ //delete command scheduler
+}*/
+
+bool Controller::schedule(sc_time currentTime,
+ tlm::tlm_generic_payload* externalTransaction)
+{
+ bus.cleanUpPendingBusCommands(currentTime);
+}
} /* namespace controller */
+
diff --git a/DRAM/src/core/Controller.h b/DRAM/src/core/Controller.h
index 38566a5b..930a7dfa 100644
--- a/DRAM/src/core/Controller.h
+++ b/DRAM/src/core/Controller.h
@@ -10,11 +10,13 @@
#include
#include "scheduling/CommandSequenceGenerator.h"
-#include "scheduling/InternalScheduler.h"
+#include "scheduling/CommandBus.h"
#include "Configuration.h"
#include "scheduling/CommandSequenceScheduler.h"
#include "refresh/RefreshManager.h"
#include "powerdown/PowerDownManager.h"
+#include