Merge remote branch 'upstream/master'
This commit is contained in:
@@ -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 ------
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user