Veryl registryAkiyukiOkayasu/gndless-delta-sigma-veryl · gndless_delta_sigmaSource ↗

Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

gndless_delta_sigma

First- and second-order Q1.31 delta-sigma modulators for Veryl.

Version 0.1.1
Repository https://github.com/AkiyukiOkayasu/gndless-delta-sigma-veryl
License MIT OR Apache-2.0

Modules

DeltaSigma1st 1次デルタシグマ変調器
DeltaSigma2nd 2次デルタシグマ変調器

Components

idle_tone_checker 無音PDMを3段CICで間引き、可聴帯域の狭帯域トーンを検出する。

Modules


DeltaSigma1st 1次デルタシグマ変調器
DeltaSigma2nd 2次デルタシグマ変調器

DeltaSigma1st

1次デルタシグマ変調器

キャリー・アキュムレータ形式で実装し、入力のDC値に比例したPDM密度を得る。 pdmclkごとに1bit更新される。

Ports


clk input clock システムクロック
rst input reset リセット
audio input gndless_fixedpoint Q1_31 Raw Q1.31入力サンプル
pdm output logic 1bit PDM出力

DeltaSigma2nd

2次デルタシグマ変調器

2段の積分器を持つ簡易構成で、1次変調器より高い帯域外ノイズシェーピングを得る。 内部演算は余裕を持たせた40bit signedとする。無音時の決定論的な アイドルトーンを防ぐため、変調器入力へ±1 LSBのハイパスTPDFディザを加える。

Parameters


DITHER_SEED u32 ハイパスTPDFディザ用LFSRの非ゼロ初期値

Ports


clk input clock システムクロック
rst input reset リセット
audio input gndless_fixedpoint Q1_31 Raw Q1.31入力サンプル
pdm output logic 1bit PDM出力

Module Prototypes


Interfaces


Packages


Components


idle_tone_checker 無音PDMを3段CICで間引き、可聴帯域の狭帯域トーンを検出する。

idle_tone_checker

clocked component

無音PDMを3段CICで間引き、可聴帯域の狭帯域トーンを検出する。

CICは50MHz入力、1/1024間引き、3段、64bit wraparoundで実行する。リセット後1秒を 除外して16384点Hann窓FFTを50% overlapで実行し、20Hzから20kHzの最大ピークが -100dBFS以上なら失敗とする。

Ports


clk input clock CICと同じサンプリングクロック。
rst input reset テスト初期化をコンポーネントの状態にも反映するリセット。
pdm input DeltaSigma変調器の1bit PDM出力。

Usage


inst u0: $comp::idle_tone_checker (clk, rst, pdm);