比較器
概要
- 目的: 比較器は、2つの2進数を比較し、それらの相対的な値(等しい、大きい、小さい)を示す出力を生成するデジタル回路です。2つのバイナリ入力間の関係を判定し、その比較結果に基づいてステータス信号を生成します。
- シンボル: 比較器は、比較される2つの数値の入力(AとB)と、比較結果を示す出力(A=B、A>B、A<B)を持つ長方形のブロックで表されます。
- DigiSim.ioでの役割: デジタル回路における基本的な判定コンポーネントとして機能し、条件付きロジック、ソーティングネットワーク、制御システムの実装に不可欠な値比較演算を実現します。

機能説明
ロジック動作
比較器は2つのバイナリ入力を調べ、それらの関係を判定し、最初の入力が2番目の入力と等しいか、大きいか、小さいかを示す適切な出力ラインをアサートします。
真理値表(1ビット比較器の場合):
| A | B | A=B | A>B | A<B | 関係 |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 等しい |
| 0 | 1 | 0 | 0 | 1 | より小さい |
| 1 | 0 | 0 | 1 | 0 | より大きい |
| 1 | 1 | 1 | 0 | 0 | 等しい |
注: マルチビット比較器の場合、比較は全ビットにわたって行われます。
入力と出力
入力:
- A[n:0]: 比較用のnビット第1オペランド。
- B[n:0]: 比較用のnビット第2オペランド。
- 一部の実装では、イネーブル(EN)やカスケード入力など、より大きな比較器を構築するための追加制御入力を含む場合があります。
出力:
- Equal (=): AがBと等しい場合にHIGHとなる1ビット出力。
- Greater (>): AがBより大きい場合にHIGHとなる1ビット出力。
- Less (<): AがBより小さい場合にHIGHとなる1ビット出力。
設定可能なパラメータ
- ビット幅: 比較される入力のビット数(1ビット、4ビット、8ビットなど)。
- 比較モード: 比較が符号なし2進数か符号付き(2の補数)数値かの設定。
- 伝搬遅延: 入力変更後に出力が変化するまでの時間。
- 出力構成: 一部の実装ではアクティブロー出力を持つか、特定の比較結果を省略する場合があります。
DigiSim.ioでの視覚表現
比較器は、左側にラベル付き入力(A[n:0]、B[n:0])、右側に出力(=、>、<)を持つ長方形のブロックとして表示されます。回路に接続すると、出力に表示される値と接続ワイヤーの色の変化を通じて比較結果を視覚的に示します。
教育的価値
主要概念
- バイナリ比較: デジタル回路が2進数間の関係をどのように判定するかを実演します。
- 意思決定: コンピュータが条件付き演算を駆動する比較をどのように行うかを示します。
- 大きさの判定: デジタルシステムにおけるバイナリ値の相対的なサイズがどのように確立されるかを示します。
- 組み合わせ論理: 複数の出力を持つ組み合わせ回路の実用的な応用を提示します。
- ビットワイズ演算: ビットごとの比較の概念と、それが全体的な数値関係をどのように決定するかを紹介します。
学習目標
- デジタルシステムが数値をどのように比較するかを理解する。
- 論理ゲートを使用した比較演算の実装を学ぶ。
- 比較結果がデジタルシステムの意思決定をどのように駆動するかを認識する。
- 比較器の概念を適用して、選択回路、最小/最大値検出器、範囲検出器を設計する。
- 符号なし数値と符号付き数値の比較の違いを理解する。
使用例/シナリオ
- 条件分岐: レジスタ値の比較に基づいてCPUで分岐を行うかどうかを決定します。
- ソーティングネットワーク: データを昇順または降順に並べるための構成要素です。
- リミット検出: 値が特定のしきい値を超えるか下回るかを識別します。
- アドレス比較: メモリアドレスがデコーディング用の特定の値と一致するかどうかを判定します。
- ウィンドウ比較: 値が特定の範囲内にあるかどうかを検出します。
- ゼロ検出: 計算結果がゼロであるかどうかを識別します。
技術ノート
- 単純な1ビット比較器は、通常XORゲート(等価性用)とインバータ付きANDゲート(不等価性用)を使用して実装されます。
- マルチビット比較器は、リプル比較器(単純だが低速)またはパラレル比較器(高速だがより複雑)として構築できます。
- 符号付き数値の比較では、最上位ビットが符号を表すため、特別な処理が必要です。
- 複数の比較器をカスケード接続することで、伝搬遅延の増加と引き換えに、より広いビット幅の2進数の比較が可能になります。
- DigiSim.ioでは、比較器の動作はマルチビット入力を適切に処理する実際のデジタルコンポーネントをモデル化しています。
- 高速動作のために、加算器と同様のルックアヘッド技術を実装して比較遅延を低減できます。
アプリケーション
- プロセッサの算術論理演算ユニット(ALU)
- メモリシステムのアドレス比較
- CPUの命令デコーディング
- データソーティングアルゴリズム
- アナログ-デジタル変換器のウィンドウ比較器
- セキュリティおよびバリデーションシステムの範囲チェック
- パスワード照合システム
- 制御システムの大きさ比較
- デジタル信号プロセッサの等価テスト
- パイプラインプロセッサの分岐予測
実装
比較器は以下を使用して実装できます:
- 基本論理ゲート(AND、OR、NOT、XOR)
- 専用比較器IC(74HC85、74LS682など)
- プログラマブルロジックデバイス(FPGA、CPLD)
- マイクロプロセッサの内蔵ALU機能
- 各種アーキテクチャ:
- リプル比較器(単純だが低速)
- パラレル比較器(高速だがより複雑)
- ツリーベースアーキテクチャ(速度と複雑さのバランス)
回路実装
基本的な1ビット比較器は、以下のロジックで実装できます:
等価検出
graph LR
A[A] --> XNOR[XNOR Gate]
B[B] --> XNOR
XNOR --> EQ[Equal A=B]
大なり検出
graph LR
A[A] --> AND1[AND Gate]
BN[B'] --> AND1
AND1 --> GT[Greater Than A>B]
小なり検出
graph LR
AN[A'] --> AND2[AND Gate]
B[B] --> AND2
AND2 --> LT[Less Than A<B]
マルチビット比較器の場合、これらの回路は適切なカスケードロジックと組み合わされます。
関連コンポーネント
- マグニチュード比較器: 2進数の大きさの比較に特化
- 等価比較器: 2つの値が等しいかどうかの判定のみに焦点を当てる
- ウィンドウ比較器: 値が指定された範囲内にあるかどうかを判定
- ALU: 比較機能を含む多くの演算を持つ
- XNORゲート: ビットワイズ等価比較に使用
- 減算器: 差の符号を調べることで比較に使用可能