大家好,我们又见面了,Jaya这次还是一个FPGA本期主角板卡是上次ALINXAXU3EG开发板的进阶板卡也是由ALINX设计的AXU4EV-P开发板。先简单开箱,让大家看看今天主角庐山的真面目。现在ALINX开发板基本上充分发挥了黑底金字。打开快递包装是一种莫名其妙的高度。当你拿出快递箱时,它仍然是两个盒子和AXU3EG开发板配置一致,但盒子尺寸较大。两个盒子,一个盒子用于安装开发板本体,即高黑底金字盒,另一个盒子用于安装相关配件,如下载器、电源适配器、连接线和读卡器。不得不说,黑色盒子对板卡本体的保护还是比较到位的,整个圈子都布满了泡沫。总的来说,对卡的保护是到位的。AXU4EV-P开发板仍以子母板的形式进行比较AXU3EG开发板,从底板的角度来看,可以说有很多功能,一些童鞋可以说,两块板的核心板完全相同,但底板的功能不同吗?从核心板的表面来看,两块是一模一样的,但如果你知道核心的话ZynqUltraScale芯片,可能不这么认为,两个板卡的核心芯片是XCZU4EV和XCZU3EG,无论是逻辑单元还是功能,两款新产品都有一定的差异。下面简单介绍一下Zynq这个神奇的系列。首先Xilinx有那么多不同FPGA系列,Virtex7,Kintex7,Artix7,Spartan7四大FPGA为什么系列要加一个?Zynq系列?Zynq和传统的FPGA什么是别的?其实我们打开的时候Xilinx官方网站可以理解,Xilinx根本没有ZYNQ系列算成FPGA,而是算成了SoC。事实上,SoC更合理,可编辑逻辑门,只是片上系统的一部分,比较经典FPGA,Zynq该系列最大的特点是处理系统PS可编程资源PL分开,固化PS系统的存在,实现了真正意义上的SoC(SystemOnChip)。ZYNQ第一代产品,即Zynq-配备双核7000系列ARMCortex-A9处理器,A9基于28的处理器nmArtix-7或Kintex?-7的可编程逻辑集成,实现优异的性能功耗比和最大的设计灵活性。下图可以理解ZYNQ-7000系列的型号与选型。ZYNQ-7000系列取得了巨大的成功和创新,熟悉电子技术的童鞋一定要懂,CPU或者ARM核心,和FPGA实现这两种设备的方法完全不同,因此适用的功能也完全不同,CPU任务可以顺序执行,FPGA更擅长并行任务。在真实的应用场景中,通常需要两种执行任务的方式FPGA软核在中内建设会消耗大量资源,通用性和可移植性不会差,所以我们可以看到,比如STM32 FPGA,MiniPC FPGA,系统结构等。而ZYNQ这种系统结构的出现打破了常规,内部建立了标准ARM可以满足大多数顺序任务的核心要求。也正是因为ZYNQ许多解决方案的痛点,成功的创新将发展我们现在的AXU4EV-P开发板的ZYNQUltraScale MPSOCEV核心。继ZYNQ-7000系之后XilinxZYNQ该系列正在不断发展,如下图所示,我们可以看到我们本期的主角AXU4EV-P高端开发板使用ZYNQUltraScale MPSOCEV系列芯片。对比我们两次接触的对比。ZYNQU1traScale MPSOC芯片之间的差异。首先是PL端的差异:ZU3EG器件:154K系统逻辑单元,7.6Mb内存360个,DSPslice。ZU4EV器件:192K系统逻辑单元,18.5Mb以及728个内存,DSPslice,对比ZU3EG还会有更多的视频代码单元,这就是EV系列和EG系列的主要差异,VideoCodec,可以进行视频编码H.264/H.265的编码。根据以上数据,我们可以简单地了解两块ZYNQ首先,最大的区别是逻辑单元,ZU4EV比ZU3EG要多出48K逻辑单元越多,逻辑单元越复杂,其次是内存,ZU4EV比ZU3EG要多出多出10.9Mb,整整多出一倍,DSP也是368也是整整多出一倍,两款芯片相对,ZU4EV会更倾向于视频处理,有内部硬件VideoCodec,可以进行视频H.264/H.265编码,多出1路VCU,视频代码单元协助VideoCodec硬核实现功能。相信看了上面的对Xilinx的ZYNQ系列介绍,对整个开发板有了完整的了解,所以关注我们的开发板,我们仍然从核心板开始了解。ALINXAXU4EV-P5片用于核心板Micron(美光)的DDR4芯片,型号:MT40A512M16GE,单片容量1GB,其中PS端挂载4片DDR4(如下图所示,红框)由64位数据总线带宽和4位数据组成GB的容量。ALINXAXU4EV-P5片用于核心板Micron(美光)的DDR4芯片,型号:MT40A512M16GE,单片容量1GB,其中PS端挂载4片DDR4(如下图所示,红框)由64位数据总线带宽和4位数据组成GB的容量。而PL端挂载1片(如下图所示,黄框),16位数据总线宽度和1GB的容量。PS端的DDR4SDRAM最高运行速度可达1200MHz,也就是2400Mbps数据速率。PL端的DDR4SDRAM最高运行速度可达1066MHz,2132Mbps。除了DDR部分核心板上还存储相关芯片,集成了1片256MBit大小的QSPIFLASH(下图,红色框)和美光的8GBeMMCFLASH芯片(如下图所示,黄色框)可用于启动存储配置,以及系统和文件系统。蓝色框在下图中PMIC(电源管理模块)TI(德州仪器半导体)TPS6508641RSKR。这颗芯片是TI特别用于配置FPGA,以及MPSoCs多路电源管理模块集成度很高,有6个DCDCBuck输出,4路LDO输出也可以通过I2C接口,对PMIC部分进行实时的调整和监控。然后我们要看ALINXAXU4EV-P在核心板卡的背面,主要有4个连接器和一些去耦电容器,如下图所示。连接器用于连接主板和底板的信号。这些接口主要扩展PS端的USB2.0接口,千兆以太网接口,SD卡接口等剩余的MIO口;还扩展了四对PSMGT以及高速收发器接口PL几乎所有的端IO口HPI/O共有96个,HDI/O共有84个。XCZU4EV芯片到接口之间的接线处理等长和差异,即使运行高速信号,也能保持较高的信号完整性。ALINXAXU4EV-P核心板卡的尺寸仅为80mmX60mm,可用于定制开发、小尺寸、高集成度的核心板设计,可满足大多数应用场景,方便二次开发。核心板的设计也考虑了信号完整性和电源完整性,整体来说以ALINXAXU4EV-P核心板卡作为蓝本Demo产品原型的设计可以大大提高开发效率,设计和实现核心上层功能。相比于AXU3EG核心板,AXU4EV-P核心板上还是有一些区别的,用两张板卡。PCB应该是同一个板,但是上一个板BOM是有区别的,在AXU4EV-P的版本上U83,U33,U36,还有U36是上件,而且AXU3EG但是核心板上没有上见。其中U33&U34是TPS74801DRCR,具有正常电源指示和使能功能的1.5A、低输入电压(0.8V)、可调超低压降压器TI的高性能LDO,再加上U83,TPS72018DR也是TI的LDO,这三个设备主要用于共享XCZU4EV的GTH或GTY收发器,提供模拟电源电压和终端电路的模拟电源电压似乎是因为AXU4EV-P光纤用于开发板SFP接口和PCIe所以会用金手指GTH因此,收发器的模拟电源需要单独提供高质量的LDO,为什么要使用单独的高质量收发器?LDO呢?主要是因为收发器的速度很快,模拟电路有点偏差就会对整体结果影响极大,为了获取好的结果,且不受其他模块部分的影响,所以理所当然要用单独的,且电源质量更好的LDO,另一个参考,可以看电源部分,ZU4EV手册只给了3%的电源误差空间,这也说明收发器对电源的需求很高。如果收发器这部分详细说明,估计今天不需要做其他事情,感兴趣的朋友可以参考Xilinx文档,自文档。https://www.xilinx.com/support/documentation/user_guides/ug476_7Series_Transceivers.pdfALINXAXU4EV-P核心板上U36这个相对容易理解,这个电源应该是在做板的阶段,专门做兼容设计,这路PL_VCU_0V9电源是专门共给的ZYNQZU4EV核心的VideoCodec部分使用,ZU3EG没有VideoCodec当然,不需要上件。如果感觉ALINXAXU4EV-P如果核心板不够用,ALINX大大还给出了更强的解决方案,AXU5EV-P。如果感觉ALINXAXU4EV-P如果核心板不够用,ALINX大大还给出了更强的解决方案,AXU5EV-P。资源数量再次翻倍,核心主频增加10%。ALINXAXU4EV-P核心板介绍到此结束。让我们看看ALINXAXU4EV-P相比之下,底板部分ALINXAXU4EV-P的底板,可是要比ALINXAXU3EG更丰富:ALINXAXU4EV-P开发板设计框图:ALINXAXU4EV-P开发板配个开发板PCIEx1标准的M.2接口,用于连接M.2的SSD固态硬盘的通信速度高达6Gbps。只支持PCIe固态硬盘,作为一个经常与电脑打交道的人,M就不多介绍了,DP显示接口也不做太多解释,最高支持4Kx2K@30Fps输出。ALINXAXU4EV-P我们常用的开发板的开发板USB3.0,这部分USB实现就是透过USBPHYUSB3320C芯片实现USB功能,加上2对差分信号收发器USB3.0的HUB实现USB3.0功能,口头描述疼痛,直接看图片。其中的Si5332是一颗来自SiliconLabs多路时钟芯片FPGA,其他模块提供参考时钟。其中的Si5332是一颗来自SiliconLabs多路时钟芯片FPGA,其他模块提供参考时钟。ALINXAXU4EV-P开发板上还有两条路Ethernet,通过RGMII接口连接的GPHYKSZ9031RNX。说白了就是我们平时最常见的界面,离不开网口。UART不用介绍太多,通过SiliconLabsCP2102将串口转换为串口MINIUSB接口。AXU4EV-P还有一个扩展板Micro型的SD用户访问卡接口SD卡式存储器,存储器ZU4EV芯片的BOOT程序,Linux操作系统内核、文件系统等用户数据文件。由于电平不匹配ALINX电平换设计在信号上,使用TI的TXS02612RTWR。ALINXAXU4EV-P扩展板具有ALINXAXU3EG所没有的HDMI部分,用的是ADI的ADV7511,ADV7611来实现HDMI所有的收入和产出都可以支持1080P@60Hz。还有MIPI接口用于连接摄像头。MIPI接口15PIN的FPC连接器,为2LANE数据和一对时钟分别连接BANK65的差分IO管脚上的电平标准为1.2V。同时ALINXAXU4EV-P还有扩展板FMCLPC扩展口,可外接XILINX或者我们ALINX的各种FMC模块(HDMI输入输出模块,双目摄像头模块,高速AD等等)模块。FMC扩展口包含36对差分IO信号,分别连接ZYNQBANK65&BANK66的IO上。(如下图所示,红框)ALINXAXU4EV-P扩展板上有许多高速接口,需要使用GTH首先是收发器PCIEx金手指,可以实现PCIE3.0数据传输兼容PCIE2.0。使用ZYNQBANK224的GTH单通道通信速率高达8Gbit带宽。然后是光纤接口,购买SFP光模块(市场1.25G,2.5G,10G光模块)插入这两个光纤接口进行光纤数据通信。2路光纤接口分别跟随ZYNQBANK224的GTH收发器2路RX/TX相连接,每路TX发送和RX接收数据速率高达12.5Gb/s。这样,ALINXAXU4EV-P开发板的整体结构大致都会有个数,软件部分呢还是Vitis统一软件平台,这个平台是Xilinx大大将功能性的软件的一次整合,其内容主要包括:1.全面的内核开发套件,可无缝构建加速的应用。2.完整的硬件加速开源库,针对Xilinx硬件平台进行了优化。3.插入特定领域的开发环境,可直接在熟悉的更高层次框架中进行开发。4.不断发展的硬件加速合作伙伴库和预建应用生态系统这一边。ALINX也很给力的给出了SOP,即标准作业程序,或者叫做UserGuide。总之有了相关说明就比较简单,按照步骤一步一步装下来就好了,正好也没有用过XilinxVitis这里也就当作给童鞋们做个尝试了,不过整体差异应该不会很大,2020年开始Xilinx把IDE打包升级成了新的开发软件群,改原来的DCSoc命名为Vitis,包含了Vivado和HLS,以及导入新的如AI,Vidoe等,专项应用功能软件。VITIS开发环境在上次简单使用ALINXAXU3EG开发板的时候就搭建好了,这次也就省事了,直接开始尝试着使用的阶段。简单的进行文件读写的例子,使用的是裸板程序没有基于Linux,我直接找到ALINX所提供的对应的工程。这个实验相对简单,其根本想要实现的就是通过FATFS,进行SD卡,或者EMMC的读写,FatFs是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。FatFs的编写遵循ANSIC,因此不依赖于硬件平台。FatFs系统提供了很多API函数,我们只需要优先看下,我们在使用需要的部分。f_mount-注册/注销一个工作区域(WorkArea)f_open-打开/创建一个文件f_close-关闭一个文件f_read-读文件f_write-写文件有兴趣想要对FATFS了解更加深入的,可以去看下如下的网站,这个网站给出来了每个API函数的使用说明和例子。http://elm-chan.org/fsw/ff/00index_e.html在例程中提供了EMMC和SD卡的测试程序,程序流程为注册工作空间->检查状态->检查是否驱动准备好,文件系统是否存在,如果不存在,则创建->检查目录文件是否存在,如果有,则删除->写入一个文件->读出文件内容。注意BSP要勾选xilffs库。进行工作空间注册,文件系统检查,如果没有文件系统的时候需要创建文件系统,利用f_mkfs函数,如果是SD0,路径就是”0:”,如果是SD1,路径就是”1:”,创建文件系统需要较长时间,需要等待,再判断是否文件存在,存在的话,先删除掉,然后向其中写入一个文件,并再读出来。操作的代码如下这里还需要定义文件路径,文件内容,文件路径要注意,如果SD0就是“0:/”,如果是SD1就是”1:/”,对于我们的板卡和现在的系统来说,SD0就是EMMC,SD1就是SD卡。下载EMMC的程序到开发板,则会打印以下信息,如果EMMC中已经存在目录文件,则会打印第一条语句,最后一条语句则是打印文件中的内容。如果是SD卡,也会有一样的log产生,只不过我们可以将卡拔下来在电脑上进行观察。这样呢我们就跟着例程,实现了裸板的FATFS读写SD卡orEMMC的实验了,有SOP和参考教程实现起来真的相对简单方便。然后我就再找编译好的petalinux的系统,在资料里翻了半天总算找到了相关的image,只是这个应该是编译出来的二进制文件,并没有进行打包,我们想要烧录还是稍微有点麻烦,需要根据地址,将文件烧录在SD卡的不同地址区间。折腾了一通,我想,我们还是选择用ALINX给我们随箱带的SD卡进行启动。回头重新编译来过。使用ALINX提供我们的MINIUSB转USBYTPEA的线连接我们电脑的USB口和板卡的PSUART。通过软件打开串口,串口端口COM14(这个不同电脑端口号会不同,可以自行在设备管理器中查看),串口波特率115200。然后我们登录ALINXAXU4EV-P开发板PS端的系统:使用的用户名:root,密码:root。查看下CPU的参数:系统使用的是Xilinx家自己的petalinux。相对来说我们想要在这个系统进行一些工具的安装,就需要进行交叉编译方式,将软件编译进系统。这一般来说需要Linux系统的参与。ALINXAXU4EV-P开发板PS端CPU的参数,上面只有显示4个CPU,但是我有些好奇,CortexR5的两个试试内核应该怎么使用呢,还要好好研究一下。当ALINXAXU4EV整块板卡运行起来的时候,系统基本处于idel状态,整板的功耗大概在13.57W左右,相比较于我们之前的ALINXAXU3EG的11.78W整整多出将近2W,其实主要开销可能是在底板上额的功能芯片,和ZYNQ内部更大的逻辑和内存的开销。整体来说还是很可观的。声明:本文系电路城的原创内容,转载请注明出处!