Pulse Witdth Encoder

NameIn/OutWidthDescription
CLKIn1メインクロック
DUTY_TABLE_BUSIn-メモリバス
DIN_VALIDIn1強度/位相データ有効フラグ
INTENSITY_INIn8強度
PHASE_INIn8位相
PULSE_WIDTH_OUTOut9パルス幅
PHASE_OUTOut8位相
DOUT_VALIDOut1パルス幅/位相データ有効フラグ

このモジュールは, 強度をパルス幅に変換する. 強度とパルス幅の関係は, 理想的には となる. ここで, は周期である. このモジュールはこれの逆変換を行うためのモジュールである.

NOTE: 最初からパルス幅を使用しないのは, 強度にAM変調をかけるためである.

ただし, 上記は理想的な変換であり, 現実とは異なる可能性がある. そのため, このモジュールでは, 強度をインデックス, パルス幅を値とするテーブルを利用している. このテーブルは, 書き込み可能になっているため, 任意の変換を実現する事ができる. (デフォルトでは, 上記の理想的な変換を行うテーブルが用意されている.)

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

NOTE: 位相に関しては何も処理しないが, ディレイを入れてパルス幅データと歩調を揃えている.