ZYNQ内部包含PS和PL两部分,PS中包含以下4个主要功能模块:
Application processor unit (APU)
Memory interfaces
I/O peripherals (IOP)
Interconnect
ZYNQ内部的总体框架如所示,PS中包含2个ARM Cortex-9的内核,一些基本的外设扩展口以及Memory接口。PS和PL的相互通信通过两个通路完成,分别是GP(General Purpose)Ports和HP(High Performance)Ports。
GP Ports包含2个Master接口和2个Slave接口,符合标准的AXI协议数据位宽是32bit。HP Ports包含4个接口,全部是PL作为Master;有两个专用的连接到DDR Controller的接口和一个连接到OCM的接口。HP与GP相比,最大的特点在于有额外的FIFO作为Buffer,可以提高传输效率和数据吞吐量。
所以从功能角度,GP Ports主要用于寄存器的读写以及小数据量的传输;HP Ports用于大量数据的传输,主要是Memory数据的读写。
ZYNQ中最常用的设计思路是将主程序放在PS中完成,在PL中设计相应的逻辑功能作为PS的外设使用,将逻辑设计封装成IP,且每个IP都包含一个标准的AXI-Lite接口。PS对于逻辑设计的控制是通过控制逻辑设计的功能寄存器,进而控制逻辑设计进行相应的操作,同时将工作情况通过状态寄存器返回给PS端。如果逻辑设计与PS端需要进行大量数据的交互,则会在逻辑设计中增加AXI-Full接口,与PS的HP Port相连。
综上,ZYNQ设计的基本流程包含以下步骤:
Vivado中搭建ZYNQ平台,完成基本外设控制。
创建逻辑设计,并封装成IP。
ZYNQ设计中调用封装的IP。
对设计的IP进行仿真。
ZYBO是Digilent开发的以XC7Z010-1CLG400C为核心处理器的开发板,其主要功能包括有:
1片32bit位宽,512MB容量的 DDR3
1个 HDMI port
1个VGA source port
1个(1Gbit/100Mbit/10Mbit) Ethernet PHY 与RJ45接口
1个MicroSD slot
1个OTG USB 2.0 PHY
1个外部 EEPROM
1个耳机输出接口和1个麦克风输入接口
1片128Mb QSPI Flash作为加载Flash
1个JTAG接口和1个USB-Converter下载接口
GPIO: 6 pushbuttons, 4 slide switches, 5 LEDs
6个 Pmod ports
其板上器件分布情况如图 2和图 3所示。
图2