目录

ARM

DSP

FPGA

ARM vs DSP

ARM vs FPGA

FPGA vs DSP


ARM

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。

DSP

DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:

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

(2)程序和数据空间分开,可以同时访问指令和数据;

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

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

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

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

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

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

当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

 

FPGA

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的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。

ARM vs DSP

1) ARM是32位的;DSP有16位的,也有更高的。 (2).所有说从运算能力上看,C51最弱,DSP最强,ARM居中。 (3). DSP频率很高(高的达到300MHz 以上),所以功耗大。ARM芯片面积也很小,ARM7是0.55平方毫米,功耗也比较小。频率大约在(几十到200MHz之间) (4).DSP则主要应用于需要进行复杂计算的高端系统,例如图像处理,加密解密,导航系统等,外围module一般较少。 RM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理一般说来,ARM的功耗小,适合于对功耗要求比较苛刻的地方,而DSP功耗较大。你不能假设他们主频相同然后比较优劣,因为两者的主频一般并不相同。ARM的优点不在于主频,而在于片上外设比较丰富,接口多种多样,适合于各种嵌入式系统。DSP当然就是以速度高为优点,用途比较专。

ARM vs FPGA

arm 和 fpga有以下四方面的区别

(1)概念上

ARM是应用,FPGA是芯片设计,前者是软件,后面是硬件,ARM就像单片机,但是它本身的资源是生产厂家固定了的,可以把它看成一个比较优秀的单片机来使用。

而 FPGA 需要通过自己编程,让它具备一切你想让他具备的功能。比如,你想让它是一个计数器,或者只是一个非门,那么这个芯片就是一个非门,只不过是个很昂贵的非门。你也可以在一款内部资源充分的FPGA 上,让这颗FPGA 成为ARM芯片,并且加上你想要加上的外设,比如网络,内存控制,LCD,等等,只要资源够用!

(2)从意义上

ARM是可以是一种处理器,利用ARM架构体系的处理器,里面整合了很多现成的硬件资源供你编程调用。比如运算器、串口、usb接口等各种现成硬件。可以通过中断、或者DMA的方式直接操控硬件来实现某些功能。

FPGA,是一个里面没有任何现成的硬件,需要你自己进行设计,比如你可以设计一个ARM CPU或者专门的运算器、串口电路等然后下载到里面。这个硬件是需要你自己设计的,用verilog 或vhdl语言进行设计。

(3)功能上

ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,而DSP主要是用来计算的,比如进行加密解 密、调制解调等,优势是强大的数据处理能力和较高的运行速度。

FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、 再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。

(4)用途上

FPGA可以用作设计CPU的周边电路或者直接设计CPU本身。比如你想设计一个自己的CPU或者是其他的硬件电路。

而ARM一般当做微控制器或者嵌入式操作系统CPU来使用,和你的电脑的CPU道理一样。你使用电脑的硬件资源的时候,不需要你去自己设计硬件吧。通过编写的程序控制CPU可以直接使用现成的硬件资源了。相对于省事的多。

FPGA vs DSP

(1)硬件层面的不同。

在硬件层面,DSP是ASIC,如同CPU GPU一样,适宜于量产降低成本,缺点是(硬件)设计一旦确定,便不易于修改。而FPGA较灵活,可以通过硬件描述语言进行快速设计和改进,但成本较高,传统上讲用于ASIC的prototype设计。

(2)软件层面的不同。

在软件层面上,给DSP写程序和给多核CPU写程序,给GPU写程序,没有太大区别,DSP有完善的C语言编译器。目前高端的FPGA中都集成了硬核DSP。

 

(3)编程语言不同。

FPGA主要使用HDL,包括VHDl,Verilog,还有数模混合的描述语言Verilog-AMS等。DSP使用C,汇编语言编程。

(4) 功能角度不同。

FPGA普遍用于实现数字电路模块,基本上能实现所有的数字电路,传统的数字功能模块,以及客户产品特定需求的数字处理模块。FPGA的IO桥接种类繁多,不同种类的级别的FPGA支持的IO标准和协议都不尽相同,但是这些IO的驱动能力或是电压都是可编程配置的。