CCZ-injected AND

Three resource Ports receive a joint CCZ state from the caller. Multiplex data controls, selective caps, and conditional feedback produce the temporary AND output for later carry logic.

Block graph

BLOG source

BLOG 1.0

module main {
  in ccz_2: ccz = 10
  in ccz_0: ccz = 14
  in ccz_1: ccz = 15
  in q: data = 9
  in i_k: data = 37
  out qi_k: data = 27

  0: ZXZ [0, 0, 0]
  1: XXZ [1, 0, 0]
  2: ZXZ [2, 0, 0]
  3: ZXZ [3, 0, 0]
  4: ZXZ [4, 0, 0]
  5: ZXX [4, 0, 1]
  6: ZZX [4, 1, 1]
  7: ZXX [4, 2, 1]
  8: ZXZ [4, 2, 0]
  9: Port [5, 2, 0] role=multiplex <q>
  10: Port [-1, 0, 0] role=input <CCZ_2>
  11: XZZ [1, 1, 0]
  12: XZZ [1, 1, 1]
  13: XZ [1, 1, 2] <fix2_0>
  14: Port [-1, 2, 0] role=input <CCZ_0>
  15: Port [-1, 1, 0] role=input <CCZ_1>
  16: ZXZ [0, 2, 0]
  17: ZXZ [1, 2, 0]
  18: XXZ [2, 2, 0]
  19: XXZ [3, 2, 0]
  20: XXZ [3, 1, 0]
  21: ZXZ [0, 1, 0]
  22: XZZ [0, 1, 1]
  23: ZXZ [1, 2, 1]
  24: XXZ [0, 2, 1]
  25: XXZ [2, 2, 1]
  26: ZXZ [3, 2, 1]
  27: Port [0, 1, 2] <qi_k>
  28: XXZ [0, 0, 1]
  29: XXZ [1, 0, 1]
  30: ZXZ [2, 0, 1]
  31: XZ [2, 0, 2] <fix2_1>
  32: XZ [3, 2, 2] <fix1_1>
  33: XZZ [2, 1, 1]
  34: XZZ [2, 1, 0]
  35: XZ [2, 1, 2] <fix1_0>
  36: ZXZ [4, 1, 0]
  37: Port [5, 1, 0] role=multiplex <i_k>
  0 -> +X
  0 -> -X
  1 -> +X
  1 -> +Y
  2 -> +X
  3 -> +X
  4 -> +Z
  5 -> +Y
  6 -> +Y
  7 -> -Z
  8 -> +X
  11 -> +Z
  12 -> +Z
  14 -> +X
  15 -> +X
  16 -> +X
  17 -> +X
  18 -> +X
  18 -> -Y
  19 -> -Y
  20 -> +X
  21 -H> +Z
  22 -> +Y
  22 -> +Z
  22 -> -Y
  23 -> +X
  24 -> +X
  25 -> +X
  25 -> -Y
  26 -> +Z
  28 -> +X
  29 -> +Y
  29 -> +X
  30 -> +Z
  33 -> -Z
  33 -> +Z
  36 -> +X

  m1 = measure 0
  m2 = measure 16
  resolve 32 if m1
  resolve 35 if !m1
  resolve 13 if !m2
  resolve 31 if m2
  feedback X 27 if m1 & m2

}

See BLOG Format for the syntax or return to all examples.