一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法.pdf

上传人:a3 文档编号:4243114 上传时间:2018-09-10 格式:PDF 页数:20 大小:591.26KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110380551.1

申请日:

2011.11.25

公开号:

CN102412808A

公开日:

2012.04.11

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):H03H 17/02变更事项:专利权人变更前:南京中新赛克科技有限责任公司变更后:南京中新赛克科技有限责任公司变更事项:地址变更前:210012 江苏省南京市雨花台区紫荆花路68号变更后:210012 江苏省南京市雨花台区郁金香路17号|||授权|||著录事项变更IPC(主分类):H03H 17/02变更事项:申请人变更前:南京中兴特种软件有限责任公司变更后:南京中新赛克科技有限责任公司变更事项:地址变更前:210012 江苏省南京市雨花台区紫荆花路68号变更后:210012 江苏省南京市雨花台区紫荆花路68号|||实质审查的生效IPC(主分类):H03H 17/02申请日:20111125|||公开

IPC分类号:

H03H17/02; G06F9/34

主分类号:

H03H17/02

申请人:

南京中兴特种软件有限责任公司

发明人:

杨进

地址:

210012 江苏省南京市雨花台区紫荆花路68号

优先权:

专利代理机构:

南京天华专利代理有限责任公司 32218

代理人:

夏平

PDF下载: PDF下载
内容摘要

一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法,它包括时分复用模块、时序控制模块、地址控制模块、双口RAM存储模块、运算系数配置模块、滤波运算模块和解时分复用模块,该滤波器需要使用所在的FPGA内的乘法器的个数E=[[M/2]/D],同时令P=[M/D],Q=[P/2]。本发明有效地避免了读写冲突造成的误操作、容易在FPGA内实现、节省了FPGA内数量很有限的高速硬核乘法器、方便后续滤波运算的实现、在FPGA内实现的数字电路具有很高的时序性能。采用本设计的读写策略方案使滤波方法在FPGA内的实现变得十分容易,数据流都是直接送给下级运算单元,降低了方法实现的复杂度。

权利要求书

1: 一种基于 FPGA 的高性能多路 FIR 数字抽取滤波器, 其特征是它包括时分复用模块、 时序控制模块、 地址控制模块、 双口 RAM 存储模块、 运算系数配置模块、 滤波运算模块和解 时分复用模块, 该滤波器的倍抽取为 D, 具有 N 个通道、 M 个滤波系数和 L 位数据宽度, 该 滤波器需要使用所在的 FPGA 内的乘法器的个数 E = [[M/2]/D], 同时令 P = [M/D], Q= [P/2] : 时分复用模块 TDM : 通过 N 个通道采集 N 个 L 位的待滤波数据, 将各通道的并行数据输 入转化为 1 个通道的 L 位串行数据输出, 并产生同步信号 Sync_in ; 时序控制模块 TIME_CTRL : 根据同步信号 Sync_in 产生其它模块的控制信号和同步后 的串行数据 ; 地址控制模块 ADDR_CTRL : 根据时序控制模块的控制信号产生双口 RAM 存储模块的 2E 个读地址信号、 1 个写地址信号和 1 个写使能信号 ; 双口 RAM 存储模块 DPRAM : 用于存储时序控制模块同步后的待滤波数据, 将串行数据按 照写地址写入以后, 再按照读地址读出, 转换为符合滤波运算方法结构的串行数据, 数据读 出后对无效数据进行过滤, 再通过 2E 个 L 位寄存器输出至滤波运算模块 ; 运算系数配置模块 COMP_COEF : 用于产生滤波运算的 M 个相关系数, 根据控制信号, 配 置滤波运算需要的 M 个系数 ; 滤波运算模块 COMP_OPE : 通过 2E 个 L 位寄存器从双口 RAM 存储模块中读取 2E 个 L 位串 行数据, 配合运算系数配置模块的 M 个相关系数完成数据的滤波运算, 模块内包括了 FPGA 内的 E 个乘法器 ; 解时分复用模块 TDDM : 完成 N 个通道滤波输出数据的解复用。
2: 根据权利要求 1 所述的基于 FPGA 的高性能多路 FIR 数字抽取滤波器, 其特征是所述 的双口 RAM 存储模块 DPRAM 为一个, 包括 FPGA 内的 2E 个双口 RAM 存储单元, 由 BLOCK RAM 生成 ; 各双口 RAM 存储单元均设有一个端口写, 一个端口读, 读写地址独立, 完成数据读写 操作 ; 数据读出以后再对无效数据进行过滤。
3: 根据权利要求 1 所述的基于 FPGA 的高性能多路 FIR 数字抽取滤波器, 其特征是所述 的双口 RAM 存储模块用于改变原始的待滤波数据的结构, 转换为符合滤波运算方法结构的 串行数据, 数据读出以后对无效数据进行过滤。
4: 一种基于 FPGA 的高性能多路 FIR 数字抽取滤波器的读写方法, 基于权利要求 1 所述 的基于 FPGA 的高性能多路 FIR 数字抽取滤波器, 其特征是它包括分配 RAM 的大小步骤 ; 在 双口 RAM 存储模块中根据写使能信号和写地址信号对待滤波数据进行写数据的步骤, 根据 读地址信号进行读数据的步骤, 数据读出以后对无效数据进行过滤的步骤和在滤波运算模 块中进行滤波运算步骤。
5: 根据权利要求 4 所述的基于 FPGA 的高性能多路 FIR 数字抽取滤波器的读写方法, 其 特征是所述的分配 RAM 的大小步骤包括 : 所使用的 FPGA 内的每一个乘法器需要对应使用 FPGA 内的 2 个 L*MN bit 的双口 RAM 存储单元, E 个乘法器一共使用 FPGA 内的 2E 个 L*MN bit 的双口 RAM 存储单元, 均由 FPGA 内的 BLOCK RAM 实现 ; N 个通道的地址分配规律 : 通道 0 对应的地址依次为 0、 N、 2N、 3N… (M-4)N、 (M-3)N、 (M-2)N、 (M-1)N ; 2 通道 1 对应的地址依次为 1、 N+1、 2N+1、 3N+1… (M-4)N+1、 (M-3)N+1、 (M-2)N+1、 (M-1) N+1 ; 。 。 。 通道 N-2 对应的地址依次为 N-2、 2N-2、 3N-2、 4N-2… (M-3)N-2、 (M-2)N-2、 (M-2)N-2、 MN-2 ; 通道 N-1 对应的地址依次为 N-1、 2N-1、 3N-1、 4N-1… (M-3)N-1、 (M-2)N-1、 (M-1)N-1、 MN-1 ; 每个通道对应位置的地址比前一个通道对应位置的地址增加 1, 从通道 0 开始增加到 通道 N-1, 一共 N 个通道, 依此类推。
6: 根据权利要求 4 所述的基于 FPGA 的高性能多路 FIR 数字抽取滤波器的读写方法, 其 特征是所述的根据写使能信号和写地址信号对待滤波数据进行写数据的步骤包括 : ①产生写使能信号 : 输入待滤波数据有效时均为高电平 ; 输入待滤波数据无效时均为 低电平。 ②产生写地址信号 : 写使能信号高电平期间, 每隔 1 个时钟周期依次进行 0 ~ MN-1 的 模 MN 计数, 计数值每次 +1 ; 写使能信号低电平期间, 写地址保持不变。 ③进行写操作 : 写使能信号高电平期间, 输入的串行待滤波数据根据对应的写地址信 号写入 RAM 存储单元中相应的位置, 每隔 1 个时钟周期依次写入 1 个数据 ; 具体的顺序为 : N 个通道对应的第 1 个数据依次写入, 接着 N 个通道对应的第 2 个数据依次写入, 依此类推, 直到 N 个通道对应的 M 个数据全部写入 ; 写使能信号低电平期间, 没有数据写入。
7: 权利要求 4 所述的基于 FPGA 的高性能多路 FIR 数字抽取滤波器的读写方法, 其特征 是所述的根据读地址信号进行读数据的步骤包括 : ①产生 [P/2] 个读地址的首地址的临时信号 : 读地址 1 的首地址的临时信号变化规律 : 第 1 个地址赋值为 (D-1)N ; 之后每隔 DN 个时 钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +DN ; 读地址 3 的首地址的临时信号变化规律 : 第 1 个地址赋值为 (M-1)N ; 之后每隔 DN 个时 钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +DN ; 。 。 。 读地址 P-1 的首地址的临时信号变化规律 : 第 1 个地址赋值为 [M-1-(Q-2)D)]N ; 之后 每隔 DN 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +DN ; 中间省略的信号变化规律依此类推 ; ②产生 P 个读地址的首地址信号 : 读地址 0 的首地址变化规律 : 第 1 个地址赋值为 (D-1)N ; 之后每隔 N 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +N ; 读地址 1 的首地址变化规律 : 连续 D 个地址为 1 组 ; 连续 D 个地址的第 1 个地址赋值 为读地址 1 的首地址的临时地址 ; 之后的连续 D-1 个地址每隔 N 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 -N ; 读地址 2 的首地址变化规律 : 第 1 个地址赋值为 (2D-1)N ; 之后每隔 N 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +N ; 读地址 3 的首地址变化规律 : 连续 D 个地址为 1 组 ; 连续 D 个地址的第 1 个地址赋值 3 为读地址 3 的首地址的临时地址 ; 之后的连续 D-1 个地址每隔 N 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 -N。 。 。 。 读地址 P-2 的首地址变化规律 : 第 1 个地址赋值为 (QD-1)N ; 之后每隔 N 个时钟周期进 行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +N ; 读地址 P-1 的首地址变化规律 : 连续 D 个地址为 1 组 ; 连续 D 个地址的第 1 个地址赋 值为读地址 P-1 的首地址的临时地址 ; 之后的连续 D-1 个地址每隔 N 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 -N ; 中间省略的信号变化规律依此类推 ; ③产生 P 个读地址信号 : 读地址 0 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋值为 读地址 0 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ; 读地址 1 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋值为 读地址 1 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ; 读地址 2 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋值为 读地址 2 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ; 读地址 3 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋值为 读地址 3 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ; 。 。 。 读地址 P-2 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋值 为读地址 P-2 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ; 读地址 P-1 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋值 为读地址 P-1 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1。 中间省略的信号变化规律依此类推 ; ④进行读操作 : 根据读地址信号从 RAM 存储单元中相应的位置读出数据, 每隔 1 个时钟周期依次读出 1 个数据。
8: 根据权利要求 4 所述的基于 FPGA 的高性能多路 FIR 数字抽取滤波器的读写方法, 其 特征是所述的双口 RAM 存储模块对无效数据进行过滤, 将无效数据置为 0 后输出至滤波运 算模块进行运算 ; N 个通道 1 次滤波运算的无效数据为 [M/D]DN-MN = ([M/D]D-M)N 个。

说明书


一种基于 FPGA 的高性能多路 FIR 数字抽取滤波器及其读写 方法

    技术领域 本发明涉及数字滤波器, 尤其是采用可编程逻辑器件实现的数字滤波器, 具体地 说是一种基于 FPGA 的高性能多路 FIR 数字抽取滤波器及其读写方法。
     背景技术 目前, 数字滤波在图像处理、 语音识别和模式识别等数字信号处理中占有重要地 位。 与模拟滤波器相比, 数字滤波器可以满足滤波器幅度和相位特性的严格要求, 可以克服 模拟滤波器所无法克服的电压漂移、 温度漂移和噪声等问题。数字滤波器包括有限冲激响 应 (FIR) 滤波器和无限冲激响应 (IIR) 滤波器两大类, 其中的 FIR 滤波器可以保证严格的 线性相位。同时由于其实现结构主要是非递归的, 因此 FIR 滤波器可以稳定工作。FIR 滤波 器被广泛用于各类数字信号处理系统中实现卷积、 相关、 自适应滤波、 正交插值等处理。
     随着数字信号处理的发展, 信号的处理、 编码、 传输和存储等工作量越来越大。为 了节省工作量及存储空间, 在一个信号处理系统中常常需要不同的采样率处理, 以及这些 不同采样率信号之间的相互转换。 在这种情况下, 多速率数字信号处理产生并发展起来。 它 的应用给系统设计带来了许多好处, 例如, 降低系统实现的复杂度、 降低计算复杂度、 降低 传输速率、 减少存储量等。
     抽取滤波器是基于软件无线电技术的数字通信系统中广泛运用的一种有效线性 滤波器。由于其输入和输出数据速率具有线性的倍数关系的特点, 这样具有了多数率信号 处理的特性, 是实现数字通信系统中接收机数字下变频 (DDC) 的重要技术。
     对于非实时系统和低速采样系统, FIR 滤波器的运算可在 CPU 或 DSP 处理器上采 用软件实现。 但是对于无线通讯、 雷达以及工业控制, 甚至语音信号处理等一些实时性要求 较高的系统, 由于 FIR 运算计算量过大, 受到乘法器和加法器电路的限制, 采用 DSP 软件可 能无法实现, 因此采用可编程逻辑器件便是最好的方法。
     目前 FIR 滤波器大致有以下几种实现方法 :
     (1) 使用单片通用数字滤波器集成电路。 单片通用数字滤波器使用简单方便, 但由 于字长和阶数的规格较少, 不能完全满足实际需要。 虽可采用多片扩展来满足, 但会增加体 积和功耗, 因而在实际中受到一定限制。
     (2) 采用 DSP 器件实现。由于有专门的函数可供调用, 因此使用 DSP 器件设计 FIR 滤波器相对较简单, 其应用也最为广泛。其唯一缺点是程序顺序执行, 尽管 DSP 器件性能不 断提高, 但在某些实时性要求极高的场合中受到限制。
     (3) 采用可编程逻辑器件实现。 随着可编程逻辑器件的容量和速度的不断增加, 实 现单片系统集成已经成为可能。利用可编程逻辑器件实现 FIR 滤波器, 由于实现的是硬件 并行方法, 因此特别适用于某些实时性要求高的场合。
     发明内容本发明的目的是针对 FIR 滤波器实现的问题, 提出一种采用可编程逻辑器件实现 的基于 FPGA 的高性能多路 FIR 数字抽取滤波器及其读写方法。
     本发明的技术方案是 :
     一种基于 FPGA 的高性能多路 FIR 数字抽取滤波器, 它包括时分复用模块、 时序控 制模块、 地址控制模块、 双口 RAM 存储模块、 运算系数配置模块、 滤波运算模块和解时分复 用模块, 该滤波器的倍抽取为 D, 具有 N 个通道、 M 个滤波系数和 L 位数据宽度, 该滤波器需 要使用所在的 FPGA 内的乘法器的个数 E = [[M/2]/D], 同时令 P = [M/D], Q = [P/2] :
     时分复用模块 TDM : 通过 N 个通道采集 N 个 L 位的待滤波数据, 将各通道的并行数 据输入转化为 1 个通道的 L 位串行数据输出, 并产生同步信号 Sync_in ;
     时序控制模块 TIME_CTRL : 根据同步信号 Sync_in 产生其它模块的控制信号和同 步后的串行数据 ;
     地址控制模块 ADDR_CTRL : 根据时序控制模块的控制信号产生双口 RAM 存储模块 的 2E 个读地址信号、 1 个写地址信号和 1 个写使能信号 ;
     双口 RAM 存储模块 DPRAM : 用于存储时序控制模块同步后的待滤波数据, 将串行数 据按照写地址写入以后, 再按照读地址读出, 转换为符合滤波运算方法结构的串行数据, 数 据读出后对无效数据进行过滤, 再通过 2E 个 L 位寄存器输出至滤波运算模块 ; 运算系数配置模块 COMP_COEF : 用于产生滤波运算的 M 个相关系数, 根据控制信 号, 配置滤波运算需要的 M 个系数 ;
     滤波运算模块 COMP_OPE : 通过 2E 个 L 位寄存器从双口 RAM 存储模块中读取 2E 个 L 位串行数据, 配合运算系数配置模块的 M 个相关系数完成数据的滤波运算, 模块内包括了 FPGA 内的 E 个乘法器 ;
     解时分复用模块 TDDM : 完成 N 个通道滤波输出数据的解复用。
     本发明的双口 RAM 存储模块 DPRAM 为一个, 包括 FPGA 内的 2E 个双口 RAM 存储单 元, 由 BLOCK RAM 生成 ; 各双口 RAM 存储单元均设有一个端口写, 一个端口读, 读写地址独 立, 完成数据读写操作 ; 数据读出以后再对无效数据进行过滤。
     本发明的双口 RAM 存储模块用于改变原始的待滤波数据的结构, 转换为符合滤波 运算方法结构的串行数据, 数据读出以后对无效数据进行过滤。
     一种基于 FPGA 的高性能多路 FIR 数字抽取滤波器的读写方法, 基于 FPGA 的高性 能多路 FIR 数字抽取滤波器, 其特征是它包括分配 RAM 的大小步骤 ; 在双口 RAM 存储模块中 根据写使能信号和写地址信号对待滤波数据进行写数据的步骤, 根据读地址信号进行读数 据的步骤, 数据读出以后对无效数据进行过滤的步骤和在滤波运算模块中进行滤波运算步 骤。
     本发明的分配 RAM 的大小步骤包括 :
     所使用的 FPGA 内的每一个乘法器需要对应使用 FPGA 内的 2 个 L*MN bit 的双口 RAM 存储单元, E 个乘法器一共使用 FPGA 内的 2E 个 L*MN bit 的双口 RAM 存储单元, 均由 FPGA 内的 BLOCK RAM 实现 ;
     N 个通道的地址分配规律 :
     通道 0 对应的地址依次为 0、 N、 2N、 3N… (M-4)N、 (M-3)N、 (M-2)N、 (M-1)N ;
     通道 1 对应的地址依次为 1、 N+1、 2N+1、 3N+1… (M-4)N+1、 (M-3)N+1、 (M-2)N+1、
     (M-1)N+1 ;
     。 。 。
     通道 N-2 对应的地址依次为 N-2、 2N-2、 3N-2、 4N-2… (M-3)N-2、 (M-2)N-2、 (M-2) N-2、 MN-2 ;
     通道 N-1 对应的地址依次为 N-1、 2N-1、 3N-1、 4N-1… (M-3)N-1、 (M-2)N-1、 (M-1) N-1、 MN-1 ;
     每个通道对应位置的地址比前一个通道对应位置的地址增加 1, 从通道 0 开始增 加到通道 N-1, 一共 N 个通道, 依此类推。
     本发明的根据写使能信号和写地址信号对待滤波数据进行写数据的步骤包括 :
     ①产生写使能信号 : 输入待滤波数据有效时均为高电平 ; 输入待滤波数据无效时 均为低电平。
     ②产生写地址信号 : 写使能信号高电平期间, 每隔 1 个时钟周期依次进行 0 ~ MN-1 的模 MN 计数, 计数值每次 +1 ; 写使能信号低电平期间, 写地址保持不变。
     ③进行写操作 : 写使能信号高电平期间, 输入的串行待滤波数据根据对应的写地 址信号写入 RAM 存储单元中相应的位置, 每隔 1 个时钟周期依次写入 1 个数据 ; 具体的顺序 为: N 个通道对应的第 1 个数据依次写入, 接着 N 个通道对应的第 2 个数据依次写入, 依此 类推, 直到 N 个通道对应的 M 个数据全部写入 ; 写使能信号低电平期间, 没有数据写入。 本发明的根据读地址信号进行读数据的步骤包括 :
     ①产生 [P/2] 个读地址的首地址的临时信号 :
     读地址 1 的首地址的临时信号变化规律 : 第 1 个地址赋值为 (D-1)N ; 之后每隔 DN 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +DN ;
     读地址 3 的首地址的临时信号变化规律 : 第 1 个地址赋值为 (M-1)N ; 之后每隔 DN 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +DN ;
     。 。 。
     读地址 P-1 的首地址的临时信号变化规律 : 第 1 个地址赋值为 [M-1-(Q-2)D)]N ; 之后每隔 DN 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +DN ;
     中间省略的信号变化规律依此类推 ;
     ②产生 P 个读地址的首地址信号 :
     读地址 0 的首地址变化规律 : 第 1 个地址赋值为 (D-1)N ; 之后每隔 N 个时钟周期 进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +N ;
     读地址 1 的首地址变化规律 : 连续 D 个地址为 1 组 ; 连续 D 个地址的第 1 个地址 赋值为读地址 1 的首地址的临时地址 ; 之后的连续 D-1 个地址每隔 N 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 -N ;
     读地址 2 的首地址变化规律 : 第 1 个地址赋值为 (2D-1)N ; 之后每隔 N 个时钟周期 进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +N ;
     读地址 3 的首地址变化规律 : 连续 D 个地址为 1 组 ; 连续 D 个地址的第 1 个地址 赋值为读地址 3 的首地址的临时地址 ; 之后的连续 D-1 个地址每隔 N 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 -N。
     。 。 。
     读地址 P-2 的首地址变化规律 : 第 1 个地址赋值为 (QD-1)N ; 之后每隔 N 个时钟周 期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 +N ;
     读地址 P-1 的首地址变化规律 : 连续 D 个地址为 1 组 ; 连续 D 个地址的第 1 个地 址赋值为读地址 P-1 的首地址的临时地址 ; 之后的连续 D-1 个地址每隔 N 个时钟周期进行 1 次 0 ~ MN-1 的模 MN 计数, 计数值每次 -N ;
     中间省略的信号变化规律依此类推 ;
     ③产生 P 个读地址信号 :
     读地址 0 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋 值为读地址 0 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ;
     读地址 1 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋 值为读地址 1 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ;
     读地址 2 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋 值为读地址 2 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ; 读地址 3 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个赋 值为读地址 3 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ;
     。 。 。
     读地址 P-2 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个 赋值为读地址 P-2 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法 运算, 每次 +1 ;
     读地址 P-1 的变化规律 : 连续 N 个地址为 1 组 ; 首地址即连续 N 个地址中的第 1 个 赋值为读地址 P-1 的首地址, 之后的连续 N-1 个地址依次每隔 1 个时钟周期进行 1 次加法 运算, 每次 +1。
     中间省略的信号变化规律依此类推 ;
     ④进行读操作 :
     根据读地址信号从 RAM 存储单元中相应的位置读出数据, 每隔 1 个时钟周期依次 读出 1 个数据。
     本发明的双口 RAM 存储模块对无效数据进行过滤, 将无效数据置为 0 后输出至滤 波运算模块进行运算 ; N 个通道 1 次滤波运算的无效数据为 [M/D]DN-MN = ([M/D]D-M)N 个。
     本发明的有益效果 :
     本发明有效地避免了读写冲突造成的误操作、 容易在 FPGA 内实现、 节省了 FPGA 内 数量很有限的高速硬核乘法器、 方便后续滤波运算的实现、 在 FPGA 内实现的数字电路具有 很高的时序性能 ; 同时采用本设计的读写策略方案使滤波方法在 FPGA 内的实现变得十分 容易, 数据流都是直接送给下级运算单元, 降低了方法实现的复杂度, 这点对在 FPGA 内实 现方法是至关重要的。
     本发明消耗 FPGA 内的乘法器数量少, FPGA 内消耗的乘法器数量越少就可以在同
     一片 FPGA 里实现更多其他的算法 ; 最高工作频率越高, 最高工作频率和设计的时钟频率之 间的频率差越大, 实现的数字电路时序裕量就越大, 时序性能就越好, 设计的稳定性和可靠 性越高。
     下表列出了目前的几种方案在 FPGA 中实现 FIR 数字抽取滤波器时实现的情况, 在最关键的消耗乘法器数量和最高工作频率 2 项指标上, 本发明的滤波器都是最好的, 比 Xilinx 公司的 IP 核设计还要优秀。
     附图说明
     图 1 是本发明的原理框图。具体实施方式
     下面结合附图和实施例对本发明作进一步的说明。
     如图 1 所示, 一种基于 FPGA 的高性能多路 FIR 数字抽取滤波器及其读写方法, 其 中:
     ●基于 RAM 的读写策略
     基于避免因为读写冲突造成的误操作、 实现起来简单和方便后续运算的原则, 采 用如下的读写策略 :
     (1) 分配 RAM 的大小 :
     本实例中的情况 :
     本实例有 6 个通道, 要使用 FPGA 内的 2 个乘法器。每一个乘法器需要对应使用 FPGA 内的 2 个 17*102bit 的双口 RAM 存储单元, 地址分配见下表。 2 个乘法器一共使用 FPGA 内的 4 个 17*102bit 的双口 RAM 存储单元, 均由 FPGA 内的 BLOCK RAM 实现。
     本实例中 RAM 的地址分配
     表面上看, 这样的地址分配方式对应在每个通道上都是不连续的, 很不方便 ; 实际 上, 采用这种方式实现起来具有很多优点, 详见后续的分析。(2) 写策略 :
     本实例中的情况 :
     ①产生写使能信号 : 输入待滤波数据有效时均为高电平 ; 输入待滤波数据无效时 均为低电平。
     ②产生写地址信号 : 写使能信号高电平期间, 每隔 1 个时钟周期依次进行 0 ~ 101 的模 102 计数, 计数值每次 +1 ; 写使能信号低电平期间, 写地址保持不变。
     ③进行写操作 : 写使能信号高电平期间, 输入的串行待滤波数据根据对应的写地 址信号写入 RAM 存储单元中相应的位置, 每隔 1 个时钟周期依次写入 1 个数据 ; 具体的顺序 为: 6 个通道对应的第 1 个数据依次写入, 接着 6 个通道对应的第 2 个数据依次写入, 依此 类推, 直到 6 个通道对应的 17 个数据全部写入 ; 写使能信号低电平期间, 没有数据写入。
     写策略的时序表如下 :
     (3) 读策略 : 本实例中的情况 :①产生 2 个读地址的首地址的临时信号 :
     读地址 1 的首地址的临时信号变化规律 : 第 1 个地址赋值为 24 ; 之后每隔 30 个时 钟周期进行 1 次 0 ~ 101 的模 102 计数, 计数值每次 +30 ;
     读地址 3 的首地址的临时信号变化规律 : 第 1 个地址赋值为 96 ; 之后每隔 30 个时 钟周期进行 1 次 0 ~ 101 的模 102 计数, 计数值每次 +30 ;
     相应的时序表如下 :
     ②产生 4 个读地址的首地址信号 :
     读地址 0 的首地址变化规律 : 第 1 个地址赋值为 24 ; 之后每隔 6 个时钟周期进行 1 次 0 ~ 101 的模 102 计数, 计数值每次 +6 ;
     读地址 1 的首地址变化规律 : 连续 5 个地址为 1 组 ; 连续 5 个地址中的第 1 个地 址赋值为读地址 1 的首地址的临时信号 ; 之后的连续 4 个地址每隔 6 个时钟周期进行 1 次 0 ~ 101 的模 102 计数, 计数值每次 -6 ;
     读地址 2 的首地址变化规律 : 第 1 个地址赋值为 54 ; 之后每隔 6 个时钟周期进行 1 次 0 ~ 101 的模 102 计数, 计数值每次 +6 ;
     读地址 3 的首地址变化规律 : 连续 5 个地址为 1 组 ; 连续 5 个地址中的第 1 个地 址赋值为读地址 3 的首地址的临时信号 ; 之后的连续 4 个地址每隔 6 个时钟周期进行 1 次 0 ~ 101 的模 102 计数, 计数值每次 -6。
     相应的时序表如下 :
     ③产生 4 个读地址信号 :
     读地址 0 的变化规律 : 连续 5 个地址为 1 组 ; 连续 5 个地址中的第 1 个赋值为读地 址 0 的首地址, 之后的连续 4 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ;
     读地址 1 的变化规律 : 连续 5 个地址为 1 组 ; 连续 5 个地址中的第 1 个赋值为读地 址 1 的首地址, 之后的连续 4 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ;
     读地址 2 的变化规律 : 连续 5 个地址为 1 组 ; 连续 5 个地址中的第 1 个赋值为读地 址 2 的首地址, 之后的连续 4 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1 ;
     读地址 3 的变化规律 : 连续 5 个地址为 1 组 ; 连续 5 个地址中的第 1 个赋值为读地 址 3 的首地址, 之后的连续 4 个地址依次每隔 1 个时钟周期进行 1 次加法运算, 每次 +1。
     相应的时序表如下 :
     (4) 对无效数据进行过滤 :
     本实例中的情况 :
     由于 1 个通道的 1 次滤波运算需要 17 个数据, 而 4 组读地址实际上读出了 20 个 数据, 因此有 3 个数据是无效数据, 需要对其进行过滤, 使对应的数据置为 0, 才能直接参加 运算 ; 依此类推, 6 个通道的 1 次滤波运算需要 102 个数据, 而 4 组读地址实际上读出了 120 个数据, 因此有 18 个数据是无效数据, 需要对其进行过滤, 使对应的数据置为 0, 才能直接 参加运算。
     读数据 0 和读数据 1 没有无效数据, 原数据全部保留, 相应的时序表如下 :
     读数据 2 和读数据 3 的有效数据全部保留, 无效数据被过滤为 0, 相应的时序表如下:
     输出数据大部分是有效数据, 还有一部分数据为 0, 相应的时序表如下 :本实例中的情况 :
     ①有效地避免了读写冲突造成的误操作
     根据 5 倍抽取滤波器的工作原理, 每当有 5 个输入数据进入滤波器后, 就产生 1 个 滤波器的输出。因此, 每 1 次的滤波运算只能在 5 个输入数据长度的时间内进行, 这就要求 读写操作是在同时进行的, 既要保证读出的数据符合滤波运算的结构, 又要尽可能地避免 读写冲突造成的误操作。读写冲突一般有 2 种情况 : 第 1 种是读操作进行早了, 想要读的数
     据还没有被写入 ; 第 2 种是读操作进行晚了, 想要读的数据已经被覆盖了。 本设计的读写策 略高效、 合理地满足了这些要求 : 当写数据有效时, 一直进行写操作 ; 当 6 个通道都写入连 续 5 个数据后, 开始进行读操作。其中读地址 0 超前于对应的写地址部分 1 个时钟周期, 这 样能够保证读地址和写地址之间一直保持固定的时序关系, 可以有效地避免读写冲突。
     ②容易在 FPGA 内实现
     从前面介绍的读写地址的产生过程可以看出 : 写地址信号本质上是一个计数器 ; 读地址的首地址的临时信号本质上是一个加法器 ; 读地址的首地址信号本质上是一个加、 减法器 ; 读地址信号本质上是一个加法器。所有这些信号的实现都比较简单, 这对在 FPGA 内的实现是至关重要的。
     FPGA 中具有大量的 Slice 资源, 可以很方便地配置成各种触发器和多路开关, 实 现多位高速计数器 ; 内嵌的 BLOCK RAM 可以方便地配置成双端口 RAM 存储单元 ; 此外还具有 专门的快速加法进位链, 可以轻松实现高速加法器 ; 同时内嵌了高速硬核乘法器, 完全可以 实现高带宽乘法器。因此, 以本设计的读写策略为控制核心的 FIR 数字抽取滤波器在 FPGA 中是容易实现的。 实际的项目中, 基于本设计的滤波器最高可以工作在 391MHz, 对于工作在 368.64MHz 的设计要求能够很轻松地达到。 ③节省了 FPGA 内数量很有限的高速硬核乘法器
     对于目前的主流 FPGA 来说, 为了实现多路高带宽信号处理, 往往要进行多级级联 滤波, 为了保证滤波效果, 各级滤波器的阶数都比较高, 消耗的硬核乘法器数量比较大 ; 加 上内嵌的高速硬核乘法器具有很高的性能, 其数量又是很有限的, 所以 FPGA 中内嵌的硬核 乘法器资源是很宝贵的, 往往成为设计中的瓶颈, 使用起来要充分利用, 尽可能地复用, 尽 量提高使用效率。按照本设计的读写策略实现的滤波器, 在节省高速硬核乘法器方面具有 巨大的优势, 可以使整个设计具有更强的竞争力。
     下表列出了目前的几种方案在 FPGA 中实现 FIR 数字抽取滤波器时消耗硬核乘法 器的情况 :
     可见, 由于采用了时分复用, 方案 2 消耗的硬核乘法器数量仅仅为方案 1 的 1/6,代 价 是 数 据 速 率 的 提 高, 对 于 目 前 的 主 流 FPGA, 以 Xilinx 公 司 的 V5LX50T 为 例, 内嵌 的 DSP48E 硬核乘法器理论上最高可以工作在 450MHz, 目前我们的项目最高可以工作在 391MHz, 因此工作在 368.64MHz 可以轻松实现。
     根据滤波器系数特征对滤波方法进行优化, 通过本设计的读写策略进行控制, 可 以有效地提高硬核乘法器的使用效率, 方案 4 消耗的硬核乘法器数量仅仅是方案 3 的 1/2, 方案 2 的 1/5, 方案 1 的 1/27, 比方案 3 的 Xilinx 公司的 IP 核设计还要节省乘法器。随着 滤波器阶数的增加 ( 几十阶 ) 和抽取倍数的提高, 节省的硬核乘法器数量还将大大增加, 具 有很高的经济价值。
     ④方便后续滤波运算的实现
     1) 由于读地址 0 为了避免读写冲突而超前对应的写地址部分 1 个时钟周期, 读地 址 1-3 要相应地配合读地址 0。这就要求读地址 1-3 读出的数据要和读地址 0 读出的数据 在滤波器系数对称的位置相对应。
     2) 因为 1 个通道的 1 次滤波运算需要 17 个数据, 5 倍抽取滤波器是每输入 5 个输 入数据后产生 1 个输出数据, 前 3 次滤波运算的输入数据不足 17 个, 这部分对应的操作数 需要为 0, 在本设计中, 这部分地址读出的数据为 0, 即: 当对应的输入数据还没写入时, 读 出的数据是 0, 同样可以直接参加加法运算。 3)1 个通道的 1 次滤波运算需要 17 个数据, 而 4 组读地址读出的数据有 20 个, 因 此有 3 个数据是无效数据, 需要对其进行过滤, 使对应的数据置为 0, 才能直接参加运算。
     按照以上思想设计的读策略读出的数据和滤波过程的数据流完全一致, 没写入的 数据和无效的数据, 对应的读数据是 0, 可以直接参加运算, 十分方便后续运算。 基于这种方 案, 设计出了下面所示的读地址顺序以及对应的读数据顺序 :
     进行 1 个通道的 1 次滤波运算按照滤波顺序排列的操作数
     第 1 次滤波运算按照操作数顺序对应的读地址
     第 1 次滤波运算按照读地址顺序对应的读数据
     对无效读数据进行过滤后第 1 次滤波运算按照顺序对应的操作数
     第 2 次滤波运算按照操作数顺序对应的读地址
     第 2 次滤波运算按照读地址顺序对应的读数据
     对无效读数据进行过滤后第 2 次滤波运算按照顺序对应的操作数
     第 3 次滤波运算按照操作数顺序对应的读地址
     第 3 次滤波运算按照读地址顺序对应的读数据
     对无效读数据进行过滤后第 3 次滤波运算按照顺序对应的操作数
     第 4 次滤波运算按照操作数顺序对应的读地址
     第 4 次滤波运算按照读地址顺序对应的读数据
     对无效读数据进行过滤后第 4 次滤波运算按照顺序对应的操作数
     第 4 次以后的滤波运算和第 4 次的滤波运算类似。
     由此可见, 采用本设计的读写策略方案使滤波方法的实现变得十分容易, 数据流 都是直接送给下级运算单元, 降低了方法实现的复杂度, 这点对在 FPGA 内实现方法是至关 重要的。
     ⑤在 FPGA 内实现的数字电路具有很高的时序性能
     FPGA 实现的数字电路的最高工作频率越高, 最高工作频率和设计要求的时钟频率 之间的频率差越大, 电路的时序裕量就越大, 设计的稳定性和可靠性就越高。
     下表列出了目前的几种方案在 FPGA 中实现 FIR 数字抽取滤波器时工作频率的情
     况, 方案 1 虽然时序裕量很大, 但是由于消耗的乘法器过多, 没有可比性 ; 比较方案 2-4, 在 最高工作频率上, 本发明的滤波器是最高的, 电路的时序裕量最大, 比方案 3 的 Xilinx 公司 的 IP 核设计的时序性能还要更好。
     本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。

一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法.pdf_第1页
第1页 / 共20页
一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法.pdf_第2页
第2页 / 共20页
一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法.pdf》由会员分享,可在线阅读,更多相关《一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法.pdf(20页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102412808 A (43)申请公布日 2012.04.11 C N 1 0 2 4 1 2 8 0 8 A *CN102412808A* (21)申请号 201110380551.1 (22)申请日 2011.11.25 H03H 17/02(2006.01) G06F 9/34(2006.01) (71)申请人南京中兴特种软件有限责任公司 地址 210012 江苏省南京市雨花台区紫荆花 路68号 (72)发明人杨进 (74)专利代理机构南京天华专利代理有限责任 公司 32218 代理人夏平 (54) 发明名称 一种基于FPGA的高性能多路FIR数字抽取滤 波器。

2、及其读写方法 (57) 摘要 一种基于FPGA的高性能多路FIR数字抽取滤 波器及其读写方法,它包括时分复用模块、时序控 制模块、地址控制模块、双口RAM存储模块、运算 系数配置模块、滤波运算模块和解时分复用模块, 该滤波器需要使用所在的FPGA内的乘法器的个 数E=M/2/D,同时令P=M/D,Q=P/2。本发 明有效地避免了读写冲突造成的误操作、容易在 FPGA内实现、节省了FPGA内数量很有限的高速硬 核乘法器、方便后续滤波运算的实现、在FPGA内 实现的数字电路具有很高的时序性能。采用本设 计的读写策略方案使滤波方法在FPGA内的实现 变得十分容易,数据流都是直接送给下级运算单 元,降。

3、低了方法实现的复杂度。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 15 页 附图 1 页 CN 102412821 A 1/3页 2 1.一种基于FPGA的高性能多路FIR数字抽取滤波器,其特征是它包括时分复用模块、 时序控制模块、地址控制模块、双口RAM存储模块、运算系数配置模块、滤波运算模块和解 时分复用模块,该滤波器的倍抽取为D,具有N个通道、M个滤波系数和L位数据宽度,该 滤波器需要使用所在的FPGA内的乘法器的个数EM/2/D,同时令PM/D,Q P/2: 时分复用模块TDM:通过N个通道采集N个L位的待滤波数据,。

4、将各通道的并行数据输 入转化为1个通道的L位串行数据输出,并产生同步信号Sync_in; 时序控制模块TIME_CTRL:根据同步信号Sync_in产生其它模块的控制信号和同步后 的串行数据; 地址控制模块ADDR_CTRL:根据时序控制模块的控制信号产生双口RAM存储模块的2E 个读地址信号、1个写地址信号和1个写使能信号; 双口RAM存储模块DPRAM:用于存储时序控制模块同步后的待滤波数据,将串行数据按 照写地址写入以后,再按照读地址读出,转换为符合滤波运算方法结构的串行数据,数据读 出后对无效数据进行过滤,再通过2E个L位寄存器输出至滤波运算模块; 运算系数配置模块COMP_COEF:。

5、用于产生滤波运算的M个相关系数,根据控制信号,配 置滤波运算需要的M个系数; 滤波运算模块COMP_OPE:通过2E个L位寄存器从双口RAM存储模块中读取2E个L位串 行数据,配合运算系数配置模块的M个相关系数完成数据的滤波运算,模块内包括了FPGA 内的E个乘法器; 解时分复用模块TDDM:完成N个通道滤波输出数据的解复用。 2.根据权利要求1所述的基于FPGA的高性能多路FIR数字抽取滤波器,其特征是所述 的双口RAM存储模块DPRAM为一个,包括FPGA内的2E个双口RAM存储单元,由BLOCK RAM 生成;各双口RAM存储单元均设有一个端口写,一个端口读,读写地址独立,完成数据读写 。

6、操作;数据读出以后再对无效数据进行过滤。 3.根据权利要求1所述的基于FPGA的高性能多路FIR数字抽取滤波器,其特征是所述 的双口RAM存储模块用于改变原始的待滤波数据的结构,转换为符合滤波运算方法结构的 串行数据,数据读出以后对无效数据进行过滤。 4.一种基于FPGA的高性能多路FIR数字抽取滤波器的读写方法,基于权利要求1所述 的基于FPGA的高性能多路FIR数字抽取滤波器,其特征是它包括分配RAM的大小步骤;在 双口RAM存储模块中根据写使能信号和写地址信号对待滤波数据进行写数据的步骤,根据 读地址信号进行读数据的步骤,数据读出以后对无效数据进行过滤的步骤和在滤波运算模 块中进行滤波运。

7、算步骤。 5.根据权利要求4所述的基于FPGA的高性能多路FIR数字抽取滤波器的读写方法,其 特征是所述的分配RAM的大小步骤包括: 所使用的FPGA内的每一个乘法器需要对应使用FPGA内的2个L*MN bit的双口RAM 存储单元,E个乘法器一共使用FPGA内的2E个L*MN bit的双口RAM存储单元,均由FPGA 内的BLOCK RAM实现; N个通道的地址分配规律: 通道0对应的地址依次为0、N、2N、3N(M-4)N、(M-3)N、(M-2)N、(M-1)N; 权 利 要 求 书CN 102412808 A CN 102412821 A 2/3页 3 通道1对应的地址依次为1、N+1。

8、、2N+1、3N+1(M-4)N+1、(M-3)N+1、(M-2)N+1、(M-1) N+1; 。 通道N-2对应的地址依次为N-2、2N-2、3N-2、4N-2(M-3)N-2、(M-2)N-2、(M-2)N-2、 MN-2; 通道N-1对应的地址依次为N-1、2N-1、3N-1、4N-1(M-3)N-1、(M-2)N-1、(M-1)N-1、 MN-1; 每个通道对应位置的地址比前一个通道对应位置的地址增加1,从通道0开始增加到 通道N-1,一共N个通道,依此类推。 6.根据权利要求4所述的基于FPGA的高性能多路FIR数字抽取滤波器的读写方法,其 特征是所述的根据写使能信号和写地址信号对待。

9、滤波数据进行写数据的步骤包括: 产生写使能信号:输入待滤波数据有效时均为高电平;输入待滤波数据无效时均为 低电平。 产生写地址信号:写使能信号高电平期间,每隔1个时钟周期依次进行0MN-1的 模MN计数,计数值每次+1;写使能信号低电平期间,写地址保持不变。 进行写操作:写使能信号高电平期间,输入的串行待滤波数据根据对应的写地址信 号写入RAM存储单元中相应的位置,每隔1个时钟周期依次写入1个数据;具体的顺序为: N个通道对应的第1个数据依次写入,接着N个通道对应的第2个数据依次写入,依此类推, 直到N个通道对应的M个数据全部写入;写使能信号低电平期间,没有数据写入。 7.权利要求4所述的基于。

10、FPGA的高性能多路FIR数字抽取滤波器的读写方法,其特征 是所述的根据读地址信号进行读数据的步骤包括: 产生P/2个读地址的首地址的临时信号: 读地址1的首地址的临时信号变化规律:第1个地址赋值为(D-1)N;之后每隔DN个时 钟周期进行1次0MN-1的模MN计数,计数值每次+DN; 读地址3的首地址的临时信号变化规律:第1个地址赋值为(M-1)N;之后每隔DN个时 钟周期进行1次0MN-1的模MN计数,计数值每次+DN; 。 读地址P-1的首地址的临时信号变化规律:第1个地址赋值为M-1-(Q-2)D)N;之后 每隔DN个时钟周期进行1次0MN-1的模MN计数,计数值每次+DN; 中间省略。

11、的信号变化规律依此类推; 产生P个读地址的首地址信号: 读地址0的首地址变化规律:第1个地址赋值为(D-1)N;之后每隔N个时钟周期进行 1次0MN-1的模MN计数,计数值每次+N; 读地址1的首地址变化规律:连续D个地址为1组;连续D个地址的第1个地址赋值 为读地址1的首地址的临时地址;之后的连续D-1个地址每隔N个时钟周期进行1次0 MN-1的模MN计数,计数值每次-N; 读地址2的首地址变化规律:第1个地址赋值为(2D-1)N;之后每隔N个时钟周期进行 1次0MN-1的模MN计数,计数值每次+N; 读地址3的首地址变化规律:连续D个地址为1组;连续D个地址的第1个地址赋值 权 利 要 求。

12、 书CN 102412808 A CN 102412821 A 3/3页 4 为读地址3的首地址的临时地址;之后的连续D-1个地址每隔N个时钟周期进行1次0 MN-1的模MN计数,计数值每次-N。 。 读地址P-2的首地址变化规律:第1个地址赋值为(QD-1)N;之后每隔N个时钟周期进 行1次0MN-1的模MN计数,计数值每次+N; 读地址P-1的首地址变化规律:连续D个地址为1组;连续D个地址的第1个地址赋 值为读地址P-1的首地址的临时地址;之后的连续D-1个地址每隔N个时钟周期进行1次 0MN-1的模MN计数,计数值每次-N; 中间省略的信号变化规律依此类推; 产生P个读地址信号: 读地。

13、址0的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋值为 读地址0的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算,每次 +1; 读地址1的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋值为 读地址1的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算,每次 +1; 读地址2的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋值为 读地址2的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算,每次 +1; 读地址3的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋值为 读地址3的首地址。

14、,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算,每次 +1; 。 读地址P-2的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋值 为读地址P-2的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算, 每次+1; 读地址P-1的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋值 为读地址P-1的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算, 每次+1。 中间省略的信号变化规律依此类推; 进行读操作: 根据读地址信号从RAM存储单元中相应的位置读出数据,每隔1个时钟周期依次读出 1个数据。 8.根据权利要求4所述的基。

15、于FPGA的高性能多路FIR数字抽取滤波器的读写方法,其 特征是所述的双口RAM存储模块对无效数据进行过滤,将无效数据置为0后输出至滤波运 算模块进行运算;N个通道1次滤波运算的无效数据为M/DDN-MN(M/DD-M)N个。 权 利 要 求 书CN 102412808 A CN 102412821 A 1/15页 5 一种基于 FPGA的高性能多路 FIR数字抽取滤波器及其读写 方法 技术领域 0001 本发明涉及数字滤波器,尤其是采用可编程逻辑器件实现的数字滤波器,具体地 说是一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法。 背景技术 0002 目前,数字滤波在图像处理、语音。

16、识别和模式识别等数字信号处理中占有重要地 位。与模拟滤波器相比,数字滤波器可以满足滤波器幅度和相位特性的严格要求,可以克服 模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。数字滤波器包括有限冲激响 应(FIR)滤波器和无限冲激响应(IIR)滤波器两大类,其中的FIR滤波器可以保证严格的 线性相位。同时由于其实现结构主要是非递归的,因此FIR滤波器可以稳定工作。FIR滤波 器被广泛用于各类数字信号处理系统中实现卷积、相关、自适应滤波、正交插值等处理。 0003 随着数字信号处理的发展,信号的处理、编码、传输和存储等工作量越来越大。为 了节省工作量及存储空间,在一个信号处理系统中常常需要不同。

17、的采样率处理,以及这些 不同采样率信号之间的相互转换。在这种情况下,多速率数字信号处理产生并发展起来。它 的应用给系统设计带来了许多好处,例如,降低系统实现的复杂度、降低计算复杂度、降低 传输速率、减少存储量等。 0004 抽取滤波器是基于软件无线电技术的数字通信系统中广泛运用的一种有效线性 滤波器。由于其输入和输出数据速率具有线性的倍数关系的特点,这样具有了多数率信号 处理的特性,是实现数字通信系统中接收机数字下变频(DDC)的重要技术。 0005 对于非实时系统和低速采样系统,FIR滤波器的运算可在CPU或DSP处理器上采 用软件实现。但是对于无线通讯、雷达以及工业控制,甚至语音信号处理等。

18、一些实时性要求 较高的系统,由于FIR运算计算量过大,受到乘法器和加法器电路的限制,采用DSP软件可 能无法实现,因此采用可编程逻辑器件便是最好的方法。 0006 目前FIR滤波器大致有以下几种实现方法: 0007 (1)使用单片通用数字滤波器集成电路。单片通用数字滤波器使用简单方便,但由 于字长和阶数的规格较少,不能完全满足实际需要。虽可采用多片扩展来满足,但会增加体 积和功耗,因而在实际中受到一定限制。 0008 (2)采用DSP器件实现。由于有专门的函数可供调用,因此使用DSP器件设计FIR 滤波器相对较简单,其应用也最为广泛。其唯一缺点是程序顺序执行,尽管DSP器件性能不 断提高,但在。

19、某些实时性要求极高的场合中受到限制。 0009 (3)采用可编程逻辑器件实现。随着可编程逻辑器件的容量和速度的不断增加,实 现单片系统集成已经成为可能。利用可编程逻辑器件实现FIR滤波器,由于实现的是硬件 并行方法,因此特别适用于某些实时性要求高的场合。 发明内容 说 明 书CN 102412808 A CN 102412821 A 2/15页 6 0010 本发明的目的是针对FIR滤波器实现的问题,提出一种采用可编程逻辑器件实现 的基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法。 0011 本发明的技术方案是: 0012 一种基于FPGA的高性能多路FIR数字抽取滤波器,它包括时分。

20、复用模块、时序控 制模块、地址控制模块、双口RAM存储模块、运算系数配置模块、滤波运算模块和解时分复 用模块,该滤波器的倍抽取为D,具有N个通道、M个滤波系数和L位数据宽度,该滤波器需 要使用所在的FPGA内的乘法器的个数EM/2/D,同时令PM/D,QP/2: 0013 时分复用模块TDM:通过N个通道采集N个L位的待滤波数据,将各通道的并行数 据输入转化为1个通道的L位串行数据输出,并产生同步信号Sync_in; 0014 时序控制模块TIME_CTRL:根据同步信号Sync_in产生其它模块的控制信号和同 步后的串行数据; 0015 地址控制模块ADDR_CTRL:根据时序控制模块的控制。

21、信号产生双口RAM存储模块 的2E个读地址信号、1个写地址信号和1个写使能信号; 0016 双口RAM存储模块DPRAM:用于存储时序控制模块同步后的待滤波数据,将串行数 据按照写地址写入以后,再按照读地址读出,转换为符合滤波运算方法结构的串行数据,数 据读出后对无效数据进行过滤,再通过2E个L位寄存器输出至滤波运算模块; 0017 运算系数配置模块COMP_COEF:用于产生滤波运算的M个相关系数,根据控制信 号,配置滤波运算需要的M个系数; 0018 滤波运算模块COMP_OPE:通过2E个L位寄存器从双口RAM存储模块中读取2E个 L位串行数据,配合运算系数配置模块的M个相关系数完成数据。

22、的滤波运算,模块内包括了 FPGA内的E个乘法器; 0019 解时分复用模块TDDM:完成N个通道滤波输出数据的解复用。 0020 本发明的双口RAM存储模块DPRAM为一个,包括FPGA内的2E个双口RAM存储单 元,由BLOCK RAM生成;各双口RAM存储单元均设有一个端口写,一个端口读,读写地址独 立,完成数据读写操作;数据读出以后再对无效数据进行过滤。 0021 本发明的双口RAM存储模块用于改变原始的待滤波数据的结构,转换为符合滤波 运算方法结构的串行数据,数据读出以后对无效数据进行过滤。 0022 一种基于FPGA的高性能多路FIR数字抽取滤波器的读写方法,基于FPGA的高性 能。

23、多路FIR数字抽取滤波器,其特征是它包括分配RAM的大小步骤;在双口RAM存储模块中 根据写使能信号和写地址信号对待滤波数据进行写数据的步骤,根据读地址信号进行读数 据的步骤,数据读出以后对无效数据进行过滤的步骤和在滤波运算模块中进行滤波运算步 骤。 0023 本发明的分配RAM的大小步骤包括: 0024 所使用的FPGA内的每一个乘法器需要对应使用FPGA内的2个L*MN bit的双口 RAM存储单元,E个乘法器一共使用FPGA内的2E个L*MN bit的双口RAM存储单元,均由 FPGA内的BLOCK RAM实现; 0025 N个通道的地址分配规律: 0026 通道0对应的地址依次为0、N。

24、、2N、3N(M-4)N、(M-3)N、(M-2)N、(M-1)N; 0027 通道1对应的地址依次为1、N+1、2N+1、3N+1(M-4)N+1、(M-3)N+1、(M-2)N+1、 说 明 书CN 102412808 A CN 102412821 A 3/15页 7 (M-1)N+1; 0028 。 0029 通道N-2对应的地址依次为N-2、2N-2、3N-2、4N-2(M-3)N-2、(M-2)N-2、(M-2) N-2、MN-2; 0030 通道N-1对应的地址依次为N-1、2N-1、3N-1、4N-1(M-3)N-1、(M-2)N-1、(M-1) N-1、MN-1; 0031 每。

25、个通道对应位置的地址比前一个通道对应位置的地址增加1,从通道0开始增 加到通道N-1,一共N个通道,依此类推。 0032 本发明的根据写使能信号和写地址信号对待滤波数据进行写数据的步骤包括: 0033 产生写使能信号:输入待滤波数据有效时均为高电平;输入待滤波数据无效时 均为低电平。 0034 产生写地址信号:写使能信号高电平期间,每隔1个时钟周期依次进行0 MN-1的模MN计数,计数值每次+1;写使能信号低电平期间,写地址保持不变。 0035 进行写操作:写使能信号高电平期间,输入的串行待滤波数据根据对应的写地 址信号写入RAM存储单元中相应的位置,每隔1个时钟周期依次写入1个数据;具体的顺。

26、序 为:N个通道对应的第1个数据依次写入,接着N个通道对应的第2个数据依次写入,依此 类推,直到N个通道对应的M个数据全部写入;写使能信号低电平期间,没有数据写入。 0036 本发明的根据读地址信号进行读数据的步骤包括: 0037 产生P/2个读地址的首地址的临时信号: 0038 读地址1的首地址的临时信号变化规律:第1个地址赋值为(D-1)N;之后每隔DN 个时钟周期进行1次0MN-1的模MN计数,计数值每次+DN; 0039 读地址3的首地址的临时信号变化规律:第1个地址赋值为(M-1)N;之后每隔DN 个时钟周期进行1次0MN-1的模MN计数,计数值每次+DN; 0040 。 0041 。

27、读地址P-1的首地址的临时信号变化规律:第1个地址赋值为M-1-(Q-2)D)N; 之后每隔DN个时钟周期进行1次0MN-1的模MN计数,计数值每次+DN; 0042 中间省略的信号变化规律依此类推; 0043 产生P个读地址的首地址信号: 0044 读地址0的首地址变化规律:第1个地址赋值为(D-1)N;之后每隔N个时钟周期 进行1次0MN-1的模MN计数,计数值每次+N; 0045 读地址1的首地址变化规律:连续D个地址为1组;连续D个地址的第1个地址 赋值为读地址1的首地址的临时地址;之后的连续D-1个地址每隔N个时钟周期进行1次 0MN-1的模MN计数,计数值每次-N; 0046 读地。

28、址2的首地址变化规律:第1个地址赋值为(2D-1)N;之后每隔N个时钟周期 进行1次0MN-1的模MN计数,计数值每次+N; 0047 读地址3的首地址变化规律:连续D个地址为1组;连续D个地址的第1个地址 赋值为读地址3的首地址的临时地址;之后的连续D-1个地址每隔N个时钟周期进行1次 0MN-1的模MN计数,计数值每次-N。 0048 。 说 明 书CN 102412808 A CN 102412821 A 4/15页 8 0049 读地址P-2的首地址变化规律:第1个地址赋值为(QD-1)N;之后每隔N个时钟周 期进行1次0MN-1的模MN计数,计数值每次+N; 0050 读地址P-1的。

29、首地址变化规律:连续D个地址为1组;连续D个地址的第1个地 址赋值为读地址P-1的首地址的临时地址;之后的连续D-1个地址每隔N个时钟周期进行 1次0MN-1的模MN计数,计数值每次-N; 0051 中间省略的信号变化规律依此类推; 0052 产生P个读地址信号: 0053 读地址0的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋 值为读地址0的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算, 每次+1; 0054 读地址1的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋 值为读地址1的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1。

30、次加法运算, 每次+1; 0055 读地址2的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋 值为读地址2的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算, 每次+1; 0056 读地址3的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个赋 值为读地址3的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法运算, 每次+1; 0057 。 0058 读地址P-2的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个 赋值为读地址P-2的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法 运算,每次+1; 0059 读。

31、地址P-1的变化规律:连续N个地址为1组;首地址即连续N个地址中的第1个 赋值为读地址P-1的首地址,之后的连续N-1个地址依次每隔1个时钟周期进行1次加法 运算,每次+1。 0060 中间省略的信号变化规律依此类推; 0061 进行读操作: 0062 根据读地址信号从RAM存储单元中相应的位置读出数据,每隔1个时钟周期依次 读出1个数据。 0063 本发明的双口RAM存储模块对无效数据进行过滤,将无效数据置为0后输出至滤 波运算模块进行运算;N个通道1次滤波运算的无效数据为M/DDN-MN(M/DD-M)N个。 0064 本发明的有益效果: 0065 本发明有效地避免了读写冲突造成的误操作、。

32、容易在FPGA内实现、节省了FPGA内 数量很有限的高速硬核乘法器、方便后续滤波运算的实现、在FPGA内实现的数字电路具有 很高的时序性能;同时采用本设计的读写策略方案使滤波方法在FPGA内的实现变得十分 容易,数据流都是直接送给下级运算单元,降低了方法实现的复杂度,这点对在FPGA内实 现方法是至关重要的。 0066 本发明消耗FPGA内的乘法器数量少,FPGA内消耗的乘法器数量越少就可以在同 说 明 书CN 102412808 A CN 102412821 A 5/15页 9 一片FPGA里实现更多其他的算法;最高工作频率越高,最高工作频率和设计的时钟频率之 间的频率差越大,实现的数字电路。

33、时序裕量就越大,时序性能就越好,设计的稳定性和可靠 性越高。 0067 下表列出了目前的几种方案在FPGA中实现FIR数字抽取滤波器时实现的情况, 在最关键的消耗乘法器数量和最高工作频率2项指标上,本发明的滤波器都是最好的,比 Xilinx公司的IP核设计还要优秀。 0068 附图说明 0069 图1是本发明的原理框图。 具体实施方式 0070 下面结合附图和实施例对本发明作进一步的说明。 0071 如图1所示,一种基于FPGA的高性能多路FIR数字抽取滤波器及其读写方法,其 中: 0072 基于RAM的读写策略 0073 基于避免因为读写冲突造成的误操作、实现起来简单和方便后续运算的原则,采。

34、 用如下的读写策略: 0074 (1)分配RAM的大小: 0075 本实例中的情况: 0076 本实例有6个通道,要使用FPGA内的2个乘法器。每一个乘法器需要对应使用 FPGA内的2个17*102bit的双口RAM存储单元,地址分配见下表。2个乘法器一共使用FPGA 内的4个17*102bit的双口RAM存储单元,均由FPGA内的BLOCK RAM实现。 0077 本实例中RAM的地址分配 0078 说 明 书CN 102412808 A CN 102412821 A 6/15页 10 0079 表面上看,这样的地址分配方式对应在每个通道上都是不连续的,很不方便;实际 上,采用这种方式实现起。

35、来具有很多优点,详见后续的分析。 0080 (2)写策略: 0081 本实例中的情况: 0082 产生写使能信号:输入待滤波数据有效时均为高电平;输入待滤波数据无效时 均为低电平。 0083 产生写地址信号:写使能信号高电平期间,每隔1个时钟周期依次进行0101 的模102计数,计数值每次+1;写使能信号低电平期间,写地址保持不变。 0084 进行写操作:写使能信号高电平期间,输入的串行待滤波数据根据对应的写地 址信号写入RAM存储单元中相应的位置,每隔1个时钟周期依次写入1个数据;具体的顺序 为:6个通道对应的第1个数据依次写入,接着6个通道对应的第2个数据依次写入,依此 类推,直到6个通道。

36、对应的17个数据全部写入;写使能信号低电平期间,没有数据写入。 0085 写策略的时序表如下: 0086 0087 (3)读策略: 0088 本实例中的情况: 说 明 书CN 102412808 A CN 102412821 A 7/15页 11 0089 产生2个读地址的首地址的临时信号: 0090 读地址1的首地址的临时信号变化规律:第1个地址赋值为24;之后每隔30个时 钟周期进行1次0101的模102计数,计数值每次+30; 0091 读地址3的首地址的临时信号变化规律:第1个地址赋值为96;之后每隔30个时 钟周期进行1次0101的模102计数,计数值每次+30; 0092 相应的时。

37、序表如下: 0093 0094 产生4个读地址的首地址信号: 0095 读地址0的首地址变化规律:第1个地址赋值为24;之后每隔6个时钟周期进行 1次0101的模102计数,计数值每次+6; 0096 读地址1的首地址变化规律:连续5个地址为1组;连续5个地址中的第1个地 址赋值为读地址1的首地址的临时信号;之后的连续4个地址每隔6个时钟周期进行1次 0101的模102计数,计数值每次-6; 0097 读地址2的首地址变化规律:第1个地址赋值为54;之后每隔6个时钟周期进行 1次0101的模102计数,计数值每次+6; 0098 读地址3的首地址变化规律:连续5个地址为1组;连续5个地址中的第。

38、1个地 址赋值为读地址3的首地址的临时信号;之后的连续4个地址每隔6个时钟周期进行1次 0101的模102计数,计数值每次-6。 0099 相应的时序表如下: 0100 0101 产生4个读地址信号: 0102 读地址0的变化规律:连续5个地址为1组;连续5个地址中的第1个赋值为读地 址0的首地址,之后的连续4个地址依次每隔1个时钟周期进行1次加法运算,每次+1; 0103 读地址1的变化规律:连续5个地址为1组;连续5个地址中的第1个赋值为读地 址1的首地址,之后的连续4个地址依次每隔1个时钟周期进行1次加法运算,每次+1; 说 明 书CN 102412808 A CN 102412821 。

39、A 8/15页 12 0104 读地址2的变化规律:连续5个地址为1组;连续5个地址中的第1个赋值为读地 址2的首地址,之后的连续4个地址依次每隔1个时钟周期进行1次加法运算,每次+1; 0105 读地址3的变化规律:连续5个地址为1组;连续5个地址中的第1个赋值为读地 址3的首地址,之后的连续4个地址依次每隔1个时钟周期进行1次加法运算,每次+1。 0106 相应的时序表如下: 0107 0108 (4)对无效数据进行过滤: 0109 本实例中的情况: 0110 由于1个通道的1次滤波运算需要17个数据,而4组读地址实际上读出了20个 数据,因此有3个数据是无效数据,需要对其进行过滤,使对应。

40、的数据置为0,才能直接参加 运算;依此类推,6个通道的1次滤波运算需要102个数据,而4组读地址实际上读出了120 个数据,因此有18个数据是无效数据,需要对其进行过滤,使对应的数据置为0,才能直接 参加运算。 0111 读数据0和读数据1没有无效数据,原数据全部保留,相应的时序表如下: 0112 说 明 书CN 102412808 A CN 102412821 A 9/15页 13 0113 读数据2和读数据3的有效数据全部保留,无效数据被过滤为0,相应的时序表如 下: 0114 0115 说 明 书CN 102412808 A CN 102412821 A 10/15页 14 0116 输。

41、出数据大部分是有效数据,还有一部分数据为0,相应的时序表如下: 0117 0118 本实例中的情况: 0119 有效地避免了读写冲突造成的误操作 0120 根据5倍抽取滤波器的工作原理,每当有5个输入数据进入滤波器后,就产生1个 滤波器的输出。因此,每1次的滤波运算只能在5个输入数据长度的时间内进行,这就要求 读写操作是在同时进行的,既要保证读出的数据符合滤波运算的结构,又要尽可能地避免 读写冲突造成的误操作。读写冲突一般有2种情况:第1种是读操作进行早了,想要读的数 说 明 书CN 102412808 A CN 102412821 A 11/15页 15 据还没有被写入;第2种是读操作进行晚。

42、了,想要读的数据已经被覆盖了。本设计的读写策 略高效、合理地满足了这些要求:当写数据有效时,一直进行写操作;当6个通道都写入连 续5个数据后,开始进行读操作。其中读地址0超前于对应的写地址部分1个时钟周期,这 样能够保证读地址和写地址之间一直保持固定的时序关系,可以有效地避免读写冲突。 0121 容易在FPGA内实现 0122 从前面介绍的读写地址的产生过程可以看出:写地址信号本质上是一个计数器; 读地址的首地址的临时信号本质上是一个加法器;读地址的首地址信号本质上是一个加、 减法器;读地址信号本质上是一个加法器。所有这些信号的实现都比较简单,这对在FPGA 内的实现是至关重要的。 0123 。

43、FPGA中具有大量的Slice资源,可以很方便地配置成各种触发器和多路开关,实 现多位高速计数器;内嵌的BLOCK RAM可以方便地配置成双端口RAM存储单元;此外还具有 专门的快速加法进位链,可以轻松实现高速加法器;同时内嵌了高速硬核乘法器,完全可以 实现高带宽乘法器。因此,以本设计的读写策略为控制核心的FIR数字抽取滤波器在FPGA 中是容易实现的。实际的项目中,基于本设计的滤波器最高可以工作在391MHz,对于工作在 368.64MHz的设计要求能够很轻松地达到。 0124 节省了FPGA内数量很有限的高速硬核乘法器 0125 对于目前的主流FPGA来说,为了实现多路高带宽信号处理,往往。

44、要进行多级级联 滤波,为了保证滤波效果,各级滤波器的阶数都比较高,消耗的硬核乘法器数量比较大;加 上内嵌的高速硬核乘法器具有很高的性能,其数量又是很有限的,所以FPGA中内嵌的硬核 乘法器资源是很宝贵的,往往成为设计中的瓶颈,使用起来要充分利用,尽可能地复用,尽 量提高使用效率。按照本设计的读写策略实现的滤波器,在节省高速硬核乘法器方面具有 巨大的优势,可以使整个设计具有更强的竞争力。 0126 下表列出了目前的几种方案在FPGA中实现FIR数字抽取滤波器时消耗硬核乘法 器的情况: 0127 0128 0129 可见,由于采用了时分复用,方案2消耗的硬核乘法器数量仅仅为方案1的1/6, 说 明。

45、 书CN 102412808 A CN 102412821 A 12/15页 16 代价是数据速率的提高,对于目前的主流FPGA,以Xilinx公司的V5LX50T为例,内嵌 的DSP48E硬核乘法器理论上最高可以工作在450MHz,目前我们的项目最高可以工作在 391MHz,因此工作在368.64MHz可以轻松实现。 0130 根据滤波器系数特征对滤波方法进行优化,通过本设计的读写策略进行控制,可 以有效地提高硬核乘法器的使用效率,方案4消耗的硬核乘法器数量仅仅是方案3的1/2, 方案2的1/5,方案1的1/27,比方案3的Xilinx公司的IP核设计还要节省乘法器。随着 滤波器阶数的增加(。

46、几十阶)和抽取倍数的提高,节省的硬核乘法器数量还将大大增加,具 有很高的经济价值。 0131 方便后续滤波运算的实现 0132 1)由于读地址0为了避免读写冲突而超前对应的写地址部分1个时钟周期,读地 址1-3要相应地配合读地址0。这就要求读地址1-3读出的数据要和读地址0读出的数据 在滤波器系数对称的位置相对应。 0133 2)因为1个通道的1次滤波运算需要17个数据,5倍抽取滤波器是每输入5个输 入数据后产生1个输出数据,前3次滤波运算的输入数据不足17个,这部分对应的操作数 需要为0,在本设计中,这部分地址读出的数据为0,即:当对应的输入数据还没写入时,读 出的数据是0,同样可以直接参加。

47、加法运算。 0134 3)1个通道的1次滤波运算需要17个数据,而4组读地址读出的数据有20个,因 此有3个数据是无效数据,需要对其进行过滤,使对应的数据置为0,才能直接参加运算。 0135 按照以上思想设计的读策略读出的数据和滤波过程的数据流完全一致,没写入的 数据和无效的数据,对应的读数据是0,可以直接参加运算,十分方便后续运算。基于这种方 案,设计出了下面所示的读地址顺序以及对应的读数据顺序: 0136 进行1个通道的1次滤波运算按照滤波顺序排列的操作数 0137 0138 第1次滤波运算按照操作数顺序对应的读地址 0139 0140 第1次滤波运算按照读地址顺序对应的读数据 说 明 书。

48、CN 102412808 A CN 102412821 A 13/15页 17 0141 0142 对无效读数据进行过滤后第1次滤波运算按照顺序对应的操作数 0143 0144 第2次滤波运算按照操作数顺序对应的读地址 0145 0146 第2次滤波运算按照读地址顺序对应的读数据 0147 0148 对无效读数据进行过滤后第2次滤波运算按照顺序对应的操作数 0149 0150 0151 第3次滤波运算按照操作数顺序对应的读地址 0152 0153 第3次滤波运算按照读地址顺序对应的读数据 说 明 书CN 102412808 A CN 102412821 A 14/15页 18 0154 0155 对无效读数据进行过滤后第3次滤波运算按照顺序对应的操作数 0156 0157 第4次滤波运算按照操作数顺序对应的读地址 0158 0159 第4次滤波运算按照读地址顺序对应的读数据 0160 0161 对无效读数据进行过滤后第4次滤波运算按照顺序对应的操作数 0162 0163 第4次以后的滤波。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1