burst length is now set when payload enters the core

This commit is contained in:
robert
2014-03-17 13:42:30 +01:00
parent 368f067f2f
commit 2137a00991
4 changed files with 12 additions and 10 deletions

View File

@@ -46,20 +46,21 @@ void DramController::addCommandChecker(Command command, ICommandChecker* checker
}
void DramController::schedule(sc_time currentTime, tlm::tlm_generic_payload& externalTransaction)
void DramController::schedule(sc_time currentTime, tlm::tlm_generic_payload& payload)
{
bus.cleanUpBus(currentTime);
payload.set_streaming_width(config.burstlength);
CommandSequence sequence = commandSequenceGenerator.generateCommandSequence(
externalTransaction);
payload);
CommandSchedule schedule = commandSequenceScheduler.prepareSchedule(currentTime,
externalTransaction, sequence);
payload, sequence);
while (refreshManager.hasCollision(schedule))
{
refreshManager.scheduleRefresh(currentTime);
sequence = commandSequenceGenerator.generateCommandSequence(externalTransaction);
schedule = commandSequenceScheduler.prepareSchedule(currentTime, externalTransaction,
sequence = commandSequenceGenerator.generateCommandSequence(payload);
schedule = commandSequenceScheduler.prepareSchedule(currentTime, payload,
sequence);
assert(schedule.getExecutionTime() < config.Timings.refreshTimings[0].tREFI); //TODO make nice
}