トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第101回]
●ALU回路の基板化を検討中です
久しぶりの更新になってしまいました。
ここ数日は急ぎの注文が重なってしまって、とてもHPの更新にまで手が回りませんでした。
この土曜日も日曜日も休みなしで作業してやっと急ぎの注文については発送できるところまでできました。
ほっと一息ついたところで、久しぶりの本題復帰です。
前回までのところで、[HC373]回路や[HC139]回路の基板化作業を行ないました。
それで。
まだ基板化できていない回路を残していることを思い出しました。
CPU回路の頭脳ともいうべきALU回路です。
ALU回路は[第69回]でテスト回路を組み立てて動作確認をしたところまでで終ってしまっていました。
そこではテスト的に1ビット分の回路を組み立ててテストをしました。
いずれ8ビット分の回路として基板を作るつもりでいたのですが、そのままになっていました。
その後[HC373]回路や[HC139]回路の基板化の作業をしましたので、そこそこ大きな回路の基板化にも少し慣れたように思います。
そこで、今度はALU回路の基板化に取り組もうというわけです。
しかし。
[HC373]回路や[HC139]回路もかなりの回路でしたが、ALU回路はそれらを上回る規模の回路です。
[第69回]の時点ではロジック回路をただそのままトランジスタに置き換えましたが、[HC373]回路や[HC139]回路を経験しましたので、その経験をふまえて、まずはALU回路のトランジスタ数の削減について検討することにしました。
ALU回路の実体はXORを2段重ねにしたものがベースになっています。
そこでそのXOR回路のトランジスタをなんとかして少しでも減らすことができないか検討してみました。
ロジックシンボルをトランジスタに置き換えたXOR回路をじっくり眺めていましたら、少しですけれどトランジスタを削減できそうなところがみつかりました。
こちらは[第69回]でお見せした1ビットのFull Adder回路です。
全加算器であるとともにAND、OR、XORの回路にもなっていますから、これはALU(Arithmetic Logic Unit)であるといえるでしょう。
こちらも[第69回]でお見せしました。
上の回路をトランジスタに置き換えた回路図です。
1ビット分の回路でトランジスタを34個も使います。
8ビットでは272個ですが、実はそのほかに出力を3ステートにしなければならないなど、さらに追加しなければならないトランジスタがありますから、本当に必要な数はもっと多くなります。
そこで少しでもトランジスタの数を減らそうと考えました。
上の回路をよく見ると同じ回路を2つ重ねた形になっています。
Half Adder回路の2段重ねですが、Half Adder回路はそのままXOR回路でもあります(点線で囲んだ部分)。
トランジスタで置き換えた回路からXORの1回路を取り出すと下の回路になります。
この回路をじっくり眺めていましたら、少しですがトランジスタを減らせそうなところがあることに気が付きました。
説明の途中ですが、本日は時間がなくなってしまいましたので、この続きは次回にいたします。
トランジスタでCPUをつくろう![第101回]
2015.7.26upload
前へ
次へ
ホームページトップへ戻る