Turing Complete Unofficial

Saving Gracefully

前提レベル

このレベルを前提とするレベル

概要

Save 入力が True のときに入力値を保存する 回路を構成する問題です。

攻略 (SR Latch使用)

このステージではSR Latch (Set-Reset Latch) という部品が追加されています (もともとはこれを構成するレベルがあったのですが、2022年4月4日現在削除されています)。

オプションから Allow inline latches を有効化して SR Latch のレベルをクリアすることで開放されるようです。

この部品には2つの入力があり、それぞれ SetReset という名前がついています。 Set 入力が True となった場合、SR Latchの内部状態が Trueとなり、 SR Latchは True を出力し続けるようになります。 反対に Reset に入力が True となった場合、SR Latchの内部状態が Falseとなり、 SR Latchは False を出力し続けるようになります。 どちらにも入力がされていない場合は内部状態を保持し、 どちらにも入力がある場合の動作は一般に不定・もしくは禁止とされています (すなわちアップデートで変更される可能性もあり、このような入力をすべきではありません)。

この部品を使い、入力を保存する回路を構成すればよいです。

解答 (SR Latch使用)

開く

Save 入力が TrueValueTrue のときは Set に、 Save 入力が TrueValueFalse のときは Reset に 入力を行えばいいことがわかります。

したがって次のような回路を構成すればよいです。

攻略 (SR Latch不使用)

メモリーの基本は前のtickの出力を次のtickの入力に使うことです。 すなわちメモリーは遅延+ループの構造が必ず存在します。

入力と前のtickの出力の3つを利用して次の出力を決める方法を考えればよいです。

解答 (SR Latch不使用)

開く

出力が True となる条件は、次の2つのいずれかです。

これをそのまま回路に実装すると次のようになります。