Bit Switch【Turing Complete編】
はじめに
いつもブログをご覧いただきありがとうございます。
コーストFIRE中のIPUSIRONです😀
スリーステートバッファー
スリーステートバッファー(three state buffer)と呼ばれる素子は、出力がHレベルとLレベルのほかにもう1つ、ハイインピーダンス(またはフローティング)状態を持ちます。
ハイインピーダンス状態は記号でZ∞と表記されます。
つまり、無限大の抵抗値を持つわけで、実質的にワイヤーが切断されている状況とほぼ同等です。
したがって、スリーステートバッファーは、制御入力Cによって、出力端子Zを入力側Aと切り離せます。
A | C | Z |
---|---|---|
0 | 0 | Z∞ |
0 | 1 | 0 |
1 | 0 | Z∞ |
1 | 1 | 1 |
スリーステートバッファーはデジタル回路版スイッチに使える
Cが1ならスイッチON、Cが0ならスイッチOFFを意味する、(1ビットの)Cで制御するデジタル回路版スイッチといえます。
Turing CompleteではSwitchコンポーネントとして用意されています。
・制御用のEnable・・・上記のスリーステートバッファーのCに対応。
・出力のOutput・・・ピンがグレーのとき、切断(Z∞)を意味する。
Bit Switchステージ
Bit Swtichステージのゴールは、2つのNOTコンポーネント、2つのBit Switchコンポーネント(ここではビットでON・OFFを制御できるスイッチ。以降、Switchコンポーネントと略す)を使って、XOR回路を完成させることです。
※Switchコンポーネントは使える状態になっています。このコンポーネントの使い方はダイアログのメッセージで解説されます。
Bit Switchステージを解く
解答の回路は次の通りです。
この回路の真理値表を書いてみます。
途中のワイヤーの状態を明確にするために、a~fを1つずつ調べていきましょう。
ここで、左上のNOTコンポーネントをN1、右上のSwitchコンポーネントをS1、左下のNOTコンポーネントをN、右下のSwitchコンポーネントS2とします。
Input 1 | Input 2 | a | b | c | d | e | f | Output |
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 1 | Z∞ | Z∞ | Z∞ |
0 | 1 | 0 | 1 | 1 | 0 | 1 | Z∞ | 1 |
1 | 0 | 1 | 0 | 0 | 1 | Z∞ | 1 | 1 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
真理値表を書いたら、[Next]ボタンを押して1つずつテストしてみてください。ワイヤーの状態(1なのか0なのか)が一目瞭然ですので、真理値表と見比べて一致することを確認しましょう。
ところで、Ouputの1ヶ所がZ∞になりますが、シミュレーターは1や0が確定していない場合は0と扱う仕様です。
※Outputに何もワイヤーをつなげない状態で[Next]ボタンを押してテストしてみれば、常に0(=OFF)になることがわかります。
よって、Z∞を0に置き換えれば、XOR回路の真理値表と一致します。