Skip to content

Fix unfolding

from b_asic.sfg_generators import direct_form_fir

# Works, the test example, more or less
sfg = direct_form_fir([0.4, 0.3])
sfg.unfold(2)

# Does not work
sfg = direct_form_fir([0.4, 0.3, 0.2])
sfg.unfold(2)

leads to

Traceback (most recent call last):

  Cell In[26], line 1
    sfg.unfold(2)

  File /git/B-ASIC/b_asic/signal_flow_graph.py:1536 in unfold
    return SFG(inputs=all_inputs, outputs=all_outputs)

  File /git/B-ASIC/b_asic/signal_flow_graph.py:264 in __init__
    self._add_operation_connected_tree_copy(

  File /git/B-ASIC/b_asic/signal_flow_graph.py:1067 in _add_operation_connected_tree_copy
    raise ValueError("Unconnected input port in SFG")

ValueError: Unconnected input port in SFG

A guess is that it is related to several delay elements in sequence as

from b_asic.sfg_generators import transposed_direct_form_fir

sfg = transposed_direct_form_fir([0.4, 0.3, 0.2])
sfg.unfold(2)

works

Edited by Oscar Gustafsson