Turing Complete Unofficial

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つのいずれかです。

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