分享

FPGA、单片机、DSP、ASIC的区别 | Hello world!小组 | 果壳网 科技有意思

 毛豆1111 2015-02-27

工科学生,电子系,但是可耻的还是没搞清楚他们的用途区别。。。

ASIC是专用集成电路设计,FPGA是可编程逻辑阵列,DSP和单片机(MCU?)是不是有点像?
这四个我只接触过FPGA,就是自己布置逻辑单元,可以使用IP核,最后下到开发板验证。
现在我想问:如果我要实现一个电子系统,这四个方案有什么区别?

鉴于天朝的本科其实没讲什么东西,所以到现在没搞清。。。

评论 (19) 只看楼主

热门评论

  • 2012-05-14 09:59 snowmark-zhang 电子信息硕士,高校教师,奶爸

    这么说吧,ASIC原本就是专门为某一项功能开发的专用集成芯片,比如你看摄像头里面的芯片,小小的一片,集成度很低,成本很低,可是够用了。一个山寨摄像头卖才卖30块,买一片ARM多少钱?后来ASIC发展了一些,称为半定制专用集成电路,相对来说更接近FPGA,甚至在某些地方,ASIC就是个大概念,FPGA属于ASIC之下的一部分。

    FPGA基本就是高端的CPLD,两者非常接近。我现在用的是ALTERA DE2开发板的CYCLONE系列FPGA。这种器件是用逻辑门来表述性能的。本身他就是一堆的逻辑门,通过硬件描述语言,比如verilogHDL把它转成电路连接,从最基本的逻辑门层面上连接成电路(参见数字电路书上那些全加器触发器什么的)。应该说,虽然看起来像一块CPU,其实是完全硬件实现的。后来因为写代码麻烦,对控制部分比较薄弱,本来跟其他CPU配合使用,即麻烦的算法CPU提交给FPGA,FPGA算完把结果再返回给CPU。可是这样外围电路就变得麻烦。于是提出了SOC设计方法,就是直接在FPGA里写一个CPU出来,既然FPGA万能,做个CPU自然毫无压力。这其中还有软核和硬核的区别,不过除了性能,使用方法大同小异。所谓IP核,就是把各种专用集成电路用硬件描述语言描述,然后烧到FPGA里形成专门的电路,这样就不必另外搭芯片了,所有的电路在一片FPGA里面形成。

    DSP实际应该称为DSPs,即用于DSP处理的专用芯片。跟普通计算机的区别一方面是他是哈佛结构的,也就是数据和程序空间分开。(普通计算机是冯诺依曼结构)另一方面他有流水线结构,不过现在其他也有了,见贤思齐。再一方面他有专用的硬件算法电路,用以完成DSP运算,比如最基本的乘法累加。上过DSP的就知道,蝶形算法FFT什么的,拆成最基本单元就是乘法累加,把这部分加速了,整体性能就有非常大的提高。DSP对于流媒体的处理能力远远的优于通用CPU。所以你看现在手机CPU,至少语音部分都是用DSP的。后来DSP概念也复杂化,各家都把一个控制核心整合到DSP里面,比如现在的智能手机芯片。可以看一下高通或者TI的片,基本是一个ARM核控制整体运算,一个DSP处理语音编解码,一个GPU负责图像运算,一个基带和天线处理模块负责通信,再加一些七七八八的东东比如GPS模块什么的。

    单片机就是一个百搭的通用CPU,提供各种接口来对整体进行控制,相当一个总调度,当然,简单的功能一片CPU独立工作也就完成了。原来的51系列就是一堆IO口,后来慢慢的把常用的PWM,AD之类的功能加入了单片机。主要包括用了无数年仍然牛逼各大学必教的51系列,还有AVR,PIC,ARM,HOTEK……其实ARM9以后,已经说不清ARM算哪类了,目前的架构来看,更接近DSP。

    总之,现在各种东西都取长补短大融合,所以只要选择自己需要用的就好,没必要强求分类。

    [4] |

全部评论

  • 1楼
    2011-09-20 15:10 飞羽86 (楼主)

    另外DSP上的操作系统是什么?每个公司不一样?

    [0] |
  • 2楼
    2011-09-20 15:20 Doubledoors

    FPGA优势在于并行运算, 算矩阵什么的吧 是一种通用的架构 所以做出来的东西性能一般
    (用到并行的地方会有优势)

    ASIC是专门用途的电路,比如说智能手机里的芯片。对要实现的功能在硬件上进行高度优化,在专业用途的性能上FPGA不能与其相提并论

    DSP算浮点快 常用于AD转换 高保真放大什么的

    单片机架构不同,有用ARM的,有用8051的等等 现在单片机支持很多接口了 以太网,无线,USB,蓝牙什么的

    [0] |
  • 4楼
    2012-05-11 18:37 NetCharm

    本质上没有什么区别, 只是因为其各有特性而适用面不同, 逻辑功能上基本可以互相转换. 比如FPGA做的原型如果要求大量生产而且提高执行效率那就可以转成ASIC, DSP可以简单看成为浮点优化的处理器(当然实际比这个复杂), 现代的单片机也可以看成为通用核心+预定义常规外设的ASIC...

    [0] |
  • 5楼
    2012-05-14 09:59 snowmark-zhang 电子信息硕士,高校教师,奶爸

    这么说吧,ASIC原本就是专门为某一项功能开发的专用集成芯片,比如你看摄像头里面的芯片,小小的一片,集成度很低,成本很低,可是够用了。一个山寨摄像头卖才卖30块,买一片ARM多少钱?后来ASIC发展了一些,称为半定制专用集成电路,相对来说更接近FPGA,甚至在某些地方,ASIC就是个大概念,FPGA属于ASIC之下的一部分。

    FPGA基本就是高端的CPLD,两者非常接近。我现在用的是ALTERA DE2开发板的CYCLONE系列FPGA。这种器件是用逻辑门来表述性能的。本身他就是一堆的逻辑门,通过硬件描述语言,比如verilogHDL把它转成电路连接,从最基本的逻辑门层面上连接成电路(参见数字电路书上那些全加器触发器什么的)。应该说,虽然看起来像一块CPU,其实是完全硬件实现的。后来因为写代码麻烦,对控制部分比较薄弱,本来跟其他CPU配合使用,即麻烦的算法CPU提交给FPGA,FPGA算完把结果再返回给CPU。可是这样外围电路就变得麻烦。于是提出了SOC设计方法,就是直接在FPGA里写一个CPU出来,既然FPGA万能,做个CPU自然毫无压力。这其中还有软核和硬核的区别,不过除了性能,使用方法大同小异。所谓IP核,就是把各种专用集成电路用硬件描述语言描述,然后烧到FPGA里形成专门的电路,这样就不必另外搭芯片了,所有的电路在一片FPGA里面形成。

    DSP实际应该称为DSPs,即用于DSP处理的专用芯片。跟普通计算机的区别一方面是他是哈佛结构的,也就是数据和程序空间分开。(普通计算机是冯诺依曼结构)另一方面他有流水线结构,不过现在其他也有了,见贤思齐。再一方面他有专用的硬件算法电路,用以完成DSP运算,比如最基本的乘法累加。上过DSP的就知道,蝶形算法FFT什么的,拆成最基本单元就是乘法累加,把这部分加速了,整体性能就有非常大的提高。DSP对于流媒体的处理能力远远的优于通用CPU。所以你看现在手机CPU,至少语音部分都是用DSP的。后来DSP概念也复杂化,各家都把一个控制核心整合到DSP里面,比如现在的智能手机芯片。可以看一下高通或者TI的片,基本是一个ARM核控制整体运算,一个DSP处理语音编解码,一个GPU负责图像运算,一个基带和天线处理模块负责通信,再加一些七七八八的东东比如GPS模块什么的。

    单片机就是一个百搭的通用CPU,提供各种接口来对整体进行控制,相当一个总调度,当然,简单的功能一片CPU独立工作也就完成了。原来的51系列就是一堆IO口,后来慢慢的把常用的PWM,AD之类的功能加入了单片机。主要包括用了无数年仍然牛逼各大学必教的51系列,还有AVR,PIC,ARM,HOTEK……其实ARM9以后,已经说不清ARM算哪类了,目前的架构来看,更接近DSP。

    总之,现在各种东西都取长补短大融合,所以只要选择自己需要用的就好,没必要强求分类。

    [4] |
  • 6楼
  • 7楼
    2013-02-08 10:43 我就是二宝

    FPGA是可编程阵列,多采用查找表结构,这时和CPLD最大的区别。。。能用FPGA实现各种AISC、DSP和单片机

    ASIC就是专用IC,没有明确的定义。可以理解为除了单片机、DSP、FPGA之类的能叫出类目的IC,剩下的都是ASIC。

    DSP是一类特殊的CPU,主要特点是能在一个时钟周期完成一次乘加,因此适合信号处理用。

    单片机就是一个简单的CPU,和通用处理器没明确界限,认为他简单,就可以叫单片机。。。不过都是单核。。。

    [0] |
  • 8楼
    2013-02-08 10:46 我就是二宝
    引用@飞羽86 的话:另外DSP上的操作系统是什么?每个公司不一样?

    DSP实际上也可以作为普通CPU或者单片机使用,因此上面玩什么操作系统取决于具体的设计。

    如果能拿到windows的源码,你在dsp上跑温七温八都没问题。

    [0] |
  • 9楼
    2013-02-15 11:37 馍夹饼子

    DSP不是 软件无线电吗?

    [0] |
  • 10楼
    2013-04-19 22:48 mishung
    引用@馍夹饼子 的话:DSP不是 软件无线电吗?


    SDR才是software define radio

    [0] |
  • 11楼
    2013-04-19 22:51 mishung
    引用@snowmark-zhang 的话:么说吧,ASIC原本就是专门为某一项功能开发的专用集成芯片,比如你看摄像头里面的芯片,小小的一片,集成度很低,成本很低,可是够用了。一个山寨摄像头卖才卖30块,买一片ARM多少钱?后来ASIC发展了...

    摄像头和arm都不算是ASIC
    ASIC主要是指的专用芯片,例如很多厂家提供设计好ASIC门阵列,但是上面的引线层的设计可以根据客户设计而定义从而实现自定义逻辑,这类算是ASIC主要指代的。

    [0] |
  • 12楼
    2013-04-20 17:29 omytea
    引用@我就是二宝 的话:PGA是可编程阵列,多采用查找表结构,这时和CPLD最大的区别。。。能用FPGA实现各种AISC、DSP和单片机ASIC就是专用IC,没有明确的定义。可以理解为除了单片机、DSP、FPGA之类的...

    +1

    有米的话全上也行 单片机做接口 fpga做算法 dsp做中心控制 asic好贵 做原型阶段无视

    [0] |
  • 13楼
    2013-05-01 16:36 Num.696_NeedOffer

    ASIC一般是专门用途的套片~

    [0] |
  • 14楼
    2013-05-01 17:29 专注潜水一万年
    引用@omytea 的话:+1有米的话全上也行 单片机做接口 fpga做算法 dsp做中心控制 asic好贵 做原型阶段无视

    个人觉得fpga做接口和算法 dsp做算法 单片机做控制会更理想

    [0] |
  • 15楼
    2013-05-02 01:39 omytea
    引用@WedisonX 的话:个人觉得fpga做接口和算法 dsp做算法 单片机做控制会更理想

    看做什么接口吧 比如说做pcie的话肯定就去买xilinx的fpga

    如果做i2c can的话还不如直接去买stm32之类接口做的比较齐全的 或者usb的话肯定也会用专用的 fpga的ip核commercial license还是太贵

    dsp做控制好像是发帖的时候我脑子短路... 总之应该要有一个比较常用的平台跑操作系统做控制才比较合适吧

    [0] |
  • 16楼
    2013-05-02 10:39 专注潜水一万年
    引用@omytea 的话:看做什么接口吧 比如说做pcie的话肯定就去买xilinx的fpga如果做i2c can的话还不如直接去买stm32之类接口做的比较齐全的 或者usb的话肯定也会用专用的 fpga的ip核com...

    fpga管脚多,可以同时做n多个接口。再说,fpga本来做前端数据接收采集就比其它可编程芯片要理想。
    如果一些不算太难的而且不用你在编程的时候去考虑电气特性的借口协议的话,你甚至可以自己写,管好时序逻辑就行,好像232串口、i2c这些

    [0] |
  • 18楼
    2013-05-02 17:04 omytea
    引用@WedisonX 的话:fpga管脚多,可以同时做n多个接口。再说,fpga本来做前端数据接收采集就比其它可编程芯片要理想。如果一些不算太难的而且不用你在编程的时候去考虑电气特性的借口协议的话,你甚至可以自己写,管好时序...


    不过fpga那么贵一片就拿来做做串口i2c神马的不太值吧

    其他的貌似没什么分歧 不继续了

    [0] |
  • 19楼
    2014-02-11 10:19 恭梧溪

    FPGA 隶属于PLD,相对于ASIC(专用IC,又分模拟、数字,模数混合IC之分),FPGA属于数字通用IC(通过硬件描述语言可以搭建不同的数字电路);
    DSP和单片机:前者偏向处理(MPU),后者偏向控制(MCU)。

    [0] |
  • 20楼
    2014-11-23 16:56 aptx4869mumu
    引用@馍夹饼子 的话:DSP不是 软件无线电吗?
    digital signal processor 数字信号处理器,不知道你说的软件无线电是什么?


    [0] |
  • 21楼
    2014-11-25 21:04 馍夹饼子
    引用@aptx4869mumu 的话:

    你说的对,是我百度百错了,或者是记错了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多