AXI Interconnect IP
1.2 ZYNQ芯片开发流程的简介
由于ZYNQ将CPU与FPGA集成在了一起,开发人员既需要设计ARM的操作系统应用程序和设备的驱动程序,又需要设计FPGA部分的硬件逻辑设计。开发中既要了解Linux操作系统,系统的构架,也需要搭建一个FPGA和ARM系统之间的硬件设计平台。所以ZYNQ的开发是需要软件人员和硬件硬件人员协同设计并开发的。这既是ZYNQ开发中所谓的“软硬件协同设计”。
ZYNQ系统的硬件系统和软件系统的设计和开发需要用到开发环境和调试工具:Xilinx Vivado。
Vivado设计套件实现FPGA部分的设计和开发,管脚和时序的约束,编译和
仿真,实现RTL到比特流的设计流程。Vivado并不是ISE设计套件的简单升级,而是一个全新的设计套件。它替代了ISE设计套件的所有重要工具,比如Project Navigator、Xilinx Synthesis Technology、Implementa
tion、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开发没有太大区别。ZYNQ也可以只使用PL部分,但是PL的配置还是要PS来完成的,就是无法通过传统的固化Flash方式把只要PL的固件固化起来。
1.3 学习ZYNQ要具备哪些技能
学习ZYNQ比学习FPGA、MCU、ARM等传统工具开发要求更高,想学好ZYNQ也不是一蹴而就的事情。
1.3.1 软件开发人员
计算机组成原理
C、C++语言
计算机操作系统
tcl脚本
良好的英语阅读基础
1.3.2 逻辑开发人员
计算机组成原理
C语言
数字
电路基础
`