2、FPGA简述

1、FPGA 简介

  FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 

  FPGA设计不是简单的芯片研究,主要是利用 FPGA 的模式进行其他行业产品的设计。 与 ASIC 不同,FPGA在通信行业的应用比较广泛。通过对全球FPGA产品市场以及相关供应商的分析,结合当前我国的实际情况以及国内领先的FPGA产品可以发现相关技术在未来的发展方向,对我国科技水平的全面提高具有非常重要的推动作用。

  与传统模式的芯片设计进行对比,FPGA 芯片并非单纯局限于研究以及设计芯片,而是针对较多领域产品都能借助特定芯片模型予以优化设计。从芯片器件的角度讲,FPGA 本身构成 了半定制电路中的典型集成电路,其中含有数字管理模块、内嵌式单元、输出单元以及输入单元等。在此基础上,关于FPGA芯片有必要全面着眼于综合性的芯片优化设计,通过改进当前的芯片设计来增设全新的芯片功能,据此实现了芯片整体构造的简化与性能提升。

  FPGA 器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。FPGA 的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。由于FPGA具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。FPGA的设计流程包括算法设计、代码仿真以及设计、板机调试,设计者以及实际需求建立算法架构,利用EDA建立设计方案或HD编写设计代码,通过代码仿真保证设计方案符合实际要求,最后进行板级调试,利用配置电路将相关文件下载至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允许无限次的编程。

2、设计语言及平台

  可编程逻辑器件是通过EDA技术将电子应用系统的既定功能和技术指标具体实现的硬件载体,FPGA作为实现这一途径的主流器件之一,具有直接面向用户,灵活性和通用性极大,使用方便,硬 件测试和实现快捷等特点。

  硬件描述语言(HDL)是一种用来设计数字逻辑系统和描述数字电路的语言,常用的主要有VHDL、Verilog HDL、System Verilog 和 System C。

  作为一种全方位的硬件描述语言,超高速集成电路硬件描述语言(VHDL)具有与具体硬件电路无关、与设计平台无关的特性,具有宽范围描述能力、不依赖于特定的器件、可将复杂控制逻辑的设计用严谨简洁的代码进行描述等优点,得到众多EDA公司的支持,在电子设计领域得到了广泛应用。

  VHDL是一种用于电路设计的高级语言,与其他硬件描述语言相比,其具有语言简洁、灵活性强、不依赖于器件设计等特点,使其成为EDA技术通用的硬件描述语言,使EDA技术更便于设计者掌握。
  Verilog HDL是广泛应用的硬件描述语言,可以用于硬件设计流 程的建模、综合、模拟等多个阶段。 
  Verilog HDL 优点:类似C语言,上手容易,灵活。大小写敏感。在写激励和建模方面有优势。缺点:很多错误在编译的时候不能被发现。
  VHDL 优点:语法严谨,层次结构清晰。缺点:熟悉时间长,不够灵活。

  Quartus_Ⅱ软件是由Altera公司开发的完整多平台设计环境,能满足各种FPGA,CPLD的设计需要,是片上可编程系统设计的综合性环境。

  Vivado设计套件,是FPGA厂商赛灵思公司(Xilinx)2012年发布的集成设计环境。包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。Xilinx Vivado设计套件中提供了FIFO IP核,可方便应用于设计中。

3、 FPGA 有什么用

  FPGA 所能应用的领域大概可以分成六大类:

  (1)通信领域

   FPGA 在通信领域的应用可以说是无所不能,得益于 FPGA 内部结构的特点,它可以很容易地实现分布式的算法结构,这一点对于实现无线通信中的高速数字信号处理十分有利。因为在无线通信系统中,许多功能模块通常都需要大量的滤波运算,而这些滤波函数往往需要大量的乘和累加操作。而通过 FPGA 来实现分布式的算术结构,就可以有效地实现这些乘和累加操作。尤其是 Xilinx 公司的 FPGA内部集成了大量的适合通信领域的一些资源比如:基带处理(通道卡)、接口和连接功能以及 RF(射频卡)三大类:

    1)基带处理资源

  基带处理主要包括信道编解码(LDPC、 Turbo、卷积码以及 RS 码的编解码算法)和同步算法的实现(WCDMA 系统小区搜索等)。

    2)接口和连接资源

  接口和连接功能主要包括无线基站对外的高速通信接口(PCI Express、以太网 MAC、高速 AD/DA 接口)以及内部相应的背板协议(OBSAI、 CPRI、 EMIF、 LinkPort)的实现。

    3)RF 应用资源

  RF 应用主要包括调制/解调、上/下变频(WiMAX、 WCDMA、 TD-SCDMA 以及 CDMA2000 系统的单通道、多通道 DDC/DUC)、削峰(PC-CFR)以及预失真(Predistortion)等关键技术的实现。

  (2)数字信号处理领域

  在数字信号处理领域 FPGA 同样所向披靡,主要是因为它的高速并行处理能力。 FPGA 最大优势是其并行处理机制,即利用并行架构实现数字信号处理的功能。这一并行机制使得FPGA 特别适合于完成 FIR 等数字滤波这样重复性的数字信号处理任务,对于高速并行的数字信号处理任务来说, FPGA 性能远远超过通用 DSP 处理器的串行执行架构,还有就是它接口的电压和驱动能力都是可编程配置的不像传统的 DSP 需要受指令集控制, 因为指令集的时钟周期的限制,不能处理太高速的信号,对于速率级为 Gbps 的 LVDS 之类信号就难以涉及。所以在数字信号处理领域 FPGA 的应用也是十分广泛的。

  (3)视频图像处理领域

  随着时代的变换,人们对图像的稳定性、清晰度、亮度和颜色的追求越来越高,像以前的标清( SD)慢慢演变成高清( HD),到现在人们更是追求蓝光品质的图像。这使得处理芯片需要实时处理的数据量越来越大,并且图像的压缩算法也是越来越复杂,使得单纯的使用 ASSP 或者 DSP已经满足不了如此大的数据处理量了。这时 FPGA 的优势就凸显出来了,它可以更加高效的处理数据,所以在图像处理领域在综合考虑成本后, FPGA 也越来越受到市场的欢迎。

  (4)高速接口设计领域

  其实看了 FPGA 在通信领域和数字信号处理领域的表现,我想大家也已应该猜到了在高速接口设计领域, FPGA 必然也是有一席之地的。它的高速处理能力和多达成百上千个的 IO 决定了它在高速接口设计领域的独特优势。比如说我需要和 PC 端做数据交互,将采集到的数据送给 PC 机处理,或者将处理后的结果传给 PC 机进行显示。 PC 机与外部系统通信的接口比较丰富,如 ISA、 PCI、 PCIExpress、 PS/2、 USB 等。传统的做法是对应的接口使用对应的接口芯片,例如 PCI 接口芯片,当我需要很多接口时我就需要多个这样的接口芯片,这无疑会使我们的硬件外设变得复杂,体积变得庞大,会很不方便,但是如果使用 FPGA 优势立马就出来了,因为不同的接口逻辑都可以在 FPGA 内部去实现,完全没必要那么多的接口芯片,在配合 DDR 存储器的使用,将使我们接口数据的处理变得更加得心应手。

  (5)人工智能领域

  如果大家比较喜欢关注科技板块的新闻的话最近一定会被 5G 通信和人工智能充斥眼球,确实 21 世纪已经不知不觉走到了 2020 年,在这 20 年间,人工智能迅速发展, 5G 的顺利研发也使人工智能如虎添翼,可以预见,未来必将是人工智能的天下。 FPGA 在人工智能系统的前端部分也是得到了广泛的应用,例如自动驾驶,需要对行驶路线、红绿灯、路障和行驶速度等各种交通信号进行采集,需要用到多种传感器,对这些传感器进行综合驱动和融合处理就可以使用 FPGA。 还有一些智能机器人,需要对图像进行采集和处理,或者对声音信号进行处理都可以使用 FPGA 去完成,所以 FPGA 在人工智能系统的前端信息处理上使用起来得心应手。

  (6)IC 验证领域

  IC 这个词大家可能一听到就觉得特别高深,不是凡人所能触及到的,而 IC 设计更是一些神人才能胜任的工作。不可否认的是 IC 设计门槛确实比较高,但是我们也没必要把它过于神话,其实简单点来讲我们可以拿 PCB 设计来与之比较, PCB 是拿一个个元器件在印制线路板上去搭建一个特定功能的电路组合,而 IC 设计呢是拿一个个 MOS 管, PN 节在硅基衬底上去搭建一个特定功能的电路组合,一个宏观一个微观。 PCB 如果设计废了大不了重新设计再打样也不会造成太大损失,但是如果 IC 设计废了再重新设计那损失就很惨重了,俗话说大炮一开,黄金万两,那么在 IC 领域光刻机一开黄金万两也不是吹的,光刻胶贵的要命,光刻板开模也不便宜,加上其他多达几百上千道工序,其中人力、物力、机器损耗、机器保养,绝对是让人肉疼的损失, 所以 IC 设计都要强调一版成功。保证 IC 一版成功就要进行充分的仿真测试和 FPGA 验证,仿真验证是在服务器上面跑仿真软件进行测试,类似 ModelSim/VCS 软件; FPGA 验证主要是把 IC 的代码移植到 FPGA 上面,使用 FPGA 综合工具进行综合、布局布线到最终生成 bit 文件,然后下载到 FPGA 验证板上面进行验证,对于复杂的 IC 我们还可以给他拆成几个部分功能去分别验证,每个功能模块放在一个 FPGA 上面, FPGA 生成的电路非常接近真实的 IC 芯片。这样极大的方便我们 IC 设计人员去验证自己的 IC 设计。

 

 

 

posted @   孤情剑客  阅读(594)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示