学习 ZYNQ 比FPGA、MCU、ARM 等传统工具开发要求更高,想学好 ZYNQ 也不是一蹴而就的事情。
学习 ZYNQ 要具备的技能:
1、 软件开发人员
计算机组成原理、 C、C++语言、 计算机操作系统、tcl 脚本、良好的英语基础
2、 逻辑开发人员
计算机组成原理、C 语言、数字电路、 Verilog
ZYNQ该如何学习:
可以按照下面这个ZYNQ-fpga实战篇教程学习
由于 ZYNQ 将 CPU 与 FPGA 集成在了一起,开发人员既需要设计 ARM 的操作系统应用程序和设备的驱动程序,又需要设计 FPGA 部分的硬件逻辑设计。开发中既要了解 Linux 操作系统,系统的构架,也需要搭建一个 FPGA 和 ARM 系统之间的硬件设计平台。
所以 ZYNQ 的开发是需要软件人员和硬件硬件人员协同设计并开发的。
这既是 ZYNQ 开发中所谓的"软硬件协同设计”。
ZYNQ 系统的硬件系统和软件系统的设计和开发需要用到一下的开发环境和调试工具:Xilinx Vivado。
Vivado 设计套件实现 FPGA 部分的设计和开发,管脚和时序的约束,编译和仿真,实现RTL 到比特流的设计流程。
Vivado 并不是 ISE 设计套件的简单升级,而是一个全新的设计套件。它替代了 ISE 设计套件的所有重要工具,比如 Project Navigator、Xilinx Synthesis Technology、Implementation、CORE Generator、Constraint、Simulator、Chipscope Analyzer、FPGA Editor 等设计工具。
Xilinx SDK(Software Development Kit), SDK 是 Xilinx 软件开发套件(SDK),在 Vivado 硬件系统的基础上,系统会自动配置一些重要参数,其中包括工具和库路径、编译器选项、JTAG 和闪存设置,调试器连接已经裸机板支持包(BSP)。SDK 也为所有支持的 Xilinx IP 硬核提供了驱动程序。SDK 支持 IP 硬核(FPGA 上)和处理器软件协同调试,我们可以使用高级 C 或 C++语言来开发和调试 ARM 和 FPGA 系统,测试硬件系统是否工作正常。SDK 软件也是 Vivado 软件自带的,无需单独安装。
ZYNQ 的开发也是先硬件后软件的方法。
具体流程如下:
1、在 Vivado 上新建工程,增加一个嵌入式的源文件。
2、在 Vivado 里添加和配置 PS 和 PL 部分基本的外设,或需要添加自定义的外设。
3、在 Vivado 里生成顶层 HDL 文件,并添加约束文件。再编译生成比特流文件(*.bit)。
4、导出硬件信息到 SDK 软件开发环境,在 SDK 环境里可以编写一些调试软件验证硬件和软件,结合比特流文件单独调试 ZYNQ 系统。
5、在 SDK 里生成 FSBL 文件。
6、在 VMware 虚拟机里生成 u-boot.elf、 bootloader 镜像。
7、在 SDK 里通过 FSBL 文件, 比特流文件 system.bit 和 u-boot.elf 文件生成一个 BOOT.bin 文件。
8、在 VMware 里生成 Ubuntu 的内核镜像文件 Zimage 和 Ubuntu 的根文件系统。另外还需要要对 FPGA 自定义的 IP 编写驱动。
9、把 BOOT、内核、设备树、根文件系统文件放入到 SD 卡中,启动开发板电源,Linux操作系统会从 SD 卡里启动。
这就是典型的 ZYNQ 开发流程,但是 ZYNQ 也可以单独做为 ARM 来使用,这样就不需要关系 PL 端资源,和传统的 ARM 开发没有太大区别。
也可以只使用 PL 部分,但是 PL 的配置还是要 PS 来完成的,就是无法通过传统的固化 Flash 方式把只要 PL 的固件固化起来。
所以学习ZYNQ可以按照开发流程一步一步来,
建议按上面说的ZYNQ-fpga实战篇教程来学(私信领取资料)。
入行指导:FPGA学习门槛、FPGA教程、FPGA项目。