前言
2022年11月30日,OpenAI推出聊天机器人ChatGPT。仅用了2个月,月度活跃用户就达到了1亿人。2024年2月15日,文本生成视频应用程序Sora横空出世,强势登上各大媒体热搜榜。对此,众人纷纷感叹,人工智能时代已经来临!
人工智能是个大的学科领域,而ChatGPT和Sora则是人工智能领域下的机器学习类应用程序。机器学习,是使用一定的算法,让计算机能够从数据中得出模式和规律,并进行自主学习和改进,可以在没有明确编程的情况下做出决策或预测的行为。机器学习在我们的生活中随处可见,如语音识别、人脸识别、自动驾驶等,改变着我们生活中的方方面面。
目前常见的AI芯片有GPU、FPGA和ASIC。机器学习应用的爆发,使得原本小众的FPGA,因其高算力、低功耗和高灵活性,迎来了快速的发展,市场需求也成倍地增长。
本文将介绍一款基于AMD Xilinx Zynq UltraScale+ MPSoC,低成本、高性价比的FPGA开发板——Avnet(安富利)ZUBoard 1CG。
- 产品介绍
如图,ZUBoard 1CG FPGA开发板外形尺寸为135.00 x 75.00 mm,大概就是成人巴掌大小,非常精致。背面有5个软胶脚垫,方便放置。整体元器件布局也很整齐,看起来很舒服。
ZUBoard 1CG功能丰富、灵活性高、价格合理、拥有大量的参考设计和学习资料,可以让工程师尽情地学习和实验AMD Xilinx Zynq UltraScale+体系结构。
ZUBoard 1CG开发板具有81K可编程逻辑单元,双核Arm Cortex-A53 和双核Arm Cortex-R5F,1GB的ISSI LPDDR4,可设置的256Mb ISSI QSPI闪存或microSD卡启动选项。4个ZU+ PS GTR收发器、18个PS MIO和69个PL I/O都通过三个Samtec扩展连接器和一个Click Board座子引出来了。
主要特性:
- AMD ZU+MPSoC XCZU1CG-1SBVA484E
- 双A53 APU和双R5 RPU
- 56KB片上存储器
- 81900个FPGA逻辑单元
- ISSI 1GB LPDDR4,带片上ECC(错误检查和纠正技术)
- 可选的ISSI 256Mb QSPI或microSD卡启动
- PetaLinux环境可供下载
- Microchip 10/100/1000有线以太网PHY和MAC ID EEPROM
- Microchip USB 2.0 PHY
- Microchip USB-C输入电源控制
- Dialog GreenPAK开/关控制器和电源时序器
- TDK μPOL电源模块
- 板载JTAG和UART调试接口
- STMicroelectronics温度和压力传感器
- 支持后备电池实时时钟和FPGA比特流加密,带ECS和自定义电源
- Samtec连接器实现的扩展
- 用户可控制的RGB三色灯和单色LED
- 用户可控制的滑动开关和按钮I/O
二、外设介绍
图中已经非常清楚地标识出了各种外设及接口,在此笔者就不一一介绍了,挑几个常用的接口介绍一下:
- 15V USB C Power Input(J15),这个接口是电源输入口,官方的建议是15V/3A,板上有个Microchip UPD301C/KYX USB PD控制器,有些笔记本5V/9V/15V/20V自适应输出的适配器,是刚好符合要求的。没有的话也没关系,某宝搜“45W PD充电头”,找有5V/9V/15V/20V电压输出的品牌货(尽量不要用杂牌),也是没有问题的。
- USB JTAG/UART(J11),JTAG/串口调试用的,板载FTDI FT2232HL USB转串口芯片,所以只需要一根MicroUSB数据线就行了。注意不是串口线,也不是Type-C数据线。
- USB 2.0 Type A Ports(J13),这个可以接USB摄像头用。
- Ethernet Connector(J11),RJ45网口座,接网线与电脑连接传输数据。
- microSD socket(J12),可以将装载有系统的microSD卡插在此处,调整Boot mode switch(SW2),设置成SD卡启动,就可以运行microSD卡中的系统了。
- Power ON/OFF button(SW7),电源开关按钮,上电后,按一下开机启动系统,需要关机时,长按10秒。
- Reset button(SW6),复位按钮,通常是开机连接串口后,串口软件中看不到开机信息时,可以按这一下复位,重新启动系统,这样就可以看到开机信息了。
- 开箱测试
hackster上目前发布了有20个左右关于ZUBoard 1CG开发板的project,包括Avnet官方和一些兴趣爱好者的。内容详细,教程简单,大大地降低了FPGA的上手难度。这里就以摄像头识别手势的project为例,展示一下这个开发板的玩法。
Project原文链接:
https://www.hackster.io/AlbertaBeef/asl-classification-with-vitis-ai-025765
- 准备工作
硬件部分:
- ZUBoard 1CG开发板
- 15V/3A Type-C接口电源
- micro USB数据线
- 网线
- USB摄像头
- micro SD卡(16GB或以上)和读卡器
- USB-A转RJ45网口转换器(选配,不带网口的笔记本要用)
软件部分:
- SD卡镜像文件,可以在上面链接中找到下载,注意文件较大,解压后约11GB。
- SD卡镜像文件烧录工具,推荐Win32DiskImager
- UART和SSH工具,推荐MobaXterm,一款软件搞定2个工具
- OpenCV,显示USB摄像头内容
看到这里,有些同学会说,你这都是些什么工具啊,FPGA设计工具都没有,那还能学FPGA吗?没错,学FPGA还需要用到设计工具,AMD FPGA有软硬件开发工具——Vivado和Vitis,如果要做应用开发的话,还需要用到Petalinux。本次展示的project相当于学51单片机时,流水灯的hex文件已经生成好了,直接下载到开发板看效果就行了。也就是说,即使你完全不懂FPGA,也可以将这个板卡当成一个小玩具来玩的。
接下来,我们先对板卡进行上电测试,确认各方面都是正常的。
- 新板首次上电测试
ZUBoard 1CG是通过网线和电脑连接在一起的,所以还需要对电脑网络进行设置,保证电脑和开发板在同一网段上,以便网线连接开发板。
笔者用的是不带网口的笔记本,wifi上网,所以还需要用到一个USB转网口的转接器。这里用的是共享网络的方法。如下图,打开控制面板 – 网络和Internet – 网络连接,Wi-Fi是正在使用的网络,Ethernet 4是网口转接器。
右键Wi-Fi打开属性,点“共享”,勾上“允许其他网络用户……”,家庭网络连接选“Ethernet 4”,也就是把wifi网络共享给网口转接器,这里根据电脑的实际情况自行选择。
网络设置好之后,通过网线、USB数据线将板卡与电脑连接好,打开串口通信工具,波特率设置为115200。插上15V电源,按SW7按钮开机,此时电脑会有串口连接提示。如果串口工具连接后开机信息显示不全,可以再按一下SW6复位一下。
串口信息显示如下:
此时开发板会获得一个IP地址,这个地址每个板不一定相同。信息上还有提示可以在浏览器上输入地址连接开发板,打开浏览器输入地址,出现以下画面,那么恭喜,这就表示板卡正常,电脑也已经成功连接上板卡了,可以进行下一步,运行应用程序了。
- 运行手势识别案例测试
(1)运行Win32DiskImager,将镜像烧录进SD卡。
(2)通过SW2更改开发板的启动方式为SD卡,更改后如图。
(3)USB数据线、网线与电脑连接,SD卡插入J12卡槽,USB摄像头插入开发板USB-A口,打开串口工具,然后插入电源,等待串口工具上的开机信息停止。停止后会提示login,输入root,回车即可。然后按照教程中的指令输入,查询app、DPU架构是否正确,查询ip地址,如图所示。
其中查询app和DPU架构,只需要在第一次运行的时候确认没问题就行了,后续如果没有什么变更的话,就不需要再运行了。比如USB摄像头换成双目摄像头了,这个就需要重新变更确认的。ip地址每次都需要查询确认一下。
(4)这时切换SSH,输入IP地址,注意端口为22,打开SSH界面后,登录root,输入对应的指令,就会出现如下界面。最后一行输入,回车后,就会运行手势识别程序了。
(5)运行手势识别程序的结果,如图,可以根据不同的手势,识别出对应字母或数字。现在演示的手势是按照已经定义好的手势,有兴趣的同学可以自行研究代码,自定义手势对应的含义。比如手比出某个手势,屏幕上直接显示出“我爱xxx”,是不是感觉有点浪漫呢。
四、小结
以上可以看出,ZUBoard 1CG上手还是比较容易的,可玩性也很强,可以进行一些视频和视觉处理、边缘计算、AI算法、控制系统等方面的应用。
这时,专业的FPGA工程师可能会说了,这板卡性能没多强啊,只能让新手做入门学习和架构体验吧?其实不然,很多人认为FPGA是一种高端高成本的产品,事实上,低端FPGA在应用上也是非常广泛的。
FPGA是并行的工作方式,比相同等级的ASIC运行速度更快,具有低延迟、高实时性及高可靠性,在多通道的控制、管理、信号处理上拥有明显的优势。
FPGA高度可定制化,在非大批量生产的产品中,如医疗、航空等,相较于CPU、GPU、ASIC也是拥有较大的优势。
综上所述,ZUBoard 1CG开发板低成本、高性价比,不仅适合做工程师入门学习、练手和验证设计使用,也适合成本敏感,需要处理速度快,可自由设计,且不需要很高算力的产品应用。