搜索
bottom↓
回复: 0

《ATK-DFPGL22G之FPGA开发指南_V1.0》第一章FPGA简介

[复制链接]

出0入234汤圆

发表于 2023-1-9 14:24:09 | 显示全部楼层 |阅读模式
本帖最后由 正点原子 于 2023-1-9 14:25 编辑

1)实验平台:正点原子紫光PGL22G开发板
2)购买链接:https://item.taobao.com/item.htm?&id=692368045899
3)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-340253-1-1.html
4)正点原子官方B站:https://space.bilibili.com/394620890
5)正点原子FPGA交流群:994244016 lQLPJxaFi2zaB4UWWrDAMgIsFEW2pwLb3abnwDMA_90_22.png

lQDPJxaFi2nfFizMjM0CbLCPlxn_FVheIQLb3aGrwFQA_620_140.jpg

lQLPJxaFi2nfFhLMkM0BXrDNvOUyeU_FPgLb3aGvQNIA_350_144.png
第一章FPGA简介

FPGA(Field Programmable Gate Array),即现场可编程门阵列,它是一种半定制的数字集成电路。FPGA凭借其灵活性高、开发周期短、处理性能强(并行)等特点,广泛应用于通信、图像处理、医疗等领域。随着科技的进步,FPGA在人工智能、5G和自动驾驶等领域也有一席之地。本章节我们将会详细介绍什么是FPGA,让大家对FPGA有个初步的认识。
本章包括以下两个部分:
1.1 初识FPGA
1.2 深度剖析FPGA

1.1初识FPGA

其实我很好奇当同学们拿到我们的开发板,看到板子上镶嵌的那一块黑不溜秋的像饼干一样的控制芯片时,大家心里会想些什么,犹记当年我第一次见到这玩意时,忍不住用手在上面不停的抚摸,你还别说,这么贵的玩意摸起来手感真挺不错的,很有质感。可是没几分钟,新鲜劲一过我就开始犯愁了,我买的到底是个什么玩意儿,有啥用啊,我学它干嘛?现在回想起来感觉恍如昨日,感叹一句岁月不饶人啊,所以我在写这篇文章的时候就在想同学们第一次拿到FPGA开发板后是啥反应,是不是像当初的我一样,乍见欣喜,然后满脑袋问号,迫切的想了解到底什么是FPGA呢,它有什么用呢,我学了它后又能干什么呢,以后有前途吗?莫急,听我娓娓道来。
1.1.1FPGA是什么
首先我们先来聊聊什么是FPGA,其实这个问题不好回答,简单点来说FPGA(Field Programmable Gate Array,即现场可编程门阵列)它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路个数有限的缺点,这就是FPGA。我相信这种回答很少有人能够理解,因为它涉及到的专业名词和知识面是非常广泛的,我要是把这段话就作为对FPGA的简介一定会被大家痛骂,大家可能会觉得什么玩意儿,你这说的还不如我百度呢,糊弄我吧。也确实,我自己当初看到这句话时也是一脸懵,还是不明白自己手上拿的这个“黑块块”到底是个啥,所以接下来我准备好好跟大家唠唠你们手中的“黑块块”到底是个什么东西。
我先给大家上一张图(图片来源于网络),如图 1.1.1面包板搭建数字时钟电路所示,这张图应该是一个电子类专业的学生作品。
FPGA简介992.png
图 1.1.1面包板搭建数字时钟电路

从图中我们可以看到该电路是一个数字时钟,里面有晶振、蜂鸣器、数码管,以及各种74 系列的小芯片,这些小芯片能够实现的功能也就相当于几个逻辑门,如果你亲自动手去搭建它,肯定会知道搭建该电路是非常麻烦的,一根线一根线去连接,不断对照原理图,生怕搭错一根线,搞不好心态就崩了。大家可以想一想,这仅仅是搭建一个简单的数字时钟就这么多跟线了,密密麻麻的,看起来就很复杂。如果我们想要实现更加复杂的功能,那么我们就要犯难了,因为我们需要使用几十个或者上百个这种专用小芯片来完成,这样就会使得电路板的布局、布线变得困难,还会极大的影响到整个系统的性能,而且搭出来的电路体积庞大,也不美观,实用性极差,所以这种方式毫无疑问是不行的。为了改变这种情况,大家就想到了一个办法,那就是通过专用集成电路(ASIC)来实现,我们可以将要实现的特定需求交给 ASIC 厂商,让他们设计出一个专用集成电路芯片,这样就可以解决这种问题了。比如说,我们把数字时钟功能要求交给 ASIC 厂商,ASIC 厂商就会根据数字时钟功能要求设计出一个专用集成电路芯片,这一个小小的芯片它其实就完成了我们数字时钟电路功能。这种方法虽然很好,但同时也会带来很多其他的问题,比如说,生成周期长,芯片难验证,芯片内部电路不可以更改等等问题。于是人们就开始不断地去探索,看看有没有什么办法既能让我很好的实现功能,又能解决定制电路的不足。
FPGA简介1648.png
图 1.1.2 Xilinx A7系列FPGA芯片

于是FPGA应运而生(如图 1.1.2),于 1985 年由 Xilinx 创始人之一 Ross Freeman 发明,属于可编程逻辑器件 PLD(Programmable Logic Device)的一种。真正意义上的第一颗FPGA 芯片 XC2064 为 Xilinx 所发明,这个时间差不多比著名的摩尔定律晚 20 年左右,但是 FPGA一经问世,后续的发展速度之快,超出大多数人的想象。为什么FPGA能如此迅速的发展呢,这与它本身独特的优越性密不可分。我们要知道一块专用的ASIC定制集成电路的芯片他在出厂前功能就已经定死了,就拿上面的数字时钟来举例,假如我现在拿到一块全新的数字时钟芯片,那么我只需要看看厂家给我提供的数据手册,看看它是怎么操作的,可能仅仅只需要给它通上电然后简单的配置一下它就能工作了。它的功能是不可更改的,就只能跑个数字时钟,而且它内部电路是啥样的我也不知道,虽然用起来简单,但是缺乏灵活性,但FPGA就不一样了,它在出厂的那一刻是不具备任何功能的,可以说就是一张白纸。你可以在这张白纸上肆意创作,你想要它实现数字时钟的功能没问题,通过特定的编辑语言,例如Verilog、VHDL等硬件描述语言将数字时钟的逻辑编写好,下载到FPGA内部,它就会生成一个数字时钟的电路,去完成数字时钟的功能。当你不想要这个功能了,没问题你可以随时将内部程序擦除,或者用一个新的设计去覆盖原有的设计。理论上我们可以用FPGA去生成一个任意我们想要的功能,正是基于这种强大的可编辑能力,FPGA近年来越来越受到市场的认可,在未来FPGA的适用范围必将越来越广阔。
1.1.2FPGA有什么用
跟大家聊完了什么是FPGA之后,我想大家应该对自己手中那个“黑方块”有了一定的主观印象,至少明白了它和普通芯片的区别了,那么接下来,另一个问题就出现了,FPGA我能用它做什么,我学会它之后在未来我可以从事哪些领域的工作。这个问题我觉得是大家最想要关注的问题,因为兴趣是最好的老师,如果你发现FPGA所能从事的领域你压根就不感兴趣,那么你去学习它就有可能是在浪费时间,比如你将来想当个会计,你想当个医生那你学习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)等关键技术的实现。
总而言之只要你FPGA学的好,在通信领域你绝对可以大展身手。
FPGA简介3299.png
图 1.1.3 FPGA无线通信

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

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

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

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

1.1.3 FPGA的现状
根据统计以及预测,在2013年全球FPGA的市场规模在45.63亿美元,至2018年全球FPGA的市场规模缓步增长至63.35亿美元。但随着目前5G时代的进展以及AI的推进速度,预计FPGA在2025年有望达到约125.21亿美元。对于全球FPGA的市场分布而言,FPGA的下游应用地区分布而言,目前最大的为亚太地区,其占比39.15%,北美占比33.94%,欧洲占比19.42%,而至2025年,亚太地区的占比将会继续的提高至43.94%,此间原因也主要因为下游应用市场在未来的主要增长大部分集中在亚太地区。按照FPGA下游应用来分拆FPGA的市场规模的话,可以看到对于2018年而言,通讯领域所用FPGA占据约40%,消费电子占据23%,为最大的应用下游;根据预测至2025年时最大的应用领域将是汽车,占比29%,而数据中心以及工业的占比也将直线上升至13%和19%(数据来源于中国产业信息网)。
FPGA简介5867.png
图 1.1.9 FPGA全球市场规模走势

看完了市场规模我们再来看看FPGA的生产厂商,我总结了一下目前国际市场是两大巨头和一群小弟,很遗憾的是我国的国产FPGA也是属于小弟一列,但是我相信随着时间的积累技术和经验的积累中国FPGA发展将会越来越好。其中两大巨头分别是Xilinx和Altera:
Xilinx(赛灵思):它是全球领先的可编程逻辑完整解决方案的供应商。Xilinx研发、制造并销售范围广泛的高级集成电路、软件设计工具以及作为预定义系统级功能的IP(Intellectual Property)核。客户使用Xilinx及其合作伙伴的自动化软件工具和IP核对器件进行编程,从而完成特定的逻辑操作。Xilinx公司成立于 1984年,Xilinx首创了现场可编程逻辑阵列(FPGA)这一创新性的技术,并于1985年首次推出商业化产品。眼下Xilinx满足了全世界对 FPGA产品一半以上的需求。Xilinx产品线还包括复杂可编程逻辑器件(CPLD)。在某些控制应用方面CPLD通常比FPGA速度快,但其提供的逻辑资源较少。Xilinx可编程逻辑解决方案缩短了电子设备制造商开发产品的时间并加快了产品面市的速度,从而减小了制造商的风险。与采用传统方法如固定逻辑门阵列相比,利用Xilinx可编程器件,客户可以更快地设计和验证他们的电路。由于Xilinx器件是只需要进行编程的标准部件,客户不需要像采用固定逻辑芯片时那样等待样品或者付出巨额成本。Xilinx产品已经被广泛应用于从无线电话基站到DVD播放机的数字电子应用技术中。
传统的半导体公司只有几百个客户,而Xilinx在全世界有7500多家客户及50000多个设计开端。其客户包括Alcatel、Cisco Systems、EMC、Ericsson、Fujitsu、Hewlett-Packard、IBM、Lucent Technologies、Motorola、NEC、Nokia、Nortel、Samsung、Siemens、Sony、Oracle以及Toshiba。目前Xilinx比较火的具有代表性的FPGA芯片有Spartan7系列、Artix7系列、Kintex7系列、Virtex7系列以及Zynq系列,其中Zynq系列内嵌了ARM核,可以实现嵌入式和FPGA的联合开发(想了解更多关于Zynq系列的内容可以参考正点原子领航者ZYNQ开发板资料),对于一些对成本比较敏感的场景,可以选择Xilinx公司的Spartan6系列,我们超越者的开发板选择的是Spartan6系列的FPGA芯片。
FPGA简介7396.png
图 1.1.10 Xilinx公司logo

Altera(阿尔特拉):它秉承了创新的传统,是世界上“可编程芯片系统”(SOPC)解决方案倡导者。Altera结合带有软件工具的可编程逻辑技术、知识产权(IP)和技术服务,在世界范围内为14000多个客户提供高质量的可编程解决方案。我们新产品系列将可编程逻辑的内在优势、灵活性、产品及时面市和更高级性能以及集成化结合在一起,专为满足当今大范围的系统需求而开发设计。在2015年,英特尔宣布以167亿美元收购FPGA厂商Altera,这是英特尔公司历史上规模最大的一笔收购。随着收购完成,Altera将成为英特尔旗下可编程解决方案事业部。Altera使用最广泛的是Cyclone系列FPGA芯片,我个人觉得它用的比较多的是Cyclone IV和Cyclone V系列的FPGA芯片,其中大家需要注意一下Cyclone V,因为该系列包括6种型号,有只含逻辑的E型号、3.125-Gbps收发器GX型号、5-Gbps收发器GT型号,还有集成了基于双核ARM®的硬核处理器系统(HPS)的SE、SX、STSoC型号。除了Cyclone系列,Altera公司还有Agilex系列Stratix系列、Arria系列、Max系列:
Agilex系列:首款采用10纳米工艺和第二代英特尔 Hyperflex FPGA 架构,可将性能提升多达40%,将数据中心、网络和边缘计算应用的功耗降低40%。英特尔Agilex SoC FPGA还集成了四核Arm Cortex-A53处理器,可提供高集成系统级水平的开发,该系列属于超高性能的SoC芯片,一般用于高端市场。
Stratix系列:这个系列也是属于高端高性能产品,拥有高密度、高性能和丰富的IO特性,可最大程度地提高系统带宽,实现多种多样的功能设计。主要应用于Open CL高性能计算、高速数据采集、高速串行通讯高频交互等领域。
Arria系列:这个系列定位为中端产品,它兼顾性能和成本,是一款性价比非常高的FPGA芯片,它内存资源丰富,信号处理能力和数据运算性能相对来说都还不错,并且收发器速度高达 25.78Gbps,支持用户集成更多功能并最大限度地提高系统带宽。此外,Arria V 和英特尔 Arria 设备家族的 SoC 产品可提供基于 ARM 的硬核处理器系统(HPS),从而进一步提高集成度和节省更多成本。
Max系列:这个系列是比较低端的,准确的说这个系列是CPLD产品,主要是应对成本敏感性的设计应用,虽然低端但是它功能也还是可圈可点的,它提供支持模数转换器 (ADC) 的瞬时接通双配置,和特性齐全的 FPGA 功能,尤其对各种成本敏感性的大容量应用进行了优化,要注意的是除了MAX 10以外,该系列的其他产品都是CPLD。
FPGA简介8760.png
图 1.1.11 Intel公司旗下的Altera

剩余的小弟们这里就不做过多介绍了,因为所有小弟们加在一起的市场份额只有一成左右,远不是两大巨头所能比的,在这里提一句,我国的FPGA厂商主要有上海复旦微,紫光同创、京微雅格、高云半导体、上海安路、西安智多晶等,经过多年的发展,国产芯片在性能、制程等方面取得了重大的进步,同时相比FPGA巨头的产品,有着极高的性价比,技术自主可控。我们相信,随着国产芯片的大规模使用,对应的器件和开发工具也会越来越完善。
1.1.4 FPGA的就业前景
一路说下来我想大家们对于FPGA到底是什么,有什么用以及现状都有所了解了,那大家可能就要问了,学习FPGA就业前景怎么样呢?好找工作吗?我这里也很诚实,很真实的跟大家聊聊就业情况。其实相比较那些纯粹搞软件的程序员来讲呢,FPGA的就业面没有他们广,因为各行各业都需要软件信息技术的支持,哪怕你开个小超市,你还需要一个收银系统,而FPGA在适用面上就窄了一些,它大多用于图像算法、信号处理、IC验证、汽车控制等领域,不像软件开发那样各行各业都涉及到。但是有缺点就有优点,FPGA的两大巨头在不断的打造嵌入式与FPGA联合的开发模式,大量的提供IP核,使得FPGA的适用面越来越广,FPGA工程师的需求量与日剧增。在5G、虚拟现实和人工智能的冲击下,传统的微处理器在性能上越来越不能满足需求,这个时候FPGA的优势就尤为突出,我相信在未来FPGA一定会成为市场的主流。即使就目前而言FPGA工程师的福利待遇也是非常高的,如图 1.1.12所示我们可以看到FPGA工程师的平均薪资都已经达到了一万以上了,而软件工程师的薪资除了那些大牛级人物,普通程序员的薪资并没有你想象的那么高,所以在这里我非常衷心的希望大家好好学习FPGA,你们未来可期。
FPGA简介9588.png
图 1.1.12月薪分布图

1.2深度剖析FPGA
我们在学习一个新的事物的时候一定要知其然还要知其所以然,前文我们都是表层的跟大家聊聊什么是FPGA,它能干什么,现状如何,就业前景咋样,让大家对FPGA有个直观的认识,下面我们将带领大家深度剖析一下FPGA的内部结构是什么样的,让大家更深层次的去认识FPGA。
1.2.1FPGA的发展由来
谈到FPGA的发展我们不妨先看看数字电路的发展,在数字集成电路中,门电路是最基本的逻辑单元,用以实现最基本的逻辑运算(与、或、非)和复合逻辑运算(与非、异或等)。与上述逻辑运算相对应,常用的门电路有与门、或门、非门、与非门、异或门等,其电路符号如下图所示:
FPGA简介9926.png
图 1.2.1门电路符号

在最初的数字逻辑电路中,每个门电路都是用若干个分立的半导体器件和电阻、电容连接而成的。不难想象,用这种单元电路组成大规模的数字电路是非常困难的,这就严重制约了数字电路的普遍应用。1961年,美国德州仪器公司(TI)率先将数字电路的元器件制作在同一片硅片上,制成了集成电路(Intergrated Circuits,IC),并迅速取代了分立器件电路。
早期的数字逻辑设计需要设计师在一块电路板上或者如下图所示的面包板上用导线将多个芯片连接在一起。每个芯片包含一个或多个逻辑门,或者一些简单的逻辑结构(比如触发器或多路复用器等)。如下图中所示的芯片是在1960和1970年代,很多设计中都会使用的德州仪器7400系列的器件。
FPGA简介10296.png
图 1.2.2使用74系列器件搭建的电路

自20世纪60年代以来,随着集成电路工艺水平的不断进步,集成电路的集成度也不断提高。数字集成电路经历了从小规模集成电路(Small Scale Integrated circuit,SSI),到中规模集成电路(Medium Scale Integrated circuit,MSI),再到大规模集成电路(Large Scale Integrated circuit,LSI),然后是超大规模集成电路(Very Large Scale Integrated circuit,VLSI),以及甚大规模集成电路(Ultra Large Scale Integrated circuit,ULSI)的发展过程。今天我们已经可以把十分复杂的数字系统制作在一个很小的硅片上,构成“片上系统”。
我们从逻辑功能的特点上将数字集成电路分类,可以分为通用型和专用型两类。前面介绍到的中、小规模集成电路(如74系列)都属于通用型数字集成电路。它们的逻辑功能都比较简单,而且是固定不变的。由于它们的这些功能在组成复杂数字系统时经常要用到,所以这些器件具有很强的通用性。
从理论上来讲,用这些通用型的中、小规模集成电路可以组成任何复杂的数字系统。随着集成电路的集成度越来越高,如果能把所设计的数字系统做成一片大规模集成电路,则不仅能减小电路的体积、重量和功耗,而且可以使电路的可靠性大为提高。像这种为某种专门用途而设计的集成电路称为专用集成电路,即所谓的ASIC(Application Specific Integrated Circuit)。
ASIC的使用在生产、生活中非常普遍,比如手机、平板电脑中的主控芯片都属于专用集成电路。
FPGA简介11069.png
图 1.2.3华为Mate 30手机中的麒麟990芯片

虽然ASIC有诸多优势,但是在用量不大的情况下,设计和制造这样的专用集成电路不仅成本很高,而且设计制造的周期也很长。可编程逻辑器件(Programmable Logic Device,PLD)的出现成功解决了这个矛盾。
可编程逻辑器件PLD是作为一种通用器件生产,但它的逻辑功能是由用户通过对器件进行编程来设定的。而且有些PLD的集成度很高,足以满足设计一般数字系统的需要。这样就可以由设计人员自行编程从而将一个数字系统“集成”在一片PLD上,做成“片上系统”(System on Chip,SoC),而不必去请芯片制造厂商设计和制作专用集成电路芯片了。
最后,我们再来总结一下这三种数字集成电路之间的差异。通用型数字集成电路和专用集成电路内部的电路连接都是固定的,所以它们的逻辑功能也是固定不变的。而可编程逻辑器件则不同,它们内部单元之间的连接是通过“写入”编程数据来确定的,写入不同的编程数据就可以得到不同的逻辑功能。
自20世纪70年代以来,PLD的研制和应用得到了迅速的发展,相继开发出了多种类型和型号的产品。PLD的发展历程如下图所示:
FPGA简介11616.png
图 1.2.4 PLD的发展历程

目前常见的PLD大体上可以分为SPLD(simple PLD,简单PLD)、CPLD(complex PLD,复杂PLD)和FPGA(field-programmable gate array,现场可编程门阵列)。SPLD中又可分为PLA、PAL和GAL几种类型。FPGA也是一种可编程逻辑器件,但由于在电路结构上与早期已经广为应用的PLD不同,所以采用FPGA这个名称,以示区别。
通过对数字电路的学习我们知道,任何一个逻辑函数式都可以变换成与-或表达式,因而任何一个逻辑函数都能用一级与逻辑电路和一级或逻辑电路来实现。PLD最初的研制思想就来源于此。
FPGA简介11956.png
图 1.2.5 PAL器件的基本电路结构

上图是SPLD中PAL(可编程阵列逻辑)的电路结构图。通过对输入端(inputs)到与门之间的可编程阵列(programmable array)进行编程,利用PAL可以获得不同形式的组合逻辑函数。数字电路课程告诉我们,任何逻辑函数式都可以转化为若干乘积项(product tems)之和的形式,亦称“积之和”形式。通过对可编程阵列进行编程,与逻辑电路输出所需要的乘积项,再通过或逻辑电路将这些乘积项相加,就得到了最终的功能输出。然后该输出送给输出电路中的寄存器用于存储或者同步,当然也可以忽略寄存器直接输出。这就是PAL作为一种“可编程逻辑器件”能够实现不同逻辑功能的原理。
通过扩展SPLD的概念就可以得到CPLD。CPLD是复杂可编程逻辑器件,相当于将多个PAL用可编程互联阵列(Programmable Interconnect Array,PIA)连接起来,形成一个大的PLD,如下图所示:
FPGA简介12422.png
图 1.2.6 CPLD结构示意图

上图中的Logic block(逻辑块)通常被称为逻辑阵列模块,或者LAB(Logic Array Block)。每个LAB相当于一个PAL电路,不同型号的CPLD器件可以包含十几个甚至上百个LAB。通过PIA将这些LAB连接起来,就可以构成规模更大的逻辑电路了。另外,在PAL中,I/O管脚是直接连接到逻辑的。而在CPLD中,I/O管脚是通过PIA从器件的主要逻辑中分离出来的。I/O管脚有它自己的控制逻辑,I/O控制单元可以根据需要将相应的引脚设置成输入、输出或双向工作模式。
CPLD相对于SPLD最大的优势就是拥有更大的逻辑资源和布线的可能性。CPLD中LAB逻辑和PIA是完全可编程的,使得它具有在单芯片中非凡的设计灵活性。CPLD的I/O特性和功能也远比SPLD中简单的I/O更有价值。
FPGA是在PAL、GAL和CPLD等可编程逻辑器件的基础上进一步发展的产物,但是FPGA和其前辈CPLD有着非常大的差异。我们用一张表格来罗列他们之间的差别如下表所示:
表 1.2.1 FPGA与CPLD的差别
39BBAEF3-0519-4cff-957E-9EF0830402CA.png

那为什么会产生这么大的差别呢,主要是由于FPGA的内部结构决定的,下面我们就来看看FPGA的内部结构。
1.2.2FPGA的内部结构
FPGA由许多“可配置逻辑模块”(Configurable Logic Block,CLB)、输入/输出单元(I/O Block,IOB)和分布式的可编程互联矩阵(Programmable Interconnection Matrix,PIM)组成。在FPGA中,CLB被布置成阵列的形式,如图 1.2.7所示。可编程的布线资源分布在CLB与CLB之间,像大城市的街道一样纵横联接。这些布线资源分为行互联和列互联,可以跨过整个器件,也可以是局部CLB之间的互联。
我们将图 1.2.6与图 1.2.7进行对比可以发现,FPGA中的布线资源看上去似乎比CPLD中的互联阵列更简单,但它实际上提供了更大的功能性和连通性。FPGA中的布线资源使得器件中所有的逻辑资源都可以与芯片内其他资源进行通信,这种结构可以实现更大容量、低成本的逻辑器件。
FPGA简介13733.png
图 1.2.7 FPGA结构示意图

在前面所讲的各种SPLD和CPLD电路中,都采用了与或逻辑阵列加上输出逻辑单元的结构形式。而FPGA则采用了完全不同的电路结构形式即(查找表,LUT),这里我们需要先来了解一下FPGA的架构。简化的FPGA基本结构由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等,如下图所示:
FPGA简介13974.png
图 1.2.8 FPGA基本结构

每个单元的基本概念介绍如下。
1)        可编程输入/输出单元
输入/输出(Input/Ouput)单元简称I/O单元,它们是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配需求。为了使FPGA具有更灵活的应用,目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与I/O物理特性,可以调整匹配阻抗特性、上下拉电阻、以及调整驱动电流的大小等。
可编程I/O单元支持的电气标准因工艺而异,不同芯片商、不同器件的FPGA支持的I/O标准不同,一般来说,常见的电气标准有LVTTL 、LVCMOS、SSTL、HSTL、LVDS、LVPECL和PCI等。值得一提的是,随着ASIC工艺的飞速发展,目前可编程I/O支持的最高频率越来越高,一些高端FPGA通过DDR寄存器技术,甚至可以支持高达2Gbit/s的数据数率。
2)        基本可编程逻辑单元
基本可编程逻辑单元是可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。FPGA一般是基于SRAM工艺的,其基本可编程逻辑单元几乎都是由查找表(LUT,Look Up Table)和寄存器(Register)组成。
一般来说,比较经典的基本可编程逻辑单元的配置是一个寄存器加一个查找表,但是不同厂商的寄存器与查找表也有一定的差异,而且寄存器与查找表的组合模式也不同。当然这些可编程逻辑单元的配置结构随着器件的不断发展也在不断更新,最新的一些可编程逻辑器件常常根据需求设计新的LUT和寄存器的配置比率,并优化其内部的连接构造。例如,Altera可编程逻辑单元通常被称为LE(Logic Element),由一个寄存器加一个LUT构成。Altera大多数FPGA将10个LE有机地组合在一起,构成更大的功能单元即逻辑阵列模块(LAB,Logic Array Block)。LAB中除了LE还包含LE之间的进位链,LAB控制信号,局部互联线资源,LUT级联链,寄存器级联链等连线与控制资源。
CLM(Configurable Logic Module, 可配置逻辑模块)是Logos系列产品的基本逻辑单元, 它主要由多功能LUT5,寄存器以及扩展功能选择器等组成。CLM在Logos系列产品中按列分 布,有CLMA和CLMS 两种形态。CLMA和CLMS均支持逻辑功能,算术功能以及寄存器功能, 仅有CLMS支持分布式RAM功能。CLM与CLM之间,CLM与其它片内资源之间通过信号互连 模块联结。 每个CLMA包含4个LUT5、6个寄存器、多个扩展功能选择器、以及4条独立的级联链等。 CLMS是CLMA的扩展,它在支持CLMA所有功能的基础上增加了对分布式RAM的支持。CLMS 可配置为单口 RAM或者简单双口RAM。
3)        嵌入式块RAM
目前大多数FPGA都有内嵌的块RAM(Block RAM),FPGA内部嵌入可编程RAM模块,大大地拓展了FPGA的应用范围和使用灵活性。不同器件商或不同器件族的内嵌块RAM的结构不同,Lattice常用的块RAM大小是9KBIT;Altera的块RAM最灵活,一些高端器件内部同时含有3种块RAM结构,分别是M512 RAM,M4K RAM,M9K RAM。
单个DRM有18K bits存储单元,可以独立配置2个9K或1个18K,其支持多种工作模式,包 括双口RAM,简单双口 RAM,单口RAM或ROM模式,以及FIFO模式。DRM支持可配置的数 据位宽,并在DP RAM和SDP RAM模式下支持双端口混合数据位宽。对于PGL12G,不支持 ROM。。
4)        丰富的布线资源
布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,这些布线资源根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别:
第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;
第二类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;
第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;
第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。
在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有直接的关系。
5)        底层嵌入功能单元
底层嵌入功能单元的概念比较笼统,这里我们指的是那些通用程度较高的嵌入式功能模块,比如PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP、CPU等。随着FPGA的发展,这些模块被越来越多地嵌入到FPGA的内部,以满足不同场合的需求。
目前大多数FPGA厂商都在FPGA内部集成了DLL或者PLL硬件电路,用以完成时钟的高精度、低抖动的倍频、分频、占空比调整、相移等功能。目前,高端FPGA产品集成的DLL和PLL资源越来越丰富,功能越来越复杂,精度越来越高。所有FPGA都有许多专用的,完全定制的低功耗DSP Slice,在保持系统设计灵活性的同时兼顾了高速与小尺寸,每个DSP Slice都由一个专用的25×18位二进制补码乘法器和一个48位累加器组成,两者均能以最高550 MHz的频率运行。乘法器可以动态旁路,两个48位输入可以馈入一个单指令多数据(SIMD)算术单元(双24位加/减/累加或四路12位加/减/累加),DSP包括一个附加的预加器,通常用于对称滤波器中。该预加器可改善密集设计中的性能,并将DSP Slice数量减少多达50%。 DSP还包括一个48位宽的模式检测器,可用于收敛或对称舍入。当与逻辑单元结合使用时,模式检测器还能够实现96位宽的逻辑功能。DSP Slice提供了广泛的流水线和扩展功能,从而提高了除数字信号处理之外的许多应用的速度和效率,例如动态总线移位器,存储器地址生成器,宽总线多路复用器和存储器映射的I / O寄存器文件,累加器也可用作同步向上/向下计数器。
另外,越来越多的高端FPGA产品将包含DSP或CPU等硬核,从而FPGA将由传统的硬件设计手段逐步过渡到系统级设计平台。例如Altera的Stratix IV、Stratix V等器件内部集成了DSP核;Xilinx的Virtes II和Virtex II pro系列FPGA内部集成了Power PC450的处理器。FPGA内部嵌入DSP或CPU等处理器,使FPGA在一定程度上具备了实现软硬件联合系统的能力,FPGA正逐步成为SOPC的高效设计平台。
1.2.3Logos系列芯片简介
紫光同创的FPGA产品线分为Titan系列和Logos系列,其中Titan系列是中国第一款国产自主产权千万门级高性能FPGA产品,采用先进成熟工艺和自主产权的体系结构,广泛适用于通信网络、信息安全、数据中心、工业控制等领域,拥有高达174K等效LUT4逻辑单元、自主的LUT5架构,创新的软硬件一体化开发流程等诸多特性;而Logos系列FPGA采用先进成熟工艺和全新LUT5结构,集成RAM、DSP、ADC、Serdes、DDR3等丰富的片上资源和IO接口,具备低功耗、低成本和丰富的功能,为客户提供高性价比的解决方案,广泛应用于工业控制、通信、消费类等领域,是客户大批量、成本敏感型项目的理想选择。Logos系列FPGA采用了完全自主产权的体系结构和主流的40nm工艺。Logos系列FPGA包含创新 的可配置逻辑模块(CLM)、专用的18Kb存储单元(DRM)、算术处理单元(APM)、多功能高性能IO以及丰富的片上时钟资源等模块,并集成了存储控制器(HMEMC)、模数转换模块(ADC)等硬核资源,支持多种配置模式,同时提供位流加密、器件ID(UID)等功能以 保护用户的设计安全。基于以上特点,Logos系列FPGA能够广泛适用于视频、工业控制、汽 车电子和消费电子等多个应用领域。
下面我们对Logos系列的主要特点做了一个罗列:
1、支持多种标准的IO。
2、灵活的可编程逻辑模块CLM。
3、支持多种读写模式的DRM。
4、高效的算术处理单元APM。
5、集成存储控制器硬核HMEMC 、集成ADC硬核。
总而言之Logos系列FPGA是一款功能相对完善,成本相对较低的高性价比的FPGA芯片,并且经过了市场的长期检验,深受广大工程师的喜爱。
FPGA简介17542.png
图 1.2.9 Logos系列芯片

1.2.4Logos系列芯片的命名规则
一路看下来相信大家已经了解了什么是FPGA并且也知道了我们ATK-DFPGL22G开发板上的芯片型号是PGL22G_6CMBG324,那么大家是否知道这个命名的含义呢,这里我就以紫光的官方文档来给大家做个简单的介绍,方便大家以后自己去选型的时候可能会用得着这个小知识。
我们先来看下我从官方文档中截的图(图 1.2.10),从这张图中我们可以看到它是以Logos系列的芯片为例的:
FPGA简介17851.png
图 1.2.10 Pango芯片命名规则示意图

PGL:紫光同创公司Longo系列;
22:逻辑资源(logic cells)数目;
-6:速度等级(数字越大速度等级越高);
FBG:封装方式;
256:引脚数;
I:温度等级。


回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 18:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表