一、课程背景
本课程是基于ZYNQ-7000系列和ZYNQ UltraScale+ MPSoC系列裸机应用与Linux系统制作的内容。它们都是由PS(ARM)和PL(FPGA)两部分协同组成。前者芯片采用28nm工艺,PS部分内含双核Cortex-A9加双核Cortex-R5硬核处理器,后者采用基于16nm 工艺,PS部分内含双核或四核Cortex-A53处理器加双核Cortex-R5处理器,后者拥有更强大算力。可编程逻辑PL部分由用户由HDL语言或BD(IP核组成)设计,并通过“互连”AXI模块连接在一起,实现用户设计的FPGA逻辑功能。通过串行(使用 ARM 处理器)和并行(使用可编程逻辑)处理相结合的方式,定制Linux系统,满足复杂的嵌入式SOC控制应用和人机互动需求,同时可以利用其高度集成的优势降低成本、功耗和产品尺寸。
ZYNQ-7000开发可分为三方面:裸机应用、Linux操作系统定制与应用开发。裸机开发是不上系统,由SDK生成驱动,编程C语言来控制FPGA实现各种功能。后面则是利用Xilinx工具Petalinux生成Linux操作平台,再在Linux平台上编程C、Python或Gstreamer来实现各种FPGA功能,方便软件控制。
本课程从项目实用性出发,重点介绍ZYNQ-7000系列的工作原理和应用优势、项目的设计方法与流程、IP核的设计与生成、AXI各种总线设计应用、基于设计的时序优化、基于Vivado工具的时序优化、调试工具(ILA & VIO)的使用、SDK编程与调试、HLS IP核设计、Petalinux定制内核、字符设备驱动、Platform设备驱动、中断驱动、UIO驱动、设备树和应用程序编写。以实际项目为主线贯穿知识点,力求学员能够亲自实操掌握这些技术。
近年来,随着大模型应用提速,不仅是高级语言受益,同样可以提高FPGA的开发效率,减少宝贵的人力,缩短项目研发时间。AI IDE编程工具可以助你实现硬件Verilog和嵌入式Firmware的智能编程,将艰难的Verilog和嵌入式软件编程变成人机对话来实现,有效地降低了开发难度。
最后介绍Zynq UltraScale+ MPSoC系列芯片设计高级应用,包括硬件平台、异构加速、AI和视频应用、Gstreamer等,这部分属于演示和选讲内容。
二、主办单位:
北京中际孚歌科技有限公司
北京中际赛威文化发展有限公司
三、研修时间:2026年8月20-22日(三天授课)
四、研修地点:北京
五、培训对象:
课程适合于使用FPGA器件进行裸机开发和嵌入式系统开发的工程技术人员,也适合于相关专业领域的教师和研究生。
六、工具平台:
培训课程使用的部分软硬件工具由培训方提供。
硬件平台:基于Xilinx PYNQ Z2、基于Xilinx ZYNQ® UltraScale+™ ZU5的KV260。
软件平台:虚拟机Ubuntu、Vitis & Vivado 2021.2、Vivado & SDK & Petalinux 2018.3。
七、课程大纲:
本课程以讲解与实验相结合,通过学员听课和实操在较短的时间内掌握复杂的FPGA裸机和Linux系统制作的要领和知识,为今后学员的工作提供一份参考工程模版。
1.ZYNQ-7000硬件系统设计知识点
(1)基本电路设计:主要管脚、常用外设设计、JTAG电路设计、上电启动流程。
(2)片上资源介绍:逻辑资源Slice、LUT和CLB,时钟管理和分配,IO和存贮资源。
(3)PS外设接口资源与设置,PS与PL连接资源与方式。
(4)Xilinx自带IP库功能、例化与使用。
(5)定制IP核设计与使用,分别介绍单个IP核、子系统IP核和RTL IP核。
(6)AXI总线介绍和AXI IP核设计。
(7)XDC管脚与时序约束文件的设计与使用。
(8)时序分析技术,阅读时序报告找出问题,并在原理图和Floorplanning定位问题。介绍普遍适用的时序优化主要准则。
(9)基于工具的时序优化,Vivado策略与选项、逻辑映射、综合参数、布线布局、路径优化、TCL非项目形式脚本编写(命令语句、编译策略与时序优化)。
(10)基于设计的时序优化,时钟网络与约束、插入寄存器、并行结构、逻辑展开、寄存器平衡、路径重组、Fanout限制、IP核的引入。
(11)裸机地址映射与库函数、初始化、中断程序和主程序编写,以实现用户对硬件的控制。
2.ZYNQ-7000 裸机开发实例(工具Vitis、Vivado和SDK)
(1)三种I/O接口方式MIO、EMIO和AXI GPIO流水灯例程。从流水灯例程中学会使用MIO、EMIO和AXI GPIO,Vivado的设计,IP核的使用,Vitis软件创建硬件平台与应用平台,BSP生成,库函数使用和应用程序编写。
(2)串口通讯和GPIO中断程序实例。学会如何使用Vitis设计C语言串口程序,介绍最常用的中断程序编程方法,并使用Vitis软件生成镜像文件,在开发板上使用串口调试小助手进行中断用户处理程序的设计验证。
(3) FIFO例程。FIFO原理、IP核例化与测试、开发板调试,学会testbench与逻辑分析仪ILA的使用。
(4)DMA原理、分类、IP核的例化、SDK的读写调用、开发板调试。
(5)任意信号发生器的设计与验证。自制IP核的设计、验证与使用,掌握testbench、逻辑分析仪ILA和虚拟输入输出VIO等FPGA调试工具。
(6)HLS IP核设计、AXI4、AXI4-Lite、AXI4-stream、AXI4-video-stream HLS总线互连案例设计讲解,以便掌握HLS和总线互连设计技术。
(7)基于Vivado软件工具进行时序优化。对一个资源近乎饱和的时序违例项目通过设置多种Vivado策略与选项达到时序收敛,其策略包括逻辑映射、综合参数、布线布局、路径优化、TCL非项目脚本编写等技术手段。
(8)基于设计的时序优化。对一个实际工程中的时序违例的项目通过分析时序报告,找出问题,更改设计达到时序收敛。
3.ZYNQ-7000软件系统设计
(1)定制Linux工具Petalinx软件原理和开发流程介绍。
(2)工程文件参数配置、本地sstate-cache和根文件系统配置介绍。
(3)网络连接、镜像源和域名服务器的配置。
(4)定制模块module、层layer、应用app和软件包package的方法。
(5)设备树的概念和编写。
(6)驱动程序编写、用户空间与内核空间地址映射、寄存器设置。
(7)Platform平台驱动、三驾马车设备驱动总线驱动程序、设备树编写。
(8)Linux Platform和UIO中断程序、中断号申请、中断标志设置、中断函数调用和设备树编写。
(9)开机自启动程序配置方法。
(10)开发板具备编译功能的设计方法,不必使用交叉编译。
(11)硬件设计的升级方法。
(12)启动串口输出内容介绍与故障诊断。
(13)镜像文件BOOT、image.ub和root文件介绍。
(14)SD启动盘的制作和烧写。
4.Petalinux定制Linux系统与驱动程序开发实例
(1)GPIO字符驱动与应用程序编写,Petalinux制作Linux系统流程。介绍字符驱动的概念与编程方法。介绍设备树的概念与编写、内核空间与用户空间的映射、寄存器的读写操作,文件描述符、打开设备文件、读文件、写文件与释放设备文件,设备的初始化函数,设备号的静态与动态申请,设备结构体的初始化与注册,设备类与节点的创建等。用Petalinux工具生成镜像,在开发板上进行验证。亦介绍了GPIO另外一种简单的控制方法SysFs编程与实现。
(2)DMA字符驱动与应用程序编写,Petalinux制作DMA Linux系统。介绍DMA基本概念,系统描述符、设备树编写、自启动模块与脚本的编写、GCC编译功能的添加、BSP作用与输入输出、本地化配置sstate-cache、网络参数配置、硬件引入与升级、SD卡镜像制作、DMA Platform驱动程序、中断程序和应用程序编写与解读,并对这些内容在开发板上进行验证和实操。
(3) DMA GPIO Platform平台中断驱动与应用程序编写,用户空间寄存器映射至内核空间进行赋值操作,定义platform_driver结构体变量,并映射成内核空间指针结构体。申请内核中断号和内核空间,实现指针结构体中的各个成员变量赋值操作,请求中断函数和probe探测函数编写。修改设备树以实现与驱动程序的匹配,模块的注册与释放。最后在开发板上观察注册的设备、类型、设备树和中断,并实操验证GPIO与DMA中断。
(4)GPIO UIO(User-space I/O)驱动项目,这是一种特殊的Linux内核驱动,允许设备和用户空间进行直接交互,而不需要通过传统的字符设备或块设备接口,适用于中断应用,具有很大的灵活性和可扩展性。我们修改bootargs变量,修改UIO内核中断程序,配置内核编译参数,编写应用程序通过UIO驱动来直接读写GPIO寄存器,直接控制硬件设备,最后编译并上板实操。
5.新技术PYNQ 和ZYNQ MPSoC介绍
本节将为学员展示Xilinx的新产品、新技术,为学员展望未来FPGA的发展之路。本节将根据学员需求和时间选讲。
(1)PYNQ技术介绍。使用高级语言Python来开发FPGA,通过Python编程就可以调用Python库、图像OpenCV库和FPGA模块,来实现在FPGA开发板上实现接口逻辑、图像视频处理和神经网络等诸多功能,降低FPGA设计难度,扩大FPGA应用面。
(2)演示基于Ultrascale+ MPSoC系列Kria KV260开发板的项目例程,其作为ZYNQ系列的升级产品,展示其在异构加速、图像处理和人工智能方面的强大功能。
6.讲解实操AI IDE编程工具和多种大模型在Verilog程序、Vivado工程、嵌入式软件编程方面的应用
(1)介绍各种AI IDE的编程工具,Trae、Trae CN、VS Code、Cursor、Claude CC,各自的特点、限制、费用、如何安装和适合的应用。
(2)实操使用AI IDE编写需要不同智商的Verilog项目,介绍可以直接在IDE中进行功能仿真的Iverilog工具的安装和使用,使用AI实现Verilog的编程、格式化、注释、纠错和生成Testbench源代码进行测试,对比与Vivado仿真的差异,实现我们的设计要求。
(3)实操使用AI IDE编写生成Vitis工程或驱动软件所需的Firmware,让晦涩难懂的嵌入式软件用人机对话的形式开发,更方便地修改程序,增减功能,降低开发难度,提高开发效率。
(4)高级语言Python作为应用更广泛和更智能化的编程工具,人工智能与Python结合得更为紧密,我们也介绍了AI如何实现自动编写视频、数据处理、自动化脚本方面的Python程序,从而更好地掌握AI IDE工具的使用方法和模型智能的差异,提升工作和学习效率,FPGA的PYNQ技术亦为Python在FPGA上的应用提供的支撑平台。
八、主讲专家:
DR.Wang,博士,中兴、华为公司资深研发专家,历任国家轨道交通实验室技术总监、美资Oplink光联通讯公司研发总监、港资英海威光电通信公司技术总监、美资Lumentum公司高级研发经理、中兴通信公司大项目经理、华为公司资深硬件专家,长期在国内外头部企业从事研发和管理工作,实战经验丰富,同时兼任多家大学教授,对于FPGA授课培训有成熟独特的方式体系,深受学员好评。
九、培训费用及注意事宜:
1、培训费:4500元/人 (含培训费、午餐费、资料费、证书费)。
2、培训期间食宿统一安排,费用自理。
3、收款、开发票、培训会务工作由北京中际孚歌科技有限公司负责。
十、证书颁发:培训结束后由主办单位向学员颁发结业证书。
十一、课程咨询:010-64113137