Pulse Witdth Encoder
Name | In/Out | Width | Description |
---|---|---|---|
CLK | In | 1 | メインクロック |
DUTY_TABLE_BUS | In | - | メモリバス |
DIN_VALID | In | 1 | 強度/位相データ有効フラグ |
INTENSITY_IN | In | 8 | 強度 |
PHASE_IN | In | 8 | 位相 |
PULSE_WIDTH_OUT | Out | 9 | パルス幅 |
PHASE_OUT | Out | 8 | 位相 |
DOUT_VALID | Out | 1 | パルス幅/位相データ有効フラグ |
このモジュールは, 強度をパルス幅に変換する. 強度とパルス幅の関係は, 理想的には となる. ここで, は周期である. このモジュールはこれの逆変換を行うためのモジュールである.
NOTE: 最初からパルス幅を使用しないのは, 強度にAM変調をかけるためである.
ただし, 上記は理想的な変換であり, 現実とは異なる可能性がある. そのため, このモジュールでは, 強度をインデックス, パルス幅を値とするテーブルを利用している. このテーブルは, 書き込み可能になっているため, 任意の変換を実現する事ができる. (デフォルトでは, 上記の理想的な変換を行うテーブルが用意されている.)
このモジュールの処理もパイプライン的に行われる.
入力として, DIN_VALID
は249クロックの間1であり, その間INTENSITY_IN
, PHASE_IN
から強度/位相データが順番に流れてくることを想定している.
処理が終わったら, DOUT_VALID
を1とし, 順次PULSE_WIDTH_OUT
, PHASE_OUT
からパルス幅/位相データを流す.
NOTE: 位相に関しては何も処理しないが, ディレイを入れてパルス幅データと歩調を揃えている.