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

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


[第83回]


●CPUのレジスタ(3)

前々回、前回とCPU回路のレジスタを構成するトランジスタ数を削減する試みについて書いてきました。
今回もその続きです。

下の図は前回にもお見せした8ビットレジスタの1ビット分の基本回路です。



前回はRSフリップフロップに入力するデータ入力部分について考えました。
RSフリップフロップをリセットする(つまり0を入力する)部分について、WR_信号の立ち下がりのタイミングで全ビットを一旦リセットするというアイデアによって、0を入力するための回路を事実上なくしてしまうことができました。

今回は1を入力する部分についても考えてみることにします。
この部分はNANDゲートですから、本来はトランジスタが4個必要です。
しかしここはWR_信号によってゲートされているという特殊性を考慮することで、トランジスタを1個削減できるはず、と考えました(下の回路図)。


WR_の後ろのインバータは8ビットのレジスタについて1回路だけあればよいので、上の回路図のように考えれば、8ビットのデータの入力部分は3×8=24個で済みます。
8個の削減です。

前回までのところで使用することになったトランジスタは85個でした。
今回はそれに26個を加えて合計111個になりました。

ところで前回までの回路について整理をしている過程でもう少しトランジスタを減らせるのではないかと思われるところが出てきました。
そこでその部分も直した上で最終的な回路図を描いてみました。



点線で囲った部分は1ビットのレジスタ回路です。
8ビットのレジスタではこの部分が8回路並ぶことになります。

真ん中のRSフリップフロップはNANDゲートのシンボル図のままですが、ここももちろんトランジスタ回路になります。
ただここをトランジスタに置き換えて図示してもわかりにくいだけですので、このように表現することにしました。
RSフリップフロップはNANDゲート2個ですからトランジスタ数は8個です。
点線の内側にはそのほかにトランジスタが5個ありますから、合計13個です。
その8ビット分ですから13×8=104個です。
それに点線の外部のトランジスタを加えると最終的なトランジスタ数は109個になります。

トランジスタ数について検討を始める前に計算したトランジスタ数は少なくとも180個は必要([第81回])でしたから、かなり大幅な削減です。
もっともこの回路でよいのかどうかの確認は部分的にしかしていませんから、全体としてもテストをして確認してみないことには、本当に使える回路なのかどうかはまだわかりません。
せめて図の1ビット分だけでも実際に回路を組んで試してみる必要があると思います。
どうせテストをするのなら、本番のトランジスタ版MYCPU80はおそらくBS250の代わりに2SA1015を使うことになると思いますから、2SA1015を使った回路で試してみるほうがよいでしょう。
そこで上の回路図のPチャネルMOSFETを2SA1015に置き換えた回路図を作成しました。

この回路を実際に組んでみることは可能ですが、それをどのようにすればテストできるのか、ちょっと考えてみることにいたします。

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

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