burst length is now set when payload enters the core
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user