首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» FAE讲堂:利用赛灵思FGPA实现降采样FIR滤波器-3
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
FAE讲堂:利用赛灵思FGPA实现降采样FIR滤波器-3
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-3-18 16:56
|
只看该作者
FAE讲堂:利用赛灵思FGPA实现降采样FIR滤波器-3
图 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所示。某项设计是否接受该衰减值事实上与应用相关。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议