diff --git a/extensions/standards/HBM3/DRAMSys/configuration/memspec/MemSpecHBM3.cpp b/extensions/standards/HBM3/DRAMSys/configuration/memspec/MemSpecHBM3.cpp index 1ed567c0..431a011d 100644 --- a/extensions/standards/HBM3/DRAMSys/configuration/memspec/MemSpecHBM3.cpp +++ b/extensions/standards/HBM3/DRAMSys/configuration/memspec/MemSpecHBM3.cpp @@ -197,4 +197,16 @@ unsigned MemSpecHBM3::getRAAMMT() const return RAAMMT; } +bool MemSpecHBM3::requiresMaskedWrite(const tlm::tlm_generic_payload& payload) const +{ + bool maskedWrite = payload.get_byte_enable_ptr() != nullptr; + + if (maskedWrite) + { + SC_REPORT_FATAL("MemSpecHBM3", "HBM3 does not support masked writes!"); + } + + return maskedWrite; +} + } // namespace DRAMSys diff --git a/extensions/standards/HBM3/DRAMSys/configuration/memspec/MemSpecHBM3.h b/extensions/standards/HBM3/DRAMSys/configuration/memspec/MemSpecHBM3.h index de24b8ff..8bf6abbd 100644 --- a/extensions/standards/HBM3/DRAMSys/configuration/memspec/MemSpecHBM3.h +++ b/extensions/standards/HBM3/DRAMSys/configuration/memspec/MemSpecHBM3.h @@ -100,6 +100,8 @@ public: sc_core::sc_time getExecutionTime(Command command, const tlm::tlm_generic_payload &payload) const override; TimeInterval getIntervalOnDataStrobe(Command command, const tlm::tlm_generic_payload &payload) const override; + + bool requiresMaskedWrite(const tlm::tlm_generic_payload& payload) const override; }; } // namespace DRAMSys