电子说
DSP这几年有点背,逐渐远离主流话题,所以有人就有了这样的问题:DSP会被FPGA取代吗?小编总结了各个网友的回答:
网友一:独立的DSP不会被FPGA替代,但是会被增强了信号处理功能的ARM处理器替代。现在基本已经是这个趋势,DSP变成ARM的一个协处理器。FPGA会挤压掉DSP的一部分高速信号处理的市场。
网友二:在高端领域基本都用FPGA了。通讯、雷达、视觉、航空都是如此。DSP由于性能和灵活性比FPGA差太多,只能往低端领域渗透。说个不中听的话DSP就是贵一点、快一点的单片机,大部分DSP还没目前手机上的多核arm快,你自己实际(注意是实际不是理论)写个算法一测便知。另外DSP的优化也很浪费时间,有这个功夫还不如用gpu了,比DSP不知道快多少倍。性能能和FPGA能拼的只有gpu。但是目前的嵌入式gpu内存带宽和输出延迟严重拖后腿,功耗发热巨高,所以目前FPGA才是嵌入式高端领域的王者。
网友三:DSP只是一种技术,硬件上的DSP,可以说是一种称谓。传统意义上的DSP迟早是要退出江湖的。因为通用架构目前基本已经满足设计需求了。
看来也没什么确切的答案。
片内有大量的逻辑门和触发器,多为查找表结构,实现工艺多为SRAM。规模大,集成度高,处理速度快,执行效率高。能完成复杂的时序逻辑设计,且编程灵活,方便,简单,可多次重复编程。许多FPAG可无限重复编程。利用重新配置可减少硬件的开销。缺点是:掉电后一般会丢失原有逻辑配置;时序难规划;不能处理多事件;不适合条件操作。
1)通信高速接口设计。FPGA可以用来做高速信号处理,一般如果AD采样率高,数据速率高,这时就需要FPGA对数据进行处理,
比如对数据进行抽取滤波,降低数据速率,使信号容易处理,传输,存储。
2)数字信号处理。包括图像处理,雷达信号处理,医学信号处理等。优势是实时性好,用面积换速度,比CPU快的多。
3)更大的并行度。这个主要是通过并发和流水两种技术实现。并发是指重复分配计算资源,使得多个模块之间可以同时独立进行计算。
FPGA的并发可以在不同逻辑功能之间进行,而不局限于同时执行相同的功能。流水是通过将任务分段,段与段之间同时执行。其实这一点和CPU相似,只是CPU是指令间的流水而FPGA是任务间流水或者我们可以说是线程间流水。
利用硬件并行的优势,FPGA打破了顺序执行的模式,在每个时钟周期内完成更多的处理任务,超越了数字信号处理器(DSP)的运算能力。
编程DSP芯片是一种具有特殊结构的微处理器,为了达到快速进行数字信号处理的目的,DSP芯片一般都采用特殊的软硬件结构:
(1)哈佛结构
DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问,每个存储器独立编址,独立访问。这种安排将处理器的数据吞吐率加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。
在哈佛结构中,由于程序和数据存储器在两个分开的空间中,因此取指和执行能完全重叠运行。
(2)流水线
与哈佛结构相关,DSP芯片广泛采用2-6级流水线以减少指令执行时间,从而增强了处理器的处理能力。这可使指令执行能完全重叠,每个指令周期内,不同的指令都处于激活状态。
(3)独立的硬件乘法器
在实现多媒体功能及数字信号处理的系统中,算法的实现和数字滤波都是计算密集型的应用。在这些场合,乘法运算是数字处理的重要组部分,是各种算法实现的基本元素之一。乘法的执行速度越快,DSP处理器的性能越高。相比与一般的处理器需要30-40个指令周期,DSP芯片的特征就是有一个专用的硬件乘法器,乘法可以在一个周期内完成。
(4)特殊的DSP指令
DSP的另一特征是采用特殊的指令,专为数字信号处理中的一些常用算法优化。这些特殊指令为一些典型的数字处理提供加速,可以大幅提高处理器的执行效率。使一些高速系统的实时数据处理成为可能。
(5)独立的DMA总线和控制器
有一组或多组独立的DMA总线,与CPU的程序、数据总线并行工作。在不影响CPU工作的条件下,DMA的速度已经达到800MB/S以上。这在需要大数据量进行交换的场合可以减小CPU的开销,提高数据的吞吐率。提高系统的并行执行能力。
(6)多处理器接口
使多个处理器可以很方便的并行或串行工作以提高处理速度。
(7)JTAG(JointTestActionGroup)标准测试接口(IEEE1149标准接口)。
便于对DSP作片上的在线仿真和多DSP条件下的调试。
(8)快速的指令周期
哈佛结构,流水线操作,专用的硬件乘法器,特殊的DSP指令再加上集成威廉希尔官方网站 的优化设计,可是DSP芯片的指令周期在10ns以下。快速的指令周期可以使DSP芯片能够实时实现许多DSP应用。
总的来说,FPGA与DSP的区别主要是对处理数据速率的区别:
DSP适用于系统较低取样速率、低数据率、多条件操作、处理复杂的多算法任务、使用C语言编程、系统使用浮点。适合于较低采样速率下多条件进程、特别是复杂的多算法任务。
FPAG适用于系统高速取样速率、高数据率、框图方式编程、处理任务固定或重复、使用定点。) 、适合于高速采样频率下,特别是任务比较固定或重复的情况以及试制样机、系统开发的场合。
现在常用的软件无线电平台就是利用FPGA+DSP+ARM的结构,FPGA主要对高速数据进行预处理,降低数据的速率,然后将数据送给DSP,去实现复杂的算法,ARM主要用来做显示控制。
全部0条评论
快来发表一下你的评论吧 !