标题:ARM、DSP、FPGA的技术特点和区别
ARM、
DSP、
FPGA的技术特点和区别
对于刚刚进入电子世界的朋友,看到那么多处理器都很迷惑。不是很清楚。他们到底有什么区别呢?
以后工作了,应该认识会深一些,下面的说明是我在网上找到的。希望对刚刚入门的朋友有所收获。
ARM、
DSP、
FPGA的技术特点和区别
区别是什么?:
ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,而
DSP主要是用来计算的,比如进行加密解
密、调制解调等,优势是强大的数据处理能力和较高的运行速度。
FPGA可以用
VHDL或
verilogHDL来编程,灵活性强,由于能够进行编程、除错、
再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出
FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这 种能力可以用来进行系统升级或除错。
ARM(
Advanced RISC
Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的
RISC处理器、相关技术及软 件。
ARM架构是面向低预算市场设计的第一款
RISC微处理器,基本是
32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四
个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前
ARM在手持设备
市场占有
90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。
DSP(
digital singnal
processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数
字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外
部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。
DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的
空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度
。另外还允许在程 序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为
0或
1的数字信号,再对数字信号进行修改、删除、强化,并在其
他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,
是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特 {MOD}。由于它运算能力很强,速度很快,体积很小,而且采用
软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,
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的
XC系列、
TI公司的
TPC系列、
ALTERA公司的
FIEX系列等
这三者有重叠,也有互补。
ARM和DSP开发都可以基于C或者汇编,很多指令都是类似的,当然也有一些专用指令,如DSP里有FIR指令。
C是通用语言,所以C算法既可以在DSP上跑又可以在ARM上跑,基于C的操作系统(如ucos-2)既可以在ARM上用也可以移植到DSP上。
ARM和DSP外设都很丰富,可以扩展外部存储器,以及各种总线接口I2C,USB,CAN,SPI,UART等。
在一般情况下,只用DSP或只用ARM,必要时配合FPGA就能完成一个系统。
FPGA是ARM和DSP的扩展。通过FPGA可以灵活地选择不同信号通路,或实现缓冲机制。
如果不用FPGA,会提高PCB布线难度,并且布线长度不一致对信号完整性造成影响。
在一些采集系统中,利用FPGA可以很方便地实现多路同步采集存储,避免了多路开关造成的相位延迟。
FPGA设计不同于C语言。关键是“并行”,多个模块同时运行,提高了效率,同时引入了竞争,需要合理安排,统筹规划。
高端的FPGA可以做片上系统,直接内部生成一个ARM核或DSP核,这样避免了外部硬件连接引起的信号延迟,大大提高了传输速度
本文引用通告地址:
http://cumt04071770.spaces.eepw.com.cn/articles/trackback/item/89929