diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py index 79f3e5d6353676a22eca4bccb200b9db752037a8..fd23fda2bff80bd989da2c8edfba437f2d679636 100644 --- a/b_asic/signal_flow_graph.py +++ b/b_asic/signal_flow_graph.py @@ -66,6 +66,7 @@ class SFG(AbstractOperation): self._added_components_mapping = {} self._original_input_signals_indexes = {} self._original_output_signals_indexes = {} + self._id_number_offset = id_number_offset # Setup input signals. for input_index, sig in enumerate(input_signals): @@ -207,6 +208,13 @@ class SFG(AbstractOperation): """ return self._components_by_name.get(name, []) + def deep_copy(self) -> "SFG": + """Returns a deep copy of self.""" + copy = SFG(inputs=self._input_operations, + outputs=self._output_operations, id_number_offset=self._id_number_offset, name=super().name) + + return copy + def _add_component_copy_unconnected(self, original_comp: GraphComponent) -> GraphComponent: assert original_comp not in self._added_components_mapping, "Tried to add duplicate SFG component"