Add hack in TimingCheckers to convert MWR to WR in insertion stage
This commit is contained in:
@@ -281,7 +281,13 @@ TimeInterval MemSpecDDR5::getIntervalOnDataStrobe(Command command, const tlm_gen
|
||||
|
||||
bool MemSpecDDR5::requiresReadModifyWrite(const tlm::tlm_generic_payload& payload) const
|
||||
{
|
||||
assert(false); // TODO
|
||||
// auto burstLength = ControllerExtension::getBurstLength(payload);
|
||||
|
||||
// if (burstLength == 16 && bitWidth == 4)
|
||||
// return true;
|
||||
|
||||
// assert(false); // TODO
|
||||
|
||||
return payload.get_byte_enable_ptr() != nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -950,6 +950,12 @@ void CheckerDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
+ static_cast<std::size_t>(bank) % memSpec->banksPerGroup);
|
||||
unsigned burstLength = ControllerExtension::getBurstLength(payload);
|
||||
|
||||
// Hack: Convert MWR to WR and MWRA to WRA
|
||||
if (command == Command::MWR)
|
||||
command = Command::WR;
|
||||
else if (command == Command::MWRA)
|
||||
command = Command::WRA;
|
||||
|
||||
PRINTDEBUGMESSAGE("CheckerDDR5", "Changing state on bank " + std::to_string(static_cast<std::size_t>(bank))
|
||||
+ " command is " + command.toString());
|
||||
|
||||
|
||||
@@ -733,6 +733,12 @@ void CheckerHBM3::insert(Command command, const tlm_generic_payload &payload)
|
||||
BankGroup bankGroup = ControllerExtension::getBankGroup(payload);
|
||||
Bank bank = ControllerExtension::getBank(payload);
|
||||
|
||||
// Hack: Convert MWR to WR and MWRA to WRA
|
||||
if (command == Command::MWR)
|
||||
command = Command::WR;
|
||||
else if (command == Command::MWRA)
|
||||
command = Command::WRA;
|
||||
|
||||
PRINTDEBUGMESSAGE("CheckerHBM3", "Changing state on bank " + std::to_string(static_cast<std::size_t>(bank))
|
||||
+ " command is " + command.toString());
|
||||
|
||||
|
||||
@@ -250,7 +250,7 @@ TimeInterval MemSpecLPDDR5::getIntervalOnDataStrobe(Command command, const tlm_g
|
||||
|
||||
bool MemSpecLPDDR5::requiresReadModifyWrite(const tlm::tlm_generic_payload& payload) const
|
||||
{
|
||||
assert(false); // TODO
|
||||
// assert(false); // TODO
|
||||
return payload.get_byte_enable_ptr() != nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -730,6 +730,12 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
Bank bank = ControllerExtension::getBank(payload);
|
||||
unsigned burstLength = ControllerExtension::getBurstLength(payload);
|
||||
|
||||
// Hack: Convert MWR to WR and MWRA to WRA
|
||||
if (command == Command::MWR)
|
||||
command = Command::WR;
|
||||
else if (command == Command::MWRA)
|
||||
command = Command::WRA;
|
||||
|
||||
PRINTDEBUGMESSAGE("CheckerLPDDR5", "Changing state on bank " + std::to_string(static_cast<std::size_t>(bank))
|
||||
+ " command is " + command.toString());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user