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

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


[第95回]


●HC139回路(1)

また2日ほどお休みをしてしまいました。
もちろんお休みしたのはホームページの更新だけで、本業のほうはほとんど年中無休です。

前回やっとトランジスタ版レジスタ回路基板の作成まで書いてきたのですが、終わりのあたりを書きながら、アドレスセレクト回路基板も作るといいなあ、と思うようになりました。
思い立つとすぐに取り掛からないと気がすまない性分なので、さっそく取り掛かってしまいました。
それと並行していくつかの作業も同時進行状態になってしまいましたので、毎度のことながら、ホームページの更新にまで手が回りませんでした。

なぜアドレスセレクト回路かといいますと。

試作品の1ビットレジスタ回路をテストするのに、ND80Z3.5のバスラインに接続したのですが、そのテスト方法は実際に製品版の基板を作ったときにも有効な手段になりうると思いました。
しかし現時点ではジャノ目試作基板上のCS端子にセレクト信号を入れる回路までは作っていません。
それでアバウトですが最も簡単な方法として、ND80Z3.5のバスコネクタから取り出したアドレスA7のラインをそのままCS入力につなぎました。
RD、WR信号としては、IORD、IOWRを使いましたので、そのように接続すると、ジャノ目基板に試作した1ビットレジスタ回路はアドレス00〜7FのI/O回路として機能します。
そのアドレスはND80Z3.5では未使用なので即席のテストとしては使えるわけです。

しかしずっとその方法のままでいくというわけにはいきません。
そのうち回路の種類も増えてくる予定ですし、レジスタ基板を複数枚接続してテストをすることもでてくるかもしれません。
またトランジスタ版MYCPU80そのものの回路としても、レジスタを選択するための仕組みは当然必要です。

そこで当面のテスト用として、また将来のトランジスタ版MYCPU80回路としても利用できるような、レジスタ回路選択信号回路をつくることを考えました。
とりあえずは、この回路の使用目的はレジスタの選択信号を発生させることなのですが、回路そのものはアドレスの選択だけではなくて、コードのデコード回路としても利用できますから、トランジスタ版MYCPU80の回路として応用範囲は広いと思います。

コード(アドレス)のデコードとしては74HC139が定番です。
ですのでレジスタ回路の選択信号を発生させる回路は、74HC139をトランジスタに置き換えたものとして考えることにしました。

74HC139には同じ回路が2回路入っていますが、そのうちの1回路の動作をゲートを使って作ると下の図のようになります。


74HC139の動作は、次の通りです。
G_がHのときは出力Y0〜Y3はHです。
G_がLのとき、入力B、入力Aに入る信号を2ビットの数(Bがビット1、Aがビット0)とみなしてその数に相当する出力端子Y0〜Y3がLになります。
つまり
B=0、A=0のときY0=0、
B=0、A=1のときY1=0、
B=1、A=0のときY2=0、
B=1、A=1のときY3=0、
になります。

その動作はインバータと3入力NANDを使って上の図のように表すことができますから、それをそのままトランジスタに置き換えると下の図になります。

図中に書きましたように74HC139の1/2の回路をトランジスタで作ると30個のトランジスタが必要です。
しかし私が考えているレジスタ選択回路は74HC139の1/2だけでは出来ません。
下のような回路を考えています。


これで出力信号は8本です。
MYCPU80には18個のレジスタがありますから8本のセレクトラインでは全然足りませんが、とりあえずテスト用回路としてはこれだけあればなんとかなりますでしょう。

というよりも。
そもそもこれだけの回路が50mm×100mmの基板に収まりますでしょうか?
前回にもお見せしまたレジスタ回路ではトランジスタは77個でした。
今回のHC139回路は単純計算ではトランジスタ90個です。
とても無理のようです。
もっとも3個の139回路のうちの1個は半分しか使っていませんからその分のトランジスタを省くと78個になります。
これならぎりぎりなんとかなりそうなのですが。

今回の回路ではS0〜S7を出力するためのコネクタや、Bit0〜Bit2、S_信号の入力回路も必要です。
じつは。
それ以外にもできればテスト用にND80Z3.5の拡張バスコネクタにも接続できる仕組みも搭載したいと思っているのです。

そのように考えると、トランジスタが78個もあったのでは、それだけでいっぱいで、そのほかにコネクタなどを配置することはとてもできそうにありません。

そこで。
またしても、トランジスタ数を減らすために、知恵をしぼることになりました。
頭は生きているうちに使うものと言いますが。
確かにその通りでありました。
うんうんうなって考えていましたら、なんとかできそうな案が浮かんできました。
うまくいけばトランジスタ数を半減できそうです。

とりあえずはアイデアを形にするべく、まずは回路図を描いてみました。
しかしこれはまた、いかにもクセものの回路のようで、上でお見せしたトランジスタ回路と同じ動作をする回路とはとても思えないような回路になってしまいました。
そういうことになりますと、これはやっぱりレジスタ回路のときと同じように、実際にジャノ目基板に組んで確かめてみなければ、皆様にそのままお見せするわけにはいきません。

で。
実際にジャノ目基板に組んだりということで、相変わらずですけれどなかなかに多忙な毎日だったのです。
このところ、ほかにもしなければならないことが沢山あって、なかなかホームページを書く時間がありません。
またしても細切れ状態になりそうですが、次回から少しずつ、その工夫したHC139回路について書いていきたいと思っています。

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

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