当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題のある表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

Register with backup【NandGame編】

はじめに

いつもブログをご覧いただきありがとうございます。

セミリタイア・ミジンコのIPUSIRONです😀

IPUSIRONのプロフィールを見る

Register with backupレベル

Register with backupレベルのゴールは、次の回路を組むことです。入力の16ビット値をバックアップしておき、用意されたいくつかの入力フラグで出力する値を切り替える回路を組むことです。

回路には16ビットレジスターRとその対になるバックアップレジスターRbを内蔵しており、レジスターの現在値を出力します。

入力st=1の場合、入力XをRに格納します。st=1かつsb=1の場合、XをレジスターRbに格納します。

[1]割り込み

sw=1かつmd=1のとき、Rの値をRbに格納し、入力X0をRに格納します。

[2]レジューム

sw=1、md=0のとき、レジスターが保持する値はスワップ(交換)されます。すなわち、Rの値をRbに、Rbの値をRに格納します。

入力・st
・sb
・X
・sw
・mod
・X0:sw=1のときは無視する。sw=0
・cl:クロック信号
出力・R:16ビット。
・Rb:16ビット。
回路の入出力

何がどこに格納されるかは、4つの入力フラグ(st、sb、sw、mod)に依存します。文章だけだと複雑に見えるので、真理値表で正確に入出力パターンを確認してください。

st(入)sb(入)sw(入)md(入)R(出)Rb(出)
00
100X
110X
010RbR
011X0R
1011X0X
回路の真理値表

Register with backupレベルを解く

1:今回の回路は2つのレジスターを備えているので、2つのregisterコンポーネント(16ビットD-FFレジスター)を配置します。

2つのレジスターの現在値は、出力RとRbからそれぞれ出力しますので、直結でワイヤリングします。

2:入力フラグstとswによる挙動を回路に組み込みます。

入力フラグsw=1のタイミングでレジスターの内容を書き換える処理を追加します。

3:入力フラグmdの挙動を追加します。

md=1なら、X0を扱うことになります。

4:テストする

テストにパスすると、クリアになります。