回路設計する際に必要になりそうな基本回路をNORで構成してみました。
フリップフロップ

| in1 | in2 | out | /out |
|---|---|---|---|
| 0 | 0 | out | /out |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 |
データを保持するための回路です。 レジスタに使用します。
Dフリップフロップ

| D | /CLK | Q | /Q |
|---|---|---|---|
| 0 | ↓↑ | 0 | 1 |
| 1 | ↓↑ | 1 | 0 |
フリップフロップだと発振してしまうため、CLOCK信号が落ちたときのDの値を取り入れるようにします。
Z80のクロック信号は負論理なので負論理で設計しています。
保持選択Dフリップフロップ

| W | D | /CLK | Q | /Q |
|---|---|---|---|---|
| 0 | X | ↓↑ | Q | /Q |
| 1 | 0 | ↓↑ | 0 | 1 |
| 1 | 1 | ↓↑ | 1 | 0 |
書き込みフラグがオフの時は値を保持し、オンの時のみD信号を取り入れます。
ハーフアダー

| in1 | in2 | C | S |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
加算回路に使用します。
フルアダー

| in1 | in2 | Cin | Cout | S |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
たくさん繋げると8bit加算回路が作れます。
デコーダ (2bit)

| S1 | S0 | P3 | P2 | P1 | P0 |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 | 0 | 0 |
命令の翻訳や基板間の接続で使用すると思います。
データセレクタ / マルチプレクサ (2bit)

| S1 | S0 | D3 | D2 | D1 | D0 | D |
|---|---|---|---|---|---|---|
| 0 | 0 | X | X | X | D0 | D0 |
| 0 | 1 | X | X | D1 | X | D1 |
| 1 | 0 | X | D2 | X | X | D2 |
| 1 | 1 | D3 | X | X | X | D3 |
ALUとレジスタからの出力の選択に使用します。
アプリなどを作ったりしています! よかったらみていってください→
つくったもの
今のイチオシ↓



