Port-based, int-only, method-and-update-block-driven, simulation-only pymtl in 200 lines
$ python main_mix_io_oo_ii.py
update_src
update_reg_state_to_out
update_sink
update_reg_state_to_out
update_reg_state_to_out
update_reg_state_to_out
update_reg_in_to_state
update_reg_in_to_state
update_add
update_reg_in_to_state
update_reg_in_to_state
2, 1 >> 0, 0 >> 0, 0
3, 4 >> 1, 2 >> 0, 0
6, 5 >> 3, 4 >> 1, 2
0, 0 >> 5, 6 >> 3, 4
0, 0 >> 0, 0 >> 5, 6
0, 0 >> 0, 0 >> 0, 0
0, 0 >> 0, 0 >> 0, 0
0, 0 >> 0, 0 >> 0, 0
0, 0 >> 0, 0 >> 0, 0
0, 0 >> 0, 0 >> 0, 0