| ホーム |     私の電子工作作品集

161. CPUの創りかた TD4

[ 初公開日:2013年6月17日 ]

 2003 年 9 月に発売された、「CPUの創りかた IC10個のお手軽CPU設計超入門 」(著者:渡波 郁、出版社:毎日コミュニケーションズ) という本で紹介されていた、 "CPUの創りかた TD4" です。(以下、TD4 教科書と呼ぶ)

8年も前に発売された本で、その当時はかなりブームにもなったらしいのですが、最近になってネットでその存在を知り、遅ればせながら今回私も製作をしてみようと思い立ちました。

■ 回路図 ■

| 回路図 (4bitCPU_TD4.CE3) | ページトップ |

■ オリジナル回路との主な相違 ■

・ クロック回路の抵抗値

 TD4 教科書の回路図では、1Hz 用には 33KΩ、10Hz 用には 3.3KΩ の抵抗値が指定されているが、この値では実際には少々遅くなってしまう。 そこで、60 秒間でのクロックの数を、 実際に抵抗値別に数えてみたものが次の表である。

 この表から分かるように、33KΩ ではなんと 51/60 = 0.85 Hz となってしまう。 そこで1Hz を得るためには、やはり表から分かるように、28.3KΩ (E24 系列の抵抗値から選ぶと、 33K と 200K とを並列に接続する) を使用した場合に、丁度 60/60 = 1 Hz となった。

 なお、10Hz 用には、1Hz 用の 1/10 の抵抗値で、 2.83KΩ (3.3K と 20K とを並列に接続する) を使用した。

抵抗値 (Ω)   33K 30K 27K   28.7K (33K // 220K) 28.3K (33K // 200K)
クロック数   51 57 63   59 60

・ メモリ(ROM)回路のディップスイッチ

 TD4 教科書では、ROM 回路での 0/1 のビット指定に 8 bit のディップスイッチを 16 個使用しているが、ここではディップスイッチの使用をやめて、2 x 8 連のピンヘッダと ジャンパーピンを 16 組使用して代理した。 ディップスイッチは、種類にもよるが比較的高価なことと、一番の問題はプリント基板上のスペース的な問題からである。 TD4 教科書ではディップスイッチとダイオードアレイで構成をしているが、ダイオードアレイは特殊で入手がかなり困難なこと。 そのため通常のアキシャルリードタイプのダイオードを 使用せざるを得ないためである。

・ メモリ(ROM)回路のアドレス指定

 TD4 教科書の回路図では、ROM 回路のアドレス指定に、一度に 4 bit がデコードできる 74HC154 を使用しているが、ここでは 3 - 8 デコーダの 74HC138 を2個使用して 同等の回路を得た。 これは単に、私の手持ち IC に、74HC138 がたくさんある … という理由からである。

・ ALU(全加算器)としての IC

 ALU として使用する全加算器に、TD4 教科書の回路図では 74HC283 を使用しているが、これは現在手持ちになく、代わりに 74LS283 があったのでそれを使用した。 その後、74HC283 を入手する機会があり、現在は HC タイプに差し替えてある。(2020/01/16)

・ アウトポートのブザー回路

 アウトポートにつながるブザー回路は、TD4 教科書の回路図では、発振回路内蔵の圧電ブザーと、そのドライバ用 IC に 74HC04 の NOT ゲートすべての6個を使用しているが、 ここでは安価な発振回路なしの圧電ブザーと、74HC00 の NAND ゲート2個を使用して発振回路を作製している(残りの 2/4 個のうち1個は、後に拡張回路で必要になってくる)。 回路図の CR 定数で、約 3.8 KHz を発振している。

・ LED によるロジック確認回路

 LED の基本的な考え方回路は示されてはいるものの、TD4 教科書の回路図には、具体的な使用回路は示されてはいない。 そこで私作の回路では、前項の 回路図 に示す通り、赤 LED を 18 個、緑 LED を 12 個、黄 LED を 20 個の、計 50 個を使用して、各部の信号の有無が一目で確認できるように考慮した。

・ その他の変更点

 メモリの拡張を行って "TD4 改" に変更後、クロック回路、リセット回路について改良を試みた。 詳細は 下記 を参照のこと。


 ……… ちなみに "TD4" とは、TD4 教科書(P.136)によると、"とりあえず動作するだけの 4 bit CPU" の意味で名付けたそうだ。………

| ページトップ |

■ 完成したプリント基板の様子 ■

プリント基板の正面斜め上から見たところ プリント基板の右側面斜め上から見たところ

| ページトップ |

■ プリント基板パターン図 (部品面) ■

| プリント基板パターン図 (部品面) (4bitCPU_TD4_PC.CE3) | ページトップ |

■ プリント基板パターン図 (ハンダ面) ■

| プリント基板パターン図 (ハンダ面) (4bitCPU_TD4_PC1.CE3) | ページトップ |

■ TD4 全命令一覧 ■

 TD4 では 12 種類の命令が定義されていて、その全命令一覧をここにまとめておきます。 下図の右端に示す SelB, SelA, Ld0, Ld1, Ld2, Ld3 は、オペレーションコードとフラグから作成されるデコード信号を表します。



     イミディエイトデータを A レジスタに転送する。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     イミディエイトデータを B レジスタに転送する。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     B レジスタを A レジスタに転送する。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     A レジスタを B レジスタに転送する。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     イミディエイトデータを A レジスタに加算する。
     実行時、C フラグの影響を受けない。 実行後、キャリー発生時に C フラグが 1 になる。

     イミディエイトデータを B レジスタに加算する。
     実行時、C フラグの影響を受けない。 実行後、キャリー発生時に C フラグが 1 になる。

     入力ポートのデータを A レジスタに転送する。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     入力ポートのデータを B レジスタに転送する。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     イミディエイトデータを 出力ポートに転送する。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     B レジスタを 出力ポートに転送する。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     イミディエイトデータで示された番地へジャンプする。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     C フラグが 0 のとき、イミディエイトデータで示された番地へジャンプする。 C フラグが 1 のとき、何もしない。
     実行時、C フラグにより動作が変化する。 実行後、C フラグが 0 になる。

| ページトップ |

■ プログラム ■

 以下のプログラムは、TD4 教科書に紹介されていた "LED ちかちか・プログラム" です。

	ADDR	OBJECT		OP			;COMMENT

	0000	1011 0011	OUT	0011		;"0011" を出力ポートへ
	0001	1011 0110	OUT	0110		;"0110" を出力ポートへ
	0010	1011 1100	OUT	1100		;"1100" を出力ポートへ
	0011	1011 1000	OUT	1000		;"1000" を出力ポートへ
	0100	1011 1000	OUT	1000		;"1000" を出力ポートへ
	0101	1011 1100	OUT	1100		;"1100" を出力ポートへ
	0110	1011 0110	OUT	0110		;"0110" を出力ポートへ
	0111	1011 0011	OUT	0011		;"0011" を出力ポートへ
	1000	1011 0001	OUT	0001		;"0001" を出力ポートへ
	1001	1111 0000	JMP	0000		;0 番地へジャンプ(無限ループ)

 以下のプログラムは、同じく TD4 教科書に紹介されていた "ラーメンタイマー・プログラム" です。

	ADDR	OBJECT		OP			;COMMENT

	0000	1011 0111	OUT	0111		;LEDを3つ点灯
	0001	0000 0001	ADD	A,0001		;Aレジスタを +1して…
	0010	1110 0001	JNC	0001		;キャリーが発生するまでループ(16回ループ)
	0011	0000 0001	ADD	A,0001		;
	0100	1110 0011	JNC	0011		;ここも16回ループ
	0101	1011 0110	OUT	0110		;LEDを2つ点灯
	0110	0000 0001	ADD	A,0001		;
	0111	1110 0110	JNC	0110		;ここも16回ループ
	1000	0000 0001	ADD	A,0001		;
	1001	1110 1000	JNC	1000		;ここも16回ループ
	1010	1011 0000	OUT	0000		;LEDを全部消灯
	1011	1011 0100	OUT	0100		;LEDを1つ点灯
	1100	0000 0001	ADD	A,0001		;
	1101	1110 1010	JNC	1010		;ここも16回ループ
	1110	1011 1000	OUT	1000		;終了のLEDを点灯(ブザーを鳴動)
	1111	1111 1111	JMP	1111		;自分自身へジャンプ(無限ループ)

| ページトップ |



■ メモリの拡張と追加命令 ■

 "CPUの創りかた TD4" が一応完成はしたものの、16 WORD のメモリというのは、あまりにも酷い。 CPU としての機能が低いのは 仕方がないとしても、16 WORD のメモリというのは、あまりにも少なすぎる。 前々から考えていたのですが、何とかならないものか。

 そこで、メモリの拡張を試みることにしました。 といっても回路的にあまり複雑にならない程度に、最小限の改造で済むように心掛けました。 メモリとしては 16 WORD を増量して、倍の 32 WORD 構成とすることにしました。 したがって、プログラムカウンタ(PC)も 1 bit 増やして 5 bit 必要となりますが、 当然ながらこれは避けられません。

 またメモリを倍増したことによって、ジャンプ命令での番地の指定についても考えなければなりません。 単純に思いつくのは、番地を指定するためのイミディエイトデータも 1 bit 増やすことです。 しかしこれは正当な方法ですが、現在 8 bit/Word 構成の命令を 9 bit/Word 構成にするということで、ハードウエアを改造するにあたって大変なことになりそうです。

 既に完成しているプリント基板上のメモリ部分に、1 bit x 16 Word 分の空きエリアが必要 (実は一応考慮はしてある)ですし、またその増やした bit を処理するための IC や、ダイオード、ジャンパーピン用の端子(ピンヘッダ)等の部品点数も増加することになります。 できればこの方法は避けたいところです。

 ジャンプ命令の、番地を指定するためのイミディエイトデータを 4 bit のままで、如何にして 32 WORD のメモリ空間を指定すれば良いのか … 。 前項の TD4 全命令一覧 をよく見てみると、オペレーションコードのうち、 "8", "A", "C", "D" の4つが未定義となっています。 このうちの2つを使用して新たな命令 JMP2, JNC2 を作成すことにしました。 そしてその新しい命令 JMP2, JNC2 を指定した場合には、 イミディエイトデータで示された番地 + 16 番地へジャンプするのです。

 そのため JMP2, JNC2 を指定した場合のみ、5番目のビット bit4 = "1" を生成するのです。 ここで新たな命令のためのデコード回路も、極力簡潔で 複雑にならないようにしなければなりません。 既存の命令のオペレーションコードが JMP ("F"), JNC ("E") となっていますので、新しい命令には JMP2 ("D"), JNC2 ("C") を割り付けました。 これはオペレーションコード bit7, bit6, bit5, bit4 のうち、bit5 だけが異なっており、JMP, JNC では bit5 = "1"、JMP2, JNC2 では bit5 = "0" の関係になっています。 したがってデコード回路の簡潔化が期待できます。

 プログラムカウンタ(PC)の増分 1 bit の処理用に、現在 74HC74 が半分未使用で余っているため、始めこれを利用しようとも思ったのですが、そのためには 他にゲート IC がかなり必要となりそうなので断念し、単純に新たに 74HC161 を設けて処理することにしました( 1 bit しか使用しないので 3 bit は未使用となる)。

 次に、新たに定義追加した2つの命令を示します。


     イミディエイトデータで示された番地 + 16 番地へジャンプする。
     実行時、C フラグの影響を受けない。 実行後、C フラグが 0 になる。

     C フラグが 0 のとき、イミディエイトデータで示された番地 + 16 番地へジャンプする。 C フラグが 1 のとき、何もしない。
     実行時、C フラグにより動作が変化する。 実行後、C フラグが 0 になる。

| ページトップ |

■ (TD4 改) 回路図 ■

| 回路図 (4bitCPU_TD4b.CE3) |

 クロック回路とリセット回路を、少々変更しました。 クロック回路については、回路そのものについての変更はありませんが、そのクロック数を測定するのに、改造前は LED の点滅を目視で数えていたのですが、 これは大変だったので、外部カウンタ(例:かなり前に作製した "7セグメントLED4桁表示カウンター" 等)を使用して正確に測定ができるようにと、 その信号を取り出すための /CLK 端子を設けました。 また、外部カウンタ等への 電源供給も簡単に行なえるように、プリント基板上に供給用の電源端子も設けておきました。
 リセット回路については、スイッチを押してから実際にリセットされるまでに約1秒もかかるというのには、使用していてやはり違和感を感じます。 そこで TD4 教科書の 99 ページに 書かれている回路図に変更をしました。 ダイオードも付加してあります。

その後の変更

 クロック回路についてなんですが、"TD4 改" の完成後もいろいろなプログラムを走らせていて、どうも気になって仕方がないことがありました。 それは RESET スイッチを押下中にも関わらず、 CLOCK LED が点滅していることです。 これはクロック数を測定していて気が付いたのですが、RESET スイッチを押下中には、やはりクロック出力は停止すべきではないでしょうか … 。

 そこで上記 (TD4 改) 回路図 に示すように、余っている NAND ゲートを使って、RESET 信号を条件に加えてクロック出力を取り出すように変更をしました。

その他の回路検討

 拡張メモリ用のデコード回路についてですが、上記 (TD4 改) 回路図 では、ブザーの発振回路で使用した残りの 1/4 74HC00 と新規の 74HC04 を使用したために、 配線が少々面倒になってしまいました。 これは次の回路図に示すように新規に 74HC02 を使用すれば、回路図もすっきりするし配線量もその分少なくて済んだのですが、 … 後の祭りでした。

| ページトップ |

■ ケース外観と内部の様子 ■

ケース正面の斜め上から見たところ ケース背面の斜め上から見たところ
ケース左側面の斜め上から見たところ ケース右側面の斜め上から見たところ
2つの基板を繋ぐフラットケーブルコネクタは、
両基板から外さないとつかえて蓋が閉まらない
蓋をあけてケース内部を真上から見たところ 蓋をあけてケース内部を正面の斜め上から見たところ

| ページトップ |

■ プログラム(2) ■

 以下のプログラムは、拡張メモリを使用した "TD4 改" 用の "3-3-7拍子・プログラム" です。 10 Hz クロックで動作をさせてください。
	ADDR	OBJECT			OP			;COMMENT

				;3-3-7拍子 プログラム (クロック: 10 Hz )
				;
				;	Copyright (c) 2011 by M.Yamamoto
				;
	00000	0111 1110	J1	MOV	B, 16-2		;3拍子を2回
	00001	0011 1101	J2	MOV	A, 16-3		;3拍子
	00010	1011 1000	J3	OUT	8		;これ以降4クロックオン
	00011	1011 1100		OUT	8+4		;
	00100	1011 1110		OUT	8+4+2		;
	00101	1011 1111		OUT	8+4+2+1		;
	00110	1011 0000		OUT	0		;これ以降4クロックオフ
	00111	1011 0000		OUT	0		;
	01000	0000 0001		ADD	A, 1		;
	01001	1110 0010(00010)	JNC	J3		;
				;
	01010	1011 0000		OUT	0		;これ以降8クロックオフ
	01011	1011 0000		OUT	0		;
	01100	1011 0000		OUT	0		;
	01101	1011 0000		OUT	0		;
	01110	1011 0000		OUT	0		;
	01111	0101 0001		ADD	B, 1		;
	10000	1110 0001(00001)	JNC	J2		;
				;
	10001	0011 1001		MOV	A, 16-7		;7拍子
	10010	1011 1000	J4	OUT	8		;これ以降4クロックオン
	10011	1011 1100		OUT	8+4		;
	10100	1011 1110		OUT	8+4+2		;
	10101	1011 1111		OUT	8+4+2+1		;
	10110	1011 0000		OUT	0		;これ以降4クロックオフ
	10111	1011 0000		OUT	0		;
	11000	0000 0001		ADD	A, 1		;
	11001	1100 0010(10010)	JNC2	J4		;
				;
	11010	1011 0000		OUT	0		;これ以降8クロックオフ
	11011	1011 0000		OUT	0		;
	11100	1011 0000		OUT	0		;
	11101	1011 0000		OUT	0		;
	11110	1011 0000		OUT	0		;
	11111	1111 0000(00000)	JMP	J1		;


 上記のプログラムでは、テンポが少々スローだったので、25 % ほど早くした "3-3-7拍子・プログラム(2)" です。 10 Hz クロックで動作をさせてください。
	ADDR	OBJECT			OP			;COMMENT

				;3-3-7拍子 プログラム(2) (クロック: 10 Hz )
				;
				;	Copyright (c) 2011 by M.Yamamoto
				;
	00000	0111 1110	J1	MOV	B, 16-2		;3拍子を2回
	00001	0011 1101	J2	MOV	A, 16-3		;3拍子
	00010	1011 1100	J3	OUT	8+4		;これ以降3クロックオン
	00011	1011 1110		OUT	8+4+2		;
	00100	1011 1111		OUT	8+4+2+1		;
	00101	1011 0000		OUT	0		;これ以降3クロックオフ
	00110	0000 0001		ADD	A, 1		;
	00111	1110 0010(00010)	JNC	J3		;
				;
	01000	1011 0000		OUT	0		;これ以降6クロックオフ
	01001	0000 0000		NOP(ADD A,0)		;
	01010	0000 0000		NOP(ADD A,0)		;
	01011	0101 0001		ADD	B, 1		;
	01100	1110 0001(00001)	JNC	J2		;
				;
	01101	0011 1001		MOV	A, 16-7		;7拍子
	01110	1011 1100	J4	OUT	8+4		;これ以降3クロックオン
	01111	1011 1110		OUT	8+4+2		;
	10000	1011 1111		OUT	8+4+2+1		;
	10001	1011 0000		OUT	0		;これ以降3クロックオフ
	10010	0000 0001		ADD	A, 1		;
	10011	1110 1110(01110)	JNC	J4		;
				;
	10100	1011 0000		OUT	0		;これ以降6クロックオフ
	10101	0000 0000		NOP(ADD A,0)		;
	10110	0000 0000		NOP(ADD A,0)		;
	10111	1111 0000(00000)	JMP	J1		;


 以下のプログラムは、 上記 の TD4 教科書に紹介されていた "ラーメンタイマー・プログラム" を、"TD4 改" 用に全く新しく作り直したものです。

 上記のプログラムでは、メモリが少ないために十分なプログラミングができなく、かなりアバウト(ブザーを鳴動まで 194 クロック = 3 分 14 秒)な時間設定になっていましたが、 このプログラムでは、ぴったり "3分" のタイマーができました。(ちなみに本プログラムでは、181 クロック目と同時に "ブー" の長音が鳴る)
	ADDR	OBJECT			OP			;COMMENT

				;"3分" ラーメンタイマー プログラム(改)
				;
				;	Copyright (c) 2011 by M.Yamamoto
				;
	00000	1011 0111		OUT	4+2+1		;LEDを3つ点灯
	00001	0111 1110		MOV	B, 16-2		;
	00010	0011 0011	J1	MOV	A, 16-13	;
	00011	0000 0001	J2	ADD	A, 1		;
	00100	1110 0011		JNC	J2		;2 x 13 = 26 クロック
				;
	00101	0101 0001		ADD	B, 1		;
	00110	1110 0010		JNC	J1		;
				;				;ここまで 60 クロック経過
				;
	00111	1011 0110		OUT	4+2		;LEDを2つ点灯
	01000	0111 1110		MOV	B, 16-2		;
	01001	0011 0011	J3	MOV	A, 16-13	;
	01010	0000 0001	J4	ADD	A, 1		;
	01011	1110 1010		JNC	J4		;2 x 13 = 26 クロック
				;
	01100	0101 0001		ADD	B, 1		;
	01101	1110 1001		JNC	J3		;
				;				;ここまで 60 x 2 = 120 クロック 経過
				;
	01110	0011 0011		MOV	A, 16-13	;
	01111	1011 0000	J5	OUT	0		;LEDを全部消灯
	10000	1011 0100		OUT	4		;LEDを1つ点灯
	10001	0000 0001		ADD	A, 1		;
	10010	1110 1111		JNC	J5		;1 + 4 x 13 = 1 + 52 = 53 クロック
				;
	10011	1011 0000		OUT	0		;LEDを全部消灯
	10100	1011 1100		OUT	8+4		;"ブッ" 6 秒前
	10101	1011 0000		OUT	0		;LEDを全部消灯
	10110	1011 1100		OUT	8+4		;"ブッ" 4 秒前
	10111	1011 0000		OUT	0		;LEDを全部消灯
	11000	1011 1100		OUT	8+4		;"ブッ" 2 秒前
	11001	1011 0000		OUT	0		;LEDを全部消灯
				;				;ここまで 60 x 3 = 180 クロック 経過
				;
	11010	1011 1000		OUT	8		;"ブー" 終了のLEDを点灯(ブザーを鳴動)
	11011	1101 1011	J6	JMP2	J6		;自分自身へジャンプ(無限ループ)

| ページトップ |

■ 部品配置図 ■

 使用したプリント基板は、"秋月電子通商" の 155 x 210 mm (通販コード P-04798 ) と、155 x 114 mm (通販コード P-04708 ) サイズのガラスエポキシ片面ユニバーサル基板です。 後者については少々大きかったため、右下の図のようにカットをしました。


| 部品配置図 (メイン基板) (4bitCPU_TD4a_PC2.CE3) | ページトップ |

| 部品配置図 (拡張メモリ基板) (4bitCPU_TD4a2_PC2.CE3) |

■ プリント基板(改)パターン図 (部品面) ■

(ヒント) 各LEDをプリント基板に取り付けるにあたって、それらを直に取り付けるのではなく、間にスペーサーを挟んで取り付けています。 専用のスペーサーは高価なので、 私はピンヘッダのピンを抜いた残りの台座部分を、LED数に応じて適度な長さにカットしたものを利用しています。

| プリント基板(改)パターン図 (部品面) (4bitCPU_TD4a_PC.CE3) | ページトップ |

■ プリント基板(改)パターン図 (ハンダ面) ■

| プリント基板(改)パターン図 (ハンダ面) (4bitCPU_TD4a_PC1.CE3) | ページトップ |

■ プリント基板(2)パターン図 (部品面) ■

| プリント基板(2)パターン図 (部品面) (4bitCPU_TD4a2_PC.CE3) | ページトップ |

■ プリント基板(2)パターン図 (ハンダ面) ■

| プリント基板(2)パターン図 (ハンダ面) (4bitCPU_TD4a2_PC1.CE3) | ページトップ |

■ ケース加工図 ■

 メモリの拡張基板も作り "TD4 改" に機能アップしたのをきっかけに、プリント基板全体をケースへ収納することにしました。 何か適当なものがないかと 100 円ショップをあちこち探した結果、セリア大曽根店でぴったりなケースを見つけました。 "フリーケース A5 L8998 (サナダ精工株式会社)" というもので、サイズ:幅241 x 奥行167 x 高さ39 mm、材質:ポリプロピレン です。

 ぴったりなケースと書きましたが、実は内寸で奥行(下図では横幅)がせめて 1 mm でも大きければ本当にぴったりな物になるのですが … 。 現状では少しばかり無理をして収納しているため、ケースがほんの少し外側に湾曲しています。 そのため蓋をするときに少々無理がかかりますが、 特注ではないし、まあ、OK の範囲内でしょう。

| ケース加工図 (4bitCPU_TD4_CS.CE3) | ページトップ |

 プリント基板をケースへ収納したことにより、AC アダプタのプラグがケースにつかえて、DC ジャックへ挿入ができなくなってしまいました。 そこでパネル取り付け型の DC ジャックを新たにケース左側面に取り付け、そこに AC アダプタからの電源を供給するようにしました。

 また、パネル取り付け型ジャックの使用でケース内の下部分に少々の空きスペースができたため、そこに電池ケースを収納してバッテリ駆動も可能なようにしました。 単3電池 x 4本で使用をしますが、電圧が 6V となるため、ダイオードを1本直列に挿入して順方向電圧(約 0.6V)の分だけ降圧をしています。

   L 型Φ2.1 DCプラグ

パネル取り付け型ジャックと基板取り付け型ジャックとを繋ぐのに、通常の真っ直ぐのプラグでは、ケースの右側面に当たって使えないため、 ここでは L 型プラグをカバーを外して使用しました。

■ 使用部品表 ■

(主要部品: IC, トランジスタ等)

(データシート)
HC-MOS IC (Quad. 2-input NAND Gates) .......... μPD74HC00C
HC-MOS IC (Hex Inverters) .......... HD74HC04P
HC-MOS IC (Triple 3-input NAND Gates) .......... HD74HC10P
HC-MOS IC (Hex Schmitt-trigger Inverters) .......... HD74HC14P
HC-MOS IC (Quad. 2-input OR Gates) .......... HD74HC32P
HC-MOS IC (Dual D-type Flip-Flops) .......... HD74HC74P
HC-MOS IC (3-to-8-line Decoder/Demultiplexer) .......... μPD74HC138C
HC-MOS IC (Dual 4-to-1-line Data Selectors/Multiplexers) .......... HD74HC153P
HC-MOS IC (Syncronous 4-bit Binary Counter) .......... TC74HC161P
HC-MOS IC (4-bit Binary Full Adder) .......... TC74HC283AP
HC-MOS IC (Octal Buffers and Line Drivers (with 3-state outputs)) .......... M74HC540P
スイッチングダイオード .......... 1N4148
赤色LED .......... OSDR3133A
緑色LED .......... OSNG3133A
黄色LED .......... OSYL3133A

| 部品表 | Excel ファイル (4bitCPU_TD4_parts.xls) | ページトップ |

■ 参考サイト ■

CPUの創りかた(書籍) .......... http://www.amazon.co.jp/gp/product/images/4839909865/ref=dp_image_0?ie=UTF8&n=465392&s=books
CPUの創りかた ファンページ .......... http://www.cable-net.ne.jp/user/takahisa/td4/index.html
CPUを作る TD4への道 .......... http://www9.plala.or.jp/fsson/NewHP_elc/TD4/TD4_1mk.html (現在リンク切れ)
TD4 互換機の製作 .......... http://www.geocities.jp/team_zero_three/TD4/index.html (現在リンク切れ)
4BitCPU製作 .......... http://zairyo.susi.oita-u.ac.jp/kondolab/sige/cpu.htm
「CPUの創りかた」の作り方 .......... http://homepage2.nifty.com/AyanokojiMikan/ (現在リンク切れ)

| ページトップ | ホーム |


Copyright (C) 2011-2023 やまもとみのる
初版:2011年7月27日、初公開:2013年6月17日、最終更新:2023年10月28日