From 609e568fbca28d0a4c9e1b5ef6ca427898148740 Mon Sep 17 00:00:00 2001 From: Matthias Jung Date: Tue, 5 Aug 2014 16:58:15 +0200 Subject: [PATCH] Added the tRAS timing constraint into the precharge checker --- .../core/scheduling/checker/PrechargeChecker.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dram/src/controller/core/scheduling/checker/PrechargeChecker.cpp b/dram/src/controller/core/scheduling/checker/PrechargeChecker.cpp index f8fd5a42..204e5ead 100644 --- a/dram/src/controller/core/scheduling/checker/PrechargeChecker.cpp +++ b/dram/src/controller/core/scheduling/checker/PrechargeChecker.cpp @@ -14,6 +14,7 @@ void PrechargeChecker::delayToSatisfyConstraints(ScheduledCommand& command) cons { sc_assert(command.getCommand() == Command::Precharge); + ScheduledCommand lastCommand = state.getLastScheduledCommand(command.getBank()); if (lastCommand.isValidCommand()) @@ -34,6 +35,13 @@ void PrechargeChecker::delayToSatisfyConstraints(ScheduledCommand& command) cons reportFatal("Precharge Checker", "Precharge can not follow " + commandToString(lastCommand.getCommand())); } + ScheduledCommand lastActivate = state.getLastCommand(Command::Activate, command.getBank()); + if (lastActivate.isValidCommand()) + { + command.delayToMeetConstraint(lastActivate.getStart(), config.Timings.tRAS); + } + + state.bus.moveCommandToNextFreeSlot(command); }