PowerDown Manager and Bankwise PowerDown
This commit is contained in:
@@ -14,24 +14,28 @@ void ReadChecker::delayToSatisfyConstraints(ScheduledCommand& command) const
|
||||
{
|
||||
assert(command.getCommand() == Command::Read || command.getCommand() == Command::ReadA);
|
||||
|
||||
ScheduledCommand lastCommandOnBank = state.getLastScheduledCommand(command.getBank());
|
||||
ScheduledCommand lastCommand = state.getLastScheduledCommand(command.getBank());
|
||||
|
||||
if (lastCommandOnBank.isValidCommand())
|
||||
if (lastCommand.isValidCommand())
|
||||
{
|
||||
if (lastCommandOnBank.getCommand() == Command::Activate)
|
||||
if (lastCommand.getCommand() == Command::Activate)
|
||||
{
|
||||
if (command.getStart() < lastCommandOnBank.getEnd())
|
||||
if (command.getStart() < lastCommand.getEnd())
|
||||
{
|
||||
command.setStart(lastCommandOnBank.getEnd());
|
||||
command.setStart(lastCommand.getEnd());
|
||||
}
|
||||
}
|
||||
else if (lastCommandOnBank.getCommand() == Command::Read
|
||||
|| lastCommandOnBank.getCommand() == Command::Write)
|
||||
else if (lastCommand.getCommand() == Command::Read
|
||||
|| lastCommand.getCommand() == Command::Write)
|
||||
{
|
||||
}
|
||||
else if (lastCommand.getCommand() == Command::PDNAX)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
reportFatal("Read Checker",
|
||||
"Read can not follow " + commandToString(lastCommandOnBank.getCommand()));
|
||||
"Read can not follow " + commandToString(lastCommand.getCommand()));
|
||||
}
|
||||
|
||||
while (!state.bus.isFree(command.getStart()) || collidesOnDataStrobe(command))
|
||||
|
||||
Reference in New Issue
Block a user