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だけにしようと思います。
アプリなどを作ったりしています! よかったらみていってください→
つくったもの
今のイチオシ↓


