From 692ac5e566e47ba64b690f08b4e16b37cf41cfa4 Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Wed, 30 Aug 2023 09:18:13 +0200 Subject: [PATCH] Fix StlPlayer to store real data --- src/simulator/simulator/Simulator.cpp | 10 +++++++--- src/simulator/simulator/Simulator.h | 1 + src/simulator/simulator/player/StlPlayer.cpp | 3 ++- src/simulator/simulator/request/RequestIssuer.cpp | 2 ++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/simulator/simulator/Simulator.cpp b/src/simulator/simulator/Simulator.cpp index dc53fb11..305808d0 100644 --- a/src/simulator/simulator/Simulator.cpp +++ b/src/simulator/simulator/Simulator.cpp @@ -43,7 +43,8 @@ Simulator::Simulator(DRAMSys::Config::Configuration configuration, std::filesystem::path resourceDirectory) : - memoryManager(configuration.simconfig.StoreMode == DRAMSys::Config::StoreModeType::Store), + storageEnabled(configuration.simconfig.StoreMode == DRAMSys::Config::StoreModeType::Store), + memoryManager(storageEnabled), configuration(std::move(configuration)), resourceDirectory(std::move(resourceDirectory)) { @@ -122,8 +123,11 @@ Simulator::instantiateInitiator(const DRAMSys::Config::Initiator& initiator) SC_REPORT_FATAL("Simulator", report.c_str()); } - StlPlayer player( - tracePath.c_str(), config.clkMhz, defaultDataLength, *traceType, false); + StlPlayer player(tracePath.c_str(), + config.clkMhz, + defaultDataLength, + *traceType, + storageEnabled); return std::make_unique>(config.name.c_str(), memoryManager, diff --git a/src/simulator/simulator/Simulator.h b/src/simulator/simulator/Simulator.h index 0e39820b..35f2ddf8 100644 --- a/src/simulator/simulator/Simulator.h +++ b/src/simulator/simulator/Simulator.h @@ -54,6 +54,7 @@ public: private: std::unique_ptr instantiateInitiator(const DRAMSys::Config::Initiator& initiator); + const bool storageEnabled; MemoryManager memoryManager; DRAMSys::Config::Configuration configuration; diff --git a/src/simulator/simulator/player/StlPlayer.cpp b/src/simulator/simulator/player/StlPlayer.cpp index 4eb0c9ac..e82f61a8 100644 --- a/src/simulator/simulator/player/StlPlayer.cpp +++ b/src/simulator/simulator/player/StlPlayer.cpp @@ -199,7 +199,8 @@ void StlPlayer::parseTraceFile() iss >> element; // Check if data length in the trace file is correct. - // We need two characters to represent 1 byte in hexadecimal. Offset for 0x prefix. + // We need two characters to represent 1 byte in hexadecimal. Offset for 0x + // prefix. if (element.length() != (content.length * 2 + 2)) SC_REPORT_FATAL( "StlPlayer", diff --git a/src/simulator/simulator/request/RequestIssuer.cpp b/src/simulator/simulator/request/RequestIssuer.cpp index d759570a..e36c0509 100644 --- a/src/simulator/simulator/request/RequestIssuer.cpp +++ b/src/simulator/simulator/request/RequestIssuer.cpp @@ -78,6 +78,8 @@ void RequestIssuer::sendNextRequest() payload.set_command(request.command == Request::Command::Read ? tlm::TLM_READ_COMMAND : tlm::TLM_WRITE_COMMAND); + std::copy(request.data.cbegin(), request.data.cend(), payload.get_data_ptr()); + tlm::tlm_phase phase = tlm::BEGIN_REQ; sc_core::sc_time delay = request.delay;