トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第175回]
●マシンクロック(Tクロック)回路(2)
今回の回路もPIC−CPLDロジアナで動作確認をしてみることにしました。
下はその測定を行なっているときの写真です。
左上がCPUクロック基板です。
その下が今回製作したT0ーT7(T8−T15)回路基板です。
右側はPIC−CPLDロジアナ基板です。
測定した波形です。
この表示窓はスクロールバーがあることのほか、マウスを表示窓の右端に持っていってそこでドラッグすることで、表示窓を左右に広げることができます。
プログラムを自分で作っておいて、備わっている機能についてはすっかり忘れてしまっていました。
一番上の波形はクロックE(125KHz)です。
その下は上から順にT0〜T6です。
T0〜T15はクロックEがLの期間中(4μs)に出力されます。
各出力信号の幅はクロックA(2MHz、0.5μs)の半幅(0.25μs)です。
図の縦線の間隔は0.5μsですから計算通りの波形になっています。
Tクロック回路基板は基板上にT0〜T7の連続する8出力回路しか載せていません。
ジャンパピンの設定によってT0〜T7の出力とT8〜T15の出力を選ぶことができます。
同じ2枚の基板を作ってそれをつなぐことでT0〜T15までの出力が得られるように考えてあります。
ところで、今のところPIC−CPLDロジアナは同時に8ビットしか測定できませんから上の図のようにそのうちの1ビットをクロックEに割り当てると、同時にはT0〜T6の7出力しか観測することができません。
そこでT7の波形を見るためにクロックEを外して、代わりにT7をつないでみました。
見た目ではT7が一番上になっていますが、出力される順で見るとT0〜T7の順に並んでいます。
ジャンパピンの設定を変えて、T8〜T14を観測してみました。
クロックEがLの期間のちょうど半分が過ぎたところにT8があります。
さきほどのT7と同様に、T15が残ってしまいますから、T7のときと同じようにしてクロックEの代わりにT15をつないで観測しました。
クロックEを外しているため、T0〜T7の観測画面と同じに見えますが、こちらはT8〜T15の観測画面です。
ところで上の観測画面のところどころにゴミのようなパルスが見えることにお気付きのことと思います。
これは当初から想定していたことなのですが。
TクロックはA〜EのクロックのANDを取って作成します。
ところがA〜Eの各クロックはロジック回路を何段も通りながら出力されるため、どうしても出力に遅れが生じます。
その遅れが生じている信号のANDを取るために、遅れが無い場合には発生しないはずのヒゲが発生してしまいます。
下はクロックEとT0の波形をオシロで観測した写真です。
本来のパルスのほかにかなりはっきりしたヒゲが見えます。
時間軸を拡大してみました。
この程度の時間軸ではパルス幅ははっきり読めませんが、ヒゲの幅は40nsぐらいはありそうです。
逆にT0は計算上は250nsのはずなのですが、200nsを切っているように見えます。
160〜170nsぐらいしかないように見えます。
T0の幅が狭いことも問題ですが、ヒゲも気になります。
MYCPU80でもこれよりは狭いものの同じようにヒゲがありました。
MYCPU80ではそのヒゲはコンデンサでつぶしたのですが、今回のように幅が広いヒゲをコンデンサでつぶすようにすると、せっかくのシャープな立ち上がり、立ち下がりのTクロック出力そのものまでなまってしまいます。
ここは悩ましいところです。
最終的には全体では数千個のトランジスタ回路になる予定なので、全体の回路をつなげばその負荷容量のためにどうせ小さいパルスなどはつぶれてしまうとも考えられます。
しかし。
ちょっとヒゲが大きいので、ひょっとすると、A〜Eの出力の足並みを揃えて出力させるように工夫する必要が出てくるかもしれません。
同期式カウンタの考え方ですが、教科書的な考え方をすると出力信号が細ってしまいそうです。
いずれそうならないような工夫も考えてみるつもりですが、そこに首を突っ込むと先に進めなくなってしまいます。
現状のヒゲがあるままで、しばらくはこのまま進むことにします。
トランジスタでCPUをつくろう![第175回]
2019.11.6upload
前へ
次へ
ホームページトップへ戻る