diff --git a/examples/firstorderiirfilter.py b/examples/firstorderiirfilter.py index 18149472be87992900e10b0d6c352c78f289388e..51de36b9638dffb46f967f83041787a626adfc6d 100644 --- a/examples/firstorderiirfilter.py +++ b/examples/firstorderiirfilter.py @@ -64,10 +64,87 @@ firstorderiir = SFG([input], [output]) firstorderiir # %% +# This will look something like +# +# .. graphviz:: +# +# digraph { +# rankdir=LR +# in1 [shape=cds] +# in1 -> add1 +# out1 [shape=cds] +# add2 -> out1 +# add1 [shape=ellipse] +# cmul1 -> add1 +# cmul1 [shape=ellipse] +# add1 -> t1 +# t1 [shape=square] +# add1 -> add2 +# add2 [shape=ellipse] +# cmul2 -> add2 +# cmul2 [shape=ellipse] +# t1 -> cmul2 +# t1 -> cmul1 +# } +# # For now, we can print the precendence relations of the SFG firstorderiir.print_precedence_graph() # %% +# Executing ``firstorderiir.precedence_graph()`` will show something like +# +# .. graphviz:: +# +# digraph { +# rankdir=LR +# subgraph cluster_0 { +# label=N0 +# "in1.0" [label=in1 height=0.1 shape=rectangle width=0.1] +# "t1.0" [label=t1 height=0.1 shape=rectangle width=0.1] +# } +# subgraph cluster_1 { +# label=N1 +# "cmul2.0" [label=cmul2 height=0.1 shape=rectangle width=0.1] +# "cmul1.0" [label=cmul1 height=0.1 shape=rectangle width=0.1] +# } +# subgraph cluster_2 { +# label=N2 +# "add1.0" [label=add1 height=0.1 shape=rectangle width=0.1] +# } +# subgraph cluster_3 { +# label=N3 +# "add2.0" [label=add2 height=0.1 shape=rectangle width=0.1] +# } +# "in1.0" -> add1 +# add1 [label=add1 shape=ellipse] +# in1 -> "in1.0" +# in1 [label=in1 shape=cds] +# "t1.0" -> cmul2 +# cmul2 [label=cmul2 shape=ellipse] +# "t1.0" -> cmul1 +# cmul1 [label=cmul1 shape=ellipse] +# t1Out -> "t1.0" +# t1Out [label=t1 shape=square] +# "cmul2.0" -> add2 +# add2 [label=add2 shape=ellipse] +# cmul2 -> "cmul2.0" +# cmul2 [label=cmul2 shape=ellipse] +# "cmul1.0" -> add1 +# add1 [label=add1 shape=ellipse] +# cmul1 -> "cmul1.0" +# cmul1 [label=cmul1 shape=ellipse] +# "add1.0" -> t1In +# t1In [label=t1 shape=square] +# "add1.0" -> add2 +# add2 [label=add2 shape=ellipse] +# add1 -> "add1.0" +# add1 [label=add1 shape=ellipse] +# "add2.0" -> out1 +# out1 [label=out1 shape=cds] +# add2 -> "add2.0" +# add2 [label=add2 shape=ellipse] +# } +# # As seen, each operation has an id, in addition to the optional name. This can be used to access the operation. # For example, firstorderiir.find_by_id('cmul1')