Add the number of bytes per column access to the traceplayer
This commit is contained in:
@@ -72,14 +72,14 @@ public:
|
||||
unsigned long long parsedAdress = std::stoull(address.c_str(), 0, 16);
|
||||
|
||||
gp* payload = this->allocatePayload();
|
||||
unsigned char * dataElement = new unsigned char[16*2]; // TODO: column / burst breite
|
||||
unsigned char * dataElement = new unsigned char[bytesPerColumn*burstlength];
|
||||
|
||||
payload->set_address(parsedAdress);
|
||||
payload->set_response_status(TLM_INCOMPLETE_RESPONSE);
|
||||
payload->set_dmi_allowed(false);
|
||||
payload->set_byte_enable_length(0);
|
||||
payload->set_streaming_width(burstlenght);
|
||||
this->setDataPointer(payload, dataElement);
|
||||
payload->set_streaming_width(burstlength);
|
||||
this->setDataPointer(payload, dataElement, bytesPerColumn*burstlength);
|
||||
|
||||
if (command == "read")
|
||||
{
|
||||
@@ -127,7 +127,8 @@ public:
|
||||
|
||||
private:
|
||||
ifstream file;
|
||||
unsigned int burstlenght;
|
||||
unsigned int burstlength;
|
||||
unsigned int bytesPerColumn;
|
||||
sc_time clk;
|
||||
};
|
||||
|
||||
@@ -145,7 +146,8 @@ StlPlayer<BUSWIDTH>::StlPlayer(sc_module_name /*name*/, string pathToTrace, unsi
|
||||
else
|
||||
clk = FrequencyToClk(clkMhz);
|
||||
|
||||
this->burstlenght = Configuration::getInstance().memSpec.BurstLength;
|
||||
this->burstlength = Configuration::getInstance().memSpec.BurstLength;
|
||||
this->bytesPerColumn = xmlAddressDecoder::getInstance().amount["bytes"];
|
||||
}
|
||||
|
||||
#endif // STLPLAYER_H
|
||||
|
||||
@@ -67,7 +67,7 @@ protected:
|
||||
gp* allocatePayload();
|
||||
tlm_utils::peq_with_cb_and_phase<TracePlayer> payloadEventQueue;
|
||||
void terminate();
|
||||
void setDataPointer(gp* p, unsigned char * data);
|
||||
void setDataPointer(gp* p, unsigned char * data, unsigned int size);
|
||||
void printDebugMessage(std::string message);
|
||||
|
||||
private:
|
||||
@@ -108,12 +108,12 @@ void TracePlayer<BUSWIDTH>::printDebugMessage(std::string message)
|
||||
|
||||
template<unsigned int BUSWIDTH>
|
||||
//TODO: this doesn't depend on the tracePlayer, move it somewhere
|
||||
void TracePlayer<BUSWIDTH>::setDataPointer(gp* payload, unsigned char * dataElement)
|
||||
void TracePlayer<BUSWIDTH>::setDataPointer(gp* payload, unsigned char * dataElement, unsigned int size)
|
||||
{
|
||||
//check if payload takes ownership
|
||||
payload->set_data_length(16*2); // TODO: column / burst breite ..... buswidth * burst /8
|
||||
payload->set_data_length(size);
|
||||
payload->set_data_ptr(dataElement);
|
||||
for(int i = 0; i < 16*2; i++) // TODO: column / burst breite
|
||||
for(int i = 0; i < size; i++)
|
||||
dataElement[i] = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user