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

 2、DSP就是一个指令比较独特的处理器。它虽然是通用处理器,但是实际上不怎么“通用”。技术很牛的人可以用DSP做一台电脑出来跑windows,

而实际上真正这么干的肯定是蠢材。用DSP做信号处理,比其他种类的处理器要厉害;用DSP做信号处理之外的事情,却并不见长。而且信号处理的代码一般需
要对算法很精通的人才能真正写好。数据结构里面的时间复杂度和空间复杂度在这里是一把很严酷的尺子。

  3、FPGA只不过披着软件的外
衣,实际上是硬件。FPGA内部有两层相对独立的电路。使用者“编码->编译”后生成一个映像,这个映像作用于第一层电路。这层电路之际上就是一个

0,1的开关矩阵,这个开关矩阵用来控制第二层工作电路,将第二层工作电路配置成一个相应的处理器。理论上FPGA可以配置成任何需要的处理器,而实际上

为了尽量少出bug,FPGA开发都使用已经开发好的“库文件”,也就是把人家能稳定工作的电路图拿过来。因此,对大多数FPGA开发者来说,FPGA内

部有几个核基本上只能从库文件里面选——除非你有能力自己设计核心内部的电路和核间总线——ram和rom也是用宏来配置,自己只需要改改外部的专用电路

和接线方式等等。甚至外部的专用电路都有库文件,搭个积木就完事了。玩FPGA真正挣钱的人是做积木的人,你原创几个积木并且能申请专利,迫使人家给你交
专利费,那你这辈子可以衣食无忧了。

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

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

  6、DSP原意就是指数字信号处理,只不过DSP芯片由于主要功能是实现数字信号处理,实现各种算法,所以简称为DSP(数字信号处理器);FPGA一样可以做DSP(数字信号处理),就意味着可以用FPGA做硬件设计来实现DSP芯片的功能,当然,相比较专业的DSP芯片、成本太高。

  7、现在除了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,
还有很多很多,看这些名字,很多人都知道干什么用的。

来源:电子产品世界网

[转]学DSP、FPGA、ARM,哪个更有前途?的更多相关文章

  1. FPGA+ARM or FPGA+DSP?

    网上有人说.现在的FPGA,ARM功能已经强大到无需DSP协助处理了,未来DSP会不会消声灭迹?是DSP取代FPGA和ARM,还是ARM,FPGA取代DSP呢?担心好不容易学精了DSP,结果DSP变成 ...

  2. 深入了解DSP与ARM的区别与联系

    http://www.eeboard.com/bbs/thread-25219-1-1.html ARM微处理器的体系结构 了解DSP的体系结构 深入了解DSP与ARM的区别与联系 2011-09-3 ...

  3. 学DSP(一):开始

    DSP有digital signal process 和 digital signal processor 2个意思,数字信号处理和数字信号处理器,我这里就是学数字信号处理器了. 我为什么要学DSP, ...

  4. 嵌入式驱动开发之dsp fpga通信接口---spi串行外围接口、emif sram接口

    -----------------------------------------author:pkf ------------------------------------------------ ...

  5. Dsp和ARM的区别

    有一次上课老师在将ARM的时候说到了Dsp. Dsp(Digital Signal Process),数字信号处理技术,而Dsp芯片和ARM的结构也有很多相似之处.比如有流水线.采用哈佛结构(早期的A ...

  6. Java和PHP哪个方向更有前途?

      Java和PHP到底哪个方向更有前途呢?我从网络上收集了很多资料,并在这篇文章中做了总结.   1.TIOBE语言排行榜 Apr 2014 Apr 2013 Change Programming ...

  7. 5G vs AI谁更有前途?

    5G vs AI谁更有前途? 5G通信技术和AI人工智能技术是两个不同层面的技术领域,而它们两者都将在未来20年内对世界的发展有着革命性和里程碑式的影响.未来5G和AI谁更有前途呢? 5G技术的发展和 ...

  8. 单片机与嵌入式 以及ARM DSP FPGA 几个概念的理解

    嵌入式设备一般要满足实时性的要求,而实时性是要求数据输入和输出的延时满足一定的要求.当然嵌入式一般都便携性都比PC要好,功能没有PC多,PC是通用,他是专用,一般只专注某些功能的实现,比如DSP专注数 ...

  9. manifold 微分流形上可以定义可微函数、切向量、切向量场、各种张量场等对象并建立其上的分析学,并可以赋予更复杂的几何结构以研究它们的性质。

    小结: 1.流形(英语:Manifolds)一般可以通过把许多平直的片折弯并粘连而成,是局部具有欧几里得空间性质的空间,是欧几里得空间中的曲线.曲面等概念的推广 2.描述一个流形往往需要不止一个“地图 ...

随机推荐

  1. 通过布局文件来显示ListView内容并注册 ListView事件

    1:layout/vlist.xml是我们的布局文件,在这里一定要对首节点加上 android:descendantFocusability="blocksDescendants" ...

  2. Powershell 条件操作符

    Powershell 中的比较运算符-eq :等于-ne :不等于-gt :大于-ge :大于等于-lt :小于-le :小于等于-contains :包含-notcontains :不包含 进行比较 ...

  3. baike并行计算概念

    并行计算 概论 ▪ 高性能计算 ▪ 计算机集群 ▪ 分布式计算 ▪ 网格计算 ▪ 云端运算         方式 ▪ Bit-level parallelism ▪ Instruction level ...

  4. 浅谈JVM内存区域划分

    好吧,虽说真的有看过<深入分析Java Web技术内幕>一书,但当时看的时候还是一知半解,稀里糊涂的看完了.本来是打算暑假拿起来再看一遍的,但是早两天一个阿里学长给我做了个小面试,让我颇受 ...

  5. Bubble Sort 冒泡排序

    //Bubble Sort ( O(n²)) public class TestBubbleSort { public int[] bubbleSortArray(int[] arr){ ; i &l ...

  6. Linux下的文件查找类命令(转载)

    如何快速有效的定位文件系统内所需要查找的文件呢?Linux为我们提供了一些文件查找类的命令,我们需要掌握以下几个命令: http://blog.csdn.net/sailor201211/articl ...

  7. JAVA并发实现五(生产者和消费者模式Condition方式实现)

    package com.subject01; import java.util.PriorityQueue; import java.util.concurrent.locks.Condition; ...

  8. http2.0 相对于 http1.1的优势

    1.http2.0完全是多路复用的,只需一个连接就可实现并行 可以将不同的请求夹杂在一起,只需一个连接就能加载一个页面. 2.可以让服务器将响应主动推动到客户端缓存中 当浏览器请求一个网页时,服务器除 ...

  9. Maven .m2 setting.xml配置

    settings.xml <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="h ...

  10. Direct3D 11的资源

    资源(Resource) 如果把渲染流水线比喻成汽车装配线,资源就是流水线上需要输入的东西. 资源可分为两类:Textures(纹理)和Buffers(缓冲区). Textures可以简单地分为1维, ...