34 lines
675 B
Text
34 lines
675 B
Text
# Adder, two inputs, one output
|
|
adder:Function {
|
|
func = ```
|
|
read('n0_in') + read('n1_in')
|
|
```;
|
|
}
|
|
n0_in:InPort
|
|
n1_in:InPort
|
|
n2_out:OutPort
|
|
:hasInPort (adder -> n0_in)
|
|
:hasInPort (adder -> n1_in)
|
|
:hasOutPort (adder -> n2_out)
|
|
|
|
# Delay block 0
|
|
d0:Delay
|
|
d0_in:InPort
|
|
d0_out:OutPort
|
|
:hasInPort (d0 -> d0_in)
|
|
:hasOutPort (d0 -> d0_out)
|
|
|
|
|
|
# Delay block 1
|
|
d1:Delay
|
|
d1_in:InPort
|
|
d1_out:OutPort
|
|
:hasInPort (d1 -> d1_in)
|
|
:hasOutPort (d1 -> d1_out)
|
|
|
|
|
|
# Connections
|
|
conn0:link (n2_out -> d1_in) # n2 becomes n1 in next step
|
|
conn1:link (d1_out -> d0_in) # n1 becomes n0 in next step
|
|
conn2:link (d1_out -> n1_in) # n1 input to adder
|
|
conn3:link (d0_out -> n0_in) # n0 input to adder
|