Brown Noise
Brown (red) noise source, -6 dB/octave, one sample per CE clock: a leaky integrator on an embedded white xoshiro256** source. The leak stops the DC drift and sets the low-frequency corner; amplitude scaling by a configurable output shift with saturation. Pure VHDL, shifts and adds only. Auto-random per-instance seed, RESET restarts the sequence.
Introduction
Brownian (random-walk) noise has a $1/f^2$ power spectrum: -6 dB per octave. The block integrates white noise with a leak, $y \mathrel{+}= x - y\cdot 2^{-k}$: above the corner $f_c \approx f_s/(2\pi 2^k)$ the spectrum falls at -6 dB/oct, below it flattens (the leak is what keeps the walk bounded and drift-free).
Measured on the bit-exact model the hardware is verified against; the dashed line is the ideal -6 dB/octave slope.
Pin Description
Properties
Width of the OUT word (2..32), signed.
Output width (2..32), signed, saturated.Default: 16
Range: 2 – 32
Leak k of the integrator: corner frequency ~ fs/(2pi2^k); below it the spectrum flattens (stops the DC drift).
Integrator leak k (2..16): corner ~ fs/(2pi2^k); -6 dB/oct above it, flat below.Default: 8
Range: 2 – 16
Right shift applied to the accumulator before the saturated output (amplitude scaling). The accumulator RMS grows ~2^(k/2), so k/2 is a good starting point.
Right shift before the output (0..24): amplitude scaling. Start from k/2.Default: 4
Range: 0 – 24
Seed of the embedded white generator (128 bit hex), expanded internally with SplitMix64. Auto-randomized when the component is created, so multiple instances produce independent noise; editable for reproducible runs. RESET restarts the sequence. Brown/red noise, -6 dB/octave (leaky integrator on white noise).
128-bit seed of the embedded white generator (auto-randomized at placement, editable).Default: 7E954085955145CBBF4CAE6C4C1D9801
Usage
The accumulator is OutputBits+LeakShift+2 wide and cannot wrap; the
output is the accumulator shifted right by OutputShift and saturated.
The accumulator RMS grows like $2^{k/2}$, so OutputShift ~ k/2 keeps the
output in range with good utilization. CE defaults to ‘1’.