\[ \newcommand{dn}[3]{\frac{\mathrm{d}^{#3} #1}{\mathrm{d} #2^{#3}}}
\newcommand{\d}[2]{\frac{\mathrm{d} #1}{\mathrm{d} #2}}
\newcommand{\dd}[2]{\frac{\mathrm{d}^2 #1}{\mathrm{d} {#2}^2}}
\newcommand{\ddd}[2]{\frac{\mathrm{d}^3 #1}{\mathrm{d} {#2}^3}}
\newcommand{\pdn}[3]{\frac{\partial^{#3} #1}{\partial {#2}^{#3}}}
\newcommand{\pd}[2]{\frac{\partial #1}{\partial #2}}
\newcommand{\pdd}[2]{\frac{\partial^2 #1}{\partial {#2}^2}}
\newcommand{\pddd}[2]{\frac{\partial^3 #1}{\partial {#2}^3}}
\newcommand{\p}{\partial}
\newcommand{\D}[2]{\frac{\mathrm{D} #1}{\mathrm{D} #2}}
\newcommand{\Re}{\mathrm{Re}}
\newcommand{\Im}{\mathrm{Im}}
\newcommand{\bra}[1]{\left\langle #1 \right|}
\newcommand{\ket}[1]{\left|#1 \right\rangle}
\newcommand{\braket}[2]{\left\langle #1 \middle|#2 \right\rangle}
\newcommand{\inner}[2]{\left\langle #1 ,#2 \right\rangle}
\newcommand{\l}{\left} \newcommand{\m}{\middle} \newcommand{\r}{\right}
\newcommand{\f}[2]{\frac{#1}{#2}} \newcommand{\eps}{\varepsilon}
\newcommand{\ra}{\rightarrow} \newcommand{\F}{\mathcal{F}}
\newcommand{\L}{\mathcal{L}} \newcommand{\t}{\quad}
\newcommand{\intinf}{\int_{-\infty}^{+\infty}}
\newcommand{\R}{\mathcal{R}} \newcommand{\C}{\mathcal{C}}
\newcommand{\Z}{\mathcal{Z}} \newcommand{\bm}[1]{\boldsymbol{#1}} \]
RK8 は RK16 を 8bit 化した CPU です。 RK16 を ロジック IC
で実装する前に、RK8 を作って検証します。

| add |
rd |
rs1 |
rs2 |
R[rd]=R[rs1]+R[rs2] |
| addi |
rd |
rs1 |
imm |
R[rd]=R[rs1]+imm |
| mov |
imm |
rs1 |
rs2 |
R[rs1+imm]=R[rs2] |
| br |
imm |
rs1 |
rs2 |
if(rs1=rs2) PC = imm |

| add |
rs1 = R[rs1] |
rs2 = R[rs2] |
R[rd] = alu |
pc++ |
| addi |
rs1 = R[rs1] |
- |
R[rd] = alu |
pc++ |
| mov |
rs1 = R[rs1] |
rs2 = R[rs2] |
R[alu] = rs2 |
pc++ |
| br |
rs1 = R[rs1] |
rs2 = R[rs2] |
- |
pc = flag ? imm : pc++ |
| addi |
00 |
00 : CODE2 |
0 : ALU |
1 : ALU |
0 |
- |
func |
| mov |
01 |
01 : CODE1 |
1 : REG2 |
0 : CODE0 |
0 |
- |
ADD |
| add |
10 |
1- : REG2 |
0 : ALU |
0 : CODE0 |
0 |
- |
func |
| br |
11 |
1- : REG2 |
- |
0 : CODE0 |
1 |
0:EQ 1:LT |
SUB |
| ADD |
0 |
0 |
1 |
0 |
0 |
1 |
| SUB |
1 |
0 |
0 |
1 |
1 |
0 |
| AND |
- |
1 |
1 |
1 |
1 |
0 |
| NAND |
- |
1 |
0 |
0 |
0 |
1 |
| OR |
- |
1 |
1 |
0 |
1 |
1 |
| NOR |
- |
1 |
0 |
1 |
0 |
0 |
| XOR |
- |
1 |
1 |
0 |
0 |
1 |
| XNOR |
- |
1 |
0 |
1 |
1 |
0 |
| NOT |
- |
1 |
0 |
0 |
0 |
0 |
| addi |
00 |
0 |
0 1001 add |
| subi |
00 |
1 |
0 0110 sub |
| andi |
00 |
- |
1 1110 adn |
| ori |
00 |
- |
1 1011 or |
| xori |
00 |
- |
1 1001 xor |
| mov |
01 |
0 |
0 1001 add |
| add |
10 |
0 |
0 1001 add |
| sub |
10 |
1 |
0 0110 sub |
| and |
10 |
- |
1 1110 and |
| or |
10 |
- |
1 1011 or |
| not |
10 |
- |
1 0000 not |
| xor |
10 |
- |
1 1001 xor |
| be |
11 |
0 A=B |
0 0110 - |
| bl |
11 |
1 A<B |
0 0110 sub |
| ロジック IC |
|
|
|
| 74HC00 NAND |
|
|
|
| 74HC02 NOR |
|
|
|
| 74HC04 NOT |
|
|
|
| 74HC08 AND |
|
|
|
| 74HC32 OR |
|
|
|
| 74HC564 8bit DFF 反転 3state 出力 |
2 |
レジスタ |
|
| 74HC181 ALU |
2 |
ALU |
|
| 74HC564 8bit DFF 非反転 3state 出力 |
1 |
出力部 |
|
| 74HC540 3state バッファ 反転 |
5 |
セレクタ |
|
| 74HC541 3state バッファ 非反転 |
6 |
セレクタ、入力部 |
|
| 74HC161 バイナリカウンタ |
2 |
プログラムカウンタ |
|
| 74HC175 4bit DFF |
1 |
ステージカウンタ |
|
| 74HC14 シュミットトリガ |
1 |
チャタリング防止、NOT |
秋月 |
| メモリ |
|
|
|
| UPD431016LE-15
65536 x 16 |
1 |
メインメモリ |
若松 |
| 5V NOR
Flash |
2 |
プログラム ROM |
|
| クロック |
|
|
|
| 分周器付き発振器 |
1 |
クロック |
秋月 |
| 押しボタンスイッチ(LED) |
1 |
手動クロック & 電源ランプ |
秋月 |
| タクトスイッチ |
1 |
リセット |
秋月 |
| スライドスイッチ |
1 |
クロック切り替え |
秋月 |