ZYNQA基本开发流程
zynq:包含了完整的ARM处理子系统(PS),和可编程逻辑单元部分(PL),整个处理器的搭建以处理器为中心,且处理器子系统继承了内存控制器和大量的外设,ARM核可以独立于可编程逻辑单元。
PS:处理系统,与FPGA无关的ARM的SOC部分;
PL:可编程逻辑,FPGA部分。
PS和PL之间的连接:AXI接口协议。
zynq开发:软硬件协同设计。
Vivado:实现FPGA部分的设计和开发,管脚和时序的约束,编译和仿真,实现RTL到比特流的实际流程。
SDK:Xilinx软件开发套件,VIvado软件自带。
zynq开发方法——先硬件后软件:
- 新建工程,增加一个嵌入式的源文件;
- 添加和配置PS和PL部分基本的外设,或需要添加自定义的外设;
- 生成顶层HDL文件,添加约束文件,编译生成比特流文件(*.bit)。
- 到处硬件信息到SDK软件开发环境,在SDK环境里编写一些调试软件验证硬件和软件,结合比特流文件单独调试ZYNQ系统。
- 在SDK里生成FSBL文件
- 在VMware虚拟机里生成u-boot.elf、bootloader镜像。
- 在SDK里通过FSBL文件,比特流文件system.bit和u-boot.elf文件生成一个BOOT.bin文件。
- 在VMware里生成 Ubuntu的内核镜像文件zimage和Ubuntu的根文件系统。另外还需要对FPGA自定义的IP编写驱动。
- 把BOOT、内核、设备树、根文件系统文件放入到SD卡中,启动开发板电源,Linux操作系统会从SD卡里启动。