零基础学FPGA(三):国产芯片短板—FPGA(为什么选择FPGA)


前言

       在正点原子的技术文档里面看到一个小故事,很有意思。刚开始接触FPGA的时候,这个故事让我眼前一亮,对FPGA有一种莫名的神秘感与期待感。

话说一个资深工程师出国的时候带了一块 FPGA 开发板。
海关问道:“这是什么东西?”
工程师说:“FPGA 开发板”。
海关又问:“FPGA 是什么?”。
工程师回答说:“你想让它是什么,它就是什么(It can be whatever you want)”

一、FPGA简介

       FPGA(Field-Programmable Gate Array),即现场可编程门阵列,由Xilinx创造于1984年,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,FPGA本质上是一种芯片,它并不是一种软件,也不是一个工具,和CPU、GPU相比,它们在本质上并没有什么区别,都是芯片的一种。
       FPGA有三个重要特点:现场、可编程、门阵列。
       首先FPGA有大量的逻辑门阵列组成,逻辑门是数字电路最基本组成单元,它基于布尔代数,对二进制数0和1进行操作,并完成不同的逻辑运算,比如与或非等等。举个例子,任何数和0相与都为0,和1相或都为1,非就是把0变1,把1变0,而FPGA可以使用逻辑门组成各种不同的逻辑功能。有些可能不太明白这个逻辑门阵列有什么好处,换句话说,拥有可配置的逻辑块,就意味着不再受到硬件的制约。您不会再遇到定时器或 UART 不够用的情况,只要您拥有逻辑单元便可创建更多定时器或 UART。
       其次,FPGA的另外一个特点就是可编程性 ,这里的可编程与我们平时所说的软件编程有着本质区别,对于CPU或者单片机的编程,一般是通过改变寄存器的配置来实现,但不会改变芯片的逻辑功能。打个比方,你不能通过编程把一个网络交换芯片变成一个视频处理芯片,相比之下,FPGA的编程为硬件可编程,它让FPGA可以对逻辑门阵列可以重复编程,从而使FPGA可以在逻辑层面上任意改变自己实现的硬件结构,这使得FPGA有很高的灵活性。
       现场可编程性:主要指FPGA可以在现场完成编程,而不需要把芯片拆下来,然后送回厂家来完成编程操作(相当于一块橡皮擦,可以自己捏成任意形状)
在这里插入图片描述

二、FPGA的用途

       FGPA能做什么呢?
       可以毫不夸张地讲,FGPA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FGPA来实现。你可以把FGPA比喻成一堆乐高,通过拼装,可以做成任何一种模型——工程师可以通过传统的原理图输入或硬件描述语言(如Verilog HDL、VHDL)自由地设计一个数字系统。 目前的FPGA主要还是在通信和网络领域用的比较广泛,用来对大量的网络数据包进行处理,比如大规模应用于华为5G基站。一部分应用于医疗器械,金融领域,军用设备,航空航天。
       FPGA的应用大可分为以下几种:
       数据采集领域:自然界的大部分信号是模拟信号,在高速采集时,信息无法直接传入MCU或者DSP。此时,需要FPGA进行一定的转换和速率匹配。这里提一点,DSP是CPU的一种,做数字信号的处理,擅长做乘法和加法运算。
       逻辑接口领域:CPU在于外界通信时,需要各种专门的接口,而接口电路所引入的接口电路很庞大。加入FPGA,就可以CPU与FPGA做单独通信,由FPGA实现其他各种接口的扩展。
       电平接口领域:不同的器件支持的电平不尽相同,如果需要连接各种接口时,就需要各种接口标准或者转换电路。对于FPGA来说,FPGA分为不同的BANK,可以直接支持不同的电平标准。
       数字信号处理领域:通信、图像等领域近些年对计算量提出了更高的要求,FPGA支持并行计算,可以大大缩短计算的时间。
       IC设计领域:IC在设计时,首先会使用FPGA设计出基础的电路模型进行各种理论验证,等验证通过后,才会进行IC制造等等。

三、FPGA比较

1、FPGA与单片机比较

       FPGA和单片机,首先它们在硬件架构上不同,单片机无论是MCU还是MPU都是基于控制器和算术逻辑单元进行工作的,而FPGA是基于查找表的硬件电路进行工作的,这一点正同于单片机用的是软件设计语言而FPGA用的是硬件描述语言一样;其次,FPGA在芯片容量、组合逻辑、工作速度、设计灵活上远优于单片机;最后,在代码的设计思想上也不一样,单片机使用的是串行的设计思想,而FPGA则使用的是并行的设计思想。

2、FPGA与CPU比较

       CPU与FPGA的根本区别在于软件与硬件的差异。CPU为 冯诺依曼结构,串行地执行一系列指令;而FPGA可以实现 并行操作 ,就象在一个芯片中嵌入多个CPU,其性能会是单个CPU的十倍、百倍。一般来说,CPU可以实现的功能,都可以用硬件设计的方法由FPGA来实现。当然,极其复杂的算法用硬件实现会比较困难,资源消耗也很大,如果没有高性能要求,那用硬件实现就有点得不偿失了。对于一个复杂系统而言,进行合理的软、硬件划分,由CPU(或DSP)和硬件电路(如FPGA)合作完成系统功能是非常必要的,也是高效的。(http://blog.csdn.net/chzms/article/details/2548272)

四、为什么选择FPGA

       打破顺序执行模式,大规模并行运算,低延时,验证想法简便,缩短产品上市时间。(由于时间问题,这个小节后面有时间总结好再更新到文章)

总结

       FPGA应用于很多关键领域,但是目前我国FPGA市场的份额的90%以上都被美国公司所占据,特别是中高端的FPGA芯片,国内还没办法做到生产代替,光刻机技术、EDA软件仍然很落后,很多人并没有意识到这点,我们的芯片半导体产业仍然有很长的路要走。

  • 16
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千歌叹尽执夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值