【第1回】レッドストーンで論理回路を設計しよう
こんにちは。たまなふたの「な」です。
コンピュータなどは、「0」と「1」の2つの値の組み合わせによって動いています。この「0」と「1」を使って論理演算を行う回路を論理回路といいます。
レッドストーン(以下、RS)にも動力が伝わっていない「0」(オフの状態)と伝わっている「1」(オンの状態)があります。この2つの状態を使って論理演算を行う回路を作れば、コンピュータのようになんかすごいことができそうですよね。
1. 論理演算
「0」と「1」を使って論理演算を行う、と書きましたが、演算を行うとはどのようなことでしょう。
普段、私たちが計算するときには四則演算を行います。
四則演算は「加算(+)」「減算(-)」「乗算(×)」「除算(÷)」によって行いますよね。
加算であれば、「1」と「2」という2つの入力に対して「3」という出力が得られます(1+2=3)。
一方、論理回路では論理演算を行います。
論理演算は基本的に「NOT」「OR」「AND」によって行います。
ANDであれば、「1」と「0」という2つの入力に対して「0」という出力が得られます。
このように、演算とはルールに従って、入力から何かしらの出力を得ることをいいます。
それではまず、この3つの基本的な論理演算の内容とRS回路を見ていきましょう。なお、この記事では入力が2つの場合を考えます。
2. 基本論理回路
(1)NOT回路
NOT回路は入力(スイッチやレバーなど)が0のとき出力が1、入力が1のとき出力が0となる回路です。入力を反転したものを出力するということですね。
上図を表にすると次のようになります。このような表を真理値表といいます。入力と出力の関係が一目でわかりますね。
$${\scriptsize\textsf{NOT回路の真理値表}}$$
$${\begin{array}{c|c} \textsf{入力} & \textsf{出力} \\ \hline 0 & 1 \\ 1 & 0 \end{array}}$$
RS回路ではNOT回路を下図のように配置します。
入力の後ろにRSダストを設置し、真ん中の不透過ブロックの出力側にRSトーチを付けましょう。
RSトーチはそれ自身に信号が伝わらない限り(入力が0のとき)、動力の供給源の役割を果たします。よって、それに隣接するRSランプは点灯します(出力が1になります)。
一方、自身に信号が伝わってくる(入力が1になる)と動力の供給を止めるという性質を持っているため、RSランプは消灯します(出力が0になります)。
入力AのNOT(否定)は、$${\bar A}$$と表すので、$${A = 0}$$のとき、$${\bar A = 1}$$となります。
(2)OR回路
OR回路は2つの入力のどちらかが1になっていれば出力が1となる回路です。
真理値表は次の通りになります。
$${\scriptsize\textsf{OR回路の真理値表}}$$
$${\begin{array}{cc|c} \textsf{入力A} & \textsf{入力B} & \textsf{出力} \\ \hline 0 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 1 \end {array}}$$
AとBの2つの入力があるとき、$${A + B}$$と表します。
(3)AND回路
AND回路は2つの入力が両方とも1になっていれば出力が1となる回路です。
真理値表は次の通りになります。
$${\scriptsize\textsf{AND回路の真理値表}}$$
$${\begin{array}{cc|c} \textsf{入力A} & \textsf{入力B} & \textsf{出力} \\ \hline 0 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 1 \end {array}}$$
AとBの2つの入力があるとき、$${A \cdot B}$$と表します。
以上が基本の論理回路です。自分で作って仕組みを理解してみてください!
3. その他の論理回路
次にご紹介する回路は基本論理回路を組み合わせることによって実現する回路です。どのような出力を得たい場合でも基本論理回路を組み合わせることによって実現します。
(1)NOR回路
NOR回路はOR回路と逆の結果が出力される回路です。そのため、OR回路とNOT回路が合わさった形になっています。
したがって、2つの入力が両方とも0になっていれば出力が1となります。
真理値表は次の通りになります。
$${\scriptsize\textsf{NOR回路の真理値表}}$$
$${\begin{array}{cc|c} \textsf{入力A} & \textsf{入力B} & \textsf{出力} \\ \hline 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 0 \end {array}}$$
ORの否定なので、AとBの2つの入力があるとき、$${\overline{A + B}}$$と表します。
(2)NAND回路
NAND回路はAND回路と逆の結果が出力される回路です。そのため、AND回路からNOT回路が取り除かれた形になっています。
したがって、2つの入力が両方とも1でないならば出力が1となります。
真理値表は次の通りになります。
$${\scriptsize\textsf{NAND回路の真理値表}}$$
$${\begin{array}{cc|c} \textsf{入力A} & \textsf{入力B} & \textsf{出力} \\ \hline 0 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \end {array}}$$
ANDの否定なので、AとBの2つの入力があるとき、$${\overline{A \cdot B}}$$と表します。
(3)XOR回路
XOR回路は片方の入力が1になったときに1を出力する回路です。両方の入力が1になったら0を出力します。
真理値表は次の通りになります。
$${\scriptsize\textsf{XOR回路の真理値表}}$$
$${\begin{array}{cc|c} \textsf{入力A} & \textsf{入力B} & \textsf{出力} \\ \hline 0 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \end {array}}$$
どのような回路も基本論理回路を組み合わせることによって実現すると書いたので実際にやってみます。
XOR回路の出力は$${( A \cdot \bar B ) + ( \bar A \cdot B )}$$と表せるので基本論理回路を組み合わせると下図のようになります。
いかがですか? しんどいですよね。
基本論理回路を組み合わせれば作れることは作れますが、マイクラの世界で簡単に作るにはそういうわけにもいきません。
実は「レッドストーンコンパレータ」を使えばもっと簡単に作れます。
下図のように配置しましょう。
ここで注意したいのは、RSコンパレータのモードを減算モードにするということです。RSコンパレータを右クリックすると減算モードになります。減算モードになると下図のように手前のランプが赤く点灯します。
(このRSコンパレータを用いたXOR回路については現在作成中の別記事にて解説したいと思います。)
AとBの2つの入力があるとき、$${A \oplus B}$$と表します。
(4)XNOR回路
XNOR回路はXOR回路と逆の結果が出力される回路です。そのため、XOR回路とNOT回路が合わさった形になっています。
したがって、2つの入力が両方とも同じ値になっていれば出力が1となります。
真理値表は次の通りになります。
$${\scriptsize\textsf{XNOR回路の真理値表}}$$
$${\begin{array}{cc|c} \textsf{入力A} & \textsf{入力B} & \textsf{出力} \\ \hline 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 1 \end {array}}$$
XORの否定なので、AとBの2つの入力があるとき、$${\overline{A \oplus B}}$$と表します。
4. まとめ
これまでに登場した論理回路の真理値表をまとめると下図のようになります。
※NOTは入力Aのときの出力を示しています。
これ以外の出力を得たいときや入力の数を増やしたいときはこれらの回路を組み合わせましょう。
次回は実際に論理回路の設計を行い、どのようにして回路を組み合わせればよいのかを考えていきます。
最後まで読んでくださってありがとうございます。
それでは……。