/* * controller_state.h * * Created on: Mar 5, 2014 * Author: jonny */ #ifndef CONTROLLER_STATE_H_ #define CONTROLLER_STATE_H_ #include #include "RowBufferStates.h" #include "core/Slots.h" #include "core/configuration/Configuration.h" #include #include #include class ControllerState { public: ControllerState(Configuration* config) : rowBufferStates(), bus(config->memSpec.clk), config(config) { } virtual ~ControllerState() { } const ScheduledCommand getLastCommand(Command command, Bank bank); const ScheduledCommand getLastCommand(Command command); const ScheduledCommand getLastScheduledCommand(Bank bank); const ScheduledCommand getLastScheduledCommand(); void change(const ScheduledCommand& scheduledCommand); void cleanUp(sc_time time); RowBufferState rowBufferStates; //used by the various checkers std::map > lastScheduledByCommandAndBank; std::map lastScheduledByCommand; std::map lastScheduledByBank; ScheduledCommand lastScheduled; Slots bus; std::vector lastDataStrobeCommands; std::map lastActivates; private: Configuration* config; }; #endif /* CONTROLLER_STATE_H_ */