PWM

PWMモジュール
NameIn/OutWidthDescription
CLKIn120.48MHzクロック
TIME_CNTIn8超音波周期カウンタ
UPDATEIn1超音波周期トリガ
DIN_VALIDIn1パルス幅/位相データ有効フラグ
PULSE_WIDTHIn9パルス幅
PHASEIn8位相
PWM_OUTOut1x249PWM信号
DOUT_VALIDOut1立ち上がり/立ち下がりデータ有効フラグ (デバッグ用)

Preconditioner

このサブモジュールでは, 後の処理を楽にするために, パルス幅/位相を信号の立ち上がり時刻と立ち下がり時刻に変換する.

ここで, は周期である.

NOTE: を計算しているのは, が奇数の場合を考慮するためである.

なお, Preconditionerの計算はパイプライン的に行われる. 入力として, DIN_VALIDは249クロックの間1であり, その間PULSE_WIDTH, PHASEからパルス幅/位相データが順番に流れてくることを想定している. 出力に関して, 中間データを出力しないようにするために, 一旦バッファに格納している.

Buffer

Bufferは, TIME_CNTの値がになるまでの更新を遅らせる. すなわち, 超音波周期の途中でが更新されることを防ぐためにある.

Generator

GeneratorはTIME_CNTの値とBufferから出力されたを用いて, PWMの出力を計算する.