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

ContinuousLinearAsrc

FIFOから入力窓を補充しながら、50MHzの全クロックで線形補間値を出力するASRC

phaseadvancegndless_nco::FractionalPhaseAccumulatorから受け取る。 phaseが現在の入力サンプルから次の入力サンプルへ進む割合を表し、advanceが次のクロックで窓を1サンプル進めることを表す。 起動時に2サンプルの補間窓と、STARTUP_LEVEL以上の未消費FIFOが揃うまではoutput_activeをfalseにして0を出力する。burst入力ではこの値を大きくして、出力開始前にFIFOへ余裕を持たせる。 動作開始後は、入力不足をunderflowへstickyに記録しながら出力を止めない。

Parameters


SAMPLE_WIDTH u32 入出力サンプルの符号付きビット幅
PHASE_WIDTH u32 位相入力のビット幅
INPUT_DEPTH u32 入力FIFOの深さ
STARTUP_LEVEL u32 出力開始に必要な未消費FIFOワード数

Ports


clk input clock システムクロック
rst input reset リセット
input_valid input bbool 入力サンプル有効
input_ready output bbool 入力受理可能
input_sample input signedlogic 入力サンプル
input_level output logic<$clog2(INPUT_DEPTH+1)> 入力FIFOのワード数
phase input logic 補間位相
advance input bbool 次の入力サンプルへ窓を進める要求
output_active output bbool 連続出力が有効
output_sample output signedlogic 補間後の出力サンプル
underflow output bbool 入力不足のstickyフラグ