38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
/*
|
|
* CommandGenerator.h
|
|
*
|
|
* Created on: Mar 5, 2014
|
|
* Author: jonny
|
|
*/
|
|
|
|
#ifndef COMMANDGENERATOR_H_
|
|
#define COMMANDGENERATOR_H_
|
|
|
|
#include <tlm.h>
|
|
#include <vector>
|
|
#include "core/ControllerState.h"
|
|
#include "Command.h"
|
|
|
|
namespace controller {
|
|
|
|
class CommandSequenceGenerator {
|
|
public:
|
|
CommandSequenceGenerator(const ControllerState& controllerState) : controllerState(controllerState) {}
|
|
virtual ~CommandSequenceGenerator() {}
|
|
|
|
CommandSequence generateCommandSequence(tlm::tlm_generic_payload& transaction);
|
|
CommandSequence generateCommandSequence(tlm::tlm_generic_payload* transaction);
|
|
|
|
private:
|
|
const ControllerState& controllerState;
|
|
|
|
Command getReadWriteCommand(tlm::tlm_generic_payload& transaction);
|
|
CommandSequence getBankMissCommandSequence(tlm::tlm_generic_payload& transaction);
|
|
CommandSequence getRowMissCommandSequence(tlm::tlm_generic_payload& transaction);
|
|
CommandSequence getRowHitCommandSequence(tlm::tlm_generic_payload& transaction);
|
|
};
|
|
|
|
} /* namespace controller */
|
|
|
|
#endif /* COMMANDGENERATOR_H_ */
|