数字电路设计中DSP和FPGA的比较与选择

博主研究生所在的实验室是搞雷达的,项目所涉及的板卡都是DSP+FPGA架构的,至于原因,只知道FPGA是并行的,用来处理速度要求高,运算结构简单的大数据量过程或算法,比如接收处理天线各阵元采样的初始数据等;DSP是顺序的,用来处理数据量较低但运算量较大的算法,比如DBF算法、矩阵求逆算法等。看了下面的文章,有了更全面的理解。

原文地址:http://www.chinaaet.com/article/index.aspx?id=13921

摘  要: DSP和FPGA是目前数字电路设计采用的两种主要手段,其各有自身的优缺点,故在设计数字系统前必需进行方案选择。DSP+FPGA结构的新思想的出现以及嵌入DSP模块的FPGA设计方案使得数字电路设计有了更大的选择空间。

关键词: DSP  FPGA  DSP+FPGA  嵌入DSP模块的FPGA

数字信号处理技术和大规模集成电路技术的迅猛发展,为我们设计数字电路提供了新思路和新方法。当前数字系统设计正朝着速度快、容量大、体积小、重量轻的方向发展。DSP和FPGA技术的发展使这一趋势成为可能和必然。

和计算机一样,数字信号处理的理论从60年代崛起以来,到80年代DSP产生,它飞速发展改变了信号处理的面貌。今天DSP已广泛应用在语音、图像、通讯、雷达、电子对抗、仪器仪表等各个领域。DSP起了十分关键的作用,成为数字电路设计的主要方法。

二十世纪80年代以来,一类先进的门阵列——FPGA的出现,产生了另一种数字电路设计方法,具有十分良好的应用前景。基于FPGA的数字电路设计方式在可靠性、体积、成本上的优势是巨大的。

除了上述两种方案,还有DSP+FPGA方案,以及选择内部嵌入DSP模块的FPGA实现系统的方案。

1 DSP和FPGA的结构特点

1.1 DSP的结构特点

DSP是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:

(1)在一个指令周期内可完成一次乘法和一次加法;

(2)程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,可以同时访问指令和数据;

(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;

(4)具有低开销或无开销循环及跳转的硬件支持;

(5)快速的中断处理和硬件I/O支持;

(6)具有在单周期内操作的多个硬件地址产生器;

(7)可以并行执行多个操作;

(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

1.2 FPGA的结构特点

FPGA的结构是由基于半定制门阵列的设计思想而得到的。从本质上讲,FPGA是一种比半定制还方便的ASIC(Application Specific Integrated Circuit 专用集成电路)设计技术。

FPGA的结构主要分为三部分:可编程逻辑块、可编程I/O模块、可编程内部连线。可编程逻辑块和可编程互连资源的构造主要有两种类型:即查找表类型和多路开关型。

查找表型FPGA的可编程逻辑单元是由功能为查找表的SRAM(Static Random Access Memory 静态随机存取存储器)构成函数发生器,由它来控制执行FPGA应用函数的逻辑。SRAM的输出为逻辑函数的值,由此输出状态控制传输门或多路开关信号的通断,实现与其它功能块的可编程连接。多路开关型可编程逻辑块的基本构成是一个多路开关的配置。利用多路开关的特性,在多路开关的每个输入接到固定电平或输入信号时,可实现不同的逻辑功能。大量的多路开关和逻辑门连接起来,可以构成实现大量函数的逻辑块。

FPGA由其配置机制的不同分为两类:可再配置型和一次性编程型。近几年来,FPGA因其具有集成度高、处理速度快以及执行效率高等优点,在数字系统的设计中得到了广泛应用。

2 DSP与FPGA性能比较

DSP内部结构使它所具有的优势为:所有指令的执行时间都是单周期,指令采用流水线,内部的数据、地址、指令及DMA(Direct Memory Access直接存储器存取)总线分开,有较多的寄存器。

与通用微处理器相比,DSP芯片的通用功能相对较弱些。DSP是专门的微处理器,适用于条件进程,特别是较复杂的多算法任务。在运算上它受制于时钟速率,而且每个时钟周期所做的有用操作的数目也受限制。例如TMS320C6201只有两个乘法器和一个200 MHz 的时钟,这样只能在每秒完成400M的乘法。

将模拟算法、具体指标要求映射到通用DSP中,比较典型的DSP通过汇编或高级语言如C语言进行编程,实时实现方案。如果DSP采用标准C程序,这种C代码可以实现高层的分支逻辑和判断。例如通信系统的协议堆栈,这是很难在FPGA上实现的。从效果来说,采用DSP器件的优势在于:软件更新速度快,极大地提高了系统的可靠性、通用性、可更换性和灵活性,但DSP的不足是受到串行指令流的限制。

FPGA有很多自由的门,通过将这些门连接起来形成乘法器、寄存器、地址发生器等等。这些只要在框图级完成,许多块可以从简单的门到FIR(Finite Impulse Response 有限冲激响应)或FFT(Fast Fourier Transform 快速傅里叶变换)在很高的级别完成。但它的性能受到它所有的门数及时钟速度的限制。例如,一个具有20万门的Virtex 器件可以实现200MHz时钟的10个16位的乘法器。

FPGA包含有大量实现组合逻辑的资源,可以完成较大规模的组合逻辑电路设计;与此同时,它还包含有相当数量的触发器,借助这些触发器,FPGA又能完成复杂的时序逻辑功能。通过使用各种EDA (Electronic Design Automatic 电子设计自动化)工具,设计人员可以很方便地将复杂的电路在FPGA中实现。象微处理器一样,许多FPGA可以无限的重新编程,加载一个新的设计方案只需要几百毫秒。甚至现场产品可以很简单而且快速的实现。这样,利用重配置可以减少硬件的开销。

超过几MHz的取样率,一个DSP仅仅能完成对数据非常简单的运算。而这样简单的运算用FPGA将很容易实现,并且能达到非常高的取样速率。在比较低的取样速率时,整体上很复杂的程序可以使用DSP,这对于FPGA来讲是很困难的。

对于较低速的事件,DSP是有优势的。可以将它们排队,并保证它们都能执行,但是在它们处理前可能会有些时延。而FPGA不能处理多事件,因为每个事件都有专用的硬件,但是采用这种专用硬件实现的每个事件的方式可以使各个事件同时执行。

如果需要主工作环境进行切换,DSP可以通过在程序里分出一个新的子程序的方式来完成,而对于每种配置FPGA需要建立专门的资源。如果这些配置是比较小的,那么在FPGA中可以同时存在几种配置;如果配置较大则意味着FPGA需要重新配置,而这种方法只在某些时候可以采用。

最后,FPGA是以框图方式编程的,这样很容易看数据流。DSP是按照指令的顺序流来编程的。大多数的单处理系统都是以某种框图方式开始设计的。实际上,系统设计者大多认为将框图移植给FPGA比将其转化为DSP的C代码更容易。

3 如何进行DSP和FPGA方案选择

3.1 方案选择原则

在选择数字系统核心处理部分的方案时,有很多因素需要考虑。例如如何充分利用已有资源(包括软、硬件)、系统要求的工作时钟速率以及算法或工作方式的特点等,这些对最佳方案的选择有很大的影响。

具体地说,在最初的方案论证阶段,可以根据如下问题的回答情况来进行方案选择:

(1)该系统的取样速率是多少?

如果高于几MHz,FPGA是理所当然的选择。

(2)系统是否已经使用C语言编制的程序?如果是,DSP可以直接地实现。它可能达不到方案的最佳实现,但很容易进一步开发。

(3)系统的数据率是多少?

如果高于20~30Mbyte/second,则用FPGA处理更佳。

(4)有多少个条件操作?

如果没有,FPGA是很好的;如果很多,则软件的实现即DSP的实现是更好的选择。

(5)系统是否使用浮点?

如果是,则使用可编程的DSP更好。目前为止,一些FPGA开发商,如Xilinx 公司的核还不支持浮点,尽管自己可以设计。

(6)所需要的库是否能够获得?

DSP和FPGA都提供诸如FIR或FFT等基本的构建模块。然而,更复杂的或专用的构件可能得不到,这将决定选择。

3.2 方案选择示例

下面提供了几个数字电路设计例子,有助于理解前面介绍的方案选择原则。

(1)用于无线数据接收机的抽样滤波器。典型的CIC(Control Integrated Circuit 控制集成电路)滤波器工作在50~100MHz的取样率,5步CIC有10个寄存器和10个加法器。要求加速度在500~1000MHz。

在这一速率下任何的DSP处理器将很难实现。然而CIC只有非常简单的结构,这样以FPGA来实现将会很简单。100MHz的取样率可以达到,甚至某些型号的FPGA还可以有些剩余资源来实现进一步的处理。

(2)实现通信堆栈协议——ISDN(Integrated Services Digital Network 综合服务数字网)。IEEE1394有很复杂、大量的C代码,完全不适合用FPGA来实现;但是用DSP来实现却很简单。不仅如此,一个信号编码基数可以得到保留,这样可以使代码堆栈在某一产品的DSP上来实现,或者在另一块DSP上的分离的协议处理器来实现。这将给专门提供为代码堆栈授权的供应厂家以机会。

(3)数字射频接收机的基带处理器。一些类型的接收机需要FFT来获得信号,然后匹配滤波器一次获得信号,这两个模块可以很简单的用任何一种方案实现。然而如果要求工作模式转换/信号获得和信号接收的转换;则采用DSP方案更适合。因为FPGA方案需要同时完成两个模块。

这里要注意,射频用FPGA实现更好,因为这是一个混合、多任务的系统。如果应用更大的FPGA,这样两个模块可以同时用一个FPGA来实现。

(4)图象处理器。对于图象的处理过程多是简单的和重复的,这样很适合用FPGA实现。然而,一个成像处理流程往往用于在所观测的目标识别“斑点”或“感兴趣的区域”。这些“斑点”可能大小不一样,造成后端的判断及处理过程趋于复杂。同时,所用的算法往往是自适应的,取决于斑点是什么样的。所以用DSP构成图象处理管道的后端处理部分是合适的。

总之,DSP和FPGA代表着两种数字系统的信号处理的过程,各有所长和不足之处。对于许多高速采样频率的应用,特别是任务比较固定或重复的情况下,适合采用FPGA方案;同样,对于较低的取样速率和有很高复杂度的软件问题的情况适合采用DSP方案。

4 新的设计思想

4.1  DSP+FPGA结构

DSP+FPGA结构最大的特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高算法效率;同时其开发周期较短,系统易于维护和扩展。

例如,一个由DSP+FPGA 结构实现的实时信号处理系统中,低层的信号预处理算法处理的数据量大,对处理速度的要求高,但运算结构相对比较简单,适于用FPGA进行硬件实现,这样能同时兼顾速度及灵活性。高层处理算法的特点是所处理的数据量较低层算法少,但算法的控制结构复杂,适于用运算速度高、寻址方式灵活、通信机制强大的DSP芯片来实现。

FPGA可以完成模块级的任务,起到DSP的协处理器的作用。它的可编程性使它既具有专用集成电路的速度,又具有很高的灵活性。

DSP具有软件的灵活性;而FPGA具有硬件的高速性,从器件上考察,能够满足处理复杂算法的要求。这样DSP+FPGA的结构为设计中如何处理软硬件的关系提供了一个较好的解决方案。同时,该系统具有灵活的处理结构,对不同结构的算法都有较强的适应能力,尤其适合实时信号处理任务。

4.2 嵌入DSP模块的FPGA

应用将一些能实现基本数字信号处理功能的DSP模块嵌入的FPGA芯片是数字电路设计的另一个大趋势。

有些公司已经或计划把基于ASIC的微处理器或DSP芯核与可编程逻辑阵列集成组合在一块芯片上。FPGA提供的DSP性能已超过1280亿MAC每秒,大大高于目前主流供应商所能提供的传统DSP的性能。

其中,Xilinx作为世界可编程逻辑器件的领导厂商,拥有先进的FPGA技术以及先进的开发工具。2000年11月,推出Xilinx XtremeDSP行动,试图进入这一市场。Virtex-II可以提供6千亿MAC(乘法累加运算)每秒的性能。采用这种并行结构,256阶FIR滤波器中的每个样本可以在一个时钟周期内处理完,因此极大地改善了DSP的性能和效率。

Xilinx XtremeDSP行动的目标是希望满足宽带革命的高性能挑战。其它特性还包括根据如芯片面积(相应于使用的资源)和系统频率来优化DSP设计。XtremeDSP行动还推出了一些开发工具以弥补传统上在DSP和FPGA设计方法间存在的差距。

新的Virtex-II系列的增强结构使其在实现需要计算的算法时具有独特的优势。Xilinx提供的测试数据表明,Xilinx FPGA比业界最快的DSP运行要快100倍。因此,单个FPGA即可代替传统上所谓的DSP处理器阵列。

目前世界上的许多手机基站产品采用了Xilinx公司Virtex-E FPGA。为了建立大量的连接,手机基站需要处理大量的数据,其中大部分是采用某种DSP实现的。

性能比较突出的还有QuickLogic公司推出的QuickDSP系列,它提供了嵌入式的DSP构件块和可编程的逻辑灵活性。这个新的系列除了提供以前的可编程的逻辑和存储模块外,还包括专用的乘加模块。这些合成的模块可以实现DSP功能。支持DSP功能的软件可以由公司获得,除了QuickWorks开发软件外,DSP 向导包让使用者产生优化的功能,如定点或浮点算术逻辑,FIR和IIR(Infinite Impulse Response无限冲激响应)滤波器等,只要鼠标点击几下即可。

可以预测,在不久的将来,单一的DSP或FPGA实现的数字系统会被DSP+FPGA的结构或嵌入DSP模块的FPGA设计结构所取代。

时间: 2024-10-15 13:38:23

数字电路设计中DSP和FPGA的比较与选择的相关文章

【转】数字电路设计中的亚稳态及其解决方法

亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态.当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上.在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去. 1.亚稳态发生的原因 在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端毛刺.

干货丨ARM、MCU、DSP、FPGA、SOC各是什么?区别是什么?

https://www.iyiou.com/p/42478.html 1.ARM ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器.更早称作AcornRISCMachine.ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势. ARM历史发展: 1978年12月5日,物理学家赫尔曼·豪泽(HermannHauser)和工程师ChrisCurry,在英国剑桥创办了CPU公司(CambridgePro

数字设计中的时钟与约束

最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧.主要内容如下所示: ·同步电路与异步电路: ·时钟/时钟树的属性:偏移(skew)与时钟的抖动(jitter).延时(latency).转换(transition)时间: ·内部时钟: ·多路复用时钟: ·门控时钟: ·行波时钟: ·双沿时钟: ·Design Compiler中的时钟约束. 1.同步电路与异步电路 首先来谈谈同步电路与异步电路.那么首先就要知道什么是同步电路.什么是

数字系统中的亚稳态及其解决办法

本文转自http://www.cnblogs.com/linjie-swust/archive/2012/01/07/YWT.html 1. 应用背景 1.1         亚稳态发生原因 在FPGA系统中,如果数据传输中不满足触发器的Tsu和Th不满足,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间(recovery time)不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D

ARM、8051、AVR、MSP430、Coldfire、DSP、FPGA七种体系比较区别

概述 我以为这样比没有意义,做嵌入式系统最大特征是“嵌入”二字,也就是说你的控制系统是嵌入于你的控制对象之中,所以首先是服从于对象的需求和特征,脱离对象空论谁好谁坏有何依据? 每个MCU都有其存在的价值,每个使用者的选择都有其道理,AVR开始时是以单时钟周期指令为卖点,相对于当时 12个时钟的经典51确实有优势,而且基于CMOS的特征,时钟越高功耗越大,所以它在能耗上似乎明显占优. 可随着技术的改进,51现在已经早就有了4时钟周期,`2时钟周期乃至单时钟周期的芯片了,此时AVR的速度优势已不存在

创龙基于C66x平台DSP与FPGA通信测试

本文为基于创龙TL665xF-EasyEVM开发板的DSP与FPGA通信测试.TL665xF-EasyEV开发板的简介绍如下:由核心板+底板构成.核心板DSP端采用单核TMS320C6655或双核TMS320C6657处理器,FPGA端采用Xilinx Artix-7处理器,实现异构多核处理器架构,DSP与FPGA内部通过uPP.EMIF16.SRIO连接:底板接口资源丰富,支持uPP.EMIF16.SRIO.千兆以太网口等多种高速接口,引出PCIe接口,单端口双通道,每通道最高通信速率5GBa

数字信号处理101——DSP系统设计入门课程(1)

第一部分:为什么要使用DSP?DSP架构和DSP相对于传统模拟电路的优势 DSP与单片机比较 优点:1.更快的处理速度 2.内置高速硬件乘法器?增强的多级流水线(高速的数据运算能力) 3.更大的存储结构  改进的哈弗结构 具有独立的程序和数据空间 什么是DSP? 就是一个微处理器,集合了硬件.软件.以及各种指令,为了实现更快的运算. 信号处理中经常使用.原始信号输进来后,dsp进行处理(滤波.变换或者其他运算),然后输出作为其他的使用. 典型的 DSP系统应包括 数学计算单元 ,内存管理单元,并

DSP+ARM+FPGA核心板

  版权声明 阅前须知 本手册版权归属广州创龙电子科技有限公司所有,非经书面同意,任何单位及个人不得擅自摘录本手册部分或全部,违者我们将追究其法律责任.本文档一切解释权归广州创龙电子科技有限公司所有. 2014-2018 GuangzhouTronlong Electronic Technology Co.,Ltd. All rights reserved. 公司简介 广州创龙电子科技有限公司(简称"广州创龙",英文简称"Tronlong"),是杰出的嵌入式方案商,

DSP与FPGA通信调试笔记——通过GPMC接口用EDMA传送

硬件:TI达芬奇TMS320DM8168(以下简称DSP).EP4CE6E22C8N(以下简称FPGA) 软件:linux-2.6.37 作者:Aadtech 杭州超距科技 近期项目需要实现DSP与FPGA之间的高速数据交换,用到了DM8168的GPMC接口.这部分的中文资料网上还是比较少的,于是苦苦研究芯片的数据手册和参考指南,最近终于有所成果,在Linux下调用GPMC驱动函数调通了GPMC接口,因此发出调试过程与大家分享.目前以DSP端可以通过GPMC用EDMA的方式读取FPGA端的数据,