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

トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆


[第199回]



●OPコードフェッチ回路

Windows98SEマシンが突然ダウンしてしまったことから始まったその後のあれこれを書いてきましたために、当テーマでは1ヶ月ぶりの更新となります。
その間はほとんどWindows98SEマシン関連の対策に忙殺されておりましたので、当テーマ関連としてはほとんど休止しておりました。
Windows98SEマシンについてはやっとなんとか落ち着きましたので、久し振りの作業再開となりました。

前回までは何回かに渡って命令デコード回路について書いてきましたが、その命令デコード回路の前段に置く重要な回路が今回のテーマ、OPコードフェッチ回路です。
CPUは最初のマシンサイクルでデータバスから8ビットのデータ(実は命令コード)をラッチします。
命令コード(OPコード)はその命令の実行が完了するまでラッチされたまま、命令デコード回路のラインに出力されます。
その実体は単なる8ビットのデータラッチです。

データラッチについてはもう半年以上も前に[第160回]で書いています。
そこに書きました通りの8ビットデータラッチ回路を作ればよいだけなので、実はOPコードフェッチ回路基板はもうかなり前に作ってしまっていました。
ところがデータラッチ関連をもう少し深く進めようということでINC/DEC REGISTERの回路に突き進んでしまいました。
これがかなり面倒なことになってしまいました。
そのためすでにできあがっていたOPコードフェッチ回路基板には手をつけないままできてしまいました。
INC/DEC REGISTER回路基板についても何回目かの試作基板ができあがってきているのですが、Windows98SEマシンダウン事件がおきたために、まだパーツの実装にかかれないままになっていました。
INC/DEC REGISTER回路基板よりはOPコードフェッチ回路基板のほうがかなりシンプルな回路なので、作業を再開する手始めにOPコードフェッチ回路基板の動作テストにかかることにしました。

実は、OPコードフェッチ回路については動作テストにかかる前から、回路がまずいんじゃないかなあということにうすうす気が付いていました。
同じ問題はINC/DEC REGISTER回路にもあって、そちらのほうは回路変更をしたうえで試作基板を製作したのですが、OPコードフェッチ回路基板はそのことに気が付くよりも前に作ってしまっていましたので、もう部品を実装する前から多分作り直しだなあという見当がほぼついておりました。
ま、しかし、せっかく作った基板なので、その問題点が実のところどうなのかというあたりを念のために確認してみることにしました。
その問題点とはバイポーラトランジスタの逆接続回路です。
バイポーラトランジスタの逆接続回路については、[第162回]あたりに書いていますが、この時点ではまだ認識が甘かったのでした。
ここでの認識が甘かったために、その後のINC/DEC REGISTER回路でもその問題をそのまま引きずってしまいました。
INC/DEC REGISTER回路については[第186回]まで長々と書いていますが、この時点ではまだバイポーラトランジスタの逆接続回路の問題については本当には気が付いていませんでした。
いえ。
ときどきは「いいのかなあ」と、頭の隅でちらりちらりとその疑問が浮かんではいたのですが、でもまあまともに動作しているようだから、ま、いいか、と見過ごしてしまいました。
結局ずっとあとになってから、なんだかときどき気持ち悪い誤動作をすることに気が付いて、その問題に本気で向き合うことになりました。

本日は時間がありません。
何がどう問題なのかということについて、次回に詳しく説明することにいたします。

トランジスタでCPUをつくろう![第199回]
2020.3.8upload

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