Veryl registryAkiyukiOkayasu/gndless-nco-veryl · gndless_ncoSource ↗

Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

FractionalPhaseAccumulator

ASRC用の分数位相アキュムレータ

phaseはQ0.WIDTHの小数位相を表す。毎クロックphase_incrementを加算し、2^WIDTHを跨ぐときだけadvanceを1にする。advanceは実クロックを生成するためではなく、入力サンプル窓を1サンプル進めるための制御信号として使用

初期仕様ではphase_incrementを0以上1未満に限定する。したがって、1クロックで発生するwrapは最大1回である

advanceは現在のphase + phase_incrementが次の立ち上がりでwrapすることを組み合わせで予告する。wrapする立ち上がりの後、phaseには剰余が現れ、advanceは次回の加算がwrapしない限りLowへ戻る

Parameters


WIDTH u32 位相の小数部ビット幅

Ports


clk input clock システムクロック
rst input reset リセット
enable input bbool 位相更新イネーブル
phase_increment input logic 1クロックあたりの位相増分
phase output logic 現在の小数位相
advance output bbool 次の加算でwrapすることを示すパルス