diff --git "a/routing/routing.json" "b/routing/routing.json" --- "a/routing/routing.json" +++ "b/routing/routing.json" @@ -1161,3783 +1161,11498 @@ "p[3]": "fa0.carry_or" } }, - "arithmetic.div8bit": { + "arithmetic.multiplier8x8": { "inputs": [ - "$dividend[0:7]", - "$divisor[0:7]" + "$a[0:7]", + "$b[0:7]" ], - "type": "restoring_division", + "type": "multiplier", "internal": { - "stage0.shift.bit0": [ - "$dividend[7]" + "pp.r0.c0": [ + "$a[0]", + "$b[0]" ], - "stage0.shift.bit1": [ - "#0" + "pp.r0.c1": [ + "$a[1]", + "$b[0]" ], - "stage0.shift.bit2": [ - "#0" + "pp.r0.c2": [ + "$a[2]", + "$b[0]" ], - "stage0.shift.bit3": [ - "#0" + "pp.r0.c3": [ + "$a[3]", + "$b[0]" ], - "stage0.shift.bit4": [ - "#0" + "pp.r0.c4": [ + "$a[4]", + "$b[0]" ], - "stage0.shift.bit5": [ - "#0" + "pp.r0.c5": [ + "$a[5]", + "$b[0]" ], - "stage0.shift.bit6": [ - "#0" + "pp.r0.c6": [ + "$a[6]", + "$b[0]" ], - "stage0.shift.bit7": [ - "#0" + "pp.r0.c7": [ + "$a[7]", + "$b[0]" ], - "stage0.sub.notd0": [ - "$divisor[0]" + "pp.r1.c0": [ + "$a[0]", + "$b[1]" ], - "stage0.sub.notd1": [ - "$divisor[1]" + "pp.r1.c1": [ + "$a[1]", + "$b[1]" ], - "stage0.sub.notd2": [ - "$divisor[2]" + "pp.r1.c2": [ + "$a[2]", + "$b[1]" ], - "stage0.sub.notd3": [ - "$divisor[3]" + "pp.r1.c3": [ + "$a[3]", + "$b[1]" ], - "stage0.sub.notd4": [ - "$divisor[4]" + "pp.r1.c4": [ + "$a[4]", + "$b[1]" ], - "stage0.sub.notd5": [ - "$divisor[5]" + "pp.r1.c5": [ + "$a[5]", + "$b[1]" ], - "stage0.sub.notd6": [ - "$divisor[6]" + "pp.r1.c6": [ + "$a[6]", + "$b[1]" ], - "stage0.sub.notd7": [ - "$divisor[7]" + "pp.r1.c7": [ + "$a[7]", + "$b[1]" ], - "stage0.sub.fa0.xor1.layer1.or": [ - "stage0.shift.bit0", - "stage0.sub.notd0" + "pp.r2.c0": [ + "$a[0]", + "$b[2]" ], - "stage0.sub.fa0.xor1.layer1.nand": [ - "stage0.shift.bit0", - "stage0.sub.notd0" + "pp.r2.c1": [ + "$a[1]", + "$b[2]" ], - "stage0.sub.fa0.xor1.layer2": [ - "stage0.sub.fa0.xor1.layer1.or", - "stage0.sub.fa0.xor1.layer1.nand" + "pp.r2.c2": [ + "$a[2]", + "$b[2]" ], - "stage0.sub.fa0.xor2.layer1.or": [ - "stage0.sub.fa0.xor1.layer2", - "#1" + "pp.r2.c3": [ + "$a[3]", + "$b[2]" ], - "stage0.sub.fa0.xor2.layer1.nand": [ - "stage0.sub.fa0.xor1.layer2", - "#1" + "pp.r2.c4": [ + "$a[4]", + "$b[2]" ], - "stage0.sub.fa0.xor2.layer2": [ - "stage0.sub.fa0.xor2.layer1.or", - "stage0.sub.fa0.xor2.layer1.nand" + "pp.r2.c5": [ + "$a[5]", + "$b[2]" ], - "stage0.sub.fa0.and1": [ - "stage0.shift.bit0", - "stage0.sub.notd0" + "pp.r2.c6": [ + "$a[6]", + "$b[2]" ], - "stage0.sub.fa0.and2": [ - "stage0.sub.fa0.xor1.layer2", - "#1" + "pp.r2.c7": [ + "$a[7]", + "$b[2]" ], - "stage0.sub.fa0.or_carry": [ - "stage0.sub.fa0.and1", - "stage0.sub.fa0.and2" + "pp.r3.c0": [ + "$a[0]", + "$b[3]" ], - "stage0.sub.fa1.xor1.layer1.or": [ - "stage0.shift.bit1", - "stage0.sub.notd1" + "pp.r3.c1": [ + "$a[1]", + "$b[3]" ], - "stage0.sub.fa1.xor1.layer1.nand": [ - "stage0.shift.bit1", - "stage0.sub.notd1" + "pp.r3.c2": [ + "$a[2]", + "$b[3]" ], - "stage0.sub.fa1.xor1.layer2": [ - "stage0.sub.fa1.xor1.layer1.or", - "stage0.sub.fa1.xor1.layer1.nand" + "pp.r3.c3": [ + "$a[3]", + "$b[3]" ], - "stage0.sub.fa1.xor2.layer1.or": [ - "stage0.sub.fa1.xor1.layer2", - "stage0.sub.fa0.or_carry" + "pp.r3.c4": [ + "$a[4]", + "$b[3]" ], - "stage0.sub.fa1.xor2.layer1.nand": [ - "stage0.sub.fa1.xor1.layer2", - "stage0.sub.fa0.or_carry" + "pp.r3.c5": [ + "$a[5]", + "$b[3]" ], - "stage0.sub.fa1.xor2.layer2": [ - "stage0.sub.fa1.xor2.layer1.or", - "stage0.sub.fa1.xor2.layer1.nand" + "pp.r3.c6": [ + "$a[6]", + "$b[3]" ], - "stage0.sub.fa1.and1": [ - "stage0.shift.bit1", - "stage0.sub.notd1" + "pp.r3.c7": [ + "$a[7]", + "$b[3]" ], - "stage0.sub.fa1.and2": [ - "stage0.sub.fa1.xor1.layer2", - "stage0.sub.fa0.or_carry" + "pp.r4.c0": [ + "$a[0]", + "$b[4]" ], - "stage0.sub.fa1.or_carry": [ - "stage0.sub.fa1.and1", - "stage0.sub.fa1.and2" + "pp.r4.c1": [ + "$a[1]", + "$b[4]" ], - "stage0.sub.fa2.xor1.layer1.or": [ - "stage0.shift.bit2", - "stage0.sub.notd2" + "pp.r4.c2": [ + "$a[2]", + "$b[4]" ], - "stage0.sub.fa2.xor1.layer1.nand": [ - "stage0.shift.bit2", - "stage0.sub.notd2" + "pp.r4.c3": [ + "$a[3]", + "$b[4]" ], - "stage0.sub.fa2.xor1.layer2": [ - "stage0.sub.fa2.xor1.layer1.or", - "stage0.sub.fa2.xor1.layer1.nand" + "pp.r4.c4": [ + "$a[4]", + "$b[4]" ], - "stage0.sub.fa2.xor2.layer1.or": [ - "stage0.sub.fa2.xor1.layer2", - "stage0.sub.fa1.or_carry" + "pp.r4.c5": [ + "$a[5]", + "$b[4]" ], - "stage0.sub.fa2.xor2.layer1.nand": [ - "stage0.sub.fa2.xor1.layer2", - "stage0.sub.fa1.or_carry" + "pp.r4.c6": [ + "$a[6]", + "$b[4]" ], - "stage0.sub.fa2.xor2.layer2": [ - "stage0.sub.fa2.xor2.layer1.or", - "stage0.sub.fa2.xor2.layer1.nand" + "pp.r4.c7": [ + "$a[7]", + "$b[4]" ], - "stage0.sub.fa2.and1": [ - "stage0.shift.bit2", - "stage0.sub.notd2" + "pp.r5.c0": [ + "$a[0]", + "$b[5]" ], - "stage0.sub.fa2.and2": [ - "stage0.sub.fa2.xor1.layer2", - "stage0.sub.fa1.or_carry" + "pp.r5.c1": [ + "$a[1]", + "$b[5]" ], - "stage0.sub.fa2.or_carry": [ - "stage0.sub.fa2.and1", - "stage0.sub.fa2.and2" + "pp.r5.c2": [ + "$a[2]", + "$b[5]" ], - "stage0.sub.fa3.xor1.layer1.or": [ - "stage0.shift.bit3", - "stage0.sub.notd3" + "pp.r5.c3": [ + "$a[3]", + "$b[5]" ], - "stage0.sub.fa3.xor1.layer1.nand": [ - "stage0.shift.bit3", - "stage0.sub.notd3" + "pp.r5.c4": [ + "$a[4]", + "$b[5]" ], - "stage0.sub.fa3.xor1.layer2": [ - "stage0.sub.fa3.xor1.layer1.or", - "stage0.sub.fa3.xor1.layer1.nand" + "pp.r5.c5": [ + "$a[5]", + "$b[5]" ], - "stage0.sub.fa3.xor2.layer1.or": [ - "stage0.sub.fa3.xor1.layer2", - "stage0.sub.fa2.or_carry" + "pp.r5.c6": [ + "$a[6]", + "$b[5]" ], - "stage0.sub.fa3.xor2.layer1.nand": [ - "stage0.sub.fa3.xor1.layer2", - "stage0.sub.fa2.or_carry" + "pp.r5.c7": [ + "$a[7]", + "$b[5]" ], - "stage0.sub.fa3.xor2.layer2": [ - "stage0.sub.fa3.xor2.layer1.or", - "stage0.sub.fa3.xor2.layer1.nand" + "pp.r6.c0": [ + "$a[0]", + "$b[6]" ], - "stage0.sub.fa3.and1": [ - "stage0.shift.bit3", - "stage0.sub.notd3" + "pp.r6.c1": [ + "$a[1]", + "$b[6]" ], - "stage0.sub.fa3.and2": [ - "stage0.sub.fa3.xor1.layer2", - "stage0.sub.fa2.or_carry" + "pp.r6.c2": [ + "$a[2]", + "$b[6]" ], - "stage0.sub.fa3.or_carry": [ - "stage0.sub.fa3.and1", - "stage0.sub.fa3.and2" + "pp.r6.c3": [ + "$a[3]", + "$b[6]" ], - "stage0.sub.fa4.xor1.layer1.or": [ - "stage0.shift.bit4", - "stage0.sub.notd4" + "pp.r6.c4": [ + "$a[4]", + "$b[6]" ], - "stage0.sub.fa4.xor1.layer1.nand": [ - "stage0.shift.bit4", - "stage0.sub.notd4" + "pp.r6.c5": [ + "$a[5]", + "$b[6]" ], - "stage0.sub.fa4.xor1.layer2": [ - "stage0.sub.fa4.xor1.layer1.or", - "stage0.sub.fa4.xor1.layer1.nand" + "pp.r6.c6": [ + "$a[6]", + "$b[6]" ], - "stage0.sub.fa4.xor2.layer1.or": [ - "stage0.sub.fa4.xor1.layer2", - "stage0.sub.fa3.or_carry" + "pp.r6.c7": [ + "$a[7]", + "$b[6]" ], - "stage0.sub.fa4.xor2.layer1.nand": [ - "stage0.sub.fa4.xor1.layer2", - "stage0.sub.fa3.or_carry" + "pp.r7.c0": [ + "$a[0]", + "$b[7]" ], - "stage0.sub.fa4.xor2.layer2": [ - "stage0.sub.fa4.xor2.layer1.or", - "stage0.sub.fa4.xor2.layer1.nand" + "pp.r7.c1": [ + "$a[1]", + "$b[7]" ], - "stage0.sub.fa4.and1": [ - "stage0.shift.bit4", - "stage0.sub.notd4" + "pp.r7.c2": [ + "$a[2]", + "$b[7]" ], - "stage0.sub.fa4.and2": [ - "stage0.sub.fa4.xor1.layer2", - "stage0.sub.fa3.or_carry" + "pp.r7.c3": [ + "$a[3]", + "$b[7]" ], - "stage0.sub.fa4.or_carry": [ - "stage0.sub.fa4.and1", - "stage0.sub.fa4.and2" + "pp.r7.c4": [ + "$a[4]", + "$b[7]" ], - "stage0.sub.fa5.xor1.layer1.or": [ - "stage0.shift.bit5", - "stage0.sub.notd5" + "pp.r7.c5": [ + "$a[5]", + "$b[7]" ], - "stage0.sub.fa5.xor1.layer1.nand": [ - "stage0.shift.bit5", - "stage0.sub.notd5" + "pp.r7.c6": [ + "$a[6]", + "$b[7]" ], - "stage0.sub.fa5.xor1.layer2": [ - "stage0.sub.fa5.xor1.layer1.or", - "stage0.sub.fa5.xor1.layer1.nand" + "pp.r7.c7": [ + "$a[7]", + "$b[7]" ], - "stage0.sub.fa5.xor2.layer1.or": [ - "stage0.sub.fa5.xor1.layer2", - "stage0.sub.fa4.or_carry" + "stage0.bit0.ha1.sum.layer1.or": [ + "pp.r0.c0", + "#0" ], - "stage0.sub.fa5.xor2.layer1.nand": [ - "stage0.sub.fa5.xor1.layer2", - "stage0.sub.fa4.or_carry" + "stage0.bit0.ha1.sum.layer1.nand": [ + "pp.r0.c0", + "#0" ], - "stage0.sub.fa5.xor2.layer2": [ - "stage0.sub.fa5.xor2.layer1.or", - "stage0.sub.fa5.xor2.layer1.nand" + "stage0.bit0.ha1.sum.layer2": [ + "stage0.bit0.ha1.sum.layer1.or", + "stage0.bit0.ha1.sum.layer1.nand" ], - "stage0.sub.fa5.and1": [ - "stage0.shift.bit5", - "stage0.sub.notd5" + "stage0.bit0.ha1.carry": [ + "pp.r0.c0", + "#0" ], - "stage0.sub.fa5.and2": [ - "stage0.sub.fa5.xor1.layer2", - "stage0.sub.fa4.or_carry" + "stage0.bit0.ha2.sum.layer1.or": [ + "stage0.bit0.ha1.sum.layer2", + "#0" ], - "stage0.sub.fa5.or_carry": [ - "stage0.sub.fa5.and1", - "stage0.sub.fa5.and2" + "stage0.bit0.ha2.sum.layer1.nand": [ + "stage0.bit0.ha1.sum.layer2", + "#0" ], - "stage0.sub.fa6.xor1.layer1.or": [ - "stage0.shift.bit6", - "stage0.sub.notd6" + "stage0.bit0.ha2.sum.layer2": [ + "stage0.bit0.ha2.sum.layer1.or", + "stage0.bit0.ha2.sum.layer1.nand" ], - "stage0.sub.fa6.xor1.layer1.nand": [ - "stage0.shift.bit6", - "stage0.sub.notd6" + "stage0.bit0.ha2.carry": [ + "stage0.bit0.ha1.sum.layer2", + "#0" ], - "stage0.sub.fa6.xor1.layer2": [ - "stage0.sub.fa6.xor1.layer1.or", - "stage0.sub.fa6.xor1.layer1.nand" + "stage0.bit0.carry_or": [ + "stage0.bit0.ha1.carry", + "stage0.bit0.ha2.carry" ], - "stage0.sub.fa6.xor2.layer1.or": [ - "stage0.sub.fa6.xor1.layer2", - "stage0.sub.fa5.or_carry" + "stage0.bit1.ha1.sum.layer1.or": [ + "pp.r0.c1", + "pp.r1.c0" ], - "stage0.sub.fa6.xor2.layer1.nand": [ - "stage0.sub.fa6.xor1.layer2", - "stage0.sub.fa5.or_carry" + "stage0.bit1.ha1.sum.layer1.nand": [ + "pp.r0.c1", + "pp.r1.c0" ], - "stage0.sub.fa6.xor2.layer2": [ - "stage0.sub.fa6.xor2.layer1.or", - "stage0.sub.fa6.xor2.layer1.nand" + "stage0.bit1.ha1.sum.layer2": [ + "stage0.bit1.ha1.sum.layer1.or", + "stage0.bit1.ha1.sum.layer1.nand" ], - "stage0.sub.fa6.and1": [ - "stage0.shift.bit6", - "stage0.sub.notd6" + "stage0.bit1.ha1.carry": [ + "pp.r0.c1", + "pp.r1.c0" ], - "stage0.sub.fa6.and2": [ - "stage0.sub.fa6.xor1.layer2", - "stage0.sub.fa5.or_carry" + "stage0.bit1.ha2.sum.layer1.or": [ + "stage0.bit1.ha1.sum.layer2", + "stage0.bit0.carry_or" ], - "stage0.sub.fa6.or_carry": [ - "stage0.sub.fa6.and1", - "stage0.sub.fa6.and2" + "stage0.bit1.ha2.sum.layer1.nand": [ + "stage0.bit1.ha1.sum.layer2", + "stage0.bit0.carry_or" ], - "stage0.sub.fa7.xor1.layer1.or": [ - "stage0.shift.bit7", - "stage0.sub.notd7" + "stage0.bit1.ha2.sum.layer2": [ + "stage0.bit1.ha2.sum.layer1.or", + "stage0.bit1.ha2.sum.layer1.nand" ], - "stage0.sub.fa7.xor1.layer1.nand": [ - "stage0.shift.bit7", - "stage0.sub.notd7" + "stage0.bit1.ha2.carry": [ + "stage0.bit1.ha1.sum.layer2", + "stage0.bit0.carry_or" ], - "stage0.sub.fa7.xor1.layer2": [ - "stage0.sub.fa7.xor1.layer1.or", - "stage0.sub.fa7.xor1.layer1.nand" + "stage0.bit1.carry_or": [ + "stage0.bit1.ha1.carry", + "stage0.bit1.ha2.carry" ], - "stage0.sub.fa7.xor2.layer1.or": [ - "stage0.sub.fa7.xor1.layer2", - "stage0.sub.fa6.or_carry" + "stage0.bit2.ha1.sum.layer1.or": [ + "pp.r0.c2", + "pp.r1.c1" ], - "stage0.sub.fa7.xor2.layer1.nand": [ - "stage0.sub.fa7.xor1.layer2", - "stage0.sub.fa6.or_carry" + "stage0.bit2.ha1.sum.layer1.nand": [ + "pp.r0.c2", + "pp.r1.c1" ], - "stage0.sub.fa7.xor2.layer2": [ - "stage0.sub.fa7.xor2.layer1.or", - "stage0.sub.fa7.xor2.layer1.nand" + "stage0.bit2.ha1.sum.layer2": [ + "stage0.bit2.ha1.sum.layer1.or", + "stage0.bit2.ha1.sum.layer1.nand" ], - "stage0.sub.fa7.and1": [ - "stage0.shift.bit7", - "stage0.sub.notd7" + "stage0.bit2.ha1.carry": [ + "pp.r0.c2", + "pp.r1.c1" ], - "stage0.sub.fa7.and2": [ - "stage0.sub.fa7.xor1.layer2", - "stage0.sub.fa6.or_carry" + "stage0.bit2.ha2.sum.layer1.or": [ + "stage0.bit2.ha1.sum.layer2", + "stage0.bit1.carry_or" ], - "stage0.sub.fa7.or_carry": [ - "stage0.sub.fa7.and1", - "stage0.sub.fa7.and2" + "stage0.bit2.ha2.sum.layer1.nand": [ + "stage0.bit2.ha1.sum.layer2", + "stage0.bit1.carry_or" ], - "stage0.cmp": [ - "stage0.sub.fa7.or_carry" + "stage0.bit2.ha2.sum.layer2": [ + "stage0.bit2.ha2.sum.layer1.or", + "stage0.bit2.ha2.sum.layer1.nand" ], - "stage0.or_dividend": [ - "stage0.shift.bit7", - "$dividend[7]" + "stage0.bit2.ha2.carry": [ + "stage0.bit2.ha1.sum.layer2", + "stage0.bit1.carry_or" ], - "stage0.mux0.not_sel": [ - "stage0.cmp" + "stage0.bit2.carry_or": [ + "stage0.bit2.ha1.carry", + "stage0.bit2.ha2.carry" ], - "stage0.mux0.and0": [ - "stage0.shift.bit0", - "stage0.mux0.not_sel" + "stage0.bit3.ha1.sum.layer1.or": [ + "pp.r0.c3", + "pp.r1.c2" ], - "stage0.mux0.and1": [ - "stage0.sub.fa0.xor2.layer2", - "stage0.cmp" + "stage0.bit3.ha1.sum.layer1.nand": [ + "pp.r0.c3", + "pp.r1.c2" ], - "stage0.mux0.or": [ - "stage0.mux0.and0", - "stage0.mux0.and1" + "stage0.bit3.ha1.sum.layer2": [ + "stage0.bit3.ha1.sum.layer1.or", + "stage0.bit3.ha1.sum.layer1.nand" ], - "stage0.mux1.not_sel": [ - "stage0.cmp" + "stage0.bit3.ha1.carry": [ + "pp.r0.c3", + "pp.r1.c2" ], - "stage0.mux1.and0": [ - "stage0.shift.bit1", - "stage0.mux1.not_sel" + "stage0.bit3.ha2.sum.layer1.or": [ + "stage0.bit3.ha1.sum.layer2", + "stage0.bit2.carry_or" ], - "stage0.mux1.and1": [ - "stage0.sub.fa1.xor2.layer2", - "stage0.cmp" + "stage0.bit3.ha2.sum.layer1.nand": [ + "stage0.bit3.ha1.sum.layer2", + "stage0.bit2.carry_or" ], - "stage0.mux1.or": [ - "stage0.mux1.and0", - "stage0.mux1.and1" + "stage0.bit3.ha2.sum.layer2": [ + "stage0.bit3.ha2.sum.layer1.or", + "stage0.bit3.ha2.sum.layer1.nand" ], - "stage0.mux2.not_sel": [ - "stage0.cmp" + "stage0.bit3.ha2.carry": [ + "stage0.bit3.ha1.sum.layer2", + "stage0.bit2.carry_or" ], - "stage0.mux2.and0": [ - "stage0.shift.bit2", - "stage0.mux2.not_sel" + "stage0.bit3.carry_or": [ + "stage0.bit3.ha1.carry", + "stage0.bit3.ha2.carry" ], - "stage0.mux2.and1": [ - "stage0.sub.fa2.xor2.layer2", - "stage0.cmp" + "stage0.bit4.ha1.sum.layer1.or": [ + "pp.r0.c4", + "pp.r1.c3" ], - "stage0.mux2.or": [ - "stage0.mux2.and0", - "stage0.mux2.and1" + "stage0.bit4.ha1.sum.layer1.nand": [ + "pp.r0.c4", + "pp.r1.c3" ], - "stage0.mux3.not_sel": [ - "stage0.cmp" + "stage0.bit4.ha1.sum.layer2": [ + "stage0.bit4.ha1.sum.layer1.or", + "stage0.bit4.ha1.sum.layer1.nand" ], - "stage0.mux3.and0": [ - "stage0.shift.bit3", - "stage0.mux3.not_sel" + "stage0.bit4.ha1.carry": [ + "pp.r0.c4", + "pp.r1.c3" ], - "stage0.mux3.and1": [ - "stage0.sub.fa3.xor2.layer2", - "stage0.cmp" + "stage0.bit4.ha2.sum.layer1.or": [ + "stage0.bit4.ha1.sum.layer2", + "stage0.bit3.carry_or" ], - "stage0.mux3.or": [ - "stage0.mux3.and0", - "stage0.mux3.and1" + "stage0.bit4.ha2.sum.layer1.nand": [ + "stage0.bit4.ha1.sum.layer2", + "stage0.bit3.carry_or" ], - "stage0.mux4.not_sel": [ - "stage0.cmp" + "stage0.bit4.ha2.sum.layer2": [ + "stage0.bit4.ha2.sum.layer1.or", + "stage0.bit4.ha2.sum.layer1.nand" ], - "stage0.mux4.and0": [ - "stage0.shift.bit4", - "stage0.mux4.not_sel" + "stage0.bit4.ha2.carry": [ + "stage0.bit4.ha1.sum.layer2", + "stage0.bit3.carry_or" ], - "stage0.mux4.and1": [ - "stage0.sub.fa4.xor2.layer2", - "stage0.cmp" + "stage0.bit4.carry_or": [ + "stage0.bit4.ha1.carry", + "stage0.bit4.ha2.carry" ], - "stage0.mux4.or": [ - "stage0.mux4.and0", - "stage0.mux4.and1" + "stage0.bit5.ha1.sum.layer1.or": [ + "pp.r0.c5", + "pp.r1.c4" ], - "stage0.mux5.not_sel": [ - "stage0.cmp" + "stage0.bit5.ha1.sum.layer1.nand": [ + "pp.r0.c5", + "pp.r1.c4" ], - "stage0.mux5.and0": [ - "stage0.shift.bit5", - "stage0.mux5.not_sel" + "stage0.bit5.ha1.sum.layer2": [ + "stage0.bit5.ha1.sum.layer1.or", + "stage0.bit5.ha1.sum.layer1.nand" ], - "stage0.mux5.and1": [ - "stage0.sub.fa5.xor2.layer2", - "stage0.cmp" + "stage0.bit5.ha1.carry": [ + "pp.r0.c5", + "pp.r1.c4" ], - "stage0.mux5.or": [ - "stage0.mux5.and0", - "stage0.mux5.and1" + "stage0.bit5.ha2.sum.layer1.or": [ + "stage0.bit5.ha1.sum.layer2", + "stage0.bit4.carry_or" ], - "stage0.mux6.not_sel": [ - "stage0.cmp" + "stage0.bit5.ha2.sum.layer1.nand": [ + "stage0.bit5.ha1.sum.layer2", + "stage0.bit4.carry_or" ], - "stage0.mux6.and0": [ - "stage0.shift.bit6", - "stage0.mux6.not_sel" + "stage0.bit5.ha2.sum.layer2": [ + "stage0.bit5.ha2.sum.layer1.or", + "stage0.bit5.ha2.sum.layer1.nand" ], - "stage0.mux6.and1": [ - "stage0.sub.fa6.xor2.layer2", - "stage0.cmp" + "stage0.bit5.ha2.carry": [ + "stage0.bit5.ha1.sum.layer2", + "stage0.bit4.carry_or" ], - "stage0.mux6.or": [ - "stage0.mux6.and0", - "stage0.mux6.and1" + "stage0.bit5.carry_or": [ + "stage0.bit5.ha1.carry", + "stage0.bit5.ha2.carry" ], - "stage0.mux7.not_sel": [ - "stage0.cmp" + "stage0.bit6.ha1.sum.layer1.or": [ + "pp.r0.c6", + "pp.r1.c5" ], - "stage0.mux7.and0": [ - "stage0.shift.bit7", - "stage0.mux7.not_sel" + "stage0.bit6.ha1.sum.layer1.nand": [ + "pp.r0.c6", + "pp.r1.c5" ], - "stage0.mux7.and1": [ - "stage0.sub.fa7.xor2.layer2", - "stage0.cmp" + "stage0.bit6.ha1.sum.layer2": [ + "stage0.bit6.ha1.sum.layer1.or", + "stage0.bit6.ha1.sum.layer1.nand" ], - "stage0.mux7.or": [ - "stage0.mux7.and0", - "stage0.mux7.and1" + "stage0.bit6.ha1.carry": [ + "pp.r0.c6", + "pp.r1.c5" ], - "stage1.shift.bit0": [ - "$dividend[6]" + "stage0.bit6.ha2.sum.layer1.or": [ + "stage0.bit6.ha1.sum.layer2", + "stage0.bit5.carry_or" ], - "stage1.shift.bit1": [ - "stage0.mux0.or" + "stage0.bit6.ha2.sum.layer1.nand": [ + "stage0.bit6.ha1.sum.layer2", + "stage0.bit5.carry_or" ], - "stage1.shift.bit2": [ - "stage0.mux1.or" + "stage0.bit6.ha2.sum.layer2": [ + "stage0.bit6.ha2.sum.layer1.or", + "stage0.bit6.ha2.sum.layer1.nand" ], - "stage1.shift.bit3": [ - "stage0.mux2.or" + "stage0.bit6.ha2.carry": [ + "stage0.bit6.ha1.sum.layer2", + "stage0.bit5.carry_or" ], - "stage1.shift.bit4": [ - "stage0.mux3.or" + "stage0.bit6.carry_or": [ + "stage0.bit6.ha1.carry", + "stage0.bit6.ha2.carry" ], - "stage1.shift.bit5": [ - "stage0.mux4.or" + "stage0.bit7.ha1.sum.layer1.or": [ + "pp.r0.c7", + "pp.r1.c6" ], - "stage1.shift.bit6": [ - "stage0.mux5.or" + "stage0.bit7.ha1.sum.layer1.nand": [ + "pp.r0.c7", + "pp.r1.c6" ], - "stage1.shift.bit7": [ - "stage0.mux6.or" + "stage0.bit7.ha1.sum.layer2": [ + "stage0.bit7.ha1.sum.layer1.or", + "stage0.bit7.ha1.sum.layer1.nand" ], - "stage1.sub.notd0": [ - "$divisor[0]" + "stage0.bit7.ha1.carry": [ + "pp.r0.c7", + "pp.r1.c6" ], - "stage1.sub.notd1": [ - "$divisor[1]" + "stage0.bit7.ha2.sum.layer1.or": [ + "stage0.bit7.ha1.sum.layer2", + "stage0.bit6.carry_or" ], - "stage1.sub.notd2": [ - "$divisor[2]" + "stage0.bit7.ha2.sum.layer1.nand": [ + "stage0.bit7.ha1.sum.layer2", + "stage0.bit6.carry_or" ], - "stage1.sub.notd3": [ - "$divisor[3]" + "stage0.bit7.ha2.sum.layer2": [ + "stage0.bit7.ha2.sum.layer1.or", + "stage0.bit7.ha2.sum.layer1.nand" ], - "stage1.sub.notd4": [ - "$divisor[4]" + "stage0.bit7.ha2.carry": [ + "stage0.bit7.ha1.sum.layer2", + "stage0.bit6.carry_or" ], - "stage1.sub.notd5": [ - "$divisor[5]" + "stage0.bit7.carry_or": [ + "stage0.bit7.ha1.carry", + "stage0.bit7.ha2.carry" ], - "stage1.sub.notd6": [ - "$divisor[6]" + "stage0.bit8.ha1.sum.layer1.or": [ + "#0", + "pp.r1.c7" ], - "stage1.sub.notd7": [ - "$divisor[7]" + "stage0.bit8.ha1.sum.layer1.nand": [ + "#0", + "pp.r1.c7" ], - "stage1.sub.fa0.xor1.layer1.or": [ - "stage1.shift.bit0", - "stage1.sub.notd0" + "stage0.bit8.ha1.sum.layer2": [ + "stage0.bit8.ha1.sum.layer1.or", + "stage0.bit8.ha1.sum.layer1.nand" ], - "stage1.sub.fa0.xor1.layer1.nand": [ - "stage1.shift.bit0", - "stage1.sub.notd0" + "stage0.bit8.ha1.carry": [ + "#0", + "pp.r1.c7" ], - "stage1.sub.fa0.xor1.layer2": [ - "stage1.sub.fa0.xor1.layer1.or", - "stage1.sub.fa0.xor1.layer1.nand" + "stage0.bit8.ha2.sum.layer1.or": [ + "stage0.bit8.ha1.sum.layer2", + "stage0.bit7.carry_or" ], - "stage1.sub.fa0.xor2.layer1.or": [ - "stage1.sub.fa0.xor1.layer2", - "#1" + "stage0.bit8.ha2.sum.layer1.nand": [ + "stage0.bit8.ha1.sum.layer2", + "stage0.bit7.carry_or" ], - "stage1.sub.fa0.xor2.layer1.nand": [ - "stage1.sub.fa0.xor1.layer2", - "#1" + "stage0.bit8.ha2.sum.layer2": [ + "stage0.bit8.ha2.sum.layer1.or", + "stage0.bit8.ha2.sum.layer1.nand" ], - "stage1.sub.fa0.xor2.layer2": [ - "stage1.sub.fa0.xor2.layer1.or", - "stage1.sub.fa0.xor2.layer1.nand" + "stage0.bit8.ha2.carry": [ + "stage0.bit8.ha1.sum.layer2", + "stage0.bit7.carry_or" ], - "stage1.sub.fa0.and1": [ - "stage1.shift.bit0", - "stage1.sub.notd0" + "stage0.bit8.carry_or": [ + "stage0.bit8.ha1.carry", + "stage0.bit8.ha2.carry" ], - "stage1.sub.fa0.and2": [ - "stage1.sub.fa0.xor1.layer2", - "#1" + "stage1.bit0.ha1.sum.layer1.or": [ + "stage0.bit0.ha2.sum", + "#0" ], - "stage1.sub.fa0.or_carry": [ - "stage1.sub.fa0.and1", - "stage1.sub.fa0.and2" + "stage1.bit0.ha1.sum.layer1.nand": [ + "stage0.bit0.ha2.sum", + "#0" ], - "stage1.sub.fa1.xor1.layer1.or": [ - "stage1.shift.bit1", - "stage1.sub.notd1" + "stage1.bit0.ha1.sum.layer2": [ + "stage1.bit0.ha1.sum.layer1.or", + "stage1.bit0.ha1.sum.layer1.nand" ], - "stage1.sub.fa1.xor1.layer1.nand": [ - "stage1.shift.bit1", - "stage1.sub.notd1" + "stage1.bit0.ha1.carry": [ + "stage0.bit0.ha2.sum", + "#0" ], - "stage1.sub.fa1.xor1.layer2": [ - "stage1.sub.fa1.xor1.layer1.or", - "stage1.sub.fa1.xor1.layer1.nand" + "stage1.bit0.ha2.sum.layer1.or": [ + "stage1.bit0.ha1.sum.layer2", + "#0" ], - "stage1.sub.fa1.xor2.layer1.or": [ - "stage1.sub.fa1.xor1.layer2", - "stage1.sub.fa0.or_carry" + "stage1.bit0.ha2.sum.layer1.nand": [ + "stage1.bit0.ha1.sum.layer2", + "#0" ], - "stage1.sub.fa1.xor2.layer1.nand": [ - "stage1.sub.fa1.xor1.layer2", - "stage1.sub.fa0.or_carry" + "stage1.bit0.ha2.sum.layer2": [ + "stage1.bit0.ha2.sum.layer1.or", + "stage1.bit0.ha2.sum.layer1.nand" ], - "stage1.sub.fa1.xor2.layer2": [ - "stage1.sub.fa1.xor2.layer1.or", - "stage1.sub.fa1.xor2.layer1.nand" + "stage1.bit0.ha2.carry": [ + "stage1.bit0.ha1.sum.layer2", + "#0" ], - "stage1.sub.fa1.and1": [ - "stage1.shift.bit1", - "stage1.sub.notd1" + "stage1.bit0.carry_or": [ + "stage1.bit0.ha1.carry", + "stage1.bit0.ha2.carry" ], - "stage1.sub.fa1.and2": [ - "stage1.sub.fa1.xor1.layer2", - "stage1.sub.fa0.or_carry" + "stage1.bit1.ha1.sum.layer1.or": [ + "stage0.bit1.ha2.sum", + "#0" ], - "stage1.sub.fa1.or_carry": [ - "stage1.sub.fa1.and1", - "stage1.sub.fa1.and2" + "stage1.bit1.ha1.sum.layer1.nand": [ + "stage0.bit1.ha2.sum", + "#0" ], - "stage1.sub.fa2.xor1.layer1.or": [ - "stage1.shift.bit2", - "stage1.sub.notd2" + "stage1.bit1.ha1.sum.layer2": [ + "stage1.bit1.ha1.sum.layer1.or", + "stage1.bit1.ha1.sum.layer1.nand" ], - "stage1.sub.fa2.xor1.layer1.nand": [ - "stage1.shift.bit2", - "stage1.sub.notd2" + "stage1.bit1.ha1.carry": [ + "stage0.bit1.ha2.sum", + "#0" ], - "stage1.sub.fa2.xor1.layer2": [ - "stage1.sub.fa2.xor1.layer1.or", - "stage1.sub.fa2.xor1.layer1.nand" + "stage1.bit1.ha2.sum.layer1.or": [ + "stage1.bit1.ha1.sum.layer2", + "stage1.bit0.carry_or" ], - "stage1.sub.fa2.xor2.layer1.or": [ - "stage1.sub.fa2.xor1.layer2", - "stage1.sub.fa1.or_carry" + "stage1.bit1.ha2.sum.layer1.nand": [ + "stage1.bit1.ha1.sum.layer2", + "stage1.bit0.carry_or" ], - "stage1.sub.fa2.xor2.layer1.nand": [ - "stage1.sub.fa2.xor1.layer2", - "stage1.sub.fa1.or_carry" + "stage1.bit1.ha2.sum.layer2": [ + "stage1.bit1.ha2.sum.layer1.or", + "stage1.bit1.ha2.sum.layer1.nand" ], - "stage1.sub.fa2.xor2.layer2": [ - "stage1.sub.fa2.xor2.layer1.or", - "stage1.sub.fa2.xor2.layer1.nand" + "stage1.bit1.ha2.carry": [ + "stage1.bit1.ha1.sum.layer2", + "stage1.bit0.carry_or" ], - "stage1.sub.fa2.and1": [ - "stage1.shift.bit2", - "stage1.sub.notd2" + "stage1.bit1.carry_or": [ + "stage1.bit1.ha1.carry", + "stage1.bit1.ha2.carry" ], - "stage1.sub.fa2.and2": [ - "stage1.sub.fa2.xor1.layer2", - "stage1.sub.fa1.or_carry" + "stage1.bit2.ha1.sum.layer1.or": [ + "stage0.bit2.ha2.sum", + "pp.r2.c0" ], - "stage1.sub.fa2.or_carry": [ - "stage1.sub.fa2.and1", - "stage1.sub.fa2.and2" + "stage1.bit2.ha1.sum.layer1.nand": [ + "stage0.bit2.ha2.sum", + "pp.r2.c0" ], - "stage1.sub.fa3.xor1.layer1.or": [ - "stage1.shift.bit3", - "stage1.sub.notd3" + "stage1.bit2.ha1.sum.layer2": [ + "stage1.bit2.ha1.sum.layer1.or", + "stage1.bit2.ha1.sum.layer1.nand" ], - "stage1.sub.fa3.xor1.layer1.nand": [ - "stage1.shift.bit3", - "stage1.sub.notd3" + "stage1.bit2.ha1.carry": [ + "stage0.bit2.ha2.sum", + "pp.r2.c0" ], - "stage1.sub.fa3.xor1.layer2": [ - "stage1.sub.fa3.xor1.layer1.or", - "stage1.sub.fa3.xor1.layer1.nand" + "stage1.bit2.ha2.sum.layer1.or": [ + "stage1.bit2.ha1.sum.layer2", + "stage1.bit1.carry_or" ], - "stage1.sub.fa3.xor2.layer1.or": [ - "stage1.sub.fa3.xor1.layer2", - "stage1.sub.fa2.or_carry" + "stage1.bit2.ha2.sum.layer1.nand": [ + "stage1.bit2.ha1.sum.layer2", + "stage1.bit1.carry_or" ], - "stage1.sub.fa3.xor2.layer1.nand": [ - "stage1.sub.fa3.xor1.layer2", - "stage1.sub.fa2.or_carry" + "stage1.bit2.ha2.sum.layer2": [ + "stage1.bit2.ha2.sum.layer1.or", + "stage1.bit2.ha2.sum.layer1.nand" ], - "stage1.sub.fa3.xor2.layer2": [ - "stage1.sub.fa3.xor2.layer1.or", - "stage1.sub.fa3.xor2.layer1.nand" + "stage1.bit2.ha2.carry": [ + "stage1.bit2.ha1.sum.layer2", + "stage1.bit1.carry_or" ], - "stage1.sub.fa3.and1": [ - "stage1.shift.bit3", - "stage1.sub.notd3" + "stage1.bit2.carry_or": [ + "stage1.bit2.ha1.carry", + "stage1.bit2.ha2.carry" ], - "stage1.sub.fa3.and2": [ - "stage1.sub.fa3.xor1.layer2", - "stage1.sub.fa2.or_carry" + "stage1.bit3.ha1.sum.layer1.or": [ + "stage0.bit3.ha2.sum", + "pp.r2.c1" ], - "stage1.sub.fa3.or_carry": [ - "stage1.sub.fa3.and1", - "stage1.sub.fa3.and2" + "stage1.bit3.ha1.sum.layer1.nand": [ + "stage0.bit3.ha2.sum", + "pp.r2.c1" ], - "stage1.sub.fa4.xor1.layer1.or": [ - "stage1.shift.bit4", - "stage1.sub.notd4" + "stage1.bit3.ha1.sum.layer2": [ + "stage1.bit3.ha1.sum.layer1.or", + "stage1.bit3.ha1.sum.layer1.nand" ], - "stage1.sub.fa4.xor1.layer1.nand": [ - "stage1.shift.bit4", - "stage1.sub.notd4" + "stage1.bit3.ha1.carry": [ + "stage0.bit3.ha2.sum", + "pp.r2.c1" ], - "stage1.sub.fa4.xor1.layer2": [ - "stage1.sub.fa4.xor1.layer1.or", - "stage1.sub.fa4.xor1.layer1.nand" + "stage1.bit3.ha2.sum.layer1.or": [ + "stage1.bit3.ha1.sum.layer2", + "stage1.bit2.carry_or" ], - "stage1.sub.fa4.xor2.layer1.or": [ - "stage1.sub.fa4.xor1.layer2", - "stage1.sub.fa3.or_carry" + "stage1.bit3.ha2.sum.layer1.nand": [ + "stage1.bit3.ha1.sum.layer2", + "stage1.bit2.carry_or" ], - "stage1.sub.fa4.xor2.layer1.nand": [ - "stage1.sub.fa4.xor1.layer2", - "stage1.sub.fa3.or_carry" + "stage1.bit3.ha2.sum.layer2": [ + "stage1.bit3.ha2.sum.layer1.or", + "stage1.bit3.ha2.sum.layer1.nand" ], - "stage1.sub.fa4.xor2.layer2": [ - "stage1.sub.fa4.xor2.layer1.or", - "stage1.sub.fa4.xor2.layer1.nand" + "stage1.bit3.ha2.carry": [ + "stage1.bit3.ha1.sum.layer2", + "stage1.bit2.carry_or" ], - "stage1.sub.fa4.and1": [ - "stage1.shift.bit4", - "stage1.sub.notd4" + "stage1.bit3.carry_or": [ + "stage1.bit3.ha1.carry", + "stage1.bit3.ha2.carry" ], - "stage1.sub.fa4.and2": [ - "stage1.sub.fa4.xor1.layer2", - "stage1.sub.fa3.or_carry" + "stage1.bit4.ha1.sum.layer1.or": [ + "stage0.bit4.ha2.sum", + "pp.r2.c2" ], - "stage1.sub.fa4.or_carry": [ - "stage1.sub.fa4.and1", - "stage1.sub.fa4.and2" + "stage1.bit4.ha1.sum.layer1.nand": [ + "stage0.bit4.ha2.sum", + "pp.r2.c2" ], - "stage1.sub.fa5.xor1.layer1.or": [ - "stage1.shift.bit5", - "stage1.sub.notd5" + "stage1.bit4.ha1.sum.layer2": [ + "stage1.bit4.ha1.sum.layer1.or", + "stage1.bit4.ha1.sum.layer1.nand" ], - "stage1.sub.fa5.xor1.layer1.nand": [ - "stage1.shift.bit5", - "stage1.sub.notd5" + "stage1.bit4.ha1.carry": [ + "stage0.bit4.ha2.sum", + "pp.r2.c2" ], - "stage1.sub.fa5.xor1.layer2": [ - "stage1.sub.fa5.xor1.layer1.or", - "stage1.sub.fa5.xor1.layer1.nand" + "stage1.bit4.ha2.sum.layer1.or": [ + "stage1.bit4.ha1.sum.layer2", + "stage1.bit3.carry_or" ], - "stage1.sub.fa5.xor2.layer1.or": [ - "stage1.sub.fa5.xor1.layer2", - "stage1.sub.fa4.or_carry" + "stage1.bit4.ha2.sum.layer1.nand": [ + "stage1.bit4.ha1.sum.layer2", + "stage1.bit3.carry_or" ], - "stage1.sub.fa5.xor2.layer1.nand": [ - "stage1.sub.fa5.xor1.layer2", - "stage1.sub.fa4.or_carry" + "stage1.bit4.ha2.sum.layer2": [ + "stage1.bit4.ha2.sum.layer1.or", + "stage1.bit4.ha2.sum.layer1.nand" ], - "stage1.sub.fa5.xor2.layer2": [ - "stage1.sub.fa5.xor2.layer1.or", - "stage1.sub.fa5.xor2.layer1.nand" + "stage1.bit4.ha2.carry": [ + "stage1.bit4.ha1.sum.layer2", + "stage1.bit3.carry_or" ], - "stage1.sub.fa5.and1": [ - "stage1.shift.bit5", - "stage1.sub.notd5" + "stage1.bit4.carry_or": [ + "stage1.bit4.ha1.carry", + "stage1.bit4.ha2.carry" ], - "stage1.sub.fa5.and2": [ - "stage1.sub.fa5.xor1.layer2", - "stage1.sub.fa4.or_carry" + "stage1.bit5.ha1.sum.layer1.or": [ + "stage0.bit5.ha2.sum", + "pp.r2.c3" ], - "stage1.sub.fa5.or_carry": [ - "stage1.sub.fa5.and1", - "stage1.sub.fa5.and2" + "stage1.bit5.ha1.sum.layer1.nand": [ + "stage0.bit5.ha2.sum", + "pp.r2.c3" ], - "stage1.sub.fa6.xor1.layer1.or": [ - "stage1.shift.bit6", - "stage1.sub.notd6" + "stage1.bit5.ha1.sum.layer2": [ + "stage1.bit5.ha1.sum.layer1.or", + "stage1.bit5.ha1.sum.layer1.nand" ], - "stage1.sub.fa6.xor1.layer1.nand": [ - "stage1.shift.bit6", - "stage1.sub.notd6" + "stage1.bit5.ha1.carry": [ + "stage0.bit5.ha2.sum", + "pp.r2.c3" ], - "stage1.sub.fa6.xor1.layer2": [ - "stage1.sub.fa6.xor1.layer1.or", - "stage1.sub.fa6.xor1.layer1.nand" + "stage1.bit5.ha2.sum.layer1.or": [ + "stage1.bit5.ha1.sum.layer2", + "stage1.bit4.carry_or" ], - "stage1.sub.fa6.xor2.layer1.or": [ - "stage1.sub.fa6.xor1.layer2", - "stage1.sub.fa5.or_carry" + "stage1.bit5.ha2.sum.layer1.nand": [ + "stage1.bit5.ha1.sum.layer2", + "stage1.bit4.carry_or" ], - "stage1.sub.fa6.xor2.layer1.nand": [ - "stage1.sub.fa6.xor1.layer2", - "stage1.sub.fa5.or_carry" + "stage1.bit5.ha2.sum.layer2": [ + "stage1.bit5.ha2.sum.layer1.or", + "stage1.bit5.ha2.sum.layer1.nand" ], - "stage1.sub.fa6.xor2.layer2": [ - "stage1.sub.fa6.xor2.layer1.or", - "stage1.sub.fa6.xor2.layer1.nand" + "stage1.bit5.ha2.carry": [ + "stage1.bit5.ha1.sum.layer2", + "stage1.bit4.carry_or" ], - "stage1.sub.fa6.and1": [ - "stage1.shift.bit6", - "stage1.sub.notd6" + "stage1.bit5.carry_or": [ + "stage1.bit5.ha1.carry", + "stage1.bit5.ha2.carry" ], - "stage1.sub.fa6.and2": [ - "stage1.sub.fa6.xor1.layer2", - "stage1.sub.fa5.or_carry" + "stage1.bit6.ha1.sum.layer1.or": [ + "stage0.bit6.ha2.sum", + "pp.r2.c4" ], - "stage1.sub.fa6.or_carry": [ - "stage1.sub.fa6.and1", - "stage1.sub.fa6.and2" + "stage1.bit6.ha1.sum.layer1.nand": [ + "stage0.bit6.ha2.sum", + "pp.r2.c4" ], - "stage1.sub.fa7.xor1.layer1.or": [ - "stage1.shift.bit7", - "stage1.sub.notd7" + "stage1.bit6.ha1.sum.layer2": [ + "stage1.bit6.ha1.sum.layer1.or", + "stage1.bit6.ha1.sum.layer1.nand" ], - "stage1.sub.fa7.xor1.layer1.nand": [ - "stage1.shift.bit7", - "stage1.sub.notd7" + "stage1.bit6.ha1.carry": [ + "stage0.bit6.ha2.sum", + "pp.r2.c4" ], - "stage1.sub.fa7.xor1.layer2": [ - "stage1.sub.fa7.xor1.layer1.or", - "stage1.sub.fa7.xor1.layer1.nand" + "stage1.bit6.ha2.sum.layer1.or": [ + "stage1.bit6.ha1.sum.layer2", + "stage1.bit5.carry_or" ], - "stage1.sub.fa7.xor2.layer1.or": [ - "stage1.sub.fa7.xor1.layer2", - "stage1.sub.fa6.or_carry" + "stage1.bit6.ha2.sum.layer1.nand": [ + "stage1.bit6.ha1.sum.layer2", + "stage1.bit5.carry_or" ], - "stage1.sub.fa7.xor2.layer1.nand": [ - "stage1.sub.fa7.xor1.layer2", - "stage1.sub.fa6.or_carry" + "stage1.bit6.ha2.sum.layer2": [ + "stage1.bit6.ha2.sum.layer1.or", + "stage1.bit6.ha2.sum.layer1.nand" ], - "stage1.sub.fa7.xor2.layer2": [ - "stage1.sub.fa7.xor2.layer1.or", - "stage1.sub.fa7.xor2.layer1.nand" + "stage1.bit6.ha2.carry": [ + "stage1.bit6.ha1.sum.layer2", + "stage1.bit5.carry_or" ], - "stage1.sub.fa7.and1": [ - "stage1.shift.bit7", - "stage1.sub.notd7" + "stage1.bit6.carry_or": [ + "stage1.bit6.ha1.carry", + "stage1.bit6.ha2.carry" ], - "stage1.sub.fa7.and2": [ - "stage1.sub.fa7.xor1.layer2", - "stage1.sub.fa6.or_carry" + "stage1.bit7.ha1.sum.layer1.or": [ + "stage0.bit7.ha2.sum", + "pp.r2.c5" ], - "stage1.sub.fa7.or_carry": [ - "stage1.sub.fa7.and1", - "stage1.sub.fa7.and2" + "stage1.bit7.ha1.sum.layer1.nand": [ + "stage0.bit7.ha2.sum", + "pp.r2.c5" ], - "stage1.cmp": [ - "stage1.sub.fa7.or_carry" + "stage1.bit7.ha1.sum.layer2": [ + "stage1.bit7.ha1.sum.layer1.or", + "stage1.bit7.ha1.sum.layer1.nand" ], - "stage1.or_dividend": [ - "stage1.shift.bit7", - "$dividend[6]" + "stage1.bit7.ha1.carry": [ + "stage0.bit7.ha2.sum", + "pp.r2.c5" ], - "stage1.mux0.not_sel": [ - "stage1.cmp" + "stage1.bit7.ha2.sum.layer1.or": [ + "stage1.bit7.ha1.sum.layer2", + "stage1.bit6.carry_or" ], - "stage1.mux0.and0": [ - "stage1.shift.bit0", - "stage1.mux0.not_sel" + "stage1.bit7.ha2.sum.layer1.nand": [ + "stage1.bit7.ha1.sum.layer2", + "stage1.bit6.carry_or" ], - "stage1.mux0.and1": [ - "stage1.sub.fa0.xor2.layer2", - "stage1.cmp" + "stage1.bit7.ha2.sum.layer2": [ + "stage1.bit7.ha2.sum.layer1.or", + "stage1.bit7.ha2.sum.layer1.nand" ], - "stage1.mux0.or": [ - "stage1.mux0.and0", - "stage1.mux0.and1" + "stage1.bit7.ha2.carry": [ + "stage1.bit7.ha1.sum.layer2", + "stage1.bit6.carry_or" ], - "stage1.mux1.not_sel": [ - "stage1.cmp" + "stage1.bit7.carry_or": [ + "stage1.bit7.ha1.carry", + "stage1.bit7.ha2.carry" ], - "stage1.mux1.and0": [ - "stage1.shift.bit1", - "stage1.mux1.not_sel" + "stage1.bit8.ha1.sum.layer1.or": [ + "stage0.bit8.ha2.sum", + "pp.r2.c6" ], - "stage1.mux1.and1": [ - "stage1.sub.fa1.xor2.layer2", - "stage1.cmp" + "stage1.bit8.ha1.sum.layer1.nand": [ + "stage0.bit8.ha2.sum", + "pp.r2.c6" ], - "stage1.mux1.or": [ - "stage1.mux1.and0", - "stage1.mux1.and1" + "stage1.bit8.ha1.sum.layer2": [ + "stage1.bit8.ha1.sum.layer1.or", + "stage1.bit8.ha1.sum.layer1.nand" ], - "stage1.mux2.not_sel": [ - "stage1.cmp" + "stage1.bit8.ha1.carry": [ + "stage0.bit8.ha2.sum", + "pp.r2.c6" ], - "stage1.mux2.and0": [ - "stage1.shift.bit2", - "stage1.mux2.not_sel" + "stage1.bit8.ha2.sum.layer1.or": [ + "stage1.bit8.ha1.sum.layer2", + "stage1.bit7.carry_or" ], - "stage1.mux2.and1": [ - "stage1.sub.fa2.xor2.layer2", - "stage1.cmp" + "stage1.bit8.ha2.sum.layer1.nand": [ + "stage1.bit8.ha1.sum.layer2", + "stage1.bit7.carry_or" ], - "stage1.mux2.or": [ - "stage1.mux2.and0", - "stage1.mux2.and1" + "stage1.bit8.ha2.sum.layer2": [ + "stage1.bit8.ha2.sum.layer1.or", + "stage1.bit8.ha2.sum.layer1.nand" ], - "stage1.mux3.not_sel": [ - "stage1.cmp" + "stage1.bit8.ha2.carry": [ + "stage1.bit8.ha1.sum.layer2", + "stage1.bit7.carry_or" ], - "stage1.mux3.and0": [ - "stage1.shift.bit3", - "stage1.mux3.not_sel" + "stage1.bit8.carry_or": [ + "stage1.bit8.ha1.carry", + "stage1.bit8.ha2.carry" ], - "stage1.mux3.and1": [ - "stage1.sub.fa3.xor2.layer2", - "stage1.cmp" + "stage1.bit9.ha1.sum.layer1.or": [ + "stage0.bit8.carry_or", + "pp.r2.c7" ], - "stage1.mux3.or": [ - "stage1.mux3.and0", - "stage1.mux3.and1" + "stage1.bit9.ha1.sum.layer1.nand": [ + "stage0.bit8.carry_or", + "pp.r2.c7" ], - "stage1.mux4.not_sel": [ - "stage1.cmp" + "stage1.bit9.ha1.sum.layer2": [ + "stage1.bit9.ha1.sum.layer1.or", + "stage1.bit9.ha1.sum.layer1.nand" ], - "stage1.mux4.and0": [ - "stage1.shift.bit4", - "stage1.mux4.not_sel" + "stage1.bit9.ha1.carry": [ + "stage0.bit8.carry_or", + "pp.r2.c7" ], - "stage1.mux4.and1": [ - "stage1.sub.fa4.xor2.layer2", - "stage1.cmp" + "stage1.bit9.ha2.sum.layer1.or": [ + "stage1.bit9.ha1.sum.layer2", + "stage1.bit8.carry_or" ], - "stage1.mux4.or": [ - "stage1.mux4.and0", - "stage1.mux4.and1" + "stage1.bit9.ha2.sum.layer1.nand": [ + "stage1.bit9.ha1.sum.layer2", + "stage1.bit8.carry_or" ], - "stage1.mux5.not_sel": [ - "stage1.cmp" + "stage1.bit9.ha2.sum.layer2": [ + "stage1.bit9.ha2.sum.layer1.or", + "stage1.bit9.ha2.sum.layer1.nand" ], - "stage1.mux5.and0": [ - "stage1.shift.bit5", - "stage1.mux5.not_sel" + "stage1.bit9.ha2.carry": [ + "stage1.bit9.ha1.sum.layer2", + "stage1.bit8.carry_or" ], - "stage1.mux5.and1": [ - "stage1.sub.fa5.xor2.layer2", - "stage1.cmp" + "stage1.bit9.carry_or": [ + "stage1.bit9.ha1.carry", + "stage1.bit9.ha2.carry" ], - "stage1.mux5.or": [ - "stage1.mux5.and0", - "stage1.mux5.and1" + "stage2.bit0.ha1.sum.layer1.or": [ + "stage1.bit0.ha2.sum", + "#0" ], - "stage1.mux6.not_sel": [ - "stage1.cmp" + "stage2.bit0.ha1.sum.layer1.nand": [ + "stage1.bit0.ha2.sum", + "#0" ], - "stage1.mux6.and0": [ - "stage1.shift.bit6", - "stage1.mux6.not_sel" + "stage2.bit0.ha1.sum.layer2": [ + "stage2.bit0.ha1.sum.layer1.or", + "stage2.bit0.ha1.sum.layer1.nand" ], - "stage1.mux6.and1": [ - "stage1.sub.fa6.xor2.layer2", - "stage1.cmp" + "stage2.bit0.ha1.carry": [ + "stage1.bit0.ha2.sum", + "#0" ], - "stage1.mux6.or": [ - "stage1.mux6.and0", - "stage1.mux6.and1" + "stage2.bit0.ha2.sum.layer1.or": [ + "stage2.bit0.ha1.sum.layer2", + "#0" ], - "stage1.mux7.not_sel": [ - "stage1.cmp" + "stage2.bit0.ha2.sum.layer1.nand": [ + "stage2.bit0.ha1.sum.layer2", + "#0" ], - "stage1.mux7.and0": [ - "stage1.shift.bit7", - "stage1.mux7.not_sel" + "stage2.bit0.ha2.sum.layer2": [ + "stage2.bit0.ha2.sum.layer1.or", + "stage2.bit0.ha2.sum.layer1.nand" ], - "stage1.mux7.and1": [ - "stage1.sub.fa7.xor2.layer2", - "stage1.cmp" + "stage2.bit0.ha2.carry": [ + "stage2.bit0.ha1.sum.layer2", + "#0" ], - "stage1.mux7.or": [ - "stage1.mux7.and0", - "stage1.mux7.and1" + "stage2.bit0.carry_or": [ + "stage2.bit0.ha1.carry", + "stage2.bit0.ha2.carry" ], - "stage2.shift.bit0": [ - "$dividend[5]" + "stage2.bit1.ha1.sum.layer1.or": [ + "stage1.bit1.ha2.sum", + "#0" ], - "stage2.shift.bit1": [ - "stage1.mux0.or" + "stage2.bit1.ha1.sum.layer1.nand": [ + "stage1.bit1.ha2.sum", + "#0" ], - "stage2.shift.bit2": [ - "stage1.mux1.or" + "stage2.bit1.ha1.sum.layer2": [ + "stage2.bit1.ha1.sum.layer1.or", + "stage2.bit1.ha1.sum.layer1.nand" ], - "stage2.shift.bit3": [ - "stage1.mux2.or" + "stage2.bit1.ha1.carry": [ + "stage1.bit1.ha2.sum", + "#0" ], - "stage2.shift.bit4": [ - "stage1.mux3.or" + "stage2.bit1.ha2.sum.layer1.or": [ + "stage2.bit1.ha1.sum.layer2", + "stage2.bit0.carry_or" ], - "stage2.shift.bit5": [ - "stage1.mux4.or" + "stage2.bit1.ha2.sum.layer1.nand": [ + "stage2.bit1.ha1.sum.layer2", + "stage2.bit0.carry_or" ], - "stage2.shift.bit6": [ - "stage1.mux5.or" + "stage2.bit1.ha2.sum.layer2": [ + "stage2.bit1.ha2.sum.layer1.or", + "stage2.bit1.ha2.sum.layer1.nand" ], - "stage2.shift.bit7": [ - "stage1.mux6.or" + "stage2.bit1.ha2.carry": [ + "stage2.bit1.ha1.sum.layer2", + "stage2.bit0.carry_or" ], - "stage2.sub.notd0": [ - "$divisor[0]" + "stage2.bit1.carry_or": [ + "stage2.bit1.ha1.carry", + "stage2.bit1.ha2.carry" ], - "stage2.sub.notd1": [ - "$divisor[1]" + "stage2.bit2.ha1.sum.layer1.or": [ + "stage1.bit2.ha2.sum", + "#0" ], - "stage2.sub.notd2": [ - "$divisor[2]" + "stage2.bit2.ha1.sum.layer1.nand": [ + "stage1.bit2.ha2.sum", + "#0" ], - "stage2.sub.notd3": [ - "$divisor[3]" + "stage2.bit2.ha1.sum.layer2": [ + "stage2.bit2.ha1.sum.layer1.or", + "stage2.bit2.ha1.sum.layer1.nand" ], - "stage2.sub.notd4": [ - "$divisor[4]" + "stage2.bit2.ha1.carry": [ + "stage1.bit2.ha2.sum", + "#0" ], - "stage2.sub.notd5": [ - "$divisor[5]" + "stage2.bit2.ha2.sum.layer1.or": [ + "stage2.bit2.ha1.sum.layer2", + "stage2.bit1.carry_or" ], - "stage2.sub.notd6": [ - "$divisor[6]" + "stage2.bit2.ha2.sum.layer1.nand": [ + "stage2.bit2.ha1.sum.layer2", + "stage2.bit1.carry_or" ], - "stage2.sub.notd7": [ - "$divisor[7]" + "stage2.bit2.ha2.sum.layer2": [ + "stage2.bit2.ha2.sum.layer1.or", + "stage2.bit2.ha2.sum.layer1.nand" ], - "stage2.sub.fa0.xor1.layer1.or": [ - "stage2.shift.bit0", - "stage2.sub.notd0" + "stage2.bit2.ha2.carry": [ + "stage2.bit2.ha1.sum.layer2", + "stage2.bit1.carry_or" ], - "stage2.sub.fa0.xor1.layer1.nand": [ - "stage2.shift.bit0", - "stage2.sub.notd0" + "stage2.bit2.carry_or": [ + "stage2.bit2.ha1.carry", + "stage2.bit2.ha2.carry" ], - "stage2.sub.fa0.xor1.layer2": [ - "stage2.sub.fa0.xor1.layer1.or", - "stage2.sub.fa0.xor1.layer1.nand" + "stage2.bit3.ha1.sum.layer1.or": [ + "stage1.bit3.ha2.sum", + "pp.r3.c0" ], - "stage2.sub.fa0.xor2.layer1.or": [ - "stage2.sub.fa0.xor1.layer2", - "#1" + "stage2.bit3.ha1.sum.layer1.nand": [ + "stage1.bit3.ha2.sum", + "pp.r3.c0" ], - "stage2.sub.fa0.xor2.layer1.nand": [ - "stage2.sub.fa0.xor1.layer2", - "#1" + "stage2.bit3.ha1.sum.layer2": [ + "stage2.bit3.ha1.sum.layer1.or", + "stage2.bit3.ha1.sum.layer1.nand" ], - "stage2.sub.fa0.xor2.layer2": [ - "stage2.sub.fa0.xor2.layer1.or", - "stage2.sub.fa0.xor2.layer1.nand" + "stage2.bit3.ha1.carry": [ + "stage1.bit3.ha2.sum", + "pp.r3.c0" ], - "stage2.sub.fa0.and1": [ - "stage2.shift.bit0", - "stage2.sub.notd0" + "stage2.bit3.ha2.sum.layer1.or": [ + "stage2.bit3.ha1.sum.layer2", + "stage2.bit2.carry_or" ], - "stage2.sub.fa0.and2": [ - "stage2.sub.fa0.xor1.layer2", - "#1" + "stage2.bit3.ha2.sum.layer1.nand": [ + "stage2.bit3.ha1.sum.layer2", + "stage2.bit2.carry_or" ], - "stage2.sub.fa0.or_carry": [ - "stage2.sub.fa0.and1", - "stage2.sub.fa0.and2" + "stage2.bit3.ha2.sum.layer2": [ + "stage2.bit3.ha2.sum.layer1.or", + "stage2.bit3.ha2.sum.layer1.nand" ], - "stage2.sub.fa1.xor1.layer1.or": [ - "stage2.shift.bit1", - "stage2.sub.notd1" + "stage2.bit3.ha2.carry": [ + "stage2.bit3.ha1.sum.layer2", + "stage2.bit2.carry_or" ], - "stage2.sub.fa1.xor1.layer1.nand": [ - "stage2.shift.bit1", - "stage2.sub.notd1" + "stage2.bit3.carry_or": [ + "stage2.bit3.ha1.carry", + "stage2.bit3.ha2.carry" ], - "stage2.sub.fa1.xor1.layer2": [ - "stage2.sub.fa1.xor1.layer1.or", - "stage2.sub.fa1.xor1.layer1.nand" + "stage2.bit4.ha1.sum.layer1.or": [ + "stage1.bit4.ha2.sum", + "pp.r3.c1" ], - "stage2.sub.fa1.xor2.layer1.or": [ - "stage2.sub.fa1.xor1.layer2", - "stage2.sub.fa0.or_carry" + "stage2.bit4.ha1.sum.layer1.nand": [ + "stage1.bit4.ha2.sum", + "pp.r3.c1" ], - "stage2.sub.fa1.xor2.layer1.nand": [ - "stage2.sub.fa1.xor1.layer2", - "stage2.sub.fa0.or_carry" + "stage2.bit4.ha1.sum.layer2": [ + "stage2.bit4.ha1.sum.layer1.or", + "stage2.bit4.ha1.sum.layer1.nand" ], - "stage2.sub.fa1.xor2.layer2": [ - "stage2.sub.fa1.xor2.layer1.or", - "stage2.sub.fa1.xor2.layer1.nand" + "stage2.bit4.ha1.carry": [ + "stage1.bit4.ha2.sum", + "pp.r3.c1" ], - "stage2.sub.fa1.and1": [ - "stage2.shift.bit1", - "stage2.sub.notd1" + "stage2.bit4.ha2.sum.layer1.or": [ + "stage2.bit4.ha1.sum.layer2", + "stage2.bit3.carry_or" ], - "stage2.sub.fa1.and2": [ - "stage2.sub.fa1.xor1.layer2", - "stage2.sub.fa0.or_carry" + "stage2.bit4.ha2.sum.layer1.nand": [ + "stage2.bit4.ha1.sum.layer2", + "stage2.bit3.carry_or" ], - "stage2.sub.fa1.or_carry": [ - "stage2.sub.fa1.and1", - "stage2.sub.fa1.and2" + "stage2.bit4.ha2.sum.layer2": [ + "stage2.bit4.ha2.sum.layer1.or", + "stage2.bit4.ha2.sum.layer1.nand" ], - "stage2.sub.fa2.xor1.layer1.or": [ - "stage2.shift.bit2", - "stage2.sub.notd2" + "stage2.bit4.ha2.carry": [ + "stage2.bit4.ha1.sum.layer2", + "stage2.bit3.carry_or" ], - "stage2.sub.fa2.xor1.layer1.nand": [ - "stage2.shift.bit2", - "stage2.sub.notd2" + "stage2.bit4.carry_or": [ + "stage2.bit4.ha1.carry", + "stage2.bit4.ha2.carry" ], - "stage2.sub.fa2.xor1.layer2": [ - "stage2.sub.fa2.xor1.layer1.or", - "stage2.sub.fa2.xor1.layer1.nand" + "stage2.bit5.ha1.sum.layer1.or": [ + "stage1.bit5.ha2.sum", + "pp.r3.c2" ], - "stage2.sub.fa2.xor2.layer1.or": [ - "stage2.sub.fa2.xor1.layer2", - "stage2.sub.fa1.or_carry" + "stage2.bit5.ha1.sum.layer1.nand": [ + "stage1.bit5.ha2.sum", + "pp.r3.c2" ], - "stage2.sub.fa2.xor2.layer1.nand": [ - "stage2.sub.fa2.xor1.layer2", - "stage2.sub.fa1.or_carry" + "stage2.bit5.ha1.sum.layer2": [ + "stage2.bit5.ha1.sum.layer1.or", + "stage2.bit5.ha1.sum.layer1.nand" ], - "stage2.sub.fa2.xor2.layer2": [ - "stage2.sub.fa2.xor2.layer1.or", - "stage2.sub.fa2.xor2.layer1.nand" + "stage2.bit5.ha1.carry": [ + "stage1.bit5.ha2.sum", + "pp.r3.c2" ], - "stage2.sub.fa2.and1": [ - "stage2.shift.bit2", - "stage2.sub.notd2" + "stage2.bit5.ha2.sum.layer1.or": [ + "stage2.bit5.ha1.sum.layer2", + "stage2.bit4.carry_or" ], - "stage2.sub.fa2.and2": [ - "stage2.sub.fa2.xor1.layer2", - "stage2.sub.fa1.or_carry" + "stage2.bit5.ha2.sum.layer1.nand": [ + "stage2.bit5.ha1.sum.layer2", + "stage2.bit4.carry_or" ], - "stage2.sub.fa2.or_carry": [ - "stage2.sub.fa2.and1", - "stage2.sub.fa2.and2" + "stage2.bit5.ha2.sum.layer2": [ + "stage2.bit5.ha2.sum.layer1.or", + "stage2.bit5.ha2.sum.layer1.nand" ], - "stage2.sub.fa3.xor1.layer1.or": [ - "stage2.shift.bit3", - "stage2.sub.notd3" + "stage2.bit5.ha2.carry": [ + "stage2.bit5.ha1.sum.layer2", + "stage2.bit4.carry_or" ], - "stage2.sub.fa3.xor1.layer1.nand": [ - "stage2.shift.bit3", - "stage2.sub.notd3" + "stage2.bit5.carry_or": [ + "stage2.bit5.ha1.carry", + "stage2.bit5.ha2.carry" ], - "stage2.sub.fa3.xor1.layer2": [ - "stage2.sub.fa3.xor1.layer1.or", - "stage2.sub.fa3.xor1.layer1.nand" + "stage2.bit6.ha1.sum.layer1.or": [ + "stage1.bit6.ha2.sum", + "pp.r3.c3" ], - "stage2.sub.fa3.xor2.layer1.or": [ - "stage2.sub.fa3.xor1.layer2", - "stage2.sub.fa2.or_carry" + "stage2.bit6.ha1.sum.layer1.nand": [ + "stage1.bit6.ha2.sum", + "pp.r3.c3" ], - "stage2.sub.fa3.xor2.layer1.nand": [ - "stage2.sub.fa3.xor1.layer2", - "stage2.sub.fa2.or_carry" + "stage2.bit6.ha1.sum.layer2": [ + "stage2.bit6.ha1.sum.layer1.or", + "stage2.bit6.ha1.sum.layer1.nand" ], - "stage2.sub.fa3.xor2.layer2": [ - "stage2.sub.fa3.xor2.layer1.or", - "stage2.sub.fa3.xor2.layer1.nand" + "stage2.bit6.ha1.carry": [ + "stage1.bit6.ha2.sum", + "pp.r3.c3" ], - "stage2.sub.fa3.and1": [ - "stage2.shift.bit3", - "stage2.sub.notd3" + "stage2.bit6.ha2.sum.layer1.or": [ + "stage2.bit6.ha1.sum.layer2", + "stage2.bit5.carry_or" ], - "stage2.sub.fa3.and2": [ - "stage2.sub.fa3.xor1.layer2", - "stage2.sub.fa2.or_carry" + "stage2.bit6.ha2.sum.layer1.nand": [ + "stage2.bit6.ha1.sum.layer2", + "stage2.bit5.carry_or" ], - "stage2.sub.fa3.or_carry": [ - "stage2.sub.fa3.and1", - "stage2.sub.fa3.and2" + "stage2.bit6.ha2.sum.layer2": [ + "stage2.bit6.ha2.sum.layer1.or", + "stage2.bit6.ha2.sum.layer1.nand" ], - "stage2.sub.fa4.xor1.layer1.or": [ - "stage2.shift.bit4", - "stage2.sub.notd4" + "stage2.bit6.ha2.carry": [ + "stage2.bit6.ha1.sum.layer2", + "stage2.bit5.carry_or" ], - "stage2.sub.fa4.xor1.layer1.nand": [ - "stage2.shift.bit4", - "stage2.sub.notd4" + "stage2.bit6.carry_or": [ + "stage2.bit6.ha1.carry", + "stage2.bit6.ha2.carry" ], - "stage2.sub.fa4.xor1.layer2": [ - "stage2.sub.fa4.xor1.layer1.or", - "stage2.sub.fa4.xor1.layer1.nand" + "stage2.bit7.ha1.sum.layer1.or": [ + "stage1.bit7.ha2.sum", + "pp.r3.c4" ], - "stage2.sub.fa4.xor2.layer1.or": [ - "stage2.sub.fa4.xor1.layer2", - "stage2.sub.fa3.or_carry" + "stage2.bit7.ha1.sum.layer1.nand": [ + "stage1.bit7.ha2.sum", + "pp.r3.c4" ], - "stage2.sub.fa4.xor2.layer1.nand": [ - "stage2.sub.fa4.xor1.layer2", - "stage2.sub.fa3.or_carry" + "stage2.bit7.ha1.sum.layer2": [ + "stage2.bit7.ha1.sum.layer1.or", + "stage2.bit7.ha1.sum.layer1.nand" ], - "stage2.sub.fa4.xor2.layer2": [ - "stage2.sub.fa4.xor2.layer1.or", - "stage2.sub.fa4.xor2.layer1.nand" + "stage2.bit7.ha1.carry": [ + "stage1.bit7.ha2.sum", + "pp.r3.c4" ], - "stage2.sub.fa4.and1": [ - "stage2.shift.bit4", - "stage2.sub.notd4" + "stage2.bit7.ha2.sum.layer1.or": [ + "stage2.bit7.ha1.sum.layer2", + "stage2.bit6.carry_or" ], - "stage2.sub.fa4.and2": [ - "stage2.sub.fa4.xor1.layer2", - "stage2.sub.fa3.or_carry" + "stage2.bit7.ha2.sum.layer1.nand": [ + "stage2.bit7.ha1.sum.layer2", + "stage2.bit6.carry_or" ], - "stage2.sub.fa4.or_carry": [ - "stage2.sub.fa4.and1", - "stage2.sub.fa4.and2" + "stage2.bit7.ha2.sum.layer2": [ + "stage2.bit7.ha2.sum.layer1.or", + "stage2.bit7.ha2.sum.layer1.nand" ], - "stage2.sub.fa5.xor1.layer1.or": [ - "stage2.shift.bit5", - "stage2.sub.notd5" + "stage2.bit7.ha2.carry": [ + "stage2.bit7.ha1.sum.layer2", + "stage2.bit6.carry_or" ], - "stage2.sub.fa5.xor1.layer1.nand": [ - "stage2.shift.bit5", - "stage2.sub.notd5" + "stage2.bit7.carry_or": [ + "stage2.bit7.ha1.carry", + "stage2.bit7.ha2.carry" ], - "stage2.sub.fa5.xor1.layer2": [ - "stage2.sub.fa5.xor1.layer1.or", - "stage2.sub.fa5.xor1.layer1.nand" + "stage2.bit8.ha1.sum.layer1.or": [ + "stage1.bit8.ha2.sum", + "pp.r3.c5" ], - "stage2.sub.fa5.xor2.layer1.or": [ - "stage2.sub.fa5.xor1.layer2", - "stage2.sub.fa4.or_carry" + "stage2.bit8.ha1.sum.layer1.nand": [ + "stage1.bit8.ha2.sum", + "pp.r3.c5" ], - "stage2.sub.fa5.xor2.layer1.nand": [ - "stage2.sub.fa5.xor1.layer2", - "stage2.sub.fa4.or_carry" + "stage2.bit8.ha1.sum.layer2": [ + "stage2.bit8.ha1.sum.layer1.or", + "stage2.bit8.ha1.sum.layer1.nand" ], - "stage2.sub.fa5.xor2.layer2": [ - "stage2.sub.fa5.xor2.layer1.or", - "stage2.sub.fa5.xor2.layer1.nand" + "stage2.bit8.ha1.carry": [ + "stage1.bit8.ha2.sum", + "pp.r3.c5" ], - "stage2.sub.fa5.and1": [ - "stage2.shift.bit5", - "stage2.sub.notd5" + "stage2.bit8.ha2.sum.layer1.or": [ + "stage2.bit8.ha1.sum.layer2", + "stage2.bit7.carry_or" ], - "stage2.sub.fa5.and2": [ - "stage2.sub.fa5.xor1.layer2", - "stage2.sub.fa4.or_carry" + "stage2.bit8.ha2.sum.layer1.nand": [ + "stage2.bit8.ha1.sum.layer2", + "stage2.bit7.carry_or" ], - "stage2.sub.fa5.or_carry": [ - "stage2.sub.fa5.and1", - "stage2.sub.fa5.and2" + "stage2.bit8.ha2.sum.layer2": [ + "stage2.bit8.ha2.sum.layer1.or", + "stage2.bit8.ha2.sum.layer1.nand" ], - "stage2.sub.fa6.xor1.layer1.or": [ - "stage2.shift.bit6", - "stage2.sub.notd6" + "stage2.bit8.ha2.carry": [ + "stage2.bit8.ha1.sum.layer2", + "stage2.bit7.carry_or" ], - "stage2.sub.fa6.xor1.layer1.nand": [ - "stage2.shift.bit6", - "stage2.sub.notd6" + "stage2.bit8.carry_or": [ + "stage2.bit8.ha1.carry", + "stage2.bit8.ha2.carry" ], - "stage2.sub.fa6.xor1.layer2": [ - "stage2.sub.fa6.xor1.layer1.or", - "stage2.sub.fa6.xor1.layer1.nand" + "stage2.bit9.ha1.sum.layer1.or": [ + "stage1.bit9.ha2.sum", + "pp.r3.c6" ], - "stage2.sub.fa6.xor2.layer1.or": [ - "stage2.sub.fa6.xor1.layer2", - "stage2.sub.fa5.or_carry" + "stage2.bit9.ha1.sum.layer1.nand": [ + "stage1.bit9.ha2.sum", + "pp.r3.c6" ], - "stage2.sub.fa6.xor2.layer1.nand": [ - "stage2.sub.fa6.xor1.layer2", - "stage2.sub.fa5.or_carry" + "stage2.bit9.ha1.sum.layer2": [ + "stage2.bit9.ha1.sum.layer1.or", + "stage2.bit9.ha1.sum.layer1.nand" ], - "stage2.sub.fa6.xor2.layer2": [ - "stage2.sub.fa6.xor2.layer1.or", - "stage2.sub.fa6.xor2.layer1.nand" + "stage2.bit9.ha1.carry": [ + "stage1.bit9.ha2.sum", + "pp.r3.c6" ], - "stage2.sub.fa6.and1": [ - "stage2.shift.bit6", - "stage2.sub.notd6" + "stage2.bit9.ha2.sum.layer1.or": [ + "stage2.bit9.ha1.sum.layer2", + "stage2.bit8.carry_or" ], - "stage2.sub.fa6.and2": [ - "stage2.sub.fa6.xor1.layer2", - "stage2.sub.fa5.or_carry" + "stage2.bit9.ha2.sum.layer1.nand": [ + "stage2.bit9.ha1.sum.layer2", + "stage2.bit8.carry_or" ], - "stage2.sub.fa6.or_carry": [ - "stage2.sub.fa6.and1", - "stage2.sub.fa6.and2" + "stage2.bit9.ha2.sum.layer2": [ + "stage2.bit9.ha2.sum.layer1.or", + "stage2.bit9.ha2.sum.layer1.nand" ], - "stage2.sub.fa7.xor1.layer1.or": [ - "stage2.shift.bit7", - "stage2.sub.notd7" + "stage2.bit9.ha2.carry": [ + "stage2.bit9.ha1.sum.layer2", + "stage2.bit8.carry_or" ], - "stage2.sub.fa7.xor1.layer1.nand": [ - "stage2.shift.bit7", - "stage2.sub.notd7" + "stage2.bit9.carry_or": [ + "stage2.bit9.ha1.carry", + "stage2.bit9.ha2.carry" ], - "stage2.sub.fa7.xor1.layer2": [ - "stage2.sub.fa7.xor1.layer1.or", - "stage2.sub.fa7.xor1.layer1.nand" + "stage2.bit10.ha1.sum.layer1.or": [ + "stage1.bit9.carry_or", + "pp.r3.c7" ], - "stage2.sub.fa7.xor2.layer1.or": [ - "stage2.sub.fa7.xor1.layer2", - "stage2.sub.fa6.or_carry" + "stage2.bit10.ha1.sum.layer1.nand": [ + "stage1.bit9.carry_or", + "pp.r3.c7" ], - "stage2.sub.fa7.xor2.layer1.nand": [ - "stage2.sub.fa7.xor1.layer2", - "stage2.sub.fa6.or_carry" + "stage2.bit10.ha1.sum.layer2": [ + "stage2.bit10.ha1.sum.layer1.or", + "stage2.bit10.ha1.sum.layer1.nand" ], - "stage2.sub.fa7.xor2.layer2": [ - "stage2.sub.fa7.xor2.layer1.or", - "stage2.sub.fa7.xor2.layer1.nand" + "stage2.bit10.ha1.carry": [ + "stage1.bit9.carry_or", + "pp.r3.c7" ], - "stage2.sub.fa7.and1": [ - "stage2.shift.bit7", - "stage2.sub.notd7" + "stage2.bit10.ha2.sum.layer1.or": [ + "stage2.bit10.ha1.sum.layer2", + "stage2.bit9.carry_or" ], - "stage2.sub.fa7.and2": [ - "stage2.sub.fa7.xor1.layer2", - "stage2.sub.fa6.or_carry" + "stage2.bit10.ha2.sum.layer1.nand": [ + "stage2.bit10.ha1.sum.layer2", + "stage2.bit9.carry_or" ], - "stage2.sub.fa7.or_carry": [ - "stage2.sub.fa7.and1", - "stage2.sub.fa7.and2" + "stage2.bit10.ha2.sum.layer2": [ + "stage2.bit10.ha2.sum.layer1.or", + "stage2.bit10.ha2.sum.layer1.nand" ], - "stage2.cmp": [ - "stage2.sub.fa7.or_carry" + "stage2.bit10.ha2.carry": [ + "stage2.bit10.ha1.sum.layer2", + "stage2.bit9.carry_or" ], - "stage2.or_dividend": [ - "stage2.shift.bit7", - "$dividend[5]" + "stage2.bit10.carry_or": [ + "stage2.bit10.ha1.carry", + "stage2.bit10.ha2.carry" ], - "stage2.mux0.not_sel": [ - "stage2.cmp" + "stage3.bit0.ha1.sum.layer1.or": [ + "stage2.bit0.ha2.sum", + "#0" ], - "stage2.mux0.and0": [ - "stage2.shift.bit0", - "stage2.mux0.not_sel" + "stage3.bit0.ha1.sum.layer1.nand": [ + "stage2.bit0.ha2.sum", + "#0" ], - "stage2.mux0.and1": [ - "stage2.sub.fa0.xor2.layer2", - "stage2.cmp" + "stage3.bit0.ha1.sum.layer2": [ + "stage3.bit0.ha1.sum.layer1.or", + "stage3.bit0.ha1.sum.layer1.nand" ], - "stage2.mux0.or": [ - "stage2.mux0.and0", - "stage2.mux0.and1" + "stage3.bit0.ha1.carry": [ + "stage2.bit0.ha2.sum", + "#0" ], - "stage2.mux1.not_sel": [ - "stage2.cmp" + "stage3.bit0.ha2.sum.layer1.or": [ + "stage3.bit0.ha1.sum.layer2", + "#0" ], - "stage2.mux1.and0": [ - "stage2.shift.bit1", - "stage2.mux1.not_sel" + "stage3.bit0.ha2.sum.layer1.nand": [ + "stage3.bit0.ha1.sum.layer2", + "#0" ], - "stage2.mux1.and1": [ - "stage2.sub.fa1.xor2.layer2", - "stage2.cmp" + "stage3.bit0.ha2.sum.layer2": [ + "stage3.bit0.ha2.sum.layer1.or", + "stage3.bit0.ha2.sum.layer1.nand" ], - "stage2.mux1.or": [ - "stage2.mux1.and0", - "stage2.mux1.and1" + "stage3.bit0.ha2.carry": [ + "stage3.bit0.ha1.sum.layer2", + "#0" ], - "stage2.mux2.not_sel": [ - "stage2.cmp" + "stage3.bit0.carry_or": [ + "stage3.bit0.ha1.carry", + "stage3.bit0.ha2.carry" ], - "stage2.mux2.and0": [ - "stage2.shift.bit2", - "stage2.mux2.not_sel" + "stage3.bit1.ha1.sum.layer1.or": [ + "stage2.bit1.ha2.sum", + "#0" ], - "stage2.mux2.and1": [ - "stage2.sub.fa2.xor2.layer2", - "stage2.cmp" + "stage3.bit1.ha1.sum.layer1.nand": [ + "stage2.bit1.ha2.sum", + "#0" ], - "stage2.mux2.or": [ - "stage2.mux2.and0", - "stage2.mux2.and1" + "stage3.bit1.ha1.sum.layer2": [ + "stage3.bit1.ha1.sum.layer1.or", + "stage3.bit1.ha1.sum.layer1.nand" ], - "stage2.mux3.not_sel": [ - "stage2.cmp" + "stage3.bit1.ha1.carry": [ + "stage2.bit1.ha2.sum", + "#0" ], - "stage2.mux3.and0": [ - "stage2.shift.bit3", - "stage2.mux3.not_sel" + "stage3.bit1.ha2.sum.layer1.or": [ + "stage3.bit1.ha1.sum.layer2", + "stage3.bit0.carry_or" ], - "stage2.mux3.and1": [ - "stage2.sub.fa3.xor2.layer2", - "stage2.cmp" + "stage3.bit1.ha2.sum.layer1.nand": [ + "stage3.bit1.ha1.sum.layer2", + "stage3.bit0.carry_or" ], - "stage2.mux3.or": [ - "stage2.mux3.and0", - "stage2.mux3.and1" + "stage3.bit1.ha2.sum.layer2": [ + "stage3.bit1.ha2.sum.layer1.or", + "stage3.bit1.ha2.sum.layer1.nand" ], - "stage2.mux4.not_sel": [ - "stage2.cmp" + "stage3.bit1.ha2.carry": [ + "stage3.bit1.ha1.sum.layer2", + "stage3.bit0.carry_or" ], - "stage2.mux4.and0": [ - "stage2.shift.bit4", - "stage2.mux4.not_sel" + "stage3.bit1.carry_or": [ + "stage3.bit1.ha1.carry", + "stage3.bit1.ha2.carry" ], - "stage2.mux4.and1": [ - "stage2.sub.fa4.xor2.layer2", - "stage2.cmp" + "stage3.bit2.ha1.sum.layer1.or": [ + "stage2.bit2.ha2.sum", + "#0" ], - "stage2.mux4.or": [ - "stage2.mux4.and0", - "stage2.mux4.and1" + "stage3.bit2.ha1.sum.layer1.nand": [ + "stage2.bit2.ha2.sum", + "#0" ], - "stage2.mux5.not_sel": [ - "stage2.cmp" + "stage3.bit2.ha1.sum.layer2": [ + "stage3.bit2.ha1.sum.layer1.or", + "stage3.bit2.ha1.sum.layer1.nand" ], - "stage2.mux5.and0": [ - "stage2.shift.bit5", - "stage2.mux5.not_sel" + "stage3.bit2.ha1.carry": [ + "stage2.bit2.ha2.sum", + "#0" ], - "stage2.mux5.and1": [ - "stage2.sub.fa5.xor2.layer2", - "stage2.cmp" + "stage3.bit2.ha2.sum.layer1.or": [ + "stage3.bit2.ha1.sum.layer2", + "stage3.bit1.carry_or" ], - "stage2.mux5.or": [ - "stage2.mux5.and0", - "stage2.mux5.and1" + "stage3.bit2.ha2.sum.layer1.nand": [ + "stage3.bit2.ha1.sum.layer2", + "stage3.bit1.carry_or" ], - "stage2.mux6.not_sel": [ - "stage2.cmp" + "stage3.bit2.ha2.sum.layer2": [ + "stage3.bit2.ha2.sum.layer1.or", + "stage3.bit2.ha2.sum.layer1.nand" ], - "stage2.mux6.and0": [ - "stage2.shift.bit6", - "stage2.mux6.not_sel" + "stage3.bit2.ha2.carry": [ + "stage3.bit2.ha1.sum.layer2", + "stage3.bit1.carry_or" ], - "stage2.mux6.and1": [ - "stage2.sub.fa6.xor2.layer2", - "stage2.cmp" + "stage3.bit2.carry_or": [ + "stage3.bit2.ha1.carry", + "stage3.bit2.ha2.carry" ], - "stage2.mux6.or": [ - "stage2.mux6.and0", - "stage2.mux6.and1" + "stage3.bit3.ha1.sum.layer1.or": [ + "stage2.bit3.ha2.sum", + "#0" ], - "stage2.mux7.not_sel": [ - "stage2.cmp" + "stage3.bit3.ha1.sum.layer1.nand": [ + "stage2.bit3.ha2.sum", + "#0" ], - "stage2.mux7.and0": [ - "stage2.shift.bit7", - "stage2.mux7.not_sel" + "stage3.bit3.ha1.sum.layer2": [ + "stage3.bit3.ha1.sum.layer1.or", + "stage3.bit3.ha1.sum.layer1.nand" ], - "stage2.mux7.and1": [ - "stage2.sub.fa7.xor2.layer2", - "stage2.cmp" + "stage3.bit3.ha1.carry": [ + "stage2.bit3.ha2.sum", + "#0" ], - "stage2.mux7.or": [ - "stage2.mux7.and0", - "stage2.mux7.and1" + "stage3.bit3.ha2.sum.layer1.or": [ + "stage3.bit3.ha1.sum.layer2", + "stage3.bit2.carry_or" ], - "stage3.shift.bit0": [ - "$dividend[4]" + "stage3.bit3.ha2.sum.layer1.nand": [ + "stage3.bit3.ha1.sum.layer2", + "stage3.bit2.carry_or" ], - "stage3.shift.bit1": [ - "stage2.mux0.or" + "stage3.bit3.ha2.sum.layer2": [ + "stage3.bit3.ha2.sum.layer1.or", + "stage3.bit3.ha2.sum.layer1.nand" ], - "stage3.shift.bit2": [ - "stage2.mux1.or" + "stage3.bit3.ha2.carry": [ + "stage3.bit3.ha1.sum.layer2", + "stage3.bit2.carry_or" ], - "stage3.shift.bit3": [ - "stage2.mux2.or" + "stage3.bit3.carry_or": [ + "stage3.bit3.ha1.carry", + "stage3.bit3.ha2.carry" ], - "stage3.shift.bit4": [ - "stage2.mux3.or" + "stage3.bit4.ha1.sum.layer1.or": [ + "stage2.bit4.ha2.sum", + "pp.r4.c0" ], - "stage3.shift.bit5": [ - "stage2.mux4.or" + "stage3.bit4.ha1.sum.layer1.nand": [ + "stage2.bit4.ha2.sum", + "pp.r4.c0" ], - "stage3.shift.bit6": [ - "stage2.mux5.or" + "stage3.bit4.ha1.sum.layer2": [ + "stage3.bit4.ha1.sum.layer1.or", + "stage3.bit4.ha1.sum.layer1.nand" ], - "stage3.shift.bit7": [ - "stage2.mux6.or" + "stage3.bit4.ha1.carry": [ + "stage2.bit4.ha2.sum", + "pp.r4.c0" ], - "stage3.sub.notd0": [ - "$divisor[0]" + "stage3.bit4.ha2.sum.layer1.or": [ + "stage3.bit4.ha1.sum.layer2", + "stage3.bit3.carry_or" ], - "stage3.sub.notd1": [ - "$divisor[1]" + "stage3.bit4.ha2.sum.layer1.nand": [ + "stage3.bit4.ha1.sum.layer2", + "stage3.bit3.carry_or" ], - "stage3.sub.notd2": [ - "$divisor[2]" + "stage3.bit4.ha2.sum.layer2": [ + "stage3.bit4.ha2.sum.layer1.or", + "stage3.bit4.ha2.sum.layer1.nand" ], - "stage3.sub.notd3": [ - "$divisor[3]" + "stage3.bit4.ha2.carry": [ + "stage3.bit4.ha1.sum.layer2", + "stage3.bit3.carry_or" ], - "stage3.sub.notd4": [ - "$divisor[4]" + "stage3.bit4.carry_or": [ + "stage3.bit4.ha1.carry", + "stage3.bit4.ha2.carry" ], - "stage3.sub.notd5": [ - "$divisor[5]" + "stage3.bit5.ha1.sum.layer1.or": [ + "stage2.bit5.ha2.sum", + "pp.r4.c1" ], - "stage3.sub.notd6": [ - "$divisor[6]" + "stage3.bit5.ha1.sum.layer1.nand": [ + "stage2.bit5.ha2.sum", + "pp.r4.c1" ], - "stage3.sub.notd7": [ - "$divisor[7]" + "stage3.bit5.ha1.sum.layer2": [ + "stage3.bit5.ha1.sum.layer1.or", + "stage3.bit5.ha1.sum.layer1.nand" ], - "stage3.sub.fa0.xor1.layer1.or": [ - "stage3.shift.bit0", - "stage3.sub.notd0" + "stage3.bit5.ha1.carry": [ + "stage2.bit5.ha2.sum", + "pp.r4.c1" ], - "stage3.sub.fa0.xor1.layer1.nand": [ - "stage3.shift.bit0", - "stage3.sub.notd0" + "stage3.bit5.ha2.sum.layer1.or": [ + "stage3.bit5.ha1.sum.layer2", + "stage3.bit4.carry_or" ], - "stage3.sub.fa0.xor1.layer2": [ - "stage3.sub.fa0.xor1.layer1.or", - "stage3.sub.fa0.xor1.layer1.nand" + "stage3.bit5.ha2.sum.layer1.nand": [ + "stage3.bit5.ha1.sum.layer2", + "stage3.bit4.carry_or" ], - "stage3.sub.fa0.xor2.layer1.or": [ - "stage3.sub.fa0.xor1.layer2", - "#1" + "stage3.bit5.ha2.sum.layer2": [ + "stage3.bit5.ha2.sum.layer1.or", + "stage3.bit5.ha2.sum.layer1.nand" ], - "stage3.sub.fa0.xor2.layer1.nand": [ - "stage3.sub.fa0.xor1.layer2", - "#1" + "stage3.bit5.ha2.carry": [ + "stage3.bit5.ha1.sum.layer2", + "stage3.bit4.carry_or" ], - "stage3.sub.fa0.xor2.layer2": [ - "stage3.sub.fa0.xor2.layer1.or", - "stage3.sub.fa0.xor2.layer1.nand" + "stage3.bit5.carry_or": [ + "stage3.bit5.ha1.carry", + "stage3.bit5.ha2.carry" ], - "stage3.sub.fa0.and1": [ - "stage3.shift.bit0", - "stage3.sub.notd0" + "stage3.bit6.ha1.sum.layer1.or": [ + "stage2.bit6.ha2.sum", + "pp.r4.c2" ], - "stage3.sub.fa0.and2": [ - "stage3.sub.fa0.xor1.layer2", - "#1" + "stage3.bit6.ha1.sum.layer1.nand": [ + "stage2.bit6.ha2.sum", + "pp.r4.c2" ], - "stage3.sub.fa0.or_carry": [ - "stage3.sub.fa0.and1", - "stage3.sub.fa0.and2" + "stage3.bit6.ha1.sum.layer2": [ + "stage3.bit6.ha1.sum.layer1.or", + "stage3.bit6.ha1.sum.layer1.nand" ], - "stage3.sub.fa1.xor1.layer1.or": [ - "stage3.shift.bit1", - "stage3.sub.notd1" + "stage3.bit6.ha1.carry": [ + "stage2.bit6.ha2.sum", + "pp.r4.c2" ], - "stage3.sub.fa1.xor1.layer1.nand": [ - "stage3.shift.bit1", - "stage3.sub.notd1" + "stage3.bit6.ha2.sum.layer1.or": [ + "stage3.bit6.ha1.sum.layer2", + "stage3.bit5.carry_or" ], - "stage3.sub.fa1.xor1.layer2": [ - "stage3.sub.fa1.xor1.layer1.or", - "stage3.sub.fa1.xor1.layer1.nand" + "stage3.bit6.ha2.sum.layer1.nand": [ + "stage3.bit6.ha1.sum.layer2", + "stage3.bit5.carry_or" ], - "stage3.sub.fa1.xor2.layer1.or": [ - "stage3.sub.fa1.xor1.layer2", - "stage3.sub.fa0.or_carry" + "stage3.bit6.ha2.sum.layer2": [ + "stage3.bit6.ha2.sum.layer1.or", + "stage3.bit6.ha2.sum.layer1.nand" ], - "stage3.sub.fa1.xor2.layer1.nand": [ - "stage3.sub.fa1.xor1.layer2", - "stage3.sub.fa0.or_carry" + "stage3.bit6.ha2.carry": [ + "stage3.bit6.ha1.sum.layer2", + "stage3.bit5.carry_or" ], - "stage3.sub.fa1.xor2.layer2": [ - "stage3.sub.fa1.xor2.layer1.or", - "stage3.sub.fa1.xor2.layer1.nand" + "stage3.bit6.carry_or": [ + "stage3.bit6.ha1.carry", + "stage3.bit6.ha2.carry" ], - "stage3.sub.fa1.and1": [ - "stage3.shift.bit1", - "stage3.sub.notd1" + "stage3.bit7.ha1.sum.layer1.or": [ + "stage2.bit7.ha2.sum", + "pp.r4.c3" + ], + "stage3.bit7.ha1.sum.layer1.nand": [ + "stage2.bit7.ha2.sum", + "pp.r4.c3" + ], + "stage3.bit7.ha1.sum.layer2": [ + "stage3.bit7.ha1.sum.layer1.or", + "stage3.bit7.ha1.sum.layer1.nand" + ], + "stage3.bit7.ha1.carry": [ + "stage2.bit7.ha2.sum", + "pp.r4.c3" + ], + "stage3.bit7.ha2.sum.layer1.or": [ + "stage3.bit7.ha1.sum.layer2", + "stage3.bit6.carry_or" + ], + "stage3.bit7.ha2.sum.layer1.nand": [ + "stage3.bit7.ha1.sum.layer2", + "stage3.bit6.carry_or" + ], + "stage3.bit7.ha2.sum.layer2": [ + "stage3.bit7.ha2.sum.layer1.or", + "stage3.bit7.ha2.sum.layer1.nand" + ], + "stage3.bit7.ha2.carry": [ + "stage3.bit7.ha1.sum.layer2", + "stage3.bit6.carry_or" + ], + "stage3.bit7.carry_or": [ + "stage3.bit7.ha1.carry", + "stage3.bit7.ha2.carry" + ], + "stage3.bit8.ha1.sum.layer1.or": [ + "stage2.bit8.ha2.sum", + "pp.r4.c4" + ], + "stage3.bit8.ha1.sum.layer1.nand": [ + "stage2.bit8.ha2.sum", + "pp.r4.c4" + ], + "stage3.bit8.ha1.sum.layer2": [ + "stage3.bit8.ha1.sum.layer1.or", + "stage3.bit8.ha1.sum.layer1.nand" + ], + "stage3.bit8.ha1.carry": [ + "stage2.bit8.ha2.sum", + "pp.r4.c4" + ], + "stage3.bit8.ha2.sum.layer1.or": [ + "stage3.bit8.ha1.sum.layer2", + "stage3.bit7.carry_or" + ], + "stage3.bit8.ha2.sum.layer1.nand": [ + "stage3.bit8.ha1.sum.layer2", + "stage3.bit7.carry_or" + ], + "stage3.bit8.ha2.sum.layer2": [ + "stage3.bit8.ha2.sum.layer1.or", + "stage3.bit8.ha2.sum.layer1.nand" + ], + "stage3.bit8.ha2.carry": [ + "stage3.bit8.ha1.sum.layer2", + "stage3.bit7.carry_or" + ], + "stage3.bit8.carry_or": [ + "stage3.bit8.ha1.carry", + "stage3.bit8.ha2.carry" + ], + "stage3.bit9.ha1.sum.layer1.or": [ + "stage2.bit9.ha2.sum", + "pp.r4.c5" + ], + "stage3.bit9.ha1.sum.layer1.nand": [ + "stage2.bit9.ha2.sum", + "pp.r4.c5" + ], + "stage3.bit9.ha1.sum.layer2": [ + "stage3.bit9.ha1.sum.layer1.or", + "stage3.bit9.ha1.sum.layer1.nand" + ], + "stage3.bit9.ha1.carry": [ + "stage2.bit9.ha2.sum", + "pp.r4.c5" + ], + "stage3.bit9.ha2.sum.layer1.or": [ + "stage3.bit9.ha1.sum.layer2", + "stage3.bit8.carry_or" + ], + "stage3.bit9.ha2.sum.layer1.nand": [ + "stage3.bit9.ha1.sum.layer2", + "stage3.bit8.carry_or" + ], + "stage3.bit9.ha2.sum.layer2": [ + "stage3.bit9.ha2.sum.layer1.or", + "stage3.bit9.ha2.sum.layer1.nand" + ], + "stage3.bit9.ha2.carry": [ + "stage3.bit9.ha1.sum.layer2", + "stage3.bit8.carry_or" + ], + "stage3.bit9.carry_or": [ + "stage3.bit9.ha1.carry", + "stage3.bit9.ha2.carry" + ], + "stage3.bit10.ha1.sum.layer1.or": [ + "stage2.bit10.ha2.sum", + "pp.r4.c6" + ], + "stage3.bit10.ha1.sum.layer1.nand": [ + "stage2.bit10.ha2.sum", + "pp.r4.c6" + ], + "stage3.bit10.ha1.sum.layer2": [ + "stage3.bit10.ha1.sum.layer1.or", + "stage3.bit10.ha1.sum.layer1.nand" + ], + "stage3.bit10.ha1.carry": [ + "stage2.bit10.ha2.sum", + "pp.r4.c6" + ], + "stage3.bit10.ha2.sum.layer1.or": [ + "stage3.bit10.ha1.sum.layer2", + "stage3.bit9.carry_or" + ], + "stage3.bit10.ha2.sum.layer1.nand": [ + "stage3.bit10.ha1.sum.layer2", + "stage3.bit9.carry_or" + ], + "stage3.bit10.ha2.sum.layer2": [ + "stage3.bit10.ha2.sum.layer1.or", + "stage3.bit10.ha2.sum.layer1.nand" + ], + "stage3.bit10.ha2.carry": [ + "stage3.bit10.ha1.sum.layer2", + "stage3.bit9.carry_or" + ], + "stage3.bit10.carry_or": [ + "stage3.bit10.ha1.carry", + "stage3.bit10.ha2.carry" + ], + "stage3.bit11.ha1.sum.layer1.or": [ + "stage2.bit10.carry_or", + "pp.r4.c7" + ], + "stage3.bit11.ha1.sum.layer1.nand": [ + "stage2.bit10.carry_or", + "pp.r4.c7" + ], + "stage3.bit11.ha1.sum.layer2": [ + "stage3.bit11.ha1.sum.layer1.or", + "stage3.bit11.ha1.sum.layer1.nand" + ], + "stage3.bit11.ha1.carry": [ + "stage2.bit10.carry_or", + "pp.r4.c7" + ], + "stage3.bit11.ha2.sum.layer1.or": [ + "stage3.bit11.ha1.sum.layer2", + "stage3.bit10.carry_or" + ], + "stage3.bit11.ha2.sum.layer1.nand": [ + "stage3.bit11.ha1.sum.layer2", + "stage3.bit10.carry_or" + ], + "stage3.bit11.ha2.sum.layer2": [ + "stage3.bit11.ha2.sum.layer1.or", + "stage3.bit11.ha2.sum.layer1.nand" + ], + "stage3.bit11.ha2.carry": [ + "stage3.bit11.ha1.sum.layer2", + "stage3.bit10.carry_or" + ], + "stage3.bit11.carry_or": [ + "stage3.bit11.ha1.carry", + "stage3.bit11.ha2.carry" + ], + "stage4.bit0.ha1.sum.layer1.or": [ + "stage3.bit0.ha2.sum", + "#0" + ], + "stage4.bit0.ha1.sum.layer1.nand": [ + "stage3.bit0.ha2.sum", + "#0" + ], + "stage4.bit0.ha1.sum.layer2": [ + "stage4.bit0.ha1.sum.layer1.or", + "stage4.bit0.ha1.sum.layer1.nand" + ], + "stage4.bit0.ha1.carry": [ + "stage3.bit0.ha2.sum", + "#0" + ], + "stage4.bit0.ha2.sum.layer1.or": [ + "stage4.bit0.ha1.sum.layer2", + "#0" + ], + "stage4.bit0.ha2.sum.layer1.nand": [ + "stage4.bit0.ha1.sum.layer2", + "#0" + ], + "stage4.bit0.ha2.sum.layer2": [ + "stage4.bit0.ha2.sum.layer1.or", + "stage4.bit0.ha2.sum.layer1.nand" + ], + "stage4.bit0.ha2.carry": [ + "stage4.bit0.ha1.sum.layer2", + "#0" + ], + "stage4.bit0.carry_or": [ + "stage4.bit0.ha1.carry", + "stage4.bit0.ha2.carry" + ], + "stage4.bit1.ha1.sum.layer1.or": [ + "stage3.bit1.ha2.sum", + "#0" + ], + "stage4.bit1.ha1.sum.layer1.nand": [ + "stage3.bit1.ha2.sum", + "#0" + ], + "stage4.bit1.ha1.sum.layer2": [ + "stage4.bit1.ha1.sum.layer1.or", + "stage4.bit1.ha1.sum.layer1.nand" + ], + "stage4.bit1.ha1.carry": [ + "stage3.bit1.ha2.sum", + "#0" + ], + "stage4.bit1.ha2.sum.layer1.or": [ + "stage4.bit1.ha1.sum.layer2", + "stage4.bit0.carry_or" + ], + "stage4.bit1.ha2.sum.layer1.nand": [ + "stage4.bit1.ha1.sum.layer2", + "stage4.bit0.carry_or" + ], + "stage4.bit1.ha2.sum.layer2": [ + "stage4.bit1.ha2.sum.layer1.or", + "stage4.bit1.ha2.sum.layer1.nand" + ], + "stage4.bit1.ha2.carry": [ + "stage4.bit1.ha1.sum.layer2", + "stage4.bit0.carry_or" + ], + "stage4.bit1.carry_or": [ + "stage4.bit1.ha1.carry", + "stage4.bit1.ha2.carry" + ], + "stage4.bit2.ha1.sum.layer1.or": [ + "stage3.bit2.ha2.sum", + "#0" + ], + "stage4.bit2.ha1.sum.layer1.nand": [ + "stage3.bit2.ha2.sum", + "#0" + ], + "stage4.bit2.ha1.sum.layer2": [ + "stage4.bit2.ha1.sum.layer1.or", + "stage4.bit2.ha1.sum.layer1.nand" + ], + "stage4.bit2.ha1.carry": [ + "stage3.bit2.ha2.sum", + "#0" + ], + "stage4.bit2.ha2.sum.layer1.or": [ + "stage4.bit2.ha1.sum.layer2", + "stage4.bit1.carry_or" + ], + "stage4.bit2.ha2.sum.layer1.nand": [ + "stage4.bit2.ha1.sum.layer2", + "stage4.bit1.carry_or" + ], + "stage4.bit2.ha2.sum.layer2": [ + "stage4.bit2.ha2.sum.layer1.or", + "stage4.bit2.ha2.sum.layer1.nand" + ], + "stage4.bit2.ha2.carry": [ + "stage4.bit2.ha1.sum.layer2", + "stage4.bit1.carry_or" + ], + "stage4.bit2.carry_or": [ + "stage4.bit2.ha1.carry", + "stage4.bit2.ha2.carry" + ], + "stage4.bit3.ha1.sum.layer1.or": [ + "stage3.bit3.ha2.sum", + "#0" + ], + "stage4.bit3.ha1.sum.layer1.nand": [ + "stage3.bit3.ha2.sum", + "#0" + ], + "stage4.bit3.ha1.sum.layer2": [ + "stage4.bit3.ha1.sum.layer1.or", + "stage4.bit3.ha1.sum.layer1.nand" + ], + "stage4.bit3.ha1.carry": [ + "stage3.bit3.ha2.sum", + "#0" + ], + "stage4.bit3.ha2.sum.layer1.or": [ + "stage4.bit3.ha1.sum.layer2", + "stage4.bit2.carry_or" + ], + "stage4.bit3.ha2.sum.layer1.nand": [ + "stage4.bit3.ha1.sum.layer2", + "stage4.bit2.carry_or" + ], + "stage4.bit3.ha2.sum.layer2": [ + "stage4.bit3.ha2.sum.layer1.or", + "stage4.bit3.ha2.sum.layer1.nand" + ], + "stage4.bit3.ha2.carry": [ + "stage4.bit3.ha1.sum.layer2", + "stage4.bit2.carry_or" + ], + "stage4.bit3.carry_or": [ + "stage4.bit3.ha1.carry", + "stage4.bit3.ha2.carry" + ], + "stage4.bit4.ha1.sum.layer1.or": [ + "stage3.bit4.ha2.sum", + "#0" + ], + "stage4.bit4.ha1.sum.layer1.nand": [ + "stage3.bit4.ha2.sum", + "#0" + ], + "stage4.bit4.ha1.sum.layer2": [ + "stage4.bit4.ha1.sum.layer1.or", + "stage4.bit4.ha1.sum.layer1.nand" + ], + "stage4.bit4.ha1.carry": [ + "stage3.bit4.ha2.sum", + "#0" + ], + "stage4.bit4.ha2.sum.layer1.or": [ + "stage4.bit4.ha1.sum.layer2", + "stage4.bit3.carry_or" + ], + "stage4.bit4.ha2.sum.layer1.nand": [ + "stage4.bit4.ha1.sum.layer2", + "stage4.bit3.carry_or" + ], + "stage4.bit4.ha2.sum.layer2": [ + "stage4.bit4.ha2.sum.layer1.or", + "stage4.bit4.ha2.sum.layer1.nand" + ], + "stage4.bit4.ha2.carry": [ + "stage4.bit4.ha1.sum.layer2", + "stage4.bit3.carry_or" + ], + "stage4.bit4.carry_or": [ + "stage4.bit4.ha1.carry", + "stage4.bit4.ha2.carry" + ], + "stage4.bit5.ha1.sum.layer1.or": [ + "stage3.bit5.ha2.sum", + "pp.r5.c0" + ], + "stage4.bit5.ha1.sum.layer1.nand": [ + "stage3.bit5.ha2.sum", + "pp.r5.c0" + ], + "stage4.bit5.ha1.sum.layer2": [ + "stage4.bit5.ha1.sum.layer1.or", + "stage4.bit5.ha1.sum.layer1.nand" + ], + "stage4.bit5.ha1.carry": [ + "stage3.bit5.ha2.sum", + "pp.r5.c0" + ], + "stage4.bit5.ha2.sum.layer1.or": [ + "stage4.bit5.ha1.sum.layer2", + "stage4.bit4.carry_or" + ], + "stage4.bit5.ha2.sum.layer1.nand": [ + "stage4.bit5.ha1.sum.layer2", + "stage4.bit4.carry_or" + ], + "stage4.bit5.ha2.sum.layer2": [ + "stage4.bit5.ha2.sum.layer1.or", + "stage4.bit5.ha2.sum.layer1.nand" + ], + "stage4.bit5.ha2.carry": [ + "stage4.bit5.ha1.sum.layer2", + "stage4.bit4.carry_or" + ], + "stage4.bit5.carry_or": [ + "stage4.bit5.ha1.carry", + "stage4.bit5.ha2.carry" + ], + "stage4.bit6.ha1.sum.layer1.or": [ + "stage3.bit6.ha2.sum", + "pp.r5.c1" + ], + "stage4.bit6.ha1.sum.layer1.nand": [ + "stage3.bit6.ha2.sum", + "pp.r5.c1" + ], + "stage4.bit6.ha1.sum.layer2": [ + "stage4.bit6.ha1.sum.layer1.or", + "stage4.bit6.ha1.sum.layer1.nand" + ], + "stage4.bit6.ha1.carry": [ + "stage3.bit6.ha2.sum", + "pp.r5.c1" + ], + "stage4.bit6.ha2.sum.layer1.or": [ + "stage4.bit6.ha1.sum.layer2", + "stage4.bit5.carry_or" + ], + "stage4.bit6.ha2.sum.layer1.nand": [ + "stage4.bit6.ha1.sum.layer2", + "stage4.bit5.carry_or" + ], + "stage4.bit6.ha2.sum.layer2": [ + "stage4.bit6.ha2.sum.layer1.or", + "stage4.bit6.ha2.sum.layer1.nand" + ], + "stage4.bit6.ha2.carry": [ + "stage4.bit6.ha1.sum.layer2", + "stage4.bit5.carry_or" + ], + "stage4.bit6.carry_or": [ + "stage4.bit6.ha1.carry", + "stage4.bit6.ha2.carry" + ], + "stage4.bit7.ha1.sum.layer1.or": [ + "stage3.bit7.ha2.sum", + "pp.r5.c2" + ], + "stage4.bit7.ha1.sum.layer1.nand": [ + "stage3.bit7.ha2.sum", + "pp.r5.c2" + ], + "stage4.bit7.ha1.sum.layer2": [ + "stage4.bit7.ha1.sum.layer1.or", + "stage4.bit7.ha1.sum.layer1.nand" + ], + "stage4.bit7.ha1.carry": [ + "stage3.bit7.ha2.sum", + "pp.r5.c2" + ], + "stage4.bit7.ha2.sum.layer1.or": [ + "stage4.bit7.ha1.sum.layer2", + "stage4.bit6.carry_or" + ], + "stage4.bit7.ha2.sum.layer1.nand": [ + "stage4.bit7.ha1.sum.layer2", + "stage4.bit6.carry_or" + ], + "stage4.bit7.ha2.sum.layer2": [ + "stage4.bit7.ha2.sum.layer1.or", + "stage4.bit7.ha2.sum.layer1.nand" + ], + "stage4.bit7.ha2.carry": [ + "stage4.bit7.ha1.sum.layer2", + "stage4.bit6.carry_or" + ], + "stage4.bit7.carry_or": [ + "stage4.bit7.ha1.carry", + "stage4.bit7.ha2.carry" + ], + "stage4.bit8.ha1.sum.layer1.or": [ + "stage3.bit8.ha2.sum", + "pp.r5.c3" + ], + "stage4.bit8.ha1.sum.layer1.nand": [ + "stage3.bit8.ha2.sum", + "pp.r5.c3" + ], + "stage4.bit8.ha1.sum.layer2": [ + "stage4.bit8.ha1.sum.layer1.or", + "stage4.bit8.ha1.sum.layer1.nand" + ], + "stage4.bit8.ha1.carry": [ + "stage3.bit8.ha2.sum", + "pp.r5.c3" + ], + "stage4.bit8.ha2.sum.layer1.or": [ + "stage4.bit8.ha1.sum.layer2", + "stage4.bit7.carry_or" + ], + "stage4.bit8.ha2.sum.layer1.nand": [ + "stage4.bit8.ha1.sum.layer2", + "stage4.bit7.carry_or" + ], + "stage4.bit8.ha2.sum.layer2": [ + "stage4.bit8.ha2.sum.layer1.or", + "stage4.bit8.ha2.sum.layer1.nand" + ], + "stage4.bit8.ha2.carry": [ + "stage4.bit8.ha1.sum.layer2", + "stage4.bit7.carry_or" + ], + "stage4.bit8.carry_or": [ + "stage4.bit8.ha1.carry", + "stage4.bit8.ha2.carry" + ], + "stage4.bit9.ha1.sum.layer1.or": [ + "stage3.bit9.ha2.sum", + "pp.r5.c4" + ], + "stage4.bit9.ha1.sum.layer1.nand": [ + "stage3.bit9.ha2.sum", + "pp.r5.c4" + ], + "stage4.bit9.ha1.sum.layer2": [ + "stage4.bit9.ha1.sum.layer1.or", + "stage4.bit9.ha1.sum.layer1.nand" + ], + "stage4.bit9.ha1.carry": [ + "stage3.bit9.ha2.sum", + "pp.r5.c4" + ], + "stage4.bit9.ha2.sum.layer1.or": [ + "stage4.bit9.ha1.sum.layer2", + "stage4.bit8.carry_or" + ], + "stage4.bit9.ha2.sum.layer1.nand": [ + "stage4.bit9.ha1.sum.layer2", + "stage4.bit8.carry_or" + ], + "stage4.bit9.ha2.sum.layer2": [ + "stage4.bit9.ha2.sum.layer1.or", + "stage4.bit9.ha2.sum.layer1.nand" + ], + "stage4.bit9.ha2.carry": [ + "stage4.bit9.ha1.sum.layer2", + "stage4.bit8.carry_or" + ], + "stage4.bit9.carry_or": [ + "stage4.bit9.ha1.carry", + "stage4.bit9.ha2.carry" + ], + "stage4.bit10.ha1.sum.layer1.or": [ + "stage3.bit10.ha2.sum", + "pp.r5.c5" + ], + "stage4.bit10.ha1.sum.layer1.nand": [ + "stage3.bit10.ha2.sum", + "pp.r5.c5" + ], + "stage4.bit10.ha1.sum.layer2": [ + "stage4.bit10.ha1.sum.layer1.or", + "stage4.bit10.ha1.sum.layer1.nand" + ], + "stage4.bit10.ha1.carry": [ + "stage3.bit10.ha2.sum", + "pp.r5.c5" + ], + "stage4.bit10.ha2.sum.layer1.or": [ + "stage4.bit10.ha1.sum.layer2", + "stage4.bit9.carry_or" + ], + "stage4.bit10.ha2.sum.layer1.nand": [ + "stage4.bit10.ha1.sum.layer2", + "stage4.bit9.carry_or" + ], + "stage4.bit10.ha2.sum.layer2": [ + "stage4.bit10.ha2.sum.layer1.or", + "stage4.bit10.ha2.sum.layer1.nand" + ], + "stage4.bit10.ha2.carry": [ + "stage4.bit10.ha1.sum.layer2", + "stage4.bit9.carry_or" + ], + "stage4.bit10.carry_or": [ + "stage4.bit10.ha1.carry", + "stage4.bit10.ha2.carry" + ], + "stage4.bit11.ha1.sum.layer1.or": [ + "stage3.bit11.ha2.sum", + "pp.r5.c6" + ], + "stage4.bit11.ha1.sum.layer1.nand": [ + "stage3.bit11.ha2.sum", + "pp.r5.c6" + ], + "stage4.bit11.ha1.sum.layer2": [ + "stage4.bit11.ha1.sum.layer1.or", + "stage4.bit11.ha1.sum.layer1.nand" + ], + "stage4.bit11.ha1.carry": [ + "stage3.bit11.ha2.sum", + "pp.r5.c6" + ], + "stage4.bit11.ha2.sum.layer1.or": [ + "stage4.bit11.ha1.sum.layer2", + "stage4.bit10.carry_or" + ], + "stage4.bit11.ha2.sum.layer1.nand": [ + "stage4.bit11.ha1.sum.layer2", + "stage4.bit10.carry_or" + ], + "stage4.bit11.ha2.sum.layer2": [ + "stage4.bit11.ha2.sum.layer1.or", + "stage4.bit11.ha2.sum.layer1.nand" + ], + "stage4.bit11.ha2.carry": [ + "stage4.bit11.ha1.sum.layer2", + "stage4.bit10.carry_or" + ], + "stage4.bit11.carry_or": [ + "stage4.bit11.ha1.carry", + "stage4.bit11.ha2.carry" + ], + "stage4.bit12.ha1.sum.layer1.or": [ + "stage3.bit11.carry_or", + "pp.r5.c7" + ], + "stage4.bit12.ha1.sum.layer1.nand": [ + "stage3.bit11.carry_or", + "pp.r5.c7" + ], + "stage4.bit12.ha1.sum.layer2": [ + "stage4.bit12.ha1.sum.layer1.or", + "stage4.bit12.ha1.sum.layer1.nand" + ], + "stage4.bit12.ha1.carry": [ + "stage3.bit11.carry_or", + "pp.r5.c7" + ], + "stage4.bit12.ha2.sum.layer1.or": [ + "stage4.bit12.ha1.sum.layer2", + "stage4.bit11.carry_or" + ], + "stage4.bit12.ha2.sum.layer1.nand": [ + "stage4.bit12.ha1.sum.layer2", + "stage4.bit11.carry_or" + ], + "stage4.bit12.ha2.sum.layer2": [ + "stage4.bit12.ha2.sum.layer1.or", + "stage4.bit12.ha2.sum.layer1.nand" + ], + "stage4.bit12.ha2.carry": [ + "stage4.bit12.ha1.sum.layer2", + "stage4.bit11.carry_or" + ], + "stage4.bit12.carry_or": [ + "stage4.bit12.ha1.carry", + "stage4.bit12.ha2.carry" + ], + "stage5.bit0.ha1.sum.layer1.or": [ + "stage4.bit0.ha2.sum", + "#0" + ], + "stage5.bit0.ha1.sum.layer1.nand": [ + "stage4.bit0.ha2.sum", + "#0" + ], + "stage5.bit0.ha1.sum.layer2": [ + "stage5.bit0.ha1.sum.layer1.or", + "stage5.bit0.ha1.sum.layer1.nand" + ], + "stage5.bit0.ha1.carry": [ + "stage4.bit0.ha2.sum", + "#0" + ], + "stage5.bit0.ha2.sum.layer1.or": [ + "stage5.bit0.ha1.sum.layer2", + "#0" + ], + "stage5.bit0.ha2.sum.layer1.nand": [ + "stage5.bit0.ha1.sum.layer2", + "#0" + ], + "stage5.bit0.ha2.sum.layer2": [ + "stage5.bit0.ha2.sum.layer1.or", + "stage5.bit0.ha2.sum.layer1.nand" + ], + "stage5.bit0.ha2.carry": [ + "stage5.bit0.ha1.sum.layer2", + "#0" + ], + "stage5.bit0.carry_or": [ + "stage5.bit0.ha1.carry", + "stage5.bit0.ha2.carry" + ], + "stage5.bit1.ha1.sum.layer1.or": [ + "stage4.bit1.ha2.sum", + "#0" + ], + "stage5.bit1.ha1.sum.layer1.nand": [ + "stage4.bit1.ha2.sum", + "#0" + ], + "stage5.bit1.ha1.sum.layer2": [ + "stage5.bit1.ha1.sum.layer1.or", + "stage5.bit1.ha1.sum.layer1.nand" + ], + "stage5.bit1.ha1.carry": [ + "stage4.bit1.ha2.sum", + "#0" + ], + "stage5.bit1.ha2.sum.layer1.or": [ + "stage5.bit1.ha1.sum.layer2", + "stage5.bit0.carry_or" + ], + "stage5.bit1.ha2.sum.layer1.nand": [ + "stage5.bit1.ha1.sum.layer2", + "stage5.bit0.carry_or" + ], + "stage5.bit1.ha2.sum.layer2": [ + "stage5.bit1.ha2.sum.layer1.or", + "stage5.bit1.ha2.sum.layer1.nand" + ], + "stage5.bit1.ha2.carry": [ + "stage5.bit1.ha1.sum.layer2", + "stage5.bit0.carry_or" + ], + "stage5.bit1.carry_or": [ + "stage5.bit1.ha1.carry", + "stage5.bit1.ha2.carry" + ], + "stage5.bit2.ha1.sum.layer1.or": [ + "stage4.bit2.ha2.sum", + "#0" + ], + "stage5.bit2.ha1.sum.layer1.nand": [ + "stage4.bit2.ha2.sum", + "#0" + ], + "stage5.bit2.ha1.sum.layer2": [ + "stage5.bit2.ha1.sum.layer1.or", + "stage5.bit2.ha1.sum.layer1.nand" + ], + "stage5.bit2.ha1.carry": [ + "stage4.bit2.ha2.sum", + "#0" + ], + "stage5.bit2.ha2.sum.layer1.or": [ + "stage5.bit2.ha1.sum.layer2", + "stage5.bit1.carry_or" + ], + "stage5.bit2.ha2.sum.layer1.nand": [ + "stage5.bit2.ha1.sum.layer2", + "stage5.bit1.carry_or" + ], + "stage5.bit2.ha2.sum.layer2": [ + "stage5.bit2.ha2.sum.layer1.or", + "stage5.bit2.ha2.sum.layer1.nand" + ], + "stage5.bit2.ha2.carry": [ + "stage5.bit2.ha1.sum.layer2", + "stage5.bit1.carry_or" + ], + "stage5.bit2.carry_or": [ + "stage5.bit2.ha1.carry", + "stage5.bit2.ha2.carry" + ], + "stage5.bit3.ha1.sum.layer1.or": [ + "stage4.bit3.ha2.sum", + "#0" + ], + "stage5.bit3.ha1.sum.layer1.nand": [ + "stage4.bit3.ha2.sum", + "#0" + ], + "stage5.bit3.ha1.sum.layer2": [ + "stage5.bit3.ha1.sum.layer1.or", + "stage5.bit3.ha1.sum.layer1.nand" + ], + "stage5.bit3.ha1.carry": [ + "stage4.bit3.ha2.sum", + "#0" + ], + "stage5.bit3.ha2.sum.layer1.or": [ + "stage5.bit3.ha1.sum.layer2", + "stage5.bit2.carry_or" + ], + "stage5.bit3.ha2.sum.layer1.nand": [ + "stage5.bit3.ha1.sum.layer2", + "stage5.bit2.carry_or" + ], + "stage5.bit3.ha2.sum.layer2": [ + "stage5.bit3.ha2.sum.layer1.or", + "stage5.bit3.ha2.sum.layer1.nand" + ], + "stage5.bit3.ha2.carry": [ + "stage5.bit3.ha1.sum.layer2", + "stage5.bit2.carry_or" + ], + "stage5.bit3.carry_or": [ + "stage5.bit3.ha1.carry", + "stage5.bit3.ha2.carry" + ], + "stage5.bit4.ha1.sum.layer1.or": [ + "stage4.bit4.ha2.sum", + "#0" + ], + "stage5.bit4.ha1.sum.layer1.nand": [ + "stage4.bit4.ha2.sum", + "#0" + ], + "stage5.bit4.ha1.sum.layer2": [ + "stage5.bit4.ha1.sum.layer1.or", + "stage5.bit4.ha1.sum.layer1.nand" + ], + "stage5.bit4.ha1.carry": [ + "stage4.bit4.ha2.sum", + "#0" + ], + "stage5.bit4.ha2.sum.layer1.or": [ + "stage5.bit4.ha1.sum.layer2", + "stage5.bit3.carry_or" + ], + "stage5.bit4.ha2.sum.layer1.nand": [ + "stage5.bit4.ha1.sum.layer2", + "stage5.bit3.carry_or" + ], + "stage5.bit4.ha2.sum.layer2": [ + "stage5.bit4.ha2.sum.layer1.or", + "stage5.bit4.ha2.sum.layer1.nand" + ], + "stage5.bit4.ha2.carry": [ + "stage5.bit4.ha1.sum.layer2", + "stage5.bit3.carry_or" + ], + "stage5.bit4.carry_or": [ + "stage5.bit4.ha1.carry", + "stage5.bit4.ha2.carry" + ], + "stage5.bit5.ha1.sum.layer1.or": [ + "stage4.bit5.ha2.sum", + "#0" + ], + "stage5.bit5.ha1.sum.layer1.nand": [ + "stage4.bit5.ha2.sum", + "#0" + ], + "stage5.bit5.ha1.sum.layer2": [ + "stage5.bit5.ha1.sum.layer1.or", + "stage5.bit5.ha1.sum.layer1.nand" + ], + "stage5.bit5.ha1.carry": [ + "stage4.bit5.ha2.sum", + "#0" + ], + "stage5.bit5.ha2.sum.layer1.or": [ + "stage5.bit5.ha1.sum.layer2", + "stage5.bit4.carry_or" + ], + "stage5.bit5.ha2.sum.layer1.nand": [ + "stage5.bit5.ha1.sum.layer2", + "stage5.bit4.carry_or" + ], + "stage5.bit5.ha2.sum.layer2": [ + "stage5.bit5.ha2.sum.layer1.or", + "stage5.bit5.ha2.sum.layer1.nand" + ], + "stage5.bit5.ha2.carry": [ + "stage5.bit5.ha1.sum.layer2", + "stage5.bit4.carry_or" + ], + "stage5.bit5.carry_or": [ + "stage5.bit5.ha1.carry", + "stage5.bit5.ha2.carry" + ], + "stage5.bit6.ha1.sum.layer1.or": [ + "stage4.bit6.ha2.sum", + "pp.r6.c0" + ], + "stage5.bit6.ha1.sum.layer1.nand": [ + "stage4.bit6.ha2.sum", + "pp.r6.c0" + ], + "stage5.bit6.ha1.sum.layer2": [ + "stage5.bit6.ha1.sum.layer1.or", + "stage5.bit6.ha1.sum.layer1.nand" + ], + "stage5.bit6.ha1.carry": [ + "stage4.bit6.ha2.sum", + "pp.r6.c0" + ], + "stage5.bit6.ha2.sum.layer1.or": [ + "stage5.bit6.ha1.sum.layer2", + "stage5.bit5.carry_or" + ], + "stage5.bit6.ha2.sum.layer1.nand": [ + "stage5.bit6.ha1.sum.layer2", + "stage5.bit5.carry_or" + ], + "stage5.bit6.ha2.sum.layer2": [ + "stage5.bit6.ha2.sum.layer1.or", + "stage5.bit6.ha2.sum.layer1.nand" + ], + "stage5.bit6.ha2.carry": [ + "stage5.bit6.ha1.sum.layer2", + "stage5.bit5.carry_or" + ], + "stage5.bit6.carry_or": [ + "stage5.bit6.ha1.carry", + "stage5.bit6.ha2.carry" + ], + "stage5.bit7.ha1.sum.layer1.or": [ + "stage4.bit7.ha2.sum", + "pp.r6.c1" + ], + "stage5.bit7.ha1.sum.layer1.nand": [ + "stage4.bit7.ha2.sum", + "pp.r6.c1" + ], + "stage5.bit7.ha1.sum.layer2": [ + "stage5.bit7.ha1.sum.layer1.or", + "stage5.bit7.ha1.sum.layer1.nand" + ], + "stage5.bit7.ha1.carry": [ + "stage4.bit7.ha2.sum", + "pp.r6.c1" + ], + "stage5.bit7.ha2.sum.layer1.or": [ + "stage5.bit7.ha1.sum.layer2", + "stage5.bit6.carry_or" + ], + "stage5.bit7.ha2.sum.layer1.nand": [ + "stage5.bit7.ha1.sum.layer2", + "stage5.bit6.carry_or" + ], + "stage5.bit7.ha2.sum.layer2": [ + "stage5.bit7.ha2.sum.layer1.or", + "stage5.bit7.ha2.sum.layer1.nand" + ], + "stage5.bit7.ha2.carry": [ + "stage5.bit7.ha1.sum.layer2", + "stage5.bit6.carry_or" + ], + "stage5.bit7.carry_or": [ + "stage5.bit7.ha1.carry", + "stage5.bit7.ha2.carry" + ], + "stage5.bit8.ha1.sum.layer1.or": [ + "stage4.bit8.ha2.sum", + "pp.r6.c2" + ], + "stage5.bit8.ha1.sum.layer1.nand": [ + "stage4.bit8.ha2.sum", + "pp.r6.c2" + ], + "stage5.bit8.ha1.sum.layer2": [ + "stage5.bit8.ha1.sum.layer1.or", + "stage5.bit8.ha1.sum.layer1.nand" + ], + "stage5.bit8.ha1.carry": [ + "stage4.bit8.ha2.sum", + "pp.r6.c2" + ], + "stage5.bit8.ha2.sum.layer1.or": [ + "stage5.bit8.ha1.sum.layer2", + "stage5.bit7.carry_or" + ], + "stage5.bit8.ha2.sum.layer1.nand": [ + "stage5.bit8.ha1.sum.layer2", + "stage5.bit7.carry_or" + ], + "stage5.bit8.ha2.sum.layer2": [ + "stage5.bit8.ha2.sum.layer1.or", + "stage5.bit8.ha2.sum.layer1.nand" + ], + "stage5.bit8.ha2.carry": [ + "stage5.bit8.ha1.sum.layer2", + "stage5.bit7.carry_or" + ], + "stage5.bit8.carry_or": [ + "stage5.bit8.ha1.carry", + "stage5.bit8.ha2.carry" + ], + "stage5.bit9.ha1.sum.layer1.or": [ + "stage4.bit9.ha2.sum", + "pp.r6.c3" + ], + "stage5.bit9.ha1.sum.layer1.nand": [ + "stage4.bit9.ha2.sum", + "pp.r6.c3" + ], + "stage5.bit9.ha1.sum.layer2": [ + "stage5.bit9.ha1.sum.layer1.or", + "stage5.bit9.ha1.sum.layer1.nand" + ], + "stage5.bit9.ha1.carry": [ + "stage4.bit9.ha2.sum", + "pp.r6.c3" + ], + "stage5.bit9.ha2.sum.layer1.or": [ + "stage5.bit9.ha1.sum.layer2", + "stage5.bit8.carry_or" + ], + "stage5.bit9.ha2.sum.layer1.nand": [ + "stage5.bit9.ha1.sum.layer2", + "stage5.bit8.carry_or" + ], + "stage5.bit9.ha2.sum.layer2": [ + "stage5.bit9.ha2.sum.layer1.or", + "stage5.bit9.ha2.sum.layer1.nand" + ], + "stage5.bit9.ha2.carry": [ + "stage5.bit9.ha1.sum.layer2", + "stage5.bit8.carry_or" + ], + "stage5.bit9.carry_or": [ + "stage5.bit9.ha1.carry", + "stage5.bit9.ha2.carry" + ], + "stage5.bit10.ha1.sum.layer1.or": [ + "stage4.bit10.ha2.sum", + "pp.r6.c4" + ], + "stage5.bit10.ha1.sum.layer1.nand": [ + "stage4.bit10.ha2.sum", + "pp.r6.c4" + ], + "stage5.bit10.ha1.sum.layer2": [ + "stage5.bit10.ha1.sum.layer1.or", + "stage5.bit10.ha1.sum.layer1.nand" + ], + "stage5.bit10.ha1.carry": [ + "stage4.bit10.ha2.sum", + "pp.r6.c4" + ], + "stage5.bit10.ha2.sum.layer1.or": [ + "stage5.bit10.ha1.sum.layer2", + "stage5.bit9.carry_or" + ], + "stage5.bit10.ha2.sum.layer1.nand": [ + "stage5.bit10.ha1.sum.layer2", + "stage5.bit9.carry_or" + ], + "stage5.bit10.ha2.sum.layer2": [ + "stage5.bit10.ha2.sum.layer1.or", + "stage5.bit10.ha2.sum.layer1.nand" + ], + "stage5.bit10.ha2.carry": [ + "stage5.bit10.ha1.sum.layer2", + "stage5.bit9.carry_or" + ], + "stage5.bit10.carry_or": [ + "stage5.bit10.ha1.carry", + "stage5.bit10.ha2.carry" + ], + "stage5.bit11.ha1.sum.layer1.or": [ + "stage4.bit11.ha2.sum", + "pp.r6.c5" + ], + "stage5.bit11.ha1.sum.layer1.nand": [ + "stage4.bit11.ha2.sum", + "pp.r6.c5" + ], + "stage5.bit11.ha1.sum.layer2": [ + "stage5.bit11.ha1.sum.layer1.or", + "stage5.bit11.ha1.sum.layer1.nand" + ], + "stage5.bit11.ha1.carry": [ + "stage4.bit11.ha2.sum", + "pp.r6.c5" + ], + "stage5.bit11.ha2.sum.layer1.or": [ + "stage5.bit11.ha1.sum.layer2", + "stage5.bit10.carry_or" + ], + "stage5.bit11.ha2.sum.layer1.nand": [ + "stage5.bit11.ha1.sum.layer2", + "stage5.bit10.carry_or" + ], + "stage5.bit11.ha2.sum.layer2": [ + "stage5.bit11.ha2.sum.layer1.or", + "stage5.bit11.ha2.sum.layer1.nand" + ], + "stage5.bit11.ha2.carry": [ + "stage5.bit11.ha1.sum.layer2", + "stage5.bit10.carry_or" + ], + "stage5.bit11.carry_or": [ + "stage5.bit11.ha1.carry", + "stage5.bit11.ha2.carry" + ], + "stage5.bit12.ha1.sum.layer1.or": [ + "stage4.bit12.ha2.sum", + "pp.r6.c6" + ], + "stage5.bit12.ha1.sum.layer1.nand": [ + "stage4.bit12.ha2.sum", + "pp.r6.c6" + ], + "stage5.bit12.ha1.sum.layer2": [ + "stage5.bit12.ha1.sum.layer1.or", + "stage5.bit12.ha1.sum.layer1.nand" + ], + "stage5.bit12.ha1.carry": [ + "stage4.bit12.ha2.sum", + "pp.r6.c6" + ], + "stage5.bit12.ha2.sum.layer1.or": [ + "stage5.bit12.ha1.sum.layer2", + "stage5.bit11.carry_or" + ], + "stage5.bit12.ha2.sum.layer1.nand": [ + "stage5.bit12.ha1.sum.layer2", + "stage5.bit11.carry_or" + ], + "stage5.bit12.ha2.sum.layer2": [ + "stage5.bit12.ha2.sum.layer1.or", + "stage5.bit12.ha2.sum.layer1.nand" + ], + "stage5.bit12.ha2.carry": [ + "stage5.bit12.ha1.sum.layer2", + "stage5.bit11.carry_or" + ], + "stage5.bit12.carry_or": [ + "stage5.bit12.ha1.carry", + "stage5.bit12.ha2.carry" + ], + "stage5.bit13.ha1.sum.layer1.or": [ + "stage4.bit12.carry_or", + "pp.r6.c7" + ], + "stage5.bit13.ha1.sum.layer1.nand": [ + "stage4.bit12.carry_or", + "pp.r6.c7" + ], + "stage5.bit13.ha1.sum.layer2": [ + "stage5.bit13.ha1.sum.layer1.or", + "stage5.bit13.ha1.sum.layer1.nand" + ], + "stage5.bit13.ha1.carry": [ + "stage4.bit12.carry_or", + "pp.r6.c7" + ], + "stage5.bit13.ha2.sum.layer1.or": [ + "stage5.bit13.ha1.sum.layer2", + "stage5.bit12.carry_or" + ], + "stage5.bit13.ha2.sum.layer1.nand": [ + "stage5.bit13.ha1.sum.layer2", + "stage5.bit12.carry_or" + ], + "stage5.bit13.ha2.sum.layer2": [ + "stage5.bit13.ha2.sum.layer1.or", + "stage5.bit13.ha2.sum.layer1.nand" + ], + "stage5.bit13.ha2.carry": [ + "stage5.bit13.ha1.sum.layer2", + "stage5.bit12.carry_or" + ], + "stage5.bit13.carry_or": [ + "stage5.bit13.ha1.carry", + "stage5.bit13.ha2.carry" + ], + "stage6.bit0.ha1.sum.layer1.or": [ + "stage5.bit0.ha2.sum", + "#0" + ], + "stage6.bit0.ha1.sum.layer1.nand": [ + "stage5.bit0.ha2.sum", + "#0" + ], + "stage6.bit0.ha1.sum.layer2": [ + "stage6.bit0.ha1.sum.layer1.or", + "stage6.bit0.ha1.sum.layer1.nand" + ], + "stage6.bit0.ha1.carry": [ + "stage5.bit0.ha2.sum", + "#0" + ], + "stage6.bit0.ha2.sum.layer1.or": [ + "stage6.bit0.ha1.sum.layer2", + "#0" + ], + "stage6.bit0.ha2.sum.layer1.nand": [ + "stage6.bit0.ha1.sum.layer2", + "#0" + ], + "stage6.bit0.ha2.sum.layer2": [ + "stage6.bit0.ha2.sum.layer1.or", + "stage6.bit0.ha2.sum.layer1.nand" + ], + "stage6.bit0.ha2.carry": [ + "stage6.bit0.ha1.sum.layer2", + "#0" + ], + "stage6.bit0.carry_or": [ + "stage6.bit0.ha1.carry", + "stage6.bit0.ha2.carry" + ], + "stage6.bit1.ha1.sum.layer1.or": [ + "stage5.bit1.ha2.sum", + "#0" + ], + "stage6.bit1.ha1.sum.layer1.nand": [ + "stage5.bit1.ha2.sum", + "#0" + ], + "stage6.bit1.ha1.sum.layer2": [ + "stage6.bit1.ha1.sum.layer1.or", + "stage6.bit1.ha1.sum.layer1.nand" + ], + "stage6.bit1.ha1.carry": [ + "stage5.bit1.ha2.sum", + "#0" + ], + "stage6.bit1.ha2.sum.layer1.or": [ + "stage6.bit1.ha1.sum.layer2", + "stage6.bit0.carry_or" + ], + "stage6.bit1.ha2.sum.layer1.nand": [ + "stage6.bit1.ha1.sum.layer2", + "stage6.bit0.carry_or" + ], + "stage6.bit1.ha2.sum.layer2": [ + "stage6.bit1.ha2.sum.layer1.or", + "stage6.bit1.ha2.sum.layer1.nand" + ], + "stage6.bit1.ha2.carry": [ + "stage6.bit1.ha1.sum.layer2", + "stage6.bit0.carry_or" + ], + "stage6.bit1.carry_or": [ + "stage6.bit1.ha1.carry", + "stage6.bit1.ha2.carry" + ], + "stage6.bit2.ha1.sum.layer1.or": [ + "stage5.bit2.ha2.sum", + "#0" + ], + "stage6.bit2.ha1.sum.layer1.nand": [ + "stage5.bit2.ha2.sum", + "#0" + ], + "stage6.bit2.ha1.sum.layer2": [ + "stage6.bit2.ha1.sum.layer1.or", + "stage6.bit2.ha1.sum.layer1.nand" + ], + "stage6.bit2.ha1.carry": [ + "stage5.bit2.ha2.sum", + "#0" + ], + "stage6.bit2.ha2.sum.layer1.or": [ + "stage6.bit2.ha1.sum.layer2", + "stage6.bit1.carry_or" + ], + "stage6.bit2.ha2.sum.layer1.nand": [ + "stage6.bit2.ha1.sum.layer2", + "stage6.bit1.carry_or" + ], + "stage6.bit2.ha2.sum.layer2": [ + "stage6.bit2.ha2.sum.layer1.or", + "stage6.bit2.ha2.sum.layer1.nand" + ], + "stage6.bit2.ha2.carry": [ + "stage6.bit2.ha1.sum.layer2", + "stage6.bit1.carry_or" + ], + "stage6.bit2.carry_or": [ + "stage6.bit2.ha1.carry", + "stage6.bit2.ha2.carry" + ], + "stage6.bit3.ha1.sum.layer1.or": [ + "stage5.bit3.ha2.sum", + "#0" + ], + "stage6.bit3.ha1.sum.layer1.nand": [ + "stage5.bit3.ha2.sum", + "#0" + ], + "stage6.bit3.ha1.sum.layer2": [ + "stage6.bit3.ha1.sum.layer1.or", + "stage6.bit3.ha1.sum.layer1.nand" + ], + "stage6.bit3.ha1.carry": [ + "stage5.bit3.ha2.sum", + "#0" + ], + "stage6.bit3.ha2.sum.layer1.or": [ + "stage6.bit3.ha1.sum.layer2", + "stage6.bit2.carry_or" + ], + "stage6.bit3.ha2.sum.layer1.nand": [ + "stage6.bit3.ha1.sum.layer2", + "stage6.bit2.carry_or" + ], + "stage6.bit3.ha2.sum.layer2": [ + "stage6.bit3.ha2.sum.layer1.or", + "stage6.bit3.ha2.sum.layer1.nand" + ], + "stage6.bit3.ha2.carry": [ + "stage6.bit3.ha1.sum.layer2", + "stage6.bit2.carry_or" + ], + "stage6.bit3.carry_or": [ + "stage6.bit3.ha1.carry", + "stage6.bit3.ha2.carry" + ], + "stage6.bit4.ha1.sum.layer1.or": [ + "stage5.bit4.ha2.sum", + "#0" + ], + "stage6.bit4.ha1.sum.layer1.nand": [ + "stage5.bit4.ha2.sum", + "#0" + ], + "stage6.bit4.ha1.sum.layer2": [ + "stage6.bit4.ha1.sum.layer1.or", + "stage6.bit4.ha1.sum.layer1.nand" + ], + "stage6.bit4.ha1.carry": [ + "stage5.bit4.ha2.sum", + "#0" + ], + "stage6.bit4.ha2.sum.layer1.or": [ + "stage6.bit4.ha1.sum.layer2", + "stage6.bit3.carry_or" + ], + "stage6.bit4.ha2.sum.layer1.nand": [ + "stage6.bit4.ha1.sum.layer2", + "stage6.bit3.carry_or" + ], + "stage6.bit4.ha2.sum.layer2": [ + "stage6.bit4.ha2.sum.layer1.or", + "stage6.bit4.ha2.sum.layer1.nand" + ], + "stage6.bit4.ha2.carry": [ + "stage6.bit4.ha1.sum.layer2", + "stage6.bit3.carry_or" + ], + "stage6.bit4.carry_or": [ + "stage6.bit4.ha1.carry", + "stage6.bit4.ha2.carry" + ], + "stage6.bit5.ha1.sum.layer1.or": [ + "stage5.bit5.ha2.sum", + "#0" + ], + "stage6.bit5.ha1.sum.layer1.nand": [ + "stage5.bit5.ha2.sum", + "#0" + ], + "stage6.bit5.ha1.sum.layer2": [ + "stage6.bit5.ha1.sum.layer1.or", + "stage6.bit5.ha1.sum.layer1.nand" + ], + "stage6.bit5.ha1.carry": [ + "stage5.bit5.ha2.sum", + "#0" + ], + "stage6.bit5.ha2.sum.layer1.or": [ + "stage6.bit5.ha1.sum.layer2", + "stage6.bit4.carry_or" + ], + "stage6.bit5.ha2.sum.layer1.nand": [ + "stage6.bit5.ha1.sum.layer2", + "stage6.bit4.carry_or" + ], + "stage6.bit5.ha2.sum.layer2": [ + "stage6.bit5.ha2.sum.layer1.or", + "stage6.bit5.ha2.sum.layer1.nand" + ], + "stage6.bit5.ha2.carry": [ + "stage6.bit5.ha1.sum.layer2", + "stage6.bit4.carry_or" + ], + "stage6.bit5.carry_or": [ + "stage6.bit5.ha1.carry", + "stage6.bit5.ha2.carry" + ], + "stage6.bit6.ha1.sum.layer1.or": [ + "stage5.bit6.ha2.sum", + "#0" + ], + "stage6.bit6.ha1.sum.layer1.nand": [ + "stage5.bit6.ha2.sum", + "#0" + ], + "stage6.bit6.ha1.sum.layer2": [ + "stage6.bit6.ha1.sum.layer1.or", + "stage6.bit6.ha1.sum.layer1.nand" + ], + "stage6.bit6.ha1.carry": [ + "stage5.bit6.ha2.sum", + "#0" + ], + "stage6.bit6.ha2.sum.layer1.or": [ + "stage6.bit6.ha1.sum.layer2", + "stage6.bit5.carry_or" + ], + "stage6.bit6.ha2.sum.layer1.nand": [ + "stage6.bit6.ha1.sum.layer2", + "stage6.bit5.carry_or" + ], + "stage6.bit6.ha2.sum.layer2": [ + "stage6.bit6.ha2.sum.layer1.or", + "stage6.bit6.ha2.sum.layer1.nand" + ], + "stage6.bit6.ha2.carry": [ + "stage6.bit6.ha1.sum.layer2", + "stage6.bit5.carry_or" + ], + "stage6.bit6.carry_or": [ + "stage6.bit6.ha1.carry", + "stage6.bit6.ha2.carry" + ], + "stage6.bit7.ha1.sum.layer1.or": [ + "stage5.bit7.ha2.sum", + "pp.r7.c0" + ], + "stage6.bit7.ha1.sum.layer1.nand": [ + "stage5.bit7.ha2.sum", + "pp.r7.c0" + ], + "stage6.bit7.ha1.sum.layer2": [ + "stage6.bit7.ha1.sum.layer1.or", + "stage6.bit7.ha1.sum.layer1.nand" + ], + "stage6.bit7.ha1.carry": [ + "stage5.bit7.ha2.sum", + "pp.r7.c0" + ], + "stage6.bit7.ha2.sum.layer1.or": [ + "stage6.bit7.ha1.sum.layer2", + "stage6.bit6.carry_or" + ], + "stage6.bit7.ha2.sum.layer1.nand": [ + "stage6.bit7.ha1.sum.layer2", + "stage6.bit6.carry_or" + ], + "stage6.bit7.ha2.sum.layer2": [ + "stage6.bit7.ha2.sum.layer1.or", + "stage6.bit7.ha2.sum.layer1.nand" + ], + "stage6.bit7.ha2.carry": [ + "stage6.bit7.ha1.sum.layer2", + "stage6.bit6.carry_or" + ], + "stage6.bit7.carry_or": [ + "stage6.bit7.ha1.carry", + "stage6.bit7.ha2.carry" + ], + "stage6.bit8.ha1.sum.layer1.or": [ + "stage5.bit8.ha2.sum", + "pp.r7.c1" + ], + "stage6.bit8.ha1.sum.layer1.nand": [ + "stage5.bit8.ha2.sum", + "pp.r7.c1" + ], + "stage6.bit8.ha1.sum.layer2": [ + "stage6.bit8.ha1.sum.layer1.or", + "stage6.bit8.ha1.sum.layer1.nand" + ], + "stage6.bit8.ha1.carry": [ + "stage5.bit8.ha2.sum", + "pp.r7.c1" + ], + "stage6.bit8.ha2.sum.layer1.or": [ + "stage6.bit8.ha1.sum.layer2", + "stage6.bit7.carry_or" + ], + "stage6.bit8.ha2.sum.layer1.nand": [ + "stage6.bit8.ha1.sum.layer2", + "stage6.bit7.carry_or" + ], + "stage6.bit8.ha2.sum.layer2": [ + "stage6.bit8.ha2.sum.layer1.or", + "stage6.bit8.ha2.sum.layer1.nand" + ], + "stage6.bit8.ha2.carry": [ + "stage6.bit8.ha1.sum.layer2", + "stage6.bit7.carry_or" + ], + "stage6.bit8.carry_or": [ + "stage6.bit8.ha1.carry", + "stage6.bit8.ha2.carry" + ], + "stage6.bit9.ha1.sum.layer1.or": [ + "stage5.bit9.ha2.sum", + "pp.r7.c2" + ], + "stage6.bit9.ha1.sum.layer1.nand": [ + "stage5.bit9.ha2.sum", + "pp.r7.c2" + ], + "stage6.bit9.ha1.sum.layer2": [ + "stage6.bit9.ha1.sum.layer1.or", + "stage6.bit9.ha1.sum.layer1.nand" + ], + "stage6.bit9.ha1.carry": [ + "stage5.bit9.ha2.sum", + "pp.r7.c2" + ], + "stage6.bit9.ha2.sum.layer1.or": [ + "stage6.bit9.ha1.sum.layer2", + "stage6.bit8.carry_or" + ], + "stage6.bit9.ha2.sum.layer1.nand": [ + "stage6.bit9.ha1.sum.layer2", + "stage6.bit8.carry_or" + ], + "stage6.bit9.ha2.sum.layer2": [ + "stage6.bit9.ha2.sum.layer1.or", + "stage6.bit9.ha2.sum.layer1.nand" + ], + "stage6.bit9.ha2.carry": [ + "stage6.bit9.ha1.sum.layer2", + "stage6.bit8.carry_or" + ], + "stage6.bit9.carry_or": [ + "stage6.bit9.ha1.carry", + "stage6.bit9.ha2.carry" + ], + "stage6.bit10.ha1.sum.layer1.or": [ + "stage5.bit10.ha2.sum", + "pp.r7.c3" + ], + "stage6.bit10.ha1.sum.layer1.nand": [ + "stage5.bit10.ha2.sum", + "pp.r7.c3" + ], + "stage6.bit10.ha1.sum.layer2": [ + "stage6.bit10.ha1.sum.layer1.or", + "stage6.bit10.ha1.sum.layer1.nand" + ], + "stage6.bit10.ha1.carry": [ + "stage5.bit10.ha2.sum", + "pp.r7.c3" + ], + "stage6.bit10.ha2.sum.layer1.or": [ + "stage6.bit10.ha1.sum.layer2", + "stage6.bit9.carry_or" + ], + "stage6.bit10.ha2.sum.layer1.nand": [ + "stage6.bit10.ha1.sum.layer2", + "stage6.bit9.carry_or" + ], + "stage6.bit10.ha2.sum.layer2": [ + "stage6.bit10.ha2.sum.layer1.or", + "stage6.bit10.ha2.sum.layer1.nand" + ], + "stage6.bit10.ha2.carry": [ + "stage6.bit10.ha1.sum.layer2", + "stage6.bit9.carry_or" + ], + "stage6.bit10.carry_or": [ + "stage6.bit10.ha1.carry", + "stage6.bit10.ha2.carry" + ], + "stage6.bit11.ha1.sum.layer1.or": [ + "stage5.bit11.ha2.sum", + "pp.r7.c4" + ], + "stage6.bit11.ha1.sum.layer1.nand": [ + "stage5.bit11.ha2.sum", + "pp.r7.c4" + ], + "stage6.bit11.ha1.sum.layer2": [ + "stage6.bit11.ha1.sum.layer1.or", + "stage6.bit11.ha1.sum.layer1.nand" + ], + "stage6.bit11.ha1.carry": [ + "stage5.bit11.ha2.sum", + "pp.r7.c4" + ], + "stage6.bit11.ha2.sum.layer1.or": [ + "stage6.bit11.ha1.sum.layer2", + "stage6.bit10.carry_or" + ], + "stage6.bit11.ha2.sum.layer1.nand": [ + "stage6.bit11.ha1.sum.layer2", + "stage6.bit10.carry_or" + ], + "stage6.bit11.ha2.sum.layer2": [ + "stage6.bit11.ha2.sum.layer1.or", + "stage6.bit11.ha2.sum.layer1.nand" + ], + "stage6.bit11.ha2.carry": [ + "stage6.bit11.ha1.sum.layer2", + "stage6.bit10.carry_or" + ], + "stage6.bit11.carry_or": [ + "stage6.bit11.ha1.carry", + "stage6.bit11.ha2.carry" + ], + "stage6.bit12.ha1.sum.layer1.or": [ + "stage5.bit12.ha2.sum", + "pp.r7.c5" + ], + "stage6.bit12.ha1.sum.layer1.nand": [ + "stage5.bit12.ha2.sum", + "pp.r7.c5" + ], + "stage6.bit12.ha1.sum.layer2": [ + "stage6.bit12.ha1.sum.layer1.or", + "stage6.bit12.ha1.sum.layer1.nand" + ], + "stage6.bit12.ha1.carry": [ + "stage5.bit12.ha2.sum", + "pp.r7.c5" + ], + "stage6.bit12.ha2.sum.layer1.or": [ + "stage6.bit12.ha1.sum.layer2", + "stage6.bit11.carry_or" + ], + "stage6.bit12.ha2.sum.layer1.nand": [ + "stage6.bit12.ha1.sum.layer2", + "stage6.bit11.carry_or" + ], + "stage6.bit12.ha2.sum.layer2": [ + "stage6.bit12.ha2.sum.layer1.or", + "stage6.bit12.ha2.sum.layer1.nand" + ], + "stage6.bit12.ha2.carry": [ + "stage6.bit12.ha1.sum.layer2", + "stage6.bit11.carry_or" + ], + "stage6.bit12.carry_or": [ + "stage6.bit12.ha1.carry", + "stage6.bit12.ha2.carry" + ], + "stage6.bit13.ha1.sum.layer1.or": [ + "stage5.bit13.ha2.sum", + "pp.r7.c6" + ], + "stage6.bit13.ha1.sum.layer1.nand": [ + "stage5.bit13.ha2.sum", + "pp.r7.c6" + ], + "stage6.bit13.ha1.sum.layer2": [ + "stage6.bit13.ha1.sum.layer1.or", + "stage6.bit13.ha1.sum.layer1.nand" + ], + "stage6.bit13.ha1.carry": [ + "stage5.bit13.ha2.sum", + "pp.r7.c6" + ], + "stage6.bit13.ha2.sum.layer1.or": [ + "stage6.bit13.ha1.sum.layer2", + "stage6.bit12.carry_or" + ], + "stage6.bit13.ha2.sum.layer1.nand": [ + "stage6.bit13.ha1.sum.layer2", + "stage6.bit12.carry_or" + ], + "stage6.bit13.ha2.sum.layer2": [ + "stage6.bit13.ha2.sum.layer1.or", + "stage6.bit13.ha2.sum.layer1.nand" + ], + "stage6.bit13.ha2.carry": [ + "stage6.bit13.ha1.sum.layer2", + "stage6.bit12.carry_or" + ], + "stage6.bit13.carry_or": [ + "stage6.bit13.ha1.carry", + "stage6.bit13.ha2.carry" + ], + "stage6.bit14.ha1.sum.layer1.or": [ + "stage5.bit13.carry_or", + "pp.r7.c7" + ], + "stage6.bit14.ha1.sum.layer1.nand": [ + "stage5.bit13.carry_or", + "pp.r7.c7" + ], + "stage6.bit14.ha1.sum.layer2": [ + "stage6.bit14.ha1.sum.layer1.or", + "stage6.bit14.ha1.sum.layer1.nand" + ], + "stage6.bit14.ha1.carry": [ + "stage5.bit13.carry_or", + "pp.r7.c7" + ], + "stage6.bit14.ha2.sum.layer1.or": [ + "stage6.bit14.ha1.sum.layer2", + "stage6.bit13.carry_or" + ], + "stage6.bit14.ha2.sum.layer1.nand": [ + "stage6.bit14.ha1.sum.layer2", + "stage6.bit13.carry_or" + ], + "stage6.bit14.ha2.sum.layer2": [ + "stage6.bit14.ha2.sum.layer1.or", + "stage6.bit14.ha2.sum.layer1.nand" + ], + "stage6.bit14.ha2.carry": [ + "stage6.bit14.ha1.sum.layer2", + "stage6.bit13.carry_or" + ], + "stage6.bit14.carry_or": [ + "stage6.bit14.ha1.carry", + "stage6.bit14.ha2.carry" + ] + }, + "outputs": { + "p[0]": "pp.r0.c0", + "p[1]": "pp.r0.c1", + "p[2]": "pp.r0.c2", + "p[3]": "pp.r0.c3", + "p[4]": "pp.r0.c4", + "p[5]": "pp.r0.c5", + "p[6]": "pp.r0.c6", + "p[7]": "pp.r0.c7", + "p[8]": "stage6.bit8.ha2.sum.layer2", + "p[9]": "stage6.bit9.ha2.sum.layer2", + "p[10]": "stage6.bit10.ha2.sum.layer2", + "p[11]": "stage6.bit11.ha2.sum.layer2", + "p[12]": "stage6.bit12.ha2.sum.layer2", + "p[13]": "stage6.bit13.ha2.sum.layer2", + "p[14]": "stage6.bit14.ha2.sum.layer2", + "p[15]": "stage6.bit14.carry_or" + } + }, + "arithmetic.div8bit": { + "inputs": [ + "$dividend[0:7]", + "$divisor[0:7]" + ], + "type": "restoring_division", + "internal": { + "stage0.shift.bit0": [ + "$dividend[7]" + ], + "stage0.shift.bit1": [ + "#0" + ], + "stage0.shift.bit2": [ + "#0" + ], + "stage0.shift.bit3": [ + "#0" + ], + "stage0.shift.bit4": [ + "#0" + ], + "stage0.shift.bit5": [ + "#0" + ], + "stage0.shift.bit6": [ + "#0" + ], + "stage0.shift.bit7": [ + "#0" + ], + "stage0.sub.notd0": [ + "$divisor[0]" + ], + "stage0.sub.notd1": [ + "$divisor[1]" + ], + "stage0.sub.notd2": [ + "$divisor[2]" + ], + "stage0.sub.notd3": [ + "$divisor[3]" + ], + "stage0.sub.notd4": [ + "$divisor[4]" + ], + "stage0.sub.notd5": [ + "$divisor[5]" + ], + "stage0.sub.notd6": [ + "$divisor[6]" + ], + "stage0.sub.notd7": [ + "$divisor[7]" + ], + "stage0.sub.fa0.xor1.layer1.or": [ + "stage0.shift.bit0", + "stage0.sub.notd0" + ], + "stage0.sub.fa0.xor1.layer1.nand": [ + "stage0.shift.bit0", + "stage0.sub.notd0" + ], + "stage0.sub.fa0.xor1.layer2": [ + "stage0.sub.fa0.xor1.layer1.or", + "stage0.sub.fa0.xor1.layer1.nand" + ], + "stage0.sub.fa0.xor2.layer1.or": [ + "stage0.sub.fa0.xor1.layer2", + "#1" + ], + "stage0.sub.fa0.xor2.layer1.nand": [ + "stage0.sub.fa0.xor1.layer2", + "#1" + ], + "stage0.sub.fa0.xor2.layer2": [ + "stage0.sub.fa0.xor2.layer1.or", + "stage0.sub.fa0.xor2.layer1.nand" + ], + "stage0.sub.fa0.and1": [ + "stage0.shift.bit0", + "stage0.sub.notd0" + ], + "stage0.sub.fa0.and2": [ + "stage0.sub.fa0.xor1.layer2", + "#1" + ], + "stage0.sub.fa0.or_carry": [ + "stage0.sub.fa0.and1", + "stage0.sub.fa0.and2" + ], + "stage0.sub.fa1.xor1.layer1.or": [ + "stage0.shift.bit1", + "stage0.sub.notd1" + ], + "stage0.sub.fa1.xor1.layer1.nand": [ + "stage0.shift.bit1", + "stage0.sub.notd1" + ], + "stage0.sub.fa1.xor1.layer2": [ + "stage0.sub.fa1.xor1.layer1.or", + "stage0.sub.fa1.xor1.layer1.nand" + ], + "stage0.sub.fa1.xor2.layer1.or": [ + "stage0.sub.fa1.xor1.layer2", + "stage0.sub.fa0.or_carry" + ], + "stage0.sub.fa1.xor2.layer1.nand": [ + "stage0.sub.fa1.xor1.layer2", + "stage0.sub.fa0.or_carry" + ], + "stage0.sub.fa1.xor2.layer2": [ + "stage0.sub.fa1.xor2.layer1.or", + "stage0.sub.fa1.xor2.layer1.nand" + ], + "stage0.sub.fa1.and1": [ + "stage0.shift.bit1", + "stage0.sub.notd1" + ], + "stage0.sub.fa1.and2": [ + "stage0.sub.fa1.xor1.layer2", + "stage0.sub.fa0.or_carry" + ], + "stage0.sub.fa1.or_carry": [ + "stage0.sub.fa1.and1", + "stage0.sub.fa1.and2" + ], + "stage0.sub.fa2.xor1.layer1.or": [ + "stage0.shift.bit2", + "stage0.sub.notd2" + ], + "stage0.sub.fa2.xor1.layer1.nand": [ + "stage0.shift.bit2", + "stage0.sub.notd2" + ], + "stage0.sub.fa2.xor1.layer2": [ + "stage0.sub.fa2.xor1.layer1.or", + "stage0.sub.fa2.xor1.layer1.nand" + ], + "stage0.sub.fa2.xor2.layer1.or": [ + "stage0.sub.fa2.xor1.layer2", + "stage0.sub.fa1.or_carry" + ], + "stage0.sub.fa2.xor2.layer1.nand": [ + "stage0.sub.fa2.xor1.layer2", + "stage0.sub.fa1.or_carry" + ], + "stage0.sub.fa2.xor2.layer2": [ + "stage0.sub.fa2.xor2.layer1.or", + "stage0.sub.fa2.xor2.layer1.nand" + ], + "stage0.sub.fa2.and1": [ + "stage0.shift.bit2", + "stage0.sub.notd2" + ], + "stage0.sub.fa2.and2": [ + "stage0.sub.fa2.xor1.layer2", + "stage0.sub.fa1.or_carry" + ], + "stage0.sub.fa2.or_carry": [ + "stage0.sub.fa2.and1", + "stage0.sub.fa2.and2" + ], + "stage0.sub.fa3.xor1.layer1.or": [ + "stage0.shift.bit3", + "stage0.sub.notd3" + ], + "stage0.sub.fa3.xor1.layer1.nand": [ + "stage0.shift.bit3", + "stage0.sub.notd3" + ], + "stage0.sub.fa3.xor1.layer2": [ + "stage0.sub.fa3.xor1.layer1.or", + "stage0.sub.fa3.xor1.layer1.nand" + ], + "stage0.sub.fa3.xor2.layer1.or": [ + "stage0.sub.fa3.xor1.layer2", + "stage0.sub.fa2.or_carry" + ], + "stage0.sub.fa3.xor2.layer1.nand": [ + "stage0.sub.fa3.xor1.layer2", + "stage0.sub.fa2.or_carry" + ], + "stage0.sub.fa3.xor2.layer2": [ + "stage0.sub.fa3.xor2.layer1.or", + "stage0.sub.fa3.xor2.layer1.nand" + ], + "stage0.sub.fa3.and1": [ + "stage0.shift.bit3", + "stage0.sub.notd3" + ], + "stage0.sub.fa3.and2": [ + "stage0.sub.fa3.xor1.layer2", + "stage0.sub.fa2.or_carry" + ], + "stage0.sub.fa3.or_carry": [ + "stage0.sub.fa3.and1", + "stage0.sub.fa3.and2" + ], + "stage0.sub.fa4.xor1.layer1.or": [ + "stage0.shift.bit4", + "stage0.sub.notd4" + ], + "stage0.sub.fa4.xor1.layer1.nand": [ + "stage0.shift.bit4", + "stage0.sub.notd4" + ], + "stage0.sub.fa4.xor1.layer2": [ + "stage0.sub.fa4.xor1.layer1.or", + "stage0.sub.fa4.xor1.layer1.nand" + ], + "stage0.sub.fa4.xor2.layer1.or": [ + "stage0.sub.fa4.xor1.layer2", + "stage0.sub.fa3.or_carry" + ], + "stage0.sub.fa4.xor2.layer1.nand": [ + "stage0.sub.fa4.xor1.layer2", + "stage0.sub.fa3.or_carry" + ], + "stage0.sub.fa4.xor2.layer2": [ + "stage0.sub.fa4.xor2.layer1.or", + "stage0.sub.fa4.xor2.layer1.nand" + ], + "stage0.sub.fa4.and1": [ + "stage0.shift.bit4", + "stage0.sub.notd4" + ], + "stage0.sub.fa4.and2": [ + "stage0.sub.fa4.xor1.layer2", + "stage0.sub.fa3.or_carry" + ], + "stage0.sub.fa4.or_carry": [ + "stage0.sub.fa4.and1", + "stage0.sub.fa4.and2" + ], + "stage0.sub.fa5.xor1.layer1.or": [ + "stage0.shift.bit5", + "stage0.sub.notd5" + ], + "stage0.sub.fa5.xor1.layer1.nand": [ + "stage0.shift.bit5", + "stage0.sub.notd5" + ], + "stage0.sub.fa5.xor1.layer2": [ + "stage0.sub.fa5.xor1.layer1.or", + "stage0.sub.fa5.xor1.layer1.nand" + ], + "stage0.sub.fa5.xor2.layer1.or": [ + "stage0.sub.fa5.xor1.layer2", + "stage0.sub.fa4.or_carry" + ], + "stage0.sub.fa5.xor2.layer1.nand": [ + "stage0.sub.fa5.xor1.layer2", + "stage0.sub.fa4.or_carry" + ], + "stage0.sub.fa5.xor2.layer2": [ + "stage0.sub.fa5.xor2.layer1.or", + "stage0.sub.fa5.xor2.layer1.nand" + ], + "stage0.sub.fa5.and1": [ + "stage0.shift.bit5", + "stage0.sub.notd5" + ], + "stage0.sub.fa5.and2": [ + "stage0.sub.fa5.xor1.layer2", + "stage0.sub.fa4.or_carry" + ], + "stage0.sub.fa5.or_carry": [ + "stage0.sub.fa5.and1", + "stage0.sub.fa5.and2" + ], + "stage0.sub.fa6.xor1.layer1.or": [ + "stage0.shift.bit6", + "stage0.sub.notd6" + ], + "stage0.sub.fa6.xor1.layer1.nand": [ + "stage0.shift.bit6", + "stage0.sub.notd6" + ], + "stage0.sub.fa6.xor1.layer2": [ + "stage0.sub.fa6.xor1.layer1.or", + "stage0.sub.fa6.xor1.layer1.nand" + ], + "stage0.sub.fa6.xor2.layer1.or": [ + "stage0.sub.fa6.xor1.layer2", + "stage0.sub.fa5.or_carry" + ], + "stage0.sub.fa6.xor2.layer1.nand": [ + "stage0.sub.fa6.xor1.layer2", + "stage0.sub.fa5.or_carry" + ], + "stage0.sub.fa6.xor2.layer2": [ + "stage0.sub.fa6.xor2.layer1.or", + "stage0.sub.fa6.xor2.layer1.nand" + ], + "stage0.sub.fa6.and1": [ + "stage0.shift.bit6", + "stage0.sub.notd6" + ], + "stage0.sub.fa6.and2": [ + "stage0.sub.fa6.xor1.layer2", + "stage0.sub.fa5.or_carry" + ], + "stage0.sub.fa6.or_carry": [ + "stage0.sub.fa6.and1", + "stage0.sub.fa6.and2" + ], + "stage0.sub.fa7.xor1.layer1.or": [ + "stage0.shift.bit7", + "stage0.sub.notd7" + ], + "stage0.sub.fa7.xor1.layer1.nand": [ + "stage0.shift.bit7", + "stage0.sub.notd7" + ], + "stage0.sub.fa7.xor1.layer2": [ + "stage0.sub.fa7.xor1.layer1.or", + "stage0.sub.fa7.xor1.layer1.nand" + ], + "stage0.sub.fa7.xor2.layer1.or": [ + "stage0.sub.fa7.xor1.layer2", + "stage0.sub.fa6.or_carry" + ], + "stage0.sub.fa7.xor2.layer1.nand": [ + "stage0.sub.fa7.xor1.layer2", + "stage0.sub.fa6.or_carry" + ], + "stage0.sub.fa7.xor2.layer2": [ + "stage0.sub.fa7.xor2.layer1.or", + "stage0.sub.fa7.xor2.layer1.nand" + ], + "stage0.sub.fa7.and1": [ + "stage0.shift.bit7", + "stage0.sub.notd7" + ], + "stage0.sub.fa7.and2": [ + "stage0.sub.fa7.xor1.layer2", + "stage0.sub.fa6.or_carry" + ], + "stage0.sub.fa7.or_carry": [ + "stage0.sub.fa7.and1", + "stage0.sub.fa7.and2" + ], + "stage0.cmp": [ + "stage0.sub.fa7.or_carry" + ], + "stage0.or_dividend": [ + "stage0.shift.bit7", + "$dividend[7]" + ], + "stage0.mux0.not_sel": [ + "stage0.cmp" + ], + "stage0.mux0.and0": [ + "stage0.shift.bit0", + "stage0.mux0.not_sel" + ], + "stage0.mux0.and1": [ + "stage0.sub.fa0.xor2.layer2", + "stage0.cmp" + ], + "stage0.mux0.or": [ + "stage0.mux0.and0", + "stage0.mux0.and1" + ], + "stage0.mux1.not_sel": [ + "stage0.cmp" + ], + "stage0.mux1.and0": [ + "stage0.shift.bit1", + "stage0.mux1.not_sel" + ], + "stage0.mux1.and1": [ + "stage0.sub.fa1.xor2.layer2", + "stage0.cmp" + ], + "stage0.mux1.or": [ + "stage0.mux1.and0", + "stage0.mux1.and1" + ], + "stage0.mux2.not_sel": [ + "stage0.cmp" + ], + "stage0.mux2.and0": [ + "stage0.shift.bit2", + "stage0.mux2.not_sel" + ], + "stage0.mux2.and1": [ + "stage0.sub.fa2.xor2.layer2", + "stage0.cmp" + ], + "stage0.mux2.or": [ + "stage0.mux2.and0", + "stage0.mux2.and1" + ], + "stage0.mux3.not_sel": [ + "stage0.cmp" + ], + "stage0.mux3.and0": [ + "stage0.shift.bit3", + "stage0.mux3.not_sel" + ], + "stage0.mux3.and1": [ + "stage0.sub.fa3.xor2.layer2", + "stage0.cmp" + ], + "stage0.mux3.or": [ + "stage0.mux3.and0", + "stage0.mux3.and1" + ], + "stage0.mux4.not_sel": [ + "stage0.cmp" + ], + "stage0.mux4.and0": [ + "stage0.shift.bit4", + "stage0.mux4.not_sel" + ], + "stage0.mux4.and1": [ + "stage0.sub.fa4.xor2.layer2", + "stage0.cmp" + ], + "stage0.mux4.or": [ + "stage0.mux4.and0", + "stage0.mux4.and1" + ], + "stage0.mux5.not_sel": [ + "stage0.cmp" + ], + "stage0.mux5.and0": [ + "stage0.shift.bit5", + "stage0.mux5.not_sel" + ], + "stage0.mux5.and1": [ + "stage0.sub.fa5.xor2.layer2", + "stage0.cmp" + ], + "stage0.mux5.or": [ + "stage0.mux5.and0", + "stage0.mux5.and1" + ], + "stage0.mux6.not_sel": [ + "stage0.cmp" + ], + "stage0.mux6.and0": [ + "stage0.shift.bit6", + "stage0.mux6.not_sel" + ], + "stage0.mux6.and1": [ + "stage0.sub.fa6.xor2.layer2", + "stage0.cmp" + ], + "stage0.mux6.or": [ + "stage0.mux6.and0", + "stage0.mux6.and1" + ], + "stage0.mux7.not_sel": [ + "stage0.cmp" + ], + "stage0.mux7.and0": [ + "stage0.shift.bit7", + "stage0.mux7.not_sel" + ], + "stage0.mux7.and1": [ + "stage0.sub.fa7.xor2.layer2", + "stage0.cmp" + ], + "stage0.mux7.or": [ + "stage0.mux7.and0", + "stage0.mux7.and1" + ], + "stage1.shift.bit0": [ + "$dividend[6]" + ], + "stage1.shift.bit1": [ + "stage0.mux0.or" + ], + "stage1.shift.bit2": [ + "stage0.mux1.or" + ], + "stage1.shift.bit3": [ + "stage0.mux2.or" + ], + "stage1.shift.bit4": [ + "stage0.mux3.or" + ], + "stage1.shift.bit5": [ + "stage0.mux4.or" + ], + "stage1.shift.bit6": [ + "stage0.mux5.or" + ], + "stage1.shift.bit7": [ + "stage0.mux6.or" + ], + "stage1.sub.notd0": [ + "$divisor[0]" + ], + "stage1.sub.notd1": [ + "$divisor[1]" + ], + "stage1.sub.notd2": [ + "$divisor[2]" + ], + "stage1.sub.notd3": [ + "$divisor[3]" + ], + "stage1.sub.notd4": [ + "$divisor[4]" + ], + "stage1.sub.notd5": [ + "$divisor[5]" + ], + "stage1.sub.notd6": [ + "$divisor[6]" + ], + "stage1.sub.notd7": [ + "$divisor[7]" + ], + "stage1.sub.fa0.xor1.layer1.or": [ + "stage1.shift.bit0", + "stage1.sub.notd0" + ], + "stage1.sub.fa0.xor1.layer1.nand": [ + "stage1.shift.bit0", + "stage1.sub.notd0" + ], + "stage1.sub.fa0.xor1.layer2": [ + "stage1.sub.fa0.xor1.layer1.or", + "stage1.sub.fa0.xor1.layer1.nand" + ], + "stage1.sub.fa0.xor2.layer1.or": [ + "stage1.sub.fa0.xor1.layer2", + "#1" + ], + "stage1.sub.fa0.xor2.layer1.nand": [ + "stage1.sub.fa0.xor1.layer2", + "#1" + ], + "stage1.sub.fa0.xor2.layer2": [ + "stage1.sub.fa0.xor2.layer1.or", + "stage1.sub.fa0.xor2.layer1.nand" + ], + "stage1.sub.fa0.and1": [ + "stage1.shift.bit0", + "stage1.sub.notd0" + ], + "stage1.sub.fa0.and2": [ + "stage1.sub.fa0.xor1.layer2", + "#1" + ], + "stage1.sub.fa0.or_carry": [ + "stage1.sub.fa0.and1", + "stage1.sub.fa0.and2" + ], + "stage1.sub.fa1.xor1.layer1.or": [ + "stage1.shift.bit1", + "stage1.sub.notd1" + ], + "stage1.sub.fa1.xor1.layer1.nand": [ + "stage1.shift.bit1", + "stage1.sub.notd1" + ], + "stage1.sub.fa1.xor1.layer2": [ + "stage1.sub.fa1.xor1.layer1.or", + "stage1.sub.fa1.xor1.layer1.nand" + ], + "stage1.sub.fa1.xor2.layer1.or": [ + "stage1.sub.fa1.xor1.layer2", + "stage1.sub.fa0.or_carry" + ], + "stage1.sub.fa1.xor2.layer1.nand": [ + "stage1.sub.fa1.xor1.layer2", + "stage1.sub.fa0.or_carry" + ], + "stage1.sub.fa1.xor2.layer2": [ + "stage1.sub.fa1.xor2.layer1.or", + "stage1.sub.fa1.xor2.layer1.nand" + ], + "stage1.sub.fa1.and1": [ + "stage1.shift.bit1", + "stage1.sub.notd1" + ], + "stage1.sub.fa1.and2": [ + "stage1.sub.fa1.xor1.layer2", + "stage1.sub.fa0.or_carry" + ], + "stage1.sub.fa1.or_carry": [ + "stage1.sub.fa1.and1", + "stage1.sub.fa1.and2" + ], + "stage1.sub.fa2.xor1.layer1.or": [ + "stage1.shift.bit2", + "stage1.sub.notd2" + ], + "stage1.sub.fa2.xor1.layer1.nand": [ + "stage1.shift.bit2", + "stage1.sub.notd2" + ], + "stage1.sub.fa2.xor1.layer2": [ + "stage1.sub.fa2.xor1.layer1.or", + "stage1.sub.fa2.xor1.layer1.nand" + ], + "stage1.sub.fa2.xor2.layer1.or": [ + "stage1.sub.fa2.xor1.layer2", + "stage1.sub.fa1.or_carry" + ], + "stage1.sub.fa2.xor2.layer1.nand": [ + "stage1.sub.fa2.xor1.layer2", + "stage1.sub.fa1.or_carry" + ], + "stage1.sub.fa2.xor2.layer2": [ + "stage1.sub.fa2.xor2.layer1.or", + "stage1.sub.fa2.xor2.layer1.nand" + ], + "stage1.sub.fa2.and1": [ + "stage1.shift.bit2", + "stage1.sub.notd2" + ], + "stage1.sub.fa2.and2": [ + "stage1.sub.fa2.xor1.layer2", + "stage1.sub.fa1.or_carry" + ], + "stage1.sub.fa2.or_carry": [ + "stage1.sub.fa2.and1", + "stage1.sub.fa2.and2" + ], + "stage1.sub.fa3.xor1.layer1.or": [ + "stage1.shift.bit3", + "stage1.sub.notd3" + ], + "stage1.sub.fa3.xor1.layer1.nand": [ + "stage1.shift.bit3", + "stage1.sub.notd3" + ], + "stage1.sub.fa3.xor1.layer2": [ + "stage1.sub.fa3.xor1.layer1.or", + "stage1.sub.fa3.xor1.layer1.nand" + ], + "stage1.sub.fa3.xor2.layer1.or": [ + "stage1.sub.fa3.xor1.layer2", + "stage1.sub.fa2.or_carry" + ], + "stage1.sub.fa3.xor2.layer1.nand": [ + "stage1.sub.fa3.xor1.layer2", + "stage1.sub.fa2.or_carry" + ], + "stage1.sub.fa3.xor2.layer2": [ + "stage1.sub.fa3.xor2.layer1.or", + "stage1.sub.fa3.xor2.layer1.nand" + ], + "stage1.sub.fa3.and1": [ + "stage1.shift.bit3", + "stage1.sub.notd3" + ], + "stage1.sub.fa3.and2": [ + "stage1.sub.fa3.xor1.layer2", + "stage1.sub.fa2.or_carry" + ], + "stage1.sub.fa3.or_carry": [ + "stage1.sub.fa3.and1", + "stage1.sub.fa3.and2" + ], + "stage1.sub.fa4.xor1.layer1.or": [ + "stage1.shift.bit4", + "stage1.sub.notd4" + ], + "stage1.sub.fa4.xor1.layer1.nand": [ + "stage1.shift.bit4", + "stage1.sub.notd4" + ], + "stage1.sub.fa4.xor1.layer2": [ + "stage1.sub.fa4.xor1.layer1.or", + "stage1.sub.fa4.xor1.layer1.nand" + ], + "stage1.sub.fa4.xor2.layer1.or": [ + "stage1.sub.fa4.xor1.layer2", + "stage1.sub.fa3.or_carry" + ], + "stage1.sub.fa4.xor2.layer1.nand": [ + "stage1.sub.fa4.xor1.layer2", + "stage1.sub.fa3.or_carry" + ], + "stage1.sub.fa4.xor2.layer2": [ + "stage1.sub.fa4.xor2.layer1.or", + "stage1.sub.fa4.xor2.layer1.nand" + ], + "stage1.sub.fa4.and1": [ + "stage1.shift.bit4", + "stage1.sub.notd4" + ], + "stage1.sub.fa4.and2": [ + "stage1.sub.fa4.xor1.layer2", + "stage1.sub.fa3.or_carry" + ], + "stage1.sub.fa4.or_carry": [ + "stage1.sub.fa4.and1", + "stage1.sub.fa4.and2" + ], + "stage1.sub.fa5.xor1.layer1.or": [ + "stage1.shift.bit5", + "stage1.sub.notd5" + ], + "stage1.sub.fa5.xor1.layer1.nand": [ + "stage1.shift.bit5", + "stage1.sub.notd5" + ], + "stage1.sub.fa5.xor1.layer2": [ + "stage1.sub.fa5.xor1.layer1.or", + "stage1.sub.fa5.xor1.layer1.nand" + ], + "stage1.sub.fa5.xor2.layer1.or": [ + "stage1.sub.fa5.xor1.layer2", + "stage1.sub.fa4.or_carry" + ], + "stage1.sub.fa5.xor2.layer1.nand": [ + "stage1.sub.fa5.xor1.layer2", + "stage1.sub.fa4.or_carry" + ], + "stage1.sub.fa5.xor2.layer2": [ + "stage1.sub.fa5.xor2.layer1.or", + "stage1.sub.fa5.xor2.layer1.nand" + ], + "stage1.sub.fa5.and1": [ + "stage1.shift.bit5", + "stage1.sub.notd5" + ], + "stage1.sub.fa5.and2": [ + "stage1.sub.fa5.xor1.layer2", + "stage1.sub.fa4.or_carry" + ], + "stage1.sub.fa5.or_carry": [ + "stage1.sub.fa5.and1", + "stage1.sub.fa5.and2" + ], + "stage1.sub.fa6.xor1.layer1.or": [ + "stage1.shift.bit6", + "stage1.sub.notd6" + ], + "stage1.sub.fa6.xor1.layer1.nand": [ + "stage1.shift.bit6", + "stage1.sub.notd6" + ], + "stage1.sub.fa6.xor1.layer2": [ + "stage1.sub.fa6.xor1.layer1.or", + "stage1.sub.fa6.xor1.layer1.nand" + ], + "stage1.sub.fa6.xor2.layer1.or": [ + "stage1.sub.fa6.xor1.layer2", + "stage1.sub.fa5.or_carry" + ], + "stage1.sub.fa6.xor2.layer1.nand": [ + "stage1.sub.fa6.xor1.layer2", + "stage1.sub.fa5.or_carry" + ], + "stage1.sub.fa6.xor2.layer2": [ + "stage1.sub.fa6.xor2.layer1.or", + "stage1.sub.fa6.xor2.layer1.nand" + ], + "stage1.sub.fa6.and1": [ + "stage1.shift.bit6", + "stage1.sub.notd6" + ], + "stage1.sub.fa6.and2": [ + "stage1.sub.fa6.xor1.layer2", + "stage1.sub.fa5.or_carry" + ], + "stage1.sub.fa6.or_carry": [ + "stage1.sub.fa6.and1", + "stage1.sub.fa6.and2" + ], + "stage1.sub.fa7.xor1.layer1.or": [ + "stage1.shift.bit7", + "stage1.sub.notd7" + ], + "stage1.sub.fa7.xor1.layer1.nand": [ + "stage1.shift.bit7", + "stage1.sub.notd7" + ], + "stage1.sub.fa7.xor1.layer2": [ + "stage1.sub.fa7.xor1.layer1.or", + "stage1.sub.fa7.xor1.layer1.nand" + ], + "stage1.sub.fa7.xor2.layer1.or": [ + "stage1.sub.fa7.xor1.layer2", + "stage1.sub.fa6.or_carry" + ], + "stage1.sub.fa7.xor2.layer1.nand": [ + "stage1.sub.fa7.xor1.layer2", + "stage1.sub.fa6.or_carry" + ], + "stage1.sub.fa7.xor2.layer2": [ + "stage1.sub.fa7.xor2.layer1.or", + "stage1.sub.fa7.xor2.layer1.nand" + ], + "stage1.sub.fa7.and1": [ + "stage1.shift.bit7", + "stage1.sub.notd7" + ], + "stage1.sub.fa7.and2": [ + "stage1.sub.fa7.xor1.layer2", + "stage1.sub.fa6.or_carry" + ], + "stage1.sub.fa7.or_carry": [ + "stage1.sub.fa7.and1", + "stage1.sub.fa7.and2" + ], + "stage1.cmp": [ + "stage1.sub.fa7.or_carry" + ], + "stage1.or_dividend": [ + "stage1.shift.bit7", + "$dividend[6]" + ], + "stage1.mux0.not_sel": [ + "stage1.cmp" + ], + "stage1.mux0.and0": [ + "stage1.shift.bit0", + "stage1.mux0.not_sel" + ], + "stage1.mux0.and1": [ + "stage1.sub.fa0.xor2.layer2", + "stage1.cmp" + ], + "stage1.mux0.or": [ + "stage1.mux0.and0", + "stage1.mux0.and1" + ], + "stage1.mux1.not_sel": [ + "stage1.cmp" + ], + "stage1.mux1.and0": [ + "stage1.shift.bit1", + "stage1.mux1.not_sel" + ], + "stage1.mux1.and1": [ + "stage1.sub.fa1.xor2.layer2", + "stage1.cmp" + ], + "stage1.mux1.or": [ + "stage1.mux1.and0", + "stage1.mux1.and1" + ], + "stage1.mux2.not_sel": [ + "stage1.cmp" + ], + "stage1.mux2.and0": [ + "stage1.shift.bit2", + "stage1.mux2.not_sel" + ], + "stage1.mux2.and1": [ + "stage1.sub.fa2.xor2.layer2", + "stage1.cmp" + ], + "stage1.mux2.or": [ + "stage1.mux2.and0", + "stage1.mux2.and1" + ], + "stage1.mux3.not_sel": [ + "stage1.cmp" + ], + "stage1.mux3.and0": [ + "stage1.shift.bit3", + "stage1.mux3.not_sel" + ], + "stage1.mux3.and1": [ + "stage1.sub.fa3.xor2.layer2", + "stage1.cmp" + ], + "stage1.mux3.or": [ + "stage1.mux3.and0", + "stage1.mux3.and1" + ], + "stage1.mux4.not_sel": [ + "stage1.cmp" + ], + "stage1.mux4.and0": [ + "stage1.shift.bit4", + "stage1.mux4.not_sel" + ], + "stage1.mux4.and1": [ + "stage1.sub.fa4.xor2.layer2", + "stage1.cmp" + ], + "stage1.mux4.or": [ + "stage1.mux4.and0", + "stage1.mux4.and1" + ], + "stage1.mux5.not_sel": [ + "stage1.cmp" + ], + "stage1.mux5.and0": [ + "stage1.shift.bit5", + "stage1.mux5.not_sel" + ], + "stage1.mux5.and1": [ + "stage1.sub.fa5.xor2.layer2", + "stage1.cmp" + ], + "stage1.mux5.or": [ + "stage1.mux5.and0", + "stage1.mux5.and1" + ], + "stage1.mux6.not_sel": [ + "stage1.cmp" + ], + "stage1.mux6.and0": [ + "stage1.shift.bit6", + "stage1.mux6.not_sel" + ], + "stage1.mux6.and1": [ + "stage1.sub.fa6.xor2.layer2", + "stage1.cmp" + ], + "stage1.mux6.or": [ + "stage1.mux6.and0", + "stage1.mux6.and1" + ], + "stage1.mux7.not_sel": [ + "stage1.cmp" + ], + "stage1.mux7.and0": [ + "stage1.shift.bit7", + "stage1.mux7.not_sel" + ], + "stage1.mux7.and1": [ + "stage1.sub.fa7.xor2.layer2", + "stage1.cmp" + ], + "stage1.mux7.or": [ + "stage1.mux7.and0", + "stage1.mux7.and1" + ], + "stage2.shift.bit0": [ + "$dividend[5]" + ], + "stage2.shift.bit1": [ + "stage1.mux0.or" + ], + "stage2.shift.bit2": [ + "stage1.mux1.or" + ], + "stage2.shift.bit3": [ + "stage1.mux2.or" + ], + "stage2.shift.bit4": [ + "stage1.mux3.or" + ], + "stage2.shift.bit5": [ + "stage1.mux4.or" + ], + "stage2.shift.bit6": [ + "stage1.mux5.or" + ], + "stage2.shift.bit7": [ + "stage1.mux6.or" + ], + "stage2.sub.notd0": [ + "$divisor[0]" + ], + "stage2.sub.notd1": [ + "$divisor[1]" + ], + "stage2.sub.notd2": [ + "$divisor[2]" + ], + "stage2.sub.notd3": [ + "$divisor[3]" + ], + "stage2.sub.notd4": [ + "$divisor[4]" + ], + "stage2.sub.notd5": [ + "$divisor[5]" + ], + "stage2.sub.notd6": [ + "$divisor[6]" + ], + "stage2.sub.notd7": [ + "$divisor[7]" + ], + "stage2.sub.fa0.xor1.layer1.or": [ + "stage2.shift.bit0", + "stage2.sub.notd0" + ], + "stage2.sub.fa0.xor1.layer1.nand": [ + "stage2.shift.bit0", + "stage2.sub.notd0" + ], + "stage2.sub.fa0.xor1.layer2": [ + "stage2.sub.fa0.xor1.layer1.or", + "stage2.sub.fa0.xor1.layer1.nand" + ], + "stage2.sub.fa0.xor2.layer1.or": [ + "stage2.sub.fa0.xor1.layer2", + "#1" + ], + "stage2.sub.fa0.xor2.layer1.nand": [ + "stage2.sub.fa0.xor1.layer2", + "#1" + ], + "stage2.sub.fa0.xor2.layer2": [ + "stage2.sub.fa0.xor2.layer1.or", + "stage2.sub.fa0.xor2.layer1.nand" + ], + "stage2.sub.fa0.and1": [ + "stage2.shift.bit0", + "stage2.sub.notd0" + ], + "stage2.sub.fa0.and2": [ + "stage2.sub.fa0.xor1.layer2", + "#1" + ], + "stage2.sub.fa0.or_carry": [ + "stage2.sub.fa0.and1", + "stage2.sub.fa0.and2" + ], + "stage2.sub.fa1.xor1.layer1.or": [ + "stage2.shift.bit1", + "stage2.sub.notd1" + ], + "stage2.sub.fa1.xor1.layer1.nand": [ + "stage2.shift.bit1", + "stage2.sub.notd1" + ], + "stage2.sub.fa1.xor1.layer2": [ + "stage2.sub.fa1.xor1.layer1.or", + "stage2.sub.fa1.xor1.layer1.nand" + ], + "stage2.sub.fa1.xor2.layer1.or": [ + "stage2.sub.fa1.xor1.layer2", + "stage2.sub.fa0.or_carry" + ], + "stage2.sub.fa1.xor2.layer1.nand": [ + "stage2.sub.fa1.xor1.layer2", + "stage2.sub.fa0.or_carry" + ], + "stage2.sub.fa1.xor2.layer2": [ + "stage2.sub.fa1.xor2.layer1.or", + "stage2.sub.fa1.xor2.layer1.nand" + ], + "stage2.sub.fa1.and1": [ + "stage2.shift.bit1", + "stage2.sub.notd1" + ], + "stage2.sub.fa1.and2": [ + "stage2.sub.fa1.xor1.layer2", + "stage2.sub.fa0.or_carry" + ], + "stage2.sub.fa1.or_carry": [ + "stage2.sub.fa1.and1", + "stage2.sub.fa1.and2" + ], + "stage2.sub.fa2.xor1.layer1.or": [ + "stage2.shift.bit2", + "stage2.sub.notd2" + ], + "stage2.sub.fa2.xor1.layer1.nand": [ + "stage2.shift.bit2", + "stage2.sub.notd2" + ], + "stage2.sub.fa2.xor1.layer2": [ + "stage2.sub.fa2.xor1.layer1.or", + "stage2.sub.fa2.xor1.layer1.nand" + ], + "stage2.sub.fa2.xor2.layer1.or": [ + "stage2.sub.fa2.xor1.layer2", + "stage2.sub.fa1.or_carry" + ], + "stage2.sub.fa2.xor2.layer1.nand": [ + "stage2.sub.fa2.xor1.layer2", + "stage2.sub.fa1.or_carry" + ], + "stage2.sub.fa2.xor2.layer2": [ + "stage2.sub.fa2.xor2.layer1.or", + "stage2.sub.fa2.xor2.layer1.nand" + ], + "stage2.sub.fa2.and1": [ + "stage2.shift.bit2", + "stage2.sub.notd2" + ], + "stage2.sub.fa2.and2": [ + "stage2.sub.fa2.xor1.layer2", + "stage2.sub.fa1.or_carry" + ], + "stage2.sub.fa2.or_carry": [ + "stage2.sub.fa2.and1", + "stage2.sub.fa2.and2" + ], + "stage2.sub.fa3.xor1.layer1.or": [ + "stage2.shift.bit3", + "stage2.sub.notd3" + ], + "stage2.sub.fa3.xor1.layer1.nand": [ + "stage2.shift.bit3", + "stage2.sub.notd3" + ], + "stage2.sub.fa3.xor1.layer2": [ + "stage2.sub.fa3.xor1.layer1.or", + "stage2.sub.fa3.xor1.layer1.nand" + ], + "stage2.sub.fa3.xor2.layer1.or": [ + "stage2.sub.fa3.xor1.layer2", + "stage2.sub.fa2.or_carry" + ], + "stage2.sub.fa3.xor2.layer1.nand": [ + "stage2.sub.fa3.xor1.layer2", + "stage2.sub.fa2.or_carry" + ], + "stage2.sub.fa3.xor2.layer2": [ + "stage2.sub.fa3.xor2.layer1.or", + "stage2.sub.fa3.xor2.layer1.nand" + ], + "stage2.sub.fa3.and1": [ + "stage2.shift.bit3", + "stage2.sub.notd3" + ], + "stage2.sub.fa3.and2": [ + "stage2.sub.fa3.xor1.layer2", + "stage2.sub.fa2.or_carry" + ], + "stage2.sub.fa3.or_carry": [ + "stage2.sub.fa3.and1", + "stage2.sub.fa3.and2" + ], + "stage2.sub.fa4.xor1.layer1.or": [ + "stage2.shift.bit4", + "stage2.sub.notd4" + ], + "stage2.sub.fa4.xor1.layer1.nand": [ + "stage2.shift.bit4", + "stage2.sub.notd4" + ], + "stage2.sub.fa4.xor1.layer2": [ + "stage2.sub.fa4.xor1.layer1.or", + "stage2.sub.fa4.xor1.layer1.nand" + ], + "stage2.sub.fa4.xor2.layer1.or": [ + "stage2.sub.fa4.xor1.layer2", + "stage2.sub.fa3.or_carry" + ], + "stage2.sub.fa4.xor2.layer1.nand": [ + "stage2.sub.fa4.xor1.layer2", + "stage2.sub.fa3.or_carry" + ], + "stage2.sub.fa4.xor2.layer2": [ + "stage2.sub.fa4.xor2.layer1.or", + "stage2.sub.fa4.xor2.layer1.nand" + ], + "stage2.sub.fa4.and1": [ + "stage2.shift.bit4", + "stage2.sub.notd4" + ], + "stage2.sub.fa4.and2": [ + "stage2.sub.fa4.xor1.layer2", + "stage2.sub.fa3.or_carry" + ], + "stage2.sub.fa4.or_carry": [ + "stage2.sub.fa4.and1", + "stage2.sub.fa4.and2" + ], + "stage2.sub.fa5.xor1.layer1.or": [ + "stage2.shift.bit5", + "stage2.sub.notd5" + ], + "stage2.sub.fa5.xor1.layer1.nand": [ + "stage2.shift.bit5", + "stage2.sub.notd5" + ], + "stage2.sub.fa5.xor1.layer2": [ + "stage2.sub.fa5.xor1.layer1.or", + "stage2.sub.fa5.xor1.layer1.nand" + ], + "stage2.sub.fa5.xor2.layer1.or": [ + "stage2.sub.fa5.xor1.layer2", + "stage2.sub.fa4.or_carry" + ], + "stage2.sub.fa5.xor2.layer1.nand": [ + "stage2.sub.fa5.xor1.layer2", + "stage2.sub.fa4.or_carry" + ], + "stage2.sub.fa5.xor2.layer2": [ + "stage2.sub.fa5.xor2.layer1.or", + "stage2.sub.fa5.xor2.layer1.nand" + ], + "stage2.sub.fa5.and1": [ + "stage2.shift.bit5", + "stage2.sub.notd5" + ], + "stage2.sub.fa5.and2": [ + "stage2.sub.fa5.xor1.layer2", + "stage2.sub.fa4.or_carry" + ], + "stage2.sub.fa5.or_carry": [ + "stage2.sub.fa5.and1", + "stage2.sub.fa5.and2" + ], + "stage2.sub.fa6.xor1.layer1.or": [ + "stage2.shift.bit6", + "stage2.sub.notd6" + ], + "stage2.sub.fa6.xor1.layer1.nand": [ + "stage2.shift.bit6", + "stage2.sub.notd6" + ], + "stage2.sub.fa6.xor1.layer2": [ + "stage2.sub.fa6.xor1.layer1.or", + "stage2.sub.fa6.xor1.layer1.nand" + ], + "stage2.sub.fa6.xor2.layer1.or": [ + "stage2.sub.fa6.xor1.layer2", + "stage2.sub.fa5.or_carry" + ], + "stage2.sub.fa6.xor2.layer1.nand": [ + "stage2.sub.fa6.xor1.layer2", + "stage2.sub.fa5.or_carry" + ], + "stage2.sub.fa6.xor2.layer2": [ + "stage2.sub.fa6.xor2.layer1.or", + "stage2.sub.fa6.xor2.layer1.nand" + ], + "stage2.sub.fa6.and1": [ + "stage2.shift.bit6", + "stage2.sub.notd6" + ], + "stage2.sub.fa6.and2": [ + "stage2.sub.fa6.xor1.layer2", + "stage2.sub.fa5.or_carry" + ], + "stage2.sub.fa6.or_carry": [ + "stage2.sub.fa6.and1", + "stage2.sub.fa6.and2" + ], + "stage2.sub.fa7.xor1.layer1.or": [ + "stage2.shift.bit7", + "stage2.sub.notd7" + ], + "stage2.sub.fa7.xor1.layer1.nand": [ + "stage2.shift.bit7", + "stage2.sub.notd7" + ], + "stage2.sub.fa7.xor1.layer2": [ + "stage2.sub.fa7.xor1.layer1.or", + "stage2.sub.fa7.xor1.layer1.nand" + ], + "stage2.sub.fa7.xor2.layer1.or": [ + "stage2.sub.fa7.xor1.layer2", + "stage2.sub.fa6.or_carry" + ], + "stage2.sub.fa7.xor2.layer1.nand": [ + "stage2.sub.fa7.xor1.layer2", + "stage2.sub.fa6.or_carry" + ], + "stage2.sub.fa7.xor2.layer2": [ + "stage2.sub.fa7.xor2.layer1.or", + "stage2.sub.fa7.xor2.layer1.nand" + ], + "stage2.sub.fa7.and1": [ + "stage2.shift.bit7", + "stage2.sub.notd7" + ], + "stage2.sub.fa7.and2": [ + "stage2.sub.fa7.xor1.layer2", + "stage2.sub.fa6.or_carry" + ], + "stage2.sub.fa7.or_carry": [ + "stage2.sub.fa7.and1", + "stage2.sub.fa7.and2" + ], + "stage2.cmp": [ + "stage2.sub.fa7.or_carry" + ], + "stage2.or_dividend": [ + "stage2.shift.bit7", + "$dividend[5]" + ], + "stage2.mux0.not_sel": [ + "stage2.cmp" + ], + "stage2.mux0.and0": [ + "stage2.shift.bit0", + "stage2.mux0.not_sel" + ], + "stage2.mux0.and1": [ + "stage2.sub.fa0.xor2.layer2", + "stage2.cmp" + ], + "stage2.mux0.or": [ + "stage2.mux0.and0", + "stage2.mux0.and1" + ], + "stage2.mux1.not_sel": [ + "stage2.cmp" + ], + "stage2.mux1.and0": [ + "stage2.shift.bit1", + "stage2.mux1.not_sel" + ], + "stage2.mux1.and1": [ + "stage2.sub.fa1.xor2.layer2", + "stage2.cmp" + ], + "stage2.mux1.or": [ + "stage2.mux1.and0", + "stage2.mux1.and1" + ], + "stage2.mux2.not_sel": [ + "stage2.cmp" + ], + "stage2.mux2.and0": [ + "stage2.shift.bit2", + "stage2.mux2.not_sel" + ], + "stage2.mux2.and1": [ + "stage2.sub.fa2.xor2.layer2", + "stage2.cmp" + ], + "stage2.mux2.or": [ + "stage2.mux2.and0", + "stage2.mux2.and1" + ], + "stage2.mux3.not_sel": [ + "stage2.cmp" + ], + "stage2.mux3.and0": [ + "stage2.shift.bit3", + "stage2.mux3.not_sel" + ], + "stage2.mux3.and1": [ + "stage2.sub.fa3.xor2.layer2", + "stage2.cmp" + ], + "stage2.mux3.or": [ + "stage2.mux3.and0", + "stage2.mux3.and1" + ], + "stage2.mux4.not_sel": [ + "stage2.cmp" + ], + "stage2.mux4.and0": [ + "stage2.shift.bit4", + "stage2.mux4.not_sel" + ], + "stage2.mux4.and1": [ + "stage2.sub.fa4.xor2.layer2", + "stage2.cmp" + ], + "stage2.mux4.or": [ + "stage2.mux4.and0", + "stage2.mux4.and1" + ], + "stage2.mux5.not_sel": [ + "stage2.cmp" + ], + "stage2.mux5.and0": [ + "stage2.shift.bit5", + "stage2.mux5.not_sel" + ], + "stage2.mux5.and1": [ + "stage2.sub.fa5.xor2.layer2", + "stage2.cmp" + ], + "stage2.mux5.or": [ + "stage2.mux5.and0", + "stage2.mux5.and1" + ], + "stage2.mux6.not_sel": [ + "stage2.cmp" + ], + "stage2.mux6.and0": [ + "stage2.shift.bit6", + "stage2.mux6.not_sel" + ], + "stage2.mux6.and1": [ + "stage2.sub.fa6.xor2.layer2", + "stage2.cmp" + ], + "stage2.mux6.or": [ + "stage2.mux6.and0", + "stage2.mux6.and1" + ], + "stage2.mux7.not_sel": [ + "stage2.cmp" + ], + "stage2.mux7.and0": [ + "stage2.shift.bit7", + "stage2.mux7.not_sel" + ], + "stage2.mux7.and1": [ + "stage2.sub.fa7.xor2.layer2", + "stage2.cmp" + ], + "stage2.mux7.or": [ + "stage2.mux7.and0", + "stage2.mux7.and1" + ], + "stage3.shift.bit0": [ + "$dividend[4]" + ], + "stage3.shift.bit1": [ + "stage2.mux0.or" + ], + "stage3.shift.bit2": [ + "stage2.mux1.or" + ], + "stage3.shift.bit3": [ + "stage2.mux2.or" + ], + "stage3.shift.bit4": [ + "stage2.mux3.or" + ], + "stage3.shift.bit5": [ + "stage2.mux4.or" + ], + "stage3.shift.bit6": [ + "stage2.mux5.or" + ], + "stage3.shift.bit7": [ + "stage2.mux6.or" + ], + "stage3.sub.notd0": [ + "$divisor[0]" + ], + "stage3.sub.notd1": [ + "$divisor[1]" + ], + "stage3.sub.notd2": [ + "$divisor[2]" + ], + "stage3.sub.notd3": [ + "$divisor[3]" + ], + "stage3.sub.notd4": [ + "$divisor[4]" + ], + "stage3.sub.notd5": [ + "$divisor[5]" + ], + "stage3.sub.notd6": [ + "$divisor[6]" + ], + "stage3.sub.notd7": [ + "$divisor[7]" + ], + "stage3.sub.fa0.xor1.layer1.or": [ + "stage3.shift.bit0", + "stage3.sub.notd0" + ], + "stage3.sub.fa0.xor1.layer1.nand": [ + "stage3.shift.bit0", + "stage3.sub.notd0" + ], + "stage3.sub.fa0.xor1.layer2": [ + "stage3.sub.fa0.xor1.layer1.or", + "stage3.sub.fa0.xor1.layer1.nand" + ], + "stage3.sub.fa0.xor2.layer1.or": [ + "stage3.sub.fa0.xor1.layer2", + "#1" + ], + "stage3.sub.fa0.xor2.layer1.nand": [ + "stage3.sub.fa0.xor1.layer2", + "#1" + ], + "stage3.sub.fa0.xor2.layer2": [ + "stage3.sub.fa0.xor2.layer1.or", + "stage3.sub.fa0.xor2.layer1.nand" + ], + "stage3.sub.fa0.and1": [ + "stage3.shift.bit0", + "stage3.sub.notd0" + ], + "stage3.sub.fa0.and2": [ + "stage3.sub.fa0.xor1.layer2", + "#1" + ], + "stage3.sub.fa0.or_carry": [ + "stage3.sub.fa0.and1", + "stage3.sub.fa0.and2" + ], + "stage3.sub.fa1.xor1.layer1.or": [ + "stage3.shift.bit1", + "stage3.sub.notd1" + ], + "stage3.sub.fa1.xor1.layer1.nand": [ + "stage3.shift.bit1", + "stage3.sub.notd1" + ], + "stage3.sub.fa1.xor1.layer2": [ + "stage3.sub.fa1.xor1.layer1.or", + "stage3.sub.fa1.xor1.layer1.nand" + ], + "stage3.sub.fa1.xor2.layer1.or": [ + "stage3.sub.fa1.xor1.layer2", + "stage3.sub.fa0.or_carry" + ], + "stage3.sub.fa1.xor2.layer1.nand": [ + "stage3.sub.fa1.xor1.layer2", + "stage3.sub.fa0.or_carry" + ], + "stage3.sub.fa1.xor2.layer2": [ + "stage3.sub.fa1.xor2.layer1.or", + "stage3.sub.fa1.xor2.layer1.nand" + ], + "stage3.sub.fa1.and1": [ + "stage3.shift.bit1", + "stage3.sub.notd1" ], "stage3.sub.fa1.and2": [ "stage3.sub.fa1.xor1.layer2", "stage3.sub.fa0.or_carry" ], - "stage3.sub.fa1.or_carry": [ - "stage3.sub.fa1.and1", - "stage3.sub.fa1.and2" + "stage3.sub.fa1.or_carry": [ + "stage3.sub.fa1.and1", + "stage3.sub.fa1.and2" + ], + "stage3.sub.fa2.xor1.layer1.or": [ + "stage3.shift.bit2", + "stage3.sub.notd2" + ], + "stage3.sub.fa2.xor1.layer1.nand": [ + "stage3.shift.bit2", + "stage3.sub.notd2" + ], + "stage3.sub.fa2.xor1.layer2": [ + "stage3.sub.fa2.xor1.layer1.or", + "stage3.sub.fa2.xor1.layer1.nand" + ], + "stage3.sub.fa2.xor2.layer1.or": [ + "stage3.sub.fa2.xor1.layer2", + "stage3.sub.fa1.or_carry" + ], + "stage3.sub.fa2.xor2.layer1.nand": [ + "stage3.sub.fa2.xor1.layer2", + "stage3.sub.fa1.or_carry" + ], + "stage3.sub.fa2.xor2.layer2": [ + "stage3.sub.fa2.xor2.layer1.or", + "stage3.sub.fa2.xor2.layer1.nand" + ], + "stage3.sub.fa2.and1": [ + "stage3.shift.bit2", + "stage3.sub.notd2" + ], + "stage3.sub.fa2.and2": [ + "stage3.sub.fa2.xor1.layer2", + "stage3.sub.fa1.or_carry" + ], + "stage3.sub.fa2.or_carry": [ + "stage3.sub.fa2.and1", + "stage3.sub.fa2.and2" + ], + "stage3.sub.fa3.xor1.layer1.or": [ + "stage3.shift.bit3", + "stage3.sub.notd3" + ], + "stage3.sub.fa3.xor1.layer1.nand": [ + "stage3.shift.bit3", + "stage3.sub.notd3" + ], + "stage3.sub.fa3.xor1.layer2": [ + "stage3.sub.fa3.xor1.layer1.or", + "stage3.sub.fa3.xor1.layer1.nand" + ], + "stage3.sub.fa3.xor2.layer1.or": [ + "stage3.sub.fa3.xor1.layer2", + "stage3.sub.fa2.or_carry" + ], + "stage3.sub.fa3.xor2.layer1.nand": [ + "stage3.sub.fa3.xor1.layer2", + "stage3.sub.fa2.or_carry" + ], + "stage3.sub.fa3.xor2.layer2": [ + "stage3.sub.fa3.xor2.layer1.or", + "stage3.sub.fa3.xor2.layer1.nand" + ], + "stage3.sub.fa3.and1": [ + "stage3.shift.bit3", + "stage3.sub.notd3" + ], + "stage3.sub.fa3.and2": [ + "stage3.sub.fa3.xor1.layer2", + "stage3.sub.fa2.or_carry" + ], + "stage3.sub.fa3.or_carry": [ + "stage3.sub.fa3.and1", + "stage3.sub.fa3.and2" + ], + "stage3.sub.fa4.xor1.layer1.or": [ + "stage3.shift.bit4", + "stage3.sub.notd4" + ], + "stage3.sub.fa4.xor1.layer1.nand": [ + "stage3.shift.bit4", + "stage3.sub.notd4" + ], + "stage3.sub.fa4.xor1.layer2": [ + "stage3.sub.fa4.xor1.layer1.or", + "stage3.sub.fa4.xor1.layer1.nand" + ], + "stage3.sub.fa4.xor2.layer1.or": [ + "stage3.sub.fa4.xor1.layer2", + "stage3.sub.fa3.or_carry" + ], + "stage3.sub.fa4.xor2.layer1.nand": [ + "stage3.sub.fa4.xor1.layer2", + "stage3.sub.fa3.or_carry" + ], + "stage3.sub.fa4.xor2.layer2": [ + "stage3.sub.fa4.xor2.layer1.or", + "stage3.sub.fa4.xor2.layer1.nand" + ], + "stage3.sub.fa4.and1": [ + "stage3.shift.bit4", + "stage3.sub.notd4" + ], + "stage3.sub.fa4.and2": [ + "stage3.sub.fa4.xor1.layer2", + "stage3.sub.fa3.or_carry" + ], + "stage3.sub.fa4.or_carry": [ + "stage3.sub.fa4.and1", + "stage3.sub.fa4.and2" + ], + "stage3.sub.fa5.xor1.layer1.or": [ + "stage3.shift.bit5", + "stage3.sub.notd5" + ], + "stage3.sub.fa5.xor1.layer1.nand": [ + "stage3.shift.bit5", + "stage3.sub.notd5" + ], + "stage3.sub.fa5.xor1.layer2": [ + "stage3.sub.fa5.xor1.layer1.or", + "stage3.sub.fa5.xor1.layer1.nand" + ], + "stage3.sub.fa5.xor2.layer1.or": [ + "stage3.sub.fa5.xor1.layer2", + "stage3.sub.fa4.or_carry" + ], + "stage3.sub.fa5.xor2.layer1.nand": [ + "stage3.sub.fa5.xor1.layer2", + "stage3.sub.fa4.or_carry" + ], + "stage3.sub.fa5.xor2.layer2": [ + "stage3.sub.fa5.xor2.layer1.or", + "stage3.sub.fa5.xor2.layer1.nand" + ], + "stage3.sub.fa5.and1": [ + "stage3.shift.bit5", + "stage3.sub.notd5" + ], + "stage3.sub.fa5.and2": [ + "stage3.sub.fa5.xor1.layer2", + "stage3.sub.fa4.or_carry" + ], + "stage3.sub.fa5.or_carry": [ + "stage3.sub.fa5.and1", + "stage3.sub.fa5.and2" + ], + "stage3.sub.fa6.xor1.layer1.or": [ + "stage3.shift.bit6", + "stage3.sub.notd6" + ], + "stage3.sub.fa6.xor1.layer1.nand": [ + "stage3.shift.bit6", + "stage3.sub.notd6" + ], + "stage3.sub.fa6.xor1.layer2": [ + "stage3.sub.fa6.xor1.layer1.or", + "stage3.sub.fa6.xor1.layer1.nand" + ], + "stage3.sub.fa6.xor2.layer1.or": [ + "stage3.sub.fa6.xor1.layer2", + "stage3.sub.fa5.or_carry" + ], + "stage3.sub.fa6.xor2.layer1.nand": [ + "stage3.sub.fa6.xor1.layer2", + "stage3.sub.fa5.or_carry" + ], + "stage3.sub.fa6.xor2.layer2": [ + "stage3.sub.fa6.xor2.layer1.or", + "stage3.sub.fa6.xor2.layer1.nand" + ], + "stage3.sub.fa6.and1": [ + "stage3.shift.bit6", + "stage3.sub.notd6" + ], + "stage3.sub.fa6.and2": [ + "stage3.sub.fa6.xor1.layer2", + "stage3.sub.fa5.or_carry" + ], + "stage3.sub.fa6.or_carry": [ + "stage3.sub.fa6.and1", + "stage3.sub.fa6.and2" + ], + "stage3.sub.fa7.xor1.layer1.or": [ + "stage3.shift.bit7", + "stage3.sub.notd7" + ], + "stage3.sub.fa7.xor1.layer1.nand": [ + "stage3.shift.bit7", + "stage3.sub.notd7" + ], + "stage3.sub.fa7.xor1.layer2": [ + "stage3.sub.fa7.xor1.layer1.or", + "stage3.sub.fa7.xor1.layer1.nand" + ], + "stage3.sub.fa7.xor2.layer1.or": [ + "stage3.sub.fa7.xor1.layer2", + "stage3.sub.fa6.or_carry" + ], + "stage3.sub.fa7.xor2.layer1.nand": [ + "stage3.sub.fa7.xor1.layer2", + "stage3.sub.fa6.or_carry" + ], + "stage3.sub.fa7.xor2.layer2": [ + "stage3.sub.fa7.xor2.layer1.or", + "stage3.sub.fa7.xor2.layer1.nand" + ], + "stage3.sub.fa7.and1": [ + "stage3.shift.bit7", + "stage3.sub.notd7" + ], + "stage3.sub.fa7.and2": [ + "stage3.sub.fa7.xor1.layer2", + "stage3.sub.fa6.or_carry" + ], + "stage3.sub.fa7.or_carry": [ + "stage3.sub.fa7.and1", + "stage3.sub.fa7.and2" + ], + "stage3.cmp": [ + "stage3.sub.fa7.or_carry" + ], + "stage3.or_dividend": [ + "stage3.shift.bit7", + "$dividend[4]" + ], + "stage3.mux0.not_sel": [ + "stage3.cmp" + ], + "stage3.mux0.and0": [ + "stage3.shift.bit0", + "stage3.mux0.not_sel" + ], + "stage3.mux0.and1": [ + "stage3.sub.fa0.xor2.layer2", + "stage3.cmp" + ], + "stage3.mux0.or": [ + "stage3.mux0.and0", + "stage3.mux0.and1" + ], + "stage3.mux1.not_sel": [ + "stage3.cmp" + ], + "stage3.mux1.and0": [ + "stage3.shift.bit1", + "stage3.mux1.not_sel" + ], + "stage3.mux1.and1": [ + "stage3.sub.fa1.xor2.layer2", + "stage3.cmp" + ], + "stage3.mux1.or": [ + "stage3.mux1.and0", + "stage3.mux1.and1" + ], + "stage3.mux2.not_sel": [ + "stage3.cmp" + ], + "stage3.mux2.and0": [ + "stage3.shift.bit2", + "stage3.mux2.not_sel" + ], + "stage3.mux2.and1": [ + "stage3.sub.fa2.xor2.layer2", + "stage3.cmp" + ], + "stage3.mux2.or": [ + "stage3.mux2.and0", + "stage3.mux2.and1" + ], + "stage3.mux3.not_sel": [ + "stage3.cmp" + ], + "stage3.mux3.and0": [ + "stage3.shift.bit3", + "stage3.mux3.not_sel" + ], + "stage3.mux3.and1": [ + "stage3.sub.fa3.xor2.layer2", + "stage3.cmp" + ], + "stage3.mux3.or": [ + "stage3.mux3.and0", + "stage3.mux3.and1" + ], + "stage3.mux4.not_sel": [ + "stage3.cmp" + ], + "stage3.mux4.and0": [ + "stage3.shift.bit4", + "stage3.mux4.not_sel" + ], + "stage3.mux4.and1": [ + "stage3.sub.fa4.xor2.layer2", + "stage3.cmp" + ], + "stage3.mux4.or": [ + "stage3.mux4.and0", + "stage3.mux4.and1" + ], + "stage3.mux5.not_sel": [ + "stage3.cmp" + ], + "stage3.mux5.and0": [ + "stage3.shift.bit5", + "stage3.mux5.not_sel" + ], + "stage3.mux5.and1": [ + "stage3.sub.fa5.xor2.layer2", + "stage3.cmp" + ], + "stage3.mux5.or": [ + "stage3.mux5.and0", + "stage3.mux5.and1" + ], + "stage3.mux6.not_sel": [ + "stage3.cmp" + ], + "stage3.mux6.and0": [ + "stage3.shift.bit6", + "stage3.mux6.not_sel" + ], + "stage3.mux6.and1": [ + "stage3.sub.fa6.xor2.layer2", + "stage3.cmp" + ], + "stage3.mux6.or": [ + "stage3.mux6.and0", + "stage3.mux6.and1" + ], + "stage3.mux7.not_sel": [ + "stage3.cmp" + ], + "stage3.mux7.and0": [ + "stage3.shift.bit7", + "stage3.mux7.not_sel" + ], + "stage3.mux7.and1": [ + "stage3.sub.fa7.xor2.layer2", + "stage3.cmp" + ], + "stage3.mux7.or": [ + "stage3.mux7.and0", + "stage3.mux7.and1" + ], + "stage4.shift.bit0": [ + "$dividend[3]" + ], + "stage4.shift.bit1": [ + "stage3.mux0.or" + ], + "stage4.shift.bit2": [ + "stage3.mux1.or" + ], + "stage4.shift.bit3": [ + "stage3.mux2.or" + ], + "stage4.shift.bit4": [ + "stage3.mux3.or" + ], + "stage4.shift.bit5": [ + "stage3.mux4.or" + ], + "stage4.shift.bit6": [ + "stage3.mux5.or" + ], + "stage4.shift.bit7": [ + "stage3.mux6.or" + ], + "stage4.sub.notd0": [ + "$divisor[0]" + ], + "stage4.sub.notd1": [ + "$divisor[1]" + ], + "stage4.sub.notd2": [ + "$divisor[2]" + ], + "stage4.sub.notd3": [ + "$divisor[3]" + ], + "stage4.sub.notd4": [ + "$divisor[4]" + ], + "stage4.sub.notd5": [ + "$divisor[5]" + ], + "stage4.sub.notd6": [ + "$divisor[6]" + ], + "stage4.sub.notd7": [ + "$divisor[7]" + ], + "stage4.sub.fa0.xor1.layer1.or": [ + "stage4.shift.bit0", + "stage4.sub.notd0" + ], + "stage4.sub.fa0.xor1.layer1.nand": [ + "stage4.shift.bit0", + "stage4.sub.notd0" + ], + "stage4.sub.fa0.xor1.layer2": [ + "stage4.sub.fa0.xor1.layer1.or", + "stage4.sub.fa0.xor1.layer1.nand" + ], + "stage4.sub.fa0.xor2.layer1.or": [ + "stage4.sub.fa0.xor1.layer2", + "#1" + ], + "stage4.sub.fa0.xor2.layer1.nand": [ + "stage4.sub.fa0.xor1.layer2", + "#1" + ], + "stage4.sub.fa0.xor2.layer2": [ + "stage4.sub.fa0.xor2.layer1.or", + "stage4.sub.fa0.xor2.layer1.nand" + ], + "stage4.sub.fa0.and1": [ + "stage4.shift.bit0", + "stage4.sub.notd0" + ], + "stage4.sub.fa0.and2": [ + "stage4.sub.fa0.xor1.layer2", + "#1" + ], + "stage4.sub.fa0.or_carry": [ + "stage4.sub.fa0.and1", + "stage4.sub.fa0.and2" + ], + "stage4.sub.fa1.xor1.layer1.or": [ + "stage4.shift.bit1", + "stage4.sub.notd1" + ], + "stage4.sub.fa1.xor1.layer1.nand": [ + "stage4.shift.bit1", + "stage4.sub.notd1" + ], + "stage4.sub.fa1.xor1.layer2": [ + "stage4.sub.fa1.xor1.layer1.or", + "stage4.sub.fa1.xor1.layer1.nand" + ], + "stage4.sub.fa1.xor2.layer1.or": [ + "stage4.sub.fa1.xor1.layer2", + "stage4.sub.fa0.or_carry" + ], + "stage4.sub.fa1.xor2.layer1.nand": [ + "stage4.sub.fa1.xor1.layer2", + "stage4.sub.fa0.or_carry" + ], + "stage4.sub.fa1.xor2.layer2": [ + "stage4.sub.fa1.xor2.layer1.or", + "stage4.sub.fa1.xor2.layer1.nand" + ], + "stage4.sub.fa1.and1": [ + "stage4.shift.bit1", + "stage4.sub.notd1" + ], + "stage4.sub.fa1.and2": [ + "stage4.sub.fa1.xor1.layer2", + "stage4.sub.fa0.or_carry" + ], + "stage4.sub.fa1.or_carry": [ + "stage4.sub.fa1.and1", + "stage4.sub.fa1.and2" + ], + "stage4.sub.fa2.xor1.layer1.or": [ + "stage4.shift.bit2", + "stage4.sub.notd2" + ], + "stage4.sub.fa2.xor1.layer1.nand": [ + "stage4.shift.bit2", + "stage4.sub.notd2" + ], + "stage4.sub.fa2.xor1.layer2": [ + "stage4.sub.fa2.xor1.layer1.or", + "stage4.sub.fa2.xor1.layer1.nand" + ], + "stage4.sub.fa2.xor2.layer1.or": [ + "stage4.sub.fa2.xor1.layer2", + "stage4.sub.fa1.or_carry" + ], + "stage4.sub.fa2.xor2.layer1.nand": [ + "stage4.sub.fa2.xor1.layer2", + "stage4.sub.fa1.or_carry" + ], + "stage4.sub.fa2.xor2.layer2": [ + "stage4.sub.fa2.xor2.layer1.or", + "stage4.sub.fa2.xor2.layer1.nand" + ], + "stage4.sub.fa2.and1": [ + "stage4.shift.bit2", + "stage4.sub.notd2" + ], + "stage4.sub.fa2.and2": [ + "stage4.sub.fa2.xor1.layer2", + "stage4.sub.fa1.or_carry" + ], + "stage4.sub.fa2.or_carry": [ + "stage4.sub.fa2.and1", + "stage4.sub.fa2.and2" + ], + "stage4.sub.fa3.xor1.layer1.or": [ + "stage4.shift.bit3", + "stage4.sub.notd3" + ], + "stage4.sub.fa3.xor1.layer1.nand": [ + "stage4.shift.bit3", + "stage4.sub.notd3" + ], + "stage4.sub.fa3.xor1.layer2": [ + "stage4.sub.fa3.xor1.layer1.or", + "stage4.sub.fa3.xor1.layer1.nand" + ], + "stage4.sub.fa3.xor2.layer1.or": [ + "stage4.sub.fa3.xor1.layer2", + "stage4.sub.fa2.or_carry" + ], + "stage4.sub.fa3.xor2.layer1.nand": [ + "stage4.sub.fa3.xor1.layer2", + "stage4.sub.fa2.or_carry" + ], + "stage4.sub.fa3.xor2.layer2": [ + "stage4.sub.fa3.xor2.layer1.or", + "stage4.sub.fa3.xor2.layer1.nand" + ], + "stage4.sub.fa3.and1": [ + "stage4.shift.bit3", + "stage4.sub.notd3" + ], + "stage4.sub.fa3.and2": [ + "stage4.sub.fa3.xor1.layer2", + "stage4.sub.fa2.or_carry" + ], + "stage4.sub.fa3.or_carry": [ + "stage4.sub.fa3.and1", + "stage4.sub.fa3.and2" + ], + "stage4.sub.fa4.xor1.layer1.or": [ + "stage4.shift.bit4", + "stage4.sub.notd4" + ], + "stage4.sub.fa4.xor1.layer1.nand": [ + "stage4.shift.bit4", + "stage4.sub.notd4" + ], + "stage4.sub.fa4.xor1.layer2": [ + "stage4.sub.fa4.xor1.layer1.or", + "stage4.sub.fa4.xor1.layer1.nand" + ], + "stage4.sub.fa4.xor2.layer1.or": [ + "stage4.sub.fa4.xor1.layer2", + "stage4.sub.fa3.or_carry" + ], + "stage4.sub.fa4.xor2.layer1.nand": [ + "stage4.sub.fa4.xor1.layer2", + "stage4.sub.fa3.or_carry" + ], + "stage4.sub.fa4.xor2.layer2": [ + "stage4.sub.fa4.xor2.layer1.or", + "stage4.sub.fa4.xor2.layer1.nand" + ], + "stage4.sub.fa4.and1": [ + "stage4.shift.bit4", + "stage4.sub.notd4" + ], + "stage4.sub.fa4.and2": [ + "stage4.sub.fa4.xor1.layer2", + "stage4.sub.fa3.or_carry" + ], + "stage4.sub.fa4.or_carry": [ + "stage4.sub.fa4.and1", + "stage4.sub.fa4.and2" + ], + "stage4.sub.fa5.xor1.layer1.or": [ + "stage4.shift.bit5", + "stage4.sub.notd5" + ], + "stage4.sub.fa5.xor1.layer1.nand": [ + "stage4.shift.bit5", + "stage4.sub.notd5" + ], + "stage4.sub.fa5.xor1.layer2": [ + "stage4.sub.fa5.xor1.layer1.or", + "stage4.sub.fa5.xor1.layer1.nand" + ], + "stage4.sub.fa5.xor2.layer1.or": [ + "stage4.sub.fa5.xor1.layer2", + "stage4.sub.fa4.or_carry" + ], + "stage4.sub.fa5.xor2.layer1.nand": [ + "stage4.sub.fa5.xor1.layer2", + "stage4.sub.fa4.or_carry" + ], + "stage4.sub.fa5.xor2.layer2": [ + "stage4.sub.fa5.xor2.layer1.or", + "stage4.sub.fa5.xor2.layer1.nand" + ], + "stage4.sub.fa5.and1": [ + "stage4.shift.bit5", + "stage4.sub.notd5" + ], + "stage4.sub.fa5.and2": [ + "stage4.sub.fa5.xor1.layer2", + "stage4.sub.fa4.or_carry" + ], + "stage4.sub.fa5.or_carry": [ + "stage4.sub.fa5.and1", + "stage4.sub.fa5.and2" + ], + "stage4.sub.fa6.xor1.layer1.or": [ + "stage4.shift.bit6", + "stage4.sub.notd6" + ], + "stage4.sub.fa6.xor1.layer1.nand": [ + "stage4.shift.bit6", + "stage4.sub.notd6" + ], + "stage4.sub.fa6.xor1.layer2": [ + "stage4.sub.fa6.xor1.layer1.or", + "stage4.sub.fa6.xor1.layer1.nand" + ], + "stage4.sub.fa6.xor2.layer1.or": [ + "stage4.sub.fa6.xor1.layer2", + "stage4.sub.fa5.or_carry" + ], + "stage4.sub.fa6.xor2.layer1.nand": [ + "stage4.sub.fa6.xor1.layer2", + "stage4.sub.fa5.or_carry" + ], + "stage4.sub.fa6.xor2.layer2": [ + "stage4.sub.fa6.xor2.layer1.or", + "stage4.sub.fa6.xor2.layer1.nand" + ], + "stage4.sub.fa6.and1": [ + "stage4.shift.bit6", + "stage4.sub.notd6" + ], + "stage4.sub.fa6.and2": [ + "stage4.sub.fa6.xor1.layer2", + "stage4.sub.fa5.or_carry" + ], + "stage4.sub.fa6.or_carry": [ + "stage4.sub.fa6.and1", + "stage4.sub.fa6.and2" + ], + "stage4.sub.fa7.xor1.layer1.or": [ + "stage4.shift.bit7", + "stage4.sub.notd7" + ], + "stage4.sub.fa7.xor1.layer1.nand": [ + "stage4.shift.bit7", + "stage4.sub.notd7" + ], + "stage4.sub.fa7.xor1.layer2": [ + "stage4.sub.fa7.xor1.layer1.or", + "stage4.sub.fa7.xor1.layer1.nand" + ], + "stage4.sub.fa7.xor2.layer1.or": [ + "stage4.sub.fa7.xor1.layer2", + "stage4.sub.fa6.or_carry" + ], + "stage4.sub.fa7.xor2.layer1.nand": [ + "stage4.sub.fa7.xor1.layer2", + "stage4.sub.fa6.or_carry" + ], + "stage4.sub.fa7.xor2.layer2": [ + "stage4.sub.fa7.xor2.layer1.or", + "stage4.sub.fa7.xor2.layer1.nand" + ], + "stage4.sub.fa7.and1": [ + "stage4.shift.bit7", + "stage4.sub.notd7" + ], + "stage4.sub.fa7.and2": [ + "stage4.sub.fa7.xor1.layer2", + "stage4.sub.fa6.or_carry" + ], + "stage4.sub.fa7.or_carry": [ + "stage4.sub.fa7.and1", + "stage4.sub.fa7.and2" + ], + "stage4.cmp": [ + "stage4.sub.fa7.or_carry" + ], + "stage4.or_dividend": [ + "stage4.shift.bit7", + "$dividend[3]" + ], + "stage4.mux0.not_sel": [ + "stage4.cmp" + ], + "stage4.mux0.and0": [ + "stage4.shift.bit0", + "stage4.mux0.not_sel" + ], + "stage4.mux0.and1": [ + "stage4.sub.fa0.xor2.layer2", + "stage4.cmp" + ], + "stage4.mux0.or": [ + "stage4.mux0.and0", + "stage4.mux0.and1" + ], + "stage4.mux1.not_sel": [ + "stage4.cmp" + ], + "stage4.mux1.and0": [ + "stage4.shift.bit1", + "stage4.mux1.not_sel" + ], + "stage4.mux1.and1": [ + "stage4.sub.fa1.xor2.layer2", + "stage4.cmp" + ], + "stage4.mux1.or": [ + "stage4.mux1.and0", + "stage4.mux1.and1" + ], + "stage4.mux2.not_sel": [ + "stage4.cmp" + ], + "stage4.mux2.and0": [ + "stage4.shift.bit2", + "stage4.mux2.not_sel" + ], + "stage4.mux2.and1": [ + "stage4.sub.fa2.xor2.layer2", + "stage4.cmp" + ], + "stage4.mux2.or": [ + "stage4.mux2.and0", + "stage4.mux2.and1" + ], + "stage4.mux3.not_sel": [ + "stage4.cmp" + ], + "stage4.mux3.and0": [ + "stage4.shift.bit3", + "stage4.mux3.not_sel" + ], + "stage4.mux3.and1": [ + "stage4.sub.fa3.xor2.layer2", + "stage4.cmp" + ], + "stage4.mux3.or": [ + "stage4.mux3.and0", + "stage4.mux3.and1" + ], + "stage4.mux4.not_sel": [ + "stage4.cmp" + ], + "stage4.mux4.and0": [ + "stage4.shift.bit4", + "stage4.mux4.not_sel" + ], + "stage4.mux4.and1": [ + "stage4.sub.fa4.xor2.layer2", + "stage4.cmp" + ], + "stage4.mux4.or": [ + "stage4.mux4.and0", + "stage4.mux4.and1" + ], + "stage4.mux5.not_sel": [ + "stage4.cmp" + ], + "stage4.mux5.and0": [ + "stage4.shift.bit5", + "stage4.mux5.not_sel" + ], + "stage4.mux5.and1": [ + "stage4.sub.fa5.xor2.layer2", + "stage4.cmp" + ], + "stage4.mux5.or": [ + "stage4.mux5.and0", + "stage4.mux5.and1" + ], + "stage4.mux6.not_sel": [ + "stage4.cmp" + ], + "stage4.mux6.and0": [ + "stage4.shift.bit6", + "stage4.mux6.not_sel" + ], + "stage4.mux6.and1": [ + "stage4.sub.fa6.xor2.layer2", + "stage4.cmp" + ], + "stage4.mux6.or": [ + "stage4.mux6.and0", + "stage4.mux6.and1" + ], + "stage4.mux7.not_sel": [ + "stage4.cmp" + ], + "stage4.mux7.and0": [ + "stage4.shift.bit7", + "stage4.mux7.not_sel" + ], + "stage4.mux7.and1": [ + "stage4.sub.fa7.xor2.layer2", + "stage4.cmp" + ], + "stage4.mux7.or": [ + "stage4.mux7.and0", + "stage4.mux7.and1" + ], + "stage5.shift.bit0": [ + "$dividend[2]" + ], + "stage5.shift.bit1": [ + "stage4.mux0.or" + ], + "stage5.shift.bit2": [ + "stage4.mux1.or" + ], + "stage5.shift.bit3": [ + "stage4.mux2.or" + ], + "stage5.shift.bit4": [ + "stage4.mux3.or" + ], + "stage5.shift.bit5": [ + "stage4.mux4.or" + ], + "stage5.shift.bit6": [ + "stage4.mux5.or" + ], + "stage5.shift.bit7": [ + "stage4.mux6.or" + ], + "stage5.sub.notd0": [ + "$divisor[0]" + ], + "stage5.sub.notd1": [ + "$divisor[1]" + ], + "stage5.sub.notd2": [ + "$divisor[2]" + ], + "stage5.sub.notd3": [ + "$divisor[3]" + ], + "stage5.sub.notd4": [ + "$divisor[4]" + ], + "stage5.sub.notd5": [ + "$divisor[5]" + ], + "stage5.sub.notd6": [ + "$divisor[6]" + ], + "stage5.sub.notd7": [ + "$divisor[7]" + ], + "stage5.sub.fa0.xor1.layer1.or": [ + "stage5.shift.bit0", + "stage5.sub.notd0" + ], + "stage5.sub.fa0.xor1.layer1.nand": [ + "stage5.shift.bit0", + "stage5.sub.notd0" + ], + "stage5.sub.fa0.xor1.layer2": [ + "stage5.sub.fa0.xor1.layer1.or", + "stage5.sub.fa0.xor1.layer1.nand" + ], + "stage5.sub.fa0.xor2.layer1.or": [ + "stage5.sub.fa0.xor1.layer2", + "#1" + ], + "stage5.sub.fa0.xor2.layer1.nand": [ + "stage5.sub.fa0.xor1.layer2", + "#1" + ], + "stage5.sub.fa0.xor2.layer2": [ + "stage5.sub.fa0.xor2.layer1.or", + "stage5.sub.fa0.xor2.layer1.nand" + ], + "stage5.sub.fa0.and1": [ + "stage5.shift.bit0", + "stage5.sub.notd0" + ], + "stage5.sub.fa0.and2": [ + "stage5.sub.fa0.xor1.layer2", + "#1" + ], + "stage5.sub.fa0.or_carry": [ + "stage5.sub.fa0.and1", + "stage5.sub.fa0.and2" + ], + "stage5.sub.fa1.xor1.layer1.or": [ + "stage5.shift.bit1", + "stage5.sub.notd1" + ], + "stage5.sub.fa1.xor1.layer1.nand": [ + "stage5.shift.bit1", + "stage5.sub.notd1" + ], + "stage5.sub.fa1.xor1.layer2": [ + "stage5.sub.fa1.xor1.layer1.or", + "stage5.sub.fa1.xor1.layer1.nand" + ], + "stage5.sub.fa1.xor2.layer1.or": [ + "stage5.sub.fa1.xor1.layer2", + "stage5.sub.fa0.or_carry" + ], + "stage5.sub.fa1.xor2.layer1.nand": [ + "stage5.sub.fa1.xor1.layer2", + "stage5.sub.fa0.or_carry" + ], + "stage5.sub.fa1.xor2.layer2": [ + "stage5.sub.fa1.xor2.layer1.or", + "stage5.sub.fa1.xor2.layer1.nand" + ], + "stage5.sub.fa1.and1": [ + "stage5.shift.bit1", + "stage5.sub.notd1" + ], + "stage5.sub.fa1.and2": [ + "stage5.sub.fa1.xor1.layer2", + "stage5.sub.fa0.or_carry" + ], + "stage5.sub.fa1.or_carry": [ + "stage5.sub.fa1.and1", + "stage5.sub.fa1.and2" + ], + "stage5.sub.fa2.xor1.layer1.or": [ + "stage5.shift.bit2", + "stage5.sub.notd2" + ], + "stage5.sub.fa2.xor1.layer1.nand": [ + "stage5.shift.bit2", + "stage5.sub.notd2" + ], + "stage5.sub.fa2.xor1.layer2": [ + "stage5.sub.fa2.xor1.layer1.or", + "stage5.sub.fa2.xor1.layer1.nand" + ], + "stage5.sub.fa2.xor2.layer1.or": [ + "stage5.sub.fa2.xor1.layer2", + "stage5.sub.fa1.or_carry" + ], + "stage5.sub.fa2.xor2.layer1.nand": [ + "stage5.sub.fa2.xor1.layer2", + "stage5.sub.fa1.or_carry" + ], + "stage5.sub.fa2.xor2.layer2": [ + "stage5.sub.fa2.xor2.layer1.or", + "stage5.sub.fa2.xor2.layer1.nand" + ], + "stage5.sub.fa2.and1": [ + "stage5.shift.bit2", + "stage5.sub.notd2" + ], + "stage5.sub.fa2.and2": [ + "stage5.sub.fa2.xor1.layer2", + "stage5.sub.fa1.or_carry" + ], + "stage5.sub.fa2.or_carry": [ + "stage5.sub.fa2.and1", + "stage5.sub.fa2.and2" + ], + "stage5.sub.fa3.xor1.layer1.or": [ + "stage5.shift.bit3", + "stage5.sub.notd3" + ], + "stage5.sub.fa3.xor1.layer1.nand": [ + "stage5.shift.bit3", + "stage5.sub.notd3" + ], + "stage5.sub.fa3.xor1.layer2": [ + "stage5.sub.fa3.xor1.layer1.or", + "stage5.sub.fa3.xor1.layer1.nand" + ], + "stage5.sub.fa3.xor2.layer1.or": [ + "stage5.sub.fa3.xor1.layer2", + "stage5.sub.fa2.or_carry" + ], + "stage5.sub.fa3.xor2.layer1.nand": [ + "stage5.sub.fa3.xor1.layer2", + "stage5.sub.fa2.or_carry" + ], + "stage5.sub.fa3.xor2.layer2": [ + "stage5.sub.fa3.xor2.layer1.or", + "stage5.sub.fa3.xor2.layer1.nand" + ], + "stage5.sub.fa3.and1": [ + "stage5.shift.bit3", + "stage5.sub.notd3" + ], + "stage5.sub.fa3.and2": [ + "stage5.sub.fa3.xor1.layer2", + "stage5.sub.fa2.or_carry" + ], + "stage5.sub.fa3.or_carry": [ + "stage5.sub.fa3.and1", + "stage5.sub.fa3.and2" + ], + "stage5.sub.fa4.xor1.layer1.or": [ + "stage5.shift.bit4", + "stage5.sub.notd4" + ], + "stage5.sub.fa4.xor1.layer1.nand": [ + "stage5.shift.bit4", + "stage5.sub.notd4" + ], + "stage5.sub.fa4.xor1.layer2": [ + "stage5.sub.fa4.xor1.layer1.or", + "stage5.sub.fa4.xor1.layer1.nand" + ], + "stage5.sub.fa4.xor2.layer1.or": [ + "stage5.sub.fa4.xor1.layer2", + "stage5.sub.fa3.or_carry" + ], + "stage5.sub.fa4.xor2.layer1.nand": [ + "stage5.sub.fa4.xor1.layer2", + "stage5.sub.fa3.or_carry" + ], + "stage5.sub.fa4.xor2.layer2": [ + "stage5.sub.fa4.xor2.layer1.or", + "stage5.sub.fa4.xor2.layer1.nand" + ], + "stage5.sub.fa4.and1": [ + "stage5.shift.bit4", + "stage5.sub.notd4" + ], + "stage5.sub.fa4.and2": [ + "stage5.sub.fa4.xor1.layer2", + "stage5.sub.fa3.or_carry" + ], + "stage5.sub.fa4.or_carry": [ + "stage5.sub.fa4.and1", + "stage5.sub.fa4.and2" + ], + "stage5.sub.fa5.xor1.layer1.or": [ + "stage5.shift.bit5", + "stage5.sub.notd5" + ], + "stage5.sub.fa5.xor1.layer1.nand": [ + "stage5.shift.bit5", + "stage5.sub.notd5" + ], + "stage5.sub.fa5.xor1.layer2": [ + "stage5.sub.fa5.xor1.layer1.or", + "stage5.sub.fa5.xor1.layer1.nand" + ], + "stage5.sub.fa5.xor2.layer1.or": [ + "stage5.sub.fa5.xor1.layer2", + "stage5.sub.fa4.or_carry" + ], + "stage5.sub.fa5.xor2.layer1.nand": [ + "stage5.sub.fa5.xor1.layer2", + "stage5.sub.fa4.or_carry" + ], + "stage5.sub.fa5.xor2.layer2": [ + "stage5.sub.fa5.xor2.layer1.or", + "stage5.sub.fa5.xor2.layer1.nand" + ], + "stage5.sub.fa5.and1": [ + "stage5.shift.bit5", + "stage5.sub.notd5" + ], + "stage5.sub.fa5.and2": [ + "stage5.sub.fa5.xor1.layer2", + "stage5.sub.fa4.or_carry" + ], + "stage5.sub.fa5.or_carry": [ + "stage5.sub.fa5.and1", + "stage5.sub.fa5.and2" + ], + "stage5.sub.fa6.xor1.layer1.or": [ + "stage5.shift.bit6", + "stage5.sub.notd6" + ], + "stage5.sub.fa6.xor1.layer1.nand": [ + "stage5.shift.bit6", + "stage5.sub.notd6" + ], + "stage5.sub.fa6.xor1.layer2": [ + "stage5.sub.fa6.xor1.layer1.or", + "stage5.sub.fa6.xor1.layer1.nand" + ], + "stage5.sub.fa6.xor2.layer1.or": [ + "stage5.sub.fa6.xor1.layer2", + "stage5.sub.fa5.or_carry" + ], + "stage5.sub.fa6.xor2.layer1.nand": [ + "stage5.sub.fa6.xor1.layer2", + "stage5.sub.fa5.or_carry" + ], + "stage5.sub.fa6.xor2.layer2": [ + "stage5.sub.fa6.xor2.layer1.or", + "stage5.sub.fa6.xor2.layer1.nand" + ], + "stage5.sub.fa6.and1": [ + "stage5.shift.bit6", + "stage5.sub.notd6" + ], + "stage5.sub.fa6.and2": [ + "stage5.sub.fa6.xor1.layer2", + "stage5.sub.fa5.or_carry" + ], + "stage5.sub.fa6.or_carry": [ + "stage5.sub.fa6.and1", + "stage5.sub.fa6.and2" + ], + "stage5.sub.fa7.xor1.layer1.or": [ + "stage5.shift.bit7", + "stage5.sub.notd7" + ], + "stage5.sub.fa7.xor1.layer1.nand": [ + "stage5.shift.bit7", + "stage5.sub.notd7" + ], + "stage5.sub.fa7.xor1.layer2": [ + "stage5.sub.fa7.xor1.layer1.or", + "stage5.sub.fa7.xor1.layer1.nand" + ], + "stage5.sub.fa7.xor2.layer1.or": [ + "stage5.sub.fa7.xor1.layer2", + "stage5.sub.fa6.or_carry" + ], + "stage5.sub.fa7.xor2.layer1.nand": [ + "stage5.sub.fa7.xor1.layer2", + "stage5.sub.fa6.or_carry" + ], + "stage5.sub.fa7.xor2.layer2": [ + "stage5.sub.fa7.xor2.layer1.or", + "stage5.sub.fa7.xor2.layer1.nand" + ], + "stage5.sub.fa7.and1": [ + "stage5.shift.bit7", + "stage5.sub.notd7" + ], + "stage5.sub.fa7.and2": [ + "stage5.sub.fa7.xor1.layer2", + "stage5.sub.fa6.or_carry" + ], + "stage5.sub.fa7.or_carry": [ + "stage5.sub.fa7.and1", + "stage5.sub.fa7.and2" + ], + "stage5.cmp": [ + "stage5.sub.fa7.or_carry" + ], + "stage5.or_dividend": [ + "stage5.shift.bit7", + "$dividend[2]" + ], + "stage5.mux0.not_sel": [ + "stage5.cmp" + ], + "stage5.mux0.and0": [ + "stage5.shift.bit0", + "stage5.mux0.not_sel" + ], + "stage5.mux0.and1": [ + "stage5.sub.fa0.xor2.layer2", + "stage5.cmp" + ], + "stage5.mux0.or": [ + "stage5.mux0.and0", + "stage5.mux0.and1" + ], + "stage5.mux1.not_sel": [ + "stage5.cmp" + ], + "stage5.mux1.and0": [ + "stage5.shift.bit1", + "stage5.mux1.not_sel" + ], + "stage5.mux1.and1": [ + "stage5.sub.fa1.xor2.layer2", + "stage5.cmp" + ], + "stage5.mux1.or": [ + "stage5.mux1.and0", + "stage5.mux1.and1" + ], + "stage5.mux2.not_sel": [ + "stage5.cmp" + ], + "stage5.mux2.and0": [ + "stage5.shift.bit2", + "stage5.mux2.not_sel" + ], + "stage5.mux2.and1": [ + "stage5.sub.fa2.xor2.layer2", + "stage5.cmp" + ], + "stage5.mux2.or": [ + "stage5.mux2.and0", + "stage5.mux2.and1" + ], + "stage5.mux3.not_sel": [ + "stage5.cmp" + ], + "stage5.mux3.and0": [ + "stage5.shift.bit3", + "stage5.mux3.not_sel" + ], + "stage5.mux3.and1": [ + "stage5.sub.fa3.xor2.layer2", + "stage5.cmp" + ], + "stage5.mux3.or": [ + "stage5.mux3.and0", + "stage5.mux3.and1" + ], + "stage5.mux4.not_sel": [ + "stage5.cmp" + ], + "stage5.mux4.and0": [ + "stage5.shift.bit4", + "stage5.mux4.not_sel" + ], + "stage5.mux4.and1": [ + "stage5.sub.fa4.xor2.layer2", + "stage5.cmp" + ], + "stage5.mux4.or": [ + "stage5.mux4.and0", + "stage5.mux4.and1" + ], + "stage5.mux5.not_sel": [ + "stage5.cmp" + ], + "stage5.mux5.and0": [ + "stage5.shift.bit5", + "stage5.mux5.not_sel" + ], + "stage5.mux5.and1": [ + "stage5.sub.fa5.xor2.layer2", + "stage5.cmp" + ], + "stage5.mux5.or": [ + "stage5.mux5.and0", + "stage5.mux5.and1" + ], + "stage5.mux6.not_sel": [ + "stage5.cmp" + ], + "stage5.mux6.and0": [ + "stage5.shift.bit6", + "stage5.mux6.not_sel" + ], + "stage5.mux6.and1": [ + "stage5.sub.fa6.xor2.layer2", + "stage5.cmp" + ], + "stage5.mux6.or": [ + "stage5.mux6.and0", + "stage5.mux6.and1" + ], + "stage5.mux7.not_sel": [ + "stage5.cmp" + ], + "stage5.mux7.and0": [ + "stage5.shift.bit7", + "stage5.mux7.not_sel" + ], + "stage5.mux7.and1": [ + "stage5.sub.fa7.xor2.layer2", + "stage5.cmp" + ], + "stage5.mux7.or": [ + "stage5.mux7.and0", + "stage5.mux7.and1" + ], + "stage6.shift.bit0": [ + "$dividend[1]" + ], + "stage6.shift.bit1": [ + "stage5.mux0.or" + ], + "stage6.shift.bit2": [ + "stage5.mux1.or" + ], + "stage6.shift.bit3": [ + "stage5.mux2.or" + ], + "stage6.shift.bit4": [ + "stage5.mux3.or" + ], + "stage6.shift.bit5": [ + "stage5.mux4.or" + ], + "stage6.shift.bit6": [ + "stage5.mux5.or" + ], + "stage6.shift.bit7": [ + "stage5.mux6.or" + ], + "stage6.sub.notd0": [ + "$divisor[0]" + ], + "stage6.sub.notd1": [ + "$divisor[1]" + ], + "stage6.sub.notd2": [ + "$divisor[2]" + ], + "stage6.sub.notd3": [ + "$divisor[3]" + ], + "stage6.sub.notd4": [ + "$divisor[4]" + ], + "stage6.sub.notd5": [ + "$divisor[5]" + ], + "stage6.sub.notd6": [ + "$divisor[6]" + ], + "stage6.sub.notd7": [ + "$divisor[7]" + ], + "stage6.sub.fa0.xor1.layer1.or": [ + "stage6.shift.bit0", + "stage6.sub.notd0" + ], + "stage6.sub.fa0.xor1.layer1.nand": [ + "stage6.shift.bit0", + "stage6.sub.notd0" + ], + "stage6.sub.fa0.xor1.layer2": [ + "stage6.sub.fa0.xor1.layer1.or", + "stage6.sub.fa0.xor1.layer1.nand" + ], + "stage6.sub.fa0.xor2.layer1.or": [ + "stage6.sub.fa0.xor1.layer2", + "#1" + ], + "stage6.sub.fa0.xor2.layer1.nand": [ + "stage6.sub.fa0.xor1.layer2", + "#1" + ], + "stage6.sub.fa0.xor2.layer2": [ + "stage6.sub.fa0.xor2.layer1.or", + "stage6.sub.fa0.xor2.layer1.nand" + ], + "stage6.sub.fa0.and1": [ + "stage6.shift.bit0", + "stage6.sub.notd0" + ], + "stage6.sub.fa0.and2": [ + "stage6.sub.fa0.xor1.layer2", + "#1" + ], + "stage6.sub.fa0.or_carry": [ + "stage6.sub.fa0.and1", + "stage6.sub.fa0.and2" + ], + "stage6.sub.fa1.xor1.layer1.or": [ + "stage6.shift.bit1", + "stage6.sub.notd1" + ], + "stage6.sub.fa1.xor1.layer1.nand": [ + "stage6.shift.bit1", + "stage6.sub.notd1" + ], + "stage6.sub.fa1.xor1.layer2": [ + "stage6.sub.fa1.xor1.layer1.or", + "stage6.sub.fa1.xor1.layer1.nand" + ], + "stage6.sub.fa1.xor2.layer1.or": [ + "stage6.sub.fa1.xor1.layer2", + "stage6.sub.fa0.or_carry" + ], + "stage6.sub.fa1.xor2.layer1.nand": [ + "stage6.sub.fa1.xor1.layer2", + "stage6.sub.fa0.or_carry" + ], + "stage6.sub.fa1.xor2.layer2": [ + "stage6.sub.fa1.xor2.layer1.or", + "stage6.sub.fa1.xor2.layer1.nand" + ], + "stage6.sub.fa1.and1": [ + "stage6.shift.bit1", + "stage6.sub.notd1" + ], + "stage6.sub.fa1.and2": [ + "stage6.sub.fa1.xor1.layer2", + "stage6.sub.fa0.or_carry" + ], + "stage6.sub.fa1.or_carry": [ + "stage6.sub.fa1.and1", + "stage6.sub.fa1.and2" + ], + "stage6.sub.fa2.xor1.layer1.or": [ + "stage6.shift.bit2", + "stage6.sub.notd2" + ], + "stage6.sub.fa2.xor1.layer1.nand": [ + "stage6.shift.bit2", + "stage6.sub.notd2" + ], + "stage6.sub.fa2.xor1.layer2": [ + "stage6.sub.fa2.xor1.layer1.or", + "stage6.sub.fa2.xor1.layer1.nand" + ], + "stage6.sub.fa2.xor2.layer1.or": [ + "stage6.sub.fa2.xor1.layer2", + "stage6.sub.fa1.or_carry" + ], + "stage6.sub.fa2.xor2.layer1.nand": [ + "stage6.sub.fa2.xor1.layer2", + "stage6.sub.fa1.or_carry" + ], + "stage6.sub.fa2.xor2.layer2": [ + "stage6.sub.fa2.xor2.layer1.or", + "stage6.sub.fa2.xor2.layer1.nand" + ], + "stage6.sub.fa2.and1": [ + "stage6.shift.bit2", + "stage6.sub.notd2" + ], + "stage6.sub.fa2.and2": [ + "stage6.sub.fa2.xor1.layer2", + "stage6.sub.fa1.or_carry" + ], + "stage6.sub.fa2.or_carry": [ + "stage6.sub.fa2.and1", + "stage6.sub.fa2.and2" + ], + "stage6.sub.fa3.xor1.layer1.or": [ + "stage6.shift.bit3", + "stage6.sub.notd3" + ], + "stage6.sub.fa3.xor1.layer1.nand": [ + "stage6.shift.bit3", + "stage6.sub.notd3" + ], + "stage6.sub.fa3.xor1.layer2": [ + "stage6.sub.fa3.xor1.layer1.or", + "stage6.sub.fa3.xor1.layer1.nand" + ], + "stage6.sub.fa3.xor2.layer1.or": [ + "stage6.sub.fa3.xor1.layer2", + "stage6.sub.fa2.or_carry" + ], + "stage6.sub.fa3.xor2.layer1.nand": [ + "stage6.sub.fa3.xor1.layer2", + "stage6.sub.fa2.or_carry" + ], + "stage6.sub.fa3.xor2.layer2": [ + "stage6.sub.fa3.xor2.layer1.or", + "stage6.sub.fa3.xor2.layer1.nand" + ], + "stage6.sub.fa3.and1": [ + "stage6.shift.bit3", + "stage6.sub.notd3" + ], + "stage6.sub.fa3.and2": [ + "stage6.sub.fa3.xor1.layer2", + "stage6.sub.fa2.or_carry" + ], + "stage6.sub.fa3.or_carry": [ + "stage6.sub.fa3.and1", + "stage6.sub.fa3.and2" + ], + "stage6.sub.fa4.xor1.layer1.or": [ + "stage6.shift.bit4", + "stage6.sub.notd4" + ], + "stage6.sub.fa4.xor1.layer1.nand": [ + "stage6.shift.bit4", + "stage6.sub.notd4" + ], + "stage6.sub.fa4.xor1.layer2": [ + "stage6.sub.fa4.xor1.layer1.or", + "stage6.sub.fa4.xor1.layer1.nand" + ], + "stage6.sub.fa4.xor2.layer1.or": [ + "stage6.sub.fa4.xor1.layer2", + "stage6.sub.fa3.or_carry" + ], + "stage6.sub.fa4.xor2.layer1.nand": [ + "stage6.sub.fa4.xor1.layer2", + "stage6.sub.fa3.or_carry" + ], + "stage6.sub.fa4.xor2.layer2": [ + "stage6.sub.fa4.xor2.layer1.or", + "stage6.sub.fa4.xor2.layer1.nand" + ], + "stage6.sub.fa4.and1": [ + "stage6.shift.bit4", + "stage6.sub.notd4" + ], + "stage6.sub.fa4.and2": [ + "stage6.sub.fa4.xor1.layer2", + "stage6.sub.fa3.or_carry" + ], + "stage6.sub.fa4.or_carry": [ + "stage6.sub.fa4.and1", + "stage6.sub.fa4.and2" + ], + "stage6.sub.fa5.xor1.layer1.or": [ + "stage6.shift.bit5", + "stage6.sub.notd5" + ], + "stage6.sub.fa5.xor1.layer1.nand": [ + "stage6.shift.bit5", + "stage6.sub.notd5" + ], + "stage6.sub.fa5.xor1.layer2": [ + "stage6.sub.fa5.xor1.layer1.or", + "stage6.sub.fa5.xor1.layer1.nand" + ], + "stage6.sub.fa5.xor2.layer1.or": [ + "stage6.sub.fa5.xor1.layer2", + "stage6.sub.fa4.or_carry" + ], + "stage6.sub.fa5.xor2.layer1.nand": [ + "stage6.sub.fa5.xor1.layer2", + "stage6.sub.fa4.or_carry" + ], + "stage6.sub.fa5.xor2.layer2": [ + "stage6.sub.fa5.xor2.layer1.or", + "stage6.sub.fa5.xor2.layer1.nand" + ], + "stage6.sub.fa5.and1": [ + "stage6.shift.bit5", + "stage6.sub.notd5" + ], + "stage6.sub.fa5.and2": [ + "stage6.sub.fa5.xor1.layer2", + "stage6.sub.fa4.or_carry" + ], + "stage6.sub.fa5.or_carry": [ + "stage6.sub.fa5.and1", + "stage6.sub.fa5.and2" + ], + "stage6.sub.fa6.xor1.layer1.or": [ + "stage6.shift.bit6", + "stage6.sub.notd6" + ], + "stage6.sub.fa6.xor1.layer1.nand": [ + "stage6.shift.bit6", + "stage6.sub.notd6" + ], + "stage6.sub.fa6.xor1.layer2": [ + "stage6.sub.fa6.xor1.layer1.or", + "stage6.sub.fa6.xor1.layer1.nand" + ], + "stage6.sub.fa6.xor2.layer1.or": [ + "stage6.sub.fa6.xor1.layer2", + "stage6.sub.fa5.or_carry" + ], + "stage6.sub.fa6.xor2.layer1.nand": [ + "stage6.sub.fa6.xor1.layer2", + "stage6.sub.fa5.or_carry" + ], + "stage6.sub.fa6.xor2.layer2": [ + "stage6.sub.fa6.xor2.layer1.or", + "stage6.sub.fa6.xor2.layer1.nand" + ], + "stage6.sub.fa6.and1": [ + "stage6.shift.bit6", + "stage6.sub.notd6" + ], + "stage6.sub.fa6.and2": [ + "stage6.sub.fa6.xor1.layer2", + "stage6.sub.fa5.or_carry" + ], + "stage6.sub.fa6.or_carry": [ + "stage6.sub.fa6.and1", + "stage6.sub.fa6.and2" + ], + "stage6.sub.fa7.xor1.layer1.or": [ + "stage6.shift.bit7", + "stage6.sub.notd7" + ], + "stage6.sub.fa7.xor1.layer1.nand": [ + "stage6.shift.bit7", + "stage6.sub.notd7" + ], + "stage6.sub.fa7.xor1.layer2": [ + "stage6.sub.fa7.xor1.layer1.or", + "stage6.sub.fa7.xor1.layer1.nand" + ], + "stage6.sub.fa7.xor2.layer1.or": [ + "stage6.sub.fa7.xor1.layer2", + "stage6.sub.fa6.or_carry" + ], + "stage6.sub.fa7.xor2.layer1.nand": [ + "stage6.sub.fa7.xor1.layer2", + "stage6.sub.fa6.or_carry" + ], + "stage6.sub.fa7.xor2.layer2": [ + "stage6.sub.fa7.xor2.layer1.or", + "stage6.sub.fa7.xor2.layer1.nand" + ], + "stage6.sub.fa7.and1": [ + "stage6.shift.bit7", + "stage6.sub.notd7" + ], + "stage6.sub.fa7.and2": [ + "stage6.sub.fa7.xor1.layer2", + "stage6.sub.fa6.or_carry" + ], + "stage6.sub.fa7.or_carry": [ + "stage6.sub.fa7.and1", + "stage6.sub.fa7.and2" + ], + "stage6.cmp": [ + "stage6.sub.fa7.or_carry" + ], + "stage6.or_dividend": [ + "stage6.shift.bit7", + "$dividend[1]" + ], + "stage6.mux0.not_sel": [ + "stage6.cmp" + ], + "stage6.mux0.and0": [ + "stage6.shift.bit0", + "stage6.mux0.not_sel" + ], + "stage6.mux0.and1": [ + "stage6.sub.fa0.xor2.layer2", + "stage6.cmp" + ], + "stage6.mux0.or": [ + "stage6.mux0.and0", + "stage6.mux0.and1" + ], + "stage6.mux1.not_sel": [ + "stage6.cmp" + ], + "stage6.mux1.and0": [ + "stage6.shift.bit1", + "stage6.mux1.not_sel" + ], + "stage6.mux1.and1": [ + "stage6.sub.fa1.xor2.layer2", + "stage6.cmp" + ], + "stage6.mux1.or": [ + "stage6.mux1.and0", + "stage6.mux1.and1" + ], + "stage6.mux2.not_sel": [ + "stage6.cmp" + ], + "stage6.mux2.and0": [ + "stage6.shift.bit2", + "stage6.mux2.not_sel" + ], + "stage6.mux2.and1": [ + "stage6.sub.fa2.xor2.layer2", + "stage6.cmp" + ], + "stage6.mux2.or": [ + "stage6.mux2.and0", + "stage6.mux2.and1" + ], + "stage6.mux3.not_sel": [ + "stage6.cmp" + ], + "stage6.mux3.and0": [ + "stage6.shift.bit3", + "stage6.mux3.not_sel" + ], + "stage6.mux3.and1": [ + "stage6.sub.fa3.xor2.layer2", + "stage6.cmp" + ], + "stage6.mux3.or": [ + "stage6.mux3.and0", + "stage6.mux3.and1" + ], + "stage6.mux4.not_sel": [ + "stage6.cmp" + ], + "stage6.mux4.and0": [ + "stage6.shift.bit4", + "stage6.mux4.not_sel" + ], + "stage6.mux4.and1": [ + "stage6.sub.fa4.xor2.layer2", + "stage6.cmp" + ], + "stage6.mux4.or": [ + "stage6.mux4.and0", + "stage6.mux4.and1" + ], + "stage6.mux5.not_sel": [ + "stage6.cmp" + ], + "stage6.mux5.and0": [ + "stage6.shift.bit5", + "stage6.mux5.not_sel" + ], + "stage6.mux5.and1": [ + "stage6.sub.fa5.xor2.layer2", + "stage6.cmp" + ], + "stage6.mux5.or": [ + "stage6.mux5.and0", + "stage6.mux5.and1" + ], + "stage6.mux6.not_sel": [ + "stage6.cmp" + ], + "stage6.mux6.and0": [ + "stage6.shift.bit6", + "stage6.mux6.not_sel" + ], + "stage6.mux6.and1": [ + "stage6.sub.fa6.xor2.layer2", + "stage6.cmp" + ], + "stage6.mux6.or": [ + "stage6.mux6.and0", + "stage6.mux6.and1" + ], + "stage6.mux7.not_sel": [ + "stage6.cmp" + ], + "stage6.mux7.and0": [ + "stage6.shift.bit7", + "stage6.mux7.not_sel" + ], + "stage6.mux7.and1": [ + "stage6.sub.fa7.xor2.layer2", + "stage6.cmp" + ], + "stage6.mux7.or": [ + "stage6.mux7.and0", + "stage6.mux7.and1" + ], + "stage7.shift.bit0": [ + "$dividend[0]" + ], + "stage7.shift.bit1": [ + "stage6.mux0.or" + ], + "stage7.shift.bit2": [ + "stage6.mux1.or" + ], + "stage7.shift.bit3": [ + "stage6.mux2.or" + ], + "stage7.shift.bit4": [ + "stage6.mux3.or" + ], + "stage7.shift.bit5": [ + "stage6.mux4.or" + ], + "stage7.shift.bit6": [ + "stage6.mux5.or" + ], + "stage7.shift.bit7": [ + "stage6.mux6.or" + ], + "stage7.sub.notd0": [ + "$divisor[0]" + ], + "stage7.sub.notd1": [ + "$divisor[1]" + ], + "stage7.sub.notd2": [ + "$divisor[2]" + ], + "stage7.sub.notd3": [ + "$divisor[3]" + ], + "stage7.sub.notd4": [ + "$divisor[4]" + ], + "stage7.sub.notd5": [ + "$divisor[5]" + ], + "stage7.sub.notd6": [ + "$divisor[6]" + ], + "stage7.sub.notd7": [ + "$divisor[7]" + ], + "stage7.sub.fa0.xor1.layer1.or": [ + "stage7.shift.bit0", + "stage7.sub.notd0" + ], + "stage7.sub.fa0.xor1.layer1.nand": [ + "stage7.shift.bit0", + "stage7.sub.notd0" + ], + "stage7.sub.fa0.xor1.layer2": [ + "stage7.sub.fa0.xor1.layer1.or", + "stage7.sub.fa0.xor1.layer1.nand" + ], + "stage7.sub.fa0.xor2.layer1.or": [ + "stage7.sub.fa0.xor1.layer2", + "#1" + ], + "stage7.sub.fa0.xor2.layer1.nand": [ + "stage7.sub.fa0.xor1.layer2", + "#1" + ], + "stage7.sub.fa0.xor2.layer2": [ + "stage7.sub.fa0.xor2.layer1.or", + "stage7.sub.fa0.xor2.layer1.nand" + ], + "stage7.sub.fa0.and1": [ + "stage7.shift.bit0", + "stage7.sub.notd0" + ], + "stage7.sub.fa0.and2": [ + "stage7.sub.fa0.xor1.layer2", + "#1" + ], + "stage7.sub.fa0.or_carry": [ + "stage7.sub.fa0.and1", + "stage7.sub.fa0.and2" + ], + "stage7.sub.fa1.xor1.layer1.or": [ + "stage7.shift.bit1", + "stage7.sub.notd1" + ], + "stage7.sub.fa1.xor1.layer1.nand": [ + "stage7.shift.bit1", + "stage7.sub.notd1" + ], + "stage7.sub.fa1.xor1.layer2": [ + "stage7.sub.fa1.xor1.layer1.or", + "stage7.sub.fa1.xor1.layer1.nand" + ], + "stage7.sub.fa1.xor2.layer1.or": [ + "stage7.sub.fa1.xor1.layer2", + "stage7.sub.fa0.or_carry" + ], + "stage7.sub.fa1.xor2.layer1.nand": [ + "stage7.sub.fa1.xor1.layer2", + "stage7.sub.fa0.or_carry" + ], + "stage7.sub.fa1.xor2.layer2": [ + "stage7.sub.fa1.xor2.layer1.or", + "stage7.sub.fa1.xor2.layer1.nand" + ], + "stage7.sub.fa1.and1": [ + "stage7.shift.bit1", + "stage7.sub.notd1" + ], + "stage7.sub.fa1.and2": [ + "stage7.sub.fa1.xor1.layer2", + "stage7.sub.fa0.or_carry" + ], + "stage7.sub.fa1.or_carry": [ + "stage7.sub.fa1.and1", + "stage7.sub.fa1.and2" + ], + "stage7.sub.fa2.xor1.layer1.or": [ + "stage7.shift.bit2", + "stage7.sub.notd2" + ], + "stage7.sub.fa2.xor1.layer1.nand": [ + "stage7.shift.bit2", + "stage7.sub.notd2" + ], + "stage7.sub.fa2.xor1.layer2": [ + "stage7.sub.fa2.xor1.layer1.or", + "stage7.sub.fa2.xor1.layer1.nand" + ], + "stage7.sub.fa2.xor2.layer1.or": [ + "stage7.sub.fa2.xor1.layer2", + "stage7.sub.fa1.or_carry" + ], + "stage7.sub.fa2.xor2.layer1.nand": [ + "stage7.sub.fa2.xor1.layer2", + "stage7.sub.fa1.or_carry" + ], + "stage7.sub.fa2.xor2.layer2": [ + "stage7.sub.fa2.xor2.layer1.or", + "stage7.sub.fa2.xor2.layer1.nand" + ], + "stage7.sub.fa2.and1": [ + "stage7.shift.bit2", + "stage7.sub.notd2" + ], + "stage7.sub.fa2.and2": [ + "stage7.sub.fa2.xor1.layer2", + "stage7.sub.fa1.or_carry" + ], + "stage7.sub.fa2.or_carry": [ + "stage7.sub.fa2.and1", + "stage7.sub.fa2.and2" + ], + "stage7.sub.fa3.xor1.layer1.or": [ + "stage7.shift.bit3", + "stage7.sub.notd3" + ], + "stage7.sub.fa3.xor1.layer1.nand": [ + "stage7.shift.bit3", + "stage7.sub.notd3" + ], + "stage7.sub.fa3.xor1.layer2": [ + "stage7.sub.fa3.xor1.layer1.or", + "stage7.sub.fa3.xor1.layer1.nand" + ], + "stage7.sub.fa3.xor2.layer1.or": [ + "stage7.sub.fa3.xor1.layer2", + "stage7.sub.fa2.or_carry" + ], + "stage7.sub.fa3.xor2.layer1.nand": [ + "stage7.sub.fa3.xor1.layer2", + "stage7.sub.fa2.or_carry" + ], + "stage7.sub.fa3.xor2.layer2": [ + "stage7.sub.fa3.xor2.layer1.or", + "stage7.sub.fa3.xor2.layer1.nand" + ], + "stage7.sub.fa3.and1": [ + "stage7.shift.bit3", + "stage7.sub.notd3" + ], + "stage7.sub.fa3.and2": [ + "stage7.sub.fa3.xor1.layer2", + "stage7.sub.fa2.or_carry" + ], + "stage7.sub.fa3.or_carry": [ + "stage7.sub.fa3.and1", + "stage7.sub.fa3.and2" + ], + "stage7.sub.fa4.xor1.layer1.or": [ + "stage7.shift.bit4", + "stage7.sub.notd4" + ], + "stage7.sub.fa4.xor1.layer1.nand": [ + "stage7.shift.bit4", + "stage7.sub.notd4" + ], + "stage7.sub.fa4.xor1.layer2": [ + "stage7.sub.fa4.xor1.layer1.or", + "stage7.sub.fa4.xor1.layer1.nand" + ], + "stage7.sub.fa4.xor2.layer1.or": [ + "stage7.sub.fa4.xor1.layer2", + "stage7.sub.fa3.or_carry" + ], + "stage7.sub.fa4.xor2.layer1.nand": [ + "stage7.sub.fa4.xor1.layer2", + "stage7.sub.fa3.or_carry" + ], + "stage7.sub.fa4.xor2.layer2": [ + "stage7.sub.fa4.xor2.layer1.or", + "stage7.sub.fa4.xor2.layer1.nand" + ], + "stage7.sub.fa4.and1": [ + "stage7.shift.bit4", + "stage7.sub.notd4" + ], + "stage7.sub.fa4.and2": [ + "stage7.sub.fa4.xor1.layer2", + "stage7.sub.fa3.or_carry" + ], + "stage7.sub.fa4.or_carry": [ + "stage7.sub.fa4.and1", + "stage7.sub.fa4.and2" + ], + "stage7.sub.fa5.xor1.layer1.or": [ + "stage7.shift.bit5", + "stage7.sub.notd5" + ], + "stage7.sub.fa5.xor1.layer1.nand": [ + "stage7.shift.bit5", + "stage7.sub.notd5" + ], + "stage7.sub.fa5.xor1.layer2": [ + "stage7.sub.fa5.xor1.layer1.or", + "stage7.sub.fa5.xor1.layer1.nand" + ], + "stage7.sub.fa5.xor2.layer1.or": [ + "stage7.sub.fa5.xor1.layer2", + "stage7.sub.fa4.or_carry" + ], + "stage7.sub.fa5.xor2.layer1.nand": [ + "stage7.sub.fa5.xor1.layer2", + "stage7.sub.fa4.or_carry" + ], + "stage7.sub.fa5.xor2.layer2": [ + "stage7.sub.fa5.xor2.layer1.or", + "stage7.sub.fa5.xor2.layer1.nand" + ], + "stage7.sub.fa5.and1": [ + "stage7.shift.bit5", + "stage7.sub.notd5" + ], + "stage7.sub.fa5.and2": [ + "stage7.sub.fa5.xor1.layer2", + "stage7.sub.fa4.or_carry" + ], + "stage7.sub.fa5.or_carry": [ + "stage7.sub.fa5.and1", + "stage7.sub.fa5.and2" + ], + "stage7.sub.fa6.xor1.layer1.or": [ + "stage7.shift.bit6", + "stage7.sub.notd6" + ], + "stage7.sub.fa6.xor1.layer1.nand": [ + "stage7.shift.bit6", + "stage7.sub.notd6" + ], + "stage7.sub.fa6.xor1.layer2": [ + "stage7.sub.fa6.xor1.layer1.or", + "stage7.sub.fa6.xor1.layer1.nand" + ], + "stage7.sub.fa6.xor2.layer1.or": [ + "stage7.sub.fa6.xor1.layer2", + "stage7.sub.fa5.or_carry" + ], + "stage7.sub.fa6.xor2.layer1.nand": [ + "stage7.sub.fa6.xor1.layer2", + "stage7.sub.fa5.or_carry" + ], + "stage7.sub.fa6.xor2.layer2": [ + "stage7.sub.fa6.xor2.layer1.or", + "stage7.sub.fa6.xor2.layer1.nand" + ], + "stage7.sub.fa6.and1": [ + "stage7.shift.bit6", + "stage7.sub.notd6" + ], + "stage7.sub.fa6.and2": [ + "stage7.sub.fa6.xor1.layer2", + "stage7.sub.fa5.or_carry" + ], + "stage7.sub.fa6.or_carry": [ + "stage7.sub.fa6.and1", + "stage7.sub.fa6.and2" + ], + "stage7.sub.fa7.xor1.layer1.or": [ + "stage7.shift.bit7", + "stage7.sub.notd7" + ], + "stage7.sub.fa7.xor1.layer1.nand": [ + "stage7.shift.bit7", + "stage7.sub.notd7" + ], + "stage7.sub.fa7.xor1.layer2": [ + "stage7.sub.fa7.xor1.layer1.or", + "stage7.sub.fa7.xor1.layer1.nand" + ], + "stage7.sub.fa7.xor2.layer1.or": [ + "stage7.sub.fa7.xor1.layer2", + "stage7.sub.fa6.or_carry" + ], + "stage7.sub.fa7.xor2.layer1.nand": [ + "stage7.sub.fa7.xor1.layer2", + "stage7.sub.fa6.or_carry" + ], + "stage7.sub.fa7.xor2.layer2": [ + "stage7.sub.fa7.xor2.layer1.or", + "stage7.sub.fa7.xor2.layer1.nand" + ], + "stage7.sub.fa7.and1": [ + "stage7.shift.bit7", + "stage7.sub.notd7" + ], + "stage7.sub.fa7.and2": [ + "stage7.sub.fa7.xor1.layer2", + "stage7.sub.fa6.or_carry" + ], + "stage7.sub.fa7.or_carry": [ + "stage7.sub.fa7.and1", + "stage7.sub.fa7.and2" + ], + "stage7.cmp": [ + "stage7.sub.fa7.or_carry" + ], + "stage7.or_dividend": [ + "stage7.shift.bit7", + "$dividend[0]" + ], + "stage7.mux0.not_sel": [ + "stage7.cmp" + ], + "stage7.mux0.and0": [ + "stage7.shift.bit0", + "stage7.mux0.not_sel" + ], + "stage7.mux0.and1": [ + "stage7.sub.fa0.xor2.layer2", + "stage7.cmp" + ], + "stage7.mux0.or": [ + "stage7.mux0.and0", + "stage7.mux0.and1" + ], + "stage7.mux1.not_sel": [ + "stage7.cmp" + ], + "stage7.mux1.and0": [ + "stage7.shift.bit1", + "stage7.mux1.not_sel" + ], + "stage7.mux1.and1": [ + "stage7.sub.fa1.xor2.layer2", + "stage7.cmp" + ], + "stage7.mux1.or": [ + "stage7.mux1.and0", + "stage7.mux1.and1" + ], + "stage7.mux2.not_sel": [ + "stage7.cmp" + ], + "stage7.mux2.and0": [ + "stage7.shift.bit2", + "stage7.mux2.not_sel" + ], + "stage7.mux2.and1": [ + "stage7.sub.fa2.xor2.layer2", + "stage7.cmp" + ], + "stage7.mux2.or": [ + "stage7.mux2.and0", + "stage7.mux2.and1" + ], + "stage7.mux3.not_sel": [ + "stage7.cmp" + ], + "stage7.mux3.and0": [ + "stage7.shift.bit3", + "stage7.mux3.not_sel" + ], + "stage7.mux3.and1": [ + "stage7.sub.fa3.xor2.layer2", + "stage7.cmp" + ], + "stage7.mux3.or": [ + "stage7.mux3.and0", + "stage7.mux3.and1" + ], + "stage7.mux4.not_sel": [ + "stage7.cmp" + ], + "stage7.mux4.and0": [ + "stage7.shift.bit4", + "stage7.mux4.not_sel" + ], + "stage7.mux4.and1": [ + "stage7.sub.fa4.xor2.layer2", + "stage7.cmp" + ], + "stage7.mux4.or": [ + "stage7.mux4.and0", + "stage7.mux4.and1" + ], + "stage7.mux5.not_sel": [ + "stage7.cmp" + ], + "stage7.mux5.and0": [ + "stage7.shift.bit5", + "stage7.mux5.not_sel" + ], + "stage7.mux5.and1": [ + "stage7.sub.fa5.xor2.layer2", + "stage7.cmp" + ], + "stage7.mux5.or": [ + "stage7.mux5.and0", + "stage7.mux5.and1" + ], + "stage7.mux6.not_sel": [ + "stage7.cmp" + ], + "stage7.mux6.and0": [ + "stage7.shift.bit6", + "stage7.mux6.not_sel" + ], + "stage7.mux6.and1": [ + "stage7.sub.fa6.xor2.layer2", + "stage7.cmp" + ], + "stage7.mux6.or": [ + "stage7.mux6.and0", + "stage7.mux6.and1" + ], + "stage7.mux7.not_sel": [ + "stage7.cmp" + ], + "stage7.mux7.and0": [ + "stage7.shift.bit7", + "stage7.mux7.not_sel" + ], + "stage7.mux7.and1": [ + "stage7.sub.fa7.xor2.layer2", + "stage7.cmp" + ], + "stage7.mux7.or": [ + "stage7.mux7.and0", + "stage7.mux7.and1" + ], + "quotient0": [ + "stage0.cmp" + ], + "quotient1": [ + "stage1.cmp" + ], + "quotient2": [ + "stage2.cmp" + ], + "quotient3": [ + "stage3.cmp" + ], + "quotient4": [ + "stage4.cmp" + ], + "quotient5": [ + "stage5.cmp" + ], + "quotient6": [ + "stage6.cmp" + ], + "quotient7": [ + "stage7.cmp" + ], + "remainder0": [ + "stage7.mux0.or" + ], + "remainder1": [ + "stage7.mux1.or" + ], + "remainder2": [ + "stage7.mux2.or" + ], + "remainder3": [ + "stage7.mux3.or" + ], + "remainder4": [ + "stage7.mux4.or" + ], + "remainder5": [ + "stage7.mux5.or" + ], + "remainder6": [ + "stage7.mux6.or" + ], + "remainder7": [ + "stage7.mux7.or" + ] + }, + "outputs": { + "quotient[0]": "quotient0", + "quotient[1]": "quotient1", + "quotient[2]": "quotient2", + "quotient[3]": "quotient3", + "quotient[4]": "quotient4", + "quotient[5]": "quotient5", + "quotient[6]": "quotient6", + "quotient[7]": "quotient7", + "remainder[0]": "remainder0", + "remainder[1]": "remainder1", + "remainder[2]": "remainder2", + "remainder[3]": "remainder3", + "remainder[4]": "remainder4", + "remainder[5]": "remainder5", + "remainder[6]": "remainder6", + "remainder[7]": "remainder7" + } + }, + "arithmetic.adc8bit": { + "inputs": [ + "$a[0:7]", + "$b[0:7]", + "$cin" + ], + "type": "adder_with_carry", + "internal": { + "fa0.xor1.layer1.nand": [ + "$a[0]", + "$b[0]" + ], + "fa0.xor1.layer1.or": [ + "$a[0]", + "$b[0]" + ], + "fa0.xor1.layer2": [ + "fa0.xor1.layer1.nand", + "fa0.xor1.layer1.or" + ], + "fa0.xor2.layer1.nand": [ + "fa0.xor1.layer2", + "$cin" + ], + "fa0.xor2.layer1.or": [ + "fa0.xor1.layer2", + "$cin" + ], + "fa0.xor2.layer2": [ + "fa0.xor2.layer1.nand", + "fa0.xor2.layer1.or" + ], + "fa0.and1": [ + "$a[0]", + "$b[0]" + ], + "fa0.and2": [ + "fa0.xor1.layer2", + "$cin" + ], + "fa0.or_carry": [ + "fa0.and1", + "fa0.and2" + ], + "fa1.xor1.layer1.nand": [ + "$a[1]", + "$b[1]" + ], + "fa1.xor1.layer1.or": [ + "$a[1]", + "$b[1]" + ], + "fa1.xor1.layer2": [ + "fa1.xor1.layer1.nand", + "fa1.xor1.layer1.or" + ], + "fa1.xor2.layer1.nand": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.xor2.layer1.or": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.xor2.layer2": [ + "fa1.xor2.layer1.nand", + "fa1.xor2.layer1.or" + ], + "fa1.and1": [ + "$a[1]", + "$b[1]" + ], + "fa1.and2": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.or_carry": [ + "fa1.and1", + "fa1.and2" + ], + "fa2.xor1.layer1.nand": [ + "$a[2]", + "$b[2]" + ], + "fa2.xor1.layer1.or": [ + "$a[2]", + "$b[2]" + ], + "fa2.xor1.layer2": [ + "fa2.xor1.layer1.nand", + "fa2.xor1.layer1.or" + ], + "fa2.xor2.layer1.nand": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.xor2.layer1.or": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.xor2.layer2": [ + "fa2.xor2.layer1.nand", + "fa2.xor2.layer1.or" + ], + "fa2.and1": [ + "$a[2]", + "$b[2]" + ], + "fa2.and2": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.or_carry": [ + "fa2.and1", + "fa2.and2" + ], + "fa3.xor1.layer1.nand": [ + "$a[3]", + "$b[3]" + ], + "fa3.xor1.layer1.or": [ + "$a[3]", + "$b[3]" + ], + "fa3.xor1.layer2": [ + "fa3.xor1.layer1.nand", + "fa3.xor1.layer1.or" + ], + "fa3.xor2.layer1.nand": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.xor2.layer1.or": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.xor2.layer2": [ + "fa3.xor2.layer1.nand", + "fa3.xor2.layer1.or" + ], + "fa3.and1": [ + "$a[3]", + "$b[3]" + ], + "fa3.and2": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.or_carry": [ + "fa3.and1", + "fa3.and2" + ], + "fa4.xor1.layer1.nand": [ + "$a[4]", + "$b[4]" + ], + "fa4.xor1.layer1.or": [ + "$a[4]", + "$b[4]" + ], + "fa4.xor1.layer2": [ + "fa4.xor1.layer1.nand", + "fa4.xor1.layer1.or" + ], + "fa4.xor2.layer1.nand": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.xor2.layer1.or": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.xor2.layer2": [ + "fa4.xor2.layer1.nand", + "fa4.xor2.layer1.or" + ], + "fa4.and1": [ + "$a[4]", + "$b[4]" + ], + "fa4.and2": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.or_carry": [ + "fa4.and1", + "fa4.and2" + ], + "fa5.xor1.layer1.nand": [ + "$a[5]", + "$b[5]" + ], + "fa5.xor1.layer1.or": [ + "$a[5]", + "$b[5]" + ], + "fa5.xor1.layer2": [ + "fa5.xor1.layer1.nand", + "fa5.xor1.layer1.or" + ], + "fa5.xor2.layer1.nand": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.xor2.layer1.or": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.xor2.layer2": [ + "fa5.xor2.layer1.nand", + "fa5.xor2.layer1.or" + ], + "fa5.and1": [ + "$a[5]", + "$b[5]" + ], + "fa5.and2": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.or_carry": [ + "fa5.and1", + "fa5.and2" + ], + "fa6.xor1.layer1.nand": [ + "$a[6]", + "$b[6]" + ], + "fa6.xor1.layer1.or": [ + "$a[6]", + "$b[6]" + ], + "fa6.xor1.layer2": [ + "fa6.xor1.layer1.nand", + "fa6.xor1.layer1.or" + ], + "fa6.xor2.layer1.nand": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.xor2.layer1.or": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.xor2.layer2": [ + "fa6.xor2.layer1.nand", + "fa6.xor2.layer1.or" + ], + "fa6.and1": [ + "$a[6]", + "$b[6]" + ], + "fa6.and2": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.or_carry": [ + "fa6.and1", + "fa6.and2" + ], + "fa7.xor1.layer1.nand": [ + "$a[7]", + "$b[7]" + ], + "fa7.xor1.layer1.or": [ + "$a[7]", + "$b[7]" + ], + "fa7.xor1.layer2": [ + "fa7.xor1.layer1.nand", + "fa7.xor1.layer1.or" + ], + "fa7.xor2.layer1.nand": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.xor2.layer1.or": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.xor2.layer2": [ + "fa7.xor2.layer1.nand", + "fa7.xor2.layer1.or" + ], + "fa7.and1": [ + "$a[7]", + "$b[7]" + ], + "fa7.and2": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.or_carry": [ + "fa7.and1", + "fa7.and2" + ] + } + }, + "arithmetic.sbc8bit": { + "inputs": [ + "$a[0:7]", + "$b[0:7]", + "$cin" + ], + "type": "subtractor_with_carry", + "internal": { + "notb0": [ + "$b[0]" + ], + "notb1": [ + "$b[1]" + ], + "notb2": [ + "$b[2]" + ], + "notb3": [ + "$b[3]" + ], + "notb4": [ + "$b[4]" + ], + "notb5": [ + "$b[5]" + ], + "notb6": [ + "$b[6]" + ], + "notb7": [ + "$b[7]" + ], + "fa0.xor1.layer1.nand": [ + "$a[0]", + "notb0" + ], + "fa0.xor1.layer1.or": [ + "$a[0]", + "notb0" + ], + "fa0.xor1.layer2": [ + "fa0.xor1.layer1.nand", + "fa0.xor1.layer1.or" + ], + "fa0.xor2.layer1.nand": [ + "fa0.xor1.layer2", + "$cin" + ], + "fa0.xor2.layer1.or": [ + "fa0.xor1.layer2", + "$cin" + ], + "fa0.xor2.layer2": [ + "fa0.xor2.layer1.nand", + "fa0.xor2.layer1.or" + ], + "fa0.and1": [ + "$a[0]", + "notb0" + ], + "fa0.and2": [ + "fa0.xor1.layer2", + "$cin" + ], + "fa0.or_carry": [ + "fa0.and1", + "fa0.and2" + ], + "fa1.xor1.layer1.nand": [ + "$a[1]", + "notb1" + ], + "fa1.xor1.layer1.or": [ + "$a[1]", + "notb1" + ], + "fa1.xor1.layer2": [ + "fa1.xor1.layer1.nand", + "fa1.xor1.layer1.or" + ], + "fa1.xor2.layer1.nand": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.xor2.layer1.or": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.xor2.layer2": [ + "fa1.xor2.layer1.nand", + "fa1.xor2.layer1.or" + ], + "fa1.and1": [ + "$a[1]", + "notb1" + ], + "fa1.and2": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.or_carry": [ + "fa1.and1", + "fa1.and2" + ], + "fa2.xor1.layer1.nand": [ + "$a[2]", + "notb2" + ], + "fa2.xor1.layer1.or": [ + "$a[2]", + "notb2" + ], + "fa2.xor1.layer2": [ + "fa2.xor1.layer1.nand", + "fa2.xor1.layer1.or" + ], + "fa2.xor2.layer1.nand": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.xor2.layer1.or": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.xor2.layer2": [ + "fa2.xor2.layer1.nand", + "fa2.xor2.layer1.or" + ], + "fa2.and1": [ + "$a[2]", + "notb2" + ], + "fa2.and2": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.or_carry": [ + "fa2.and1", + "fa2.and2" + ], + "fa3.xor1.layer1.nand": [ + "$a[3]", + "notb3" + ], + "fa3.xor1.layer1.or": [ + "$a[3]", + "notb3" + ], + "fa3.xor1.layer2": [ + "fa3.xor1.layer1.nand", + "fa3.xor1.layer1.or" + ], + "fa3.xor2.layer1.nand": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.xor2.layer1.or": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.xor2.layer2": [ + "fa3.xor2.layer1.nand", + "fa3.xor2.layer1.or" + ], + "fa3.and1": [ + "$a[3]", + "notb3" + ], + "fa3.and2": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.or_carry": [ + "fa3.and1", + "fa3.and2" + ], + "fa4.xor1.layer1.nand": [ + "$a[4]", + "notb4" + ], + "fa4.xor1.layer1.or": [ + "$a[4]", + "notb4" + ], + "fa4.xor1.layer2": [ + "fa4.xor1.layer1.nand", + "fa4.xor1.layer1.or" + ], + "fa4.xor2.layer1.nand": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.xor2.layer1.or": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.xor2.layer2": [ + "fa4.xor2.layer1.nand", + "fa4.xor2.layer1.or" + ], + "fa4.and1": [ + "$a[4]", + "notb4" + ], + "fa4.and2": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.or_carry": [ + "fa4.and1", + "fa4.and2" + ], + "fa5.xor1.layer1.nand": [ + "$a[5]", + "notb5" + ], + "fa5.xor1.layer1.or": [ + "$a[5]", + "notb5" + ], + "fa5.xor1.layer2": [ + "fa5.xor1.layer1.nand", + "fa5.xor1.layer1.or" + ], + "fa5.xor2.layer1.nand": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.xor2.layer1.or": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.xor2.layer2": [ + "fa5.xor2.layer1.nand", + "fa5.xor2.layer1.or" + ], + "fa5.and1": [ + "$a[5]", + "notb5" + ], + "fa5.and2": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.or_carry": [ + "fa5.and1", + "fa5.and2" + ], + "fa6.xor1.layer1.nand": [ + "$a[6]", + "notb6" + ], + "fa6.xor1.layer1.or": [ + "$a[6]", + "notb6" + ], + "fa6.xor1.layer2": [ + "fa6.xor1.layer1.nand", + "fa6.xor1.layer1.or" + ], + "fa6.xor2.layer1.nand": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.xor2.layer1.or": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.xor2.layer2": [ + "fa6.xor2.layer1.nand", + "fa6.xor2.layer1.or" + ], + "fa6.and1": [ + "$a[6]", + "notb6" + ], + "fa6.and2": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.or_carry": [ + "fa6.and1", + "fa6.and2" + ], + "fa7.xor1.layer1.nand": [ + "$a[7]", + "notb7" + ], + "fa7.xor1.layer1.or": [ + "$a[7]", + "notb7" + ], + "fa7.xor1.layer2": [ + "fa7.xor1.layer1.nand", + "fa7.xor1.layer1.or" + ], + "fa7.xor2.layer1.nand": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.xor2.layer1.or": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.xor2.layer2": [ + "fa7.xor2.layer1.nand", + "fa7.xor2.layer1.or" + ], + "fa7.and1": [ + "$a[7]", + "notb7" + ], + "fa7.and2": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.or_carry": [ + "fa7.and1", + "fa7.and2" + ] + } + }, + "arithmetic.sub8bit": { + "inputs": [ + "$a[0:7]", + "$b[0:7]" + ], + "type": "subtractor", + "internal": { + "carry_in": [ + "#1" + ], + "notb0": [ + "$b[0]" + ], + "notb1": [ + "$b[1]" + ], + "notb2": [ + "$b[2]" + ], + "notb3": [ + "$b[3]" + ], + "notb4": [ + "$b[4]" + ], + "notb5": [ + "$b[5]" + ], + "notb6": [ + "$b[6]" + ], + "notb7": [ + "$b[7]" + ], + "fa0.xor1.layer1.nand": [ + "$a[0]", + "notb0" + ], + "fa0.xor1.layer1.or": [ + "$a[0]", + "notb0" + ], + "fa0.xor1.layer2": [ + "fa0.xor1.layer1.nand", + "fa0.xor1.layer1.or" + ], + "fa0.xor2.layer1.nand": [ + "fa0.xor1.layer2", + "carry_in" + ], + "fa0.xor2.layer1.or": [ + "fa0.xor1.layer2", + "carry_in" + ], + "fa0.xor2.layer2": [ + "fa0.xor2.layer1.nand", + "fa0.xor2.layer1.or" + ], + "fa0.and1": [ + "$a[0]", + "notb0" + ], + "fa0.and2": [ + "fa0.xor1.layer2", + "carry_in" + ], + "fa0.or_carry": [ + "fa0.and1", + "fa0.and2" + ], + "fa1.xor1.layer1.nand": [ + "$a[1]", + "notb1" + ], + "fa1.xor1.layer1.or": [ + "$a[1]", + "notb1" + ], + "fa1.xor1.layer2": [ + "fa1.xor1.layer1.nand", + "fa1.xor1.layer1.or" + ], + "fa1.xor2.layer1.nand": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.xor2.layer1.or": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.xor2.layer2": [ + "fa1.xor2.layer1.nand", + "fa1.xor2.layer1.or" + ], + "fa1.and1": [ + "$a[1]", + "notb1" + ], + "fa1.and2": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.or_carry": [ + "fa1.and1", + "fa1.and2" + ], + "fa2.xor1.layer1.nand": [ + "$a[2]", + "notb2" + ], + "fa2.xor1.layer1.or": [ + "$a[2]", + "notb2" + ], + "fa2.xor1.layer2": [ + "fa2.xor1.layer1.nand", + "fa2.xor1.layer1.or" + ], + "fa2.xor2.layer1.nand": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.xor2.layer1.or": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.xor2.layer2": [ + "fa2.xor2.layer1.nand", + "fa2.xor2.layer1.or" + ], + "fa2.and1": [ + "$a[2]", + "notb2" + ], + "fa2.and2": [ + "fa2.xor1.layer2", + "fa1.or_carry" + ], + "fa2.or_carry": [ + "fa2.and1", + "fa2.and2" + ], + "fa3.xor1.layer1.nand": [ + "$a[3]", + "notb3" + ], + "fa3.xor1.layer1.or": [ + "$a[3]", + "notb3" + ], + "fa3.xor1.layer2": [ + "fa3.xor1.layer1.nand", + "fa3.xor1.layer1.or" + ], + "fa3.xor2.layer1.nand": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.xor2.layer1.or": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.xor2.layer2": [ + "fa3.xor2.layer1.nand", + "fa3.xor2.layer1.or" + ], + "fa3.and1": [ + "$a[3]", + "notb3" + ], + "fa3.and2": [ + "fa3.xor1.layer2", + "fa2.or_carry" + ], + "fa3.or_carry": [ + "fa3.and1", + "fa3.and2" + ], + "fa4.xor1.layer1.nand": [ + "$a[4]", + "notb4" + ], + "fa4.xor1.layer1.or": [ + "$a[4]", + "notb4" + ], + "fa4.xor1.layer2": [ + "fa4.xor1.layer1.nand", + "fa4.xor1.layer1.or" + ], + "fa4.xor2.layer1.nand": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.xor2.layer1.or": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.xor2.layer2": [ + "fa4.xor2.layer1.nand", + "fa4.xor2.layer1.or" + ], + "fa4.and1": [ + "$a[4]", + "notb4" + ], + "fa4.and2": [ + "fa4.xor1.layer2", + "fa3.or_carry" + ], + "fa4.or_carry": [ + "fa4.and1", + "fa4.and2" + ], + "fa5.xor1.layer1.nand": [ + "$a[5]", + "notb5" + ], + "fa5.xor1.layer1.or": [ + "$a[5]", + "notb5" + ], + "fa5.xor1.layer2": [ + "fa5.xor1.layer1.nand", + "fa5.xor1.layer1.or" + ], + "fa5.xor2.layer1.nand": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.xor2.layer1.or": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.xor2.layer2": [ + "fa5.xor2.layer1.nand", + "fa5.xor2.layer1.or" + ], + "fa5.and1": [ + "$a[5]", + "notb5" + ], + "fa5.and2": [ + "fa5.xor1.layer2", + "fa4.or_carry" + ], + "fa5.or_carry": [ + "fa5.and1", + "fa5.and2" + ], + "fa6.xor1.layer1.nand": [ + "$a[6]", + "notb6" + ], + "fa6.xor1.layer1.or": [ + "$a[6]", + "notb6" + ], + "fa6.xor1.layer2": [ + "fa6.xor1.layer1.nand", + "fa6.xor1.layer1.or" + ], + "fa6.xor2.layer1.nand": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.xor2.layer1.or": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.xor2.layer2": [ + "fa6.xor2.layer1.nand", + "fa6.xor2.layer1.or" + ], + "fa6.and1": [ + "$a[6]", + "notb6" + ], + "fa6.and2": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.or_carry": [ + "fa6.and1", + "fa6.and2" + ], + "fa7.xor1.layer1.nand": [ + "$a[7]", + "notb7" + ], + "fa7.xor1.layer1.or": [ + "$a[7]", + "notb7" + ], + "fa7.xor1.layer2": [ + "fa7.xor1.layer1.nand", + "fa7.xor1.layer1.or" + ], + "fa7.xor2.layer1.nand": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.xor2.layer1.or": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.xor2.layer2": [ + "fa7.xor2.layer1.nand", + "fa7.xor2.layer1.or" + ], + "fa7.and1": [ + "$a[7]", + "notb7" + ], + "fa7.and2": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.or_carry": [ + "fa7.and1", + "fa7.and2" + ] + } + }, + "arithmetic.cmp8bit": { + "inputs": [ + "$a[0:7]", + "$b[0:7]" + ], + "type": "compare", + "internal": { + "notb0": [ + "$b[0]" + ], + "notb1": [ + "$b[1]" + ], + "notb2": [ + "$b[2]" + ], + "notb3": [ + "$b[3]" + ], + "notb4": [ + "$b[4]" + ], + "notb5": [ + "$b[5]" + ], + "notb6": [ + "$b[6]" + ], + "notb7": [ + "$b[7]" + ], + "fa0.xor1.layer1.nand": [ + "$a[0]", + "notb0" + ], + "fa0.xor1.layer1.or": [ + "$a[0]", + "notb0" + ], + "fa0.xor1.layer2": [ + "fa0.xor1.layer1.nand", + "fa0.xor1.layer1.or" + ], + "fa0.xor2.layer1.nand": [ + "fa0.xor1.layer2", + "#1" + ], + "fa0.xor2.layer1.or": [ + "fa0.xor1.layer2", + "#1" + ], + "fa0.xor2.layer2": [ + "fa0.xor2.layer1.nand", + "fa0.xor2.layer1.or" + ], + "fa0.and1": [ + "$a[0]", + "notb0" + ], + "fa0.and2": [ + "fa0.xor1.layer2", + "#1" + ], + "fa0.or_carry": [ + "fa0.and1", + "fa0.and2" + ], + "fa1.xor1.layer1.nand": [ + "$a[1]", + "notb1" + ], + "fa1.xor1.layer1.or": [ + "$a[1]", + "notb1" + ], + "fa1.xor1.layer2": [ + "fa1.xor1.layer1.nand", + "fa1.xor1.layer1.or" + ], + "fa1.xor2.layer1.nand": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.xor2.layer1.or": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.xor2.layer2": [ + "fa1.xor2.layer1.nand", + "fa1.xor2.layer1.or" + ], + "fa1.and1": [ + "$a[1]", + "notb1" + ], + "fa1.and2": [ + "fa1.xor1.layer2", + "fa0.or_carry" + ], + "fa1.or_carry": [ + "fa1.and1", + "fa1.and2" + ], + "fa2.xor1.layer1.nand": [ + "$a[2]", + "notb2" + ], + "fa2.xor1.layer1.or": [ + "$a[2]", + "notb2" + ], + "fa2.xor1.layer2": [ + "fa2.xor1.layer1.nand", + "fa2.xor1.layer1.or" ], - "stage3.sub.fa2.xor1.layer1.or": [ - "stage3.shift.bit2", - "stage3.sub.notd2" + "fa2.xor2.layer1.nand": [ + "fa2.xor1.layer2", + "fa1.or_carry" ], - "stage3.sub.fa2.xor1.layer1.nand": [ - "stage3.shift.bit2", - "stage3.sub.notd2" + "fa2.xor2.layer1.or": [ + "fa2.xor1.layer2", + "fa1.or_carry" ], - "stage3.sub.fa2.xor1.layer2": [ - "stage3.sub.fa2.xor1.layer1.or", - "stage3.sub.fa2.xor1.layer1.nand" + "fa2.xor2.layer2": [ + "fa2.xor2.layer1.nand", + "fa2.xor2.layer1.or" ], - "stage3.sub.fa2.xor2.layer1.or": [ - "stage3.sub.fa2.xor1.layer2", - "stage3.sub.fa1.or_carry" + "fa2.and1": [ + "$a[2]", + "notb2" ], - "stage3.sub.fa2.xor2.layer1.nand": [ - "stage3.sub.fa2.xor1.layer2", - "stage3.sub.fa1.or_carry" + "fa2.and2": [ + "fa2.xor1.layer2", + "fa1.or_carry" ], - "stage3.sub.fa2.xor2.layer2": [ - "stage3.sub.fa2.xor2.layer1.or", - "stage3.sub.fa2.xor2.layer1.nand" + "fa2.or_carry": [ + "fa2.and1", + "fa2.and2" ], - "stage3.sub.fa2.and1": [ - "stage3.shift.bit2", - "stage3.sub.notd2" + "fa3.xor1.layer1.nand": [ + "$a[3]", + "notb3" ], - "stage3.sub.fa2.and2": [ - "stage3.sub.fa2.xor1.layer2", - "stage3.sub.fa1.or_carry" + "fa3.xor1.layer1.or": [ + "$a[3]", + "notb3" ], - "stage3.sub.fa2.or_carry": [ - "stage3.sub.fa2.and1", - "stage3.sub.fa2.and2" + "fa3.xor1.layer2": [ + "fa3.xor1.layer1.nand", + "fa3.xor1.layer1.or" ], - "stage3.sub.fa3.xor1.layer1.or": [ - "stage3.shift.bit3", - "stage3.sub.notd3" + "fa3.xor2.layer1.nand": [ + "fa3.xor1.layer2", + "fa2.or_carry" ], - "stage3.sub.fa3.xor1.layer1.nand": [ - "stage3.shift.bit3", - "stage3.sub.notd3" + "fa3.xor2.layer1.or": [ + "fa3.xor1.layer2", + "fa2.or_carry" ], - "stage3.sub.fa3.xor1.layer2": [ - "stage3.sub.fa3.xor1.layer1.or", - "stage3.sub.fa3.xor1.layer1.nand" + "fa3.xor2.layer2": [ + "fa3.xor2.layer1.nand", + "fa3.xor2.layer1.or" ], - "stage3.sub.fa3.xor2.layer1.or": [ - "stage3.sub.fa3.xor1.layer2", - "stage3.sub.fa2.or_carry" + "fa3.and1": [ + "$a[3]", + "notb3" ], - "stage3.sub.fa3.xor2.layer1.nand": [ - "stage3.sub.fa3.xor1.layer2", - "stage3.sub.fa2.or_carry" + "fa3.and2": [ + "fa3.xor1.layer2", + "fa2.or_carry" ], - "stage3.sub.fa3.xor2.layer2": [ - "stage3.sub.fa3.xor2.layer1.or", - "stage3.sub.fa3.xor2.layer1.nand" + "fa3.or_carry": [ + "fa3.and1", + "fa3.and2" ], - "stage3.sub.fa3.and1": [ - "stage3.shift.bit3", - "stage3.sub.notd3" + "fa4.xor1.layer1.nand": [ + "$a[4]", + "notb4" ], - "stage3.sub.fa3.and2": [ - "stage3.sub.fa3.xor1.layer2", - "stage3.sub.fa2.or_carry" + "fa4.xor1.layer1.or": [ + "$a[4]", + "notb4" ], - "stage3.sub.fa3.or_carry": [ - "stage3.sub.fa3.and1", - "stage3.sub.fa3.and2" + "fa4.xor1.layer2": [ + "fa4.xor1.layer1.nand", + "fa4.xor1.layer1.or" ], - "stage3.sub.fa4.xor1.layer1.or": [ - "stage3.shift.bit4", - "stage3.sub.notd4" + "fa4.xor2.layer1.nand": [ + "fa4.xor1.layer2", + "fa3.or_carry" ], - "stage3.sub.fa4.xor1.layer1.nand": [ - "stage3.shift.bit4", - "stage3.sub.notd4" + "fa4.xor2.layer1.or": [ + "fa4.xor1.layer2", + "fa3.or_carry" ], - "stage3.sub.fa4.xor1.layer2": [ - "stage3.sub.fa4.xor1.layer1.or", - "stage3.sub.fa4.xor1.layer1.nand" + "fa4.xor2.layer2": [ + "fa4.xor2.layer1.nand", + "fa4.xor2.layer1.or" ], - "stage3.sub.fa4.xor2.layer1.or": [ - "stage3.sub.fa4.xor1.layer2", - "stage3.sub.fa3.or_carry" + "fa4.and1": [ + "$a[4]", + "notb4" ], - "stage3.sub.fa4.xor2.layer1.nand": [ - "stage3.sub.fa4.xor1.layer2", - "stage3.sub.fa3.or_carry" + "fa4.and2": [ + "fa4.xor1.layer2", + "fa3.or_carry" ], - "stage3.sub.fa4.xor2.layer2": [ - "stage3.sub.fa4.xor2.layer1.or", - "stage3.sub.fa4.xor2.layer1.nand" + "fa4.or_carry": [ + "fa4.and1", + "fa4.and2" ], - "stage3.sub.fa4.and1": [ - "stage3.shift.bit4", - "stage3.sub.notd4" + "fa5.xor1.layer1.nand": [ + "$a[5]", + "notb5" ], - "stage3.sub.fa4.and2": [ - "stage3.sub.fa4.xor1.layer2", - "stage3.sub.fa3.or_carry" + "fa5.xor1.layer1.or": [ + "$a[5]", + "notb5" ], - "stage3.sub.fa4.or_carry": [ - "stage3.sub.fa4.and1", - "stage3.sub.fa4.and2" + "fa5.xor1.layer2": [ + "fa5.xor1.layer1.nand", + "fa5.xor1.layer1.or" ], - "stage3.sub.fa5.xor1.layer1.or": [ - "stage3.shift.bit5", - "stage3.sub.notd5" + "fa5.xor2.layer1.nand": [ + "fa5.xor1.layer2", + "fa4.or_carry" ], - "stage3.sub.fa5.xor1.layer1.nand": [ - "stage3.shift.bit5", - "stage3.sub.notd5" + "fa5.xor2.layer1.or": [ + "fa5.xor1.layer2", + "fa4.or_carry" ], - "stage3.sub.fa5.xor1.layer2": [ - "stage3.sub.fa5.xor1.layer1.or", - "stage3.sub.fa5.xor1.layer1.nand" + "fa5.xor2.layer2": [ + "fa5.xor2.layer1.nand", + "fa5.xor2.layer1.or" ], - "stage3.sub.fa5.xor2.layer1.or": [ - "stage3.sub.fa5.xor1.layer2", - "stage3.sub.fa4.or_carry" + "fa5.and1": [ + "$a[5]", + "notb5" ], - "stage3.sub.fa5.xor2.layer1.nand": [ - "stage3.sub.fa5.xor1.layer2", - "stage3.sub.fa4.or_carry" + "fa5.and2": [ + "fa5.xor1.layer2", + "fa4.or_carry" ], - "stage3.sub.fa5.xor2.layer2": [ - "stage3.sub.fa5.xor2.layer1.or", - "stage3.sub.fa5.xor2.layer1.nand" + "fa5.or_carry": [ + "fa5.and1", + "fa5.and2" ], - "stage3.sub.fa5.and1": [ - "stage3.shift.bit5", - "stage3.sub.notd5" + "fa6.xor1.layer1.nand": [ + "$a[6]", + "notb6" ], - "stage3.sub.fa5.and2": [ - "stage3.sub.fa5.xor1.layer2", - "stage3.sub.fa4.or_carry" + "fa6.xor1.layer1.or": [ + "$a[6]", + "notb6" + ], + "fa6.xor1.layer2": [ + "fa6.xor1.layer1.nand", + "fa6.xor1.layer1.or" + ], + "fa6.xor2.layer1.nand": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.xor2.layer1.or": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.xor2.layer2": [ + "fa6.xor2.layer1.nand", + "fa6.xor2.layer1.or" + ], + "fa6.and1": [ + "$a[6]", + "notb6" + ], + "fa6.and2": [ + "fa6.xor1.layer2", + "fa5.or_carry" + ], + "fa6.or_carry": [ + "fa6.and1", + "fa6.and2" + ], + "fa7.xor1.layer1.nand": [ + "$a[7]", + "notb7" + ], + "fa7.xor1.layer1.or": [ + "$a[7]", + "notb7" + ], + "fa7.xor1.layer2": [ + "fa7.xor1.layer1.nand", + "fa7.xor1.layer1.or" + ], + "fa7.xor2.layer1.nand": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.xor2.layer1.or": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.xor2.layer2": [ + "fa7.xor2.layer1.nand", + "fa7.xor2.layer1.or" + ], + "fa7.and1": [ + "$a[7]", + "notb7" + ], + "fa7.and2": [ + "fa7.xor1.layer2", + "fa6.or_carry" + ], + "fa7.or_carry": [ + "fa7.and1", + "fa7.and2" + ], + "flags.zero_or": [ + "fa0.xor2.layer2", + "fa1.xor2.layer2", + "fa2.xor2.layer2", + "fa3.xor2.layer2", + "fa4.xor2.layer2", + "fa5.xor2.layer2", + "fa6.xor2.layer2", + "fa7.xor2.layer2" + ], + "flags.zero": [ + "flags.zero_or" + ], + "flags.negative": [ + "fa7.xor2.layer2" + ], + "flags.carry": [ + "fa7.or_carry" + ] + } + }, + "arithmetic.rol8bit": { + "inputs": [ + "$x[0:7]", + "$cin" + ], + "type": "rotate", + "internal": { + "bit0": [ + "$cin" + ], + "bit1": [ + "$x[0]" + ], + "bit2": [ + "$x[1]" + ], + "bit3": [ + "$x[2]" + ], + "bit4": [ + "$x[3]" + ], + "bit5": [ + "$x[4]" + ], + "bit6": [ + "$x[5]" + ], + "bit7": [ + "$x[6]" + ], + "cout": [ + "$x[7]" + ] + } + }, + "arithmetic.ror8bit": { + "inputs": [ + "$x[0:7]", + "$cin" + ], + "type": "rotate", + "internal": { + "bit0": [ + "$x[1]" + ], + "bit1": [ + "$x[2]" + ], + "bit2": [ + "$x[3]" + ], + "bit3": [ + "$x[4]" + ], + "bit4": [ + "$x[5]" + ], + "bit5": [ + "$x[6]" + ], + "bit6": [ + "$x[7]" + ], + "bit7": [ + "$cin" + ], + "cout": [ + "$x[0]" + ] + } + }, + "combinational.decoder3to8": { + "inputs": [ + "$sel[0:2]" + ], + "type": "decoder", + "internal": { + "out0": [ + "$sel[0]", + "$sel[1]", + "$sel[2]" + ], + "out1": [ + "$sel[0]", + "$sel[1]", + "$sel[2]" + ], + "out2": [ + "$sel[0]", + "$sel[1]", + "$sel[2]" + ], + "out3": [ + "$sel[0]", + "$sel[1]", + "$sel[2]" + ], + "out4": [ + "$sel[0]", + "$sel[1]", + "$sel[2]" + ], + "out5": [ + "$sel[0]", + "$sel[1]", + "$sel[2]" + ], + "out6": [ + "$sel[0]", + "$sel[1]", + "$sel[2]" + ], + "out7": [ + "$sel[0]", + "$sel[1]", + "$sel[2]" + ] + } + }, + "combinational.encoder8to3": { + "inputs": [ + "$x[0:7]" + ], + "type": "encoder", + "internal": { + "bit0": [ + "$x[0:7]" + ], + "bit1": [ + "$x[0:7]" + ], + "bit2": [ + "$x[0:7]" + ] + } + }, + "combinational.multiplexer2to1": { + "inputs": [ + "$a", + "$b", + "$sel" + ], + "type": "mux", + "internal": { + "not_s": [ + "$sel" + ], + "and0": [ + "$a", + "not_s" + ], + "and1": [ + "$b", + "$sel" + ], + "or": [ + "and0", + "and1" + ] + }, + "output": "or" + }, + "combinational.multiplexer4to1": { + "inputs": [ + "$x[0:3]", + "$sel[0:1]" + ], + "type": "mux", + "internal": { + "select": [ + "$x[0:3]", + "$sel[0:1]" + ] + } + }, + "combinational.multiplexer8to1": { + "inputs": [ + "$x[0:7]", + "$sel[0:2]" + ], + "type": "mux", + "internal": { + "select": [ + "$x[0:7]", + "$sel[0:2]" + ] + } + }, + "combinational.demultiplexer1to2": { + "inputs": [ + "$x", + "$sel" + ], + "type": "demux", + "internal": { + "and0": [ + "$x", + "$sel" + ], + "and1": [ + "$x", + "$sel" + ] + } + }, + "combinational.demultiplexer1to4": { + "inputs": [ + "$x", + "$sel[0:1]" + ], + "type": "demux", + "internal": { + "decode": [ + "$x", + "$sel[0:1]" + ] + } + }, + "combinational.demultiplexer1to8": { + "inputs": [ + "$x", + "$sel[0:2]" + ], + "type": "demux", + "internal": { + "decode": [ + "$x", + "$sel[0:2]" + ] + } + }, + "combinational.barrelshifter8bit": { + "inputs": [ + "$x[0:7]", + "$shift[0:2]" + ], + "type": "barrel_shifter", + "internal": { + "shift": [ + "$x[0:7]", + "$shift[0:2]" + ] + } + }, + "combinational.priorityencoder8bit": { + "inputs": [ + "$x[0:7]" + ], + "type": "priority_encoder", + "internal": { + "priority": [ + "$x[0:7]" + ] + } + }, + "combinational.regmux4to1": { + "inputs": [ + "$r0[0:7]", + "$r1[0:7]", + "$r2[0:7]", + "$r3[0:7]", + "$sel[0:1]" + ], + "type": "register_mux", + "internal": { + "not_s0": [ + "$sel[0]" + ], + "not_s1": [ + "$sel[1]" + ], + "bit0.and0": [ + "$r0[0]", + "not_s0", + "not_s1" + ], + "bit0.and1": [ + "$r1[0]", + "$sel[0]", + "not_s1" + ], + "bit0.and2": [ + "$r2[0]", + "not_s0", + "$sel[1]" + ], + "bit0.and3": [ + "$r3[0]", + "$sel[0]", + "$sel[1]" + ], + "bit0.or": [ + "bit0.and0", + "bit0.and1", + "bit0.and2", + "bit0.and3" + ], + "bit1.and0": [ + "$r0[1]", + "not_s0", + "not_s1" + ], + "bit1.and1": [ + "$r1[1]", + "$sel[0]", + "not_s1" + ], + "bit1.and2": [ + "$r2[1]", + "not_s0", + "$sel[1]" + ], + "bit1.and3": [ + "$r3[1]", + "$sel[0]", + "$sel[1]" + ], + "bit1.or": [ + "bit1.and0", + "bit1.and1", + "bit1.and2", + "bit1.and3" + ], + "bit2.and0": [ + "$r0[2]", + "not_s0", + "not_s1" + ], + "bit2.and1": [ + "$r1[2]", + "$sel[0]", + "not_s1" + ], + "bit2.and2": [ + "$r2[2]", + "not_s0", + "$sel[1]" + ], + "bit2.and3": [ + "$r3[2]", + "$sel[0]", + "$sel[1]" + ], + "bit2.or": [ + "bit2.and0", + "bit2.and1", + "bit2.and2", + "bit2.and3" + ], + "bit3.and0": [ + "$r0[3]", + "not_s0", + "not_s1" + ], + "bit3.and1": [ + "$r1[3]", + "$sel[0]", + "not_s1" + ], + "bit3.and2": [ + "$r2[3]", + "not_s0", + "$sel[1]" + ], + "bit3.and3": [ + "$r3[3]", + "$sel[0]", + "$sel[1]" + ], + "bit3.or": [ + "bit3.and0", + "bit3.and1", + "bit3.and2", + "bit3.and3" + ], + "bit4.and0": [ + "$r0[4]", + "not_s0", + "not_s1" + ], + "bit4.and1": [ + "$r1[4]", + "$sel[0]", + "not_s1" + ], + "bit4.and2": [ + "$r2[4]", + "not_s0", + "$sel[1]" + ], + "bit4.and3": [ + "$r3[4]", + "$sel[0]", + "$sel[1]" + ], + "bit4.or": [ + "bit4.and0", + "bit4.and1", + "bit4.and2", + "bit4.and3" + ], + "bit5.and0": [ + "$r0[5]", + "not_s0", + "not_s1" + ], + "bit5.and1": [ + "$r1[5]", + "$sel[0]", + "not_s1" + ], + "bit5.and2": [ + "$r2[5]", + "not_s0", + "$sel[1]" + ], + "bit5.and3": [ + "$r3[5]", + "$sel[0]", + "$sel[1]" + ], + "bit5.or": [ + "bit5.and0", + "bit5.and1", + "bit5.and2", + "bit5.and3" + ], + "bit6.and0": [ + "$r0[6]", + "not_s0", + "not_s1" + ], + "bit6.and1": [ + "$r1[6]", + "$sel[0]", + "not_s1" + ], + "bit6.and2": [ + "$r2[6]", + "not_s0", + "$sel[1]" + ], + "bit6.and3": [ + "$r3[6]", + "$sel[0]", + "$sel[1]" + ], + "bit6.or": [ + "bit6.and0", + "bit6.and1", + "bit6.and2", + "bit6.and3" + ], + "bit7.and0": [ + "$r0[7]", + "not_s0", + "not_s1" + ], + "bit7.and1": [ + "$r1[7]", + "$sel[0]", + "not_s1" + ], + "bit7.and2": [ + "$r2[7]", + "not_s0", + "$sel[1]" + ], + "bit7.and3": [ + "$r3[7]", + "$sel[0]", + "$sel[1]" + ], + "bit7.or": [ + "bit7.and0", + "bit7.and1", + "bit7.and2", + "bit7.and3" + ] + } + }, + "control.decoder": { + "inputs": [ + "$opcode[0:3]" + ], + "type": "instruction_decoder", + "internal": { + "decode0": [ + "$opcode[0:3]" ], - "stage3.sub.fa5.or_carry": [ - "stage3.sub.fa5.and1", - "stage3.sub.fa5.and2" + "decode1": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.xor1.layer1.or": [ - "stage3.shift.bit6", - "stage3.sub.notd6" + "decode2": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.xor1.layer1.nand": [ - "stage3.shift.bit6", - "stage3.sub.notd6" + "decode3": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.xor1.layer2": [ - "stage3.sub.fa6.xor1.layer1.or", - "stage3.sub.fa6.xor1.layer1.nand" + "decode4": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.xor2.layer1.or": [ - "stage3.sub.fa6.xor1.layer2", - "stage3.sub.fa5.or_carry" + "decode5": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.xor2.layer1.nand": [ - "stage3.sub.fa6.xor1.layer2", - "stage3.sub.fa5.or_carry" + "decode6": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.xor2.layer2": [ - "stage3.sub.fa6.xor2.layer1.or", - "stage3.sub.fa6.xor2.layer1.nand" + "decode7": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.and1": [ - "stage3.shift.bit6", - "stage3.sub.notd6" + "decode8": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.and2": [ - "stage3.sub.fa6.xor1.layer2", - "stage3.sub.fa5.or_carry" + "decode9": [ + "$opcode[0:3]" ], - "stage3.sub.fa6.or_carry": [ - "stage3.sub.fa6.and1", - "stage3.sub.fa6.and2" + "decode10": [ + "$opcode[0:3]" ], - "stage3.sub.fa7.xor1.layer1.or": [ - "stage3.shift.bit7", - "stage3.sub.notd7" + "decode11": [ + "$opcode[0:3]" ], - "stage3.sub.fa7.xor1.layer1.nand": [ - "stage3.shift.bit7", - "stage3.sub.notd7" + "decode12": [ + "$opcode[0:3]" ], - "stage3.sub.fa7.xor1.layer2": [ - "stage3.sub.fa7.xor1.layer1.or", - "stage3.sub.fa7.xor1.layer1.nand" + "decode13": [ + "$opcode[0:3]" ], - "stage3.sub.fa7.xor2.layer1.or": [ - "stage3.sub.fa7.xor1.layer2", - "stage3.sub.fa6.or_carry" + "decode14": [ + "$opcode[0:3]" ], - "stage3.sub.fa7.xor2.layer1.nand": [ - "stage3.sub.fa7.xor1.layer2", - "stage3.sub.fa6.or_carry" + "decode15": [ + "$opcode[0:3]" ], - "stage3.sub.fa7.xor2.layer2": [ - "stage3.sub.fa7.xor2.layer1.or", - "stage3.sub.fa7.xor2.layer1.nand" + "not_op0": [ + "$opcode[0]" ], - "stage3.sub.fa7.and1": [ - "stage3.shift.bit7", - "stage3.sub.notd7" + "not_op1": [ + "$opcode[1]" ], - "stage3.sub.fa7.and2": [ - "stage3.sub.fa7.xor1.layer2", - "stage3.sub.fa6.or_carry" + "not_op2": [ + "$opcode[2]" ], - "stage3.sub.fa7.or_carry": [ - "stage3.sub.fa7.and1", - "stage3.sub.fa7.and2" + "not_op3": [ + "$opcode[3]" ], - "stage3.cmp": [ - "stage3.sub.fa7.or_carry" + "is_alu": [ + "$opcode[0:3]" ], - "stage3.or_dividend": [ - "stage3.shift.bit7", - "$dividend[4]" + "is_control": [ + "$opcode[0:3]" + ] + } + }, + "control.jump": { + "inputs": [ + "$target[0:7]" + ], + "type": "jump", + "internal": { + "bit0": [ + "$target[0]" ], - "stage3.mux0.not_sel": [ - "stage3.cmp" + "bit1": [ + "$target[1]" ], - "stage3.mux0.and0": [ - "stage3.shift.bit0", - "stage3.mux0.not_sel" + "bit2": [ + "$target[2]" ], - "stage3.mux0.and1": [ - "stage3.sub.fa0.xor2.layer2", - "stage3.cmp" + "bit3": [ + "$target[3]" ], - "stage3.mux0.or": [ - "stage3.mux0.and0", - "stage3.mux0.and1" + "bit4": [ + "$target[4]" ], - "stage3.mux1.not_sel": [ - "stage3.cmp" + "bit5": [ + "$target[5]" ], - "stage3.mux1.and0": [ - "stage3.shift.bit1", - "stage3.mux1.not_sel" + "bit6": [ + "$target[6]" ], - "stage3.mux1.and1": [ - "stage3.sub.fa1.xor2.layer2", - "stage3.cmp" + "bit7": [ + "$target[7]" + ] + } + }, + "control.conditionaljump": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$cond" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$cond" ], - "stage3.mux1.or": [ - "stage3.mux1.and0", - "stage3.mux1.and1" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage3.mux2.not_sel": [ - "stage3.cmp" + "bit0.and_b": [ + "$target[0]", + "$cond" ], - "stage3.mux2.and0": [ - "stage3.shift.bit2", - "stage3.mux2.not_sel" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" ], - "stage3.mux2.and1": [ - "stage3.sub.fa2.xor2.layer2", - "stage3.cmp" + "bit1.not_sel": [ + "$cond" ], - "stage3.mux2.or": [ - "stage3.mux2.and0", - "stage3.mux2.and1" + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage3.mux3.not_sel": [ - "stage3.cmp" + "bit1.and_b": [ + "$target[1]", + "$cond" ], - "stage3.mux3.and0": [ - "stage3.shift.bit3", - "stage3.mux3.not_sel" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage3.mux3.and1": [ - "stage3.sub.fa3.xor2.layer2", - "stage3.cmp" + "bit2.not_sel": [ + "$cond" ], - "stage3.mux3.or": [ - "stage3.mux3.and0", - "stage3.mux3.and1" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage3.mux4.not_sel": [ - "stage3.cmp" + "bit2.and_b": [ + "$target[2]", + "$cond" ], - "stage3.mux4.and0": [ - "stage3.shift.bit4", - "stage3.mux4.not_sel" + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage3.mux4.and1": [ - "stage3.sub.fa4.xor2.layer2", - "stage3.cmp" + "bit3.not_sel": [ + "$cond" ], - "stage3.mux4.or": [ - "stage3.mux4.and0", - "stage3.mux4.and1" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage3.mux5.not_sel": [ - "stage3.cmp" + "bit3.and_b": [ + "$target[3]", + "$cond" ], - "stage3.mux5.and0": [ - "stage3.shift.bit5", - "stage3.mux5.not_sel" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage3.mux5.and1": [ - "stage3.sub.fa5.xor2.layer2", - "stage3.cmp" + "bit4.not_sel": [ + "$cond" ], - "stage3.mux5.or": [ - "stage3.mux5.and0", - "stage3.mux5.and1" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage3.mux6.not_sel": [ - "stage3.cmp" + "bit4.and_b": [ + "$target[4]", + "$cond" ], - "stage3.mux6.and0": [ - "stage3.shift.bit6", - "stage3.mux6.not_sel" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage3.mux6.and1": [ - "stage3.sub.fa6.xor2.layer2", - "stage3.cmp" + "bit5.not_sel": [ + "$cond" ], - "stage3.mux6.or": [ - "stage3.mux6.and0", - "stage3.mux6.and1" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage3.mux7.not_sel": [ - "stage3.cmp" + "bit5.and_b": [ + "$target[5]", + "$cond" ], - "stage3.mux7.and0": [ - "stage3.shift.bit7", - "stage3.mux7.not_sel" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage3.mux7.and1": [ - "stage3.sub.fa7.xor2.layer2", - "stage3.cmp" + "bit6.not_sel": [ + "$cond" ], - "stage3.mux7.or": [ - "stage3.mux7.and0", - "stage3.mux7.and1" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage4.shift.bit0": [ - "$dividend[3]" + "bit6.and_b": [ + "$target[6]", + "$cond" ], - "stage4.shift.bit1": [ - "stage3.mux0.or" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage4.shift.bit2": [ - "stage3.mux1.or" + "bit7.not_sel": [ + "$cond" ], - "stage4.shift.bit3": [ - "stage3.mux2.or" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage4.shift.bit4": [ - "stage3.mux3.or" + "bit7.and_b": [ + "$target[7]", + "$cond" ], - "stage4.shift.bit5": [ - "stage3.mux4.or" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.jc": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$carry" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$carry" ], - "stage4.shift.bit6": [ - "stage3.mux5.or" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage4.shift.bit7": [ - "stage3.mux6.or" + "bit0.and_b": [ + "$target[0]", + "$carry" ], - "stage4.sub.notd0": [ - "$divisor[0]" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" ], - "stage4.sub.notd1": [ - "$divisor[1]" + "bit1.not_sel": [ + "$carry" ], - "stage4.sub.notd2": [ - "$divisor[2]" + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage4.sub.notd3": [ - "$divisor[3]" + "bit1.and_b": [ + "$target[1]", + "$carry" ], - "stage4.sub.notd4": [ - "$divisor[4]" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage4.sub.notd5": [ - "$divisor[5]" + "bit2.not_sel": [ + "$carry" ], - "stage4.sub.notd6": [ - "$divisor[6]" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage4.sub.notd7": [ - "$divisor[7]" + "bit2.and_b": [ + "$target[2]", + "$carry" ], - "stage4.sub.fa0.xor1.layer1.or": [ - "stage4.shift.bit0", - "stage4.sub.notd0" + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage4.sub.fa0.xor1.layer1.nand": [ - "stage4.shift.bit0", - "stage4.sub.notd0" + "bit3.not_sel": [ + "$carry" ], - "stage4.sub.fa0.xor1.layer2": [ - "stage4.sub.fa0.xor1.layer1.or", - "stage4.sub.fa0.xor1.layer1.nand" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage4.sub.fa0.xor2.layer1.or": [ - "stage4.sub.fa0.xor1.layer2", - "#1" + "bit3.and_b": [ + "$target[3]", + "$carry" ], - "stage4.sub.fa0.xor2.layer1.nand": [ - "stage4.sub.fa0.xor1.layer2", - "#1" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage4.sub.fa0.xor2.layer2": [ - "stage4.sub.fa0.xor2.layer1.or", - "stage4.sub.fa0.xor2.layer1.nand" + "bit4.not_sel": [ + "$carry" ], - "stage4.sub.fa0.and1": [ - "stage4.shift.bit0", - "stage4.sub.notd0" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage4.sub.fa0.and2": [ - "stage4.sub.fa0.xor1.layer2", - "#1" + "bit4.and_b": [ + "$target[4]", + "$carry" ], - "stage4.sub.fa0.or_carry": [ - "stage4.sub.fa0.and1", - "stage4.sub.fa0.and2" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage4.sub.fa1.xor1.layer1.or": [ - "stage4.shift.bit1", - "stage4.sub.notd1" + "bit5.not_sel": [ + "$carry" ], - "stage4.sub.fa1.xor1.layer1.nand": [ - "stage4.shift.bit1", - "stage4.sub.notd1" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage4.sub.fa1.xor1.layer2": [ - "stage4.sub.fa1.xor1.layer1.or", - "stage4.sub.fa1.xor1.layer1.nand" + "bit5.and_b": [ + "$target[5]", + "$carry" ], - "stage4.sub.fa1.xor2.layer1.or": [ - "stage4.sub.fa1.xor1.layer2", - "stage4.sub.fa0.or_carry" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage4.sub.fa1.xor2.layer1.nand": [ - "stage4.sub.fa1.xor1.layer2", - "stage4.sub.fa0.or_carry" + "bit6.not_sel": [ + "$carry" ], - "stage4.sub.fa1.xor2.layer2": [ - "stage4.sub.fa1.xor2.layer1.or", - "stage4.sub.fa1.xor2.layer1.nand" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage4.sub.fa1.and1": [ - "stage4.shift.bit1", - "stage4.sub.notd1" + "bit6.and_b": [ + "$target[6]", + "$carry" ], - "stage4.sub.fa1.and2": [ - "stage4.sub.fa1.xor1.layer2", - "stage4.sub.fa0.or_carry" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage4.sub.fa1.or_carry": [ - "stage4.sub.fa1.and1", - "stage4.sub.fa1.and2" + "bit7.not_sel": [ + "$carry" ], - "stage4.sub.fa2.xor1.layer1.or": [ - "stage4.shift.bit2", - "stage4.sub.notd2" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage4.sub.fa2.xor1.layer1.nand": [ - "stage4.shift.bit2", - "stage4.sub.notd2" + "bit7.and_b": [ + "$target[7]", + "$carry" ], - "stage4.sub.fa2.xor1.layer2": [ - "stage4.sub.fa2.xor1.layer1.or", - "stage4.sub.fa2.xor1.layer1.nand" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.jn": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$negative" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$negative" ], - "stage4.sub.fa2.xor2.layer1.or": [ - "stage4.sub.fa2.xor1.layer2", - "stage4.sub.fa1.or_carry" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage4.sub.fa2.xor2.layer1.nand": [ - "stage4.sub.fa2.xor1.layer2", - "stage4.sub.fa1.or_carry" + "bit0.and_b": [ + "$target[0]", + "$negative" ], - "stage4.sub.fa2.xor2.layer2": [ - "stage4.sub.fa2.xor2.layer1.or", - "stage4.sub.fa2.xor2.layer1.nand" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" ], - "stage4.sub.fa2.and1": [ - "stage4.shift.bit2", - "stage4.sub.notd2" + "bit1.not_sel": [ + "$negative" ], - "stage4.sub.fa2.and2": [ - "stage4.sub.fa2.xor1.layer2", - "stage4.sub.fa1.or_carry" + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage4.sub.fa2.or_carry": [ - "stage4.sub.fa2.and1", - "stage4.sub.fa2.and2" + "bit1.and_b": [ + "$target[1]", + "$negative" ], - "stage4.sub.fa3.xor1.layer1.or": [ - "stage4.shift.bit3", - "stage4.sub.notd3" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage4.sub.fa3.xor1.layer1.nand": [ - "stage4.shift.bit3", - "stage4.sub.notd3" + "bit2.not_sel": [ + "$negative" ], - "stage4.sub.fa3.xor1.layer2": [ - "stage4.sub.fa3.xor1.layer1.or", - "stage4.sub.fa3.xor1.layer1.nand" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage4.sub.fa3.xor2.layer1.or": [ - "stage4.sub.fa3.xor1.layer2", - "stage4.sub.fa2.or_carry" + "bit2.and_b": [ + "$target[2]", + "$negative" ], - "stage4.sub.fa3.xor2.layer1.nand": [ - "stage4.sub.fa3.xor1.layer2", - "stage4.sub.fa2.or_carry" + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage4.sub.fa3.xor2.layer2": [ - "stage4.sub.fa3.xor2.layer1.or", - "stage4.sub.fa3.xor2.layer1.nand" + "bit3.not_sel": [ + "$negative" ], - "stage4.sub.fa3.and1": [ - "stage4.shift.bit3", - "stage4.sub.notd3" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage4.sub.fa3.and2": [ - "stage4.sub.fa3.xor1.layer2", - "stage4.sub.fa2.or_carry" + "bit3.and_b": [ + "$target[3]", + "$negative" ], - "stage4.sub.fa3.or_carry": [ - "stage4.sub.fa3.and1", - "stage4.sub.fa3.and2" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage4.sub.fa4.xor1.layer1.or": [ - "stage4.shift.bit4", - "stage4.sub.notd4" + "bit4.not_sel": [ + "$negative" ], - "stage4.sub.fa4.xor1.layer1.nand": [ - "stage4.shift.bit4", - "stage4.sub.notd4" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage4.sub.fa4.xor1.layer2": [ - "stage4.sub.fa4.xor1.layer1.or", - "stage4.sub.fa4.xor1.layer1.nand" + "bit4.and_b": [ + "$target[4]", + "$negative" ], - "stage4.sub.fa4.xor2.layer1.or": [ - "stage4.sub.fa4.xor1.layer2", - "stage4.sub.fa3.or_carry" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage4.sub.fa4.xor2.layer1.nand": [ - "stage4.sub.fa4.xor1.layer2", - "stage4.sub.fa3.or_carry" + "bit5.not_sel": [ + "$negative" ], - "stage4.sub.fa4.xor2.layer2": [ - "stage4.sub.fa4.xor2.layer1.or", - "stage4.sub.fa4.xor2.layer1.nand" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage4.sub.fa4.and1": [ - "stage4.shift.bit4", - "stage4.sub.notd4" + "bit5.and_b": [ + "$target[5]", + "$negative" ], - "stage4.sub.fa4.and2": [ - "stage4.sub.fa4.xor1.layer2", - "stage4.sub.fa3.or_carry" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage4.sub.fa4.or_carry": [ - "stage4.sub.fa4.and1", - "stage4.sub.fa4.and2" + "bit6.not_sel": [ + "$negative" ], - "stage4.sub.fa5.xor1.layer1.or": [ - "stage4.shift.bit5", - "stage4.sub.notd5" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage4.sub.fa5.xor1.layer1.nand": [ - "stage4.shift.bit5", - "stage4.sub.notd5" + "bit6.and_b": [ + "$target[6]", + "$negative" ], - "stage4.sub.fa5.xor1.layer2": [ - "stage4.sub.fa5.xor1.layer1.or", - "stage4.sub.fa5.xor1.layer1.nand" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage4.sub.fa5.xor2.layer1.or": [ - "stage4.sub.fa5.xor1.layer2", - "stage4.sub.fa4.or_carry" + "bit7.not_sel": [ + "$negative" ], - "stage4.sub.fa5.xor2.layer1.nand": [ - "stage4.sub.fa5.xor1.layer2", - "stage4.sub.fa4.or_carry" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage4.sub.fa5.xor2.layer2": [ - "stage4.sub.fa5.xor2.layer1.or", - "stage4.sub.fa5.xor2.layer1.nand" + "bit7.and_b": [ + "$target[7]", + "$negative" ], - "stage4.sub.fa5.and1": [ - "stage4.shift.bit5", - "stage4.sub.notd5" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.jz": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$zero" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$zero" ], - "stage4.sub.fa5.and2": [ - "stage4.sub.fa5.xor1.layer2", - "stage4.sub.fa4.or_carry" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage4.sub.fa5.or_carry": [ - "stage4.sub.fa5.and1", - "stage4.sub.fa5.and2" + "bit0.and_b": [ + "$target[0]", + "$zero" ], - "stage4.sub.fa6.xor1.layer1.or": [ - "stage4.shift.bit6", - "stage4.sub.notd6" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" ], - "stage4.sub.fa6.xor1.layer1.nand": [ - "stage4.shift.bit6", - "stage4.sub.notd6" + "bit1.not_sel": [ + "$zero" ], - "stage4.sub.fa6.xor1.layer2": [ - "stage4.sub.fa6.xor1.layer1.or", - "stage4.sub.fa6.xor1.layer1.nand" + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage4.sub.fa6.xor2.layer1.or": [ - "stage4.sub.fa6.xor1.layer2", - "stage4.sub.fa5.or_carry" + "bit1.and_b": [ + "$target[1]", + "$zero" ], - "stage4.sub.fa6.xor2.layer1.nand": [ - "stage4.sub.fa6.xor1.layer2", - "stage4.sub.fa5.or_carry" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage4.sub.fa6.xor2.layer2": [ - "stage4.sub.fa6.xor2.layer1.or", - "stage4.sub.fa6.xor2.layer1.nand" + "bit2.not_sel": [ + "$zero" ], - "stage4.sub.fa6.and1": [ - "stage4.shift.bit6", - "stage4.sub.notd6" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage4.sub.fa6.and2": [ - "stage4.sub.fa6.xor1.layer2", - "stage4.sub.fa5.or_carry" + "bit2.and_b": [ + "$target[2]", + "$zero" ], - "stage4.sub.fa6.or_carry": [ - "stage4.sub.fa6.and1", - "stage4.sub.fa6.and2" + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage4.sub.fa7.xor1.layer1.or": [ - "stage4.shift.bit7", - "stage4.sub.notd7" + "bit3.not_sel": [ + "$zero" ], - "stage4.sub.fa7.xor1.layer1.nand": [ - "stage4.shift.bit7", - "stage4.sub.notd7" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage4.sub.fa7.xor1.layer2": [ - "stage4.sub.fa7.xor1.layer1.or", - "stage4.sub.fa7.xor1.layer1.nand" + "bit3.and_b": [ + "$target[3]", + "$zero" ], - "stage4.sub.fa7.xor2.layer1.or": [ - "stage4.sub.fa7.xor1.layer2", - "stage4.sub.fa6.or_carry" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage4.sub.fa7.xor2.layer1.nand": [ - "stage4.sub.fa7.xor1.layer2", - "stage4.sub.fa6.or_carry" + "bit4.not_sel": [ + "$zero" ], - "stage4.sub.fa7.xor2.layer2": [ - "stage4.sub.fa7.xor2.layer1.or", - "stage4.sub.fa7.xor2.layer1.nand" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage4.sub.fa7.and1": [ - "stage4.shift.bit7", - "stage4.sub.notd7" + "bit4.and_b": [ + "$target[4]", + "$zero" ], - "stage4.sub.fa7.and2": [ - "stage4.sub.fa7.xor1.layer2", - "stage4.sub.fa6.or_carry" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage4.sub.fa7.or_carry": [ - "stage4.sub.fa7.and1", - "stage4.sub.fa7.and2" + "bit5.not_sel": [ + "$zero" ], - "stage4.cmp": [ - "stage4.sub.fa7.or_carry" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage4.or_dividend": [ - "stage4.shift.bit7", - "$dividend[3]" + "bit5.and_b": [ + "$target[5]", + "$zero" ], - "stage4.mux0.not_sel": [ - "stage4.cmp" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage4.mux0.and0": [ - "stage4.shift.bit0", - "stage4.mux0.not_sel" + "bit6.not_sel": [ + "$zero" ], - "stage4.mux0.and1": [ - "stage4.sub.fa0.xor2.layer2", - "stage4.cmp" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage4.mux0.or": [ - "stage4.mux0.and0", - "stage4.mux0.and1" + "bit6.and_b": [ + "$target[6]", + "$zero" ], - "stage4.mux1.not_sel": [ - "stage4.cmp" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage4.mux1.and0": [ - "stage4.shift.bit1", - "stage4.mux1.not_sel" + "bit7.not_sel": [ + "$zero" ], - "stage4.mux1.and1": [ - "stage4.sub.fa1.xor2.layer2", - "stage4.cmp" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage4.mux1.or": [ - "stage4.mux1.and0", - "stage4.mux1.and1" + "bit7.and_b": [ + "$target[7]", + "$zero" ], - "stage4.mux2.not_sel": [ - "stage4.cmp" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.jv": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$overflow" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$overflow" ], - "stage4.mux2.and0": [ - "stage4.shift.bit2", - "stage4.mux2.not_sel" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage4.mux2.and1": [ - "stage4.sub.fa2.xor2.layer2", - "stage4.cmp" + "bit0.and_b": [ + "$target[0]", + "$overflow" ], - "stage4.mux2.or": [ - "stage4.mux2.and0", - "stage4.mux2.and1" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" ], - "stage4.mux3.not_sel": [ - "stage4.cmp" + "bit1.not_sel": [ + "$overflow" ], - "stage4.mux3.and0": [ - "stage4.shift.bit3", - "stage4.mux3.not_sel" + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage4.mux3.and1": [ - "stage4.sub.fa3.xor2.layer2", - "stage4.cmp" + "bit1.and_b": [ + "$target[1]", + "$overflow" ], - "stage4.mux3.or": [ - "stage4.mux3.and0", - "stage4.mux3.and1" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage4.mux4.not_sel": [ - "stage4.cmp" + "bit2.not_sel": [ + "$overflow" ], - "stage4.mux4.and0": [ - "stage4.shift.bit4", - "stage4.mux4.not_sel" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage4.mux4.and1": [ - "stage4.sub.fa4.xor2.layer2", - "stage4.cmp" + "bit2.and_b": [ + "$target[2]", + "$overflow" + ], + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage4.mux4.or": [ - "stage4.mux4.and0", - "stage4.mux4.and1" + "bit3.not_sel": [ + "$overflow" ], - "stage4.mux5.not_sel": [ - "stage4.cmp" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage4.mux5.and0": [ - "stage4.shift.bit5", - "stage4.mux5.not_sel" + "bit3.and_b": [ + "$target[3]", + "$overflow" ], - "stage4.mux5.and1": [ - "stage4.sub.fa5.xor2.layer2", - "stage4.cmp" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage4.mux5.or": [ - "stage4.mux5.and0", - "stage4.mux5.and1" + "bit4.not_sel": [ + "$overflow" ], - "stage4.mux6.not_sel": [ - "stage4.cmp" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage4.mux6.and0": [ - "stage4.shift.bit6", - "stage4.mux6.not_sel" + "bit4.and_b": [ + "$target[4]", + "$overflow" ], - "stage4.mux6.and1": [ - "stage4.sub.fa6.xor2.layer2", - "stage4.cmp" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage4.mux6.or": [ - "stage4.mux6.and0", - "stage4.mux6.and1" + "bit5.not_sel": [ + "$overflow" ], - "stage4.mux7.not_sel": [ - "stage4.cmp" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage4.mux7.and0": [ - "stage4.shift.bit7", - "stage4.mux7.not_sel" + "bit5.and_b": [ + "$target[5]", + "$overflow" ], - "stage4.mux7.and1": [ - "stage4.sub.fa7.xor2.layer2", - "stage4.cmp" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage4.mux7.or": [ - "stage4.mux7.and0", - "stage4.mux7.and1" + "bit6.not_sel": [ + "$overflow" ], - "stage5.shift.bit0": [ - "$dividend[2]" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage5.shift.bit1": [ - "stage4.mux0.or" + "bit6.and_b": [ + "$target[6]", + "$overflow" ], - "stage5.shift.bit2": [ - "stage4.mux1.or" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage5.shift.bit3": [ - "stage4.mux2.or" + "bit7.not_sel": [ + "$overflow" ], - "stage5.shift.bit4": [ - "stage4.mux3.or" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage5.shift.bit5": [ - "stage4.mux4.or" + "bit7.and_b": [ + "$target[7]", + "$overflow" ], - "stage5.shift.bit6": [ - "stage4.mux5.or" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.jnc": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$not_carry" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$not_carry" ], - "stage5.shift.bit7": [ - "stage4.mux6.or" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage5.sub.notd0": [ - "$divisor[0]" + "bit0.and_b": [ + "$target[0]", + "$not_carry" ], - "stage5.sub.notd1": [ - "$divisor[1]" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" ], - "stage5.sub.notd2": [ - "$divisor[2]" + "bit1.not_sel": [ + "$not_carry" ], - "stage5.sub.notd3": [ - "$divisor[3]" + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage5.sub.notd4": [ - "$divisor[4]" + "bit1.and_b": [ + "$target[1]", + "$not_carry" ], - "stage5.sub.notd5": [ - "$divisor[5]" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage5.sub.notd6": [ - "$divisor[6]" + "bit2.not_sel": [ + "$not_carry" ], - "stage5.sub.notd7": [ - "$divisor[7]" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage5.sub.fa0.xor1.layer1.or": [ - "stage5.shift.bit0", - "stage5.sub.notd0" + "bit2.and_b": [ + "$target[2]", + "$not_carry" ], - "stage5.sub.fa0.xor1.layer1.nand": [ - "stage5.shift.bit0", - "stage5.sub.notd0" + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage5.sub.fa0.xor1.layer2": [ - "stage5.sub.fa0.xor1.layer1.or", - "stage5.sub.fa0.xor1.layer1.nand" + "bit3.not_sel": [ + "$not_carry" ], - "stage5.sub.fa0.xor2.layer1.or": [ - "stage5.sub.fa0.xor1.layer2", - "#1" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage5.sub.fa0.xor2.layer1.nand": [ - "stage5.sub.fa0.xor1.layer2", - "#1" + "bit3.and_b": [ + "$target[3]", + "$not_carry" ], - "stage5.sub.fa0.xor2.layer2": [ - "stage5.sub.fa0.xor2.layer1.or", - "stage5.sub.fa0.xor2.layer1.nand" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage5.sub.fa0.and1": [ - "stage5.shift.bit0", - "stage5.sub.notd0" + "bit4.not_sel": [ + "$not_carry" ], - "stage5.sub.fa0.and2": [ - "stage5.sub.fa0.xor1.layer2", - "#1" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage5.sub.fa0.or_carry": [ - "stage5.sub.fa0.and1", - "stage5.sub.fa0.and2" + "bit4.and_b": [ + "$target[4]", + "$not_carry" ], - "stage5.sub.fa1.xor1.layer1.or": [ - "stage5.shift.bit1", - "stage5.sub.notd1" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage5.sub.fa1.xor1.layer1.nand": [ - "stage5.shift.bit1", - "stage5.sub.notd1" + "bit5.not_sel": [ + "$not_carry" ], - "stage5.sub.fa1.xor1.layer2": [ - "stage5.sub.fa1.xor1.layer1.or", - "stage5.sub.fa1.xor1.layer1.nand" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage5.sub.fa1.xor2.layer1.or": [ - "stage5.sub.fa1.xor1.layer2", - "stage5.sub.fa0.or_carry" + "bit5.and_b": [ + "$target[5]", + "$not_carry" ], - "stage5.sub.fa1.xor2.layer1.nand": [ - "stage5.sub.fa1.xor1.layer2", - "stage5.sub.fa0.or_carry" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage5.sub.fa1.xor2.layer2": [ - "stage5.sub.fa1.xor2.layer1.or", - "stage5.sub.fa1.xor2.layer1.nand" + "bit6.not_sel": [ + "$not_carry" ], - "stage5.sub.fa1.and1": [ - "stage5.shift.bit1", - "stage5.sub.notd1" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage5.sub.fa1.and2": [ - "stage5.sub.fa1.xor1.layer2", - "stage5.sub.fa0.or_carry" + "bit6.and_b": [ + "$target[6]", + "$not_carry" ], - "stage5.sub.fa1.or_carry": [ - "stage5.sub.fa1.and1", - "stage5.sub.fa1.and2" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage5.sub.fa2.xor1.layer1.or": [ - "stage5.shift.bit2", - "stage5.sub.notd2" + "bit7.not_sel": [ + "$not_carry" ], - "stage5.sub.fa2.xor1.layer1.nand": [ - "stage5.shift.bit2", - "stage5.sub.notd2" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage5.sub.fa2.xor1.layer2": [ - "stage5.sub.fa2.xor1.layer1.or", - "stage5.sub.fa2.xor1.layer1.nand" + "bit7.and_b": [ + "$target[7]", + "$not_carry" ], - "stage5.sub.fa2.xor2.layer1.or": [ - "stage5.sub.fa2.xor1.layer2", - "stage5.sub.fa1.or_carry" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.jnz": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$not_zero" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$not_zero" ], - "stage5.sub.fa2.xor2.layer1.nand": [ - "stage5.sub.fa2.xor1.layer2", - "stage5.sub.fa1.or_carry" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage5.sub.fa2.xor2.layer2": [ - "stage5.sub.fa2.xor2.layer1.or", - "stage5.sub.fa2.xor2.layer1.nand" + "bit0.and_b": [ + "$target[0]", + "$not_zero" ], - "stage5.sub.fa2.and1": [ - "stage5.shift.bit2", - "stage5.sub.notd2" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" ], - "stage5.sub.fa2.and2": [ - "stage5.sub.fa2.xor1.layer2", - "stage5.sub.fa1.or_carry" + "bit1.not_sel": [ + "$not_zero" ], - "stage5.sub.fa2.or_carry": [ - "stage5.sub.fa2.and1", - "stage5.sub.fa2.and2" + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage5.sub.fa3.xor1.layer1.or": [ - "stage5.shift.bit3", - "stage5.sub.notd3" + "bit1.and_b": [ + "$target[1]", + "$not_zero" ], - "stage5.sub.fa3.xor1.layer1.nand": [ - "stage5.shift.bit3", - "stage5.sub.notd3" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage5.sub.fa3.xor1.layer2": [ - "stage5.sub.fa3.xor1.layer1.or", - "stage5.sub.fa3.xor1.layer1.nand" + "bit2.not_sel": [ + "$not_zero" ], - "stage5.sub.fa3.xor2.layer1.or": [ - "stage5.sub.fa3.xor1.layer2", - "stage5.sub.fa2.or_carry" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage5.sub.fa3.xor2.layer1.nand": [ - "stage5.sub.fa3.xor1.layer2", - "stage5.sub.fa2.or_carry" + "bit2.and_b": [ + "$target[2]", + "$not_zero" ], - "stage5.sub.fa3.xor2.layer2": [ - "stage5.sub.fa3.xor2.layer1.or", - "stage5.sub.fa3.xor2.layer1.nand" + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage5.sub.fa3.and1": [ - "stage5.shift.bit3", - "stage5.sub.notd3" + "bit3.not_sel": [ + "$not_zero" ], - "stage5.sub.fa3.and2": [ - "stage5.sub.fa3.xor1.layer2", - "stage5.sub.fa2.or_carry" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage5.sub.fa3.or_carry": [ - "stage5.sub.fa3.and1", - "stage5.sub.fa3.and2" + "bit3.and_b": [ + "$target[3]", + "$not_zero" ], - "stage5.sub.fa4.xor1.layer1.or": [ - "stage5.shift.bit4", - "stage5.sub.notd4" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage5.sub.fa4.xor1.layer1.nand": [ - "stage5.shift.bit4", - "stage5.sub.notd4" + "bit4.not_sel": [ + "$not_zero" ], - "stage5.sub.fa4.xor1.layer2": [ - "stage5.sub.fa4.xor1.layer1.or", - "stage5.sub.fa4.xor1.layer1.nand" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage5.sub.fa4.xor2.layer1.or": [ - "stage5.sub.fa4.xor1.layer2", - "stage5.sub.fa3.or_carry" + "bit4.and_b": [ + "$target[4]", + "$not_zero" ], - "stage5.sub.fa4.xor2.layer1.nand": [ - "stage5.sub.fa4.xor1.layer2", - "stage5.sub.fa3.or_carry" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage5.sub.fa4.xor2.layer2": [ - "stage5.sub.fa4.xor2.layer1.or", - "stage5.sub.fa4.xor2.layer1.nand" + "bit5.not_sel": [ + "$not_zero" ], - "stage5.sub.fa4.and1": [ - "stage5.shift.bit4", - "stage5.sub.notd4" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage5.sub.fa4.and2": [ - "stage5.sub.fa4.xor1.layer2", - "stage5.sub.fa3.or_carry" + "bit5.and_b": [ + "$target[5]", + "$not_zero" ], - "stage5.sub.fa4.or_carry": [ - "stage5.sub.fa4.and1", - "stage5.sub.fa4.and2" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage5.sub.fa5.xor1.layer1.or": [ - "stage5.shift.bit5", - "stage5.sub.notd5" + "bit6.not_sel": [ + "$not_zero" ], - "stage5.sub.fa5.xor1.layer1.nand": [ - "stage5.shift.bit5", - "stage5.sub.notd5" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage5.sub.fa5.xor1.layer2": [ - "stage5.sub.fa5.xor1.layer1.or", - "stage5.sub.fa5.xor1.layer1.nand" + "bit6.and_b": [ + "$target[6]", + "$not_zero" ], - "stage5.sub.fa5.xor2.layer1.or": [ - "stage5.sub.fa5.xor1.layer2", - "stage5.sub.fa4.or_carry" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage5.sub.fa5.xor2.layer1.nand": [ - "stage5.sub.fa5.xor1.layer2", - "stage5.sub.fa4.or_carry" + "bit7.not_sel": [ + "$not_zero" ], - "stage5.sub.fa5.xor2.layer2": [ - "stage5.sub.fa5.xor2.layer1.or", - "stage5.sub.fa5.xor2.layer1.nand" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage5.sub.fa5.and1": [ - "stage5.shift.bit5", - "stage5.sub.notd5" + "bit7.and_b": [ + "$target[7]", + "$not_zero" ], - "stage5.sub.fa5.and2": [ - "stage5.sub.fa5.xor1.layer2", - "stage5.sub.fa4.or_carry" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.jnv": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$not_overflow" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$not_overflow" ], - "stage5.sub.fa5.or_carry": [ - "stage5.sub.fa5.and1", - "stage5.sub.fa5.and2" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage5.sub.fa6.xor1.layer1.or": [ - "stage5.shift.bit6", - "stage5.sub.notd6" + "bit0.and_b": [ + "$target[0]", + "$not_overflow" ], - "stage5.sub.fa6.xor1.layer1.nand": [ - "stage5.shift.bit6", - "stage5.sub.notd6" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" + ], + "bit1.not_sel": [ + "$not_overflow" + ], + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage5.sub.fa6.xor1.layer2": [ - "stage5.sub.fa6.xor1.layer1.or", - "stage5.sub.fa6.xor1.layer1.nand" + "bit1.and_b": [ + "$target[1]", + "$not_overflow" ], - "stage5.sub.fa6.xor2.layer1.or": [ - "stage5.sub.fa6.xor1.layer2", - "stage5.sub.fa5.or_carry" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage5.sub.fa6.xor2.layer1.nand": [ - "stage5.sub.fa6.xor1.layer2", - "stage5.sub.fa5.or_carry" + "bit2.not_sel": [ + "$not_overflow" ], - "stage5.sub.fa6.xor2.layer2": [ - "stage5.sub.fa6.xor2.layer1.or", - "stage5.sub.fa6.xor2.layer1.nand" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage5.sub.fa6.and1": [ - "stage5.shift.bit6", - "stage5.sub.notd6" + "bit2.and_b": [ + "$target[2]", + "$not_overflow" ], - "stage5.sub.fa6.and2": [ - "stage5.sub.fa6.xor1.layer2", - "stage5.sub.fa5.or_carry" + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage5.sub.fa6.or_carry": [ - "stage5.sub.fa6.and1", - "stage5.sub.fa6.and2" + "bit3.not_sel": [ + "$not_overflow" ], - "stage5.sub.fa7.xor1.layer1.or": [ - "stage5.shift.bit7", - "stage5.sub.notd7" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage5.sub.fa7.xor1.layer1.nand": [ - "stage5.shift.bit7", - "stage5.sub.notd7" + "bit3.and_b": [ + "$target[3]", + "$not_overflow" ], - "stage5.sub.fa7.xor1.layer2": [ - "stage5.sub.fa7.xor1.layer1.or", - "stage5.sub.fa7.xor1.layer1.nand" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage5.sub.fa7.xor2.layer1.or": [ - "stage5.sub.fa7.xor1.layer2", - "stage5.sub.fa6.or_carry" + "bit4.not_sel": [ + "$not_overflow" ], - "stage5.sub.fa7.xor2.layer1.nand": [ - "stage5.sub.fa7.xor1.layer2", - "stage5.sub.fa6.or_carry" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage5.sub.fa7.xor2.layer2": [ - "stage5.sub.fa7.xor2.layer1.or", - "stage5.sub.fa7.xor2.layer1.nand" + "bit4.and_b": [ + "$target[4]", + "$not_overflow" ], - "stage5.sub.fa7.and1": [ - "stage5.shift.bit7", - "stage5.sub.notd7" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage5.sub.fa7.and2": [ - "stage5.sub.fa7.xor1.layer2", - "stage5.sub.fa6.or_carry" + "bit5.not_sel": [ + "$not_overflow" ], - "stage5.sub.fa7.or_carry": [ - "stage5.sub.fa7.and1", - "stage5.sub.fa7.and2" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage5.cmp": [ - "stage5.sub.fa7.or_carry" + "bit5.and_b": [ + "$target[5]", + "$not_overflow" ], - "stage5.or_dividend": [ - "stage5.shift.bit7", - "$dividend[2]" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage5.mux0.not_sel": [ - "stage5.cmp" + "bit6.not_sel": [ + "$not_overflow" ], - "stage5.mux0.and0": [ - "stage5.shift.bit0", - "stage5.mux0.not_sel" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage5.mux0.and1": [ - "stage5.sub.fa0.xor2.layer2", - "stage5.cmp" + "bit6.and_b": [ + "$target[6]", + "$not_overflow" ], - "stage5.mux0.or": [ - "stage5.mux0.and0", - "stage5.mux0.and1" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage5.mux1.not_sel": [ - "stage5.cmp" + "bit7.not_sel": [ + "$not_overflow" ], - "stage5.mux1.and0": [ - "stage5.shift.bit1", - "stage5.mux1.not_sel" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage5.mux1.and1": [ - "stage5.sub.fa1.xor2.layer2", - "stage5.cmp" + "bit7.and_b": [ + "$target[7]", + "$not_overflow" ], - "stage5.mux1.or": [ - "stage5.mux1.and0", - "stage5.mux1.and1" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.jp": { + "inputs": [ + "$pc[0:7]", + "$target[0:7]", + "$positive" + ], + "type": "conditional_jump", + "internal": { + "bit0.not_sel": [ + "$positive" ], - "stage5.mux2.not_sel": [ - "stage5.cmp" + "bit0.and_a": [ + "$pc[0]", + "bit0.not_sel" ], - "stage5.mux2.and0": [ - "stage5.shift.bit2", - "stage5.mux2.not_sel" + "bit0.and_b": [ + "$target[0]", + "$positive" ], - "stage5.mux2.and1": [ - "stage5.sub.fa2.xor2.layer2", - "stage5.cmp" + "bit0.or": [ + "bit0.and_a", + "bit0.and_b" ], - "stage5.mux2.or": [ - "stage5.mux2.and0", - "stage5.mux2.and1" + "bit1.not_sel": [ + "$positive" ], - "stage5.mux3.not_sel": [ - "stage5.cmp" + "bit1.and_a": [ + "$pc[1]", + "bit1.not_sel" ], - "stage5.mux3.and0": [ - "stage5.shift.bit3", - "stage5.mux3.not_sel" + "bit1.and_b": [ + "$target[1]", + "$positive" ], - "stage5.mux3.and1": [ - "stage5.sub.fa3.xor2.layer2", - "stage5.cmp" + "bit1.or": [ + "bit1.and_a", + "bit1.and_b" ], - "stage5.mux3.or": [ - "stage5.mux3.and0", - "stage5.mux3.and1" + "bit2.not_sel": [ + "$positive" ], - "stage5.mux4.not_sel": [ - "stage5.cmp" + "bit2.and_a": [ + "$pc[2]", + "bit2.not_sel" ], - "stage5.mux4.and0": [ - "stage5.shift.bit4", - "stage5.mux4.not_sel" + "bit2.and_b": [ + "$target[2]", + "$positive" ], - "stage5.mux4.and1": [ - "stage5.sub.fa4.xor2.layer2", - "stage5.cmp" + "bit2.or": [ + "bit2.and_a", + "bit2.and_b" ], - "stage5.mux4.or": [ - "stage5.mux4.and0", - "stage5.mux4.and1" + "bit3.not_sel": [ + "$positive" ], - "stage5.mux5.not_sel": [ - "stage5.cmp" + "bit3.and_a": [ + "$pc[3]", + "bit3.not_sel" ], - "stage5.mux5.and0": [ - "stage5.shift.bit5", - "stage5.mux5.not_sel" + "bit3.and_b": [ + "$target[3]", + "$positive" ], - "stage5.mux5.and1": [ - "stage5.sub.fa5.xor2.layer2", - "stage5.cmp" + "bit3.or": [ + "bit3.and_a", + "bit3.and_b" ], - "stage5.mux5.or": [ - "stage5.mux5.and0", - "stage5.mux5.and1" + "bit4.not_sel": [ + "$positive" ], - "stage5.mux6.not_sel": [ - "stage5.cmp" + "bit4.and_a": [ + "$pc[4]", + "bit4.not_sel" ], - "stage5.mux6.and0": [ - "stage5.shift.bit6", - "stage5.mux6.not_sel" + "bit4.and_b": [ + "$target[4]", + "$positive" ], - "stage5.mux6.and1": [ - "stage5.sub.fa6.xor2.layer2", - "stage5.cmp" + "bit4.or": [ + "bit4.and_a", + "bit4.and_b" ], - "stage5.mux6.or": [ - "stage5.mux6.and0", - "stage5.mux6.and1" + "bit5.not_sel": [ + "$positive" ], - "stage5.mux7.not_sel": [ - "stage5.cmp" + "bit5.and_a": [ + "$pc[5]", + "bit5.not_sel" ], - "stage5.mux7.and0": [ - "stage5.shift.bit7", - "stage5.mux7.not_sel" + "bit5.and_b": [ + "$target[5]", + "$positive" ], - "stage5.mux7.and1": [ - "stage5.sub.fa7.xor2.layer2", - "stage5.cmp" + "bit5.or": [ + "bit5.and_a", + "bit5.and_b" ], - "stage5.mux7.or": [ - "stage5.mux7.and0", - "stage5.mux7.and1" + "bit6.not_sel": [ + "$positive" ], - "stage6.shift.bit0": [ - "$dividend[1]" + "bit6.and_a": [ + "$pc[6]", + "bit6.not_sel" ], - "stage6.shift.bit1": [ - "stage5.mux0.or" + "bit6.and_b": [ + "$target[6]", + "$positive" ], - "stage6.shift.bit2": [ - "stage5.mux1.or" + "bit6.or": [ + "bit6.and_a", + "bit6.and_b" ], - "stage6.shift.bit3": [ - "stage5.mux2.or" + "bit7.not_sel": [ + "$positive" ], - "stage6.shift.bit4": [ - "stage5.mux3.or" + "bit7.and_a": [ + "$pc[7]", + "bit7.not_sel" ], - "stage6.shift.bit5": [ - "stage5.mux4.or" + "bit7.and_b": [ + "$target[7]", + "$positive" ], - "stage6.shift.bit6": [ - "stage5.mux5.or" + "bit7.or": [ + "bit7.and_a", + "bit7.and_b" + ] + } + }, + "control.call": { + "inputs": [ + "$target[0:7]" + ], + "type": "call", + "internal": { + "jump": [ + "$target[0:7]" ], - "stage6.shift.bit7": [ - "stage5.mux6.or" + "push": [ + "$pc[0:7]" + ] + } + }, + "control.ret": { + "inputs": [ + "$stack_top[0:7]" + ], + "type": "return", + "internal": { + "jump": [ + "$stack_top[0:7]" ], - "stage6.sub.notd0": [ - "$divisor[0]" + "pop": [ + "#1" + ] + } + }, + "control.push": { + "inputs": [ + "$value[0:7]", + "$sp[0:7]" + ], + "type": "push", + "internal": { + "sp_dec": [ + "$sp[0:7]" ], - "stage6.sub.notd1": [ - "$divisor[1]" + "store": [ + "$value[0:7]" + ] + } + }, + "control.pop": { + "inputs": [ + "$sp[0:7]" + ], + "type": "pop", + "internal": { + "load": [ + "$sp[0:7]" ], - "stage6.sub.notd2": [ - "$divisor[2]" + "sp_inc": [ + "$sp[0:7]" + ] + } + }, + "control.sp_dec": { + "inputs": [ + "$sp[0:7]" + ], + "type": "sp_dec", + "internal": { + "uses": [ + "$sp[0:7]" + ] + } + }, + "control.sp_inc": { + "inputs": [ + "$sp[0:7]" + ], + "type": "sp_inc", + "internal": { + "uses": [ + "$sp[0:7]" + ] + } + }, + "control.pc_inc": { + "inputs": [ + "$pc[0:7]" + ], + "type": "pc_increment", + "internal": { + "sum0": [ + "$pc[0]" ], - "stage6.sub.notd3": [ - "$divisor[3]" + "carry0": [ + "$pc[0]" ], - "stage6.sub.notd4": [ - "$divisor[4]" + "overflow": [ + "$pc[7]" ], - "stage6.sub.notd5": [ - "$divisor[5]" + "xor1.layer1.nand": [ + "$pc[1]", + "carry0" ], - "stage6.sub.notd6": [ - "$divisor[6]" + "xor1.layer1.or": [ + "$pc[1]", + "carry0" ], - "stage6.sub.notd7": [ - "$divisor[7]" + "xor1.layer2": [ + "xor1.layer1.nand", + "xor1.layer1.or" ], - "stage6.sub.fa0.xor1.layer1.or": [ - "stage6.shift.bit0", - "stage6.sub.notd0" + "and1": [ + "$pc[1]", + "carry0" ], - "stage6.sub.fa0.xor1.layer1.nand": [ - "stage6.shift.bit0", - "stage6.sub.notd0" + "xor2.layer1.nand": [ + "$pc[2]", + "carry1" ], - "stage6.sub.fa0.xor1.layer2": [ - "stage6.sub.fa0.xor1.layer1.or", - "stage6.sub.fa0.xor1.layer1.nand" + "xor2.layer1.or": [ + "$pc[2]", + "carry1" ], - "stage6.sub.fa0.xor2.layer1.or": [ - "stage6.sub.fa0.xor1.layer2", - "#1" + "xor2.layer2": [ + "xor2.layer1.nand", + "xor2.layer1.or" ], - "stage6.sub.fa0.xor2.layer1.nand": [ - "stage6.sub.fa0.xor1.layer2", - "#1" + "and2": [ + "$pc[2]", + "carry1" ], - "stage6.sub.fa0.xor2.layer2": [ - "stage6.sub.fa0.xor2.layer1.or", - "stage6.sub.fa0.xor2.layer1.nand" + "xor3.layer1.nand": [ + "$pc[3]", + "carry2" ], - "stage6.sub.fa0.and1": [ - "stage6.shift.bit0", - "stage6.sub.notd0" + "xor3.layer1.or": [ + "$pc[3]", + "carry2" ], - "stage6.sub.fa0.and2": [ - "stage6.sub.fa0.xor1.layer2", - "#1" + "xor3.layer2": [ + "xor3.layer1.nand", + "xor3.layer1.or" ], - "stage6.sub.fa0.or_carry": [ - "stage6.sub.fa0.and1", - "stage6.sub.fa0.and2" + "and3": [ + "$pc[3]", + "carry2" ], - "stage6.sub.fa1.xor1.layer1.or": [ - "stage6.shift.bit1", - "stage6.sub.notd1" + "xor4.layer1.nand": [ + "$pc[4]", + "carry3" ], - "stage6.sub.fa1.xor1.layer1.nand": [ - "stage6.shift.bit1", - "stage6.sub.notd1" + "xor4.layer1.or": [ + "$pc[4]", + "carry3" ], - "stage6.sub.fa1.xor1.layer2": [ - "stage6.sub.fa1.xor1.layer1.or", - "stage6.sub.fa1.xor1.layer1.nand" + "xor4.layer2": [ + "xor4.layer1.nand", + "xor4.layer1.or" ], - "stage6.sub.fa1.xor2.layer1.or": [ - "stage6.sub.fa1.xor1.layer2", - "stage6.sub.fa0.or_carry" + "and4": [ + "$pc[4]", + "carry3" ], - "stage6.sub.fa1.xor2.layer1.nand": [ - "stage6.sub.fa1.xor1.layer2", - "stage6.sub.fa0.or_carry" + "xor5.layer1.nand": [ + "$pc[5]", + "carry4" ], - "stage6.sub.fa1.xor2.layer2": [ - "stage6.sub.fa1.xor2.layer1.or", - "stage6.sub.fa1.xor2.layer1.nand" + "xor5.layer1.or": [ + "$pc[5]", + "carry4" ], - "stage6.sub.fa1.and1": [ - "stage6.shift.bit1", - "stage6.sub.notd1" + "xor5.layer2": [ + "xor5.layer1.nand", + "xor5.layer1.or" ], - "stage6.sub.fa1.and2": [ - "stage6.sub.fa1.xor1.layer2", - "stage6.sub.fa0.or_carry" + "and5": [ + "$pc[5]", + "carry4" ], - "stage6.sub.fa1.or_carry": [ - "stage6.sub.fa1.and1", - "stage6.sub.fa1.and2" + "xor6.layer1.nand": [ + "$pc[6]", + "carry5" ], - "stage6.sub.fa2.xor1.layer1.or": [ - "stage6.shift.bit2", - "stage6.sub.notd2" + "xor6.layer1.or": [ + "$pc[6]", + "carry5" ], - "stage6.sub.fa2.xor1.layer1.nand": [ - "stage6.shift.bit2", - "stage6.sub.notd2" + "xor6.layer2": [ + "xor6.layer1.nand", + "xor6.layer1.or" ], - "stage6.sub.fa2.xor1.layer2": [ - "stage6.sub.fa2.xor1.layer1.or", - "stage6.sub.fa2.xor1.layer1.nand" + "and6": [ + "$pc[6]", + "carry5" ], - "stage6.sub.fa2.xor2.layer1.or": [ - "stage6.sub.fa2.xor1.layer2", - "stage6.sub.fa1.or_carry" + "xor7.layer1.nand": [ + "$pc[7]", + "carry6" ], - "stage6.sub.fa2.xor2.layer1.nand": [ - "stage6.sub.fa2.xor1.layer2", - "stage6.sub.fa1.or_carry" + "xor7.layer1.or": [ + "$pc[7]", + "carry6" ], - "stage6.sub.fa2.xor2.layer2": [ - "stage6.sub.fa2.xor2.layer1.or", - "stage6.sub.fa2.xor2.layer1.nand" + "xor7.layer2": [ + "xor7.layer1.nand", + "xor7.layer1.or" ], - "stage6.sub.fa2.and1": [ - "stage6.shift.bit2", - "stage6.sub.notd2" + "and7": [ + "$pc[7]", + "carry6" + ] + } + }, + "control.pc_load": { + "inputs": [ + "$pc_inc[0:7]", + "$target[0:7]", + "$jump" + ], + "type": "pc_load", + "internal": { + "not_jump": [ + "$jump" ], - "stage6.sub.fa2.and2": [ - "stage6.sub.fa2.xor1.layer2", - "stage6.sub.fa1.or_carry" + "bit0.and_pc": [ + "$pc_inc[0]", + "not_jump" ], - "stage6.sub.fa2.or_carry": [ - "stage6.sub.fa2.and1", - "stage6.sub.fa2.and2" + "bit0.and_jump": [ + "$target[0]", + "$jump" ], - "stage6.sub.fa3.xor1.layer1.or": [ - "stage6.shift.bit3", - "stage6.sub.notd3" + "bit0.or": [ + "bit0.and_pc", + "bit0.and_jump" ], - "stage6.sub.fa3.xor1.layer1.nand": [ - "stage6.shift.bit3", - "stage6.sub.notd3" + "bit1.and_pc": [ + "$pc_inc[1]", + "not_jump" ], - "stage6.sub.fa3.xor1.layer2": [ - "stage6.sub.fa3.xor1.layer1.or", - "stage6.sub.fa3.xor1.layer1.nand" + "bit1.and_jump": [ + "$target[1]", + "$jump" ], - "stage6.sub.fa3.xor2.layer1.or": [ - "stage6.sub.fa3.xor1.layer2", - "stage6.sub.fa2.or_carry" + "bit1.or": [ + "bit1.and_pc", + "bit1.and_jump" ], - "stage6.sub.fa3.xor2.layer1.nand": [ - "stage6.sub.fa3.xor1.layer2", - "stage6.sub.fa2.or_carry" + "bit2.and_pc": [ + "$pc_inc[2]", + "not_jump" ], - "stage6.sub.fa3.xor2.layer2": [ - "stage6.sub.fa3.xor2.layer1.or", - "stage6.sub.fa3.xor2.layer1.nand" + "bit2.and_jump": [ + "$target[2]", + "$jump" ], - "stage6.sub.fa3.and1": [ - "stage6.shift.bit3", - "stage6.sub.notd3" + "bit2.or": [ + "bit2.and_pc", + "bit2.and_jump" ], - "stage6.sub.fa3.and2": [ - "stage6.sub.fa3.xor1.layer2", - "stage6.sub.fa2.or_carry" + "bit3.and_pc": [ + "$pc_inc[3]", + "not_jump" ], - "stage6.sub.fa3.or_carry": [ - "stage6.sub.fa3.and1", - "stage6.sub.fa3.and2" + "bit3.and_jump": [ + "$target[3]", + "$jump" ], - "stage6.sub.fa4.xor1.layer1.or": [ - "stage6.shift.bit4", - "stage6.sub.notd4" + "bit3.or": [ + "bit3.and_pc", + "bit3.and_jump" ], - "stage6.sub.fa4.xor1.layer1.nand": [ - "stage6.shift.bit4", - "stage6.sub.notd4" + "bit4.and_pc": [ + "$pc_inc[4]", + "not_jump" ], - "stage6.sub.fa4.xor1.layer2": [ - "stage6.sub.fa4.xor1.layer1.or", - "stage6.sub.fa4.xor1.layer1.nand" + "bit4.and_jump": [ + "$target[4]", + "$jump" ], - "stage6.sub.fa4.xor2.layer1.or": [ - "stage6.sub.fa4.xor1.layer2", - "stage6.sub.fa3.or_carry" + "bit4.or": [ + "bit4.and_pc", + "bit4.and_jump" ], - "stage6.sub.fa4.xor2.layer1.nand": [ - "stage6.sub.fa4.xor1.layer2", - "stage6.sub.fa3.or_carry" + "bit5.and_pc": [ + "$pc_inc[5]", + "not_jump" ], - "stage6.sub.fa4.xor2.layer2": [ - "stage6.sub.fa4.xor2.layer1.or", - "stage6.sub.fa4.xor2.layer1.nand" + "bit5.and_jump": [ + "$target[5]", + "$jump" ], - "stage6.sub.fa4.and1": [ - "stage6.shift.bit4", - "stage6.sub.notd4" + "bit5.or": [ + "bit5.and_pc", + "bit5.and_jump" ], - "stage6.sub.fa4.and2": [ - "stage6.sub.fa4.xor1.layer2", - "stage6.sub.fa3.or_carry" + "bit6.and_pc": [ + "$pc_inc[6]", + "not_jump" ], - "stage6.sub.fa4.or_carry": [ - "stage6.sub.fa4.and1", - "stage6.sub.fa4.and2" + "bit6.and_jump": [ + "$target[6]", + "$jump" ], - "stage6.sub.fa5.xor1.layer1.or": [ - "stage6.shift.bit5", - "stage6.sub.notd5" + "bit6.or": [ + "bit6.and_pc", + "bit6.and_jump" ], - "stage6.sub.fa5.xor1.layer1.nand": [ - "stage6.shift.bit5", - "stage6.sub.notd5" + "bit7.and_pc": [ + "$pc_inc[7]", + "not_jump" ], - "stage6.sub.fa5.xor1.layer2": [ - "stage6.sub.fa5.xor1.layer1.or", - "stage6.sub.fa5.xor1.layer1.nand" + "bit7.and_jump": [ + "$target[7]", + "$jump" ], - "stage6.sub.fa5.xor2.layer1.or": [ - "stage6.sub.fa5.xor1.layer2", - "stage6.sub.fa4.or_carry" + "bit7.or": [ + "bit7.and_pc", + "bit7.and_jump" + ] + } + }, + "control.halt": { + "inputs": [ + "$halt", + "$flag_c", + "$flag_n", + "$flag_v", + "$flag_z", + "$pc[0:7]", + "$value[0:7]" + ], + "type": "halt", + "internal": { + "signal": [ + "$halt" ], - "stage6.sub.fa5.xor2.layer1.nand": [ - "stage6.sub.fa5.xor1.layer2", - "stage6.sub.fa4.or_carry" + "flag_c": [ + "$flag_c" ], - "stage6.sub.fa5.xor2.layer2": [ - "stage6.sub.fa5.xor2.layer1.or", - "stage6.sub.fa5.xor2.layer1.nand" + "flag_n": [ + "$flag_n" ], - "stage6.sub.fa5.and1": [ - "stage6.shift.bit5", - "stage6.sub.notd5" + "flag_v": [ + "$flag_v" ], - "stage6.sub.fa5.and2": [ - "stage6.sub.fa5.xor1.layer2", - "stage6.sub.fa4.or_carry" + "flag_z": [ + "$flag_z" ], - "stage6.sub.fa5.or_carry": [ - "stage6.sub.fa5.and1", - "stage6.sub.fa5.and2" + "pc.bit0": [ + "$pc[0]" ], - "stage6.sub.fa6.xor1.layer1.or": [ - "stage6.shift.bit6", - "stage6.sub.notd6" + "value.bit0": [ + "$value[0]" ], - "stage6.sub.fa6.xor1.layer1.nand": [ - "stage6.shift.bit6", - "stage6.sub.notd6" + "pc.bit1": [ + "$pc[1]" ], - "stage6.sub.fa6.xor1.layer2": [ - "stage6.sub.fa6.xor1.layer1.or", - "stage6.sub.fa6.xor1.layer1.nand" + "value.bit1": [ + "$value[1]" ], - "stage6.sub.fa6.xor2.layer1.or": [ - "stage6.sub.fa6.xor1.layer2", - "stage6.sub.fa5.or_carry" + "pc.bit2": [ + "$pc[2]" ], - "stage6.sub.fa6.xor2.layer1.nand": [ - "stage6.sub.fa6.xor1.layer2", - "stage6.sub.fa5.or_carry" + "value.bit2": [ + "$value[2]" ], - "stage6.sub.fa6.xor2.layer2": [ - "stage6.sub.fa6.xor2.layer1.or", - "stage6.sub.fa6.xor2.layer1.nand" + "pc.bit3": [ + "$pc[3]" ], - "stage6.sub.fa6.and1": [ - "stage6.shift.bit6", - "stage6.sub.notd6" + "value.bit3": [ + "$value[3]" ], - "stage6.sub.fa6.and2": [ - "stage6.sub.fa6.xor1.layer2", - "stage6.sub.fa5.or_carry" + "pc.bit4": [ + "$pc[4]" ], - "stage6.sub.fa6.or_carry": [ - "stage6.sub.fa6.and1", - "stage6.sub.fa6.and2" + "value.bit4": [ + "$value[4]" ], - "stage6.sub.fa7.xor1.layer1.or": [ - "stage6.shift.bit7", - "stage6.sub.notd7" + "pc.bit5": [ + "$pc[5]" ], - "stage6.sub.fa7.xor1.layer1.nand": [ - "stage6.shift.bit7", - "stage6.sub.notd7" + "value.bit5": [ + "$value[5]" ], - "stage6.sub.fa7.xor1.layer2": [ - "stage6.sub.fa7.xor1.layer1.or", - "stage6.sub.fa7.xor1.layer1.nand" + "pc.bit6": [ + "$pc[6]" ], - "stage6.sub.fa7.xor2.layer1.or": [ - "stage6.sub.fa7.xor1.layer2", - "stage6.sub.fa6.or_carry" + "value.bit6": [ + "$value[6]" ], - "stage6.sub.fa7.xor2.layer1.nand": [ - "stage6.sub.fa7.xor1.layer2", - "stage6.sub.fa6.or_carry" + "pc.bit7": [ + "$pc[7]" ], - "stage6.sub.fa7.xor2.layer2": [ - "stage6.sub.fa7.xor2.layer1.or", - "stage6.sub.fa7.xor2.layer1.nand" + "value.bit7": [ + "$value[7]" + ] + } + }, + "control.nop": { + "inputs": [ + "$x[0:7]", + "$flag_c", + "$flag_n", + "$flag_v", + "$flag_z" + ], + "type": "nop", + "internal": { + "output": [ + "#1" ], - "stage6.sub.fa7.and1": [ - "stage6.shift.bit7", - "stage6.sub.notd7" + "bit0": [ + "$x[0]" ], - "stage6.sub.fa7.and2": [ - "stage6.sub.fa7.xor1.layer2", - "stage6.sub.fa6.or_carry" + "bit1": [ + "$x[1]" ], - "stage6.sub.fa7.or_carry": [ - "stage6.sub.fa7.and1", - "stage6.sub.fa7.and2" + "bit2": [ + "$x[2]" ], - "stage6.cmp": [ - "stage6.sub.fa7.or_carry" + "bit3": [ + "$x[3]" ], - "stage6.or_dividend": [ - "stage6.shift.bit7", - "$dividend[1]" + "bit4": [ + "$x[4]" ], - "stage6.mux0.not_sel": [ - "stage6.cmp" + "bit5": [ + "$x[5]" ], - "stage6.mux0.and0": [ - "stage6.shift.bit0", - "stage6.mux0.not_sel" + "bit6": [ + "$x[6]" ], - "stage6.mux0.and1": [ - "stage6.sub.fa0.xor2.layer2", - "stage6.cmp" + "bit7": [ + "$x[7]" ], - "stage6.mux0.or": [ - "stage6.mux0.and0", - "stage6.mux0.and1" + "flag_c": [ + "$flag_c" ], - "stage6.mux1.not_sel": [ - "stage6.cmp" + "flag_n": [ + "$flag_n" ], - "stage6.mux1.and0": [ - "stage6.shift.bit1", - "stage6.mux1.not_sel" + "flag_v": [ + "$flag_v" ], - "stage6.mux1.and1": [ - "stage6.sub.fa1.xor2.layer2", - "stage6.cmp" + "flag_z": [ + "$flag_z" + ] + } + }, + "control.fetch.ir": { + "inputs": [ + "$data[0:15]" + ], + "type": "buffer", + "internal": { + "bit0": [ + "$data[0]" ], - "stage6.mux1.or": [ - "stage6.mux1.and0", - "stage6.mux1.and1" + "bit1": [ + "$data[1]" ], - "stage6.mux2.not_sel": [ - "stage6.cmp" + "bit2": [ + "$data[2]" ], - "stage6.mux2.and0": [ - "stage6.shift.bit2", - "stage6.mux2.not_sel" + "bit3": [ + "$data[3]" ], - "stage6.mux2.and1": [ - "stage6.sub.fa2.xor2.layer2", - "stage6.cmp" + "bit4": [ + "$data[4]" ], - "stage6.mux2.or": [ - "stage6.mux2.and0", - "stage6.mux2.and1" + "bit5": [ + "$data[5]" ], - "stage6.mux3.not_sel": [ - "stage6.cmp" + "bit6": [ + "$data[6]" ], - "stage6.mux3.and0": [ - "stage6.shift.bit3", - "stage6.mux3.not_sel" + "bit7": [ + "$data[7]" ], - "stage6.mux3.and1": [ - "stage6.sub.fa3.xor2.layer2", - "stage6.cmp" + "bit8": [ + "$data[8]" ], - "stage6.mux3.or": [ - "stage6.mux3.and0", - "stage6.mux3.and1" + "bit9": [ + "$data[9]" ], - "stage6.mux4.not_sel": [ - "stage6.cmp" + "bit10": [ + "$data[10]" ], - "stage6.mux4.and0": [ - "stage6.shift.bit4", - "stage6.mux4.not_sel" + "bit11": [ + "$data[11]" ], - "stage6.mux4.and1": [ - "stage6.sub.fa4.xor2.layer2", - "stage6.cmp" + "bit12": [ + "$data[12]" ], - "stage6.mux4.or": [ - "stage6.mux4.and0", - "stage6.mux4.and1" + "bit13": [ + "$data[13]" ], - "stage6.mux5.not_sel": [ - "stage6.cmp" + "bit14": [ + "$data[14]" ], - "stage6.mux5.and0": [ - "stage6.shift.bit5", - "stage6.mux5.not_sel" + "bit15": [ + "$data[15]" + ] + } + }, + "control.load": { + "inputs": [ + "$data[0:7]" + ], + "type": "buffer", + "internal": { + "bit0": [ + "$data[0]" ], - "stage6.mux5.and1": [ - "stage6.sub.fa5.xor2.layer2", - "stage6.cmp" + "bit1": [ + "$data[1]" ], - "stage6.mux5.or": [ - "stage6.mux5.and0", - "stage6.mux5.and1" + "bit2": [ + "$data[2]" ], - "stage6.mux6.not_sel": [ - "stage6.cmp" + "bit3": [ + "$data[3]" ], - "stage6.mux6.and0": [ - "stage6.shift.bit6", - "stage6.mux6.not_sel" + "bit4": [ + "$data[4]" ], - "stage6.mux6.and1": [ - "stage6.sub.fa6.xor2.layer2", - "stage6.cmp" + "bit5": [ + "$data[5]" ], - "stage6.mux6.or": [ - "stage6.mux6.and0", - "stage6.mux6.and1" + "bit6": [ + "$data[6]" ], - "stage6.mux7.not_sel": [ - "stage6.cmp" + "bit7": [ + "$data[7]" + ] + } + }, + "control.store": { + "inputs": [ + "$data[0:7]" + ], + "type": "buffer", + "internal": { + "bit0": [ + "$data[0]" ], - "stage6.mux7.and0": [ - "stage6.shift.bit7", - "stage6.mux7.not_sel" + "bit1": [ + "$data[1]" ], - "stage6.mux7.and1": [ - "stage6.sub.fa7.xor2.layer2", - "stage6.cmp" + "bit2": [ + "$data[2]" ], - "stage6.mux7.or": [ - "stage6.mux7.and0", - "stage6.mux7.and1" + "bit3": [ + "$data[3]" ], - "stage7.shift.bit0": [ - "$dividend[0]" + "bit4": [ + "$data[4]" ], - "stage7.shift.bit1": [ - "stage6.mux0.or" + "bit5": [ + "$data[5]" ], - "stage7.shift.bit2": [ - "stage6.mux1.or" + "bit6": [ + "$data[6]" ], - "stage7.shift.bit3": [ - "stage6.mux2.or" + "bit7": [ + "$data[7]" + ] + } + }, + "control.mem_addr": { + "inputs": [ + "$addr[0:15]" + ], + "type": "buffer", + "internal": { + "bit0": [ + "$addr[0]" ], - "stage7.shift.bit4": [ - "stage6.mux3.or" + "bit1": [ + "$addr[1]" ], - "stage7.shift.bit5": [ - "stage6.mux4.or" + "bit2": [ + "$addr[2]" ], - "stage7.shift.bit6": [ - "stage6.mux5.or" + "bit3": [ + "$addr[3]" ], - "stage7.shift.bit7": [ - "stage6.mux6.or" + "bit4": [ + "$addr[4]" ], - "stage7.sub.notd0": [ - "$divisor[0]" + "bit5": [ + "$addr[5]" ], - "stage7.sub.notd1": [ - "$divisor[1]" + "bit6": [ + "$addr[6]" ], - "stage7.sub.notd2": [ - "$divisor[2]" + "bit7": [ + "$addr[7]" ], - "stage7.sub.notd3": [ - "$divisor[3]" + "bit8": [ + "$addr[8]" ], - "stage7.sub.notd4": [ - "$divisor[4]" + "bit9": [ + "$addr[9]" ], - "stage7.sub.notd5": [ - "$divisor[5]" + "bit10": [ + "$addr[10]" ], - "stage7.sub.notd6": [ - "$divisor[6]" + "bit11": [ + "$addr[11]" ], - "stage7.sub.notd7": [ - "$divisor[7]" + "bit12": [ + "$addr[12]" ], - "stage7.sub.fa0.xor1.layer1.or": [ - "stage7.shift.bit0", - "stage7.sub.notd0" + "bit13": [ + "$addr[13]" ], - "stage7.sub.fa0.xor1.layer1.nand": [ - "stage7.shift.bit0", - "stage7.sub.notd0" + "bit14": [ + "$addr[14]" ], - "stage7.sub.fa0.xor1.layer2": [ - "stage7.sub.fa0.xor1.layer1.or", - "stage7.sub.fa0.xor1.layer1.nand" + "bit15": [ + "$addr[15]" + ] + } + }, + "memory.addr_decode": { + "inputs": [ + "$addr[0:15]" + ], + "type": "decoder_packed", + "internal": { + "weight": [ + "memory.addr_decode.weight" ], - "stage7.sub.fa0.xor2.layer1.or": [ - "stage7.sub.fa0.xor1.layer2", - "#1" + "bias": [ + "memory.addr_decode.bias" + ] + } + }, + "memory.read": { + "inputs": [ + "$mem[0:65535][0:7]", + "$sel[0:65535]" + ], + "type": "read_mux_packed", + "internal": { + "and": [ + "memory.read.and.weight", + "memory.read.and.bias" ], - "stage7.sub.fa0.xor2.layer1.nand": [ - "stage7.sub.fa0.xor1.layer2", - "#1" + "or": [ + "memory.read.or.weight", + "memory.read.or.bias" + ] + }, + "outputs": { + "bit0": "bit0", + "bit1": "bit1", + "bit2": "bit2", + "bit3": "bit3", + "bit4": "bit4", + "bit5": "bit5", + "bit6": "bit6", + "bit7": "bit7" + } + }, + "memory.write": { + "inputs": [ + "$mem[0:65535][0:7]", + "$write_data[0:7]", + "$sel[0:65535]", + "$we" + ], + "type": "write_mux_packed", + "internal": { + "sel": [ + "memory.write.sel.weight", + "memory.write.sel.bias" ], - "stage7.sub.fa0.xor2.layer2": [ - "stage7.sub.fa0.xor2.layer1.or", - "stage7.sub.fa0.xor2.layer1.nand" + "nsel": [ + "memory.write.nsel.weight", + "memory.write.nsel.bias" ], - "stage7.sub.fa0.and1": [ - "stage7.shift.bit0", - "stage7.sub.notd0" + "and_old": [ + "memory.write.and_old.weight", + "memory.write.and_old.bias" ], - "stage7.sub.fa0.and2": [ - "stage7.sub.fa0.xor1.layer2", - "#1" + "and_new": [ + "memory.write.and_new.weight", + "memory.write.and_new.bias" ], - "stage7.sub.fa0.or_carry": [ - "stage7.sub.fa0.and1", - "stage7.sub.fa0.and2" + "or": [ + "memory.write.or.weight", + "memory.write.or.bias" + ] + } + }, + "error_detection.evenparitychecker": { + "inputs": [ + "$x[0:7]" + ], + "type": "parity", + "internal": { + "": [ + "$x[0:7]" + ] + } + }, + "error_detection.oddparitychecker": { + "inputs": [ + "$x[0:7]" + ], + "type": "parity", + "internal": { + "parity": [ + "$x[0:7]" ], - "stage7.sub.fa1.xor1.layer1.or": [ - "stage7.shift.bit1", - "stage7.sub.notd1" + "not": [ + "parity" + ] + } + }, + "error_detection.checksum8bit": { + "inputs": [ + "$x[0:7]" + ], + "type": "checksum", + "internal": { + "sum": [ + "$x[0:7]" + ] + } + }, + "error_detection.crc4": { + "inputs": [ + "$data[0:7]" + ], + "type": "crc", + "internal": { + "divisor": [ + "#1", + "#0", + "#0", + "#1", + "#1" + ] + } + }, + "error_detection.crc8": { + "inputs": [ + "$data[0:7]" + ], + "type": "crc", + "internal": { + "divisor": [ + "#1", + "#0", + "#0", + "#0", + "#0", + "#0", + "#1", + "#1", + "#1" + ] + } + }, + "error_detection.hammingencode4bit": { + "inputs": [ + "$d[0:3]" + ], + "type": "hamming_encode", + "internal": { + "p0": [ + "$d[0:3]" ], - "stage7.sub.fa1.xor1.layer1.nand": [ - "stage7.shift.bit1", - "stage7.sub.notd1" + "p1": [ + "$d[0:3]" ], - "stage7.sub.fa1.xor1.layer2": [ - "stage7.sub.fa1.xor1.layer1.or", - "stage7.sub.fa1.xor1.layer1.nand" + "p2": [ + "$d[0:3]" ], - "stage7.sub.fa1.xor2.layer1.or": [ - "stage7.sub.fa1.xor1.layer2", - "stage7.sub.fa0.or_carry" + "p3": [ + "$d[0:3]" + ] + } + }, + "error_detection.hammingdecode7bit": { + "inputs": [ + "$c[0:6]" + ], + "type": "hamming_decode", + "internal": { + "s1": [ + "$c[0:6]" ], - "stage7.sub.fa1.xor2.layer1.nand": [ - "stage7.sub.fa1.xor1.layer2", - "stage7.sub.fa0.or_carry" + "s2": [ + "$c[0:6]" ], - "stage7.sub.fa1.xor2.layer2": [ - "stage7.sub.fa1.xor2.layer1.or", - "stage7.sub.fa1.xor2.layer1.nand" + "s3": [ + "$c[0:6]" + ] + } + }, + "error_detection.hammingsyndrome": { + "inputs": [ + "$c[0:6]" + ], + "type": "hamming_syndrome", + "internal": { + "s1": [ + "$c[0:6]" ], - "stage7.sub.fa1.and1": [ - "stage7.shift.bit1", - "stage7.sub.notd1" + "s2": [ + "$c[0:6]" ], - "stage7.sub.fa1.and2": [ - "stage7.sub.fa1.xor1.layer2", - "stage7.sub.fa0.or_carry" + "s3": [ + "$c[0:6]" + ] + } + }, + "error_detection.longitudinalparity": { + "inputs": [ + "$data" + ], + "type": "longitudinal_parity", + "internal": { + "col_parity": [ + "$data" ], - "stage7.sub.fa1.or_carry": [ - "stage7.sub.fa1.and1", - "stage7.sub.fa1.and2" + "row_parity": [ + "$data" + ] + } + }, + "error_detection.paritychecker8bit": { + "inputs": [ + "$x[0:7]" + ], + "type": "parity_tree", + "internal": { + "stage1.xor0.layer1.nand": [ + "$stage1_in[0]", + "$stage1_in[1]" ], - "stage7.sub.fa2.xor1.layer1.or": [ - "stage7.shift.bit2", - "stage7.sub.notd2" + "stage1.xor0.layer1.or": [ + "$stage1_in[0]", + "$stage1_in[1]" ], - "stage7.sub.fa2.xor1.layer1.nand": [ - "stage7.shift.bit2", - "stage7.sub.notd2" + "stage1.xor0.layer2": [ + "stage1.xor0.layer1.nand", + "stage1.xor0.layer1.or" ], - "stage7.sub.fa2.xor1.layer2": [ - "stage7.sub.fa2.xor1.layer1.or", - "stage7.sub.fa2.xor1.layer1.nand" + "stage1.xor1.layer1.nand": [ + "$stage1_in[2]", + "$stage1_in[3]" ], - "stage7.sub.fa2.xor2.layer1.or": [ - "stage7.sub.fa2.xor1.layer2", - "stage7.sub.fa1.or_carry" + "stage1.xor1.layer1.or": [ + "$stage1_in[2]", + "$stage1_in[3]" ], - "stage7.sub.fa2.xor2.layer1.nand": [ - "stage7.sub.fa2.xor1.layer2", - "stage7.sub.fa1.or_carry" + "stage1.xor1.layer2": [ + "stage1.xor1.layer1.nand", + "stage1.xor1.layer1.or" ], - "stage7.sub.fa2.xor2.layer2": [ - "stage7.sub.fa2.xor2.layer1.or", - "stage7.sub.fa2.xor2.layer1.nand" + "stage1.xor2.layer1.nand": [ + "$stage1_in[4]", + "$stage1_in[5]" ], - "stage7.sub.fa2.and1": [ - "stage7.shift.bit2", - "stage7.sub.notd2" + "stage1.xor2.layer1.or": [ + "$stage1_in[4]", + "$stage1_in[5]" ], - "stage7.sub.fa2.and2": [ - "stage7.sub.fa2.xor1.layer2", - "stage7.sub.fa1.or_carry" + "stage1.xor2.layer2": [ + "stage1.xor2.layer1.nand", + "stage1.xor2.layer1.or" ], - "stage7.sub.fa2.or_carry": [ - "stage7.sub.fa2.and1", - "stage7.sub.fa2.and2" + "stage1.xor3.layer1.nand": [ + "$stage1_in[6]", + "$stage1_in[7]" ], - "stage7.sub.fa3.xor1.layer1.or": [ - "stage7.shift.bit3", - "stage7.sub.notd3" + "stage1.xor3.layer1.or": [ + "$stage1_in[6]", + "$stage1_in[7]" ], - "stage7.sub.fa3.xor1.layer1.nand": [ - "stage7.shift.bit3", - "stage7.sub.notd3" + "stage1.xor3.layer2": [ + "stage1.xor3.layer1.nand", + "stage1.xor3.layer1.or" ], - "stage7.sub.fa3.xor1.layer2": [ - "stage7.sub.fa3.xor1.layer1.or", - "stage7.sub.fa3.xor1.layer1.nand" + "stage2.xor0.layer1.nand": [ + "$stage2_in[0]", + "$stage2_in[1]" ], - "stage7.sub.fa3.xor2.layer1.or": [ - "stage7.sub.fa3.xor1.layer2", - "stage7.sub.fa2.or_carry" + "stage2.xor0.layer1.or": [ + "$stage2_in[0]", + "$stage2_in[1]" ], - "stage7.sub.fa3.xor2.layer1.nand": [ - "stage7.sub.fa3.xor1.layer2", - "stage7.sub.fa2.or_carry" + "stage2.xor0.layer2": [ + "stage2.xor0.layer1.nand", + "stage2.xor0.layer1.or" ], - "stage7.sub.fa3.xor2.layer2": [ - "stage7.sub.fa3.xor2.layer1.or", - "stage7.sub.fa3.xor2.layer1.nand" + "stage2.xor1.layer1.nand": [ + "$stage2_in[2]", + "$stage2_in[3]" ], - "stage7.sub.fa3.and1": [ - "stage7.shift.bit3", - "stage7.sub.notd3" + "stage2.xor1.layer1.or": [ + "$stage2_in[2]", + "$stage2_in[3]" ], - "stage7.sub.fa3.and2": [ - "stage7.sub.fa3.xor1.layer2", - "stage7.sub.fa2.or_carry" + "stage2.xor1.layer2": [ + "stage2.xor1.layer1.nand", + "stage2.xor1.layer1.or" ], - "stage7.sub.fa3.or_carry": [ - "stage7.sub.fa3.and1", - "stage7.sub.fa3.and2" + "stage3.xor0.layer1.nand": [ + "$stage3_in[0]", + "$stage3_in[1]" ], - "stage7.sub.fa4.xor1.layer1.or": [ - "stage7.shift.bit4", - "stage7.sub.notd4" + "stage3.xor0.layer1.or": [ + "$stage3_in[0]", + "$stage3_in[1]" ], - "stage7.sub.fa4.xor1.layer1.nand": [ - "stage7.shift.bit4", - "stage7.sub.notd4" + "stage3.xor0.layer2": [ + "stage3.xor0.layer1.nand", + "stage3.xor0.layer1.or" ], - "stage7.sub.fa4.xor1.layer2": [ - "stage7.sub.fa4.xor1.layer1.or", - "stage7.sub.fa4.xor1.layer1.nand" + "output.not": [ + "stage3.xor0.layer2" + ] + } + }, + "error_detection.paritygenerator8bit": { + "inputs": [ + "$x[0:7]" + ], + "type": "parity_tree", + "internal": { + "stage1.xor0.layer1.nand": [ + "$stage1_in[0]", + "$stage1_in[1]" ], - "stage7.sub.fa4.xor2.layer1.or": [ - "stage7.sub.fa4.xor1.layer2", - "stage7.sub.fa3.or_carry" + "stage1.xor0.layer1.or": [ + "$stage1_in[0]", + "$stage1_in[1]" ], - "stage7.sub.fa4.xor2.layer1.nand": [ - "stage7.sub.fa4.xor1.layer2", - "stage7.sub.fa3.or_carry" + "stage1.xor0.layer2": [ + "stage1.xor0.layer1.nand", + "stage1.xor0.layer1.or" ], - "stage7.sub.fa4.xor2.layer2": [ - "stage7.sub.fa4.xor2.layer1.or", - "stage7.sub.fa4.xor2.layer1.nand" + "stage1.xor1.layer1.nand": [ + "$stage1_in[2]", + "$stage1_in[3]" ], - "stage7.sub.fa4.and1": [ - "stage7.shift.bit4", - "stage7.sub.notd4" + "stage1.xor1.layer1.or": [ + "$stage1_in[2]", + "$stage1_in[3]" ], - "stage7.sub.fa4.and2": [ - "stage7.sub.fa4.xor1.layer2", - "stage7.sub.fa3.or_carry" + "stage1.xor1.layer2": [ + "stage1.xor1.layer1.nand", + "stage1.xor1.layer1.or" ], - "stage7.sub.fa4.or_carry": [ - "stage7.sub.fa4.and1", - "stage7.sub.fa4.and2" + "stage1.xor2.layer1.nand": [ + "$stage1_in[4]", + "$stage1_in[5]" ], - "stage7.sub.fa5.xor1.layer1.or": [ - "stage7.shift.bit5", - "stage7.sub.notd5" + "stage1.xor2.layer1.or": [ + "$stage1_in[4]", + "$stage1_in[5]" ], - "stage7.sub.fa5.xor1.layer1.nand": [ - "stage7.shift.bit5", - "stage7.sub.notd5" + "stage1.xor2.layer2": [ + "stage1.xor2.layer1.nand", + "stage1.xor2.layer1.or" ], - "stage7.sub.fa5.xor1.layer2": [ - "stage7.sub.fa5.xor1.layer1.or", - "stage7.sub.fa5.xor1.layer1.nand" + "stage1.xor3.layer1.nand": [ + "$stage1_in[6]", + "$stage1_in[7]" ], - "stage7.sub.fa5.xor2.layer1.or": [ - "stage7.sub.fa5.xor1.layer2", - "stage7.sub.fa4.or_carry" + "stage1.xor3.layer1.or": [ + "$stage1_in[6]", + "$stage1_in[7]" ], - "stage7.sub.fa5.xor2.layer1.nand": [ - "stage7.sub.fa5.xor1.layer2", - "stage7.sub.fa4.or_carry" + "stage1.xor3.layer2": [ + "stage1.xor3.layer1.nand", + "stage1.xor3.layer1.or" ], - "stage7.sub.fa5.xor2.layer2": [ - "stage7.sub.fa5.xor2.layer1.or", - "stage7.sub.fa5.xor2.layer1.nand" + "stage2.xor0.layer1.nand": [ + "$stage2_in[0]", + "$stage2_in[1]" ], - "stage7.sub.fa5.and1": [ - "stage7.shift.bit5", - "stage7.sub.notd5" + "stage2.xor0.layer1.or": [ + "$stage2_in[0]", + "$stage2_in[1]" ], - "stage7.sub.fa5.and2": [ - "stage7.sub.fa5.xor1.layer2", - "stage7.sub.fa4.or_carry" + "stage2.xor0.layer2": [ + "stage2.xor0.layer1.nand", + "stage2.xor0.layer1.or" ], - "stage7.sub.fa5.or_carry": [ - "stage7.sub.fa5.and1", - "stage7.sub.fa5.and2" + "stage2.xor1.layer1.nand": [ + "$stage2_in[2]", + "$stage2_in[3]" ], - "stage7.sub.fa6.xor1.layer1.or": [ - "stage7.shift.bit6", - "stage7.sub.notd6" + "stage2.xor1.layer1.or": [ + "$stage2_in[2]", + "$stage2_in[3]" ], - "stage7.sub.fa6.xor1.layer1.nand": [ - "stage7.shift.bit6", - "stage7.sub.notd6" + "stage2.xor1.layer2": [ + "stage2.xor1.layer1.nand", + "stage2.xor1.layer1.or" ], - "stage7.sub.fa6.xor1.layer2": [ - "stage7.sub.fa6.xor1.layer1.or", - "stage7.sub.fa6.xor1.layer1.nand" + "stage3.xor0.layer1.nand": [ + "$stage3_in[0]", + "$stage3_in[1]" ], - "stage7.sub.fa6.xor2.layer1.or": [ - "stage7.sub.fa6.xor1.layer2", - "stage7.sub.fa5.or_carry" + "stage3.xor0.layer1.or": [ + "$stage3_in[0]", + "$stage3_in[1]" ], - "stage7.sub.fa6.xor2.layer1.nand": [ - "stage7.sub.fa6.xor1.layer2", - "stage7.sub.fa5.or_carry" + "stage3.xor0.layer2": [ + "stage3.xor0.layer1.nand", + "stage3.xor0.layer1.or" ], - "stage7.sub.fa6.xor2.layer2": [ - "stage7.sub.fa6.xor2.layer1.or", - "stage7.sub.fa6.xor2.layer1.nand" + "output.not": [ + "stage3.xor0.layer2" + ] + } + }, + "alu.alucontrol": { + "inputs": [ + "$opcode[0:3]" + ], + "type": "alu_control", + "internal": { + "op0": [ + "$opcode[0:3]" ], - "stage7.sub.fa6.and1": [ - "stage7.shift.bit6", - "stage7.sub.notd6" + "op1": [ + "$opcode[0:3]" ], - "stage7.sub.fa6.and2": [ - "stage7.sub.fa6.xor1.layer2", - "stage7.sub.fa5.or_carry" + "op2": [ + "$opcode[0:3]" ], - "stage7.sub.fa6.or_carry": [ - "stage7.sub.fa6.and1", - "stage7.sub.fa6.and2" + "op3": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.xor1.layer1.or": [ - "stage7.shift.bit7", - "stage7.sub.notd7" + "op4": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.xor1.layer1.nand": [ - "stage7.shift.bit7", - "stage7.sub.notd7" + "op5": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.xor1.layer2": [ - "stage7.sub.fa7.xor1.layer1.or", - "stage7.sub.fa7.xor1.layer1.nand" + "op6": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.xor2.layer1.or": [ - "stage7.sub.fa7.xor1.layer2", - "stage7.sub.fa6.or_carry" + "op7": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.xor2.layer1.nand": [ - "stage7.sub.fa7.xor1.layer2", - "stage7.sub.fa6.or_carry" + "op8": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.xor2.layer2": [ - "stage7.sub.fa7.xor2.layer1.or", - "stage7.sub.fa7.xor2.layer1.nand" + "op9": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.and1": [ - "stage7.shift.bit7", - "stage7.sub.notd7" + "op10": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.and2": [ - "stage7.sub.fa7.xor1.layer2", - "stage7.sub.fa6.or_carry" + "op11": [ + "$opcode[0:3]" ], - "stage7.sub.fa7.or_carry": [ - "stage7.sub.fa7.and1", - "stage7.sub.fa7.and2" + "op12": [ + "$opcode[0:3]" ], - "stage7.cmp": [ - "stage7.sub.fa7.or_carry" + "op13": [ + "$opcode[0:3]" ], - "stage7.or_dividend": [ - "stage7.shift.bit7", - "$dividend[0]" + "op14": [ + "$opcode[0:3]" ], - "stage7.mux0.not_sel": [ - "stage7.cmp" + "op15": [ + "$opcode[0:3]" + ] + } + }, + "alu.aluflags": { + "inputs": [ + "$result[0:7]", + "$carry", + "$overflow" + ], + "type": "alu_flags", + "internal": { + "zero": [ + "$result[0:7]" ], - "stage7.mux0.and0": [ - "stage7.shift.bit0", - "stage7.mux0.not_sel" + "negative": [ + "$result[7]" ], - "stage7.mux0.and1": [ - "stage7.sub.fa0.xor2.layer2", - "stage7.cmp" + "carry": [ + "$carry" ], - "stage7.mux0.or": [ - "stage7.mux0.and0", - "stage7.mux0.and1" + "overflow": [ + "$overflow" + ] + } + }, + "alu.alu8bit.and": { + "inputs": [ + "$a[0:7]", + "$b[0:7]" + ], + "type": "bitwise_and", + "internal": { + "bit0": [ + "$a[0]", + "$b[0]" ], - "stage7.mux1.not_sel": [ - "stage7.cmp" + "bit1": [ + "$a[1]", + "$b[1]" ], - "stage7.mux1.and0": [ - "stage7.shift.bit1", - "stage7.mux1.not_sel" + "bit2": [ + "$a[2]", + "$b[2]" ], - "stage7.mux1.and1": [ - "stage7.sub.fa1.xor2.layer2", - "stage7.cmp" + "bit3": [ + "$a[3]", + "$b[3]" ], - "stage7.mux1.or": [ - "stage7.mux1.and0", - "stage7.mux1.and1" + "bit4": [ + "$a[4]", + "$b[4]" ], - "stage7.mux2.not_sel": [ - "stage7.cmp" + "bit5": [ + "$a[5]", + "$b[5]" ], - "stage7.mux2.and0": [ - "stage7.shift.bit2", - "stage7.mux2.not_sel" + "bit6": [ + "$a[6]", + "$b[6]" ], - "stage7.mux2.and1": [ - "stage7.sub.fa2.xor2.layer2", - "stage7.cmp" + "bit7": [ + "$a[7]", + "$b[7]" + ] + } + }, + "alu.alu8bit.or": { + "inputs": [ + "$a[0:7]", + "$b[0:7]" + ], + "type": "bitwise_or", + "internal": { + "bit0": [ + "$a[0]", + "$b[0]" ], - "stage7.mux2.or": [ - "stage7.mux2.and0", - "stage7.mux2.and1" + "bit1": [ + "$a[1]", + "$b[1]" ], - "stage7.mux3.not_sel": [ - "stage7.cmp" + "bit2": [ + "$a[2]", + "$b[2]" ], - "stage7.mux3.and0": [ - "stage7.shift.bit3", - "stage7.mux3.not_sel" + "bit3": [ + "$a[3]", + "$b[3]" ], - "stage7.mux3.and1": [ - "stage7.sub.fa3.xor2.layer2", - "stage7.cmp" + "bit4": [ + "$a[4]", + "$b[4]" ], - "stage7.mux3.or": [ - "stage7.mux3.and0", - "stage7.mux3.and1" + "bit5": [ + "$a[5]", + "$b[5]" ], - "stage7.mux4.not_sel": [ - "stage7.cmp" + "bit6": [ + "$a[6]", + "$b[6]" ], - "stage7.mux4.and0": [ - "stage7.shift.bit4", - "stage7.mux4.not_sel" + "bit7": [ + "$a[7]", + "$b[7]" + ] + } + }, + "alu.alu8bit.not": { + "inputs": [ + "$a[0:7]" + ], + "type": "bitwise_not", + "internal": { + "bit0": [ + "$a[0]" ], - "stage7.mux4.and1": [ - "stage7.sub.fa4.xor2.layer2", - "stage7.cmp" + "bit1": [ + "$a[1]" ], - "stage7.mux4.or": [ - "stage7.mux4.and0", - "stage7.mux4.and1" + "bit2": [ + "$a[2]" ], - "stage7.mux5.not_sel": [ - "stage7.cmp" + "bit3": [ + "$a[3]" ], - "stage7.mux5.and0": [ - "stage7.shift.bit5", - "stage7.mux5.not_sel" + "bit4": [ + "$a[4]" ], - "stage7.mux5.and1": [ - "stage7.sub.fa5.xor2.layer2", - "stage7.cmp" + "bit5": [ + "$a[5]" ], - "stage7.mux5.or": [ - "stage7.mux5.and0", - "stage7.mux5.and1" + "bit6": [ + "$a[6]" ], - "stage7.mux6.not_sel": [ - "stage7.cmp" + "bit7": [ + "$a[7]" + ] + } + }, + "alu.alu8bit.xor": { + "inputs": [ + "$a[0:7]", + "$b[0:7]" + ], + "type": "bitwise_xor", + "internal": { + "layer1.nand.bit0": [ + "$a[0]", + "$b[0]" ], - "stage7.mux6.and0": [ - "stage7.shift.bit6", - "stage7.mux6.not_sel" + "layer1.or.bit0": [ + "$a[0]", + "$b[0]" ], - "stage7.mux6.and1": [ - "stage7.sub.fa6.xor2.layer2", - "stage7.cmp" + "layer2.bit0": [ + "layer1.nand.bit0", + "layer1.or.bit0" ], - "stage7.mux6.or": [ - "stage7.mux6.and0", - "stage7.mux6.and1" + "layer1.nand.bit1": [ + "$a[1]", + "$b[1]" ], - "stage7.mux7.not_sel": [ - "stage7.cmp" + "layer1.or.bit1": [ + "$a[1]", + "$b[1]" ], - "stage7.mux7.and0": [ - "stage7.shift.bit7", - "stage7.mux7.not_sel" + "layer2.bit1": [ + "layer1.nand.bit1", + "layer1.or.bit1" ], - "stage7.mux7.and1": [ - "stage7.sub.fa7.xor2.layer2", - "stage7.cmp" + "layer1.nand.bit2": [ + "$a[2]", + "$b[2]" ], - "stage7.mux7.or": [ - "stage7.mux7.and0", - "stage7.mux7.and1" + "layer1.or.bit2": [ + "$a[2]", + "$b[2]" ], - "quotient0": [ - "stage0.cmp" + "layer2.bit2": [ + "layer1.nand.bit2", + "layer1.or.bit2" ], - "quotient1": [ - "stage1.cmp" + "layer1.nand.bit3": [ + "$a[3]", + "$b[3]" ], - "quotient2": [ - "stage2.cmp" + "layer1.or.bit3": [ + "$a[3]", + "$b[3]" ], - "quotient3": [ - "stage3.cmp" + "layer2.bit3": [ + "layer1.nand.bit3", + "layer1.or.bit3" ], - "quotient4": [ - "stage4.cmp" + "layer1.nand.bit4": [ + "$a[4]", + "$b[4]" ], - "quotient5": [ - "stage5.cmp" + "layer1.or.bit4": [ + "$a[4]", + "$b[4]" ], - "quotient6": [ - "stage6.cmp" + "layer2.bit4": [ + "layer1.nand.bit4", + "layer1.or.bit4" ], - "quotient7": [ - "stage7.cmp" + "layer1.nand.bit5": [ + "$a[5]", + "$b[5]" ], - "remainder0": [ - "stage7.mux0.or" + "layer1.or.bit5": [ + "$a[5]", + "$b[5]" ], - "remainder1": [ - "stage7.mux1.or" + "layer2.bit5": [ + "layer1.nand.bit5", + "layer1.or.bit5" ], - "remainder2": [ - "stage7.mux2.or" + "layer1.nand.bit6": [ + "$a[6]", + "$b[6]" ], - "remainder3": [ - "stage7.mux3.or" + "layer1.or.bit6": [ + "$a[6]", + "$b[6]" ], - "remainder4": [ - "stage7.mux4.or" + "layer2.bit6": [ + "layer1.nand.bit6", + "layer1.or.bit6" ], - "remainder5": [ - "stage7.mux5.or" + "layer1.nand.bit7": [ + "$a[7]", + "$b[7]" ], - "remainder6": [ - "stage7.mux6.or" + "layer1.or.bit7": [ + "$a[7]", + "$b[7]" ], - "remainder7": [ - "stage7.mux7.or" + "layer2.bit7": [ + "layer1.nand.bit7", + "layer1.or.bit7" + ] + } + }, + "alu.alu8bit.shl": { + "inputs": [ + "$a[0:7]" + ], + "type": "shift_left", + "internal": { + "": [ + "$a[0:7]" + ] + } + }, + "alu.alu8bit.shr": { + "inputs": [ + "$a[0:7]" + ], + "type": "shift_right", + "internal": { + "": [ + "$a[0:7]" + ] + } + }, + "alu.alu8bit.add": { + "inputs": [ + "$a[0:7]", + "$b[0:7]" + ], + "type": "add", + "internal": { + "": [ + "$a[0:7]", + "$b[0:7]" + ] + } + }, + "alu.alu8bit.output_mux": { + "inputs": [ + "$results[0:15]", + "$opcode[0:3]" + ], + "type": "output_mux", + "internal": { + "": [ + "$results[0:15]", + "$opcode[0:3]" ] - }, - "outputs": { - "quotient[0]": "quotient0", - "quotient[1]": "quotient1", - "quotient[2]": "quotient2", - "quotient[3]": "quotient3", - "quotient[4]": "quotient4", - "quotient[5]": "quotient5", - "quotient[6]": "quotient6", - "quotient[7]": "quotient7", - "remainder[0]": "remainder0", - "remainder[1]": "remainder1", - "remainder[2]": "remainder2", - "remainder[3]": "remainder3", - "remainder[4]": "remainder4", - "remainder[5]": "remainder5", - "remainder[6]": "remainder6", - "remainder[7]": "remainder7" } }, "threshold.oneoutof8": { @@ -8898,11 +16613,11 @@ }, "manifest.memory_bytes": { "type": "constant", - "value": 256 + "value": 65536 }, "manifest.pc_width": { "type": "constant", - "value": 8 + "value": 16 }, "manifest.register_width": { "type": "constant", @@ -8918,7 +16633,7 @@ }, "manifest.version": { "type": "constant", - "value": 1 + "value": 3 } } } \ No newline at end of file