NAND(74HC00)だけで16bitCPUを作る[NLP-16] という記事を読み、使用可能な論理ゲート種類縛りでのCPUを制作をやりたくなりました。
そこで、
- NAND
- NOR
- AND,NOT
- OR,NOT
の中のどれにするか考えた結果、NOR にすることにしました。
NANDからコンピュータを作るゲームがあったり、論理完全性の例としてよくNANDが挙げられているのに対し、NORの知名度が低いのはなぜだろうか気になったからです。
今回の作成を通してNORとNANDの使いやすさとかを比較できたらなーと思います。
そんなわけでまず最初に、各論理ゲートをNORとNANDで作成することにしました。
NOT
in | out |
---|---|
0 | 1 |
1 | 0 |
AND
inA | inB | out |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
NAND
inA | inB | out |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
OR
inA | inB | out |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
NOR
inA | inB | out |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
XOR
inA | inB | out |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
XNOR
inA | inB | out |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
以上の論理ゲートを構成するために必要なNOR/NANDの必要数は、
NOR | NAND | |
---|---|---|
NOT | 1 | 1 |
AND | 3 | 2 |
NAND | 4 | 1 |
OR | 2 | 3 |
NOR | 1 | 4 |
XOR | 5 | 4 |
XNOR | 6 | 5 |
合計 | 22 | 20 |
AND・NANDとOR・NORは対称的なのでいいとして...
XOR/XNORを作成するのに必要なゲート数はNANDの方が少ないという結果になりました。 これが後々どう響いてくるのかが気になりますが...
回路をNANDとNORの両方で書くのは結構面倒だったので以降はNORだけにしようと思います。
アプリを作ったりしています! よかったらみていってくださいね→
つくったもの
今のイチオシ↓