応用情報技術者 2021年 春期 午前2 問25
問題文
図の論理回路において、S=1, R=1, X = 0, Y =1のとき、Sを一旦0にした後、再び1に戻した。この操作を行った後のX, Yの値はどれか。

選択肢
ア:X=0, Y=0
イ:X=0, Y=1
ウ:X=1, Y=0(正解)
エ:X=1, Y=1
🔒 解説は解答すると表示されます
NAND相当SRラッチ【午前2解説】
正解の理由
回路は「AND→インバータ」の組合せが上下で相互フィードバックしており、論理式は
です。与えられた開始状態 S=1, R=1, X=0, Y=1 はこの式と整合します。ここで S を一時的に 0 にすると、 となり X が 1 に変化します。その変化が下側に伝わって となります。S を元の 1 に戻した後は の安定解に落ち着くため、最終的に X=1, Y=0 となり選択肢ウに一致します。
解法ステップ
- 回路の論理式を確認する
、(AND+反転=NAND相当)。 - 初期状態の整合性確認(S=1,R=1,X=0,Y=1)
で矛盾なし。 - S を 0 にする瞬間の評価(R は 1 のまま)
→ X が 0→1 に変化。 - X の変化による Y の更新
に変化。 - S を 1 に戻した後の安定状態計算
で状態は保持される。
以上で X=1, Y=0 が最終結果であると判断できる。
選択肢別の誤答解説
- ア: X=0, Y=0
S を 0 にした瞬間に X は 1 へ遷移するため X=0 のままにはならない。よって矛盾。 - イ: X=0, Y=1
これは初期状態のまま変化が無かった場合を想定した選択だが、S を一旦 0 にする操作があるため X は 1 に遷移する。従って誤り。 - ウ: X=1, Y=0
正しい。S を 0 にしたことで X が 1 に立ち上がり、それが Y を 0 に変え、S を戻した後もその組合せは安定で保持される。 - エ: X=1, Y=1
S を 0 にした段階では X=1 になるが、それに続く Y の更新で Y は 0 になるため最終的に Y=1 にはならない。誤り。
よくある誤解
- 「AND→反転だから NOR ラッチと同じ振る舞い」
NAND相当のSRラッチは入力がアクティブロー(0でアサート)である点が NOR ラッチ(アクティブハイ)と逆です。混同すると入力パルスの意味が逆になりやすいです。 - 「S=1,R=1 のときは必ず X,Y が決まる」
S=1,R=1 は保持(メモリ)領域で、出力は直前の状態に依存します。遷移途中のパルスにより状態が変化し得ることを忘れないでください。
補足コラム
回路の真理(振る舞い)は式で明確に表せます。改めて主要式と代表的な入力組合せの結果を示します。
主要式:
入力組合せ(R,S は同時評価、最終的な安定出力を示す;S,R はアクティブロー):
- S=0, R=1 → X=1, Y=0 (セット)
- S=1, R=0 → X=0, Y=1 (リセット)
- S=1, R=1 → 出力は保持(直前の X,Y を維持)
- S=0, R=0 → X=1, Y=1(両方1になるが、この状態から S,R を 1 に戻すと結果が不定または競合になり得るため実用上は禁忌)
この補足表は回路の論理式 と一致しています。
簡単なシミュレーション(概念確認用)
# ラッチの逐次更新(単純モデル)
def step(S,R,X,Y):
Xn = not (S and Y)
Yn = not (R and Xn)
return int(Xn), int(Yn)
# 初期
S,R,X,Y = 1,1,0,1
# S を一時 0 に
S = 0
X,Y = step(S,R,X,Y)
# S を 1 に戻す
S = 1
X,Y = step(S,R,X,Y)
print(X,Y) # 出力: 1 0
FAQ
Q1. なぜ S を 0 にした瞬間に X が必ず 1 になるのですか?
A1. 式 により、S=0 のとき になり、反転で X=1 となるためです(Y の現在値に依存しません)。
A1. 式 により、S=0 のとき になり、反転で X=1 となるためです(Y の現在値に依存しません)。
Q2. S=0,R=0 の状態は何故「禁忌」なのですか?
A2. その状態では両方の出力が 1 になり、両入力を 1 に戻したときにどちらが先に反映されるかで結果が決まってしまい不定(競合やメタステーブル)になりうるため、通常は避けます。
A2. その状態では両方の出力が 1 になり、両入力を 1 に戻したときにどちらが先に反映されるかで結果が決まってしまい不定(競合やメタステーブル)になりうるため、通常は避けます。
Q3. このラッチはどのような回路で使われますか?
A3. フリップフロップや同期回路の内部、非同期セット/リセット等、短いパルスでセット/リセットを行う基本的な記憶素子として使われます。
A3. フリップフロップや同期回路の内部、非同期セット/リセット等、短いパルスでセット/リセットを行う基本的な記憶素子として使われます。
関連キーワード: SRラッチ、NANDゲート、フィードバック、順序回路、セット・リセット

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

