ContinuousLinearAsrc
FIFOから入力窓を補充しながら、50MHzの全クロックで線形補間値を出力するASRC
phaseとadvanceはgndless_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フラグ
|
|