记录一下ZYNQ7020芯片系列的基本概念

一、zynq基本结构
zynq7000系列分为 artix-7 kintex-7 virtex-7
二、zynq7020 分为ps端、pl端
ps: 处理系统 (processing system) , 就是与 fpga 无关的 arm 的 soc 的部分。
pl: 可编程逻辑 (progarmmable logic), 就是 fpga 部分。
zynq7020的整体架构如下图所示
zynq 就是两大功能块,ps 部分和 pl 部分, 说白了,就是 arm 的 soc 部分,和 fpga部分。其中,ps 集成了两个 arm cortex-a9 处理器,amba互连,内部存储器,外部储器接口和外设。这些外设主要包括 usb 总线接口,以太网接口,sd/sdio 接口,i2c 总线接口,can 总线接口,uart 接口,gpio 等。
三、ps 和 pl 互联技术 
3.1、zynq 作为首款将高性能 arm cortex-a9 系列处理器与高性能 fpga 在单芯片内紧密结合的产品,为了实现 arm 处理器和 fpga 之间的高速通信和数据交互
3.2、发挥 arm 处理器和 fpga的性能优势,需要设计高效的片内高性能处理器与 fpga 之间的互联通路。 本节,我们就将主要介绍 ps 和 pl 的连接,让用户了解 ps 和 pl 之间连接的技术。
3.3、在具体设计中我们往往不需要在连接这个地方做太多工作,我们加入 ip 核以后, 系统会自动使用 axi 接口将我们的 ip 核与处理器连接起来,我们只需要再做一点补充就可以了。
axi 全称 advanced extensible interface,是 xilinx 从 6 系列的 fpga 开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式。在 zynq 中继续使用,版本是 axi4,所以我们经常会看到 axi4.0,zynq 内部设备都有 axi 接口。
3.4、其实 axi 就是 arm 公司提出的amba(advanced microcontroller bus architecture)的一个部分,是一种高性能、高带宽、低延迟的片内总线,也用来替代以前的 ahb 和 apb 总线。 
axi 协议主要描述了主设备和从设备之间的数据传输方式,主设备和从设备之间通过握手信号建立连接。当从设备准备好接收数据时,会发出 ready 信号。当主设备的数据准备好时,会发出和维持 valid 信号,表示数据有效。数据只有在 valid 和 ready 信号都有效的时候才开始传输。当这两个信号持续保持有效,主设备会继续传输下一个数据。
3.5、主设备可以撤销valid 信号,或者从设备撤销 ready 信号终止传输。axi 的协议如图,t2 时,从设备的 ready信号有效,t3 时主设备的 vilid 信号有效,数据传输开始。
信号有效,t3 时主设备的 vilid 信号有效,数据传输开始。
四、zynq 芯片内部用硬件实现了 axi 总线协议,包括 9 个物理接口,分别为 axi-gp0~axigp3,axi-hp0~axi-hp3,axi-acp 接口。
1、axi_acp 接口,是 arm 多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理 dma 之类的不带缓存的 axi 外设,ps 端是 slave 接口。2、axi_hp 接口,是高性能/带宽的 axi3.0 标准的接口,总共有四个,pl 模块作为主设备连接。主要用于 pl 访问 ps 上的存储器(ddr 和 on-chip ram)3、axi_gp 接口,是通用的 axi 接口,总共有四个,包括两个 32 位主设备接口和两个 32 位从设备接口
可以看到,arm只有两个 axi-gp 是 master port,即主机接口,其余 7 个口都是 slave port(从机接口)。主机接口具有发起读写的权限,arm 可以利用两个 axi-gp 主机接口主动访问 pl 逻辑,其实就是把 pl 映射到某个地址,读写 pl 寄存器如同在读写自己的存储器。其余从机接口就属于被动接口,接受来自 pl 的读写,逆来顺受。
4.1、这 9 个 axi 接口性能也是不同的。gp 接口是 32 位的低性能接口,理论带宽600mb/s,而 hp 和 acp 接口为 64 位高性能接口,理论带宽 1200mb/s。
4.2、有人会问,为什么高性能接口不做成主机接口呢?这样可以由 arm 发起高速数据传输。答案是高性能接口根本不需要 arm cpu 来负责数据搬移,真正的搬运工是位于 pl 中的 dma 控制器。
4.3、位于 ps 端的 arm 直接有硬件支持 axi 接口,而 pl 则需要使用逻辑实现相应的 axi 协议。xilinx 在 vivado 开发环境里提供现成 ip 如 axi-dma,axi-gpio,axi-dataover, axi-stream 都实现了相应的接口,使用时直接从 vivado 的 ip 列表中添加即可实现相应的功能。下图为 vivado 下的各种 dma ip:
下面为几个常用的 axi 接口 ip 的功能介绍:
4.4、axi 协议严格的讲是一个点对点的主从接口协议,当多个外设需要互相交互数据时,我们需要加入一个 axi interconnect 模块,也就是 axi 互联矩阵,
4.5、作用是提供将一个或多个 axi 主设备连接到一个或多个 axi 从设备的一种交换机制(有点类似于交换机里面的交换矩阵)。
4.6、这个 axi interconnect ip 核最多可以支持 16 个主设备、 16 个从设备,如果需要更多的接口,可以多加入几个 ip 核。
五、内部链接
zynq 内部的 axi 接口设备就是通过互联矩阵的的方式互联起来的,既保证了传输数据的高效性,又保证了连接的灵活性。
xilinx 在 vivado 里我们提供了实现这种互联矩阵的 ip 核axi_interconnect,我们只要调用就可以。
六、引脚分配
zynq7020是400脚封装,从官网的文档,可以看出zynq7020的引脚分配
ps端的引脚包括bank500、bank501、bank502、
pl端引脚包括 bank13(部分包含)bank35、bank34
下面这张图,更加形象
七、上面的部分,并没有把引脚讲的很清楚,这里看官方手册,有如下描述
意思是,ps端的引脚数量是固定的,并且不能分配给pl端使用,最多有54个引脚可以连接到ps端,
他们可以软件编程连接ps的内部外设或者静态内存控制器
八、mio概述
mio的功能是将从ps外设和静态内存接口的访问,复用到配置寄存器中定义的ps引脚。在ps端最多有54针被用以iop(i/o peripheral )和静态内存接口下表4显示了可以映射不同外设引脚的位置。图2显示了mio模块的框图。如果超过了54个引脚个数的其它i/o功能是设计必须的,那他可以通过pl端,路由到与这些功能相关联的i/o引脚这个特性被称为可扩展多路复用i/o (emio)。
九、mio、emio和axi_gpio的关系
zynq7000中与ps相连的引脚包含mio、emio和axi_gpio三种类型。
1、mio直接挂在ps上,而emio与pl相连,ps通过pl调用emio。mio共有54bit,emio共有64bit。
mio管脚是固定的,而emio需要通过管脚约束文件进行分配。mio、emio管脚号均通过实际原理图查找。
2、axi_gpio是通过axi总线挂在ps上的gpio,一般通过调用ip核实现,如ps通过axi_uartlite调用pl端资源。
而emio在block design文件上表现为ps上的一个引出接口。
十、ps-pl mio-emio信号和接口
由于mio引脚的数量有限,mio是i/o外围连接的基础。可以软件编程io信号路由到mio引脚。也可以通过emio接口将i/o外围信号路由到pl端,
这非常有用,用来ps获得更多的设备引脚(pl端引脚),或者允许一个ps端外设的一个引脚路由到pl的内部ip逻辑端口,如图2
十一、启动流程
12.1、启动模式
12.2、启动阶段
12.3、阶段0:stage-0 boot (bootrom)
12.4、阶段1:fsbl(first stage bootloader )
fsbl(第一阶段引导加载程序)在bootrom之后启动,这个bootrom将fsbl加载到ocm(on-chip memory ),
fsbl负责下面的几项工作
fsbl流程图
下图是一个简单的fsbl流程图:
12.5、第二阶段启动流程:second stage bootloader  
第二阶段引导加载程序是可选的,并由用户设计。
zynq-7000 ap soc bootrom加载程序需要引导映像头,它加载单个分区,通常是fsbl。引导映像的其余部分由fsbl加载和处理。
xilinx提供了一个名为bootgen的实用程序(用来创建一个适合rom或fash的引导映像)。它通过构建所需的引导头、
附加描述以下分区的表并将输入数据文件(elf文件、fpga bit流和其他二进制文件)处理到分区来创建映像。
12.6、boot image 格式
12.7、下图显示了zynq-7000 ap soc linux引导映像分区的示例。


接力彩灯灯饰照明产业园顺势而生 高端定位,科学布局要打造百亿园区
一种实时图像目标搜索与跟踪系统设计
华为为何在深圳总部发布重大声明:决定起诉美国政府!
AMD预展Naples高性能服务器处理器,将于2017年季2度为数据中心再次带来更多创新与选择
中国电信公布5G体验计划
记录一下ZYNQ7020芯片系列的基本概念
Fairchild推出耗电量仅为200μA的运算放大器
iSulad Sandbox API简化容器调用链
阿隆索soundmini蓝牙音箱体验 到底怎么样
电阻分压器和Diode分压器的区别是什么?
CoinMeet正在建立一个,以区块链生态圈为主的,数字资产钱包社交工具
国办发文优化电子电器行业管理制度,涉及电子电器产品准入自检自证
驱动之路之platform按键驱动
中兴将全球首发屏下摄像头高通骁龙888旗舰
关于芯片后缀的必备小常识
小米5C评测:颜值颇高的时尚机!史上最美小米5C精致优雅并存
2023“物联之星”智慧城市系列案例
关于利用C代码实现条件控制的分析和研究
软银再次对其机器人战略进行了调整
首尔半导体吴森如何看待自然光谱LED在健康照明和高端商照中的应用