AXI数据传输读写数据结构

描述

在 AXI 数据传输过程中,主要涉及到

•窄位宽数据传输(Narrow Transfer)

•非对齐传输(Unaligned Transfer)

•混合大小端传输(mix-endianness)等问题。

(1)窄位宽数据传输

当本次传输中数据位宽小于通道本身的数据位宽时,称为窄位宽数据传输,或者直接翻译成窄传输。

在窄位宽写传输中,主机需要告知从机数据通道中哪些bit(原文写的是字节,应该是写错了)是有效的,需要使用到写数据通道中的 WSTRB 信号。WSTRB信号中的单个 bit 置起,表示对应位置上的字节有效,对应关系为:

WSTRB[n] 对应 WDATA[8n+7:8n],也就是:当 WSTRB[n] 为 1 时,WDATA[8n+7:8n]有效。

WSTRB 信号比特位宽等于数据通道位宽的字节数量,比如 32bit 位宽的数据通道,对应 WSTRB 信号位宽为 4bit。

AXI

根据该图可直观的看出WSTRB信号的作用。上图的窄位宽传输有以下特点:

•burst 传输长度为 5

•burst 传输位宽为 8bit

•起始地址为 0x0

•数据总线位宽为 32bit

•突发类型为 INCR

引用部分可帮助理解窄位宽传输的情况:

个人理解该设计的意义在于,当主机是因为从机或者其他客观条件限制,需要进行窄传输时,可以一次性将数据放置于数据总线上,只需在每次传输期间改变 WSTRB信号即可。

以上图为例,主机将 D[31:0] 防置于总线,在接下来的四个周期中,仅需对 WSTRB 进行移位,即可依次完成 4 个字节的传输。

该结构有利于 memory 类型的从机进行写入处理,这里设想一种实现方式,结合下图讲解,在 64bit 位宽的总线上进行 32bit位宽传输,起始地址为 0x4 。此时假设存储介质位宽与总线位宽一致,为 64 bit。

在 transfer 1st 中,从机获取整个总线上的 64bit 数据存储至存储介质中,比如 DDR,并利用 wstrb 作为 mask信号屏蔽无效的低 32 bit(比如 DDR 的 DQM 信号)。

这时候存储介质的写入地址为 0x0,但实际只从地址 0x4 开始写入了 32bit 数据。在后续的 transfer 继续按以上模式工作。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分