AMBA3 AHB-lite笔记

2 篇文章 0 订阅

AMBA3 AHB-lite笔记

本文是针对AMBA3 AHB-Lite Protocol v1.0的学习整理而成的一个笔记

概述

AHB-lite是AHB协议的一个缩减版本,与之前的AMBA2 AHB2相比,AHB-Lite主要使用的方向是一个master到多slave的应用,而之前的AHB2协议支持多master多slave场景。
AHB-Lite支持功能如下
• burst transfers
• single-clock edge operation
• non-tristate implementation
• wide data bus configurations, 64, 128, 256, 512, and 1024 bits.
AHB-Lite支持的操作模式如下:
• single
• incrementing bursts that do not wrap at address boundaries
• wrapping bursts that wrap at particular address boundaries
架构图如下:
通过地址匹配来选择不同的slave口
下图是在eetop上别人整理的,有关各版本AHB协议的差异。
AHB各版本特性对于连接目标,我这边有一些个人理解
在soc或者mcu架构中,主要存在以下几种访问目标(Slave):
1:memory(rom、sram、ddr);
2:Peripheral(Reg);
两种类型的slave的差别源自于其特别属性,memory是一个存储空间,对于mem来说,存储本身并无特别意义,它的意义源自于应用上的定义,比如说当成堆栈区、当成命令存放区,mem唯一特别的访问需求源自于连续数据(大长度)的存或取的要求,在AHB-Lite里面对应的功能就是burst transfers。
Peripheral是一个具有特殊功能的寄存器空间,对于reg来说,存在多种属性,比如说读写、置一清零、读清零等,所以对于reg的访问来说,它需要的是byte/word/dword类型的操作,操作要求在于精准性。

SignalDescription

Master Port信号Slave Port信号
对于交互总线设计来说,我一般理解是这样的:
拿个现实中的例子说明,
人物:小明(Master),小美(Slave Mem)。
目地:小明叫小美去超市买根冰淇淋(Master从小美的内存读一笔数据)。
对话内容:
小明:小美你在吗?(等待HREADY,如果小美不在,小明就会等到小美说在才会继续)
小美:怎么了?小明(给HREADY了)
小明:你帮我去XX超市买一个冰淇淋(给HADDR/HWRITE/HSIZE等信息,也可能买8个冰淇淋,那就是HBURST=WRAP8)
小美:行行,你怎么老这么麻烦。(Slave接到命令,并且将HREADY置0,表示去忙了,但是正常情况下Slave都是流水线处理,接到命令,下一拍回复并且接下一个命令,HREADY会一直是1)
过一段时间~
小美:冰淇淋拿去! or 冰淇淋卖完了(回复HRESP表示是否成功,如果成功,同步回复HRDATA)
上面是乱写的,不做参考。

接下来是正经的信号说明

Master

NameDestinationDescription
HADDR[31:0]Slave and decoder可以寻址的大小,总共4GB寻址空间
HBURST[2:0]Slave连续的命令个数,支持1/4/8/16
HMASTLOCKSlave独占模式,Slave必须将当前命令以第一优先级完成,才能执行其它命令,AHB-Lite的Slave一般只会有一个master,所以此功能一般不支持
HPROTSlave指示的是当前命令的类型,指令还是数据,特权命令还是普通命令,能否缓存
HSIZESlave单条命令有效的长度,与HWDATA宽度有个,比如说HWDATA宽度为32位,那么Size只能是1/2/4 BYTE,最大支持的是1024bit(128BYTE)
HTRANSSlave当前命令的类型,IDLE表示空闲无效,BUSY只能在BURST模式中间生效,NOSEQ表示与前一条命令无关,SEQ表示与前一条命令是地址连续的
HWDATASlave单条写命令的数据宽度,32/64/128/256/512/1024,一般建议32位
HWRITESlave读写标记,1表示是写命令,0表示是读命令

以上的所有信号,都是同一拍发给Slave的

Slave

NameDestinationDescription
HRDATAMultiplexorSlave返回给Master的数据,与HWDATA相同,宽度为32/64/128/256/512/1024,一般建议32位
HREADYOUTMultiplexorSlave反馈给Master的状态信息,指示Slave完成了上一条的传输
HRESPMultiplexorSlave反馈给Master的状态信息,指示上一条传输是OKAY还是ERROR

Decoder

NameDestinationDescription
HESELxSlave选中标志,由于Master是1到多,所以Slave端增加SEL标志位,根据HADDR的地址内容来选中相对应的Slave

Multiplexor

NameDestinationDescription
HRDATAMaster由于Master是1到多,所以会根据Decoder的选择来确定回复的RDATA哪个是有效的
HREADYMaster and Slave表示上一个传输已经完成
HRESPMasterSlave反馈给Master的状态信息,指示上一条传输是OKAY还是ERROR

Global

NameSourceDescription
HCLKClock整个模块的时钟源
HRESETReset整个模块的Reset控制源

这个就不用多说了吧。

  • 11
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值