SoftFade::<FORMAT>
dutyディザによる線形フェードイン(ソフトミュート)モジュール
fade_inがLowの間は出力を0に保持する。Highへ立ち上げると、窓内位置
fade_posがduty(fade_duty)未満の間だけ入力を通過させ、平均ゲインを
duty/窓で線形に0→1へ増加させる。乗算器を使わないためDSP資源を消費しない。
通過/遮断のトグル周波数は clk/WINDOW で、PWMノイズは帯域外になる。
フェード時間は WINDOW * WINDOW / FADE_STEP クロック。 例: clk=50MHz, WINDOW=1024, FADE_STEP=2 → 約10.5ms。
Generic Parameters
| FORMAT | gndless_fixedpoint SignedFixedPointFormat |
|---|
Parameters
| CHANNELS | u32 | チャンネル数 |
|---|---|---|
| WINDOW | u32 | ディザ窓長(クロック)。トグル周波数 = clk/WINDOW |
| FADE_STEP | u32 | 窓あたりのduty増分。duty最大はWINDOW |
Ports
| clk | input | clock | システムクロック |
|---|---|---|---|
| rst | input | reset | リセット |
| fade_in | input | bbool | フェード制御 (Lowで出力0、Highでフェードイン) |
| x | modport | gndless_fixedpoint FixedPointValue input_port [CHANNELS] | 入力 |
| y | modport | gndless_fixedpoint FixedPointValue output_port [CHANNELS] | 出力 |