什么是 FPGA ?
FPGA是Field Programmable Gate
Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic
Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input
Output
Block)和内部连线(Interconnect)三个部分。可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

什么是 CPU ?
中央处理单元(Central Processing
Unit),是整个系统的核心,也是整个系统最高的执行单位。它负责整个系统指令的执行,数学与逻辑的运算,数据的存储与传送,以及对内对外输入与输出的控制。

什么是 MCU(单片机)?

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。

什么是 ASIC ?

ASIC(Application Specific Integrated Circuits,专用集成电路),是指应特定用户要求或特定电子系统的需要而设计、制造的集成电路。

《《《《《

可以这样说,

  • CPU不用说了,就是用于处理数据的已经固化的数字电路;
  • MCU里边装了个CPU还有其它各个外设,这个都是已经作死了的,不能再修改;
  • ASIC是针对特定用途,做好了相应的电路逻辑,然后在里边作死了,不能更改;
  • 而FPGA里边全是能够构成数字电路的资源,
  1. 自由:可以用它构建CPU(资源足够的话可以构建很多个同时用都行),构建纯数字外设(也可以结合外部构建数模混合等)。
  2. 灵活:而它的资源是可以用画电路图的方式来配置的(可反复擦写),而这种方法没有代码的方式好,所以现在基本上都是用HDL语言来描述它内部数字电路(注意,是描述,相当于画电路)。而其它三种都是固定的内部逻辑,不能更改。
  3. 强大:所以FPGA可以做出一些芯片的功能,也可以把单片机在其内部实现,这样假设一块板上是单片机和一堆数字芯片的话,就可以用一片FPGA芯片来实现整个系统了。
  4. 高速:而且单片机的速度低,最高100多兆,而FPGA轻松上几百,是单片机望尘莫及的。

》》》》》

工作原理

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括 可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。

FPGA基本特点:

1) 采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。

2) FPGA可做其它全定制或半定制ASIC电路的中试样片。

3) FPGA内部有丰富的触发器和I/O引脚。

4) FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5) FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

应用方向/领域

  1. IC设计的功能验证
  2. 逻辑粘合与实时控制
  3. 协议实现与信号处理
  4. 片上系统(SoC)
  5. 具体的用途
  6. 占有的份额

未来的趋势

  1. 最先进的生产工艺广泛应用于以FPGA为代表的可编程逻辑器件
  2. 越来越多的FPGA产品将包含CPU或DSP内核
  3. 传统ASIC和FPGA进一步融合
  4. 低成本的FPGA密度越来越高,价格越来越合理

[掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用FPGA可以让设计变得非常有灵活性。掌握了FPGA设计,单板硬件设计就非常容易(不是系统设计),特别是上大学时如同天书的逻辑时序图,看起来就非常亲切。但FPGA入门却有一定难度,因为它不像软件设计,只要有一台计算机,几乎就可以完成所有的设计。FPGA设计与硬件直接相关,需要实实在在的调试仪器,譬如示波器等。这些硬件设备一般比较昂贵,这就造成一定的入门门槛,新人在入门时遇到一点问题或者困难,由于没有调试设备,无法定位问题,最后可能就会放弃。其实这时如果有人稍微指点一下,这个门槛很容易就过去。]本段转自http://www.21ic.com/wyzt/201208/135414_2.htm

实际上以前FPGA对大家造成的价格贵的概念根深蒂固了,其实现在价格也越来越平民了,甚至低于一些单片机。

开发流程

  1.功能定义/器件选型

  2.设计输入

  3.功能仿真

  4.综合优化

  5.综合后仿真

  6. 实现与布局布线

  7.时序仿真

  8. 板级仿真与验证

  9.芯片编程与调试

厂商/工具

  1. Xilinx
  2. Altera
  3. Lattice
  4. (Actel)
  5. (atmel)

开发语言

  • verilogHDL  最常用的,容易入门,和C语言长的像
  • VHDL  

【FPGA】相关介绍的更多相关文章

  1. ppDelegate的相关介绍

    //  AppDelegate的相关介绍//  IOS笔记 //@interface AppDelegate : UIResponder <UIApplicationDelegate>// ...

  2. 【个人笔记】002-PHP基础-01-PHP快速入门-02-PHP语言相关介绍输

    002-PHP基础-01-PHP快速入门 02-PHP语言相关介绍 1.PHP是什么 Hypertext Preprocessor超文本预处理器 是一种通用开源脚本语言 Personal Home P ...

  3. Android HttpClient HttpURLConnection相关介绍

    Android HttpClient HttpURLConnection相关介绍 遇到一个问题 在android studio上用HttpClient编写网络访问代码的时候,发现该类无法导入并使用.. ...

  4. 【导航】FPGA相关

    [博客索引] FPGA相关 数字电路实现上,较多的经验是基于Xilinx/Altera的FPGA,使用Verilog语言,实现光传输SDH.OTN通信协议,DDR3控制器应用,以及视频分割.合并.sc ...

  5. Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解

    前言 大家好,给大家带来Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解的概述,希望你们喜欢 Activity是什么 作为一个Activ ...

  6. CSS3 Backgrounds相关介绍

    CSS3 Backgrounds相关介绍 1.背景图片(background images)是在padding-box的左上角落脚安家的,我们可以使用background-position属性改变默认 ...

  7. 一 hadoop 相关介绍

    hadoop 相关介绍 hadoop的首页有下面这样一段介绍.对hadoop是什么这个问题,做了简要的回答. The Apache™ Hadoop® project develops open-sou ...

  8. Django day 33 vue中使用element-ui的使用,课程的相关介绍,vue绑定图片,课程列表接口,课程详情页面

    一:vue中使用element-ui的使用, 二:课程的相关介绍, 三:vue绑定图片, 四:课程列表接口, 五:课程详情页面

  9. SONiC项目的发展及其相关介绍(转载)

    SONiC作为一个开源项目,理论上是包含了SAI(switch abstraction interface,交换机抽象接口),SAI是没有开源的,厂商自己完成统一的API,提供给上层sonic用户来调 ...

  10. 转载:Nginx 相关介绍

    转载自:https://www.cnblogs.com/wcwnina/p/8728391.html Nginx 相关介绍(Nginx是什么?能干嘛?)   Nginx的产生 没有听过Nginx?那么 ...

随机推荐

  1. Web API

    https://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api ...

  2. VM出现该虚拟机正在使用中的提示,让获取所有权限解决办法

    今天打开虚拟机正要学习,结果说是虚拟机似乎正在使用中,让我重新获取权限.解决办法:打开提示的配置文件的位置,将一个以.lck结尾的文件夹删除或者保存为另外的文件名称,再打开虚拟机就OK了.

  3. 深入了解try catch

    @Test public void testWeiXin(){ System.out.println(task()); } private boolean task(){ try { int i = ...

  4. Boost学习笔记(一) 什么是Boost

    Boost库是一个功能强大.构造精巧,跨平台.开源并且完全免费的C++程序库

  5. Linux查看程序端口占用情况

    今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用. 使用命令: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令:netstat ...

  6. 16-阿里-intership

  7. .net比较完美的动态注册com组件

    .net中经常需要使用com组件,怎么样注册com组件呢? 一般想到的当然是直接通过系统cmd 调用regsvr32注册程序去注册,如下: regsvr32 name.dll 在.net中可以直接执行 ...

  8. git stuff

    git stuff trick git bash 无法标记复制解决办法 git bash窗口左上角图标点击,选择属性->选项->快速编辑模式 确定就ok了 Usual Commands 创 ...

  9. ajax提交表单+前端验证小示例

    <script src="http://css.jj.cn/js/jquery.js" type="text/javascript"></sc ...

  10. stm32cube--ADC单次转换

    stm32cube的ADC配置 ① ② ③ ④ ⑤ 二:用到的函数 HAL_StatusTypeDef       HAL_ADCEx_Calibration_Start(ADC_HandleType ...