[转]学DSP、FPGA、ARM,哪一个更有前途?

一、这世界真是疯了,貌似有人连FPGA原理是什么都不知道就开始来学习FPGA了。

 二、DSP就是一个指令比较独特的处理器。它虽然是通用处理器,可是实际上不怎么“通用”。技术很牛的人能够用DSP作一台电脑出来跑windows, 而实际上真正这么干的确定是蠢材。用DSP作信号处理,比其余种类的处理器要厉害;用DSP作信号处理以外的事情,却并不见长。并且信号处理的代码通常需 要对算法很精通的人才能真正写好。数据结构里面的时间复杂度和空间复杂度在这里是一把很严酷的尺子。

  三、FPGA只不过披着软件的外 衣,其实是硬件。FPGA内部有两层相对独立的电路。使用者“编码->编译”后生成一个映像,这个映像做用于第一层电路。这层电路之际上就是一个 0,1的开关矩阵,这个开关矩阵用来控制第二层工做电路,将第二层工做电路配置成一个相应的处理器。理论上FPGA能够配置成任何须要的处理器,而实际上 为了尽可能少出bug,FPGA开发都使用已经开发好的“库文件”,也就是把人家能稳定工做的电路图拿过来。所以,对大多数FPGA开发者来讲,FPGA内 部有几个核基本上只能从库文件里面选——除非你有能力本身设计核心内部的电路和核间总线——ram和rom也是用宏来配置,本身只须要改改外部的专用电路 和接线方式等等。甚至外部的专用电路都有库文件,搭个积木就完事了。玩FPGA真正挣钱的人是作积木的人,你原创几个积木而且能申请专利,迫令人家给你交 专利费,那你这辈子能够衣食无忧了。

  四、FPGA区别于ASIC设计属于硬件设计的范畴,ASIC是硬件全定制,FPGA是硬件半定 制。具体来讲:ASIC整个电路都由设计师设计的,用多少资源设计多少资源,通常多用于产品设计。而FPGA资源事先由厂商给定,例如Altera、 Xilinx等都提供不一样系列的FPGA芯片,设计师能够在给定资源下作硬件设计开发。

  五、DSP主要用于处理信号、事先算法,特色是多级流水,能够加快数据处理的速度,开发环境主要是C语言。能够说DSP应用的范围更专。DSP的设计,能够理解为软件设计,设计师不须要太了解DSP的结构。

  六、DSP原意就是指数字信号处理,只不过DSP芯片因为主要功能是实现数字信号处理,实现各类算法,因此简称为DSP(数字信号处理器);FPGA同样能够作DSP(数字信号处理),就意味着能够用FPGA作硬件设计来实现DSP芯片的功能,固然,相比较专业的DSP芯片、成本过高。

  七、如今除了FPGA和DSP以外还有一个近几年热门的产品:ARM。ARM主要应用与手持设备和嵌入式产品,几乎笼罩了90%的市场份额。能够说ARM开发也偏向于软件开发,设计者主要是讲Wince系统或者Linux系统移植到ARM开发平台上,而后作各类软件应用开发。

 因此,这三个方向都有其不一样的应用场合,很难讲谁更有前途。不过,做为我我的而言,更喜欢作硬件设计,因此我选择FPGA做为本身的方向。FPGA主要 是给设计者提供了一个硬件平台,开发的核心仍是须要独立的应用设计和高效的算法设计。因此设计者应该处理好工具的掌握和具体设计的区别。

  各自特色:

  FPGA:并行处理,内部资源多。

  DSP:成本低、低功耗、高性能的处理能力。具备强大的外部通讯接口(SCI,SPI,CAN)便于构成大的控制系统。

  特色:

      (1)在一个指令周期内可完成一次乘法和一次加法;
  (2)程序和数据空间分开,能够同时访问指令和数据;
  (3)片内具备快速RAM,一般可经过独立的数据总线在两块中同时访问;
  (4)具备低开销或无开销循环及跳转的硬件支持;
  (5)快速的中断处理和硬件I/O支持;
  (6)具备在单周期内操做的多个硬件地址产生器;
  (7)能够并行执行多个操做;
  (8)支持流水线操做,使取指、译码和执行等操做能够重叠执行。算法

 

  本人认为FPGA更 有前途!DSP其实只是个特殊的处理器,有专用的硬件乘法器,有桶形移位器能够把数据从存储器移到ALU,还有流水线等技术。但FPGA一样能够完成这些 功能,而且FPGA是并行工做的,如今不少FPGA内部可使用软DSP或者硬核的DSP,当你的项目须要时序很严格的状况非FPGA莫属。好比说用 DSP和USB芯 片CY68013进行FIFO(同步传送)数据时,IFCLK能够是外部或内部,USB芯片在(IFCONFIG的IFCLKSRC里配置)。若是 IFCLK使用内部的状况下,DSP根本没法知道我把数据送到FIFO数据端口后USB芯片内部时钟过了多少周期,但FPGA就能够,由于FPGA的时钟 取自于USB芯片的48M输出,在FPGA内部作一个状态机,当数据送到USB芯片的FIFO数据端口时,下一状态把SLWR拉低,再下一状态拉高,就等 于USB内部过了一周期,数据就写进USB芯片内部的FIFO了,我只是举个简单的例子,不少关于时序的案例非FPGA莫属,DSP作算法快速,成 熟,FPGA更有挑战,据个人经验,FPGA如今内部起码有不少核是能够用的,这像一个可配置的单片机,不用的我就不放进项目。以ACTEL的FPGA来 说,用的比较多的软核是:Core8051S、CoreABC、微处理器软核,特别说明CoreABC占用的空间很是少,能够裁减指令,能够配置数据宽度 8,16,32,有1组通用输入端口和输出端口,可配置堆栈。有CoreDES,CoreAES128,CoreFROM,CoreI2C,CoreGPIO,CoreInterrupt,CoreLPC,CoreSDR,CoreUART, 还有不少不少,看这些名字,不少人都知道干什么用的。windows

 

来源:电子产品世界网数据结构

相关文章
相关标签/搜索