Skip to content
This is the development version of the documentation. It may change before the next release. See 0.6.x for the latest release.

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 に応じてメモリから読み出す.