Fibonacci_complex.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/python3
  2. # This file was automatically generated from drawio2cbd with the command:
  3. # /home/red/git/DrawioConvert/__main__.py Fibonacci.xml -F CBD -e FibonacciGen -gvaf
  4. from CBD.CBD import *
  5. from CBD.lib.std import *
  6. from CBD.lib.endpoints import SignalCollectorBlock
  7. class InitialConditions(CBD):
  8. def __init__(self, block_name):
  9. super().__init__(block_name, input_ports=[], output_ports=['OUT1', 'OUT3', 'OUT2'])
  10. # Create the Blocks
  11. self.addBlock(ConstantBlock("two", value=(2.0)))
  12. self.addBlock(ConstantBlock("one", value=(1.0)))
  13. self.addBlock(AdderBlock("sum1"))
  14. self.addBlock(AdderBlock("sum2"))
  15. self.addBlock(NegatorBlock("neg1"))
  16. self.addBlock(NegatorBlock("neg2"))
  17. self.addBlock(RootBlock("root"))
  18. # Create the Connections
  19. self.addConnection("two", "sum1", output_port_name='OUT1', input_port_name='IN1')
  20. self.addConnection("two", "root", output_port_name='OUT1', input_port_name='IN2')
  21. self.addConnection("sum1", "sum2", output_port_name='OUT1', input_port_name='IN1')
  22. self.addConnection("sum1", "neg1", output_port_name='OUT1', input_port_name='IN1')
  23. self.addConnection("sum1", "OUT1", output_port_name='OUT1')
  24. self.addConnection("one", "neg2", output_port_name='OUT1', input_port_name='IN1')
  25. self.addConnection("one", "root", output_port_name='OUT1', input_port_name='IN1')
  26. self.addConnection("neg2", "sum2", output_port_name='OUT1', input_port_name='IN2')
  27. self.addConnection("neg1", "sum1", output_port_name='OUT1', input_port_name='IN2')
  28. self.addConnection("root", "OUT3", output_port_name='OUT1')
  29. self.addConnection("sum2", "OUT2", output_port_name='OUT1')
  30. class FibonacciGen2(CBD):
  31. def __init__(self, block_name):
  32. super().__init__(block_name, input_ports=[], output_ports=[])
  33. # Create the Blocks
  34. self.addBlock(InitialConditions("ic"))
  35. self.addBlock(DelayBlock("D1"))
  36. self.addBlock(DelayBlock("D2"))
  37. self.addBlock(DelayBlock("D3"))
  38. self.addBlock(AdderBlock("sum"))
  39. self.addBlock(SignalCollectorBlock("collector"))
  40. # Create the Connections
  41. self.addConnection("ic", "D3", output_port_name='OUT3', input_port_name='IC')
  42. self.addConnection("ic", "D2", output_port_name='OUT2', input_port_name='IC')
  43. self.addConnection("ic", "D1", output_port_name='OUT1', input_port_name='IC')
  44. self.addConnection("D2", "sum", output_port_name='OUT1', input_port_name='IN2')
  45. self.addConnection("D1", "sum", output_port_name='OUT1', input_port_name='IN1')
  46. self.addConnection("D1", "D2", output_port_name='OUT1', input_port_name='IN1')
  47. self.addConnection("sum", "D3", output_port_name='OUT1', input_port_name='IN1')
  48. self.addConnection("sum", "D1", output_port_name='OUT1', input_port_name='IN1')
  49. self.addConnection("D3", "collector", output_port_name='OUT1', input_port_name='IN1')