Skip to content

Modulation

This content is not available in your language yet.

Modulation モジュール
Name In/Out Width Description
CLK In 1 メインクロック
MOD_SETTINGS In -
├─ UPDATE In 1 設定更新フラグ
├─ REQ_RD_BANK In 1 要求読み込みバンク
├─ CYCLE[n] In 16 第 n バンクの周期 - 1
├─ FREQ_DIV[n] In 16 第 n バンクの周波数分周比
├─ REP[n] In 16 第 n バンクの繰り返し回数 - 1
├─ TRANSITION_MODE In 8 遷移モード
└─ TRANSITION_VALUE In 64 遷移値
SYS_TIME In 57 システム時刻
DIN_VALID In 1 強度/位相データ有効フラグ
INTENSITY_IN In 8 強度
PHASE_IN In 8 位相
INTENSITY_OUT Out 8 強度
PHASE_OUT Out 8 位相
DOUT_VALID Out 1 強度/位相データ有効フラグ
MOD_BUS In - 変調用メモリバス
PHASE_CORR_BUS In - 位相補正データメモリバス
GPIO_IN In 4 GPIO 入力

このモジュールは, 強度データに変調データを掛け合わせることで AM 変調を実現するモジュールである. 変調データは一定の周期でメモリからサンプルされる. 変調データ領域は 2 つのバンクに分けられており, それぞれ独立に設定できる.

また, 位相に関しては Phase Correction サブモジュールがこのモジュール内でインスタンス化されており, 強度データの変調と並列に処理される.

このサブモジュールは, システム時刻, 周期 , 周波数分周比 から, 現在読み込むべき変調データのインデックスを計算する. 変調データのインデックス

として計算される. SYS_TIME でカウントアップされるため, AM データのサンプリング周波数

となり, はこの周波数で から まで周期的にカウントアップされる.

SYS_TIME がすべてのデバイスで同期しているため, このインデックスも必然的にすべてのデバイスで同期する.

このサブモジュールはバンクの切り替えを制御する.

バンク切替時の挙動は以下の通りである.

  1. 要求されたバンクの繰り返し回数が 0xFFFF (無限ループ) の場合, 直ちにバンクを切り替える.
    • 遷移モードが EXT の場合, バンク内のデータを一周するたび, バンクを自動的に切り替える.
    • それ以外の遷移モードの場合は, 単にそのバンクを無限ループする. クライアント側の Immediate はこの経路を使う.
  2. 要求されたバンクの繰り返し回数が 0xFFFF 以外の場合, 遷移モードに従ってバンクの切り替えを待機する. バンク切り替え後, 指定回数の繰り返しが終わった後, STOP をアサートする.
    • 遷移モードが SYNC_IDX の場合, 要求されたバンクのインデックスが 0 になったら切り替える.
    • 遷移モードが SYS_TIME の場合, システム時刻が遷移値で指定された値を超えたら切り替え, インデックスを 0 に初期化する.
    • 遷移モードが GPIO の場合, 遷移値で指定された GPIO In ピンがアサートされたら切り替え, インデックスを 0 に初期化する.

STOP がアサートされている間, Multiplier はバンク及びインデックスを更新しない. すなわち, 最後にサンプルした変調データを保持し続ける.

このサブモジュールは, 強度データに変調データを掛け合わせ, で割る.

なお, による除算は除算器を使わず, の範囲で厳密に成り立つ以下の近似で計算している.

変調データは Swapchain サブモジュールから渡される BANK, IDX に応じてメモリから読み出す.