Skip to content
Snippets Groups Projects
Commit 07d60570 authored by rjm432's avatar rjm432
Browse files

logic gates module

parent 40bcfb67
No related branches found
No related tags found
No related merge requests found
# Ryan McShane
# Logic Gates Modules
# AND, OR, XOR, NAND, NOR, XNOR
def and(circuit, A, B, result):
circuit.ccx(q[A], q[B], q[result])
def or(circuit, A, B, result):
circuit.x(q[A])
circuit.x(q[B])
circuit.ccx(q[result])
circuit.x(q[result])
circuit.x(q[B])
circuit.x(q[A])
def nand(circuit, A, B, result):
circuit.ccx(q[A], q[B], q[result])
circuit.x(q[result])
def nor(circuit, A, B, result):
circuit.x(q[A])
circuit.x(q[B])
circuit.ccx(q[result])
circuit.x(q[B])
circuit.x(q[A])
def xor(circuit, A, B, result, t1, t2, t3):
nand(circuit, q[A], q[B], q[t1])
circuit.x(q[t1])
nand(circuit, q[A], q[t1], q[t2])
circuit.x(q[t2])
nand(circuit, q[B], q[t1], q[t3])
circuit.x(q[t3])
nand(circuit, q[t2], q[t3], q[result])
circuit.x(q[result])
circuit.x(q[t3])
nand(circuit, q[B], q[t1], q[t3])
circuit.x(q[t2])
nand(circuit, q[A], q[t1], q[t2])
circuit.x(q[t1])
nand(circuit, q[A], q[B], q[t1])
def xnor(circuit, a, b, result, R, At, Bt):
xor(circuit, a, b, result, R, At, Bt)
circuit.x(q[result])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment