对于fpga的学习者而言,怎样学习fpga是大家争论不断的。有的认为要先学习语言,也就是hdl硬件描述语言;也有的说要先学习数电、模电,没有这些知识,就算学会了语言,以后的学习也会非常艰难。但是唯一大家都认可的是掌握fpga的基本结构。
我们先来看看fpga的家谱。什么电子工艺的发展,电子管、晶体管、集成电路这些就不说了。直接从asic(专用集成电路)开始,它的出现,降低了产品的成本、缩小的设计的物理尺寸、增加了系统的稳定性(低、小、稳)。但是它也有一定的局限性,设计周期长,灵活性差,改版投资大(贵、繁、久)。人们希望有一种更灵活的设计方法,在实验室就能设计、更改大规模数字逻辑,研制自己的asic,并马上投入使用,因此就有了可编程逻辑的基本思想。
一.可编程逻辑器件
可编程逻辑器件指通过软件手段,更改、配置器件内部连接结构和逻辑单元,完成既定设计功能的数字集成电路。
可编程逻辑器件可以分为:pal/gal、cpld、fpga。
pal/gal:(programmable array logic)可编程阵列逻辑,(generic array logic)通用可编程阵列逻辑。大多基于e^2cmos工艺,结构简单,逻辑单元密度低,仅能适用于一些简单的数字逻辑电路。
cpld:(complex programmable array logic)复杂的可编程阵列逻辑。它是在pal/gal的基础上发展起来的,多数采用e^2coms工艺、少数采用flash工艺。当然它的逻辑功能有了大幅度的提升,可以完成逻辑设计中较高速、较复杂的逻辑功能。
fpga:(field pragrammable gate array)现场可编程逻辑阵列。它是在cpld的基础上发展起来的,一般采用sram工艺,有的也采用flash工艺或反熔丝工艺。它的集成度很高。可以完成极其复杂的时序与组合逻辑电路功能,适用与高速、高密度的高端数字逻辑电路设计领域。
二.fpga的基本结构
简化的fpga基本由6部分组成:可编程输入/输出单元、基本可编程逻辑单元、嵌入式块ram、丰富的布线资源、底层嵌入功能单元、内嵌专用硬核。下面分别来解释说明这几个部分。
1.可编程输入/输出单元:简称i/o单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配需求。目前大多数fpga的i/o单元被设计为可编程模式,即可通过软件的配置,适配不同的电气标准与i/o物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。
上面的一些概念,现在读不懂没关系,随着学习的深入,再回过头来看,会加深理解。现在只需要知道fpga的灵活性其中一方面体现在i/o接口上面,原因是可通过软件编程配置。
2.基本可编程逻辑单元:它是可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。fpga的基本可编程逻辑单元几乎都是由查找表lut和寄存器reg组成的。fpga一般依赖查找表完成组合逻辑功能,依赖寄存器完成同步时序逻辑设计。altera可编程逻辑单元通常被称为le(logic element,逻辑单元),1个lut+1个reg构成。若干个le有机的组合起来,构成更大的功能单元,逻辑阵列模块lab(logic array bolck),lab中除了le还包含le间的进位链、lab控制信号、局部互联线资源、lut级联链,寄存器级联链等连线与控制资源。xilinx的可编程逻辑单元叫slice,被称为lc(logic cell,逻辑单元)。lattice的底层逻辑单元叫pfu(programmable function unit,可编程功能单元)。
这段大家只需要知道fpga是基于lut和寄存器的就可以了,当然你或许之前就已经知道这点,但我相信你看过之后的理解和之前是不一样的。
3.嵌入式块ram:fpga内部嵌入可编程ram模块,大大拓展了fpga的应用范围和使用的灵活性。体现为单口ram、双口ram、cam、fifo等常用的存储结构,想必大家已经十分熟悉了。fpga中没有rom资源,rom的实现本质也是ram。
4.丰富的布线资源:布线资源连通fpga内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。
a.全局性的专用布线资源:用以完成器件内部的全局时钟和全局复位/置位的布线。
b.长线资源:完成器件bank(分区)间的一些高速信号和一些第二全局时钟信号的布线。
c.短线资源:完成基本逻辑单元之间的逻辑互联与布线。
另外还有各式各样的布线资源和专用时钟、复位等控制信号线。
5.底层嵌入功能单元:底层嵌入功能单元的概念比较笼统,这里指那些通用程度较高的嵌入式功能模块、入pll、dsp、cpu等。随着fpga的发展,这些模块越来越多地嵌入到fpga的内部,以满足不同场合的需求。
6.内嵌专用硬核:这里说的硬核主要指那些通用性较弱,不是所有fpga器件都包含硬核(hard core)。fpga和cpld为通用逻辑器件是相对于集成电路asic而言的。fpga内部也有两个阵营:一方面是通用性较强,目标市场范围很广,价格适中的fpga;两一方面是针对性较强,目标市场明确,价格较高的fpga。
亮钻由由强强合作,“AI称重”大有前途
TensorFlow有了替代品,竟然还是谷歌自己做出来的?
日韩企业垄断CMOS芯片,中国垄断摄像头模组市场
IPv4报文格式各字段的含义
微软展示多屏显示技术 或将被用于VR头显
FPGA的基本组成结构
面部表情识别在医疗领域的应用
连接器厂家生产的D-SUB连接器有多少种类型
新型激光技术 影像指触控定位
欧菲智联:实现互联互通,打破信息孤岛
关于不锈钢板激光焊接变形的研究
vivo x9、oppo r9s、荣耀v9,买哪一款更好?
苹果中国台湾主要供应商9月营收387亿美元,同比下降16.4%
电动车电瓶修复技术——笔记本电脑电池的维护技巧(网友问答)
6 种技术趋势正在改变我们的出行方式
RGB7段显示器的制作
扫频超声波线路板电路设计
集五个芯片功能于一体的USB-C Hub控制器方案
USB-C会很快替代掉原来的MiniUSB和MicroUSB作为一种最通用的连接器
我国量子通信创新世界纪录