FPGA的FIR抽取滤波器设计

FPGA的FIR抽取滤波器设计

ID:41567924

大小:68.52 KB

页数:4页

时间:2019-08-27

FPGA的FIR抽取滤波器设计_第1页
FPGA的FIR抽取滤波器设计_第2页
FPGA的FIR抽取滤波器设计_第3页
FPGA的FIR抽取滤波器设计_第4页
资源描述:

《FPGA的FIR抽取滤波器设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用FPGA实现抽取滤波器比较复杂,主要是因为在FPGA中缺乏实现乘法运算的有效结构,现在,FPGA屮集成了硬件乘法器,使FPGA在数字信号处理方面有了长足的进步。本文介绍了一种采用Xilinx公司的XC2V1000实现F1R抽取滤波器的设计方法。具体实现结构设计基于抽取滤波器的工作原理,本文采用XC2V1000实现了一个抽取率为2、具有线性相位的3阶F1R抽取滤波器,利用原理图和VHDL共同完成源文件设计。图1是抽取滤波器的顶层原理图。其中,clock是工作时钟,reset是复位信号,enable是输入数

2、据冇效信号,data_in(17:0)是输入数据,data_out(17:0)是输出数据,valid是输出数据有效信号。adderl8是加法器模块,multl8是乘法器模块,acc36是累加器模块,signal_36to18是数据截位器模块,fir_controller是控制器模块。控制器定时向加法器、乘法器和累加器发送数据或控制信号,实现流水线操作。dr旳图1抽取滤波器顶层原理图控制器控制器是抽取滤波器的核心模块,有两个功能:一是接收输入数据,二是向其它模块发送数据和控制信号。它根据加法器、乘法器和累加

3、器的时序特性,有规律地向加法器发送抽头数据,向乘法器发送系数,向累加器发送控制信号,让加法器、乘法器和累加器在每个时钟周期都完成指定的任务,从而实现流水线操作。控制器用VHDL语言描述,用寄存器存放抽头和系数。加法器的输入和输出都是18bit,用VHDL语言描述实现。它有两个工作时钟的延迟,在输入数据准备好的情况下,第一个时钟得出相加结果,第二个时钟把相加结果锁存输出。乘法器乘法器为18bit输入,36bit输出,用库元件MULT18X18S和36bit锁存器实现。MULT18X18S是XC2V1000口

4、带的18x18bitfi®件乘法器,单个吋钟就可完成乘法运算。36bit锁存器工作于时钟的上升沿,用VHDL语言描述。乘法器(multl8)也有两个工作时钟的延时,在输入数据准备好的情况下,第一个吋钟得出相乘结果,第二个吋钟把相乘结果锁存输出。加法器和乘法器采用锁存输出的结构,虽然增加了一个工作时钟的延迟,但冇利于抽取滤波器稳定的工作,提高可靠性。累加器36bit累加器用于累加乘法器的输出,得出滤波结果。它有一个控制端口clr,当clr为高电平时,输出前一伦累加结果,并初始化,开始新一轮累加;当clr为低

5、电平时,进行累加运算。累加器用VHDL语言描述。数据截位器数据截位器用VHDL语言描述,用于把累加器的36bit输出进行取舍处理,一般截掉数据低位部分,保留数据高位。为了对抽取滤波器进行功能仿真,这里截掉数据高18bit,保留数据低18bito工作过程及功能仿真下而以抽取滤波器完成一次捕取滤波的全过程为例,说明抽取滤波器的工作过程。假设时钟1、时钟2、时钟3和时钟4控制器已接收了数据x(n・3)、x(n-2)^x(n-l)和x(n),那么,时钟5:控制器向加法器发送数据x(n)和x(n-3);时钟6:加法

6、器进行x(n)+x(n-3)运算;控制器向加法器发送数据x(n-l)和x(n-2);时钟7:加法器进行x(n-l)+x(n-2)运算,输出x(n)+x(n-3)运算结果。控制器向乘法器发送系数h(0);时钟8:加法器输出x(n-l)+x(n-2)运算结果,乘法器进行h(0)[x(n)+x(n-3)]运算,控制器向乘法器发送系数h(l);时钟9:乘法器进行h(l)[x(n・l)+x(n・2)]运算,输岀h(0)[x(n)+x(n-3)]运算结果。控制器向累加器发送控制信号(cli•为高电平);时钟10:乘法

7、器输出h(l)Lx(n-l)+x(n-2)J运算结果。累加器初始化,开始累加操作。控制器向累加器发送控制信号(clr为低电平);时钟11:累加器进行累加运算:h(0)[x(n)+x(n・3)]+h(l)[x(n・l)+x(n・2)]。控制器向累加器发送控制信号(clr为高电平),控制器输出滤波数据有效信号(valid为高电平);时钟12:累加器输出h(0)fx(n)+x(n・3)]+h(l)fx(n-1)+x(n-2)]累加结果,并初始化,开始新一轮累加操作。控制器输出滤波数据无效信号(valid为低电平

8、)。以上就是抽取滤波器完成一次抽取滤波的全过程。可见,从数据x(n)输入到滤波结果y(n)输出需要8个工作时钟。如果控制器不停地向乘法器和加法器发送抽头、系数和控制信号,就会形成流水线操作,那么每过两个时钟,抽取滤波器就会输出一个滤波结果。两点注意事项(1)两个n位二进制数相加,其和至少需要n+1位二进制数才能正确表示。本设计中的加法器输入/输出都是18bit,为了防止加法器溢出,应确保18bit输入数据x(n)的最高两位相同

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。