71 lines
1.3 KiB
C++
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_ */
|