Code cleanup.
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user