简介
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 定义
FPGA
(Field Programmable Gate Array
,简称 FPGA
),译文:现场可编程门阵列 , 一种次要以数字电路为主的集成芯片。
FPGA 倒退历程
FPGA
于 1985 年由 Xilinx
创始人之一 Ross Freeman
创造,属于可编程逻辑器 PLD
(Programmable 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 类:
- 第一类是通用型中、小规模集成电路;
- 第二类是用软件组态的大规模、超大规模集成电路,如微处理器、单片机等;
- 第三类是专用集成电路
ASIC
(Application-Speciftic Integrated Circuit
)。ASIC
是一种 专门为某一应用领域或用户须要而设计制作的LSI
或VLSI
电路 ,它能够将某些专用电路或电子系统设计在一个芯片上,形成单片集成系统。ASIC
分为全定制和半定制。
ASIC 全定制
全定制 ASIC
的硅片没有通过预加工,其各层掩模都是按特定电路性能专门制作的。
ASIC 分为半定制
半定制 ASIC
是按肯定规格事后加工好的半成品芯片,而后再依照具体要求进行加工和制作,它包含门阵列、标准单元和可编程逻辑器件三种。
- 门阵列是一种 事后制作好的硅阵列,外部包含根本逻辑门、触发器等,芯片中留有肯定连线区,用户依据所须要的功能设计电路,确定连线形式,而后交给厂家进行最初的布线。
- 标准单元是 厂家将事后配置好、通过测试、具备肯定性能的逻辑块作为标准单元存在数据库中,设计者依据须要在库中抉择单元形成电路,并实现电路到幅员的最终设计 。这两种定制
ASIC
都要由用户向生产厂家定做,设计和制作周期较长,开发费用高,因而只实用于对研发周期要求不高、批量较大的产品。 - 可编程逻辑器件是
ASIC
的一个重要分支,它是 厂家作为一种通用型器件生产的半定制电路,用户能够利用软、硬件开发工具对器件进行设计和编程,使之实现所须要的逻辑性能。因为它是用户可配置的逻辑器件,应用灵便,设计周期短,费用低,而且可靠性高,承担风险小,因此很快失去广泛利用,倒退十分迅速。
可编程逻辑器件 PLD
在可编程逻辑器件 PLD
未创造之前,工程师们应用 蕴含若干个逻辑门的离散逻辑芯片 进行电路系统的搭建,简单的逻辑性能实现起来较为艰难。
可编程逻辑器件(PLD
,Programmable Logic Device
)可能实现各种数字逻辑性能 。典型的PLD
由输出电路、与阵列、或阵列和输入电路组成,如图所示
而 任意一个组合逻辑都能够用“与 - 或“表达式来形容 ,所以,PLD
能以乘积和的模式实现大量的组合逻辑性能。并且这些门电路的连贯关系能够一直地用软件来批改。
可编程逻辑阵列 PLA
工程师们应用 蕴含若干个逻辑门的离散逻辑芯片 进行电路系统的搭建,简单的逻辑性能实现起来较为艰难。为了解决这一问题,20 世纪 70 年代,可编程逻辑阵列 PLA
(Programmable Logic Array
)问世。
PLA
中蕴含了一些固定数量的与门、非门,别离组成了“与立体”和“或立体”,即“与连贯阵”和“或连贯矩阵”,以及仅可编程一次的连贯矩阵 (因为编程基于的是熔丝工艺),因而能够实现一些绝对简单的与、或多项表达式的逻辑性能,PLA
内部结构如图下所示。
可编程只读存储器 PROM
与 PLA
同时问世的还有 可编程只读存储器PROM
( Programmable Read-Only Memory
),PROM
内部结构如下图所示。
与 PLA
雷同,PROM
外部蕴含“与连贯矩阵”和“或连贯矩阵”,然而与门的连贯矩阵是硬件固定的,只有或门的连贯矩阵可编程。
可编程阵列逻辑器件 PAL
若只有与门的连贯矩阵可编程,而或门的连贯矩阵是硬件固定的,那么这种芯片叫做可编程阵列逻辑器件 PAL
(Programmable Array Logic
),依据输入电路工作模式的不同,PAL
可分为几类,有三态输入、寄存器输入、互补输入,但 PAL
仍应用熔丝工艺,只可编程一次 。PAL
结构图如图 所示。
通用阵列逻辑器件 GAL
在 PAL
的根底上,又倒退出了通用阵列逻辑器件 GAL
(Generic Array Logic
),相比于 PAL
有两点改良:
一是采纳了电 可擦除的 CMOS
工艺,可屡次编译,加强了器件的可重配置性和灵活性;
二是采纳了 可编程的输入逻辑宏单元 OLMC
(Output Logic Macro Cell
),通过编程 OLMC
可将 GAL
的输入设置成为不同状态,仅用一个型号的 GAL
就能够实现所有 PAL
器件输入电路的工作模式,加强了器件的通用性。GAL
结构图如图所示。
可编程逻辑器件 CPLD
晚期的可编程逻辑器件次要由上述四种类型的芯片组成,即 PROM
、PLA
、PAL
和 GAL
。 它们的独特特点是能够实现速度个性较好的逻辑性能,但因为其构造过于简略所以只能实现规模较小的数字电路。
CPLD
是由 GAL
倒退起来的,其主体构造仍是与或阵列 ,自 20 世纪 90 年代初Lattice
公司开发出 具备在零碎可编程性能 (ISP
)的CPLD
以来,CPLD
倒退迅速。具备 ISP
性能的 CPLD
器件因为具备同 FPGA 器件类似的集成度和易用性,在速度上还有肯定的劣势,使其在可编程逻辑器件技术的竞争中与 FPGA 并驾齐驱,成为两支领导可编程器件技术倒退的力量之一。
简单可编程逻辑器件 CPLD
(Complex Programmable Logic Device
)能够看成是 PLA
器件构造的连续 ,一个 CPLD
器件也能够看作若干个 PLA
和一个可编程连贯矩阵的汇合。CPLD
外部结构图如图所示。
现场可编程门阵列 FPGA
FPGA
是一种 高密度的可编程逻辑器件 ,自从Xilinx
公司 1985 年推出第一片 FPGA
以来,FPGA
的集成密度和性能进步很快,其集成密度高达千万门 / 片以上。因为 FPGA
器件集成度高、不便易用、开发和上市周期短,在数字设计和电子生产中失去迅速遍及和利用,并一度在高密度的可编程逻辑器件畛域中独占鳌头。
FPGA
和 CPLD
并称为高密度可编程逻辑器件,但 它们有着实质的区别。
FPGA
芯片的外部架构并没有沿用相似PLA
的构造,而是采纳了逻辑单元阵列LCA
(Logic Cell Array
)这样一个概念, 扭转以往PLD
器件大量应用与门、非门的思维,大量应用查找表和寄存器。- 除此之外,在资源类型、速度等方面
FPGA
和CPLD
也存在差别。
FPGA
的类型从 外部实现机理 来讲,能够分为几类,别离是:基于 SRAM
技术 、 基于反熔丝技术 、 基于 EEPROM/FLASH
技术。
就 电路构造 来讲,FPGA
可编程是指三个方面的可编程:可编程逻辑块 、 可编程 I/O、可编程布线资源。
可编程逻辑块是 FPGA
可编程的外围,咱们下面提到的三种技术也是针对可编程逻辑块的技术。FPGA
结构图如图所示。
这样的 CPLD/FPGA
实际上就是一个子系统部件。这种芯片受到世界范畴内电子工程设计人员的宽泛关注和广泛欢送。通过了十几年的倒退,许多公司都开发出了多种可编程逻辑器件。比拟典型的就是 Xilinx
和Altera
公司的 CPLD/FPGA
系列器件,它们开发较早,占用了较大的 PLD
市场。
FPGA 和 CPLD 的比拟
CPLD
与 FPGA
对照状况如下。
构造
FPGA
多为查找表加寄存器构造,大多数应用 SRAM
工艺 ,也蕴含Flash
、Anti-Fuse
等工艺。
CPLD
多为乘积项构造,应用 Flash
、EEPROM
工艺。
集成度
FPGA
能够达到比 CPLD
更高的集成度,同时也具备更简单的布线构造和逻辑实现。
适宜类型
CPLD
组合逻辑的性能很强,一个宏单元就能够分解成十几个甚至 30 多个组合逻辑输出。
FPGA
的一个查找表 LUT
只能解决 4 输出的组合逻辑。
因而,CPLD
更适宜实现各种算法和组合逻辑,而 FPGA
更适宜于实现时序逻辑。换句话说,CPLD
更适宜于 触发器无限而乘积项丰盛 的构造,而 FPGA
更适宜于触发器丰盛的构造。
功率耗费
个别状况下,CPLD
功耗要比 FPGA
大,且集成度越高越显著。
布线资源
FPGA
具备丰盛的分布式布线资源、布线灵便,然而时序难以预测,个别须要时序束缚、时序仿真 来验证时序性能。
CPLD
因为逻辑块互连是集总式的,绝对布线资源无限。
编程形式
目前的 CPLD
次要是基于 EEPROM
或FLASH
存储器编程,编程次数达 1 万次。
- 其长处是在零碎断电后,编程信息不失落。
CPLD
又可分为在 编程器上编程和在零碎编程 (ISP
)两种。ISP
器件的长处是不须要编程器,编程、调试和保护都很不便。
FPGA
大部分是基于 SRAM
编程,
- 毛病是 编程数据信息在零碎断电时失落 ,每次上电时,需从器件的内部存储器或计算机中将编程数据写人
SRAM
中。 - 长处是 可进行任意次数的编程,并可在工作中疾速编程 ,实现板级和零碎级的动静配置,因而可称为在线重配置(
ICR
:In CircuitReconfigurable
) 的PLD
或可重配置硬件(RHP
:Recontfigurable Hardware Product
)。
FPGA 和单片机的比拟
- 首先,它们在硬件架构上不同,单片机无论是
MCU
还是MPU
都是基于控制器和算术逻辑单元进行工作的 ,而FPGA
是基于查找表的硬件电路进行工作的 ,这一点正同于单片机用的是软件设计语言而FPGA
用的是硬件描述语言一样; - 其次,
FPGA
在芯片容量、组合逻辑、工作速度、设计灵便上远优于单片机; - 最初,在代码的设计思维上也不一样,单片机应用的是串行的设计思维,而
FPGA
则应用的是并行的设计思维。
总结
次要介绍了 FPGA
的倒退历程。
其它
最近更新
查看本文最近更新请点击
小有播种
记得三连哦😁
点赞👍
珍藏⭐︎
评论💬