|
|
@@ -518,7 +518,6 @@ class Simulator:
|
|
|
# TODO: Must be set to "every time" instead.
|
|
|
if curIt < 2 or self.__sim_data[0] is None:
|
|
|
self.__sim_data[0] = createDepGraph(self.model, curIt)
|
|
|
- # self.__sim_data[1] = self.__sim_data[0].getStrongComponents(curIt)
|
|
|
self.__sim_data[1] = self.__scheduler.obtain(self.__sim_data[0], curIt, self.getTime())
|
|
|
self.__computeBlocks(self.__sim_data[1], self.__sim_data[0], self.__sim_data[2])
|
|
|
self.__sim_data[2] += 1
|
|
|
@@ -527,10 +526,12 @@ class Simulator:
|
|
|
if not event.fired and self.__stel.detect_signal(event.output_name, event.level, event.direction):
|
|
|
event.fired = True
|
|
|
t = self.__stel.run(event.output_name, event.level, event.direction)
|
|
|
- event.event(t, self.model)
|
|
|
|
|
|
# Reset the model
|
|
|
self.model._rewind()
|
|
|
+ event.event(t, self.model)
|
|
|
+
|
|
|
+ # reset to allow for new IC computation
|
|
|
self.model.clearSignals()
|
|
|
self.model.getClock().setStartTime(t)
|
|
|
self.__sim_data[0] = None
|
|
|
@@ -590,7 +591,6 @@ class Simulator:
|
|
|
self.__finish()
|
|
|
break
|
|
|
|
|
|
- # self._update_clock()
|
|
|
self._do_single_step()
|
|
|
|
|
|
if self.__threading_backend_subsystem == Platform.GLA:
|
|
|
@@ -638,11 +638,8 @@ class Simulator:
|
|
|
assert len(component) >= 1, "A component should have at least one element"
|
|
|
if len(component) > 1:
|
|
|
return True
|
|
|
- else: # a strong component of size one may still have a cycle: a self-loop
|
|
|
- if depGraph.hasDependency(component[0], component[0]):
|
|
|
- return True
|
|
|
- else:
|
|
|
- return False
|
|
|
+ # a strong component of size one may still have a cycle: a self-loop
|
|
|
+ return depGraph.hasDependency(component[0], component[0])
|
|
|
|
|
|
def __progress_update(self):
|
|
|
"""
|