Vivado Fir Ip核动态更改滤波器系数

有时在设计过程中,可能需要不同的滤波效果,如果采样率一样的情况下,我们有两种方式进行切换系数,其中一种就是真正意义上的动态切换,如下图:
Vivado Fir Ip核动态更改滤波器系数_第1张图片
这种方式适合真正意义上的系数从新加载,但是配置相对复杂,但是省资源,如果只是少数的几种参数切换,我们可以换种方式,就是通过不同的参数都加载在coe中,最好每种系数个数是一样的,例如我这选取了3种:

**Vivado Fir Ip核动态更改滤波器系数_第2张图片
我这里设计了3个99阶的FIR滤波器,我们只需要将系数叠加再一起就行,例如:
radix = 16;
coefdata =
ffa6,
0004,
00ae,
0169,
00fa,
fecd,
fc7d,
fce2,
00db,
0580,
0632,
0132,
fa35,
f799,
fc23,
03ac,
072a,
0431,
ff54,
fe43,
00a1,
0092,
fb10,
f5c1,
f9c1,
07b5,
138e,
0f93,
fc52,
eab2,
eb5f,
fcb7,
0c6c,
0c58,
02ad,
0103,
0b9f,
0ff7,
fa9b,
d601,
ca47,
f47f,
3d52,
61fc,
3245,
c910,
8001,
9fa0,
160b,
7f9f,
7f9f,
160b,
9fa0,
8001,
c910,
3245,
61fc,
3d52,
f47f,
ca47,
d601,
fa9b,
0ff7,
0b9f,
0103,
02ad,
0c58,
0c6c,
fcb7,
eb5f,
eab2,
fc52,
0f93,
138e,
07b5,
f9c1,
f5c1,
fb10,
0092,
00a1,
fe43,
ff54,
0431,
072a,
03ac,
fc23,
f799,
fa35,
0132,
0632,
0580,
00db,
fce2,
fc7d,
fecd,
00fa,
0169,
00ae,
0004,
ffa6,
0005,
002a,
fff0,
0040,
00d2,
005a,
fe49,
fd16,
ffad,
041b,
048f,
ff93,
fb45,
fcce,
00a2,
00bc,
ff06,
0177,
05e2,
03df,
fbc8,
f860,
fdb0,
022b,
ffba,
fef9,
067b,
0b19,
011e,
f364,
f4c2,
00bd,
033e,
fd0e,
02cc,
1336,
10e6,
f4ad,
e2b7,
f327,
07c1,
002e,
f8cd,
1aab,
3f4a,
14ce,
ab57,
8808,
f4c5,
7fff,
7fff,
f4c5,
8808,
ab57,
14ce,
3f4a,
1aab,
f8cd,
002e,
07c1,
f327,
e2b7,
f4ad,
10e6,
1336,
02cc,
fd0e,
033e,
00bd,
f4c2,
f364,
011e,
0b19,
067b,
fef9,
ffba,
022b,
fdb0,
f860,
fbc8,
03df,
05e2,
0177,
ff06,
00bc,
00a2,
fcce,
fb45,
ff93,
048f,
041b,
ffad,
fd16,
fe49,
005a,
00d2,
0040,
fff0,
002a,
0005,
0001,
ffc1,
ff5a,
fefe,
ff0e,
ffac,
0076,
00b8,
000e,
fee6,
fe47,
fedc,
0031,
00fe,
006b,
ff1b,
febc,
004f,
02db,
0426,
02fa,
00b1,
0020,
029a,
0623,
0715,
03f4,
ff81,
fe4b,
01d3,
0644,
05df,
ff2a,
f766,
f5ce,
fbbe,
020a,
ff85,
f317,
e6c1,
e6af,
f3e5,
0045,
fa82,
e0d4,
c84c,
cec8,
00d9,
4a25,
7fff,
7fff,
4a25,
00d9,
cec8,
c84c,
e0d4,
fa82,
0045,
f3e5,
e6af,
e6c1,
f317,
ff85,
020a,
fbbe,
f5ce,
f766,
ff2a,
05df,
0644,
01d3,
fe4b,
ff81,
03f4,
0715,
0623,
029a,
0020,
00b1,
02fa,
0426,
02db,
004f,
febc,
ff1b,
006b,
00fe,
0031,
fedc,
fe47,
fee6,
000e,
00b8,
0076,
ffac,
ff0e,
fefe,
ff5a,
ffc1,
0001
;
,我这里是300个系数,然后只需要配置config端口:
Vivado Fir Ip核动态更改滤波器系数_第3张图片

注意IP核设置过程中如果系数是对称的:
Vivado Fir Ip核动态更改滤波器系数_第4张图片
这样设置可以节省乘法器资源,基本就是这样,对于很多种系数,还是选择动态配置,下次有项目需要用到,再开博客

你可能感兴趣的:(FPGA数字信号处理)