Xilinx
Block Preview

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).

Brown noise PSD

Measured on the bit-exact model the hardware is verified against; the dashed line is the ideal -6 dB/octave slope.

Pin Description

CE Input 1 bit BIT
Clock enable: one new sample per clock where high. Default: ‘1’.
Default: 1
CLK Input 1 bit BIT
Clock.
Default: Default Board Clock
RESET Input 1 bit BIT
Clears the integrator and restarts the sequence from the seed.
Default: Default Board Reset
OUT Output 16 bit BIT VECTOR
Brown noise sample, signed, OutputBits wide, saturated.
DV_OUT Output 1 bit BIT
High on every clock carrying a new sample.

Properties

Property window

Output bits OutputBits

Width of the OUT word (2..32), signed.

Output width (2..32), signed, saturated.

Default: 16

Range: 2 – 32

Leak shift LeakShift

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

Output shift OutputShift

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 (32 digit hex) SEED

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’.