24. Tomomi Research Inc.
ROM回路の特徴
2017/5/19
5V 5V 5V 5V
5V
http://eijian.hatenablog.com/entry/2016/01/24/200135
out
In SW OUT Comment
L OFF H SWの状態とOUTのロジック出力
H/Lが連動L ON L
H OFF H
SWの状態に関係なく,OUTがH
H ON H
25. Tomomi Research Inc.
ROMの動作
2017/5/19
① 番地の選択
74HC154
4-to-16 line decoder
② 0番地 8bitの情報
④ CPU
に返す。
③
74HC540
inverterL
H
H
H
H
H
従って、74HC154の出力
にNOTが付いている。
26. Tomomi Research Inc.
74HC154が入手困難
74HC154 → 74HC138を2個並べる
2017/5/19
74HC154
4-to-16 line decoder
74HC138
3-to-8 line decoder
http://www.geocities.jp/team_zero_three/TD4/#replacing_74hc154
http://www.ypapaengpc.com/4bitcpu/public_html/74hc138.html
29. Tomomi Research Inc.
TD4の仕様
1. CPU : 4 bit RISC
2. 記憶容量 : 16-byte Machinal ROM = DIP S/W
3. 動作周波数 : 1 Hz or 10 Hz
4. 入力: 4 bits
5. 出力 : 4 bits (LED)
2017/5/19
30. Tomomi Research Inc.
TD4の命令語
■ 命令フォーマット
4bit CPUだけど命令語は8bit
2017/5/19
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
MSB* LSB**
* Most Significant Bit (MSB) 最上位ビット(左端ビット)
** Least Significant Bit (LSB) 最下位ビット(右端ビット)
上位4bit
Operation Code
下位4bit
Immediate Data (Im)
***
*** Immediate Data : 即値データ
即値とは、アセンブリ言語や機械語で、命令が扱う対象となるデータ(オペランド)として
コード中に直に書き込まれた数値のこと。メモリやレジスタなどから読み出した値では
なく、コード中で命令語の直後に置かれている値であることからこのように呼ばれる。
31. Tomomi Research Inc.
命令一覧
2017/5/19
No 分類 命令 数式 意味 Operation Code
1
算術(加算)命令
ADD A, Im A ← A+ Im AレジスタにImを加算 0000
2 ADD B, Im B ← B + Im BレジスタにImを加算 0101
3
データ転送命令
MOV A, Im A ← Im AレジスタにImを入れる 0011
4 MOV B, Im B ← Im BレジスタにImを入れる 0111
5
レジスト間の転送
MOV A, B A ← B AレジスタにBレジスタ値を入れる 0001
6 MOV B, A B ← A BレジスタにAレジスタ値を入れる 0100
7 ジャンプ命令 JMP Im 絶対アドレスへのジャンプ 1111
8 条件分岐 JNC Im
Cプラグがセットされていないときジャ
ンプ(必ず加算命令の後に実行)
1110
9
データの入力
IN A 入力ポートからAレジストへ 0010
10 IN B 入力ポートからBレジストへ 0110
11 データの出力 OUT B Bレジストの値を出力ポートへ 1001
Immediate Data (Im)
69. Tomomi Research Inc.
命令一覧
2017/5/19
No 分類 命令 数式 意味 Operation Code
1
算術(加算)命令
ADD A, Im A ← A+ Im AレジスタにImを加算 0000
2 ADD B, Im B ← B + Im BレジスタにImを加算 0101
3
データ転送命令
MOV A, Im A ← Im AレジスタにImを入れる 0011
4 MOV B, Im B ← Im BレジスタにImを入れる 0111
5
レジスト間の転送
MOV A, B A ← B AレジスタにBレジスタ値を入れる 0001
6 MOV B, A B ← A BレジスタにAレジスタ値を入れる 0100
7 ジャンプ命令 JMP Im 絶対アドレスへのジャンプ 1111
8 条件分岐 JNC Im
Cプラグがセットされていないときジャ
ンプ(必ず加算命令の後に実行)
1110
9
データの入力
IN A 入力ポートからAレジストへ 0010
10 IN B 入力ポートからBレジストへ 0110
11 データの出力 OUT B Bレジストの値を出力ポートへ 1001
Immediate Data (Im)
70. Tomomi Research Inc.
MOV A, Im
2017/5/19
Input
Operation code 0011
C Flag before Don’t Care
C Flag after 0
Output
Select B H
Select A H
LOAD0 L
LOAD1 H
LOAD2 H
LOAD3 H
71. Tomomi Research Inc.
MOV B, Im
2017/5/19
Input
Operation code 0111
C Flag before Don’t Care
C Flag after 0
Output
Select B H
Select A H
LOAD0 H
LOAD1 L
LOAD2 H
LOAD3 H
72. Tomomi Research Inc.
MOV A, B
2017/5/19
Input
Operation code 0001
C Flag before Don’t Care
C Flag after 0
Output
Select B L
Select A H
LOAD0 L
LOAD1 H
LOAD2 H
LOAD3 H
73. Tomomi Research Inc.
MOV B, A
2017/5/19
Input
Operation code 0100
C Flag before Don’t Care
C Flag after 0
Output
Select B L
Select A L
LOAD0 H
LOAD1 L
LOAD2 H
LOAD3 H
74. Tomomi Research Inc.
ADD A, Im
2017/5/19
Input
Operation code 000
C Flag before Don’t Care
C Flag after 1
Output
Select B L
Select A L
LOAD0 L
LOAD1 H
LOAD2 H
LOAD3 H