← All problems

FIR Filter

Hard · Sequential · SystemVerilog

Implement a parameterized direct-form FIR (Finite Impulse Response) filter that computes the convolution of the last NUM_TAPS input samples with a static coefficient array.

**Filter equation**

The filter output at time $n$ is defined as:

$y[n] = \sum_{k=0}^{NUM\_TAPS-1} h[k] \cdot x[n-k]$

where $h[k]$ are the filter coefficients supplied via {coeffs} and $x[n-k]$ are the current and previous input samples stored in an internal shift register.

**Shift register**

Open this challenge in the editor →