zoukankan      html  css  js  c++  java
  • 【FPGA】相关介绍

    什么是 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         
  • 相关阅读:
    C++常用库
    如何学好VC和MFC(各前辈学*方法及感受整理)(五)
    如何学好VC和MFC(各前辈学习方法及感受整理)(一)
    基于Winsock API的VC网络编程实战
    const int *p和int * const p的区别(常量指针与指向常量的指针) .
    java中的“包”与C#中的“命名空间
    vc加载lib文件的方法
    C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
    如何学好VC和MFC(各前辈学习方法及感受整理)(三)
    如何学好VC和MFC(各前辈学习方法及感受整理)(二)
  • 原文地址:https://www.cnblogs.com/tony-ning/p/5043470.html
Copyright © 2011-2022 走看看