AHB-lite basic transfer

简介: AHB-lite basic transfer

AHB-Lite是AHB的简化版本,针对单个Master设计的总线协议。这样可以简化interconnection的设计,不需要做仲裁。

image.png

AHB-Lite基本传输:AHB每个Transfer分为一个地址阶段,一个数据阶段。

  • Address: 除非被前一次传输延长,否则持续一个HCLK时钟周期。
  • Data:可能需要几个HCLK时钟周期。使用HREADY信号来控制完成传输所需的时钟周期数。

HWRITE信号控制数据的传输方向:

  • 当HWRITE信号为高的时候,表示为写传输。Master在写传输总线上传输数据,HWDATA[31:0]
  • 当HWRITE信号为低的时候,表示为读传输,Slave在读传输总线上传输数据,HRDATA[31:0]

最简单的情况是没有wait states,此时transfer由一个address cycle和一个data cycle组成。

写时序:

我们可以看到,在写操作当中。HWRITE为1,我们把地址发出去。在第二个阶段,我们把要写的数据发出去。

image.png

读时序:

和写操作类似,不同的是,在读操作当中。HWRITE为0,我们把地址发出去。在第二个阶段,我们把数据读回来。

image.png

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

  • Master在HCLK的上升沿过后将地址和控制信号驱动到总线上。
  • Slave在HCLK的下一个上升沿采样地址和控制信息。
  • 在Slave已经采样了地址和控制信息以后,它可以开始驱动适合的HREADY响应。这一响应由Master在HCLK的第三个上升沿进行采样。

这个简单的例子演示了在不同的时钟周期中,地址阶段和数据阶段是如何变化的。任何传输的地址阶段都发生在前一次传输的数据阶段。这种地址和数据的重叠是总线的流水线性质的基础,使得可以进行高性能操作,同时仍然为Slave提供足够的时间来提供对传输的响应。

Slave可以在任何传输当中插入wait states,使得它由足够的时间完成传输任务。如下图所示:

读时序with wait states:

我们可以看到,区别就在于HREADY为低,代表A不能够及时响应,提供数据。因此直到第四个Cycle,Slave才返回A的读数据,此时B的地址和数据都会被延伸。

image.png

写时序with wait states:

image.png

NOTE:对于写操作而言,Master在扩展的周期内需要保持数据稳定,而对于读操作而言,直到传输快要结束,Slave才需要提供HRDATA。

读写在AHB协议中是可以pipeline的,对多个transfer中,如下图:有A,B,C三个transfer。

在第一CYCLE我们可以看到首先是给A地址进行写操作

到第二个CYCLE,在对A操作的数据阶段的时候,我们又同时发出了B的地址,B的控制。所以A,B两个TRANSFER是可以重叠的。可以认为是pipeline的。C和B也是这样。

我们可以看到C这个阶段,HREADY为低。此时为B的数据阶段,代表B不能及时响应。直到在T3这个CYCLE,SLAVE才返回B的读数据。此时C的地址和数据都会被延伸。

image.png

目录
打赏
0
0
0
0
14
分享
相关文章
|
11月前
HARDWARE --- IIC协议
HARDWARE --- IIC协议
169 1
GE P111-6052 Advanced微控制器
GE的P111-6052微控制器以其高性能处理器、丰富外设接口及高效内存管理脱颖而出。适用于实时响应、大数据处理的场景,支持USB、串口等多种接口,内置定时器、中断控制器等模块,兼容多种编程语言。凭借优质元器件和严格工艺,确保设备稳定性,并具备强错误检测与恢复功能,广泛应用在工业自动化、智能家居等多个领域。
深入理解AMBA总线(五)AHB-lite Transfer进阶
深入理解AMBA总线(五)AHB-lite Transfer进阶
884 0
Re24:读论文 IOT-Match Explainable Legal Case Matching via Inverse Optimal Transport-based Rationale Ext
Re24:读论文 IOT-Match Explainable Legal Case Matching via Inverse Optimal Transport-based Rationale Ext
Re24:读论文 IOT-Match Explainable Legal Case Matching via Inverse Optimal Transport-based Rationale Ext
Quartus中出现错误: Can't place multiple pins assigned to pin location Pin_101 (IOPAD_X53_Y21_N14)
Quartus中出现错误: Can't place multiple pins assigned to pin location Pin_101 (IOPAD_X53_Y21_N14)
600 0
Quartus中出现错误: Can't place multiple pins assigned to pin location Pin_101 (IOPAD_X53_Y21_N14)
.Net Micro Framework - USB Mass Storage功能实现
由于.Net Micro Framework的USB驱动架构中,没有为Mass Storage功能提供原生支持,所以除了要编写Mass Storage主体代码外,还需要在原有的USB驱动中添加部分枚举代码
927 0

热门文章

最新文章