diff --git a/DRAMSys/library/src/controller/Controller.cpp b/DRAMSys/library/src/controller/Controller.cpp index 3cf55f09..20f98d58 100644 --- a/DRAMSys/library/src/controller/Controller.cpp +++ b/DRAMSys/library/src/controller/Controller.cpp @@ -41,7 +41,6 @@ #include "cmdmux/CmdMuxOldest.h" #include "../common/dramExtensions.h" #include "../common/protocol.h" -#include "core/scheduling/ScheduledCommand.h" #include "checker/CheckerDDR3.h" #include "checker/CheckerWideIO.h" #include "refresh/RefreshManager.h" diff --git a/DRAMSys/library/src/controller/ControllerRecordable.cpp b/DRAMSys/library/src/controller/ControllerRecordable.cpp index 8e3ed98e..55788b15 100644 --- a/DRAMSys/library/src/controller/ControllerRecordable.cpp +++ b/DRAMSys/library/src/controller/ControllerRecordable.cpp @@ -62,9 +62,7 @@ void ControllerRecordable::sendToDram(Command command, tlm_generic_payload *payl { if (commandIsIn(command, {Command::RD, Command::RDA, Command::WR, Command::WRA})) { - sc_time execTime = Configuration::getInstance().memSpec->getExecutionTime(command); - ScheduledCommand scheduledCommand(command, sc_time_stamp(), execTime, *payload); - TimeInterval dataStrobe = scheduledCommand.getIntervalOnDataStrobe(); + TimeInterval dataStrobe = Configuration::getInstance().memSpec->getIntervalOnDataStrobe(command); tlmRecorder->updateDataStrobe(dataStrobe.start, dataStrobe.end, *payload); } Controller::sendToDram(command, payload); diff --git a/DRAMSys/library/src/controller/checker/CheckerIF.h b/DRAMSys/library/src/controller/checker/CheckerIF.h index 8a914b88..34cd9777 100644 --- a/DRAMSys/library/src/controller/checker/CheckerIF.h +++ b/DRAMSys/library/src/controller/checker/CheckerIF.h @@ -37,7 +37,6 @@ #include #include -#include "../core/scheduling/ScheduledCommand.h" #include "../Command.h" #include "../../common/dramExtensions.h" #include "../../common/DebugManager.h" diff --git a/DRAMSys/library/src/controller/core/configuration/MemSpec.cpp b/DRAMSys/library/src/controller/core/configuration/MemSpec.cpp index 53ee7588..dc31e2f5 100644 --- a/DRAMSys/library/src/controller/core/configuration/MemSpec.cpp +++ b/DRAMSys/library/src/controller/core/configuration/MemSpec.cpp @@ -76,6 +76,17 @@ sc_time MemSpec::getMinExecutionTimeForPowerDownCmd(Command command) const } } +TimeInterval MemSpec::getIntervalOnDataStrobe(Command command) const +{ + // TODO: implement this function for different memspecs, add AL for DDR3 + if (command == Command::RD || command == Command::RDA) + return TimeInterval(sc_time_stamp() + tRL, sc_time_stamp() + tRL + getReadAccessTime()); + else if (command == Command::WR || command == Command::WRA) + return TimeInterval(sc_time_stamp() + tWL, sc_time_stamp() + tWL + getWriteAccessTime()); + else + SC_REPORT_FATAL("MemSpec", "Method was called with invalid argument"); +} + // Returns the execution time for commands that have a fixed execution time // TODO: override this method for different MemSpecs? sc_time MemSpec::getExecutionTime(Command command) const diff --git a/DRAMSys/library/src/controller/core/configuration/MemSpec.h b/DRAMSys/library/src/controller/core/configuration/MemSpec.h index 1d84d11c..156f75e8 100644 --- a/DRAMSys/library/src/controller/core/configuration/MemSpec.h +++ b/DRAMSys/library/src/controller/core/configuration/MemSpec.h @@ -42,6 +42,7 @@ #include #include "../../../common/dramExtensions.h" #include "../../Command.h" +#include "../../../common/utils.h" using namespace tlm; @@ -58,6 +59,8 @@ struct MemSpec virtual sc_time getExecutionTime(Command) const; + virtual TimeInterval getIntervalOnDataStrobe(Command) const; + std::string MemoryId = "not defined."; std::string MemoryType = "not defined.";