最近在工作中发现,虽然一直都在用FPGA,但是对器件本身的了解还有太多遗漏,这是野路子自学的后遗症。现在接触的多了,能看见自己当初都遗漏了些什么,算是亡羊补牢吧,开始一点一点的把以前遗漏的东西捡起来,这篇博客是个开头,之后会陆续看一些FPGA内部资源的文档,然后写读书笔记发上来。基本上我发上来的东西都是我不是很熟悉的,所以错误可能在所难免,还希望路过的大神能指点一二,小弟先谢过了。
1.Xilinx的四个工艺级别
Xilinx目前主要产品有四个工艺等级,通常情况下,Xilinx的产品每个工艺都会有Spartan、Artix、Kintex和Virtex四个族,如下图所示。
其中45nm工艺的产品只有Spartan6还在“苦苦支撑”,其余产品均已“下架”,随着今年(2017年)5月11日Xilinx官方宣布Spartan7进入量产阶段,Spartan6的生命已经进入了倒计时阶段。
28nm工艺的7系列芯片是Xilinx目前主推的产品,本文就是对该系列的产品进行大致的介绍。
另外,尽管早在一年多以前的2016年10月13日,Xilinx官方就已经宣布了16nm的FPGA已经进入了量产阶段,但是到现在为止,20nm和16nm工艺的FPGA还是只存在与“传说中”。
2.Virtex、Kintex、Artix和Spartan
Virtex系列的器件不仅代表着Xilinx的最高水准,往往也是整个FPGA业界最好的器件。这个系列的器件一般应用于高速联网(10G~100G)、便携雷达和ASIC原型验证等领域,这些领域的特点是对资源数量和性能要求高,但是对功耗和成本不怎么敏感。
Kintex系列器件相对于Virtex系列器件在成本和功耗上做出了一定程度的让步,在成本、性能和功耗之间达成了一个相对比较好的平衡,但是成本依旧比较高。Kintex器件一般应用于3G/4G无线通信、显示和Video IO Over等领域。
Artix系列器件在尽可能不降低性能和资源数量的情况下大幅降低了器件成本,国内医疗设备和军工行业用这个系列器件用的比较多。
Spartan系列器件的性能和资源数量都远不如前面三个系列,但是胜在价格便宜,所以这个系列的器件在消费电子、汽车电子和工业领域的应用相对比较广泛。值得一提的是,Spartan系列器件的性能要比友商Altera的Cyclone系列(跟Spartan对标)高出不少,比如说,Spartan6是支持DDR3的,但是在其之后很晚才面试的Cyclone10全系类都不支持DDR3。
3.Xilinx器件的订货编号(厂商编号)
FPGA器件表面有一行很长的有字母和数字组成的字符串,这个是Xilinx的订货编号,我习惯称之为厂商编号。7系列各族FPGA的厂商编号具体含义如下图所示:
()
从上图中可以看出,除Spartan系列器件的厂商编号是由十个字段组成之外,其余三个系列的厂商编号都由9个字段组成。
四个系列器件的左数第一段编码都是"XC",这俩字符表示该器件是Xilinx生产的商业级器件,另外还有军品级和宇航级,不过这俩等级国内不太可能通过正规渠道购买;
左数第二个字段代表该器件属于Xilinx的第几代器件,7系列的这个字段都是7;
左数第三个字段代表该器件属于哪个族,S代表Spartan、A代表Artix、K代表Kintex、V代表Virtex;
左数第四个字段,实际器件上印的是一位或多位阿拉伯数字,这个数字乘以1000就是该器件大致的资源数量,只是大致,并不准确;
左数第五个字段用于表示该器件的速度等级,-3最高,-1最低,带L的表示该器件是低功耗器件(低功耗器件的供电电压比普通器件更低)。这个参数是厂商对芯片测试筛选后印到芯片上的,是一个经验值。该值越大,表示Block RAM和高速IO等资源的最大时钟越高,因此在进行设计时需要慎重考虑该数值。
接下来,Spartan器件的第六道九四个字段和其余三个族的器件的第六到八个字段是该器件的封装信息,这几个字段里最后一个字段的数字代表该器件的引脚总数(跟用户引脚数有区别),另外几个两三个字段的含义就不是很明白了。
最后一个字段表示该器件的温度等级,国内比较常见的是C和I;C代表商业级(Commercial),可以在0℃到85℃下正常运行;I代表工业级(Industrial),可以在-40℃到100℃下正常运行。另外两个等级,对我而言还是只存在于“传说中”。
4. 7系列FPGA内部资源概况
下图是7系列FPGA各族资源的简单对比。
下面一系列图片是各族FPGA资源概览,其中的IO资源是按最大封装标出来的,各个器件实际IO资源后面会放。
从上面的四张图片中可以看出,Virtex7跟另外三个族都不在一个画风上,最小逻辑单元(Logic Cell)数是330K个,另外三个族最大逻辑单元数量分别是480K/200K/100K......
Kintex7看着老大默默安慰自己:好歹咱全型号都配备了GTX,没事,没事;Artix7哭晕在了厕所里,都是一个妈生的,差距怎么就那么大尼?Spartan7已经陷入了绝望的深渊:马丹,为啥不给我配PCIe和高速收发器,Spartan6还有个“T”呢,老纸的T呢?!T呢?!
值得一提的是,7系列FPGA上集成了一个ADC模块,就是那个“XADC Blocks”,这玩意不仅可以从引脚采集电压值,还能监控自身的供电电源,虽说这玩意在CPU和MCU上不是啥新鲜玩意,但是在FPGA上还是蛮新奇的,起码对我而言是。
注意看Virtex7那张图下面第1条和第6条Notes,Virtex7还细分了Virtex7T、Virtex7XT和Virtex7HT。
5. 7系列FPGA IO资源和高速收发器资源概况
下面一系列图片是不同封装FPGA的IO资源和高速收发器资源表:
IO资源依旧是Virtex7碾压另外三个族......
从上面的几张图中可以看到,7系列的FPGA IO资源有HR和HP两种规格。HP支持1.2V~1.8V电压,HR支持1.2~3.3V电压。前者的最高传输速率要比或者高,但是明显前者的使用范围更窄,这个就需要根据需求自行判断需要哪种了。
论质量的话Kintex7其实要略胜一Virtex7筹,毕竟Kintex7全型号都支持GTX,同时全型号都有HR IO,大部分型号还兼备HP和HR两种规格的IO。
7系列三种高速串行收发器的性能如下
- GTH:500Mb/s~13.1Gb/s
- GTP:500Mb/s~12.5Gb/s
- GTP:500Mb/s~6.6Gb/s
具体到每个器件时,最高传输速率还收到前面提到过的速度等级的影响。另外,Xilinx有用来配置高速串行收发器的IP核,在这个IP核里可以设置具体的传输速率和编解码等属性。
6.关于价格,看看就好
最后放几个淘宝上各族FPGA的报价感受一下为什么说FPGA总体上不适合大规模消费电子领域。
Spartan7还没有正式出货,这里先用Spartan6代替一下: