diff --git a/DRAMSys/library/src/simulation/Arbiter.cpp b/DRAMSys/library/src/simulation/Arbiter.cpp index 85b26716..8ed91d8e 100644 --- a/DRAMSys/library/src/simulation/Arbiter.cpp +++ b/DRAMSys/library/src/simulation/Arbiter.cpp @@ -84,7 +84,7 @@ tlm_sync_enum Arbiter::nb_transport_fw(int id, tlm_generic_payload &payload, // In the begin request phase the socket ID is appended to the payload. // It will extracted from the payload and used later. - appendDramExtension(id, payload); + appendDramExtension(id, payload, fwDelay); payload.acquire(); } else if (phase == END_RESP) @@ -228,10 +228,10 @@ void Arbiter::peqCallback(tlm_generic_payload &payload, const tlm_phase &phase) "Payload event queue in arbiter was triggered with unknown phase"); } -void Arbiter::appendDramExtension(int socketId, tlm_generic_payload &payload) +void Arbiter::appendDramExtension(int socketId, tlm_generic_payload &payload, sc_time delay) { // Set Generation Extension and DRAM Extension - GenerationExtension::setExtension(&payload, sc_time_stamp()); + GenerationExtension::setExtension(&payload, sc_time_stamp() + delay); unsigned int burstlength = payload.get_streaming_width(); DecodedAddress decodedAddress = addressDecoder->decodeAddress(payload.get_address()); diff --git a/DRAMSys/library/src/simulation/Arbiter.h b/DRAMSys/library/src/simulation/Arbiter.h index c845e2b9..c2c83222 100644 --- a/DRAMSys/library/src/simulation/Arbiter.h +++ b/DRAMSys/library/src/simulation/Arbiter.h @@ -87,7 +87,7 @@ private: void peqCallback(tlm::tlm_generic_payload &payload, const tlm::tlm_phase &phase); - void appendDramExtension(int socketId, tlm::tlm_generic_payload &payload); + void appendDramExtension(int socketId, tlm::tlm_generic_payload &payload, sc_time delay); std::vector nextPayloadID; };