自動照準システム【The Signal State編】
はじめに
いつもブログをご覧いただきありがとうございます。
コーストFIRE中のIPUSIRONです😀
自動照準システム(Auto Targeting System)
本ステージから武装の話が出てきます。
ランダムアクセスメモリーを制作してください。SRC1はランダムな値の信号を出力します。
SRC2の出力値が0以外の場合、SRC1の値をSRC2が示す格納先に保存してください。
SRC3の出力値が0以外の場合、SRC3が示す格納先に保存された値をOUT1に出力してください。
![](https://akademeia.info/wp-content/uploads/2024/07/自動照準システム1.jpg)
自動照準システムを解く
1:設計方針を検討する
[1]サンプル波形に注目する
ステップ実行すると、次を確認できました。
- SRC2とSRC3のどちらかは必ず0になる。
- SRC0はさまざまな値。
- SRC2は0~8である。
- SRC3は0~8である。
[2]記憶装置をどうするか
(a)SRC2=0のときは指示されていないので、無視とします。挙動は指示されていません(無視とする)。
(b)残りのSRC2=1~8の可能性があり、それぞれに格納先が用意されているとします。つまり、8個の格納先が必要です。サンプラーモジュールはバッファーサイズを8にセットすれば、8つの電圧値を記憶できます。よって、サンプラーモジュールは記憶装置に代用します。
記憶する同時に出力します。
[3]出力パターンを考える
指示によると、SRC3が0のときは出力しません。すなわち0Vとします。
SRC3が0ではないときは、その値が格納先を指します。
また、SRC2が0でないときにも出力する必要がありますので、SRC2とSRC3を加算器に通してから、サンプラーモジュールのポジションに渡します。
それ以外のときは、出力がゼロにしなければなりません。
2:回路を組む
減衰率を-100%にした減衰器を利用すると、値がゼロかどうかを識別できます。入力値が0であれば0、0でなければ負の数となるからです。
一方、SRC2≠0であることを判定するには、NOTモジュールを通します。SRC2=0ならモジュールを通した結果0になり、SRC2≠0なら100になります。
![](https://akademeia.info/wp-content/uploads/2024/07/自動照準システム2.jpg)