Chargement…
Chargement…
Le module calcule la convolution discrète d'une suite d'échantillons signés i_sample avec un jeu de 5 coefficients fixés (filtre passe-bas, fenêtre triangulaire 1, 2, 4, 2, 1).
La structure imposée est la forme directe :
Un nouvel échantillon est consommé à chaque pulse de i_valid='1'. La sortie o_sample est valide à o_valid='1' un cycle plus tard. Reset synchrone actif haut.
Génériques :
g_DATA_WIDTH : positive (défaut 16) - largeur des échantillons signésg_COEF_WIDTH : positive (défaut 4) - largeur des coefficients signésg_OUT_WIDTH : positive (défaut 24) - largeur de la sortie signéePorts :
| Signal | Direction | Largeur | Description |
|---|---|---|---|
i_clk | Entrée | 1 bit | Horloge système |
i_rst | Entrée | 1 bit | Reset synchrone actif haut |
i_sample | Entrée | g_DATA_WIDTH | Échantillon d'entrée signé |
i_valid | Entrée | 1 bit | Pulse de validité de i_sample |
o_sample | Sortie | g_OUT_WIDTH | Sortie filtrée signée |
o_valid | Sortie | 1 bit | Pulse de validité de o_sample |
Les 5 coefficients sont définis dans le package fir_coef_pkg (non éditable) :
c_COEFS = (1, 2, 4, 2, 1)
C'est une fenêtre triangulaire centrée, qui réalise un filtre passe-bas FIR de gain DC = 10.