ZYNQ芯片开发流程

​ 由于 ZYNQ 将 CPU 与 FPGA 集成在了一起,开发人员既需要设计 ARM 的操作系统应用程序和设备的驱动程序,又需要设计 FPGA 部分的硬件逻辑设计。开发中既要了解 Linux 操作系统系统的构架,也需要搭建一个 FPGA 和 ARM 系统之间的硬件设计平台。所以 ZYNQ 的开发是需要软件人员和硬件硬件人员协同设计并开发的。这既是 ZYNQ 开发中所谓的”软硬件协同设计”。

开发工具介绍

1.Xilinx Vivado介绍

ZYNQ 系统的硬件系统和软件系统的设计和开发需要用到一下的开发环境和调试工具: Xilinx Vivado。
Vivado 设计套件实现 FPGA 部分的设计和开发,管脚和时序的约束,编译和仿真,实现RTL 到比特流的设计流程。Vivado 并不是 ISE 设计套件的简单升级,而是一个全新的设计套件。它替代了 ISE 设计套件的所有重要工具,比如 Project Navigator、Xilinx Synthesis Technology、Implementation、CORE Generator、Constraint、Simulator、Chipscope Analyzer、 FPGA Editor 等设计工具。

2.Xilinx SDK (Xilinx Vitis)

​ Xilinx SDK(Software Development Kit),现已改为Xilinx Vitis。 SDK 是 Xilinx 软件开发套件(SDK),在 Vivado 硬件系统的基础上,系统会自动配置一些重要参数,其中包括工具和库路径、编译器选项、JTAG 和闪存设置,调试器连接已经裸机板支持包(BSP)。SDK 也为所有支持的 Xilinx IP 硬核提供了驱动程序。SDK 支持 IP 硬核(FPGA 上)和处理器软件协同调试,我们可以使用高级 C 或 C++语言来开发和调试 ARM 和 FPGA 系统,测试硬件系统是否工作正常。SDK 软件也是 Vivado 软件自带的,无需单独安装。

ZYNQ 的开发流程

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 开发没有太大区别。ZYNQ 也可以只使用 PL 部分,但是 PL 的配置还是要 PS 来完成的,就是无法通过传统的固化 Flash 方式把只要 PL 的固件固化起来。

学习 ZYNQ 要具备哪些技能

1)软件开发人员

 计算机组成原理
 C、C++语言
 计算机操作系统

 tcl 脚本
 良好的英语阅读基础

2)逻辑开发人员

 计算机组成原理
 C 语言
 数字电路基础
 Verilog、VHDL 语言
 良好的英语阅读基础

发表回复