本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

初学者进阶的福音,异构 MPSoC——ALINX AXU2CGA/AXU2CGB 开发板评测

发布时间:2021-01-25
分享到:

初学者进阶的福音,异构 MPSoC——ALINX AXU2CGA/AXU2CGB 开发板评测

发布时间:2021-01-25
分享到:

哈喽,我们又见面了,Jaya 本期带来的开发板是ALINX 基于Xilinx Zynq ultraScale+ MPSoC的异构FPGA开发板ALINX AXU2CGA/AXU2CGB。这两块开发板的区别是:AXU2CGA是2片DDR4 32bit的,不带EMMC;而AXU2CGB是4片DDR4 64bit的,带EMMC,因此本文主要评测的是AXU2CGB 开发板。

尽管板卡使用的使XCZU2CG 使Xilinx Zynq ultraScale+ 系列的丐版,但是拿来上手Xilinx Zynq ultraScale+ 系列FPGA再适合不过。

我们先来开箱,看下AXU2CGB开发板,简单的了解开发板的整体套件组成。先来看外包装。

外包装相对朴实了一点,不像AXU3CG的主板外包装,标准硬纸壳,少了黑色底金色logo的气质。不过整体来说,还在中规中矩的范围范围,内部加了海绵进行缓冲,外包装的纸盒也是比较硬朗的那种,对板子的保护性能来说不必黑底金字的包装差,只是看起来没有那么高大上。毕竟价格还不到对方的三分之一,想要同等待遇,确实有点过分。

OK就说到这,我们看下套件的组成,虽然外包装有点缩水,不过我们买板子最重要的当然不是看外包装玩对吧,我们最关注的肯定是板子和配套的的器件对吧!把包装盒打开来看看!器件的已经拿出来了,首先我们最关注的核心板被包装盒的海绵保护的好好的,丝毫不用担心,线看看其他的配件,这些配件还是老样子,除了开发板,ALINX的配套器件基本一样,一套Jtag的调试器,一根USB MINI 转Tyep A口的数据线,一个12V 3A的电源,一个川宇蓝白相间的读卡器,保修卡,以及和调试器配套的线材,与AXU3CG开发板相比,唯独的区别就是AXU3CG 适用的是一个风扇作为开发板的散热,而AXU2CGB开发板是用的一个很大块的散热片。对于ZYNQ UltraScale+ 系列的板卡来说,功耗可以达,也可以相对较小,主要差异就是逻辑资源使用的多少,逻辑资源使用的越多,那么需要的瞬间功耗也就会越大,如果电源无法支撑,就会无法运行,一般情况下损坏的概率还是不大的。所以电源的动态响应要高一些。

这里呢,简单的说配件,其实从个人使用习惯来说,比较希望板卡的最多插三根线,一个根电源线,一根网线,一根串口线,当然串口可以和电源合并当然最好。ALINX大大给提供的配件中包含JTAG,我也在思考ALINX 大大为什么不把JTAG坐在板卡上呢?,做在板子上,如果使用FT2232的方案,就可以将串口和JTAG同时从要给USB MINI 口引入,对于我们这种懒癌重度患者起步美哉?后面小编仔细的想了下,分离的JTAG有分离的好处,首先就是成本的问题,这个成本是针对用户来说的,如果我们手中有了一个ALINX JTAG的调试器,这样就可以使用这个调试器调试n多块拥有JTAG的板子,这些板子也不需要板载调试器,学习的成本就会节省。其次呢,我们使用的Zynq系列的开发板,这系列的芯片最主要的特性就是包含了FPGA和ARM SoC两个部分,FPGA的调试是使用JTAG比较方便,不过到了ARM的部分,JTAG就没有那么重要了,多数的PS 端开发,完全不需要使用JTAG,so ALINX 大大这样做是有充分思考的,JTAG CABLE 使用的都是标准JTAG接口,一个是2.54mm 的两一个是2.0mm 的,可以相容大多数FPGA的板卡,即使少部分不相容可以使用2.54的排针进行端口转接。

然后就是串口线的部分,现在来说Type C大行其道,逐步成为外设接口的主流,在USB3.2的协议中明确规定将不再支持USB YTPE A ,TYPE B,以及所衍生的MINI USB 和MICRO USB 接口,ALINX 大大可能进展还没那么没有跟上,不过我相信,也许新的版本上就会更新的Tyep C版本的开发,一根线横扫供电和通信。其他的部分JAYA没什么感觉毕竟都是ALINX 大大验证过的标准备件。

下面就是我们开发板的主题,这次的AXU2CGB 开发板,可以算是面向学习者的入门级开发板,作为入门级的开发板,ALINX AXU2CGB 开发板可以算是把入门FPGA的基础资源准备的一应俱全,当然对于入门级开发板来说,是以学习为主,相关的扩展性会稍微差一点,成本也会更低些,重要体现在,ALINX AXU2CGB 开发板,并没有使用核心板加扩展板的方案,也就是说这款开发板的核心器件是不可以更换的,在项目中,如果评估的不完善,或者需要加入新的模块,原本的开发板可能会出现资源不够的情况,这时候就可以通过更换核心板而将系统的资源再次扩展,当然对于学习来说这个部分的意义不大。

下面我就来看下我们的这块入门级开发板的硬件按配置,接口如下图,整体来说接口很完善,常见的接口,十分适合初学者与有一定FPGA基础的童鞋学习玩耍。

我先从硬件来开始分析分析这款款开发板,看看入门级别的开发板的用料到底怎么样,我们从最基础的结构开始逐步向外发散到接口,分析下板卡的用料。

最基础的结构都包括什么呢?这个问题非常简单,在整个系统中,没了哪些部分整个系统将会无法运行呢?那么这些就整个系统的最基础的部分,比如电源,时钟,存储,处理器这几样,如果少了些系统时不会跑得起来的。下面我们来看下具体的位置。

如上图,红框内遍布着大量电感的部分就是本次入门级开发板的供电部分,也就是开发板的心脏,由心脏来提供电能给整块板卡,使整块板卡运动起来,对于FPGA来说,对于电源的要求是比较高的,因为FPGA启动的瞬间会有超多的逻辑在一瞬间动起来,这里就是考验一个电源实力的时刻,并且由于Zynq 集成了FPGA 和ARM 硬核的原因,需要的电源数量也是极其的多。这里我们课可以看间ALINX 大大,使用了一块来自TI 德州仪器半导体的TPS650864 多轨可调的PMU(power management unit)。使用电源管理电源的好处是整体电源结构比较集中,可以提高电源密度,并且在德州仪器半导体的加持下电源的质量是不用担心的。这颗TPS650864 多轨可调PMU 适用于多核处理器,FPGA,以及整套系统。

可以看见这周围的电路比较复杂,附一张Spec中的结构图纸。

图中的黄色部分是AXU2CGB 入门开发板的DDR 部分:

AXU2CGA板上PS端配有2片Micron(美光)的共1GB的DDR4芯片,型号为MT40A512M16LY-062EIT,组成32位数据总线带宽和1GB的容量。AXU2CGB板上PS端配有4片Micron(美光)的1GB的DDR4芯片,型号为MT40A512M16LY-062EIT,组成64位数据总线带宽和2GB的容量。PS端的DDR4 SDRAM的最高运行速度可达1200MHz(数据速率2400Mbps)。

如图中,绿色部分位是eMMC,AXU2CGB 配有一片来自江波龙半导体,容量为 8GB 的 eMMC FLASH 芯片。eMMC FLASH 连接到 ZYNQ UltraScale+的 PS 部分 BANK500 的 GPIO 口上。

橙色的部分是SILICON LABS的时钟芯片Si5332B,Si5332B 任意频率时钟发生器提供高集成水平,可在 ADAS、信息娱乐和自主驾驶硬件平台中实现完整时钟树整合。可以任意输出范围为 10 – 200M频率,该设备具有 MultiSynth™ 分数和整数分频器,可同时输出多达 8 种不同的时钟。
然后最后的主要就器件就是我们的MPSoC,Zynq UltraScale+ CG核心芯片了,这里ALINX提供了我们两种规格的核心板,分别是AXU2CGA,以及AXU2CGB。两块入门级开发板参数对比如下表:

MPSoC均采用XCZU2CG,相关资源如下图:核心部分是适用双核的ARM Cortex-A53,1.2GHz,和双核的Cortex-R5,500MHz。

这样板子的上核心器件我们简单的介绍完毕,下面就是怎么板卡的接口,如果我们想要和FPGA 或者ARM愉快的玩耍就离不开板卡的外设,想实现一些有趣的功能也少不了与接口的互动,板子上的接口主要包含DP接口,PCIE接口,MIPI接口,USB3.0接口,MINI USB 串口接口,千兆以太网RJ45接口,JTAG接口,EEPROM,SD卡接口,以及我们刚刚开始接触板卡的第一程序,4个LED灯,以及4个用户Button,和拨码开关,以及Reset Button。整体尺寸为85mm * 100mm,相对来说在FPGA 开发板的族群里算是比较苗条的了,同时还可以给我们提供足够的畅玩空间。

对于JTAG的接口来说,是我们玩耍PL端的所不能或缺的,ALINX适用的是标准的jtag接口,通过连接JTAG接口就可以对PL 以及PS的运行状态进行监控。

拨码开关的部分,主要用来配置ALINX AXU2CGB 开发板的启动模式,具体的配置方法如下表:

LED,BUTTON均位于JTAG接口的上面,BUTTON的按键因为有一个较高的JTAG接口在当着,按下时会比较费事,应该是板卡的密度太高,周边都被丰富的接口堵住,导致按键BUTTON没有了板边的空间。相应的,每个BUTTON上都有相关的丝印。只是部分被JTAG接口盖上,但是基本不妨碍我们来阅读,还是给好评的。

MINI DP 接口为于USB 3.0右边,AXU2CGA/B 带有 1 路 MINI 型的 DisplayPort 输出显示接口,用于视频图像的显示,最高支持 4K x 2K@30Fps 输出。ZU2CG PS MGT 的 LANE0 和 LANE1 的 TX 信号以差分信号方式连接到 DP 连接器。DisplayPort 辅助通道连接到 PS 的 MIO 管脚上。

AXU2CGA/B 板上有 4 个 USB3.0 接口,接口为 HOST 工作模式(Type A),数据传输速度高达 5.0Gb/s。USB3.0 通过 ULPI 接口连接外部的 USB PHY 芯片和 USB3.0 HUB 芯片,实现高速的 USB3.0 数据通信。

相应的PHY的管脚分配如下图:

AXU2CGA/B 配备了一个 PCIE x1 的插槽,用于连接 PCIE 外设,PCIE 通信速度高达5Gbps。PCIE 信号直接跟 BANK505 PS MGT 收发器的 LANE0 相连接。这样我们就可以适用外接的方式扩展PCIE 设备,虽然只有X1,但对于初学者入门,再适合不过了。

AXU2CGA/B 板上有 2 路 MIPI 接口,用于连接 MIPI 摄像头。MIPI 的差分信号分别连接到 BANK64、65 的 HP IO 上,电平标准为+1.2V;MIPI 的控制信号连接到 BANK24 上,电平标准为+3.3V。

到这里呢板子上的控制接口和高速接口也就大概的介绍完毕,主要就是DP,USB,PCIE,MIPI。剩下的一些比如SPI NOR Flash,比如I2C的EEPROM,再比如40PIN GPIO接口什么的,基本是都是大家耳熟能详的了,就再具体说明了,额对大家要注意,板卡的两边的40PIN接口并不是完全一样的,电源口朝前的时候,左手边的40PIN 接口的IO点评是1.8V,右手边的40PIN接口IO电平才是3.3V。在接模块的时候要千万要注意。

硬件部分的介绍告一段落,在我们进入软件实操之前,这里还是有一点要大家注意的,在整套的配件包里是有一个散热片的,Jaya在最开始的时候将他忽略了,也不是故意将散热片忽略,主要还是想看看2CG系列的芯片温度怎么样,于是就是裸着上电了,系统正常跑起来,跑了能有5分支左右,Jaya摸了下AXU2CGB的ZYNQ,由于室内温度只有十四五度,芯片表面的温度大概有50度左右,相对来说还好,不过Jaya还是推荐将散热片加上,芯片表面50度,内部核心可能已经接近八九十度了,一般来说芯片的结温是125度(商用,高于结温会有损坏的风险),并且适用时间还不是很长,温度应该还没有趋于热平衡,再加上FPGA的逻辑资源还没有全部运转,如果全部加在一起这个温度可能会瞬间翻倍,虽然不至于烧坏芯片,如果长期适用还是对板卡有损耗。

先来尝试下PL部分的适用,其实和操作FPGA是一样的。简单适用PL端点一个灯,首先我们要安装FPGA的开发幻剑Vivado,或者Vitis。vitis HLS 能提高系统设计的抽象层次,为设计人员带来切实的帮助。vitis HLS 通过下面两种方法提高抽象层次:第一,使用 C/C++作为编程语言,充分利用该语言中提供的高级结构。第二,提供更多数据原语,便于设计人员使用基础硬件构建块(位向量、队列等)。与使用 RTL相比,这两大特性有助于设计人员使用 vitis HLS 更轻松地解决常见的协议系统设计难题。最终简化系统汇编,简化 FIFO 和存储器访问,实现控制流程的抽象。

这个部分就具体描述了,官网下载,然后安装软件。基本没有什么难度。下图就是vitis的启动界面,vitis 集成vivado,可以满足我们PL的适用。

我们既然想要点灯,第一点就必须要了解LED灯的硬件电路是怎么设计的。

然后打开vivado 创建工程:

在不断的下一步过程中,需要选择芯片的型号时,在“Part”选项中,器件家族“Family”选择“Zynq UltraScale+ MPSoCs”,封装类型“Package”选择“sfvc784”,Speed 选择”-1”,Temperature 选择“I”减少选择范围。在下拉列表中选择“xczu2cg-sfvc784-1-i”,“-1”表示速率等级,数字越大,性能越好,速率高的芯片向下兼容速率低的芯片。点击Next

这时候我们就可以选择Finish,来完成工程的创建。

然后我们在工程创建以个LED的verilog文件,选择add sources。 -> 选择添加或创建设计源文件“Add or create design sources”,点击“Next” -> 选择创建文件“Create File” -> 文件名“File name”设置为“led”,点击“OK”

这样我们就创建好一个LED.v 的文件。在文件中输入Code,定义一个寄存器,用于循环计数,寄存器 timer 变为 0,并翻转四个 LED。这样就是实现了一个点灯的流程。

PL部分的简单例子就到这这里。下面我简单使用下PS端的资源。我们将板卡的拨码开关拨到SD卡启动,然后再SD卡中安装ALINX AXU2CGB 开发板的测试image。相关的文件存储在,资料文件中的factory_file中。

在文件中会有相关的说明,告知我们应该怎样回复SD卡的内容。使用ALINX大大提供的工具,将相应的文件选上既可以完成SD Zynq启动卡的制作。

熟悉Zynq 环境的小伙伴也可以通过Petalinux来制作属于自己定制的Petalinux 系统。相应的烧卡方法也时很简单的,使用fdisk给SD卡分区,0分区为fat32,1分区为ext4,将rootfs使用dd命令烧录到分区1,再把打包好的BOOT.bin 和 iamge.ub cp 到0分区大功告成。当然后如果没有Linux 的环境就比较麻烦了。还需要将环境搭建起来才可以进行SD卡的制作。

SD卡也有了我们上板使用。如果使用ALINX大大提供的image的话,开机就会进入检测阶段。整个时间大概会持续几分钟,插入网线后ETH会状态会从wait变为OK,按按键1-4也是会有同样的效果。

++++++++++++++++++++++++++++

如果对应输入后:

我们输入用户名和密码进入系统,一般来说petalinux 如果没有特意修改的话,用户名和密码都是root。

Ok这样我们就进入到系统里了。我们来读下CPU看看是不是有两颗CPU。看了下cpuinfo,确实是两颗CPU但是并没有识别到CUP的型号。

但是有点奇怪的是这里并没有把Model name读出来,下图是我顺手读了了下ZYNQ 7010的板子,可意见Model name一栏会有ARMv7的标值。

空载的情况下,ALINX AXU2CGB 开发板的功耗基本维持7W左右,由于系统是12V供电中间还有电源的转换效率,按照80%来算板卡的空载功耗可能接近6W。对于这个级别的FPGA来说也中规中矩。

 

再来一张之前的ALINX AXU3EG 开发板功耗对别

可看的出来EG的芯片比CG多出一个GPU以及一些逻辑单元功耗上要多出来50%,总的来说对于初学者来说尤其是想要了解FPGA和ARM两头抓的小伙伴,ALINX AXU2CGB 开发板再合适不过了,老的ZYNQ 7000系列相对来说是最初赛灵思相对试水的产品,并且整体更偏向于FPGA的部分,使用ARMv7来给FPGA打辅助,EG系列开始,ARM A53才开始爆发出ARM的性能,使得FPGA和ARM完美的配在一起,相辅相成,新的开发环境vitis又再FPGA和ARM两端搭建桥梁,使整体的开发更加流畅,新版本的Petalinux,也一改之前问题连篇的情况,趋于更加好用,协助我们完成相应的设计以及学习和开发工作。那么本期的ALINX AXU2CGB 开发板的测评就到这里。有兴趣的小伙伴可以关注ALINX的官网。

原创声明:本文系电路城原创测评,如需转载请注明来源出处!

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论