このページの目次

組合論理回路

組合論理とは

組合論理 — 出力は現在の入力のみによって決まり、記憶機能を持ちません。

組合論理: 出力は現在の入力のみによって決まる 入力 組合論理 純粋なゲート回路 · フィードバックなし 出力 时序論理との違い: クロックがなく、状態を保持しない。

一般的な組合論理回路

マルプレックス回路 (MUX)

2入力1出力 MUX: 選択線 S によって A または B を出力 Y にルーティング A B S 選択線 2入力1出力 MUX Y Y = S ? B : A (S=0 で A を選択, S=1 で B を選択) — Y = Ā·S + B·S 用途: シグナルルーティング、並列→直列変換、論理関数の実装

デコーダ (Decoder)

n ビット入力 → 2ⁿ ビット出力 (一度に1ビットのみが1になる)

  2→4 デコーダ:
    A1 A0 | Y0 Y1 Y2 Y3
     0  0 |  1  0  0  0
     0  1 |  0  1  0  0
     1  0 |  0  0  1  0
     1  1 |  0  0  0  1

用途: アドレスデコーディング (チップセレクト信号)、7セグメントディスプレイ駆動
代表的なチップ: 74HC138 (3→8), 74HC154 (4→16)

エンコーダ (Encoder)

デコーダの逆操作: 2ⁿ ビット入力 → n ビット出力

優先エンコーダ: 複数の入力が同時に有効な場合、最も優先度の高いエンコーディングを出力
代表的なチップ: 74HC148 (8→3 優先エンコーダ)

加算器

ハーフアッダー (Half Adder)

ハーフアッダー(HA): 2ビットの加算、和と桁上げを出力 A B ハーフアッダー HA S = A⊕B(和) C = A·B(桁上げ) 桁上げ入力がなく、最下位ビットの加算のみ可能

フルアッダー (Full Adder)

フルアッダー(FA): 桁上げ入力 Cin を追加し、カスケード接続可能 A B Cin フルアッダー FA S = A⊕B⊕Cin(和) Cout=A·B+(A⊕B)·Cin Cout = A·B + (A⊕B)·Cin —— 1の数が多数なら桁上げする。 n個のフルアッダーをカスケード接続 = nビット加算器。

リップルキャリー vs キャリーロクアヘッド

リップルキャリー (Ripple Carry):
  桁上げが段々伝播 → 遅延が大きい (n×t_fa)
  単純で面積が小さい

キャリーロクアヘッド (Carry Lookahead):
  すべての桁上げを並列計算 → 遅延が小さい (O(log n))
  複雑度が高く、面積が大きい

代表的なチップ: 74HC283 (4ビット キャリーロクアヘッド加算器)

コンパレータ

コンパレータ: ビットごとの比較を行い、3つの大小関係を出力 A B コンパレータ A > B A = B A < B 上位ビットから下位ビットへ順に比較する。 代表的なチップ: 74HC85 (4ビット コンパレータ)。

プログラマブル論理

基本的な考え方

ゲート回路を組むのではなく、プログラム可能なデバイスで任意の論理を実現する

PAL/GAL: 与える配列はプログラム可能 + 或る配列は固定
CPLD: 複数のPALブロック + プログラマブルな相互接続
FPGA: ルックアップテーブル (LUT) + フリップフロップ + プログラマブルな相互接続

FPGA の LUT

2ⁿ 入力の LUT は、任意の n 入力論理関数を実現可能

3-LUT: 8個のSRAMセルで真理値表を保存 + 3段のMUXツリー
→ 任意の3入力ブール関数!

代表的なチップ: 6-LUT (Xilinx), 4-LUT + 加算器 (Intel ALM)

时序の問題

伝播遅延 (tpd)

入力が出力に安定して反映されるまでに必要な時間

複数のゲートが直列の場合: 総遅延 = 各ゲートの遅延の和
クリティカルパス: 遅延が最も長いパス → 回路の最大動作周波数を決定する

競争とハザード

複数のパスで遅延が異なる場合 → 出力にグリッチが発生する可能性がある

検出: カルノー図において、隣接する主項の間でカバーされていない部分がある
解決策: 冗長項を追加するか、出力でクロック同期する (レジスタで1サイクル遅延させる)

一般的な応用

回路機能チップ
3ステートバッファバス接続の制御74HC125/126
バストランシーバ双方向データ伝送74HC245
ラッチレベルトリガーによる保持74HC373/573
シフトレジスタ直列/並列変換74HC595

キーワード: 組合論理, MUX, デコーダ, 加算器, コンパレータ, FPGA, LUT, グリッチ, クリティカルパス