changed project structure to qtcreator, added timed out powerdown

This commit is contained in:
robert
2014-05-07 17:22:20 +02:00
parent 00f95b1587
commit c5512389da
114 changed files with 2324 additions and 9246 deletions

View File

@@ -1,126 +1,121 @@
#include "xmlAddressdecoder.h"
#include <systemc.h>
#include "Utils.h"
using namespace std;
using namespace tinyxml2;
string xmlAddressDecoder::addressConfigURI = "";
xmlAddressDecoder::xmlAddressDecoder(string addressConfigURI)
{
doc = new TiXmlDocument(addressConfigURI.c_str());
if (doc->LoadFile())
{
dramconfig = doc->FirstChildElement("dramconfig");
addressmap = dramconfig->FirstChildElement("addressmap");
doc = new XMLDocument();
loadXML(addressConfigURI,*doc);
addressmap = doc->FirstChildElement("dramconfig")->FirstChildElement("addressmap");
unsigned int from;
unsigned int to;
int from;
int to;
// get channel:
// TiXmlElement* channel = addressmap->FirstChildElement("channel");
//
//
// from = getAttribute<unsigned int>(channel, "from");
// to = getAttribute<unsigned int>(channel, "to");
//
// channelShift = from;
// channelMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
// channelSize = pow(2.0, to - from + 1.0);
// get channel:
// TiXmlElement* channel = addressmap->FirstChildElement("channel");
//
//
// from = getAttribute<unsigned int>(channel, "from");
// to = getAttribute<unsigned int>(channel, "to");
//
// channelShift = from;
// channelMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
// channelSize = pow(2.0, to - from + 1.0);
// get row:
TiXmlElement* row = addressmap->FirstChildElement("row");
// get row:
XMLElement* row = addressmap->FirstChildElement("row");
row->QueryIntAttribute("from",&from);
row->QueryIntAttribute("to",&to);
from = getAttribute<unsigned int>(row, "from");
to = getAttribute<unsigned int>(row, "to");
rowShift = from;
rowMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
rowSize = pow(2.0, to - from + 1.0);
rowShift = from;
rowMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
rowSize = pow(2.0, to - from + 1.0);
// get bank:
XMLElement* bank = addressmap->FirstChildElement("bank");
// get bank:
TiXmlElement* bank = addressmap->FirstChildElement("bank");
bank->QueryIntAttribute("from",&from);
bank->QueryIntAttribute("to",&to);
from = getAttribute<unsigned int>(bank, "from");
to = getAttribute<unsigned int>(bank, "to");
bankShift = from;
bankMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
bankSize = pow(2.0, to - from + 1.0);
bankShift = from;
bankMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
bankSize = pow(2.0, to - from + 1.0);
// get colum:
XMLElement* colum = addressmap->FirstChildElement("colum");
// get colum:
TiXmlElement* colum = addressmap->FirstChildElement("colum");
colum->QueryIntAttribute("from",&from);
colum->QueryIntAttribute("to",&to);
from = getAttribute<unsigned int>(colum, "from");
to = getAttribute<unsigned int>(colum, "to");
columShift = from;
columMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
columSize = pow(2.0, to - from + 1.0);
columShift = from;
columMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
columSize = pow(2.0, to - from + 1.0);
// get bytes:
// TiXmlElement* bytes = addressmap->FirstChildElement("bytes");
//
// from = getAttribute<unsigned int>(bytes, "from");
// to = getAttribute<unsigned int>(bytes, "to");
// get bytes:
// TiXmlElement* bytes = addressmap->FirstChildElement("bytes");
//
// from = getAttribute<unsigned int>(bytes, "from");
// to = getAttribute<unsigned int>(bytes, "to");
// bytesShift = from;
// bytesMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
// bytesSize = pow(2.0, to - from + 1.0);
// bytesShift = from;
// bytesMask = pow(2.0, to + 1.0) - pow(2.0, from + 0.0);
// bytesSize = pow(2.0, to - from + 1.0);
}
else
{
SC_REPORT_FATAL("xmlAddressDecoder can not find ", addressConfigURI.c_str());
}
}
xmlAddressDecoder::~xmlAddressDecoder()
{
delete doc;
delete doc;
}
void xmlAddressDecoder::getNode(unsigned int addr, node * n)
{
n->channel = 0;
n->row = (addr & rowMask) >> rowShift;
n->bank = (addr & bankMask) >> bankShift;
n->colum = (addr & columMask) >> columShift;
n->channel = 0;
n->row = (addr & rowMask) >> rowShift;
n->bank = (addr & bankMask) >> bankShift;
n->colum = (addr & columMask) >> columShift;
}
void xmlAddressDecoder::getBRC(unsigned int addr, unsigned int &bank, unsigned int &row,
unsigned int &colum)
unsigned int &colum)
{
row = (addr & rowMask) >> rowShift;
bank = (addr & bankMask) >> bankShift;
colum = (addr & columMask) >> columShift;
row = (addr & rowMask) >> rowShift;
bank = (addr & bankMask) >> bankShift;
colum = (addr & columMask) >> columShift;
}
void xmlAddressDecoder::getCBRC(unsigned int addr, unsigned int &channel, unsigned int &bank,
unsigned int &row, unsigned int &colum)
unsigned int &row, unsigned int &colum)
{
channel = (addr & channelMask) >> channelShift;
getBRC(addr, bank, row, colum);
channel = (addr & channelMask) >> channelShift;
getBRC(addr, bank, row, colum);
}
void xmlAddressDecoder::getC(unsigned int addr, unsigned int &channel)
{
channel = (addr & channelMask) >> channelShift;
channel = (addr & channelMask) >> channelShift;
}
unsigned int xmlAddressDecoder::getNumberOfBanks()
{
return bankSize;
return bankSize;
}
unsigned int xmlAddressDecoder::getNumberOfRowsPerBank()
{
return rowSize;
return rowSize;
}
unsigned int xmlAddressDecoder::getNumberOfColumsPerRow()
{
return columSize;
return columSize;
}
unsigned int xmlAddressDecoder::getNumberOfBytesPerColumn()
{
return 1;
return 1;
}