ソフトの砂場(3ステートゲート)

最終更新日:1998年11月03日

今回もまた、トランジスタで論理ゲートを作ってみます。ここで作るのは、3ステートのNOTゲートです。今回もまた、回路シミュレータを使って、作ったつもりになります。

3ステートゲートとは

パソコン内では、いろいろなデバイスがバスに接続されています。下図はあまりに古典的な絵ですが、この絵で、たとえばCPUがRAMから読み出すとき、ROMがバスにデータを出力すると、CPUはでたらめな値を読んでしまうことになります。これを避ける方法として、不要なデバイスをバスから切り離す方法があり、3ステートゲートを用いると、そのようなことが容易に実現できます。

バスに接続されたデバイス

3ステートゲートは、出力の値としてH, L以外に、ハイインピーダンス状態をとることができます。ハイインピーダンス状態では、ゲートの出力が切り離されたのと同じことになります。下図の回路で、トランジスタQ1がON, Q2がOFF状態であれば、出力(赤丸)はHになり、逆にQ1がOFF, Q2がONであれば出力はLになります。ここで、Q1, Q2が共にOFFになった状態を考えると、出力は不定になります。これがハイインピーダンス状態です。3ステートゲートは、出力をこのような状態にできるゲートです。

3ステートの原理

3ステートゲートの製作

では、回路シミュレータを用いて、それらしいものを作ってみます。今回も回路シミュレータには、(株)マイクロネット社の『Circuit Viewer』を使います。これはとても使いやすい回路シミュレータで、体験版が提供されているので、ぜひダウンロードして試してみることをお勧めします。

3ステートゲートのお手本として、74シリーズの中から標準TTL 74368を選びました。これは一つのICに6つの3ステートNOTゲートが入ったものですが、ここではその一つのゲートを取り出し、さらに回路を少し簡略化してあります。出力につながっているR8, R9は、出力がハイインピーダンス状態になったとき、電圧を2.5Vに固定するためのもので、今回作成するゲートに含まれるものではありません。出力は、山吹色のプローブがつながっているところです。この3ステートNOTゲートは、制御入力(等価回路のe1がつながった部分)がLのときはNOTゲートとして動作し(入力はe2がつながった部分)、制御入力がHのときは出力はハイインピーダンスになります。

ここに書いていないパラメータとしては、シグナルジェネレータe1はt1, t2ともに2m秒で出力電圧が5V、e2は出力電圧は5Vです。

3ステートNOTゲート等価回路

オシロスコープを上図の各プローブの絵の個所に接続してみると、下図のような表示になります(スイープのタイミングによっては、図が違うかもしれません)。図の上部にある(1)は、説明のために書き足したものです。縦軸は、すべて5V / DIVに設定してあります。

3ステートNOTゲートの動作結果

この図から、制御入力(緑色)がLの間(図の(1)の期間)は、紫色の入力に対して山吹色の出力が反転しているのでNOTゲートとして動作していることが分かります。制御入力(緑色)がHの期間は、紫色の入力に関わらず、山吹色の出力は2.5Vあたりで一定になっており、ハイインピーダンス状態になっていることが分かります。出力が2.5Vあたりになっているのは、R8, R9をつないでいるためです。

雑感

15年くらい昔に、パソコン(いや、当時はマイコンだった)を自作しようとしていた頃、3ステートゲートが入手困難になったことがありました。ゲーム機向けに大量に使われている、との噂だったのですが、本当のところはどうだったんでしょうね。何にしても、このテーマも前々から気になっていたものなので、一応片付いて実にすっきりした気分です^^)

今回もまた、(株)マイクロネット社の回路シミュレータ(の体験版^^;)を利用しています。どうもありがとうございます。

参考文献

  1. Circuit Viewer Ver. 1.10 Preview Version 32bit版, (株)マイクロネット社
  2. 池田克夫 編, 新コンピュータサイエンス講座 情報工学実験, オーム社, 1993
  3. 最新74シリーズIC規格表, CQ出版, 1994

ホーム