Use scoped enums for DRAM types.
This commit is contained in:
@@ -126,13 +126,15 @@ CheckerDDR5::CheckerDDR5(const Configuration& config)
|
||||
|
||||
sc_time CheckerDDR5::timeToSatisfyConstraints(Command command, const tlm_generic_payload& payload) const
|
||||
{
|
||||
LogicalRank logicalRank(ControllerExtension::getRank(payload).ID());
|
||||
PhysicalRank physicalRank(logicalRank.ID() / memSpec->logicalRanksPerPhysicalRank);
|
||||
DimmRank dimmRank(physicalRank.ID() / memSpec->physicalRanksPerDimmRank);
|
||||
LogicalRank logicalRank = LogicalRank(ControllerExtension::getRank(payload));
|
||||
PhysicalRank physicalRank = PhysicalRank(
|
||||
static_cast<std::size_t>(logicalRank) / memSpec->logicalRanksPerPhysicalRank);
|
||||
DimmRank dimmRank = DimmRank(static_cast<std::size_t>(physicalRank) / memSpec->physicalRanksPerDimmRank);
|
||||
BankGroup bankGroup = ControllerExtension::getBankGroup(payload);
|
||||
Bank bank = ControllerExtension::getBank(payload);
|
||||
Bank bankInGroup = Bank(logicalRank.ID() * memSpec->banksPerGroup + bank.ID() % memSpec->banksPerGroup);
|
||||
|
||||
Bank bankInGroup = Bank(static_cast<std::size_t>(logicalRank) * memSpec->banksPerGroup
|
||||
+ static_cast<std::size_t>(bank) % memSpec->banksPerGroup);
|
||||
|
||||
sc_time lastCommandStart;
|
||||
sc_time earliestTimeToStart = sc_time_stamp();
|
||||
|
||||
@@ -938,15 +940,17 @@ sc_time CheckerDDR5::timeToSatisfyConstraints(Command command, const tlm_generic
|
||||
|
||||
void CheckerDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
{
|
||||
LogicalRank logicalRank(ControllerExtension::getRank(payload).ID());
|
||||
PhysicalRank physicalRank(logicalRank.ID() / memSpec->logicalRanksPerPhysicalRank);
|
||||
DimmRank dimmRank(physicalRank.ID() / memSpec->physicalRanksPerDimmRank);
|
||||
LogicalRank logicalRank = LogicalRank(ControllerExtension::getRank(payload));
|
||||
PhysicalRank physicalRank = PhysicalRank(
|
||||
static_cast<std::size_t>(logicalRank) / memSpec->logicalRanksPerPhysicalRank);
|
||||
DimmRank dimmRank = DimmRank(static_cast<std::size_t>(physicalRank) / memSpec->physicalRanksPerDimmRank);
|
||||
BankGroup bankGroup = ControllerExtension::getBankGroup(payload);
|
||||
Bank bank = ControllerExtension::getBank(payload);
|
||||
Bank bankInGroup = Bank(logicalRank.ID() * memSpec->banksPerGroup + bank.ID() % memSpec->banksPerGroup);
|
||||
Bank bankInGroup = Bank(static_cast<std::size_t>(logicalRank) * memSpec->banksPerGroup
|
||||
+ static_cast<std::size_t>(bank) % memSpec->banksPerGroup);
|
||||
unsigned burstLength = ControllerExtension::getBurstLength(payload);
|
||||
|
||||
PRINTDEBUGMESSAGE("CheckerDDR5", "Changing state on bank " + std::to_string(bank.ID())
|
||||
PRINTDEBUGMESSAGE("CheckerDDR5", "Changing state on bank " + std::to_string(static_cast<std::size_t>(bank))
|
||||
+ " command is " + command.toString());
|
||||
|
||||
lastScheduledByCommandAndDimmRank[command][dimmRank] = sc_time_stamp();
|
||||
|
||||
@@ -632,7 +632,7 @@ sc_time CheckerLPDDR5::timeToSatisfyConstraints(Command command, const tlm_gener
|
||||
}
|
||||
else if (command == Command::REFP2B)
|
||||
{
|
||||
Bank secondBank = Bank(bank.ID() + memSpec->getPer2BankOffset());
|
||||
Bank secondBank = Bank(static_cast<std::size_t>(bank) + memSpec->getPer2BankOffset());
|
||||
|
||||
lastCommandStart = lastScheduledByCommandAndBank[Command::ACT][bank];
|
||||
if (lastCommandStart != scMaxTime)
|
||||
@@ -730,7 +730,7 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
Bank bank = ControllerExtension::getBank(payload);
|
||||
unsigned burstLength = ControllerExtension::getBurstLength(payload);
|
||||
|
||||
PRINTDEBUGMESSAGE("CheckerLPDDR5", "Changing state on bank " + std::to_string(bank.ID())
|
||||
PRINTDEBUGMESSAGE("CheckerLPDDR5", "Changing state on bank " + std::to_string(static_cast<std::size_t>(bank))
|
||||
+ " command is " + command.toString());
|
||||
|
||||
lastScheduledByCommandAndRank[command][rank] = sc_time_stamp();
|
||||
@@ -748,7 +748,7 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
|
||||
if (command == Command::REFP2B)
|
||||
{
|
||||
Bank secondBank(bank.ID() + memSpec->getPer2BankOffset());
|
||||
Bank secondBank = Bank(static_cast<std::size_t>(bank) + memSpec->getPer2BankOffset());
|
||||
lastScheduledByCommandAndBank[command][secondBank] = sc_time_stamp();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user