コンテンツにスキップ
これは開発版のドキュメントである. 内容は次のリリースまでに変更される可能性がある. 最新のリリース版は 0.6.x を参照.

Silencer

Silencer モジュール
Name In/Out Width Description
CLK In 1 メインクロック
SILENCER_SETTINGS In -
├─ FLAG In 8 フラグ
├─ UPDATE_RATE_INTENSITY In 16 固定更新幅 (強度)
├─ UPDATE_RATE_PHASE In 16 固定更新幅 (位相)
├─ COMPLETION_STEPS_INTENSITY In 16 固定完了ステップ (強度)
└─ COMPLETION_STEPS_PHASE In 16 固定完了ステップ (位相)
DIN_VALID In 1 強度/位相データ有効フラグ
INTENSITY_IN In 8 強度
PHASE_IN In 8 位相
INTENSITY_OUT Out 8 強度
PHASE_OUT Out 8 位相
DOUT_VALID Out 1 強度/位相データ有効フラグ

このモジュールは, 強度/位相データの急激な変化を抑え, 静音化するためのモジュールである.

強度データ に対しては, 現在の値 と, 目標値 に対して, 以下のように更新する.

出力は となる.

また, 位相データ に対しては, 現在の値 と, 目標値 に対して, 以下のように更新する.

出力は となる. ここで, はそれぞれ強度, 位相に対する 1 ステップ当たりの更新量, は超音波周期 () である. なお, 更新は の周波数で行われる.

の決定方法に 2 つのモードがある.

  1. 固定更新幅モード: すべての振動子に対して, 強度, 位相それぞれ固定の UPDATE_RATE_INTENSITY, UPDATE_RATE_PHASE を用いる.
  2. 固定完了ステップモード: すべての振動子に対して同一のステップで変化が完了するように を決定する. すなわち, 強度, 位相のステップ数 COMPLETION_STEPS_INTENSITY, COMPLETION_STEPS_PHASE に対して,
    を, 目標値が変化したタイミングで個々の振動子に対して設定する.

これらのモードは FLAG 目 (SILENCER_FLAG_BIT_FIXED_UPDATE_RATE_MODE) にて切り替える.

このモジュールの処理もパイプライン的に行われる. 入力として, DIN_VALID は 249 クロックの間 1 であり, その間 INTENSITY_IN, PHASE_IN から強度/位相データが順番に流れてくることを想定している. 処理が終わったら, DOUT_VALID を 1 とし, 順次 INTENSITY_OUT, PHASE_OUT から強度/位相データを流す.

このサブモジュールは, 固定完了ステップモードにおける を計算する.

ただし, 整数を用いるため, 余りの処理が問題になる. これに関しては, 例えば強度の場合, ステップの内, 最初の ステップにおいては , それ以降では として使用することで対処している. 位相も同様である.

なお, 固定更新幅モードの場合は, このサブモジュールの出力は使用されない.

このサブモジュールは, 現在の強度/位相データに対して, 更新量 を加算しているだけである. ただし, 位相に関しては前述の通り, 目標値 (の 256 倍) と現在値との差の大きさに応じて加算するか減算するかを決定している.