標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第146回]

●PC(プログラムカウンタ)の回路を実装しました

[第143回]の「開発速報」でお伝えしましたように、パーツの組み付け作業は、このホームページでの説明よりも、少し先行しています。
現在はさらに進んでいて、INR/DCR命令と条件ジャンプ命令まで組み付けが進み、動作テストも実施中です。
INR命令と条件ジャンプ命令を組み合わせることで、長時間のエージングテストが可能になりました(ちゃんと、動作していますよ!)。

早くそのあたりのところもお知らせしたいのですが、そうすると、またまた説明の順序が先になったり後になったりして、ただでさえややこしいのに、余計混乱してしまって、説明をしている本人が一番混乱して何がなんだかわからなくなってしまうおそれが十分にあります。
確か前の方のどこかで書いたように思いますが、実際に組立キットとして製品になったときのために、その組立順序をはっきり説明できるような記録を残しておく、という目的もありますから、ここはあせらないで、順をおって説明を進めていきたいと思います。

組立状況については、[第137回]でクロック回路を実装、[第138回]でメモリ(RAM)と、アドレススイッチ、データスイッチを実装した写真をお見せしたところまでで終わっていました。

今回はその続きです。
PC(プログラムカウンタ)の回路を実装したところです。
写真をクリックすると、拡大画像を見られます。
拡大画像はサイズが大きい(890KB)ので、インターネットの低速接続環境ではダウンロードに時間がかかります。ご注意ください。



メモリWRITE用PUSHスイッチ回路の、74HC04でつくったシュミットトリガ回路は、不要になったため、それに使っていた74HC04は外してしまいました。まだ抵抗とコンデンサはそのまま残っています(基板下部右寄り。[第143回]参照)。
動作不良がみつかった74HC123も交換して、念のためICソケットを使っています。

この2個のICは、[第137回]でお見せした写真では下のようについていました。



同じ部分の変更後の写真です。



●PC(プログラムカウンタ)のLED表示がおかしい

PC(プログラムカウンタ)回路を実装したので、さっそく電源をつないで動作を確認してみました。
といっても、まだ命令回路は何も実装していませんから、PC(プログラムカウンタ)も高速で永久にUPカウントし続けるだけです。

ところが電源を入れてみると、PC(プログラムカウンタ)の値を表示するLEDのうちの1つが少しおかしいのです。
ビット6だけが他のLEDよりも少し暗いように見えます。



右から7番目がわずかに暗いことがわかりますでしょうか。

オシロスコープで確認してみました。



典型的なラインショートの波形です。
PC(プログラムカウンタ)のビット6のラインに、どこかのクロック信号(約20μs周期の幅の狭いパルス)がショートしているようです。

●ラインショートをみつけました



丸印で示した部分の中央付近で、もろに2本のラインが交差してしまっています。
うーん。図面チェックはしたんですけれどねえ…。
やっぱりこれだけ大きい基板だと、どうしても、見落としが出てきてしまいます。

ショートしているラインをカットして、つなぎなおしました。
きれいな波形になりましたよ。



●レジスタ回路を実装しました

写真をクリックすると、拡大画像を見られます。
拡大画像はサイズが大きい(1.1MB)ので、インターネットの低速接続環境ではダウンロードに時間がかかります。ご注意ください。



写真中ほど左端から、D、E、B、C、Aの各レジスタです。
その下は左から、H、Lレジスタです。
さらにその下は左から、WKL(ワークレジスタ下位8ビット)、PCH(プログラムカウンタ上位8ビット)、PCL(プログラムカウンタ下位8ビット)です。

●MOV命令の回路を実装しました

いよいよ最初の命令回路の実装です。
MOV、MVI、それとOPコードがMOVと同じ体系なので、HLTも一緒に実装です。

写真をクリックすると、拡大画像を見られます。
拡大画像はサイズが大きい(1.1MB)ので、インターネットの低速接続環境ではダウンロードに時間がかかります。ご注意ください。



少しICの数が増えてきました。
中央付近と右端あたりに、ICの「集落」が出来てきました。
これで、とりあえずは、最初のプログラム動作を実行させることができます。

MVI命令を実行して、各レジスタに値を書き込んだあと、HLT命令を実行します。
その動作テストの様子については、[第143回]の「開発速報」でお伝えしました。

まずは無事、動作成功。でしたけれど、本格的な動作テストのためには、もう少し命令回路を組み込まなくてはなりません。
2009.1.23upload

前へ
次へ
ホームページトップへ戻る