Files
DRAMSys/dram/src/controller/core/configuration/Configuration.h

71 lines
1.3 KiB
C++

/*
* Configuration.h
*
* Created on: Mar 6, 2014
* Author: jonny
*/
#ifndef CONFIGURATION_H_
#define CONFIGURATION_H_
#include <systemc.h>
#include <string>
#include "TimingConfiguration.h"
namespace core{
enum class PowerDownMode{Staggered, TimeoutPDN, TimeoutSREF};
struct Configuration
{
static std::string memspecUri;
static std::string memconfigUri;
static inline Configuration& getInstance()
{
static Configuration configuration;
return configuration;
}
//MemConfiguration
bool BankwiseLogic;
bool OpenPagePolicy;
bool AdaptiveOpenPagePolicy;
bool RefreshAwareScheduling;
unsigned int MaxNrOfTransactions;
std::string Scheduler;
unsigned int Capsize;
bool databaseRecordingEnabled;
//MemSpecification
std::string MemoryId;
std::string MemoryType;
unsigned int NumberOfBanks;
unsigned int NumberOfBankGroups;
unsigned int BurstLength;
unsigned int nActivate;
unsigned int DataRate;
unsigned int NumberOfRows;
bool recordingIsEnabled;
// Powerdown Mode
sc_time powerDownTimeout;
PowerDownMode powerDownMode;
//MemTimings
TimingConfiguration Timings;
const std::vector<Bank>& getBanks() const;
private:
Configuration();
};
} /* namespace core */
#endif /* CONFIGURATION_H_ */