Note
Go to the end to download the full example code.
Two-tap FIR filter¶
from b_asic import SFG, Addition, ConstantMultiplication, Delay, Input, Output, Signal
# Inputs:
in0 = Input(name="in_0")
# Outputs:
out0 = Output(name="out0")
# Operations:
t0 = Delay(initial_value=0, name="t0")
cmul0 = ConstantMultiplication(
value=0.5, name="cmul0", latency_offsets={'in0': None, 'out0': None}
)
add0 = Addition(name="add0", latency_offsets={'in0': None, 'in1': None, 'out0': None})
cmul1 = ConstantMultiplication(
value=0.5, name="cmul1", latency_offsets={'in0': None, 'out0': None}
)
# Signals:
Signal(source=t0.output(0), destination=cmul0.input(0))
Signal(source=in0.output(0), destination=t0.input(0))
Signal(source=in0.output(0), destination=cmul1.input(0))
Signal(source=cmul0.output(0), destination=add0.input(0))
Signal(source=add0.output(0), destination=out0.input(0))
Signal(source=cmul1.output(0), destination=add0.input(1))
twotapfir = SFG(inputs=[in0], outputs=[out0], name='twotapfir')
# SFG Properties:
prop = {'name': twotapfir}
positions = {
't0': (-209, 19),
'cmul0': (-95, 76),
'add0': (0, 95),
'cmul1': (-209, 114),
'out0': (76, 95),
'in0': (-323, 19),
}
Total running time of the script: (0 minutes 0.001 seconds)