比较ARM,AVR,MSP430,Coldfire,DSP,FPGA
DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,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面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前做FPGA比较领先的有XILINX、ALTERA公司。
ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,
而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。
FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。FPGA目前的趋势是有代替前两者的可能,在FPGA内部置入乘法器和DSP块,就具有高速的DSP处理能力。在FPGA内置入硬核CPU或软核CPU(Xilinx有powerpc硬核的产品,有microblaze软核。Altera有NIOS II软核)就可以成为既有能实现数字逻辑有适应嵌入式开发的综合性器件了。
***********************************************************************************************************************************
dsp-数据处理;cpu-控制;fpga-接口转换
FPGA---通过编程实现电路
DSP--通过编程指导处理单元完成数据处理及控制
CPU嘛,复杂的东东
我觉得fpga就是一种可编程的器件,用它也可以实现DSP或者是cpu只不过可能性能达不到要求.
dsp用作数字信号处理,
而cpu是一种控制器,有许多种,比方说通用的如奔腾,还有单片机等.
cpu是一种电路,而fpga是一种相对于asic的电路实现方法.
在很大程度上dsp与床铺有些类似,都是进行运算处理数据的,内部结构比较复杂,fpga是可以控制的逻辑器件,可以根据需求进行编程。
就工作频率上来说,pc机上的cpu以GHz为计量单位;而你见过哪款fpga芯片的频率超过1GHz的,基本上,目前的500MHz就封顶了。
单片机低速
DSP高速
FPGA超高速
FPGA可编程器件,用户可以根据各自的需要实现接口协议,协议解析,数据处理,控制,优点是用户可随心所欲的编程。
DSP其实就是内部嵌有CPU和一些专用数字处理模块(微引擎,乘法电路)的asic,专用于高速的数据信号处理。但是其主要执行过程还是由软件实现的。
CPU就是毫无疑问的中央处理器了,它根据用户给出的指令,进行它的操作,其实里面的最基本的还是加乘操作。
因为DSP和CPU都是专用集成电路,所以内部时钟频率可以做的很高,密度可以做的很高,特别是CPU,往往都代表了半导体的最新最高工艺。FPGA虽然在执行频率上没有DSP和CPU那么高,工艺可能也没有那么先进,但是FPGA可以通过并行处理和流水线,达到比CPU和DSP更高的数据处理能力。而且现在FPGA也内嵌了DSP模块和CPU,可以设计成片上系统。对于对CPU要求不高的单板,只要使用FPGA内的CPU就可以了,不需要另外再贴块CPU芯片了。因为三种器件各有其优势,所以是谁也没有办法替代谁。主要的竞争在FPGA与DSP,低端CPU之间展开。
DSP是软件实现算法
FPGA是硬件实现算法,所以FPGA的处理速度会更高
FPGA比DSP快的一个重要原因是FPGA可以实现并行运算,而DSP由于硬件结构条件限制,主要还是依靠软件来提取指令执行,理解为还是串行执行
http://group.ednchina.com/619/8191.aspx?page=1
http://bbs.lierda.com/showthread.php?p=64175#post64175
http://www.dzsc.com/dzbbs/20061110/200765191126796347.html
评论