3 / 63 · 概念
基本ゲート:AND・OR・NOT・BUFFER
回路記号と真理値表を結び付け、複数のゲートで条件を構成します。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
ゲートは全入力組合せに対する関数です
入力 に対し、AND は両方が 1 のとき、OR は一つ以上が 1 のときに 1 を出力します。NOT は入力を否定否定 0 を 1 に、1 を 0 に変える NOT 演算です。式の上の線は、その下の式全体に NOT を適用することを表します。 詳しく見るし、BUFFER は論理値をそのまま伝えます。実際の BUFFER には駆動能力と遅延もありますが、ここでは論理機能だけを扱います。
| a | b | AND | OR | NOT a | BUFFER a |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 |
ブール代数ブール代数 0 と 1、AND・OR・NOT を扱う代数です。加算記号は通常 OR を表すので、整数の足し算とは規則が異なります。 詳しく見るでは を AND、 を OR、 を NOT と書きます。したがって、ここでの は整数の足し算ではありません。同じ意味を 、、 と表すこともあります。
記号・入力・真理値表を同時に読む
下で AND と OR を選び、00→01→10→11 をすべて確認してください。AND の直線的な入力側と丸い出力側、OR の曲がった入力側を比較します。NOT は三角形の先の小さな丸で否定を表します。BUFFER はその丸がない三角形です。これらはよく使われる論理記号で、別の規格では長方形の記号も使います。
| a | b | y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
OR は「ちょうど一つ」ではなく「一つ以上」です。両方が 1 のとき OR は 1、後で学ぶ XOR は 0 です。真理値表真理値表 可能な入力組合せをすべて列挙し、各組合せの出力を記した表です。時間に伴う変化は波形で別途確認します。の一行を省くだけでも、この違いを見落とします。
条件をつなぐと回路になります
許可信号 があり、二つのセンサ の一つ以上が有効なときに出力する回路は、次の式で表せます。
まず OR が を作り、AND がそれを と結合します。 なら、センサの状態に関係なく出力は 0 です。入力が三つなら組合せは 個なので、真理値表の八行で仕様と実装が一致するか確認します。
- a と b: 二つのセンサの入力値を定義
- OR: 一つ以上が有効:t = a + b
- 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 を出力します。