首页
学习
活动
专区
圈层
工具
发布
30 篇文章
1
Zynq-7000开发环境的搭建一
2
FPGA Xilinx Zynq 系列(一)
3
FPGA Xilinx Zynq 系列(二)
4
FPGA Xilinx Zynq 系列(三)
5
FPGA Xilinx Zynq 系列(四)
6
FPGA Xilinx Zynq 系列(五)
7
FPGA Xilinx Zynq 系列(六)Zynq 设计指南( 如何使用?) 之 入门
8
FPGA Xilinx Zynq 系列(七)Zynq 设计指南( 如何使用?) 之 设计流程概述
9
FPGA Xilinx Zynq 系列(八)Zynq 设计指南( 如何使用?) 之 ISE 和 Vivado 设计套件​
10
FPGA Xilinx Zynq 系列(九)Zynq 设计指南 之 开发板简介
11
FPGA Xilinx Zynq 系列(十)芯片比较 之 比较一:Zynq对FPGA
12
FPGA Xilinx Zynq 系列(十一)芯片比较 之 比较二:Zynq对标准处理器
13
FPGA Xilinx Zynq 系列(十二)应用和机会 之 应用概述
14
FPGA Xilinx Zynq 系列(十三)应用和机会 之 软件自定义无线电(SDR)
15
FPGA Xilinx Zynq 系列(十五)应用和机会 之 动态片上系统
16
FPGA Xilinx Zynq 系列(十六)The ZedBoard
17
FPGA Xilinx Zynq 系列(十七)教育、研究和培训
18
FPGA Xilinx Zynq 系列(十八)Zynq 的第一个工程
19
FPGA Xilinx Zynq 系列(十九)Zynq SoC & 硬件设计 之 嵌入式系统和 FPGA
20
FPGA Xilinx Zynq 系列(二十)嵌入式系统和 FPGA 之 总线
21
FPGA Xilinx Zynq 系列(二十一)Zynq 片上系统概述之接口
22
FPGA Xilinx Zynq 系列(二十二)Zynq 片上系统概述之存储器
23
FPGA Xilinx Zynq 系列(二十三)Zynq 片上系统的开发
24
FPGA Xilinx Zynq 系列(二十四)Zynq SoC 设计的下一步
25
FPGA Xilinx Zynq 系列(二十五)IP包设计
26
FPGA Xilinx Zynq 系列(二十六)高层综合
27
FPGA Xilinx Zynq 系列(二十七)Vivado HLS: 近视 之 项目剖析
28
FPGA Xilinx Zynq 系列(二十八)Vivado HLS: 近视 之 算法综合
29
FPGA Xilinx Zynq 系列(二十九)用 Vivado 高层综合 做设计
30
FPGA Xilinx Zynq 系列(三十)IP 的创建

FPGA Xilinx Zynq 系列(四)

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来FPGA Xilinx Zynq 系列第四篇,本篇内容目录简介如下:

2. Zynq 芯片(“ 是什么?”)

2.3 处理器系统与可编程逻辑的接口

2.3.1 AXI 标准

2.3.2 AXI 互联和接口

2.3.3 EMIO 接口

2.3.4 其他 PL-PS 信号

本系列分享来源于《The Zynq Book》,Louise H. Crockett, Ross A. Elliot,Martin A. Enderwitz, Robert W. Stewart. L. H. Crockett, R. A. Elliot, M. A. Enderwitz and R. W. Stewart, The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 All Programmable SoC, First Edition, Strathclyde Academic Media, 2016。

Zynq 芯片(“ 是什么?”)

2.3. 处理器系统与可编程逻辑的接口

如前所述,Zynq 的表现不仅仅依赖于它的两个组成部分 PS 和 PL 的特性,还在 于能把两者协同起来形成完整、集成的系统的能力。这其中起关键作用的,是一组高度定制的 AXI 互联和接口用来在两个部分之间形成桥梁。另外,在 PS 和 PL 之间还有一些其他类型的连接,特别是 EMIO。本节讨论 PS 和 PL 之间的连接,并探讨如何使用这些连接。我们从介绍 AXI 标 准开始,这是大多数连接的基础。

2.3.1. AXI 标准

AXI 表示的是高级可扩展接口(Advanced eXtensible Interface),当前的版 本是 AXI4,它是 ARM AMBA®3.0 开放标准的一部分。第三方厂家生产的许多芯片和 IP 包都是基于这个标准的。

AMBA 标准原本是 ARM 开发用于单片机的,第一版是 1996 年发布的。自那之后, 标准被修订和扩展过,现在 ARM 描述它是 “ 片上通讯的事实标准 ”[3]。现在它主要用于片上系统,包括基于 FPGA 的 SoC,或是 Zynq 这样的包含了 FPGA 部分的芯 片。实际上,Xilinx 做了很大的贡献来把 AXI4 定义为 FPGA 架构内使用的优化的互联技术 [16][29]。在 ISE® Design Suite 的 12.3 版中,Xilinx 工具链第一次引入了对 AXI 的支 持 [25],现在在 Vivado Design Suite 中有了进一步的支持。AXI 总线可以灵活使 用,而且一般情况下是用来在一个嵌入式系统中连接处理器和其他 IP 包的。实际上有三类 AXI4,每一类代表了一种不同的总线协议,下面会有总结。对于一个特定的连接选择哪个 AXI 总线协议是基于那个连接所需的特性的。

  • AXI4 [2] — 用于存储映射链接,它支持最高的性能:通过一簇高达 256 个数 据字 (或 “ 数据拍 (data beats)”)的数据传输来给定一个地址。
  • AXI4-Lite [2] — 一种简化了的链接,只支持每次连接传输一个数据(非批 量)。AXI4-Lite也是存储映射的:这种协议下每次传输一个地址和单个数据。
  • AXI4-Stream [1] — 用于高速流数据,支持批量传输无限大小的数据。没有 地址机制,这种总线类型最适合源和目的地之间的直接数据流 (非存储器映射)。

前面的描述中用到了 “ 存储映射 ” 这个术语,有必要在此简要定义一下它的 含义。如果一个协议是存储映射的,那么在主机所发出的会话 (无论读或写)中就会标明一个地址,这个地址是对应于系统存储空间中的一个地址的。对于仅支持每次会话单个数据传输的 AXI4-Lite 而言,数据就是写入那个指定的地址,或从那个地址读出;而在 AXI4 批量的情况下,地址表明的是要传输的第一个数据字的地址,而从机端必须计算随后的数据字的地址。

2.3.2. AXI 互联和接口

在 PS 和 PL 之间的主要连接是通过一组 9 个 AXI 接口,每个接口有多个通道组 成。这些形成了 PS 内部的互联以及与 PL 的连接,如图 2.9 所示。这里,有必要定义两个重要的术语:

  • 互联(Interconnect) — 互联实际上是一个开关,管理并直接传递所连接的 AXI 接口之间的通信。在 PS 内有几个互联,其中有些还直接连接到 PL(如图2.9),而另一些是只用于内部连接的。这些互联之间的连接也是用 AXI 接口所构成的。
  • 接口 (Interface) — 用于在系统内的主机和从机之间传递数据、地址和握 手信号的点对点连接。

从图上可以注意到所有的接口都明确地连接到 PS 内的 AXI 互联,唯一例外的是 ACP 接口,它直接连到 APU 里面的一致性控制单元 (SCU)。在处理器系统内部,AXI 接口用在 ARM APU 内部 (用来连接处理器核和 SCU、 cache 存储器和 OCM),及连接 PS 内的各种互联。这些连接是对 PS-PL 边界上的连接的补充。特别的,图 2.9 所示的三个互联 (存储器、主机和从机互联)是内部连接到中央互联 (Central Interconnect)的,图中没有画出这个互联,但是在图 2.2 上可以看到。PS 内部连接的全部细节,包括表达所有 AXI 互联和接口的框图,在 [33]。

图 2.9: 连接 PS 和 PL 的 AXI 互联和接口的构架

表 2.2 给出了图 2.9 中的箭头所表示的接口的总结。它给出了每个接口的简 述,标出了主机和从机 (按照惯例,主机是控制总线并发起会话的,而从机是做响应的)。注意接口命名的规范(在表 2.2 的第一列)是表示了 PS 的角色的,也就是说,第一个字母 “M” 表示 PS 是主机,而第一个字母 “S” 表示 PS 是从机。

表 2.2 PS 和 PL 之间的接口 [33]

进一步解释这些不同类型的 PS-PL AXI 接口的作用:

  • 通用 AXI(General Purpose AXI) — 一条 32 位数据总线,适合 PL 和 PS 之间的中低速通信。接口是透传的不带缓冲。总共有四个通用接口:两个 PS 做主机,另两个 PL 做主机。
  • 加速器一致性端口(Accelerator Coherency Port) — 在 PL 和 APU 内的 SCU 之间的单个异步连接,总线宽度为 64 位。这个端口用来实现 APU cache 和 PL 的单元之间的一致性。PL 是做主机的。
  • 高性能端口(High Performance Ports) — 四个高性能 AXI 接口,带有 FIFO 缓冲来提供 “ 批量 ” 读写操作,并支持 PL 和 PS 中的存储器单元的高速率通信。数据宽度是 32 或 64 位,在所有四个接口中 PL 都是做主机的。

每条总线都是由一组信号组成的,这些总线上的会话是根据所定义的总线标 准,也就是 AXI4 来发生的,下面会介绍这个标准。关于 AXI 总线和会话的深入解释超出了目前讨论的内容,不过在之后的第十九章我们会回来讨论这个话题。

2.3.3. EMIO 接口

如 2.1 节所提,从 PS 出来,有几种连接可以经由 PL 到外部接口上,这被称作 扩展的 MIO (Extended MIO),即 EMIO。EMIO 涉及到两个域之间的信号传输,是由一组简单的导线连接实现的,因此, EMIO 并不支持所有的 MIO 接口,而支持的那些中,也有些的能力受到了限制 [33]。这些连接被安排成两个 32 位的组。

很多情况下,经由 EMIO 的接口是直接连接到所需的 PL 的外部引脚上的,这个 连接是由一个约束(描述)文件中的条目所指定的。在这个模式下,EMIO 可以实现额外的 64 个输入线和 64 个带有输出使能的输出线。另一个选择是用 EMIO 来连接PS 和 PL 里的外设模块。图 2.10 描绘了这两种使用模式。

图 2.10: 在 PS 和 PL 之间用 EMIO 接口

2.3.4. 其他 PL-PS 信号

跨越 PS-PL 边界的其他信号包括看门狗定时器、重启信号、中断和 DMA 接口信 号。这里就不讨论这些信号了,不过后面在关于用 Zynq 做嵌入式系统设计 (第十章)那里,还会解释它们的各种功能。

第四篇到此结束,明日将会带来第五篇,介绍硬件支持安全引导以及Zynq-7000 系列成员相关内容。欢迎各位大侠一起交流学习,共同进步。

END

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

下一篇
举报
领券