SampleRateTracker
入力サンプルの到着周期測定と低域通過周期推定値の出力
このモジュールはASRC全体ではない。sample_validの時刻列から、生の周期と平滑化した周期を作るだけに責務を限定する。
位相累積、補間、FIFOレベル制御は後段のモジュールで行う。
FILTER_SHIFTが大きいほど追従は遅くなるが、valid時刻の量子化やサンプル間ジッターを位相増分へ伝えにくくなる。
filtered_periodはPERIOD_WIDTH.FRACTION_WIDTHの固定小数点値である。
最初のsample_validは基準時刻を記録するだけで、次の到着からmeasured_periodを更新してperiod_validを1クロックだけHighにする。
有効な測定がLOCK_COUNT回に達するとlockedを保持する。
Parameters
| PERIOD_WIDTH | u32 | 整数周期のビット幅 |
|---|---|---|
| FRACTION_WIDTH | u32 | 平滑化周期の小数部ビット幅 |
| FILTER_SHIFT | u32 | 周期平滑化の右シフト量 |
| LOCK_COUNT | u32 | lock判定に必要な有効測定回数 |
Ports
| clk | input | clock | システムクロック | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| rst | input | reset | リセット | ||||||||||||
| sample_valid | input | bbool | 入力サンプル到着パルス | ||||||||||||
| measured_period | output | logic| 測定した整数周期
|
period_valid |
output |
bbool |
周期更新パルス
|
filtered_period |
output |
logic | 平滑化した固定小数点周期
|
locked |
output |
bbool |
lock状態
|
|