Code cleanup.

This commit is contained in:
Lukas Steiner (2)
2019-07-23 14:30:01 +02:00
parent 0d0c7415b2
commit e7552f6916
3 changed files with 37 additions and 37 deletions

View File

@@ -43,7 +43,7 @@ void BankMachine::startBankMachine()
if (currentState == BmState::Precharged)
{
sc_time delay = checker->delayToSatisfyConstraints(Command::ACT, bank);
controller->triggerEventAfterDelay(delay, "startBankMachine 1");
controller->triggerEventAfterDelay(delay);
nextCommand = Command::ACT;
timeToSchedule = sc_time_stamp() + delay;
}
@@ -55,14 +55,14 @@ void BankMachine::startBankMachine()
if (currentPayload->get_command() == TLM_READ_COMMAND)
{
sc_time delay = checker->delayToSatisfyConstraints(Command::RD, bank);
controller->triggerEventAfterDelay(delay, "startBankMachine 2");
controller->triggerEventAfterDelay(delay);
nextCommand = Command::RD;
timeToSchedule = sc_time_stamp() + delay;
}
else if (currentPayload->get_command() == TLM_WRITE_COMMAND)
{
sc_time delay = checker->delayToSatisfyConstraints(Command::WR, bank);
controller->triggerEventAfterDelay(delay, "startBankMachine 3");
controller->triggerEventAfterDelay(delay);
nextCommand = Command::WR;
timeToSchedule = sc_time_stamp() + delay;
}
@@ -72,7 +72,7 @@ void BankMachine::startBankMachine()
else // row miss
{
sc_time delay = checker->delayToSatisfyConstraints(Command::PRE, bank);
controller->triggerEventAfterDelay(delay, "startBankMachine 4");
controller->triggerEventAfterDelay(delay);
nextCommand = Command::PRE;
timeToSchedule = sc_time_stamp() + delay;
currentRow = extension.getRow();

View File

@@ -60,17 +60,11 @@ tlm_sync_enum ControllerNew::nb_transport_fw(tlm_generic_payload &trans,
printDebugMessage("[fw] " + phaseNameToString(phase) + " notification in " +
notificationDelay.to_string());
triggerEventQueueAfterDelay(notificationDelay, "nb_transport_fw");
triggerEventQueueAfterDelay(notificationDelay);
return TLM_ACCEPTED;
}
unsigned int ControllerNew::transport_dbg(tlm_generic_payload &)
{
SC_REPORT_FATAL("ControllerNew", "Debug Transport not supported");
return 0;
}
tlm_sync_enum ControllerNew::nb_transport_bw(tlm_generic_payload &trans,
tlm_phase &phase, sc_time &delay)
{
@@ -79,10 +73,16 @@ tlm_sync_enum ControllerNew::nb_transport_bw(tlm_generic_payload &trans,
delay.to_string());
Bank bank = DramExtension::getExtension(trans).getBank();
bankMachines[bank]->setCommandFinishedTime(sc_time_stamp() + delay);
triggerEventQueueAfterDelay(delay, "nb_transport_bw");
triggerEventQueueAfterDelay(delay);
return TLM_ACCEPTED;
}
unsigned int ControllerNew::transport_dbg(tlm_generic_payload &)
{
SC_REPORT_FATAL("ControllerNew", "Debug Transport not supported");
return 0;
}
void ControllerNew::printDebugMessage(string message)
{
debugManager->printDebugMessage(name(), message);
@@ -107,7 +107,7 @@ void ControllerNew::recordPhase(tlm_generic_payload &trans, tlm_phase phase, sc_
tlmRecorder->recordPhase(trans, phase, recTime);
}
void ControllerNew::triggerEventAfterDelay(sc_time delay, string sender)
void ControllerNew::triggerEventAfterDelay(sc_time delay)
{
if (delay != SC_ZERO_TIME)
{
@@ -115,7 +115,7 @@ void ControllerNew::triggerEventAfterDelay(sc_time delay, string sender)
}
}
void ControllerNew::triggerEventQueueAfterDelay(sc_time delay, string sender)
void ControllerNew::triggerEventQueueAfterDelay(sc_time delay)
{
if (delay != SC_ZERO_TIME)
{
@@ -125,6 +125,7 @@ void ControllerNew::triggerEventQueueAfterDelay(sc_time delay, string sender)
void ControllerNew::controllerMethod()
{
static sc_time lastTimeCalled = SC_ZERO_TIME;
if (lastTimeCalled != sc_time_stamp())
{
lastTimeCalled = sc_time_stamp();
@@ -175,6 +176,18 @@ void ControllerNew::acquirePayload()
}
}
void ControllerNew::getNextBmStates()
{
for (auto it : bankMachines)
{
tlm_generic_payload *result = it.second->getNextStateAndResult();
if (result != nullptr)
{
responseQueue.push(result);
}
}
}
void ControllerNew::sendToFrontend()
{
if (payloadToRelease == nullptr)
@@ -190,19 +203,6 @@ void ControllerNew::sendToFrontend()
}
}
void ControllerNew::getNextBmStates()
{
for (auto it : bankMachines)
{
tlm_generic_payload *result = it.second->getNextStateAndResult();
if (result != nullptr)
{
responseQueue.push(result);
}
}
}
void ControllerNew::startBankMachines()
{
for (auto it : bankMachines)

View File

@@ -33,8 +33,8 @@ public:
tlm_utils::simple_target_socket<ControllerNew> tSocket;
tlm_utils::simple_initiator_socket<ControllerNew> iSocket;
void triggerEventAfterDelay(sc_time, string);
void triggerEventQueueAfterDelay(sc_time, string);
void triggerEventAfterDelay(sc_time);
void triggerEventQueueAfterDelay(sc_time);
ControllerState *state;
std::map<Bank, BankMachine *> bankMachines;
@@ -47,18 +47,13 @@ public:
private:
tlm_sync_enum nb_transport_fw(tlm_generic_payload &trans,
tlm_phase &phase, sc_time &delay);
unsigned int transport_dbg(tlm_generic_payload &);
tlm_sync_enum nb_transport_bw(tlm_generic_payload &trans,
tlm_phase &phase, sc_time &delay);
unsigned int transport_dbg(tlm_generic_payload &);
void printDebugMessage(string message);
void recordPhase(tlm_generic_payload &trans, tlm_phase phase, sc_time delay);
void releasePayload();
void acquirePayload();
void getNextBmStates();
void sendToFrontend();
void startBankMachines();
unsigned numberOfPayloads = 0;
tlm_generic_payload *payloadToAcquire = nullptr;
sc_time timeToAcquire = SC_ZERO_TIME;
@@ -72,7 +67,12 @@ private:
void controllerMethod();
sc_event triggerEvent;
sc_event_queue triggerEventQueue;
sc_time lastTimeCalled = SC_ZERO_TIME;
void releasePayload();
void acquirePayload();
void getNextBmStates();
void sendToFrontend();
void startBankMachines();
};
#endif // CONTROLLERNEW_H