这世界真是疯了,貌似有人连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,还有许多许多,看这些名字,许多人都晓得干什么用的。
关于DPS,FPGA,AME你如何对待呢?哪一个是你的最爱?
郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。