Fix issue with REFP2B with multiple ranks
This commit is contained in:
@@ -1839,7 +1839,7 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
if (burstLength == 32)
|
||||
{
|
||||
const sc_time constraint = currentTime + ((memSpec.BL_n_min_32 + memSpec.tRBTP) + memSpec.tRPpb);
|
||||
for (unsigned int i = static_cast<unsigned>(bank) + memSpec.banksPerRank * static_cast<unsigned>(rank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
for (unsigned int i = static_cast<unsigned>(bank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
{
|
||||
Bank currentBank{i};
|
||||
sc_time &earliestTimeToStart = nextCommandByBank[Command::REFP2B][currentBank];
|
||||
@@ -1853,7 +1853,7 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
if (burstLength != 32)
|
||||
{
|
||||
const sc_time constraint = currentTime + ((memSpec.BL_n_min_16 + memSpec.tRBTP) + memSpec.tRPpb);
|
||||
for (unsigned int i = static_cast<unsigned>(bank) + memSpec.banksPerRank * static_cast<unsigned>(rank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
for (unsigned int i = static_cast<unsigned>(bank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
{
|
||||
Bank currentBank{i};
|
||||
sc_time &earliestTimeToStart = nextCommandByBank[Command::REFP2B][currentBank];
|
||||
@@ -2456,7 +2456,7 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
if (burstLength == 32)
|
||||
{
|
||||
const sc_time constraint = currentTime + ((((memSpec.tWL + memSpec.BL_n_min_32) + memSpec.tCK) + memSpec.tWR) + memSpec.tRPpb);
|
||||
for (unsigned int i = static_cast<unsigned>(bank) + memSpec.banksPerRank * static_cast<unsigned>(rank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
for (unsigned int i = static_cast<unsigned>(bank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
{
|
||||
Bank currentBank{i};
|
||||
sc_time &earliestTimeToStart = nextCommandByBank[Command::REFP2B][currentBank];
|
||||
@@ -2470,7 +2470,7 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
if (burstLength != 32)
|
||||
{
|
||||
const sc_time constraint = currentTime + ((((memSpec.tWL + memSpec.BL_n_min_16) + memSpec.tCK) + memSpec.tWR) + memSpec.tRPpb);
|
||||
for (unsigned int i = static_cast<unsigned>(bank) + memSpec.banksPerRank * static_cast<unsigned>(rank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
for (unsigned int i = static_cast<unsigned>(bank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
{
|
||||
Bank currentBank{i};
|
||||
sc_time &earliestTimeToStart = nextCommandByBank[Command::REFP2B][currentBank];
|
||||
@@ -3666,7 +3666,7 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
// Bank (ACT,REFP2B) (memSpec.tRCpb + memSpec.tCK) [] Per2ComponentsIn(level=<ComponentLevel.BankGroup: 2>)
|
||||
{
|
||||
const sc_time constraint = currentTime + (memSpec.tRCpb + memSpec.tCK);
|
||||
for (unsigned int i = static_cast<unsigned>(bank) + memSpec.banksPerRank * static_cast<unsigned>(rank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
for (unsigned int i = static_cast<unsigned>(bank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
{
|
||||
Bank currentBank{i};
|
||||
sc_time &earliestTimeToStart = nextCommandByBank[Command::REFP2B][currentBank];
|
||||
@@ -3843,7 +3843,7 @@ void CheckerLPDDR5::insert(Command command, const tlm_generic_payload& payload)
|
||||
// Bank (REFP2B,ACT) (memSpec.tRFCpb - memSpec.tCK) [] Per2ComponentsIn(level=<ComponentLevel.BankGroup: 2>)
|
||||
{
|
||||
const sc_time constraint = currentTime + (memSpec.tRFCpb - memSpec.tCK);
|
||||
for (unsigned int i = static_cast<unsigned>(bank) + memSpec.banksPerRank * static_cast<unsigned>(rank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
for (unsigned int i = static_cast<unsigned>(bank); i < memSpec.banksPerRank * (1 + static_cast<unsigned>(rank)); i += memSpec.getPer2BankOffset())
|
||||
{
|
||||
Bank currentBank{i};
|
||||
sc_time &earliestTimeToStart = nextCommandByBank[Command::ACT][currentBank];
|
||||
|
||||
Reference in New Issue
Block a user