Saving Gracefully
前提レベル
このレベルを前提とするレベル
概要
Save
入力が True のときに入力値を保存する 回路を構成する問題です。
攻略 (SR Latch使用)
このステージではSR Latch (Set-Reset Latch) という部品が追加されています (もともとはこれを構成するレベルがあったのですが、2022年4月4日現在削除されています)。
オプションから Allow inline latches を有効化して SR Latch のレベルをクリアすることで開放されるようです。
この部品には2つの入力があり、それぞれ Set
と Reset
という名前がついています。 Set
入力が True となった場合、SR Latchの内部状態が Trueとなり、 SR Latchは True を出力し続けるようになります。 反対に Reset
に入力が True となった場合、SR Latchの内部状態が Falseとなり、 SR Latchは False を出力し続けるようになります。 どちらにも入力がされていない場合は内部状態を保持し、 どちらにも入力がある場合の動作は一般に不定・もしくは禁止とされています (すなわちアップデートで変更される可能性もあり、このような入力をすべきではありません)。
この部品を使い、入力を保存する回路を構成すればよいです。
解答 (SR Latch使用)
Save
入力が True で Value
が True のときは Set
に、 Save
入力が True で Value
が False のときは Reset
に 入力を行えばいいことがわかります。
したがって次のような回路を構成すればよいです。
攻略 (SR Latch不使用)
メモリーの基本は前のtickの出力を次のtickの入力に使うことです。 すなわちメモリーは遅延+ループの構造が必ず存在します。
入力と前のtickの出力の3つを利用して次の出力を決める方法を考えればよいです。
解答 (SR Latch不使用)
出力が True となる条件は、次の2つのいずれかです。
- Actionが Save かつ Valueが 1
- Actionが Don't Save かつ前のtickの出力が 1
これをそのまま回路に実装すると次のようになります。