トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第158回]
●NAND
ここ何回かはバイポーラトランジスタA1015とC1815を使ったインバータ(NOT)回路を紹介してきました。
回路そのものは以前の回に書いていましたBS250とN7000を使った回路をA1015とC1815に置き換えただけで基本的な考え方は同じです(もちろん置き換えに伴ってベース抵抗やコンデンサも値の変更や追加を行ないました)。
ここ何回かの検証によって、A1015とC1815を組み合わせた回路が十分使えそうだという確信を得ましたので、以後はその考え方に沿って進むことにします。
前回まではとりあえずA1015とC1815各1個(および抵抗、コンデンサ)からなるインバータ(NOT)回路について書いてきましたが、その基本構成をそのまま拡張することで、NANDとかNOR回路もつくることができます。
それらの基本的なゲートロジック回路も既存のBS250とN7000で構成した回路をA1015とC1815に置き換えるだけで簡単にバイポーラトランジスタ型のロジック回路にすることができます。
参考までに、以下にいくつかの回路について例示します。
インバータの次にはなんといってもNAND回路です。
どちらかというとインバータ回路は補助的な役割として使われますが、NAND回路は全てのロジック回路の基本構成要素です。
NAND回路なくしてはロジック回路は成り立ちません。
逆に言えばNAND回路さえあれば(その応用型も含めれば)、全てのロジック回路を作ることができると言っても言いすぎではないと思います。
実際にNAND回路の2つの入力を1本にたばねることで、そのままインバータ(NOT)として使うことができる、ということは皆様もよくご存知のことと思います。
ということで、下が今後使うことに決めたバイポーラトランジスタ版のNAND回路です。
作図の都合でIN1とIN2の上下の配置が逆になっていますが、また出力トランジスタT2とT4の接続順序にも意味がありそうに見えますが、右に表示したシンボル図の通り、IN1とIN2は入れ替えても出力に影響はありません。
IN1とIN2がともにHのときのみ出力はLになります。
いずれか一方、または両方の入力がLのときは出力はHになります。
前回書きましたようにベース抵抗の51KΩが利いているため、ソースシンクともに最大出力は40mAです(hFE=400の場合)。
それ以上は流れませんから万一出力がショートしてもトランジスタが破損する心配はありません。
上のNAND回路の場合IN1とIN2がともにLのときはT1とT3が同時にONになるため、そのときに出力をGNDにショートすると最大80mAのソース電流が流れます(hFE=400のとき)。
その場合でもT1、T3に流れるコレクタ電流はともに最大40mAです。
●AND
バイポーラトランジスタは普通の使い方では出力が反転します(反転増幅)。
したがってNOT、NAND回路は普通にできますが、AND回路にはできません。
そこでAND回路が必要なときは下の図のようにNANDとNOTを組み合わせて見かけ上ANDの動作になるようにします。
NANDがトランジスタ4個でできるのに比べると1個のANDに6個のトランジスタが必要です。
できればANDを使わなくても済むように工夫したいところですが、余り凝ったことを考えるとかえって回路が複雑になったり理解しづらい回路になってしまったりします。
トランジスタ数が増えることは承知の上で上の基本的な回路をそのまま使うようにと考えています。
●NOR
ロジックとして考えるときは、NOR=OR+NOTと考えますが、NANDのところで書きましたように、NORが基本で逆にOR=NOR+NOTという回路になります。
下がNOR回路です。
単純にNANDの配線をA1015とC1815で取り替えただけの回路になっています。
2つの入力のどちらかがHかともにHのときは出力がLになります。
どちらの入力もLのときだけ出力がHになります。
2つの入力をともにインバータ(NOT)を通して反転させ、NORの代わりにNANDを置いて、さらにその出力もインバータを通して反転させれば、NOR回路になりますから、NANDのところで書きましたように、やはりNOR回路もNANDで作ることができます。
しかしことトランジスタ回路として考える限り、そのような(NANDだけで構成する回路は)教科書の中だけで意味のあることで、全く無駄な回路に過ぎません。
上ではNANDが基本回路であると書きましたが、実際のところもっと正確に言えば、これから考えていくトランジスタCPU回路はNOTとNANDとNORを基本型として、その変形をまじえた回路として考えていくことになると思います。
●3入力NAND
3入力回路などの多入力回路も上記の基本型の応用として考えることができます。
そのひとつの例として下に3入力NANDの回路を示します。
単純にNANDの2入力を3入力に拡張しただけです。
この考えをそのまま進めることで、5入力NANDとか6入力NORなど74HCシリーズにはないような回路も作り出せそうです。
ここでちょっと気になるのはコレクタエミッタ間のON電圧です。
よく知られているように、バイポーラトランジスタ(シリコントランジスタ)のベースエミッタ間のON電圧は印加する電圧電流にほぼ関係なく0.6V〜0.8Vの高い値を示します。
ちょっと考えると、それならコレクタエミッタ間も同じ電圧以下には下がらないのではないか、と考えそうですが、コレクタ電流がベース電流によってコントロールされるにも関わらず、コレクタエミッタ間電圧は非常に低い値を示します。
下は2SC1815のdatasheetです。
[出典]TOSHIBA CORPORATION:2SC1815 datasheet
Collector−emitter saturation voltage(コレクタエミッタ間飽和電圧)を見るとMax0.25Vになっています。
これに対してBase−emitter saturation voltage(ベースエミッタ間飽和電圧)はMax1.0Vになっています。
ベースエミッタ間飽和電圧に比べてコレクタエミッタ間飽和電圧がうんと低い値であることがわかります。
これも実際に測って確認してみました。
前回電流をテストしたときと同じインバータ回路で、入力をHにしたときのC1815のコレクタとエミッタ(GND)間の電圧を測ってみました。
なんとわずか11mVです。
ほとんど0Vです。
今度はA1015の飽和電圧を測ってみました。
入力をLにしたときのA1015のエミッタ(+5V)とコレクタ間の電圧を測りました。
こちらもわずか14mVです。
こちらもほとんど0Vです。
こういうことでしたら、C1815やA1015を8個ぐらい積んで、8入力NANDとか8入力NORなどの回路を作っても多分問題はありませんでしょう。
トランジスタでCPUをつくろう![第158回]
2019.9.18upload
前へ
次へ
ホームページトップへ戻る