ZYNQ-AXI总线的信号接口要求以及时序关系

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: ZYNQ-AXI总线的信号接口要求以及时序关系

学习内容


学习关于AXI总线的信号接口的具体要求(包括不同通道之间的关系,握手机制说明等)和AXI4-Lite的相关信息,在文章后半部分对AXI读写时序进行了简要讲解,主要针对ARM公司的IHI0022D进行阅读总结。

Clock and Reset


前面也提到了信号和复位的功能,这里对AXI全局时钟(ACLK)和复位信号(ARESETn)做进一步的解释说明。

Clock: 每个AXI组件都要使用时钟信号(ACLK)。

  • 所有的输入信号都在ACLK的上升沿上采样。
  • 所有输出信号的变化必须发生在ACLK上升沿之后。
  • 在主机接口和从机接口上,输入和输出信号之间不能有组合路径。

Reset: AXI使用一个单独的低复位信号(ARESETn)。复位信号可以进行异步复位,但是复位完必须与ACLK的上升沿同步。

在复位过程中,要求:

  • 主机接口必须驱动ARVALID、AWVALID、和WVALID为低电平。
  • 从机接口必须驱动RVALID和BVALD 为低电平。
  • 所有其他信号可以为任何值。

在完成复位后,允许master驱动ARVALID,、AWVALID、WVALID为高。但是上升沿信号是在ARESETn是拉高之后而且要在ACLK上升沿。如下图:

image.png

Basic read and write transactions


在基本的读写传输中,要完成正常的传输功能要进行握手并且遵守协议中对每个通道的信号的要求。

握手机制


所有五个通道都使用相同的VALID/READY握手处理来传输地址、数据和控制信息。这种双向握手机制表示主机和从机都可以控制信息在主机和从机之间传输的速率。

源端(master)生成VALID信号来指示地址、数据或控制信息何时传输可用。目的端(slave)生成READY信号来表示它可以接受该信息。传输只发生在VALID和READY信号都为高电平时。 在主机接口和从机接口上,输入和输出信号之间不能有组合路径。

双向握手协议表示主机和从机都可以控制信息在主机和从机之间传输的速率。换句话说也就是在传输中VALID和READY,都可以进行等待对方从而完成数据传输。

如下图所示,下图的VALID的上升沿在T1时刻之后完成拉高,在T2时刻VALID信号为高,而READY信号为低,所以要继续等待READY信号拉高。在T2时刻的上升沿之后,READY拉高,在T3时刻上升沿时,READY和VALID信号都为高,所以数据传输发生。也就是下图的数据传输发生在T3时刻。

image.png

下图的分析方法同上,在T1时刻READY和VALID信号都为低,不进行数据传输;在T2时刻READY和VALID信号分别为高、低,不进行数据传输;在T3时刻READY和VALID信号都为高,进行数据传输。

image.png

并且,READY和VALID可以同时设置为高进行数据传输,如下图,在T2时刻发生数据传输。

image.png

针对不同的信号通道,握手信号加上不同的前缀加以区分,如下表:

image.png

对于不同通道的握手信号,AXI协议有具体的建议要求:

Write address channel

主机可以在地址和控制信息都有效的时候拉高 AWVALID。当AWVALID拉高后要保持不变,直到AWREADY也拉高并且时钟产生上升沿之后。

换句话说,在握手传输的时,我们的数据信息和地址信息要保持不变,这样才能确保传输的数据为有效可靠的。也就是AWVALID和信息数据是同步变化的。下面给出两个示例:

image.png

AWREADY的默认状态可以是高或者低。AXI协议建议的默认状态为高。当AWREADY为高时,从机能够接受任何提供给它的有效地址。不建议默认AWREADY状态为低,因为它强制进行握手传输,至少需要两个时钟周期,一个周期拉高AWVALID,另一个周期拉高AWREADY。

Read address channel

和上面的写地址通道要求类似,主机可以在地址和控制信息都有效的时候拉高 AWVALID。当AWVALID拉高后要保持不变,直到AWREADY也拉高并且时钟产生上升沿之后。

WREADY的默认状态可以是高或者低。AXI协议建议的默认状态为高。当AWREADY为高时,从机能够接受任何提供给它的有效地址。不建议默认AWREADY状态为低,因为它强制进行握手传输,至少需要两个时钟周期,一个周期拉高AWVALID,另一个周期拉高AWREADY。

Write response channel

当它驱动有效的写响应时,从机才能拉高BVALID信号。当BVALID拉高后要保持不变,直到BREADY也拉高并且时钟产生上升沿之后。

BREADY的默认状态可以是高电平,但前提是在主机总是能够在一个周期内接受写响应的情况下。

Write data channel:

在写突发传输期间,当主机驱动有效的写数据时,才需要拉高WVALID信号。当WVALID拉高后要保持不变,直到WREADY也拉高并且时钟产生上升沿之后。

WREADY的默认状态可以是高电平,但前提是从机总是能在一个周期内接受写数据。

当主机在突发传输中进行最后一个数据传输时,必须拉高WLAST信号,用于指示传输结束。

Read data channel:

当它驱动有效的读数据时,从机才能拉高RVALID信号。当RVALID拉高后要保持不变,直到RREADY也拉高并且时钟产生上升沿之后。即使从机只有一个读数据信息,它也必须在响应数据请求时拉高RVALID信号。

主机接口使用RREADY信号来表示它接受数据状态。RREADY的默认状态可以为高电位,但前提是无论何时启动读操作,主机都能立即接受读数据。

当从机在突发传输中进行最后一个数据传输时,必须拉高RLAST信号,用于指示传输结束。

通道之间的关系


AXI协议中需要保持以下关系:

  • 在写操作中,写响应必须始终跟随它是其中一部分的最后一个写传输。
  • 读取数据必须始终跟在与数据相关的地址后面。
  • 通道握手必须符合在通道握手信号之间的依赖关系。

通道握手信号之间的依赖关系


通道握手信号之间的依赖关系,,由下面的流程图进行描述,这里先进行图示说明:在依赖关系图中,单头箭头指向可以在箭头指向的信号之前或之后拉高信号;双箭头指向的信号必须在箭头指向的信号断言之后才能拉高。

读操作依赖关系


image.png

上图显示读操作握手信号的依赖关系,在读操作中:

  • 从机必须等待ARVALID和ARREADY都拉高后,RVALID才能进行拉高指示数据有效。
  • 对于ARVALID和ARREADY的顺序,可以任意设置先后顺序,从机可以等待ARVALID拉高后,再拉高ARREADY,也可以相反,也可以同时拉高。
  • 对于RVALID和RREADY不用关心顺序,主机可以任意设置先后顺序。可以先后,可以同时。

写操作依赖关系


image.png

上图显示写操作握手信号的依赖关系,在写操作中:

  • 主机在拉高AWREADY or WREADY不需要关心从机AWVALID or WVALID先后顺序。
  • 从机在BVALID拉高之前,WVALID和WREADY必须被拉高。
  • 从机必须WLAST拉高之后,才能拉高BVALID,因为写响应(BRESP)在写操作的最后一次数据传输之后,才发出信号。
  • 从机不用关心BVALID和BREADY的先后顺序。

写响应依赖关系


image.png

上图显示写响应握手信号的依赖关系,在写响应中:

  • 单头箭头指向可以在箭头指向的信号之前或之后拉高信号
  • 从机须等待AWVALID、AWREADY、WVALID和WREADY都拉高之后,BVALID才能拉高使能。
  • 从机必须WLAST拉高之后,才能拉高BVALID,因为写响应(BRESP)在写操作的最后一次数据传输之后,才发出信号。

AXI4-Lite协议


  • AXI4-Lite和AXI4类似,当不需要完整AXI4功能的时,进行一些简单的控制寄存器的读写。

AXI4-Lite协议简单描述如下:

  • AXI4-Lite协议的所有传输的突发长度都是1(相当于不支持突发传输)。
  • 所有数据访问都使用数据总线的全部位宽,支持32位或64位的数据总线宽度。
  • 所有访问都是不可修改的,不可缓冲的。
  • 不支持独占访问。

接口定义


相比前面介绍的AXI4-Full,这里的信号端口就少了很多。但对于相同名字的接口信号含义是相同的,功能相同。

image.png

AXI总线协议时序


AXI突发读


下图所示,当ARVALID信号和ARREADY信号都拉高时地址有效(地址信息和ARVALID是同步的),也就是在T2时刻读取到所要读取的地址,然后等待RVALID和RREADY都拉高,即可读取到数据,也就是在T5时刻内读取到第一个数据A0(数据和RVALID是同步的),依次读取A1、A2、这里的时序图定义A3为最后一次传输,所以RLAST也被拉高。

image.png

突发写


下图所示,当AWVALID信号和AWREADY信号都拉高时地址有效(地址信息和AWVALID是同步的),也就是在T2时刻上升沿读取到所要写入的地址。然后主机发送写入的数据(数据和WVALID信号是同步的),依次写入A0、A1、A2、A3,当写入最后一个数据时,WLAST信号也要拉高,当写操作完成后,从机要发送一个响应信号,这个信号也是在BVALID和BREADY为高时有效。

image.png

Reference


  1. ARM公司的IHI0022D。
  2. 正点原子ZYNQ开发视频教程。
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
6月前
CAN总线位时序的介绍
CAN总线利用CAN_H和CAN_L线的电位差传输数据,显性电平(0,2.5V差值)对应逻辑0,隐性电平(1,0V差值)对应逻辑1。由于NRZ无返回零通信方式,同步是个挑战,特别是距离远时。为解决同步问题,CAN总线采用硬件同步和再同步技术,位时序分为同步段、传播段、两个相位缓冲段,每个段由Tq时间量子构成,允许调整以确保多个单元间的同步采样。
|
6月前
CAN总线位时序
CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。 显性电平对应逻辑 0,CAN_H 和 CAN_L 之差为 2.5V 左右。而隐性电平对应逻辑 1,CAN_H 和 CAN_L 之差为0V。隐形电平具有包容的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平更强)。 CAN总线是采用NRZ(Non-Return to Zero)方法进行通讯的,这种通信有一种不好的地方,就是各个位的开头或者结尾都没有附加同步信号。CAN总线在长距离运输中,由于发送单元和接收单元存在的时钟频率
|
网络性能优化
【AXI】解读AXI协议的额外信号(QOS信号,REGION信号,与USER信号)
【AXI】解读AXI协议的额外信号(QOS信号,REGION信号,与USER信号)
【AXI】解读AXI协议的额外信号(QOS信号,REGION信号,与USER信号)
|
SoC
深入理解AMBA总线(十六)AXI设计的关键问题(二)
深入理解AMBA总线(十六)AXI设计的关键问题(二)
848 0
深入理解AMBA总线(十六)AXI设计的关键问题(二)
|
vr&ar SoC 内存技术
深入理解AMBA总线(十二)AXI突发传输和AXI控制信号
深入理解AMBA总线(十二)AXI突发传输和AXI控制信号
1576 0
|
网络性能优化
深入理解AMBA总线(十九)AXI4新增信号以及AXI4-lite
深入理解AMBA总线(十九)AXI4新增信号以及AXI4-lite
725 0
|
监控 Scala 虚拟化
深入理解AMBA总线(十三)AXI原子访问机制和AXI响应
深入理解AMBA总线(十三)AXI原子访问机制和AXI响应
724 0
|
存储
深入理解AMBA总线(六)AHB-lite Slave响应和其它控制信号
深入理解AMBA总线(六)AHB-lite Slave响应和其它控制信号
817 0
|
数据处理 SoC Perl
ZYNQ与DSP之间EMIF16通信
介绍说明XQ6657Z35-EVM 高速数据处理评估板ZYNQ与DSP之间EMIF16通信的功能、使用步骤以及各个例程的运行效果。
ZYNQ与DSP之间EMIF16通信
RK3399平台开发系列讲解(高速设备驱动篇)6.51、PCI总线信号定义
RK3399平台开发系列讲解(高速设备驱动篇)6.51、PCI总线信号定义
143 0
RK3399平台开发系列讲解(高速设备驱动篇)6.51、PCI总线信号定义