当前位置:首页 >> 信息与通信 >>

FPGA与DSP比较


FPGA 与 DSP 的比较 DSP 和 FPGA 是嵌入式开发处理器的三大巨头之二,很多刚刚接触嵌入式的朋友 都会心存疑问,到底 DSP 和 FPGA 哪个牛一点,学哪种好一点?FPGA 与 DSP 相比 较,哪个更有前途?今天,我就以自己的经验,和大家通俗介绍一下吧: FPGA 是英文 Field Programmable Gate Array(现场可编程门阵列)的缩写,它

是在 PAL、GAL、PLD 等可编程器件的基础上进一步发展的产物,是专用集成电路 (ASIC) 中集成度最高的一种。 FPGA 采用了逻辑单元阵列 LCA Logic Cell Array) ( 这样一个新概念,内部包括可配置逻辑模块 CLB(Configurable Logic Block) 、 输出输入模块 IOB(Input Output Block)和内部连线(Interconnect)三个部 分。用户可对 FPGA 内部的逻辑模块和 I/O 模块重新配置,以实现用户的逻辑。 它还具有静态可 重复编程和动态在系统重构的特性,使得硬件的功能可以像软 件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路, FPGA 既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 可以毫不夸张的讲,FPGA 能完成任何数字器件的功能,上至高性能 CPU,下至简 单的74电路,都可以用 FPGA 来实现。FPGA 如同一张白纸或是一堆积木,工程师 可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通 过软件 仿真,我们可以事先验证设计的正确性。在 PCB 完成以后,还可以利用 FPGA 的在线修改能力,随时修改设计而不必改动硬件电路。使用 FPGA 来开发数 字电 路,可以大大缩短设计时间,减少 PCB 面积,提高系统的可靠性。 DSP(digital singnal Processor)是一种独特的微处理器,有自己的完整指令 系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的 芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等, 在其外围还可以连接若干存储器, 并可以与一定数量的外部设备互相通信,有 软、硬件的全面功能,本身就是一个微型计算机。DSP 采用的是哈佛设计,即数 据总线和地址总线分开,使程序和数据 分别存储在两个分开的空间,允许取指 令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指 令,并进行译码,这大大的提高了微处理器的速 度 。另外还允许在程序空间和 数据空间之间进行传输, 因为增加了器件的灵活性。 其工作原理是接收模拟信号, 转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯

片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其 实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数 字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是 最值得称道的两大特色。由于它运算能力很强,速度很快,体 积很小,而且采 用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途 径。根据数字信号处理的要求, 上面都是一些基本概念的介绍,下面我就来通俗介绍一下,在 DSP 里,你是一个 软件设计者,硬件已经完全固化,你所要做的,就是在这个固定的硬件平台实现 其功能的最优化, 一般 TI 的 DSP 涉及最多的是一些基本的 BIOS 操作系统之间的 任务调度,以及算法改进与优化等待, DSP 的关键优势包括其对于新型及复杂 算法时的更短的开发时间,以及能够运行多种算法的灵活性。 而对于 FPGA 来说,你是一个硬件设计者,FPGA 就是一张白纸,上面写什么,画 什么都取决于你。同样一片 FPGA,菜鸟和高手实现的功能会是天壤之别,FPGA 的最大优势在于硬件实现已及通过并行处理实现的效率增益。使用 FPGA,您大 多的时间并非进行算法设计与优化,而是逻辑设计与时序约束等等。

下面再举一个最通俗的例子,同样使用 FPGA 与 DSP,对图像进行处理,这里的 算法采用中值滤波, 中值滤波是数字图像处理中十分常见也是非常有用的一种图 像处理算法,其基本步骤如下:

中值滤波法将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度 值的中值. 实现方法: 1:通过从图像中的某个采样窗口取出奇数个数据进行排序 2:用排序后的中值取代要处理的数据即可

中值的计算在于对滑动窗口内像素的排序操作。要进行排序,就必须对序列中的 数据像素做比较和交换, 数据元素之间的比较次数是影响排序速度的一个重要因 素。传统的排序串行算法是基于冒泡排序法,若窗口内像素为 m 个,则每个窗口 排序需要做 m(m-2)/2次像素的比较操作,时间复杂度为 O(M 平方) 。此外,常 规的滤波算法使窗口每移动一次,就要进行一次排序,这种做法实际上包含了大 量重复比较的过程。 若一幅图像的大小为 N*N , 则整个计算需要 O(M 平方)时间, 当窗口较大时计算量很大,较费时。

以下是采用 TI C6000系列的 DM642上,采用内联函数优化过的中值滤波算法 void IMG_median_Row( const unsigned short *restrict i_data, int n, unsigned { const int int unsigned int int *line0, *line_y; i; R00, R10, R20; *line1, *line2; short *restrict o_data)

unsigned int unsigned int unsigned int unsigned int unsigned int unsigned int unsigned int

R01, x0_01, R_max1, row0_pk, min_max, med_max1, median2;

R11, x1_01, R_min1, row1_pk, med_med, med_min1,

R21; x2_01; R_min2; row2_pk; max_min; med_min2;

line0 line1 line2

= (int *) i_data; = (int *) (i_data + n); = (int *) (i_data + n * 2);

line_y = (int *) o_data;

R00 R10 R20

= 0x00000000; = 0x00000000; = 0x00000000;

_nassert( _nassert(

n n % 4 % 8 % 8 % 8

>= 4); == 0); == 0); == 0); == 0);

_nassert((int) line0 _nassert((int) line1 _nassert((int) line2

_nassert((int) line_y % 8

== 0);

#pragma MUST_ITERATE(2,,2) #pragma UNROLL(2) for (i = 0 ; i < n; i += 2) {

x0_01 x1_01 x2_01

= *line0++; = *line1++; = *line2++;

R_max1 R_min1 R_min2

= _max2(x0_01,x1_01); = _min2(x0_01,x1_01); = _min2(R_max1,x2_01);

R01 R11 R21

= _max2(R_max1,x2_01); = _max2(R_min1,R_min2); = _min2(R_min1,R_min2);

row0_pk row1_pk

= _packlh2(R01,R00); = _packlh2(R11,R10);

row2_pk

= _packlh2(R21,R20);

min_max min_max

= _min2(R00,R01); = _min2(min_max,row0_pk);

med_max1 = _max2(R10,R11); med_min1 = _min2(R10,R11); med_min2 = _min2(med_max1,row1_pk); med_med = _max2(med_min1,med_min2);

max_min max_min

= _max2(R20,R21); = _max2(max_min,row2_pk);

med_max1 = _max2(min_max,med_med); med_min1 = _min2(min_max,med_med); med_min2 = _min2(med_max1,max_min); median2 = _max2(med_min1,med_min2);

*line_y++ = median2;

R00 = R01; R10 = R11;

R20 = R21;

} }

void MedianFliter(const unsigned short *restrict Image_In, unsigned short *restrict Image_Out,int Row,int Column) { int i; for(i = 0; i < Row; i++) { IMG_median_Row((Image_In+ i * Column), Column, (Image_Out+ i * Column)); } }

再看看 ALTERA FPGA 实现的中值滤波,共用 LE 692个,FIFO,D 触发器若干,代 码约4000行…..

对比一下速度,3*3 中值滤波器,图像大小1024*768,灰度图像 执行效果 DSP——帧延时>1帧,计算时间 未优化前 C 代码 程, 循环等优化后 7毫秒 24毫秒 算法流

内联函数优化后 1.6毫秒 线性汇编优化后 272微秒

执行效果 FPGA——帧延时=2行像素,计算时间 由输入时钟定,如果像素时钟大 于50M 整个图像处理时间不足1微秒,但是像素时钟受整个系统时序的约束,过 快会使逻辑工作在不稳定状态。 现在大家估计也知道 FPGA 与 DSP 的最大区别了吧,呵呵。DSP——编程速度快, 方便,适合做算法验证,如果想用好 DSP,那么大部分时间都在做算法与语言优 实现麻烦, 不适合做算法验证, 但是一旦实现后, 化工作。 FPGA——编程速度慢,

可以进行流水线操作,延时非常低。

综上所述, 优缺点十分明显,所以现在音视频处理, 综上所述,FPGA 与 DSP 优缺点十分明显,所以现在音视频处理,移动通信或者 整个通信行业等大量信号处理的工程项目中, FPGA+DSP, 整个通信行业等大量信号处理的工程项目中,流行的解决方案都是 FPGA+DSP, 做逻辑控制,DSP 做浮点算法,如果算法不是很占资源的, FPGA 做逻辑控制,DSP 做浮点算法,如果算法不是很占资源的,也有直接用 FPGA 来做的, 产品, 来做的,但两大 FPGA 厂商都最近都推出了带 DSP 平台的 FPGA 产品,以后 FPGA 的界限将越来越模糊,会慢慢的合二为一, 总之,目前而言, 与 DSP 的界限将越来越模糊,会慢慢的合二为一, 总之,目前而言,由 DSP 和 结合而成的混合式方案常常能够为高性能多处理应用提供最好的方案, FPGA 结合而成的混合式方案常常能够为高性能多处理应用提供最好的方案,让 每个器件都发挥其作用。 是两项互补的技术, 每个器件都发挥其作用。FPGA 和 DSP 是两项互补的技术,而不是互相竞争的对 手。对于长远来看,我认为是个殊途同归的过程,最后的产物,到底叫 FPSP 还 对于长远来看,我认为是个殊途同归的过程,最后的产物, DSGA, 厂商的造化了,呵呵…… 是叫 DSGA,那就要看各位 IC 厂商的造化了,呵呵


相关文章:
简述FPGA 和DSP的优缺点及使用场合
简述FPGA 和DSP的优缺点及使用场合_工学_高等教育_教育专区。fpga简述...) 适合于高速采样频率下,特别是任务比较固定或重复的情况以及试制样机、系统开发...
视频处理设计中FPGA与DSP方案的比较
视频处理设计中 FPGA 与 DSP 方案的比较 DSP: 效率。另外,还采用流水线技术、多条指令并行执行的技术,来进一步提高处理速度。 便于同外部芯片和设备进行无缝连接。...
ARM、DSP、FPGA的特点和区别
ARM、DSPFPGA的特点和区别_信息与通信_工程科技_专业资料。好ARM、DSP、 说明 ARM、DSPFPGA 的异同点 3 ARM(Advanced RISC Machines)是微处理器行业的一家...
FPGA与DSP异同,走通hello.c
3.简述 FPGA 和 DSP 开发的异同 FPGA 开发流程包括电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现、 布线后仿真、 板级仿真以及芯片编程与调试等步骤...
单片机,DSP和FPGA区别以及发展前景
单片机,DSPFPGA区别以及发展前景_信息与通信_工程科技_专业资料。单片机,DSPFPGA区别以及发展前景单片机、dspFPGA/CPLD 的分析、比较 单片机、 、 的分析、 硬...
ARM、DSP、FPGA的特点和区别
说明ARM、DSPFPGA 的异同点 3 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大 量高性能、廉价、耗能低的 RISC 处理器、相关技术及软 ...
深入理解DSP、ARM、FPGA的区别与联系
深入理解DSP、ARM、FPGA的区别与联系_互联网_IT/计算机_专业资料。深入了解 DSP 与 ARM 的区别与联系 这些天正准备找工作的事,对于一些理论上的,或者说表面上的...
FPGA研发牛人心得总结
这是初的 FPGA 的雏形。 现代 FPGA 内部出了查找表和寄 存器之外,还有 ...常用的有 ARM+FPGA,DSP+FPGA, 或者网络处理器+FPGA 等种种架构形式,这些架构...
我眼中的FPGA与DSP
总之,目前而言, 会慢慢的合二为一, 总之,目前而言,由 DSP FPGA 结合而成的混合式方案常常能够 为高性能多处理应用提供最好的方案,让每个器件都发挥其作用。...
FPGA与ARM与DSP对比
FPGA与ARM与DSP对比_计算机硬件及网络_IT/计算机_专业资料。FPGA与ARM与DSP对比FPGA 与 ARM 与 DSP 对比 ARM 具有比较强的控制能力,是 32 位的单片机,其内部硬...
更多相关标签: