Fix delays in traffic generators

This commit is contained in:
2025-03-26 09:55:57 +01:00
parent 391b4cdb82
commit c1f4655d19
2 changed files with 8 additions and 1 deletions

View File

@@ -190,7 +190,7 @@ Request TrafficGenerator::nextRequest()
requestsInState++;
Request request = producers[currentState]->nextRequest();
request.delay += generatorPeriod * static_cast<double>(clksToIdle);
request.delay += generatorPeriod + generatorPeriod * static_cast<double>(clksToIdle);
return request;
}

View File

@@ -85,6 +85,13 @@ void RequestIssuer::sendNextRequest()
sc_core::sc_time sendingTime = sc_core::sc_time_stamp() + delay;
bool needsOffset = (sendingTime % interfaceClk) != sc_core::SC_ZERO_TIME;
if (needsOffset)
{
sendingTime += interfaceClk;
sendingTime -= sendingTime % interfaceClk;
}
delay = sendingTime - sc_core::sc_time_stamp();
iSocket->nb_transport_fw(payload, phase, delay);