From 480ae8adfde010e4182fc6c9f4faddec07e335ca Mon Sep 17 00:00:00 2001 From: Oscar Gustafsson <oscar.gustafsson@gmail.com> Date: Sat, 4 Feb 2023 22:30:37 +0100 Subject: [PATCH] Fix #163 and add documentation --- b_asic/operation.py | 37 ++++-- b_asic/schedule.py | 117 +++++++++++++++--- b_asic/scheduler_gui/main_window.py | 2 +- b_asic/signal_flow_graph.py | 98 +++++++++++---- b_asic/signal_generator.py | 6 + examples/secondorderdirectformiir.py | 2 +- examples/threepointwinograddft.py | 2 +- logo.svg | 6 +- .../test__get_figure_no_execution_times.png | Bin 26263 -> 26401 bytes 9 files changed, 217 insertions(+), 53 deletions(-) diff --git a/b_asic/operation.py b/b_asic/operation.py index 0fe66840..85b3d09c 100644 --- a/b_asic/operation.py +++ b/b_asic/operation.py @@ -240,15 +240,27 @@ class Operation(GraphComponent, SignalSourceProvider): ) -> Number: """ Evaluate the output at the given index of this operation with the given input values. - The *results* parameter will be used to store any results (including intermediate results) - for caching. - The *delays* parameter will be used to get the current value of any intermediate delays - that are encountered, and be updated with their new values. - The *prefix* parameter will be used as a prefix for the key string when storing results/delays. - The *bits_override* parameter specifies a word length override when truncating inputs - which ignores the word length specified by the input signal. - The *truncate* parameter specifies whether input truncation should be enabled in the first - place. If set to False, input values will be used directly without any bit truncation. + + Parameters + ---------- + index : int + Which output to return the value for. + input_values : array of float or complex + The input values. + results : MutableResultMap. optional + Used to store any results (including intermediate results) + for caching. + delays : MutableDelayMap. optional + Used to get the current value of any intermediate delay elements + that are encountered, and be updated with their new values. + prefix : str, optional + Used as a prefix for the key string when storing results/delays. + bits_override ; int, optional + Specifies a word length override when truncating inputs + which ignores the word length specified by the input signal. + truncate : bool, default: True + Specifies whether input truncation should be enabled in the first + place. If set to False, input values will be used directly without any bit truncation. See also ======== @@ -263,7 +275,10 @@ class Operation(GraphComponent, SignalSourceProvider): ) -> Sequence[Optional[Number]]: """ Get all current outputs of this operation, if available. - See current_output for more information. + + See also + ======== + current_output """ raise NotImplementedError @@ -1055,8 +1070,8 @@ class AbstractOperation(Operation, AbstractGraphComponent): def get_io_coordinates( self, ) -> Tuple[List[List[float]], List[List[float]]]: - self._check_all_latencies_set() # Doc-string inherited + self._check_all_latencies_set() input_coords = [ [ self.inputs[k].latency_offset, diff --git a/b_asic/schedule.py b/b_asic/schedule.py index 129ce92b..c74ac5f3 100644 --- a/b_asic/schedule.py +++ b/b_asic/schedule.py @@ -11,6 +11,8 @@ from typing import Dict, List, Optional, Tuple, cast import matplotlib.pyplot as plt import numpy as np +from matplotlib.axes import Axes +from matplotlib.figure import Figure from matplotlib.lines import Line2D from matplotlib.patches import PathPatch, Polygon from matplotlib.path import Path @@ -40,7 +42,20 @@ _SIGNAL_COLOR = tuple(c / 255 for c in SIGNAL_COLOR) class Schedule: - """Schedule of an SFG with scheduled Operations.""" + """ + Schedule of an SFG with scheduled Operations. + + Parameters + ---------- + sfg : SFG + The signal flow graph to schedule. + schedule_time : int, optional + The schedule time. If not provided, it will be determined by the scheduling algorithm. + cyclic : bool, default: False + If the schedule is cyclic. + scheduling_alg : {'ASAP'}, optional + The scheduling algorithm to use. Currently, only "ASAP" is supported. + """ _sfg: SFG _start_times: Dict[GraphID, int] @@ -82,7 +97,7 @@ class Schedule: def start_time_of_operation(self, graph_id: GraphID) -> int: """ - Get the start time of the operation with the specified by *graph_id*. + Return the start time of the operation with the specified by *graph_id*. """ if graph_id not in self._start_times: raise ValueError( @@ -91,7 +106,7 @@ class Schedule: return self._start_times[graph_id] def get_max_end_time(self) -> int: - """Returns the current maximum end time among all operations.""" + """Return the current maximum end time among all operations.""" max_end_time = 0 for graph_id, op_start_time in self._start_times.items(): op = cast(Operation, self._sfg.find_by_id(graph_id)) @@ -103,6 +118,16 @@ class Schedule: return max_end_time def forward_slack(self, graph_id: GraphID) -> int: + """ + + Parameters + ---------- + graph_id + + Returns + ------- + The number of time steps the operation with *graph_id* can ba moved forward in time. + """ if graph_id not in self._start_times: raise ValueError( f"No operation with graph_id {graph_id} in schedule" @@ -137,6 +162,16 @@ class Schedule: return ret def backward_slack(self, graph_id: GraphID) -> int: + """ + + Parameters + ---------- + graph_id + + Returns + ------- + The number of time steps the operation with *graph_id* can ba moved backward in time. + """ if graph_id not in self._start_times: raise ValueError( f"No operation with graph_id {graph_id} in schedule" @@ -181,6 +216,18 @@ class Schedule: raise NotImplementedError def set_schedule_time(self, time: int) -> "Schedule": + """ + Set a new schedule time. + + Parameters + ---------- + time : int + The new schedule time. If it is too short, a ValueError will be raised. + + See also + -------- + get_max_time + """ if time < self.get_max_end_time(): raise ValueError( "New schedule time ({time})to short, minimum:" @@ -359,6 +406,7 @@ class Schedule: delay_list = self._sfg.find_by_type_name(Delay.type_name()) def _schedule_asap(self) -> None: + """Schedule the operations using as-soon-as-possible scheduling.""" pl = self._sfg.get_precedence_list() if len(pl) < 2: @@ -479,9 +527,11 @@ class Schedule: return operation_gap + y_location * (operation_height + operation_gap) def _plot_schedule(self, ax, operation_gap=None): + """Draw the schedule.""" line_cache = [] def _draw_arrow(start, end, name="", laps=0): + """Draw an arrow from *start* to *end*.""" if end[0] < start[0] or laps > 0: # Wrap around if start not in line_cache: line = Line2D( @@ -564,6 +614,7 @@ class Schedule: def _draw_offset_arrow( start, end, start_offset, end_offset, name="", laps=0 ): + """Draw an arrow from *start* to *end*, but with an offset.""" _draw_arrow( [start[0] + start_offset[0], start[1] + start_offset[1]], [end[0] + end_offset[0], end[1] + end_offset[1]], @@ -576,7 +627,7 @@ class Schedule: ax.set_axisbelow(True) ax.grid() for graph_id, op_start_time in self._start_times.items(): - ypos = -self._get_y_position(graph_id, operation_gap=operation_gap) + ypos = self._get_y_position(graph_id, operation_gap=operation_gap) op = self._sfg.find_by_id(graph_id) # Rewrite to make better use of NumPy latency_coords, execution_time_coords = op.get_plot_coordinates() @@ -602,7 +653,7 @@ class Schedule: for graph_id, op_start_time in self._start_times.items(): op = self._sfg.find_by_id(graph_id) _, out_coords = op.get_io_coordinates() - source_ypos = -self._get_y_position( + source_ypos = self._get_y_position( graph_id, operation_gap=operation_gap ) @@ -610,7 +661,7 @@ class Schedule: for output_signal in output_port.signals: dest_op = output_signal.destination.operation dest_start_time = self._start_times[dest_op.graph_id] - dest_ypos = -self._get_y_position( + dest_ypos = self._get_y_position( dest_op.graph_id, operation_gap=operation_gap ) ( @@ -633,35 +684,73 @@ class Schedule: # Get operation with maximum position max_pos_graph_id = max(self._y_locations, key=self._y_locations.get) - yposmin = -self._get_y_position( - max_pos_graph_id, operation_gap=operation_gap - ) - (OPERATION_GAP if operation_gap is None else operation_gap) - ax.axis([-1, self._schedule_time + 1, yposmin, 1]) + yposmax = ( + self._get_y_position(max_pos_graph_id, operation_gap=operation_gap) + + 1 + + (OPERATION_GAP if operation_gap is None else operation_gap) + ) + ax.axis([-1, self._schedule_time + 1, yposmax, 0]) # Inverted y-axis ax.xaxis.set_major_locator(MaxNLocator(integer=True)) ax.add_line( - Line2D([0, 0], [yposmin, 1], linestyle="--", color="black") + Line2D([0, 0], [0, yposmax], linestyle="--", color="black") ) ax.add_line( Line2D( [self._schedule_time, self._schedule_time], - [yposmin, 1], + [0, yposmax], linestyle="--", color="black", ) ) def _reset_y_locations(self): + """Reset all the y-locations in the schedule to None""" self._y_locations = self._y_locations = defaultdict(lambda: None) - def plot_schedule(self, operation_gap=None) -> None: + def plot_in_axes(self, ax: Axes, operation_gap: float = None) -> None: + """ + Plot the schedule in a :class:`matplotlib.axes.Axes` or subclass. + + Parameters + ---------- + ax : matplotlib.axes.Axes + The :class:`matplotlib.axes.Axes` to plot in. + operation_gap : float, optional + The vertical distance between operations in the schedule. The height of the operation is always 1. + """ + + def plot(self, operation_gap: float = None) -> None: + """ + Plot the schedule. Will display based on the current Matplotlib backend. + + Parameters + ---------- + operation_gap : float, optional + The vertical distance between operations in the schedule. The height of the operation is always 1. + """ self._get_figure(operation_gap=operation_gap).show() - def _get_figure(self, operation_gap=None) -> None: + def _get_figure(self, operation_gap: float = None) -> Figure: + """ + Create a Figure and an Axes and plot schedule in the Axes. + + Parameters + ---------- + operation_gap : float, optional + The vertical distance between operations in the schedule. The height of the operation is always 1. + + Returns + ------- + The Matplotlib Figure. + """ fig, ax = plt.subplots() self._plot_schedule(ax, operation_gap=operation_gap) return fig def _repr_svg_(self): + """ + Generate an SVG of the schedule. This is automatically displayed in e.g. Jupyter Qt console. + """ fig, ax = plt.subplots() self._plot_schedule(ax) f = io.StringIO() diff --git a/b_asic/scheduler_gui/main_window.py b/b_asic/scheduler_gui/main_window.py index 41b59263..cdea2fb8 100644 --- a/b_asic/scheduler_gui/main_window.py +++ b/b_asic/scheduler_gui/main_window.py @@ -170,7 +170,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): # TODO: remove if self.schedule is None: return - self.schedule.plot_schedule() + self.schedule.plot() if self._graph is not None: print(f"filtersChildEvents(): {self._graph.filtersChildEvents()}") # self._printButtonPressed('callback_pushButton()') diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py index 5a42494b..af39c978 100644 --- a/b_asic/signal_flow_graph.py +++ b/b_asic/signal_flow_graph.py @@ -78,10 +78,37 @@ class GraphIDGenerator: class SFG(AbstractOperation): """ - Signal flow graph. + Construct an SFG given its inputs and outputs. Contains a set of connected operations, forming a new operation. Used as a base for simulation, scheduling, etc. + + Inputs/outputs may be specified using either Input/Output operations + directly with the *inputs*/*outputs* parameters, or using signals with the + *input_signals*/*output_signals parameters*. If signals are used, the + corresponding Input/Output operations will be created automatically. + + The *id_number_offset* parameter specifies what number graph IDs will be + offset by for each new graph component type. IDs start at 1 by default, + so the default offset of 0 will result in IDs like "c1", "c2", etc. + while an offset of 3 will result in "c4", "c5", etc. + + Parameters + ---------- + inputs : array of Input, optional + + outputs : array of Output, optional + + input_signals : array of Signal, optional + + output_signals : array of Signal, optional + + id_number_offset : GraphIDNumber, optional + + name : Name, optional + + input_sources : + """ _components_by_id: Dict[GraphID, GraphComponent] @@ -110,20 +137,6 @@ class SFG(AbstractOperation): Sequence[Optional[SignalSourceProvider]] ] = None, ): - """ - Construct an SFG given its inputs and outputs. - - Inputs/outputs may be specified using either Input/Output operations - directly with the inputs/outputs parameters, or using signals with the - input_signals/output_signals parameters. If signals are used, the - corresponding Input/Output operations will be created automatically. - - The id_number_offset parameter specifies what number graph IDs will be - offset by for each new graph component type. IDs start at 1 by default, - so the default offset of 0 will result in IDs like "c1", "c2", etc. - while an offset of 3 will result in "c4", "c5", etc. - """ - input_signal_count = 0 if input_signals is None else len(input_signals) input_operation_count = 0 if inputs is None else len(inputs) output_signal_count = ( @@ -311,7 +324,7 @@ class SFG(AbstractOperation): ) def __str__(self) -> str: - """Get a string representation of this SFG.""" + """Return a string representation of this SFG.""" string_io = StringIO() string_io.write(super().__str__() + "\n") string_io.write("Internal Operations:\n") @@ -329,7 +342,7 @@ class SFG(AbstractOperation): self, *src: Optional[SignalSourceProvider], name: Name = Name("") ) -> "SFG": """ - Get a new independent SFG instance that is identical to this SFG + Return a new independent SFG instance that is identical to this SFG except without any of its external connections. """ return SFG( @@ -342,6 +355,7 @@ class SFG(AbstractOperation): @classmethod def type_name(cls) -> TypeName: + # doc-string inherited. return TypeName("sfg") def evaluate(self, *args): @@ -359,6 +373,7 @@ class SFG(AbstractOperation): bits_override: Optional[int] = None, truncate: bool = True, ) -> Number: + # doc-string inherited if index < 0 or index >= self.output_count: raise IndexError( "Output index out of range (expected" @@ -476,6 +491,18 @@ class SFG(AbstractOperation): return self def inputs_required_for_output(self, output_index: int) -> Iterable[int]: + """ + Return which inputs that the output depends on. + + Parameters + ---------- + output_index : int + The output index. + + Returns + ------- + A list of inputs that are required to compute the output with the given *output_index*. + """ if output_index < 0 or output_index >= self.output_count: raise IndexError( "Output index out of range (expected" @@ -521,7 +548,8 @@ class SFG(AbstractOperation): @property def id_number_offset(self) -> GraphIDNumber: - """Get the graph id number offset of the graph id generator for this SFG. + """ + Get the graph id number offset of the graph id generator for this SFG. """ return self._graph_id_generator.id_number_offset @@ -763,7 +791,7 @@ class SFG(AbstractOperation): return self._precedence_list - def show_precedence_graph(self) -> None: + def show(self) -> None: self.precedence_graph().view() def precedence_graph(self) -> Digraph: @@ -952,14 +980,32 @@ class SFG(AbstractOperation): return self._operations_topological_order def set_latency_of_type(self, type_name: TypeName, latency: int) -> None: - """Set the latency of all components with the given type name.""" + """ + Set the latency of all components with the given type name. + + Parameters + ---------- + type_name : TypeName + The type name of the operation. For example, obtained as ``Addition.type_name()``. + latency : int + The latency of the operation. + + """ for op in self.find_by_type_name(type_name): cast(Operation, op).set_latency(latency) def set_execution_time_of_type( self, type_name: TypeName, execution_time: int ) -> None: - """Set the execution time of all components with the given type name. + """ + Set the execution time of all operations with the given type name. + + Parameters + ---------- + type_name : TypeName + The type name of the operation. For example, obtained as ``Addition.type_name()``. + execution_time : int + The execution time of the operation. """ for op in self.find_by_type_name(type_name): cast(Operation, op).execution_time = execution_time @@ -967,7 +1013,15 @@ class SFG(AbstractOperation): def set_latency_offsets_of_type( self, type_name: TypeName, latency_offsets: Dict[str, int] ) -> None: - """Set the latency offset of all components with the given type name. + """ + Set the latency offsets of all operations with the given type name. + + Parameters + ---------- + type_name : TypeName + The type name of the operation. For example, obtained as ``Addition.type_name()``. + latency_offsets : {"in1": int, ...} + The latency offsets of the inputs and outputs. """ for op in self.find_by_type_name(type_name): cast(Operation, op).set_latency_offsets(latency_offsets) diff --git a/b_asic/signal_generator.py b/b_asic/signal_generator.py index 466e1f1e..be4543eb 100644 --- a/b_asic/signal_generator.py +++ b/b_asic/signal_generator.py @@ -10,6 +10,12 @@ from typing import Callable, Sequence class SignalGenerator: + """ + Base class for signal generators. + + Handles operator overloading and defined the ``__call__`` method that should be overridden. + """ + def __call__(self, time: int) -> complex: raise NotImplementedError diff --git a/examples/secondorderdirectformiir.py b/examples/secondorderdirectformiir.py index 2f2536cf..f6aefffe 100644 --- a/examples/secondorderdirectformiir.py +++ b/examples/secondorderdirectformiir.py @@ -42,4 +42,4 @@ sfg.set_execution_time_of_type(Addition.type_name(), 1) # Create schedule schedule = Schedule(sfg, cyclic=True) -schedule.plot_schedule() +schedule.plot() diff --git a/examples/threepointwinograddft.py b/examples/threepointwinograddft.py index 2d661467..7e1fd537 100644 --- a/examples/threepointwinograddft.py +++ b/examples/threepointwinograddft.py @@ -53,4 +53,4 @@ sfg.set_execution_time_of_type(Subtraction.type_name(), 1) # %% # Generate schedule schedule = Schedule(sfg, cyclic=True) -schedule.plot_schedule() +schedule.plot() diff --git a/logo.svg b/logo.svg index 1133f650..6d43369e 100644 --- a/logo.svg +++ b/logo.svg @@ -10,8 +10,8 @@ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" sodipodi:docname="logo.svg" inkscape:export-filename="icon_logo.png" - inkscape:export-xdpi="5.3303123" - inkscape:export-ydpi="5.3303123" + inkscape:export-xdpi="5.1594224" + inkscape:export-ydpi="5.1594224" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -28,7 +28,7 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.4204826" - inkscape:cx="1055.9295" + inkscape:cx="511.31723" inkscape:cy="709.89857" inkscape:window-width="1200" inkscape:window-height="1896" diff --git a/test/baseline/test__get_figure_no_execution_times.png b/test/baseline/test__get_figure_no_execution_times.png index b68cadd183a9638a0596a4a58dd3b331d58e2332..329b3064a06dd922b83dfaa873fd8da2bc9021d6 100644 GIT binary patch literal 26401 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ℜ=&35?+>7-p`g*M@8*8YFbnb-!# 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 QY8r}(@wWAM46S|t32ohS=>Px# literal 26263 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%0AyXi^VW0|VEF>9A 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 -- GitLab