Counter【NandGame編】
はじめに
いつもブログをご覧いただきありがとうございます。
コーストFIRE中のIPUSIRONです😀
Counterレベル
Counterレベルのゴールは、カウンター回路を組むことです。
カウンター回路は、クロック信号の度に出力値をインクリメントしていきます。
入力 | ・st:ストアフラグ。 1なら、入力値Xを新しいカウンター値として使う。 ・cl:クロック信号。 「0⇒1」で内部カウンター値をインクリメントして出力する。 ・X:上書きするためのカウンター値。 |
出力 | ・Output:カウンター値。16ビット。 ※常に内部のカウンター値を出力し続ける。 |
Counterレベルを解く
1:使うコンポーネントを選定する
本ステージではregisterコンポーネントが用意されています。このコンポーネントは16ビットのD-FFです。せっかくなので活用しましょう。
そして、インクリメントするには、inc 16コンポーネントがピッタリです。
X端子からくる上書き用のカウンター値を使うか、内部カウンター値を使うかは、select 16コンポーネントが適しています。
2:回路を実装する
registerコンポーネントの出力値をインクリメントして、ぐるりと回してregisterコンポーネントの入力Xに戻ってくるようにします。
registerコンポーネントで内部カウンター値を保持します。clピンが1なら内部カウンター値を出力し、0ならXピンの値を保持した上で出力します。つまり、stピンは常に1で問題ありません。
当該回路のstフラグが0ならXのルートを選択し、1ならインクリメントした値のルートを選択します。
この回路は4つのコンポーネントを使い、内部的には610個のNandゲートで構成されています。