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

gndless_nco

Unsigned modular phase and clock-enable NCO primitives for Veryl.

Version 0.2.0
Repository https://github.com/AkiyukiOkayasu/gndless-nco-veryl
License MIT OR Apache-2.0

Modules

EocDetector 位相の1周期完了 (End Of Cycle) 検出器
FractionalPhaseAccumulator ASRC用の分数位相アキュムレータ
Phasor 位相発生器

Packages

Phase 位相発生器 (Phasor / Phase Accumulator)

Modules


EocDetector 位相の1周期完了 (End Of Cycle) 検出器
FractionalPhaseAccumulator ASRC用の分数位相アキュムレータ
Phasor 位相発生器

EocDetector

位相の1周期完了 (End Of Cycle) 検出器

Phasorphasephase_stepから、位相がラップアラウンドしたサイクルを1クロックだけHighにするeocを生成する。 内部にprev_phase(32bit)を持つため、Phasorと同じclkphase_rstを与えることでPhasor.eoc(旧実装)と 同一のcycleでeocを出力する。

正のstepでは位相出力が減少したとき(オーバーフロー)、負のstepでは増加したとき(アンダーフロー)を検出する。 EocDetectorphase_stepの符号を参照するため、phaseの履歴だけでは判定できない大振幅stepも正しく扱える。

Ports


clk input clock システムクロック
phase_rst input bbool 位相ゼロリセット (同期)
phase_step input Phase step_t 位相ステップ量 (`Phasor`へ与える値と同一)
phase input Phase phase_t `Phasor`の位相出力
eoc output logic 1周期完了パルス: 位相がラップアラウンドしたサイクルで1クロックだけHigh

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することを示すパルス

Phasor

位相発生器 全ての波形オシレーターの基礎となるモジュール 負の周波数(位相の逆回転)にも対応 1周期完了の検出が必要な場合はEocDetectorを併設する

Ports


clk input clock システムクロック
phase_rst input bbool 位相ゼロリセット (同期)
phase_step input Phase step_t 1クロックあたりの位相ステップ量: step = (ターゲット周波数 * 2^48) / システムクロック周波数
phase output Phase phase_t 位相出力 (0 ~ 2^32-1)

Module Prototypes


Interfaces


Packages


Phase 位相発生器 (Phasor / Phase Accumulator)

Phase

位相発生器 (Phasor / Phase Accumulator) 全ての波形オシレーターの基礎となるモジュール