PWM
| Name | In/Out | Width | Description |
|---|---|---|---|
| CLK | In | 1 | 20.48MHzクロック |
| TIME_CNT | In | 8 | 超音波周期カウンタ |
| UPDATE | In | 1 | 超音波周期トリガ |
| DIN_VALID | In | 1 | パルス幅/位相データ有効フラグ |
| PULSE_WIDTH | In | 9 | パルス幅 |
| PHASE | In | 8 | 位相 |
| PWM_OUT | Out | 1x249 | PWM信号 |
| DOUT_VALID | Out | 1 | 立ち上がり/立ち下がりデータ有効フラグ (デバッグ用) |
Preconditioner
このサブモジュールでは, 後の処理を楽にするために, パルス幅/位相を信号の立ち上がり時刻と立ち下がり時刻に変換する.
ここで, は周期である.
NOTE: を計算しているのは, が奇数の場合を考慮するためである.
なお, Preconditionerの計算はパイプライン的に行われる.
入力として, DIN_VALIDは249クロックの間1であり, その間PULSE_WIDTH, PHASEからパルス幅/位相データが順番に流れてくることを想定している.
出力に関して, 中間データを出力しないようにするために, 一旦バッファに格納している.
Buffer
Bufferは, TIME_CNTの値がになるまでの更新を遅らせる.
すなわち, 超音波周期の途中でが更新されることを防ぐためにある.
Generator
GeneratorはTIME_CNTの値とBufferから出力されたを用いて, PWMの出力を計算する.