0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

初学者爱问这个问题,FPGA到底能做什么?

m3eY_edn_china 来源:未知 作者:李倩 2018-03-09 14:19 次阅读

初学者爱问这个问题,我的新书中会告诉你:逻辑粘合是FPGA早期的任务,实时控制让FPGA变得有用武之地,FPGA实现的各种协议灵活度很高,信号处理让FPGA越来越高端,片上系统让FPGA取代一切……

但是,特权很纠结,一直在问自己“FPGA到底能做什么”。事情源于要启动的DVR项目,视频搞定了,也显示了,下一步要存储,传输带宽和存储容量放出话来了“必须要压缩”。那么,图片要JPEG,视频要H.264。各种方案虽然只是初步的了解一些,但是发现这方面虽然有类似SOPC概念的海思TI双核解决方案,而且是专门干这个的,不过发现这玩意是有门槛的,用我们经理的一句话是“一般人搞不定”,成本不仅仅是money的问题,还有工程师熟悉一个新的高复杂度的开发环境的时间和精力投入。那么退而求其次,貌似一个DSP也很难搞定,市场上常见的是DSP+FPGA,或者也有一些专用的ASIC能够胜任诸如H.264的编码,不过看看芯片价格只能用“死贵死贵”来形容了。

折衷下来,上午我还寻思着就再来一个DSP吧,也看好了ADI的blackfin,准备下一步慢慢筹备我的DSP之旅。但是,也许这几天一直萦绕在我脑子里的问题越发强烈起来“FPGA到底能做什么”。很显然,如果要在通用控制器或处理器和FPGA之间做一些比较,特权会很快的送上图1和图2(图3)。

图1基于控制器或处理器的一般处理流程

图2基于FPGA的并行处理流程

图3基于FPGA的流水线处理流程

很显然,图1中的一般控制器或处理器由于软件固有的顺序特性,决定了它的工作必须是按部就班,一个输出的4个步骤完成才能接着开始下一个输出的4个步骤,那么它完成4个输出就需要20个步骤单位时间(假定输出也算一个步骤,一个输出需要5个步骤)。虽然现在很多的DSP中也带有功能强大的硬件加速引擎,如简单搬运数据的DMA等,但是它所做的工作量,或者说和软件并行执行的工作量其实是很局限的,这里说的局限是指他的灵活性上很差,协调性不够好也会让处理速度大打折扣。

而反观图2和图3的FPGA处理,先说图2,并行处理方式很好很强大,是前面的软件处理速度的4倍。并行是FPGA最大的优势,只不过需要用大量的资源来换速度,通俗的说就是要用大量的money换性能,我想这并不是人人都能够承受的解决方案。而看图3,是一个不错的折衷方案,流水线处理是FPGA乃至整个信号处理领域最经典的一种方法。能够在基本不消减处理速度的前提下只用了并行处理方法的1/4资源就完成任务了。

那么话题回到JPEG和H.264的压缩上来,其实FPGA足以胜任,网络上一搜一箩筐这样的解决方案。其实退一万步来讲,算法再复杂,实时性要求再高,FPGA都是足以胜任的,尤其是采用流水线方法,也许第一个数据输出的时间需要很长(一般系统是许可的),但是这并不妨碍后续数据的实时输出。我想,这就是成本(器件资源)和性能最好的折衷办法。

那么,这些复杂的算法中无外乎存储和运算。实时处理中的存储其实很大程度上是要依赖器件的片内存储器资源的,外扩的存储器无论从复杂度和速度上都会只会减低处理性能。加减乘除好办,内嵌的乘法器或是各种各样专用的DSP处理单元就能搞定;但是开方求幂等比较无奈的运算就只能靠查表来解决了。

如此这般下来,其实FPGA就是要干这个的——算法,越是大家搞不定的问题我FPGA统统不在话下。话说到这,发现不对劲,有人要拍砖了。其实真没有FPGA干不了的活,但是有FPGA不适合干的活,个人认为那些顺序性很强的活,比如文件系统那种很折腾的活,就算简单的SD卡文件系统的管理也是要不停的折腾,数据这里读那里写的,FPGA代码就很难写,一个偌大的状态机也许能够解决问题,但是很容易让设计者深陷其中晕头转向。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7657

    浏览量

    343810
  • FPGA
    +关注

    关注

    1590

    文章

    21140

    浏览量

    591880

原文标题:FPGA到底能做什么?

文章出处:【微信号:edn-china,微信公众号:EDN电子技术设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA牛人给FPGA初学者入门留下的几点心得体会

    电子发烧友网讯: 最近有很多FPGA初学者在论坛里咨询,FPGA初学者应该从哪里开始学起呢?为此,我找了多名做FPGA相关工作的的前辈请教,
    发表于 09-13 15:46 4481次阅读

    FPGA到底能做什么

    初学者问这个问题,我的新书中会告诉你:逻辑粘合是FPGA早期的任务,实时控制让FPGA变得有用武之地,
    发表于 03-16 17:14

    FPGA介绍?初学者到底该如何学习FPGA呢?

    也有7万多,而中国内地仅有1万左右,可见中国渴望有更多的FPGA人才涌现出来。如何学习FPGAFPGA对我们如此重要,那么对于初学者来说,到底
    发表于 08-26 18:08

    如何破解FPGA初学者纠结的仿真?

    对于FPGA初学者而言,如何正确了解并理解FPGA的仿真是关键。应广大FPGA初学者和爱好者要求,电子发烧友网编辑根据多名在
    发表于 05-13 07:00

    初学者到底学习哪个系列单片机

    写给初学者的一些话本文原创,仅代表我搞单片机的一些想法,有不妥之处,不承担任何责任。第一个问题,讲一下初学者到底学习那个系列单片机。51、AVR、430、ARM(包括嵌入操作系统)、FPGA
    发表于 11-23 06:58

    初学者到底学习那个系列单片机?

    常见的单片机学习问答,初学者最关心的一些问题:1. 初学者到底学习那个系列单片机?  51、AVR、MSP430、PIC、ARM、FPGA当前嵌入式平台如此丰富,对于新手
    发表于 11-24 06:19

    电子初学者电路图如何看

    电子初学者的指南,介绍了好些东西,都是最基础的。适合于初学者
    发表于 11-23 12:05 0次下载

    从51初学者到电子工程师

    51初学者的学习指导,对51初学者是个很好的入门教程,
    发表于 02-23 15:53 0次下载

    初学者的avr基础教程

    初学者的avr基础教程
    发表于 09-21 08:45 14次下载

    初学者边用边学C语言

    初学者边用边学C语言
    发表于 09-22 10:14 16次下载
    <b class='flag-5'>初学者</b>边用边学C语言

    PSOC1初学者5个实验,针对初学者的实验

    PSOC1初学者5个实验,针对初学者的实验
    发表于 10-16 09:33 14次下载
    PSOC1<b class='flag-5'>初学者</b>5个实验,针对<b class='flag-5'>初学者</b>的实验

    linux初学者入门

    linux初学者入门
    发表于 10-27 14:34 13次下载
    linux<b class='flag-5'>初学者</b>入门

    FPGA初学者的入门之道

    很多FPGA初学者,都会怀疑学习FPGA有没有前途,发展前景怎么样,到底该怎样学习FPGA???各种迷茫,导致无法踏踏实实、全身心投入
    的头像 发表于 03-15 17:25 2380次阅读

    fpga开发板推荐初学者

    对于一个初学者来说,选择一款适合学习的FPGA是整个FPGA学习生涯的必经之路。我个人建议在选择FPGA的时候,应该抓住如下几个原则:
    的头像 发表于 11-10 14:55 1.8w次阅读

    FPGA初学者必读文档

    FPGA初学者必读文档(嵌入式开发适合哪个城市)-FPGA初学者必读文档,为学习FPGA做好准备。
    发表于 08-04 11:39 32次下载
    <b class='flag-5'>FPGA</b><b class='flag-5'>初学者</b>必读文档