本节详细介绍单个数据项的读取事务的过程,以及用于完成事务的不同通道。
本次写传输涉及以下channel:
Read Address (AR)
Read (R)
首先,在读取地址(AR)通道上进行一次握手,如下图所示:
握手具有以下事件序列:
在时钟周期2中,manager将读取的地址传达给ARADDR上的subordinate并断言ARVALID。
在时钟周期3中,subordinate断言ARREADY以指示它已准备好接收地址值。
握手在时钟周期4的上升沿完成。
接下来,在读取 (R) 通道上,subordinate将数据传输给经理。下图显示了数据传输过程:
数据传输握手具有以下事件序列:
在时钟周期n中,manager通过置位RREADY表示它正在等待接收数据。
subordinate检索数据并在时钟周期 n+2 中将其放在RDATA上。在这种情况下,因为这是一个单一的数据事务,subordinate也将RLAST信号设置为高。同时,subordinate使用RRESP向manager指示读取事务的成功或失败,并断言RVALID。
因为RREADY已经被manager断言,所以握手在时钟周期 n+3 的上升沿完成。
multiple data items
AXI 协议还允许在同一事务中进行多个数据传输的读取突发。这类似于写入事务中描述的写入突发:多个数据项。
下图显示了突发读取传输的示例:
在此示例中,我们在AR通道上传输单个地址以传输多个数据项,以及相关的突发宽度和长度信息。
在这里,AR通道表示三个传输的序列,因此在R通道上,我们看到从subordinate到manager的三个数据传输。
在R通道上,subordinate将数据传递给manager。
在此示例中,manager正在等待数据,如RREADY设置为高所示。subordinate驱动有效的RDATA并为每次传输断言RVALID。
读取事务和写入事务之间的一个区别是对于读取事务,事务中的每个传输都有一个RRESP响应。这是因为,在写事务中,subordinate必须将响应作为单独的传输在B通道上发送。在读取事务中,subordinate使用相同的通道将数据发送回manager并指示读取操作的状态。
如果truncation中的任何transfer指示错误,则truncation的完整指示长度仍必须完成。没有早期突发终止这样的事情。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !