Veryl registryAkiyukiOkayasu/gndless-sample-rate-conversion-veryl · gndless_sample_rate_conversionSource ↗

Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

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状態