トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第120回]
●[HC373]の組立て(3)
前回は[HC373]基板のビット7回路のみにトランジスタを実装し完成させてテストしたところ、正常に動作することが確認できました。
そこで次にビット6にもトランジスタを実装してテストをしました。
”1”を書き込んだところまでは順調だったのですが…。
ところが”0”を書き込んだところ、ND80Z3.5が暴走してしまいました。
[HC373]のテストはND80Z3.5の拡張バスに[HC139]を接続して、さらにその外に[HC373]を接続して行なっています。
[HC139]でI/Oアドレスを選択して、そのセレクト信号を[HC373]に送っています。
そのようにすることでND80Z3.5からは[HC373]は特定のI/Oアドレスでアクセスできる外部I/Oになります。
今回は[HC139]のG1_、G2_、C、B、AにアドレスラインのA7、A6、A2、A1、A0を接続して、ND80Z3.5から、
LD A,FF
OUT (00),A
および
LD A,00
OUT (00),A
を実行しました。
FFをOUTしたときはそれがちゃんと[HC373]に書き込まれて(といってもまだビット7とビット6だけですが)、特に問題もおきませんでした。
ところが上に書きましたように00をOUTしたところ、どういうわけかND80Z3.5が暴走してしまいました。
これもちょっと原因がわからず、あちこちの信号をオシロで確認したりしたのですが、さっぱりわかりません。
が、そのうちにおかしなことに気が付きました。
どうもデータラインがおかしいようです。
[HC373]の回路図は[第92回]でお見せしましたが、参考までに下に再掲します。
点線で囲んだところは1ビット分の回路です。
丸で囲んだAのトランジスタはCS_とOE_がアクティブになったときだけにONになります。
このトランジスタのドレインはほかのビットの出力回路のトランジスタ(丸B)のソースに共通につながっています。
今回のテストではND80Z3.5で
IN A,(00)
を実行したときだけAのトランジスタはONになります。
それ以外のときは丸AのトランジスタはOFFですから丸Aのドレイン(丸Bのソース)のラインはハイインピーダンスになるはずですが…。
実際にオシロで見てみるとしっかりデータラインの波形が出力されてしまっています。
そんなばかな…。
あれ?
まてよ。
前にもどこかで同じようなことを経験したような…?
説明の途中ですが、本日は時間がなくなってしまいました。
次回に続きます。
トランジスタでCPUをつくろう![第120回]
2015.8.30upload
前へ
次へ
ホームページトップへ戻る