Altifigence Academy

3 / 63 · 概念

基本ゲート:AND・OR・NOT・BUFFER

回路記号と真理値表を結び付け、複数のゲートで条件を構成します。

ゲートは全入力組合せに対する関数です

入力 a,b∈{0,1}a,b\in\{0,1\} に対し、AND は両方が 1 のとき、OR は一つ以上が 1 のときに 1 を出力します。NOT は入力を否定否定 0 を 1 に、1 を 0 に変える NOT 演算です。式の上の線は、その下の式全体に NOT を適用することを表します。 詳しく見るし、BUFFER は論理値をそのまま伝えます。実際の BUFFER には駆動能力と遅延もありますが、ここでは論理機能だけを扱います。

abANDORNOT aBUFFER a
000010
010110
100101
111101

ブール代数ブール代数 0 と 1、AND・OR・NOT を扱う代数です。加算記号は通常 OR を表すので、整数の足し算とは規則が異なります。 詳しく見るでは abab を AND、a+ba+b を OR、a‾\overline a を NOT と書きます。したがって、ここでの 1+1=11+1=1 は整数の足し算ではありません。同じ意味を a∧ba\land b、a∨ba\lor b、¬a\neg a と表すこともあります。

記号・入力・真理値表を同時に読む

下で AND と OR を選び、00→01→10→11 をすべて確認してください。AND の直線的な入力側と丸い出力側、OR の曲がった入力側を比較します。NOT は三角形の先の小さな丸で否定を表します。BUFFER はその丸がない三角形です。これらはよく使われる論理記号で、別の規格では長方形の記号も使います。

AND・OR・NOT・BUFFER を切り替える
AND · 真理値表
aby
000
010
100
111

OR は「ちょうど一つ」ではなく「一つ以上」です。両方が 1 のとき OR は 1、後で学ぶ XOR は 0 です。真理値表真理値表 可能な入力組合せをすべて列挙し、各組合せの出力を記した表です。時間に伴う変化は波形で別途確認します。の一行を省くだけでも、この違いを見落とします。

条件をつなぐと回路になります

許可信号 ee があり、二つのセンサ a,ba,b の一つ以上が有効なときに出力する回路は、次の式で表せます。

y=e(a+b)y=e(a+b)

まず OR が a+ba+b を作り、AND がそれを ee と結合します。e=0e=0 なら、センサの状態に関係なく出力は 0 です。入力が三つなら組合せは 23=82^3=8 個なので、真理値表の八行で仕様と実装が一致するか確認します。

式の括弧を回路の接続として読む
  1. a と b: 二つのセンサの入力値を定義
  2. OR: 一つ以上が有効:t = a + b
  3. AND: 許可信号 e と結合:y = e · t

RTL の演算記号を読むための基本

a & b、a | b、~a はビットごとの AND・OR・NOT です。ベクトルが a=0010、b=0100 なら a & b=0000 ですが、論理条件 a && b は両ベクトルとも非ゼロなので 1 です。単項の &a は、全ビットを AND でまとめるリダクション演算です。ビット演算・論理条件・リダクション演算では、結果の幅も意味も異なります。

真理値表は入力が安定した後の値を表します。記号と式が正しくても、伝搬遅延伝搬遅延 入力が変わってから、出力が正しい値に安定するまでの時間です。論理式の等価性と時間特性は別の性質です。 詳しく見るや一時的なグリッチがなくなるわけではありません。

入力を変えて確認

自分で考えてみましょう

y=e(a+b) で e=0 となる四つの組合せをまとめて説明してください。y=eab と誤って実装した場合、誤りが現れる入力二つは何ですか。

解説を見る

e=0 なら、OR の結果に関係なく最後の AND は 0 を出力します。e=1 かつ (a,b)=(0,1) または (1,0) では、正しい回路は 1、誤った回路は 0 を出力します。

選択はこのブラウザに適用されます。フッターからいつでも変更できます。