Merge remote branch 'upstream/master'

This commit is contained in:
Felipe Salerno Prado
2016-06-20 19:46:49 +02:00
2 changed files with 11 additions and 1 deletions

View File

@@ -104,12 +104,12 @@ public:
tlm_utils::simple_initiator_socket<Controller, BUSWIDTH, tlm::tlm_base_protocol_types> iSocket;
tlm_utils::simple_target_socket<Controller, BUSWIDTH, tlm::tlm_base_protocol_types> tSocket;
unsigned int getTotalNumberOfPayloadsInSystem();
private:
void buildScheduler();
void payloadEntersSystem(tlm_generic_payload& payload);
void payloadLeavesSystem(tlm_generic_payload& payload);
unsigned int getTotalNumberOfPayloadsInSystem();
void scheduleNextFromScheduler(Bank bank);
// --- FRONTEND ------

View File

@@ -221,6 +221,16 @@ void inline Simulation::tracePlayerTerminates()
void Simulation::stop()
{
wait(terminateSimulation);
unsigned int pending_payloads = 0;
do {
pending_payloads = 0;
for (auto controller : controllers) {
pending_payloads += controller->getTotalNumberOfPayloadsInSystem();
}
wait(sc_time(200, SC_NS));
} while(pending_payloads != 0);
report("\nTerminating simulation");
for (auto controller : controllers) {
controller->terminateSimulation();