removed some errors

This commit is contained in:
Peter Ehses
2014-12-02 16:05:13 +01:00
parent e84a3cc99b
commit 571e717224
3 changed files with 24 additions and 14 deletions

View File

@@ -72,7 +72,7 @@ SOURCES += \
../src/controller/scheduler/Scheduler.cpp \
../src/controller/scheduler/readwritegrouper.cpp \
../src/controller/core/configuration/ConfigurationLoader.cpp \
../src/controller/core/powerdown/NoPowerDown.cpp
../src/controller/core/powerdown/NoPowerDown.cpp \
../src/error/nest_map.cpp \
../src/error/flip_memory.cpp
@@ -131,8 +131,8 @@ HEADERS += \
../src/simulation/StlPlayer.h \
../src/simulation/TracePlayerListener.h \
../src/simulation/TraceGenerator.h \
../src/controller/core/powerdown/NoPowerDown.h
../src/controller/core/configuration/ConfigurationLoader.h
../src/controller/core/powerdown/NoPowerDown.h \
../src/controller/core/configuration/ConfigurationLoader.h \
../src/error/nest_map.h \
../src/error/flip_memory.h

View File

@@ -41,16 +41,20 @@ flip_memory::flip_memory()
// path of csv file
errormap = new nest_map(Configuration::getInstance().csvfile);
//xade = new xmlAddressDecoder("config.xml");
// Constants for address calculations
ROWS_PER_BANK = Configuration::getInstance().memSpec.NumberOfRows; //8192
COLS_PER_ROW = Configuration::getInstance().memSpec.NumberOfColumns; //changed later to variable 128
BYTES_PER_COL = 16; //changed later to variable, wie genau, mit config file oder im programm selbst
BYTES_PER_COL = 16; //TODO changed later to variable, wie genau, mit config file oder im programm selbst
BITS_PER_ROW = COLS_PER_ROW * BYTES_PER_COL * 8;
// Fill array with random addresses
initWeakCells();
for(unsigned int i = 0; i < ROWS_PER_BANK; i++)
{
refr[i] = SC_ZERO_TIME;
}
}
flip_memory::~flip_memory()
@@ -61,7 +65,6 @@ flip_memory::~flip_memory()
DecodedAddress flip_memory::getUnifiedNode(unsigned int addr)
{
DecodedAddress n = xmlAddressDecoder::getInstance().decodeAddress(addr);
//xade->getNode(addr, n);
n.channel = 0;
n.bank = 0;
return n;
@@ -236,6 +239,7 @@ void flip_memory::load(tlm::tlm_generic_payload &trans)
void flip_memory::refresh(unsigned int row)
{
// How many Bits have flipped?
cout << "TEST=" << refr[row] << endl;
sc_time deltaT = sc_time_stamp() - refr[row];

View File

@@ -62,6 +62,12 @@ struct Dram: sc_module
IFPOW( MemorySpecification memSpec(MemSpecParser::getMemSpecFromXML(Configuration::getInstance().memspecUri)) );
IFPOW( DRAMPower = new libDRAMPower( memSpec, 0 ) );
cout << "StorageMode = " << StorageMode << endl;
if(StorageMode == 2)
{
fmemory = new flip_memory[Configuration::getInstance().memSpec.NumberOfBanks];
}
}
~Dram()
@@ -70,16 +76,16 @@ struct Dram: sc_module
IFPOW( DRAMPower->calcEnergy() );
IFPOW( cout << endl << endl << "Total Energy" << "\t" << DRAMPower->getEnergy().total_energy << endl);
IFPOW( cout << "Average Power" << "\t" << DRAMPower->getPower().average_power << endl );
for(int b = 0; b < 8; b++)
cout << "BIT_ERRORS Bank: " <<b <<"="<< fmemory[b].BIT_ERR << endl;
if(StorageMode == 2)
{
for(int b = 0; b < 8; b++)
{
cout << "BIT_ERRORS Bank: " <<b <<"="<< fmemory[b].BIT_ERR << endl;
}
}
//cout << "Simulation finished!!!" << endl; // TODO Aufrauemen!
//delete fmemory; // TODO Testen!
//std::cout << "Simulated Memory Size: " << memory.size() << endl; // TODO Aufrauemen
if(StorageMode == 2) // TODO Testen!
{
fmemory = new flip_memory[1]; // TODO number of banks!!
}
}
virtual tlm::tlm_sync_enum nb_transport_fw(tlm::tlm_generic_payload& payload, tlm::tlm_phase& phase, sc_time& delay)
@@ -147,7 +153,7 @@ struct Dram: sc_module
//SC_REPORT_WARNING ("DRAM", "Reading from an empty memory location.");
}
}
else // use StorageMode
else if(StorageMode == 2)// use StorageMode
{
fmemory[bank].load(payload);
}