ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
在用FPGA或专用集成电路实现数字信号处理惩罚算法时,谋略速率和芯单方面积是两个相互制约的重要题目。
1 并行流水布局FIR的原理
实际应用FIR滤波器时,要得到精良的滤波结果,滤波器的阶数大概会明显增长,偶然大概会多达几百阶。因此,有须要在性能和实现巨大性之间做出选择,也便是选择差别的滤波器实现布局。这里运用并行流水线布局来实现速率和硬件面积之间的互换和折衷。
在关键路径插入寄存器的流水线布局是进步体系吞吐率的一项强大的实现技能,并且不必要大量重复设置硬件。流水线的范例重要分为两种:算术流水线和指令流水线。
对FPGA计划,逻辑成果是面向特定应用的,因此,采取必要较少分外控制逻辑的算术流水布局。 流水线布局就意味着将数字处理惩罚算法支解成时间上前后相连的多个处理惩罚片断.并且在段与段之间加信号寄存器来缓冲。这些段和段之间的缓冲就构成了流水线。体系原来的运算量被支解成k个部分,分别由流水线的k个段来外理。一旦前面的任务通过了流水线的第一段,新的任务就可以进入流水线。设体系不加流水时的延时是D,则加上流水后,每隔D/k个时间单位就可以启动新的任务。要实现流水线的性能提拔应餍足3个条件:
①运算量匀称分成延时同等的k个部分;
②输人数占据大量重复的运算;
③重复的运算前后没有相干性。
并行布局便因此重复雷同的布局,对同时餍足并行运算条件的并行算法在硬件上举行实现的布局。并行布局运用起来的重要难点如下:一,并行布局占用更多的面积。二,相互并行的各谋略部分在相互互换数据时,必要分外的控制和互联布局。但是,在芯片工艺尺寸不绝减小的本日,并行结构成为计划高速、低延时数据处理惩罚体系的首选。控制和互联布局的巨大性取决于算法和对算法的分别要领。FIR滤波器本身就适归并行处理惩罚,但是对付占用时间和芯单方面积都很大的乘法器来说,用全并行来实现FIR滤波器是不经济的。
FIR滤波器以其计划大略、稳固性好、方便实现、线性相位等好处每每成为首选,乃至是唯一的选择。FIR滤波器用差分方程表现为:
FIR滤波器直接型布局如图1。
2 实现要领
现场可编程门阵列(FPGA)具有体系结会商逻辑单位配置机动、集成度高以及计划开辟周期短等好处,因此,选用FPGA来验证并实现本滤波器布局。VHDL是一种硬件形貌语言,重要用于形貌数字体系的布局、举动、成果和接口,与FPGA相连合后,表现出越发强大与机动的数字体系计划本领。
用VHDL完成数字体系的成果形貌,用FPGA来实现是一种实用方便的软、硬件连合方法。从硬件形貌语言到FPGA配置数据文件是由综合东西以及布局、布线东西来完成的。数字体系的成果终极可否实现以及性能怎样,取决于数字体系的算法布局,也取决于综合东西、结会商布线东西,另有器件性能。但是,要是数字体系的算法计划不好,就会有更多的计划重复。这里对FIR滤波器提出一种处理惩罚时间和所用芯单方面积可以互换的布局,在最初的计划时,就能对其处理惩罚本领有所预计,淘汰了计划的重复。
对付FIR滤波器,Xilinx提供了两个软核,一个是基于散布式运算的,另一个是基于单路的乘加运算。对付大阶数、高采样率的滤波器,这两种滤波器布局都不太得当。
为了进步FIR滤波器的吞吐量,可用并行加流水线的布局来实现FIR滤波器,如图2所示。流水布局用于进步吞吐量率,并行布局可以减小处理惩罚延时。利用流水和并行布局调解滤波器性能使其餍足实际应用请求。这里实现三级流水和二路并行的FIR滤波器。三级流水分别映射取数、乘法和累加。重要由双口RAM、乘法器、累加器、控制逻辑和流水线间的寄存器构成,另有数据写入模块(图中未画)。
用两块RAM分别存放FIR系数和数据的前N个样值点,这两个RAM请求有一个写数据和一个读数据的双端口RAM。数据写入模块认真把所要滤波的数据轮换地写入两个双口RAM;FIR的系数也按偶数下标和奇数下标分别写入两个系数RAM,实现时是预先配置的。
在实现滤波时,如图1所示对数据移位是不实际的。因此,用交联网络连合控制模块实现第一级流水--取数,完成给下一级流水线精确送数的目标。第二级流水是两个并行的乘法器,完成乘法运算。第三级流水是一个累加器;在控制逻辑的控制下,对乘法器输出结果举行精确的累加运算。
完成布局计划后要举行时序计划。数据写入模块的时钟是根据数据源孕育产生数据的速率而定的。而流水线的事变时钟频率请求大于数据孕育产生时钟频率的N/2倍,N是滤滤器阶数,2是并行度。也便是请求流水线在数据孕育产生的一个周期内能完成一次FIR滤波器输出的谋略。此中的控制逻辑是流水线正常运行的关键。数据流水线上的种种时序请求都要由其孕育产生,包括读数据地点、读系数的地点、交联网络的控制和流水线布局的输出。其VHDL的端口形貌如下:
系数地点由计数器孕育产生,计数器周期是滤波器的阶数除以并行度,由first_data_address的第0位的边沿触发,以重新从0开始计数。数据RAM的地点加上计数器的值。两个RAM地点因当前输入滤波数据的存放位置,大概雷同也大概相差1。交联网络的控制信号是计数器的最低位。累加器输出的使能信号是在计数到滤波器的阶数时孕育产生的,而后颠末延时给到累加器。累加器清零信号在这里孕育产生要比累加器中用其他要领方便得多。
交联网络也是计划的重点。对付并行处理惩罚布局,各单位之间数据的共享和通讯是限定并行度的重要缘故起因。在并行度为2的布局中,只要轮番互换系数就可以了。但是对更高的并行度,这一通讯网络的延时是相称大的,这也是把它单独列为滤波器的流水线的一级的重要缘故起因。
还要细致的是:有标记数常用补码表现。在对有标记数举行扩展时,要扩展最高位。对乘法器的输出一样平常要举行扩展,以克制累加器溢出。
对付乘加运算,有一种散布式谋略要领,也便是把乘法进一步分析为部分和(二进制系数的每一位和输入数据相与的结果)。当乘加运算的一个乘数是已知常数时,散布式乘加运算会很节流资源。由于系数牢固,与运算的结果是在运算前可知的,如许零位与数据相与的结果是不参加加运算的,从而实现无乘法器的滤波器。这里不选用这种要领,缘故起因有二:其一,散布式运算将使滤波器难以重配:其二,基于FPGA的硬件乘法器较综合得来的乘法器性能更佳。
3 仿真及测试
用VHDL语言形貌全部电路模块后,输入系数1、2、3、4、5和数据-l、-2、3、4等举行测试.用Mod-elsim举行仿真,其结果如图3所示。
可以看出,模块能精确举行谋略,从数据输入到数据输出约延时2个数据时钟.这重要是前面的数据输入模块的延时。乘加部分采取数据时钟的N/2倍,其延时与滤波器的阶数成比例,但不会高出一个数据时钟周期。
然后,对VHDL形貌就Xilinx的Spartan-3举行综合和测试。可以得出表1所示的测试结果,此中第一举动并行流水布局所计划的滤波器,第二行是采取Xilinx提供的软核计划的滤波器。
可以看出,除了增长一个乘法器外,逻辑块和触发器都增长了一倍多。用这种布局计划的滤波器面积增长了一倍,速率性能也进步了一倍。以上两种滤波器可以应用在语音信号处理惩罚中--让语音信号通过低通滤波器以获取语音的低频分量。相对而言,并行流水布局能实现比Xilinx软核更高阶数的滤波器。在听觉上,颠末两种滤波器(雷同阶数)的语音信号没有太大差别。
4 结束语
本文在运算层次上,依据流水和并行运算布局实现直接型FIR滤波器。要是在计划滤波器时,连合级联型和直接型两种滤波器布局,那么也能实现同样的并行和流水的结果。实际上,还可在更低层次的乘法运算时,对部分和也用并行和流水布局来实现。这些布局的选择都依据性能请求和实现的巨大性来详细确定。
作为实现当代高性能处理惩罚器的要领,并行和流水布局各有特点。并行因此面积换速率。流水因此延时换速率,采取这两种布局,就能在面积、速率、延时之间机动互换。
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号