ZYNQUltraScale+MPSocFPGA初学笔记
前⾔
最近要做新的设计⽤到Xilinx ZYNQ UltraScale+ MPSoc系列的芯⽚。⽂档看到吐,阅读间隙和妹⼦聊天,还被吐槽太闲。⼈⽣不易,我决定把近⼏⽇所学,整理成⼀篇⽂章,让⼤家少⾛点弯路,少被妹⼦吐槽。
⼀、ZYNQ UltraScale+ MPSoc的EG系列
Xilin的FPGA芯⽚主要分为两⼤类FPGA和SOC系列,FPGA产品就是我们以前⽐较熟悉的Spartan、Artix、Kintex和Vertex系列的产品,是纯逻辑产品,有不同的逻辑规模、速度等级和制程。SOC就是将FPGA和处理器单元以及常见处理器外设封装在⼀起,试图以单芯⽚解决整个控制部分的设计,Xilinx冠之以ZYNQ的名字。⽐较常见的ZYNQ-7000系列便宜、够⽤,灵活性⼤,很多⼯业场合都会使⽤。
下图就是ZYNQ系列图谱。他们的主要区别在于处理的数量和逻辑规模的⼤⼩,越⾼端的系列集成了数量越多等级的越⾼的ARM核,⾼端的⾥⾯还有⼀个RFSoc系列,集成了射频的数据转换器,可能是针对雷达和通信系统的。
⾼端系列⾥⾯的UltraScale+ MPSoc有EV和EG两个系列,EV系列⽐EG系列多⼀个Video Codec,可以⽤来进⾏更⾼效的视屏处理,我们今天为例学习的XCZU19EG属于EG系列,它有四核Arm Cortex-A53双核Cortex-R5。
MPSOC系列芯⽚名字太长了,刚上来根本他喵的记不住啊,⾸先我们看⼀下这个系列的命名规则,简单记忆之后我们⼤概能根据芯⽚的名字得出芯⽚的基本信息,包括封装、速度等级、⼯作温度等。
⼆、UltraScale+ MPSoc EG系列概要
⾸先,来我们看⼀下我们选择的这块芯⽚的内部资源。
Huck,是不是很惊喜,根本不知道这些都特么是啥啊,我该怎么⽤啊。没事,我也是从⼀团雾⽔,慢慢搞清楚的。
我们先看⼀下系统内部资源模块图。
这样⼀看是不是清晰很多,这个芯⽚分为PS(Processing System)和PL(Programmable Logic),就是处理器部分和逻辑部分。处理器部分⽐较复杂,除了各种Arm核之外,还有GPU、DDR控制器,当然
也集成了我们常见的外设DMA、Watch Dog和各种各种常见的⾼速接⼝。PL部分就相对简单,主要是处理计算、⾼速连接和IO。PS和PL部分各⾃集成了⼀个10bit的ADC来进⾏系统监测,称之为System Monitor。
三年大变样哺乳期能烫头发么从硬件⼯程师的⾓度,我将分IO、电源、时钟与复位和外设四个部分来介绍EG系列芯⽚,其中时钟与复位和外设部分会放到另外⼀篇或者⼏篇⽂章进⾏讲述。
三、IO
MPSoc系列的芯⽚都很复杂,⽐如XCZUxxxx-2FFVC1760E有1760个管脚,刚上来的时候看到原理图我差点哭出声,但是我忍住了,不能弄脏我新配的眼镜。
官⽅⽂档给出了⼀个分类图,花花绿绿的⼀顿操作,然鹅,我们并不知道它有哪些东西。
经过⼀番努⼒,我做出了下⾯这张脑图,原创,建议打赏然后收藏。
说明:为了便于记忆每个IO Bank后⾯括号⾥的数字代表XCZU19EG所拥有的Bank号,⽅便你看到bank好的时候知道这个bank所在的分类。
3.1 IO分类
IO由⼀个个Bank组成,⾸先要分成PS和PL两部分。PS的部分可以分为以下四个部分:
文件删不掉
泣不成声的意思1.PS MIO,即Multi-function IO。每个bank有26个IO,⼀共三组,这些IO就是⽀撑了常见的外设如串⼝、I2C、SPI等,也可以⽀持SD卡、NAND和eMMC的接⼝。再坚持一下
招聘门卫也可以⽀持SD卡、NAND和eMMC的接⼝。
2.PS-GTR。这是PS的⾼速收发器bank,有四对⾼速收发器和四对时钟,可以⽀持我们常见的各种⾼速接⼝,PCIE、DP、USB、SATA等,需要⽤到⾼速收发器的接⼝。
3.PS DDR。这是DDR controller的接⼝,⽀持ECC功能,不在此详述。
4.PS config。配置端⼝,JTAG就是在这⾥,模式设置、参考时钟、复位和错误指⽰等接⼝都在这⾥。
PL分为两⼤类,IO Bank和⾼速收发器。
哆啦a梦历险记⾼速收发器分为GTH、GTY和GTM,他们的主要区别是传输速度,每组我们成为⼀个Quad,⼀个Quad有四个收发器差分对和两个时钟差分对。我们所选的芯⽚没有GTM收发器。徒步鞋推荐