story · 2020年05月29日

AHB 协议学习之 transfer

Basic transfers

AHB-Lite的一个transfer包括两个阶段:
Address :持续单个HCLK周期,除非被前一个总线传输扩展。
Data :可能需要几个HCLK周期。由HREADY信号控制完成传输所需的时钟周期数。

HWRITE控制来自Master数据传输的方向:

•HWRITE为HIGH时,表示写传输,主设备广播(broadcasts)数据到写数据总线HWDATA [31:0]

•HWRITE为LOW,时,表示读传输,slave必须产生读数据总线上的数据HRDATA [31:****0]

最简单的传输是没有等待状态的传输,由一个地址周期和一个数据周期组成。下图显示了一个简单的读传输和一个简单的写传输。
529.png529.png

在没有等待状态的简单传输中:

1.master在HCLK上升沿之后将地址和控制信号驱动到总线上。
2.slave在下一次HCLK上升时对地址和控制信息进行采样。
3.slave对地址和控制信号采样后,驱动合适的HREADY响应。这个响应在第三个HCLK上升沿被由master采样。

任何传输的地址阶段都发生在上次传输的数据阶段。地址和数据的重叠是AHB总线流水线的基础,在实现高性能的同时为slave提供足够的时间来提供对传输的响应。

slave可以插入等待状态任何传输,以便获得足够的时间来完成传输。
下图显示了具有2个等待状态的读传输和具有1个等待状态的写传输。
529.png

对于写操作,master在整个扩展周期内保持数据稳定。
对于读操作,slave在传输完成的时候才需要提供有效数据。

当以这种方式扩展数据传输时,它会扩展下一次传输的地址阶段。下图显示了三次传输,地址C被上次传输扩展了。
529.png
对应于地址A和C的传输是零等待传输
•到地址B的传输有一个等待状态
•B传输的数据阶段会扩展C传输的地址阶段。

Transfer types

传输可以分为四种类型,由HTRANS [1:0]控制。
b00  :IDLE表示不需要进行数据传输。建议在master终止锁定传输后使用IDLE传输。

b01 :BUSY 传输用于在burst传输中插入idle周期,表示master正在继续burst传输,但下一次传输不能立即发生。

当master使用BUSY传输时,此时的地址和控制信号必须为burst传输中下一个传输的地址和控制信号。

只有未定义长度的burst传输才能将BUSY传输作为burst传输的最后一个周期。

slave必须始终给BUSY传输提供零等待OKAY响应,并且不做任何操作。

b10  :NONSEQ表示单次传输burst传输的第一次传输。
NONSEQ传输的地址和控制信号与先前的传输无关。

总线上的single传输被视为长度为1的burst传输,因此传输类型是NONSEQUENTIAL。

b11 :SEQUENTIAL传输的地址与之前的传输有关。控制信息与之前的传输相同。其地址等于之前传输的地址加上传输大小HSIZE [2:****0](以字节为单位)。在wrapping burst传输的情况下,地址会在地址边界处wrap。

下图显示了NONSEQ,BUSY和SEQ传输类型的使用。
529.png
在上图中:

T0-T1 4-beat读传输以NONSEQ传输开始。

T1-T2 master无法执行第二拍传输,插入BUSY传输以延迟第二拍的开始。slave提供第一拍的数据。

T2-T3 master开始第二拍传输,所以HTASNS[1:0]为SEQ。此时master忽略slave提供的任何数据。

T3-T4 master执行第三拍传输。slave提供第二拍的读数据。

T4-T5 master执行最后一拍传输,slave无法完成上次传输并使用HREADY插入一个等待状态。

T5-T6 slave提供第三拍的读数据。

T6-T7 slave提供最后一拍的读数据。

Locked transfers

如果master需要锁定访问,则必须置位HMASTLOCK信号,向slave指示当前传输是不可分割的。下图显示了HMASTLOCK信号。
529.png

建议master在锁定传输后插入IDLE。

大多数slave都不需要HMASTLOCK,但是如果slave可以被多个master访问,则必须实现HMASTLOCK信号。

Transfer size

HSIZE [2:0]表示数据传输的大小,如下表所示:

529.png

HSIZE设置的传输大小必须小于或等于数据总线的宽度。

例如,对于32位数据总线,HSIZE必须仅使用值b000,b001或

b010。

将HSIZE与HBURST结合使用,以确定wrapping bursts的地址边界。

HSIZE信号与地址总线具有完全相同的时序。但是,HSIZE在burst传输过程中必须保持不变。

本文转载自公众号:芯片数字实验室
原文链接:
https://mp.weixin.qq.com/s/1IUu75s5uv2v-rts57Xuuw
未经作者同意,请勿转载!

推荐阅读
想了解更多内容,欢迎关注芯片数字实验室专栏
推荐阅读
关注数
7921
内容数
82
Arm AMBA协议集,APB,AHB,AXI,CHI等相关公开课回放及文章
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息