SRラッチ
概要
- 目的: SRラッチ(セット・リセットラッチ)は、1ビットの情報を格納する基本的なメモリ回路です。状態を制御する2つの入力があります:Set(S)で1を格納し、Reset(R)で0を格納し、入力信号が除去された後も格納された値が維持されます。
- シンボル: SRラッチは、SとRの入力、および相補的なQとQ̅の出力を持つ矩形ブロックで表されます。
- DigiSim.io での役割: デジタル回路における最も基本的な記憶素子として機能し、フィードバックベースのストレージの基本概念を示し、より複雑な順序コンポーネントの構成要素を形成します。

機能説明
論理動作
SRラッチはSおよびR入力に基づいて状態を変更し、両方の入力が非アクティブの場合にその状態を維持します。
真理値表:
| Set (S) | Reset (R) | Q (next) | 動作 |
|---|---|---|---|
| 0 | 0 | Q (prev) | 状態保持 |
| 0 | 1 | 0 | リセット |
| 1 | 0 | 1 | セット |
| 1 | 1 | ? | 無効/レース |
注: "prev" は前の状態を意味し、"?" は設計で避けるべき無効または不定状態を示します
入力と出力
入力:
- S(セット): アクティブ時にラッチ出力Qを1に設定する1ビット入力。
- R(リセット): アクティブ時にラッチ出力Qを0にリセットする1ビット入力。
出力:
- Q: 格納された値を表す1ビット出力。
- Q̅: 格納された値の反転を表す1ビットの相補出力。
設定可能なパラメータ
- アクティブレベル: 入力がアクティブHIGH(NOR実装)かアクティブLOW(NAND実装)か。
- 伝搬遅延: 入力変化後に出力が変化するまでの時間。
DigiSim.io での視覚的表現
SRラッチは、左側にラベル付きの入力(SおよびR)、右側に出力(QおよびQ̅)を持つ矩形ブロックとして表示されます。回路に接続されると、コンポーネントは出力に表示される値と接続ワイヤの色変化を通じて現在の状態を視覚的に示します。セットおよびリセット入力への応答は即座に表示され、この基本的な記憶素子の非同期動作を示します。
教育的価値
主要概念
- 双安定メモリ: フィードバックを使用してデジタル回路がどのように状態を維持できるかを示します。
- 非同期動作: クロック制御なしに入力に即座に応答する状態変化を示します。
- 交差結合論理: フィードバックループで接続された2つのゲートがどのようにメモリを作成するかを示します。
- 無効状態: デジタル設計における禁止入力組み合わせの概念を紹介します。
- 回路フィードバック: 安定した状態を作成するために出力が入力にフィードバックされる方法を示します。
学習目標
- フィードバックを使用したデジタルメモリストレージの基本概念を理解する。
- セットおよびリセット入力がラッチの状態をどのように制御するかを学ぶ。
- 無効な入力組み合わせを避けることの重要性を認識する。
- 基本的なメモリ回路および非同期コントローラの設計にSRラッチを適用する。
- より複雑な記憶素子がSRラッチの概念の上にどのように構築されるかを理解する。
使用例
- スイッチデバウンス: 機械式スイッチからのノイズの多い信号をクリーンアップする。
- アラームシステム: 明示的なリセットを必要とするラッチングアラームを作成する。
- 基本的なメモリセル: 個々のビットの情報を格納する。
- 非同期ステートマシン: クロックではなくイベントに応答するコントローラを構築する。
- アービトレーション回路: 競合する信号間の競合を解決する。
- レベル-パルス変換: デジタル信号のエッジを検出する。
技術ノート
- SRラッチには根本的な制限があります:SとRの両方が同時にアクティブの場合、結果の状態は不定(無効状態)であり、設計で避けるべきです。
- 2つの一般的な実装が存在します:NORベース(アクティブHIGH入力)とNANDベース(アクティブLOW入力)。
- クロック付きフリップフロップとは異なり、SRラッチは入力変化に即座に応答するため、非同期設計には有用ですが、同期システムでは問題が生じる可能性があります。
- 不定条件の後に両方の入力が非アクティブ状態に戻ると、最終状態は予測不可能であり、回路の小さなタイミング差と物理的特性に依存します。
- DigiSim.io では、SRラッチはすべてのデジタル順序回路の基本である状態メモリの概念への優れた入門を提供します。
特性
- メモリ特性:
- 両方の入力が0の場合、最後の有効な状態を保持
- 基本的な双安定動作を提供
- 伝搬遅延:
- Set-to-Q遅延: 通常5-15ns(技術に依存)
- Reset-to-Q遅延: 通常5-15ns(技術に依存)
- 消費電力:
- 静的: 低い(主にリーク電流)
- 動的: 状態変化中は中程度
- ファンアウト:
- 通常10-50ゲート(技術に依存)
- 回路の複雑度:
- 低い(NOR 2個またはNAND 2個のみ必要)
- 速度:
- 非同期動作のためクロック付きフリップフロップより高速
- ノイズマージン:
- 中程度(ゲート技術に依存)
- 無効状態:
- S=1、R=1の条件は避けるべき(不定出力を生成)
実装方法
- NORゲートを使用(基本SRラッチ)
graph LR
S[S Input] --> NOR1[NOR Gate 1]
R[R Input] --> NOR2[NOR Gate 2]
NOR1 --> Q[Q Output]
NOR2 --> QB[Q̅ Output]
Q --> NOR2
QB --> NOR1
動作: 交差結合NORゲートが双安定動作のためのフィードバックループを作成します。
- NANDゲートを使用(アクティブLOW SRラッチ)
graph LR
S[S̅ Input] --> NAND1[NAND Gate 1]
R[R̅ Input] --> NAND2[NAND Gate 2]
NAND1 --> Q[Q Output]
NAND2 --> QB[Q̅ Output]
Q --> NAND2
QB --> NAND1
動作: 交差結合フィードバックを持つNANDゲートによるアクティブLOW実装。
トランジスタレベルの実装
- CMOS: 相補型MOSFETを使用
- TTL: バイポーラ接合トランジスタを使用
- 電力、速度、または面積に最適化可能
集積回路
- 74xxシリーズ論理ファミリで利用可能
- より大きなメモリまたは順序論理チップの一部であることが多い
応用
記憶素子
- デジタル回路の基本ストレージセル
- より複雑なメモリ構造の基盤
パルス除去
- 機械式スイッチとプッシュボタンのデバウンス
- デジタル入力のノイズスパイクの除去
アービトレーション回路
- 複数の信号間の競合の解決
- 先着順の意思決定
非同期順序回路
- グローバルクロックのないステートマシン
- イベント駆動論理コントローラ
レベル-パルス変換
- レベル変化のパルスへの変換
- デジタルシステムにおけるエッジ検出
アラームおよび状態表示
- 手動リセットが必要なラッチングアラーム
- 状態を保持する状態インジケータ
制限事項
レースコンディション
- S=1、R=1の入力組み合わせは不定状態につながる
- 両方の入力が同時に0に戻ると、最終状態は予測不可能
クロック制御なし
- 入力が変化すると即座に変化が発生
- 他のシステムコンポーネントとの同期が困難
メタスタビリティの問題
- 入力が近接して変化した場合に不安定な状態に入る可能性
- 振動したり、不正確な状態に落ち着く可能性
入力タイミング制約
- 最小パルス幅要件
- 幅が狭すぎるとパルスを見逃す可能性
限定的な機能
- 基本的なストレージ機能のみ
- エッジトリガー機能なし
- イネーブル制御なし
回路実装の詳細
NORゲートSRラッチ
この実装では、ラッチは2つのNORゲートを交差結合してフィードバックを提供します:
Q = !(R + Q̅)
Q̅ = !(S + Q)
S=1かつR=0の場合、Qは1になります。S=0かつR=1の場合、Qは0になります。SとRの両方が0の場合、フィードバックループにより前の状態が維持されます。
NANDゲートSRラッチ
NAND実装では、入力はアクティブLOWであり、Sが0の場合にラッチがセットされ、Rが0の場合にリセットされます:
Q = !(!S · Q̅)
Q̅ = !(!R · Q)
関連コンポーネント
- ゲート付きSRラッチ: ラッチが状態を変更できるタイミングを制御するイネーブル入力を追加
- Dラッチ: 無効状態を防止するSRラッチの変形
- JKフリップフロップ: トグル機能を持つより高度な記憶素子
- Dフリップフロップ: 同期システム用のDラッチのエッジトリガー版
- Tフリップフロップ: クロックエッジで状態を変更するトグルフリップフロップ
- レジスタ: マルチビット値を格納するために配列された複数のフリップフロップ
- SRAMセル: ラッチの原理に基づくより複雑なメモリセル