The not gate we implemented just now is very simple, let's now check out a more complex circuit - the and gate.
not
and
We start by specifying the interface of the and gate.
Looking at the truth table of and, we notice that it expects two inputs a and b and produces a single output.
a
b
a and b
0
1
So we can declare the header of the and gate as:
and a[1] b[1] -> [1]
Great!
Now since a and b is equivalent to not (a nand b), we can implement the body of the and gate as:
not (a nand b)
not (nand a b)
Combining the header and the body, we got:
and a[1] b[1] -> [1] = not (nand a b)
Last updated 5 years ago