ZYNQ学习笔记_ZYNQ简介和Hello World
ZYNQ介绍
ZYNQ-7000系列是基于Xilinx开发环境的一种异构SoC,此系列的SoC搭载了单核或双核的ARM® Cortex™-A9 MPCore™处理系统(processing system,以下简称PS端)和Xilinx的FPGA部分(programable logic,以下简称PL端)。此系统具有可编程,低功耗,高性能的特点。其中ARM Cortex-A9 MPCore CPUs是PS端的核心,它包含了片上存储器和一系列的高速扩展存储器接口以及丰富的I/O资源。
PS和PL的连接
很多人看到ZYNQ的构成,可能不禁要问,为什么不直接拿一个ARM单片机和一个FPGA开发板进行互联,而要费尽心思把他们做成一个片上系统?刚接触ZYNQ时我也有这样的疑惑,答案就在这颗片上系统两个部分之间的连接之处。
PS和PL有两种连接方式:
1、功能接口,包括AXI互连,额外的MIO接口(extended MIO,EMIO)用于扩展PS端的I/O接口,中断信号传输,DMA(Direct Memory Access)控制接口,时钟和调试接口。这些信号可以用于PS端连接用户在PL端设计的IP模块。
2、配置信号,包括处理器配置访问端口(the processor configuration access port,PCAP),配置状态和单事件中断( single event upset,SEU)等。这些信号可以连接到PL内的固定逻辑,提供PS控制。
如果仅通过两个独立器件的简单连接,难以实现如上连接方式的高速和便捷,基于AXI总线的连接,可以为PS和PL提供高速的互联。而基于EMIO的端口拓展,也可以为PS端提供更丰富的I/O设备,PL端的可编程特点,也为整个系统提供了更多的想象空间。
ZYNQ开发工具链
开发ZYNQ你需要用到以下软件:
1、Vivado(题主用的2019.1版本)
2、Xilinx SDK
3、开发板:题主使用的是PYNQ-Z2(搭载的ZYNQ-7020芯片)
在PS端编写Hello World程序
接下来我们从0到1,在ZYNQ上运行一下Hello World,并通过uart在电脑上显示。
1、使用Block Design导入PS的IP核