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。
CHANNELSとWINDOWは1以上、FADE_STEPは1以上を指定する。
Generic Parameters
| FORMAT | SignedFixedPointFormat |
|---|
Parameters
| CHANNELS | u32 | チャンネル数 (1以上) |
|---|---|---|
| WINDOW | u32 | ディザ窓長(クロック、1以上)。トグル周波数 = clk/WINDOW |
| FADE_STEP | u32 | 窓あたりのduty増分 (1以上)。duty最大はWINDOW |
Ports
| clk | input | clock | システムクロック |
|---|---|---|---|
| rst | input | reset | リセット |
| fade_in | input | bbool | フェード制御 (Lowで出力0、Highでフェードイン) |
| x | modport | FixedPointValue input_port [CHANNELS] | 入力 |
| y | modport | FixedPointValue output_port [CHANNELS] | 出力 |