トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第63回]
●Half Adder(2)
前回からの続きです。
せっかくXORトランジスタ回路をウラ技で乗り切ったつもりでしたのに、2進加算回路で上位桁へのキャリーを考慮したとたんになんだか先行きが怪しくなってきてしまいました。
そこで一旦仕切り直しです。
お話の流れとしまして、XORにキャリー回路を追加して、下の回路にすることを考えたのですが。
ここは一番、もう一度最初から考え直してみることにいたしました。
実は。
昔からごひいきにしていただいておりますお客様からメールをいただきました。
このところの連載記事をお読みになって、昔の「TTLでCPUをつくろう」をまた最初から読み返しています、というお便りでした。
まだXOR回路の説明に入る前だったのですが、そのメールに貼ってあったリンクがこちら(↓)の記事でした。
「TTLでCPUをつくろう!」[第132回]
そのときは、「昔は随分気合を入れて書いていたのだなあ。それに比べて最近はめっきり文字数が減ってパワーがなくなったなあ」などと感じただけだったのでしたが。
しかし。
私は昔からよくこういう経験をしてきております。
ちょっと偶然というには余りに出来すぎております。
「ちょうどこれからXOR回路にかかるところだった。
そうそう。
XORを発展させて、Half Adder、Full Adderと進む予定なので、ここもざっと目を通しておきましょう」
いえ。
そんな程度の偶然ではないのでありますよ。
とにかくそのときはそれで終ったのでありましたが。
今回のこの局面になりまして。
まてよ?
確か、どこかで、Half Adder回路を説明するのに、XORを使わない回路を見たような。
そうだったのでした。
こんな回路があったのです!
ええ。
お客様にいただいたメールにリンクが貼ってありました
「TTLでCPUをつくろう!」[第132回]
に!!
それそれ、それですよお!
もっともそのままでは、ANDとORなのでトランジスタ回路にはちょっと不都合です。
ですので、NANDとNORで描き直しました。
間違わないように、下の表をよく見ながら、置き換えましたよ。
A | B | X | C |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
こんな回路になりました。
ABCはANDでABXはORですが、それとCとの合体です。
そしてこのXがABのXORであることに変わりはありません。
すると。
トランジスタ数はキャリー回路を含めて14個ですから、XOR単体のときこそウラ技回路に勝ちを譲りますが、キャリーを含めると今回の回路のほうが有利になります。
実は。
2進加算のためのHalf Adder回路の結果の出力(X)はそのまま入力A,BのXOR出力になっていることはすでに説明しましたが、今回のキャリー出力(C)もそのままでAND出力になっています(それもすでに説明しました)。
そして上の回路の下側にはNORがあります(シンボル図が普通のNORとは違いますが、これもNORです)。
この前段のNORの出力を反転すれば、OR出力が得られます。
つまり算術演算のための2進加算回路だけで、論理演算のAND、OR、XORがほぼそのまま得られてしまいます。
そこまで考えると、もうこの回路しかないじゃありませんか。
それにしても。
たまたまいただいたメールにヒントがあったとは。
まことに人生は出来すぎたドラマなのであります。
メールをお送りいただいた I 様。
有難うございました。
もしメールをいただかなかったら、この案には到達できなかったかも知れません。
(自分で書いた記事ですけれど、もうすっかり忘れてしまっておりましたので)
今後ともご支援ご協力をお願いいたします。
しかし。
念のためということで。
実際に試してみることにいたしました。
下は上の回路をトランジスタに置き換えたものです。
本日は時間がなくなってしまいました。
次回、トランジスタ版Half Adder回路実験編に続きます。
トランジスタでCPUをつくろう![第63回]
2015.5.18upload
前へ
次へ
ホームページトップへ戻る