トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第355回]
●T0がありませんでした
CPLDロジアナで観測したマシンクロックの波形を見ていて、シフトレジスタの出力波形がちょっとおかしいことに気が付きました。
下は前回お見せしたCPLDロジアナの出力波形です。
これは10MHzでの測定結果です。
前回はPROBE2〜5がT0〜T3信号だと説明しました。
最初はそのように思っていたのですが、波形を見ているうちにそれがどうやら間違っているらしいことに気が付きました。
図の波形ではPROBE0のCLR信号が立ち上がったあと、PROBE1のCLK(CPUクロック)がL、Hと1周期カウントしたあとでPROBE2から1CLK周期分のパルスが出力されています。
PROBE1の最初の1周期分のパルスがありません。
本当はそこがT0なのではないか?
すると当初はT0だと思っていたPROBE2は実はT1でその次のPROBE3はT2ではないだろうか?
念のためにMYCPU80の回路図で確認をしてみました。
MYCPU80のマシンクロックの回路図は[第174回]でお見せしています。
下に再掲します。
この回路図を見るとCLK信号をカウントする74HC161+74HC74で構成する5ビットのバイナリカウンタの出力が00000のときにT0が出力されることがわかります。
やっぱりCLR後の最初のCLKのLとHの1周期がT0です。
うーん。
そういうことになるとせっかく手ハンダでテスト回路を組んだのですけれど、そのように回路を変更して、もう一度テスト回路を組み直さなければなりません。
なかなかに面倒なことです。
下がそのように変更した回路図です。
とりあえず前回のテストでシフトレジスタ案でいけそうということがわかりましたから、T0信号の部分を追加するついでにM、Wのテスト用回路も追加して作図しました。
基本的にはMクロック回路もWクロック回路もTクロック回路と同じです。
[第353回]の回路に74HC08を追加しました。
CLRが立ち上がったあとの初段のD−FFのQ出力がLの期間がT0でHの期間がT1です(T0はCLR信号とのANDを取るためにQの代わりにQ_を使っています)。
この回路でよいのかどうか、まずは前回同様実際にテスト回路を組んで動作を確認してみなければなりません。
それはそうなのですけれど、また同じような回路を手ハンダで組まなければならないというのも面倒な話です。
先に作ったテスト基板の配線を変更して74HC08を追加するという手もあるのですが、ただでさえごちゃごちゃの配線が余計混雑してしまいそうです。
それに今回はTクロック回路だけではなくて、それがうまく動作したらせめてMクロック回路も作って動作を確認したいと考えています。
Tクロック回路とMクロック回路はほとんど同じ回路ですから、そういう意味ではTクロック回路も最初からもう一度作り直したほうがよさそうです。
それならなおさら少しでも簡単に作りたい。
何かよい案はないものか。
おお。
よい案がみつかりました。
次回に続きます。
トランジスタでCPUをつくろう![第355回]
2021.5.24upload
前へ
次へ
ホームページトップへ戻る