Skip to content
Snippets Groups Projects
Commit 39038a00 authored by Oscar Gustafsson's avatar Oscar Gustafsson :bicyclist:
Browse files

Update example

parent 0237b882
Branches
Tags
1 merge request!386Assign argument to resources
Pipeline #97430 passed
...@@ -5,9 +5,13 @@ Third-order Bireciprocal LWDF ...@@ -5,9 +5,13 @@ Third-order Bireciprocal LWDF
Small bireciprocal lattice wave digital filter. Small bireciprocal lattice wave digital filter.
""" """
import numpy as np
from mplsignal.freq_plots import freqz_fir
from b_asic.core_operations import Addition, SymmetricTwoportAdaptor from b_asic.core_operations import Addition, SymmetricTwoportAdaptor
from b_asic.schedule import Schedule from b_asic.schedule import Schedule
from b_asic.signal_flow_graph import SFG from b_asic.signal_flow_graph import SFG
from b_asic.signal_generator import Impulse
from b_asic.simulation import Simulation from b_asic.simulation import Simulation
from b_asic.special_operations import Delay, Input, Output from b_asic.special_operations import Delay, Input, Output
...@@ -21,19 +25,28 @@ a = s.output(0) + D0 ...@@ -21,19 +25,28 @@ a = s.output(0) + D0
out0 = Output(a, "y") out0 = Output(a, "y")
sfg = SFG(inputs=[in0], outputs=[out0], name="Third-order BLWDF") sfg = SFG(inputs=[in0], outputs=[out0], name="Third-order BLWDF")
# %%
# The SFG looks like
sfg
# Set latencies and exection times # %%
# Set latencies and execution times
sfg.set_latency_of_type(SymmetricTwoportAdaptor.type_name(), 4) sfg.set_latency_of_type(SymmetricTwoportAdaptor.type_name(), 4)
sfg.set_latency_of_type(Addition.type_name(), 1) sfg.set_latency_of_type(Addition.type_name(), 1)
sfg.set_execution_time_of_type(SymmetricTwoportAdaptor.type_name(), 1) sfg.set_execution_time_of_type(SymmetricTwoportAdaptor.type_name(), 1)
sfg.set_execution_time_of_type(Addition.type_name(), 1) sfg.set_execution_time_of_type(Addition.type_name(), 1)
sim = Simulation(sfg, [lambda n: 0 if n else 1]) # %%
# Simulate
sim = Simulation(sfg, [Impulse()])
sim.run_for(1000) sim.run_for(1000)
import numpy as np
from mplsignal.freq_plots import freqz_fir
# %%
# Display output
freqz_fir(np.array(sim.results['0']) / 2) freqz_fir(np.array(sim.results['0']) / 2)
# %%
# Create and display schedule
schedule = Schedule(sfg, cyclic=True) schedule = Schedule(sfg, cyclic=True)
schedule.show()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment