From 5fa31dce90eee8f7de91c2b350297fe9e315beb0 Mon Sep 17 00:00:00 2001 From: Simon Bjurek <simbj106@student.liu.se> Date: Mon, 24 Mar 2025 13:31:43 +0100 Subject: [PATCH] made ASAPScheduler default if start_times and laps not provided when constructing Schedule --- b_asic/schedule.py | 5 +++++ test/unit/test_schedule.py | 25 ++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/b_asic/schedule.py b/b_asic/schedule.py index 1a70a84a..8fc13eba 100644 --- a/b_asic/schedule.py +++ b/b_asic/schedule.py @@ -111,6 +111,11 @@ class Schedule: if scheduler: self._scheduler = scheduler self._scheduler.apply_scheduling(self) + elif start_times is None and laps is None: + from b_asic.scheduler import ASAPScheduler + + self._scheduler = ASAPScheduler() + self._scheduler.apply_scheduling(self) else: if start_times is None: raise ValueError("Must provide start_times when using 'provided'") diff --git a/test/unit/test_schedule.py b/test/unit/test_schedule.py index 5795dc64..bc2071f6 100644 --- a/test/unit/test_schedule.py +++ b/test/unit/test_schedule.py @@ -856,7 +856,7 @@ class TestErrors: with pytest.raises( ValueError, match="Must provide start_times when using 'provided'" ): - Schedule(sfg_simple_filter) + Schedule(sfg_simple_filter, laps={"test": 0}) def test_provided_no_laps(self, sfg_simple_filter): sfg_simple_filter.set_latency_of_type_name(Addition.type_name(), 1) @@ -866,6 +866,29 @@ class TestErrors: with pytest.raises(ValueError, match="Must provide laps when using 'provided'"): Schedule(sfg_simple_filter, start_times={"in0": 0}) + def test_alap_default(self, sfg_direct_form_iir_lp_filter): + sfg_direct_form_iir_lp_filter.set_latency_of_type_name(Addition.type_name(), 5) + sfg_direct_form_iir_lp_filter.set_latency_of_type_name( + ConstantMultiplication.type_name(), 4 + ) + + schedule = Schedule(sfg_direct_form_iir_lp_filter) + + assert schedule.start_times == { + "in0": 0, + "cmul1": 0, + "cmul4": 0, + "cmul2": 0, + "cmul3": 0, + "add3": 4, + "add1": 4, + "add0": 9, + "cmul0": 14, + "add2": 18, + "out0": 23, + } + assert schedule.schedule_time == 23 + class TestGetUsedTypeNames: def test_secondorder_iir_schedule(self, secondorder_iir_schedule): -- GitLab