EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ARM,DSP,FPGA,cpld,SOPC,SOC之间有什么区别和联系 arm是一种嵌入式芯片,比单片机功能强,可以针对需要增加外设。类似于通用cpu,但是不包括桌面计算机。. k1 f; Z' n0 ^2 X$ R O
' f5 e0 |4 o# B( o# |
DSP主要用来计算,计算功能很强悍,一般嵌入式芯片用来控制,而DSP用来计算,譬如一般手机有一个arm芯片,主要用来跑界面,应用程序,DSP可能有两个,adsp,mdsp,或一个,主要是加密解密,调制解调等。
- S+ b h4 h8 A# [0 Q! E6 o5 l- B3 S+ F a3 B8 C* Y
FPGA和CPLD都是可编程逻辑器件,都可以用VHDL或verilog HDL来编程,一般CPLD使用乘积项技术,粒度粗些;FPGA使用查找表技术,粒度细些,适用触发器较多的逻辑。其实多数时候都忽略它们的差异,
' a5 l; P* X8 {% I- q; W
; f3 l7 L" H0 j' Z4 S* L' q一般在设计ASIC芯片时要用FPGA验证,然后再把VHDL等程序映射为固定的版图,制作ASIC芯片,- N$ r1 c1 T* ]. y
在设计VHDL程序时,有可能要使用C仿真。
! T; e% J4 J% R% D
7 b4 \; Z3 I+ i2 ESOC就是单片系统,主要是器件太多设计复杂,成本高,可靠性差等缺点,所以单片系统是一个发展趋势。
* T6 i0 L! T9 z- Y
$ H. y# x' a2 Q ~0 u3 F' rSOPC就是可编程芯片系统,就是可以用FPGA/CPLD实现一个单片系统,譬如altera的Nios软核处理器嵌入到StraTIx中。 ARM、DSP、FPGA的异同点 ARM (AdvancedRISCMachines) 是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。 DSP (digitalsignalprocessor) 是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。 当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。 FPGA (FieldProgrammableGateArray) FPGA是现场可编程门阵列的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(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主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。 FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。 三种器件各有其优势,所以是谁也没有办法替代谁。主要的竞争在FPGA与DSP,低端CPU之间展开。因为DSP和CPU都是专用集成电路,所以内部时钟频率可以做的很高,密度可以做的很高,特别是CPU,往往都代表了半导体的最新最高工艺。现在PC机上的CPU以GHz为计量单位,而FPGA基本500MHz就封顶了。 DSP是软件实现算法。FPGA是硬件实现算法,所以FPGA的处理速度会更高。FPGA比DSP快的一个重要原因是FPGA可以实现并行运算,而DSP由于硬件结构条件限制,主要还是依靠软件来提取指令执行,理解为还是串行执行的!FPGA可以通过并行处理和流水线,达到比CPU和DSP更高的数据处理能力。而且现在FPGA也内嵌了DSP模块和CPU,可以设计成片上系统。对于对CPU要求不高的单板,只要使用FPGA内的CPU就可以了,不需要另外再贴块CPU芯片了。 FPGA与CPLD的区别系统的比较,与大家共享:
: F, w; e0 I: F: p! `/ n, C4 K& j; G% u
尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:8 Y: O3 n. `" Z! k
①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
+ p5 A+ j5 [; e②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。% N# k2 ^! f$ C, f$ _
$ p8 W/ e3 q# O0 f
③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。
B0 k7 Q$ Y6 R0 H5 i5 ?% H$ F' h+ B" p+ M" L& L, R
④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。) R3 ` r7 b1 K% n+ u' y
l2 @+ T- j9 k! |8 F
⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。& f' ~# y0 e! t5 G
- E' L6 H. S4 w; {% L
⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
$ j" ?4 l) Z/ b9 @# A
& Y4 a" e6 H5 \6 D⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。8 F5 e' M' w/ Y0 F" ]
( F$ W8 ~% ?/ F+ d⑧CPLD保密性好,FPGA保密性差。
+ c4 ?1 ?! W% u) u. ?, x1 V; {% U! l- G0 [( m2 T# N3 B& R% P
⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。6 o3 ~$ t) w7 o0 M( ]; _
% P* F/ J( l2 T" f随著复杂可编程逻辑器件(CPLD)密度的提高,数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市场。许多设计人员已经感受到CPLD容易使用、时序可预测和速度高等优点,然而,在过去由于受到CPLD密度的限制,他们只好转向FPGA和ASIC。现在,设计人员可以体会到密度高达数十万门的CPLD所带来的好处。
1 F4 [0 H; d& u; q. A; c
6 h! V( I C' `, C; XCPLD结构在一个逻辑路径上采用1至16个乘积项,因而大型复杂设计的运行速度可以预测。因此,原有设计的运行可以预测,也很可靠,而且修改设计也很容易。CPLD在本质上很灵活、时序简单、路由性能极好,用户可以改变他们的设计同时保持引脚输出不变。与FPGA相比,CPLD的I/O更多,尺寸更小。
N) Q2 Q, d) J/ [( \! L
2 W% {- a% B# S1 ]如今,通信系统使用很多标准,必须根据客户的需要配置设备以支持不同的标准。CPLD可让设备做出相应的调整以支持多种协议,并随著标准和协议的演变而改变功能。这为系统设计人员带来很大的方便,因为在标准尚未完全成熟之前他们就可以着手进行硬件设计,然后再修改代码以满足最终标准的要求。CPLD的速度和延迟特性比纯软件方案更好,它的NRE费用低于ASIC,更灵活,产品也可以更快入市。CPLD可编程方案的优点如下:
" p" f8 Z. P. o: w: h* {$ O: O+ r" r3 o6 c' f) ]% L) z
●逻辑和存储器资源丰富(Cypress Delta39K200的RAM超过480 Kb)
+ n9 g% S. c' X●带冗余路由资源的灵活时序模型
+ k. F: o( W, a+ p●改变引脚输出很灵活
1 a4 |/ r: i' u# O3 v●可以装在系统上后重新编程
3 M+ z/ @7 s. K●I/O数目多2 w* W7 C2 f- }
●具有可保证性能的集成存储器控制逻辑/ j c- \" ~1 J9 s N Z$ z) \# n
●提供单片CPLD和可编程PHY方案7 G1 N D5 }( T9 u5 g
由于有这些优点,设计建模成本低,可在设计过程的任一阶段添加设计或改变引脚输出,可以很快上市9 O+ ^* M* ^1 K6 B3 i4 X; V
3 ^% R2 T" T, i
CPLD的结构
- g6 e' R- X0 ?6 U# f$ a' I% a! |: d2 a! Y
CPLD是属于粗粒结构的可编程逻辑器件。它具有丰富的逻辑资源(即逻辑门与寄存器的比例高)和高度灵活的路由资源。CPLD的路由是连接在一起的,而FPGA的路由是分割开的。FPGA可能更灵活,但包括很多跳线,因此速度较CPLD慢。; o# a' @! X5 M% S/ l7 }$ T1 y
CPLD以群阵列(array of clusters)的形式排列,由水平和垂直路由通道连接起来。这些路由通道把信号送到器件的引脚上或者传进来,并且把CPLD内部的逻辑群连接起来。
& l1 y) k; q# A9 N( e1 ~' J8 r |