简介

FPGA 作为一种可编程的芯片,其构造和开发方式都与传统的 MCU DSP 不同

MCU DSP的设计,是次要进行软件程序设计,用户次要应用 C 语言实现各种管制和算法的实现,各种性能是在 CPU 的管制下依照程序顺次实现的。

FPGA 设计,本质是电路设计,是在一个能够现场编程的通用逻辑器件中去搭建各种具备肯定性能的逻辑电路,各个逻辑电路间是各自独立的,可能并行执行。同时,各个性能电路之间又通过肯定的管制和握手信号互相协调

所 以,要想可能正确高效的开发和应用 FPGA,咱们必须在此之前对其有一个充沛粗疏的意识,包含对其硬件资源构造、硬件电路设计、开发环境等。这对于第一次接触 FPGA 的读者,可能起到指路的作用。

指标

理解FPGA的由来与特点。

浏览根底

相熟计算机。

疾速浏览

理解的局部跳过。

环境阐明

  • windows10

参考资料

  • 小梅哥教程02A\_【学习教材】FPGA零碎设计与验证实战指南_V3.0

    02B\_【学习教材】小梅哥FPGA逻辑设计进阶教程2020版V1.0

  • 晚点原子开拓者教程开拓者FPGA 开发指南V1.5
  • 野火征途教程征途Pro《FPGA Verilog开发实战指南——基于Altera EP4CE10》(高低)

FPGA定义

FPGAField Programmable Gate Array,简称 FPGA),译文:现场可编程门阵列一种次要以数字电路为主的集成芯片

FPGA倒退历程

FPGA于 1985 年由 Xilinx 创始人之一 Ross Freeman 创造,属于可编程逻辑器PLDProgrammable Logic Device)的一种。真正意义上的第一颗FPGA 芯片 XC2064 Xilinx 所创造,这个工夫差不多比驰名的摩尔定律晚 20 年左右,但 是 FPGA 一经创造,后续的倒退速度之快,超出大多数人的设想。

在短短的三十多年工夫里,FPGA 的角色曾经由简略的逻辑粘合,倒退到了当初的可编程片上零碎FPGA 的容量翻了几千几万倍,架构复杂度也晋升了好几个程度

数字集成电路倒退

自20世纪60年代以来,数字集成电路经验了从SSI(Small Scale Integrated circuit,小规模集成电路),MSI(Medium Scale Integrated circuit,中规模集成电路),LSI(Large ScaleIntegrated circuit,大规模集成电路)到VLSI(Very Large Scale Integrated circuit,超大规模集成电路)的倒退过程。

数字集成电路按照芯片设计办法的不同大抵能够分为3类:

  1. 第一类是通用型中、小规模集成电路;
  2. 第二类是用软件组态的大规模、超大规模集成电路,如微处理器、单片机等;
  3. 第三类是专用集成电路ASICApplication-Speciftic Integrated Circuit)。ASIC是一种专门为某一应用领域或用户须要而设计制作的LSIVLSI电路,它能够将某些专用电路或电子系统设计在一个芯片上,形成单片集成系统。ASIC分为全定制和半定制。

ASIC全定制

全定制ASIC的硅片没有通过预加工,其各层掩模都是按特定电路性能专门制作的。

ASIC分为半定制

半定制ASIC是按肯定规格事后加工好的半成品芯片,而后再依照具体要求进行加工和制作,它包含门阵列、标准单元和可编程逻辑器件三种。

  • 门阵列是一种事后制作好的硅阵列,外部包含根本逻辑门、触发器等,芯片中留有肯定连线区,用户依据所须要的功能设计电路,确定连线形式,而后交给厂家进行最初的布线。
  • 标准单元是厂家将事后配置好、通过测试、具备肯定性能的逻辑块作为标准单元存在数据库中,设计者依据须要在库中抉择单元形成电路,并实现电路到幅员的最终设计。这两种定制ASIC都要由用户向生产厂家定做,设计和制作周期较长,开发费用高,因而只实用于对研发周期要求不高、批量较大的产品。
  • 可编程逻辑器件是ASIC的一个重要分支,它是厂家作为一种通用型器件生产的半定制电路,用户能够利用软、硬件开发工具对器件进行设计和编程,使之实现所须要的逻辑性能。因为它是用户可配置的逻辑器件,应用灵便,设计周期短,费用低,而且可靠性高,承担风险小,因此很快失去广泛利用,倒退十分迅速。

可编程逻辑器件PLD

在可编程逻辑器件 PLD 未创造之前,工程师们应用蕴含若干个逻辑门的离散逻辑芯片进行电路系统的搭建,简单的逻辑性能实现起来较为艰难。

可编程逻辑器件(PLDProgrammable Logic Device可能实现各种数字逻辑性能。典型的PLD输出电路、与阵列、或阵列和输入电路组成,如图所示

任意一个组合逻辑都能够用“与-或“表达式来形容,所以,PLD能以乘积和的模式实现大量的组合逻辑性能。并且这些门电路的连贯关系能够一直地用软件来批改。

可编程逻辑阵列 PLA

工程师们应用蕴含若干个逻辑门的离散逻辑芯片进行电路系统的搭建,简单的逻辑性能实现起来较为艰难。为了解决这一问题,20 世纪 70 年代,可编程逻辑阵列 PLAProgrammable Logic Array)问世。

PLA 中蕴含了一些固定数量的与门、非门,别离组成了“与立体”和“或立体”,即“与连贯阵”和“或连贯矩阵”,以及仅可编程一次的连贯矩阵(因为编程基于的是熔丝工艺),因而能够实现一些绝对简单的与、或多项表达式的逻辑性能,PLA 内部结构如图下所示。

可编程只读存储器 PROM

PLA 同时问世的还有 可编程只读存储器PROM Programmable Read-Only Memory),PROM 内部结构如下图所示。

PLA 雷同,PROM 外部蕴含“与连贯矩阵”和“或连贯矩阵”,然而与门的连贯矩阵是硬件固定的,只有或门的连贯矩阵可编程

可编程阵列逻辑器件 PAL

若只有与门的连贯矩阵可编程,而或门的连贯矩阵是硬件固定的,那么这种芯片叫做可编程阵列逻辑器件 PALProgrammable Array Logic),依据输入电路工作模式的不同,PAL 可分为几类,有三态输入、寄存器输入、互补输入,但 PAL 仍应用熔丝工艺,只可编程一次PAL 结构图如图 所示。

通用阵列逻辑器件 GAL

PAL 的根底上,又倒退出了通用阵列逻辑器件 GALGeneric Array Logic),相比于 PAL 有两点改良:

一是采纳了电可擦除的 CMOS 工艺,可屡次编译,加强了器件的可重配置性和灵活性;

二是采纳了可编程的输入逻辑宏单元 OLMC(Output Logic Macro Cell),通过编程 OLMC 可将 GAL 的输入设置成为不同状态,仅用一个型号的 GAL 就能够实现所有 PAL 器件输入电路的工作模式,加强了器件的通用性。GAL 结构图如图所示。

可编程逻辑器件 CPLD

晚期的可编程逻辑器件次要由上述四种类型的芯片组成,即 PROMPLAPAL GAL它们的独特特点是能够实现速度个性较好的逻辑性能,但因为其构造过于简略所以只能实现规模较小的数字电路

CPLD是由GAL倒退起来的,其主体构造仍是与或阵列,自20世纪90年代初Lattice公司开发出具备在零碎可编程性能ISP)的CPLD以来,CPLD倒退迅速。具备ISP性能的CPLD器件因为具备同FPGA器件类似的集成度和易用性,在速度上还有肯定的劣势,使其在可编程逻辑器件技术的竞争中与FPGA并驾齐驱,成为两支领导可编程器件技术倒退的力量之一。

简单可编程逻辑器件 CPLDComplex Programmable Logic Device能够看成是 PLA 器件构造的连续,一个 CPLD 器件也能够看作若干个 PLA 和一个可编程连贯矩阵的汇合。CPLD 外部结构图如图所示。

现场可编程门阵列FPGA

FPGA是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA的集成密度和性能进步很快,其集成密度高达千万门/片以上。因为FPGA器件集成度高、不便易用、开发和上市周期短,在数字设计和电子生产中失去迅速遍及和利用,并一度在高密度的可编程逻辑器件畛域中独占鳌头。

FPGA CPLD 并称为高密度可编程逻辑器件,但它们有着实质的区别

  • FPGA 芯片的外部架构并没有沿用相似 PLA 的构造,而是采纳了逻辑单元阵列LCALogic Cell Array)这样一个概念,扭转以往 PLD 器件大量应用与门、非门的思维,大量应用查找表和寄存器
  • 除此之外,在资源类型、速度等方面 FPGA CPLD 也存在差别

FPGA 的类型从外部实现机理来讲,能够分为几类,别离是:基于 SRAM 技术基于反熔丝技术基于 EEPROM/FLASH 技术

电路构造来讲,FPGA 可编程是指三个方面的可编程:可编程逻辑块可编程 I/O可编程布线资源

可编程逻辑块是 FPGA 可编程的外围,咱们下面提到的三种技术也是针对可编程逻辑块的技术。FPGA 结构图如图所示。

这样的CPLD/FPGA实际上就是一个子系统部件。这种芯片受到世界范畴内电子工程设计人员的宽泛关注和广泛欢送。通过了十几年的倒退,许多公司都开发出了多种可编程逻辑器件。比拟典型的就是XilinxAltera公司的CPLD/FPGA系列器件,它们开发较早,占用了较大的PLD市场。

FPGA和CPLD的比拟

CPLDFPGA对照状况如下。

构造

FPGA多为查找表加寄存器构造,大多数应用SRAM工艺,也蕴含FlashAnti-Fuse等工艺。

CPLD多为乘积项构造,应用FlashEEPROM工艺。

集成度

FPGA能够达到比CPLD更高的集成度,同时也具备更简单的布线构造和逻辑实现

适宜类型

CPLD组合逻辑的性能很强,一个宏单元就能够分解成十几个甚至30多个组合逻辑输出。

FPGA的一个查找表LUT只能解决4输出的组合逻辑。

因而,CPLD更适宜实现各种算法和组合逻辑,而FPGA更适宜于实现时序逻辑。换句话说,CPLD更适宜于触发器无限而乘积项丰盛的构造,而FPGA更适宜于触发器丰盛的构造。

功率耗费

个别状况下,CPLD功耗要比FPGA大,且集成度越高越显著

布线资源

FPGA具备丰盛的分布式布线资源、布线灵便,然而时序难以预测,个别须要时序束缚、时序仿真来验证时序性能。

CPLD因为逻辑块互连是集总式的,绝对布线资源无限

编程形式

目前的CPLD次要是基于EEPROMFLASH存储器编程,编程次数达1万次

  • 其长处是在零碎断电后,编程信息不失落。
  • CPLD又可分为在编程器上编程和在零碎编程ISP)两种。ISP器件的长处是不须要编程器,编程、调试和保护都很不便。

FPGA大部分是基于SRAM编程

  • 毛病是编程数据信息在零碎断电时失落,每次上电时,需从器件的内部存储器或计算机中将编程数据写人SRAM中。
  • 长处是可进行任意次数的编程,并可在工作中疾速编程,实现板级和零碎级的动静配置,因而可称为在线重配置(ICRIn CircuitReconfigurable)的PLD或可重配置硬件(RHPRecontfigurable Hardware Product)。

FPGA和单片机的比拟

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

总结

次要介绍了FPGA的倒退历程。

其它

最近更新

查看本文最近更新请点击

小有播种

记得三连哦

点赞

珍藏⭐︎

评论