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

FourXHalfbandAsrc::<FORMAT>

2段のhalfband補間と連続線形ASRCを接続した1ch 4倍オーバーサンプラ

入力1サンプルから論理的に4サンプルを生成し、後段のSTD FIFOへburstで受け渡す。FIFOの読み出しと50MHz出力の位相進行はContinuousLinearAsrcが担当するため、HBF自身は入力受理と2サンプルburstのready/validだけを扱う。

input → Halfband 2x (stage 1) → Halfband 2x (stage 2)
      → 4-sample burst → FIFO → continuous linear ASRC → output

HBFのburstでFIFOをSTARTUP_LEVELまで満たしてからoutput_activeになる。 以後は毎クロック補間値を出し、advance時だけFIFOから次の窓を補充する。

Generic Parameters


FORMAT gndless_fixedpoint SignedFixedPointFormat

Parameters


PHASE_WIDTH u32 位相入力のビット幅
INPUT_DEPTH u32 出力側入力FIFOの深さ

Ports


clk input clock システムクロック
rst input reset リセット
input_valid input bbool 入力サンプル有効
input_ready output bbool 入力受理可能
input_sample modport gndless_fixedpoint FixedPointValue input_port 入力sample
phase_increment input logic 毎クロックの位相増分
output_active output bbool 連続出力が有効
output_sample modport gndless_fixedpoint FixedPointValue output_port 補間後の出力sample
input_level output logic<$clog2(INPUT_DEPTH+1)> 入力FIFOのワード数
underflow output bbool 入力不足のstickyフラグ