zhongqian 2008-10-7 23:27
Arm/DSP/FPGA的比较:
[align=left]
[size=12pt][b][/b][/size][/align]
[align=left][size=12pt][b][font=宋体]来源:中嵌网[/font][/b][/size][size=12pt][b][/b][/size][/align]
[align=left][size=10pt]ARM[/size][size=10pt]([/size][size=10pt]Advanced RISC Machines[/size][size=10pt])是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的[/size][size=10pt]RISC[/size][size=10pt]处理器、相关技术及软[/size]
[size=10pt]件。[/size][size=10pt]ARM[/size][size=10pt]架构是面向低预算市场设计的第一款[/size][size=10pt]RISC[/size][size=10pt]微处理器,基本是[/size][size=10pt]32[/size][size=10pt]位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四[/size]
[size=10pt]个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前[/size][size=10pt]ARM[/size][size=10pt]在手持设备[/size]
[size=10pt]市场占有[/size][size=10pt]90[/size][size=10pt]以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]DSP[/size][size=10pt]([/size][size=10pt]digital singnal processor[/size][size=10pt])是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数[/size]
[size=10pt]字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外[/size]
[size=10pt]部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。[/size][size=10pt]DSP[/size][size=10pt]采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的[/size]
[size=10pt]空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度[/size]
[size=10pt]。另外还允许在程[/size]
[size=10pt]序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为[/size][size=10pt]0[/size][size=10pt]或[/size][size=10pt]1[/size][size=10pt]的数字信号,再对数字信号进行修改、删除、强化,并在其[/size]
[size=10pt]他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,[/size]
[size=10pt]是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用[/size]
[size=10pt]软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,[/size][size=10pt]DSP[/size][size=10pt]芯片一般具有如下主要特点:[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]([/size][size=10pt]1[/size][size=10pt])在一个指令周期内可完成一次乘法和一次加法;[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]([/size][size=10pt]2[/size][size=10pt])程序和数据空间分开,可以同时访问指令和数据;[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]([/size][size=10pt]3[/size][size=10pt])片内具有快速[/size][size=10pt]RAM[/size][size=10pt],通常可通过独立的数据总线在两块中同时访问;[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]([/size][size=10pt]4[/size][size=10pt])具有低开销或无开销循环及跳转的硬件支持;[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]([/size][size=10pt]5[/size][size=10pt])快速的中断处理和硬件[/size][size=10pt]I/O[/size][size=10pt]支持;[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]([/size][size=10pt]6[/size][size=10pt])具有在单周期内操作的多个硬件地址产生器;[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]([/size][size=10pt]7[/size][size=10pt])可以并行执行多个操作;[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]([/size][size=10pt]8[/size][size=10pt])支持流水线操作,使取指、译码和执行等操作可以重叠执行。[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]当然,与通用微处理器相比,[/size][size=10pt]DSP[/size][size=10pt]芯片的其他通用功能相对较弱些。[/size]
[size=10pt][/size][/align]
[align=left][size=10pt]FPGA[/size][size=10pt]是英文[/size][size=10pt]Field Programmable Gate Array[/size][size=10pt](现场可编程门阵列)的缩写,它是在[/size][size=10pt]PAL[/size][size=10pt]、[/size][size=10pt]GAL[/size][size=10pt]、[/size][size=10pt]PLD[/size][size=10pt]等可编程器件的基[/size]
[size=10pt]础上进一步发展的产物,是专用集成电路([/size][size=10pt]ASIC[/size][size=10pt])中集成度最高的一种。[/size][size=10pt]FPGA[/size][size=10pt]采用了逻辑单元阵列[/size][size=10pt]LCA[/size][size=10pt]([/size][size=10pt]Logic Cell Array[/size][size=10pt])这样一个[/size]
[size=10pt]新概念,内部包括可配置逻辑模块[/size][size=10pt]CLB[/size][size=10pt]([/size][size=10pt]Configurable Logic Block[/size][size=10pt])、输出输入模块[/size][size=10pt]IOB [/size][size=10pt]([/size][size=10pt]Input Output Block[/size][size=10pt])和内部连线([/size][size=10pt]Interconnect[/size][size=10pt])三个部分。用户可对[/size][size=10pt]FPGA[/size][size=10pt]内部的逻辑模块和[/size][size=10pt]I/O[/size][size=10pt]模块重新配置,以实[/size]
[size=10pt]现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路([/size][size=10pt]ASIC[/size][size=10pt])领域中的一种[/size]
[size=10pt]半定制电路,[/size][size=10pt]FPGA[/size][size=10pt]既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,[/size][size=10pt]FPGA[/size][size=10pt]能完成任何数字器件的功能,上至高[/size]
[size=10pt]性能[/size][size=10pt]CPU,[/size][size=10pt]下至简单的[/size][size=10pt]74[/size][size=10pt]电路,都可以用[/size][size=10pt]FPGA[/size][size=10pt]来实现。[/size][size=10pt]FPGA[/size][size=10pt]如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由[/size]
[size=10pt]的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在[/size][size=10pt]PCB[/size][size=10pt]完成以后,还可以利用[/size][size=10pt]FPGA[/size][size=10pt]的在线修改能力,随时修改设计而不必改动硬件电[/size]
[size=10pt]路。使用[/size][size=10pt]FPGA[/size][size=10pt]来开发数字电路,可以大大缩短设计时间,减少[/size][size=10pt]PCB[/size][size=10pt]面积,提高系统的可靠性。[/size][size=10pt]FPGA[/size][size=10pt]是由存放在片内[/size][size=10pt]RAM[/size][size=10pt]中的程序来设置其工作状态的,[/size]
[size=10pt]因此工作时需要对片内的[/size][size=10pt]RAM[/size][size=10pt]进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,[/size][size=10pt]FPGA[/size][size=10pt]芯片将[/size][size=10pt]EPROM[/size][size=10pt]中数据读入片内编程[/size][size=10pt]RAM [/size][size=10pt]中,配置完成后,[/size][size=10pt]FPGA[/size][size=10pt]进入工作状态。掉电后,[/size][size=10pt]FPGA[/size][size=10pt]恢复成白片,内部逻辑关系消失,因此,[/size][size=10pt]FPGA[/size][size=10pt]能够反复使用。[/size][size=10pt]FPGA[/size][size=10pt]的编程无须专用的[/size][size=10pt]FPGA [/size][size=10pt]编程器,只须用通用的[/size][size=10pt]EPROM[/size][size=10pt]、[/size][size=10pt]PROM[/size][size=10pt]编程器即可。当需要修改[/size][size=10pt]FPGA[/size][size=10pt]功能时,只需换一片[/size][size=10pt]EPROM[/size][size=10pt]即可。这样,同一片[/size][size=10pt]FPGA[/size][size=10pt],不同的编程数据,可[/size]
[size=10pt]以产生不同的电路功能。因此,[/size][size=10pt]FPGA[/size][size=10pt]的使用非常灵活。可以说,[/size][size=10pt]FPGA[/size][size=10pt]芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前[/size][size=10pt]FPGA[/size][size=10pt]的品种很[/size]
[size=10pt]多,有[/size][size=10pt]XILINX[/size][size=10pt]的[/size][size=10pt]XC[/size][size=10pt]系列、[/size][size=10pt]TI[/size][size=10pt]公司的[/size][size=10pt]TPC[/size][size=10pt]系列、[/size][size=10pt]ALTERA[/size][size=10pt]公司的[/size][size=10pt]FIEX[/size][size=10pt]系列等。[/size]
[size=10pt][/size][/align]
[align=left][size=10pt][/size][/align]
[align=left]
[size=10pt][b]区别是什么呢?[/b][/size][size=10pt]ARM[/size][size=10pt]具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,而[/size][size=10pt]DSP[/size][size=10pt]主要是用来计算的,比如进行加密解[/size]
[size=10pt]密、调制解调等,优势是强大的数据处理能力和较高的运行速度。[/size][size=10pt]FPGA[/size][size=10pt]可以用[/size][size=10pt]VHDL[/size][size=10pt]或[/size][size=10pt]verilogHDL[/size][size=10pt]来编程,灵活性强,由于能够进行编程、除错、[/size]
[size=10pt]再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出[/size][size=10pt]FPGA[/size][size=10pt]的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。[/size][size=10pt][/size][/align]
[size=10pt]www.chinaeda.com [/size][size=10pt][/size]