微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > FAE讲堂:利用赛灵思FGPA实现降采样FIR滤波器

FAE讲堂:利用赛灵思FGPA实现降采样FIR滤波器

时间:05-06 来源:电子产品世界 点击:

指令信息,您可以看出:它会提出三级解决方案建议,其抽取因数分别是M1=2、M2=5和M3=5。

图3显示了组成上述多级系统的三个滤波器的频率响应。蓝色曲线代表第一个降采样滤波器(M1=2);绿色曲线代表第二个滤波器 (M2=5),按Fs_in/M1倍数周期波动;而红色曲线则代表第三个降采样器 (M3=5),按Fs_in/(M1*M2)倍数周期波动。

图 3. 通过串联三个FIR滤波级进行的按 50 整数抽取,此处单独放大显示0~25MHz频率。

用于三级滤波器的FIR-Compiler设置与图1及图2所示大同小异。第一个滤波器唯一不同的参数是COE文件名和“抽取率值”,其分别设为filt1_rad10.coe和M1=2。第二个滤波器COE文件名是filt2_rad10.coe,抽取率值为M2=5,输入采样频率此时为125MHz,因为第二级按M1=2抽取来自第一级的输入数据。最后,第三个滤波器参数的唯一区别是COE文件名为filt3_rad10.coe,抽取率值为M3=5,输入采样频率此时为25MHz,因为第三级按M2=5抽取来自第二级的输入数据。

在布局布线后,三个滤波级占用以下FPGA资源:

第一级(M1=2):

Slice触发器数量:280 个

Slice LUT数量:208 个

占用 Slice数量:62 个

DSP48 MAC单元数量:3个

第二级(M2=5):

Slice触发器数量:236个

Slice LUT数量:168 个

占用 Slice数量:60 个

DSP48 MAC单元数量:3 个

第三级(M3=5):

Slice触发器数量:357 个

Slice LUT数量:414 个

占用 Slice数量:158 个

DSP48 MAC单元数量:4 个

由于采用上述多级方法,我们现在比参考滤波器最初的22个DSP48 MAC单元少用了12个单元;与单级理想滤波器占用资源相比,我们节约了30%左右的触发器,55%的LUT,44%的slice和54%的DSP48单元。

与CIC滤波器串联

另一种按50抽取的可行方法是把级联积分梳状 (CIC) 滤波器 和CIC补偿降采样级串联在一起,其变化速率分别为M1=10与M2=5。CIC滤波器是一类特殊的FIR滤波器,由N个梳状滤波器和积分器组成(因此产生“第 N 级”术语)。尽管梳状滤波器仍然可以实现成一种“传统的”基于MAC的FIR滤波器,不过CIC架构之所以有趣是因为它不需要任何MAC单元,因此可以用CLB sclice替代DSP48单元,参阅CoreGen CIC-Compiler 1.3数据手册(cic_compiler_ds613.pdf)。

按M1=10抽取的第一级CIC滤波器频率响应较差,因此需要采用一个按M2=5抽取的补偿FIR滤波器,以弥补第一级CIC滤波器本身通带的下降。以下MATLAB代码说明如何采用FDA工具设计此类滤波器。

图4为赛灵思CoreGen CICCompiler 1.3 GUI设置的第一个页面;其它参数采用默认值,“使用Xtreme DSP Slice”可选参数除外(GUI 的第2页(共3页)),

图 4. 按10抽取的CIC滤波器的设置。CIC-Compiler 1.3 GUI的第1页(共 3 页)。

其允许采用或不采用DSP48单元实现梳状滤波器。FIR Compiler GUI中的CIC补偿FIR滤波器设计参数与图1及图2所示相同;唯一不同的设置是 COE 文件名(此处是ciccomp_ dec5.coe),抽取率值为M2=5,而输入采样频率为25MHz。

在布局布线后,两个滤波级占用以下FPGA资源:

第一级(按10抽取的CIC滤波器,不使用“采用Xtreme DSP Slice”)

Slice 触发器数量:755 个

Slice LUT 数量:592 个

占用 Slice 数量:172 个

DSP48 MAX 单元数量:0 个

第一级(按10抽取的CIC 波器,使用“采用 Xtreme DSP Slice”)

Slice 触发器数量:248 个

Slice LUT 数量:154 个

占用 Slice 数量:42 个

DSP48 MAC 单元数量:7 个

第二级(按5抽取的CIC补偿FIR滤波器)

Slice 触发器数量:271 个

Slice LUT 数量:312 个

占用 Slice 数量:114 个

DSP48 MAC 单元数量:3 个

两种结果都很有趣,而是否选择使用Xtreme DSP slice取决于设计人员最需要节约哪些资源。我个人选择“采用Xtreme DSP Slice”选项。与单级滤波器相比,我们可以节约大约59%的触发器,73%的LUT,69%的slice和54%的DSP48 MAC单元。代价是阻带衰减更差,其现在是80dB,而非所需要的100dB,如图5所示。某项设计是否接受该衰减值事实上与应用相关。

图 5. 三个降采样器的频率响应 - 整体速率变化为50,图中显示了放大的1.5~3MHz频段。单级滤波器为蓝色,三级滤波器(比例分别为M1=2、M2=5、M3=5)为绿色,基于CIC的二级滤波器(比例分别为M1=10、M2=5)为红色。

图5对比上述三种按50降采样方法:单级、三级(比例为 2-5-5)和CIC滤波器与CIC补偿FIR滤波器串联(比例为10-5)。

有理数降采样

在此第二个应用示例中,我们假设信号输入数据速率是50MHz,其必须降采样到12

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top