Skip to content
Snippets Groups Projects

Add cyclic scheduling and improve resource

Merged Simon Bjurek requested to merge improve-resource-constraint into master
4 files
+ 100
59
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 10
9
@@ -120,8 +120,6 @@ class Schedule:
max_end_time = self.get_max_end_time()
if not self._schedule_time:
self._schedule_time = max_end_time
elif self._schedule_time < max_end_time:
raise ValueError(f"Too short schedule time. Minimum is {max_end_time}.")
def __str__(self) -> str:
"""Return a string representation of this Schedule."""
@@ -306,13 +304,16 @@ class Schedule:
usage_time = start_time + cast(int, input_port.latency_offset)
for signal in input_port.signals:
source = cast(OutputPort, signal.source)
available_time = (
cast(int, source.latency_offset)
+ self._start_times[source.operation.graph_id]
- self._schedule_time * self._laps[signal.graph_id]
)
if available_time > self._schedule_time:
available_time -= self._schedule_time
if source.operation.graph_id.startswith("dontcare"):
available_time = 0
else:
available_time = (
cast(int, source.latency_offset)
+ self._start_times[source.operation.graph_id]
- self._schedule_time * self._laps[signal.graph_id]
)
if available_time > self._schedule_time:
available_time -= self._schedule_time
input_slacks[signal] = usage_time - available_time
return input_slacks
Loading