トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第161回]
●データラッチ
前回はRSフリップフロップをコアとするデータラッチ回路について書きました。
今回はその回路の検証です。
下は動作テスト中の写真です。
左はクロック発生回路です。
右にあるのが今回作成したテスト回路です。
もう使わなくなってしまった試作基板を利用して、そこに前回の回路を作りました。
簡便なテストのため、CKには4MHzを、Dには1MHzのクロックを入力しました。
上の写真の状態で電源を入れて、各信号をオシロスコープで観測しました。
上側(CH1)はクロック発生回路から出力された4MHzクロックです。
これをそのままCK信号として使っています。
下側(CH2)はQ出力です。
この写真だけからはわかりませんが、このときD入力には同じくクロック発生回路から出力された1MHzクロックが入力されています。
クロック発生回路から出力されるクロック信号は4MHzを分周したものなので、1MHzも4MHzとは同期がとれていて、4MHzの下がりエッジで変化します。
写真を見るとQ出力は1MHzですが、その波形はCH1の上がりエッジで変化しているようです。
考えた通りの動作になっているように見えますがこれだけではまだわかりません。
CH2にQ_出力をつなぎました。
上の写真とほぼ同じで、これだけではQ出力かQ_出力かということさえもわかりません。
そこで今度はCH1にD入力をつなぎ、CH2にはQ出力をつないでみましたが…。
D入力とQ出力が4MHzクロックの半クロック分ぐらい(約100ns)ずれていることはわかりますが、この写真からはそれ以上のことはいまひとつよくわかりません。
高性能のオシロスコープでもこういうロジック系の回路の観測ではちょっともどかしさを感じます。
せめて4CHぐらいは同時に観測したいものです。
そういうことになりますと、ここはやっぱりロジックアナライザの出番でしょう。
ときどき登場するカメレオンロジアナです。
PROBE00はCK(4MHz)、PROBE01はD入力(1MHz)、PROBE02はQ出力、PROBE03はQ_出力です。
こういうときにはロジアナの威力を実感します。
CKがHになったタイミングでそのときのD入力の状態がQ、Q_に出力されていることがわかります。
さらによく見ますとQがHからLになるときはCKの立ち上がりと一致していますが、QがLからHになるときは、CKの立ち上がりから少し遅れているようです。
D入力がQ、Q_出力に反映されるようになるタイミングはWRVとWRGがアクティブになるときです(前回の回路図参照)。
細かいことを言いますと、WRVはWRGよりも1ゲート分遅れてアクティブになります。
QがLからHになるということはQ出力段のA1015がアクティブになるときですから、それはA1015のベース入力がHからLになるときです。
それはその前段のインバータ出力がLになるときですから、インバータ出力回路のC1815がアクティブになるときです。
ということはWRGがアクティブになるときです。
あれえ、それじゃあ逆ですねえ。
WRGは真っ先にアクティブになるはずで、インバータ回路の遅れが10nsだとすると、CK入力からWRGがアクティブになるまでに10ns、それがQ出力に反映されるまでにさらに10nsですから、QがLからHになるまでにCKの立ち上がりから20nsかかる計算です。
WRVはCKの立ち上がりからアクティブになるまで20ns、それがQ出力に反映される(HからLになる)までにさらに10nsですから、QがHからLになるまでにはCKの立ち上がりから30nsかかる計算です。
うーん。
やっぱり逆ですねえ。
サンプリングレートを100MHzにしてみました。
今度はQ出力の立ち上がりと立ち下りとでは、CK入力からの遅れにほとんど差がないように見えます。
サンプリングレートが100MHzということは、10nsに1回のサンプリングですから、すくなくとも10nsの誤差は出てしまうことになります。
先ほどの測定は25MHzですから40ns以下の差は実のところどうなっているのかわからないということになります。
25MHzでの測定ではたまたまQの立ち下りがCKから遅れているように見えますが、100MHzでの測定結果で見る限り、立ち上がりも立ち下がりも計算で得られる数値以上の遅れは多分無いだろうと考えてよいと思います。
CK入力からQ出力までの遅れが20ns〜30nsということでしたら、トランジスタCPU回路のレジスタとしては、これはもう十分な性能だと思います。
トランジスタでCPUをつくろう![第161回]
2019.9.21upload
前へ
次へ
ホームページトップへ戻る