From 73d767c6f0d9c18ce21ea4e6500ee90dbb6b6929 Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Wed, 19 May 2021 15:23:55 +0200 Subject: [PATCH] Set dataLength in TrafficGenerator to bytesPerBurst MemSpec --- DRAMSys/simulator/StlPlayer.h | 2 -- DRAMSys/simulator/TrafficGenerator.cpp | 10 +++++----- DRAMSys/simulator/TrafficGenerator.h | 1 - DRAMSys/simulator/TrafficInitiator.h | 3 +++ 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/DRAMSys/simulator/StlPlayer.h b/DRAMSys/simulator/StlPlayer.h index 31b2f4e9..5af48844 100644 --- a/DRAMSys/simulator/StlPlayer.h +++ b/DRAMSys/simulator/StlPlayer.h @@ -80,8 +80,6 @@ private: std::ifstream file; uint64_t lineCnt; - unsigned int burstLength; - unsigned int dataLength; sc_time playerClk; // May be different from the memory clock! static constexpr unsigned lineBufferSize = 10000; diff --git a/DRAMSys/simulator/TrafficGenerator.cpp b/DRAMSys/simulator/TrafficGenerator.cpp index 8b373f2d..be98e831 100644 --- a/DRAMSys/simulator/TrafficGenerator.cpp +++ b/DRAMSys/simulator/TrafficGenerator.cpp @@ -49,7 +49,8 @@ TrafficGenerator::TrafficGenerator(const sc_module_name &name, TrafficInitiator(name, setup), tCK(tCK), numRequests(numRequests), rwRatio(rwRatio) { - burstlenght = Configuration::getInstance().memSpec->burstLength; + burstLength = Configuration::getInstance().memSpec->burstLength; + dataLength = Configuration::getInstance().memSpec->bytesPerBurst; this->maxPendingReadRequests = maxPendingReadRequests; this->maxPendingWriteRequests = maxPendingWriteRequests; @@ -67,7 +68,7 @@ void TrafficGenerator::nextPayload() tlm::tlm_generic_payload *payload = setup->allocatePayload(); payload->acquire(); - unsigned char *dataElement = new unsigned char[16]; + // TODO: column / burst breite uint64_t address = getNextAddress(); @@ -86,9 +87,8 @@ void TrafficGenerator::nextPayload() payload->set_response_status(tlm::TLM_INCOMPLETE_RESPONSE); payload->set_dmi_allowed(false); payload->set_byte_enable_length(0); - payload->set_streaming_width(burstlenght); - payload->set_data_ptr(dataElement); - payload->set_data_length(16); + payload->set_streaming_width(burstLength); + payload->set_data_length(dataLength); payload->set_command(command); sc_time sendingOffset; diff --git a/DRAMSys/simulator/TrafficGenerator.h b/DRAMSys/simulator/TrafficGenerator.h index 583bf8b6..c2cd3fd7 100644 --- a/DRAMSys/simulator/TrafficGenerator.h +++ b/DRAMSys/simulator/TrafficGenerator.h @@ -62,7 +62,6 @@ protected: std::default_random_engine randomGenerator; private: - unsigned int burstlenght; sc_time tCK; uint64_t numRequests; float rwRatio; diff --git a/DRAMSys/simulator/TrafficInitiator.h b/DRAMSys/simulator/TrafficInitiator.h index 84978da2..aa22403c 100644 --- a/DRAMSys/simulator/TrafficInitiator.h +++ b/DRAMSys/simulator/TrafficInitiator.h @@ -76,6 +76,9 @@ protected: bool payloadPostponed = false; bool finished = false; + unsigned int burstLength; + unsigned int dataLength; + sc_event transactionFinished; private: