当前位置:文档之家› AMBA-总线-介绍2.0

AMBA-总线-介绍2.0



5
AMBA发展历史
• AMBA 1.0
• ASB 和 APB
• AMBA 2.0
• AHB, ASB 和 APB
• AMBA 3.0
• AMBA Advanced eXtensible Interface (AXI)


6
一个典型的AMBA系统
• 根据HSIZE和HBURST来计算地址 • 例:起始地址是0x48,HSIZE=010(32bits)
AMBA 总线

SEP3203

2
目录
• AMBA总线概述 • AHB • APB • 不同IP之间的互连

3
系统总线简介
• 系统芯片中各个模块之间需要有接口来连接 • 总线作为子系统之间共享的通信链路 • 优点
• 低成本 • 方便易用
• AHB仲裁器(arbiter)
• 允许某一个主设备控制总线 • 在AMBA协议中没有定义仲裁算法
• AHB译码器(decoder)
• 通过地址译码来决定选择哪一个从设备

11
APB组成部分
• AHB2APB Bridge
• 可以锁存所有的地址、数据和控制信号 • 进行二级译码来产生APB从设备选择信号
• Incrementing burst
• 地址是上一次的传输地址加1
• Wrapping burst
• 例:4beat的wrapping burst 字传输(4byte): • 0x34 -> 0x38 -> 0x3c -> 0x30 • 应用场合:Cache填充

33
地址计算举例
Dummy Master
Default Master
• Granted when all masters SPLIT • Generates IDLE cycles only • Typically Master #0
• GSPraLInTteredswpohnesneLocked master gets • IAmdpdlreemsse/nCtoanstrpoal rMt oufx

30
其它AHB控制信号(续)
• HPROT[3:0]
• HPROT[0]: OPCODE/DATA • HPROT[1]: USER/PRIVILGED • HPROT[2]: Bufferable/Non-Bufferable • HPROT[3]: Cacheable/Non-Cacheable
• APB总线上的所有其他模块都是APB从设备
• 不是流水线方式 • 接口是零功耗

12
AMBA协议其他有关问题
• 与工艺无关 • 没有定义电气特性 • 仅在时钟周期级定义时序
• 提取时序参数依赖于所采用的工艺和工作频率

13
目录
• AMBA总线概述 • AHB • APB • 不同IP之间的互连
• Immediate access to bus

17
Default Slave
0xFFFF_FFFF
Default Slave
0xCFFF_FFFF 0xC000_0000
Slave 3 (APB)
0x5000_FFFF 0x5000_0000
Slave 2 (Internal

31
AHB控制信号小结
HTRANS[1:0] IDLE BUSY
NONSEQ SEQ
HBURST[2:0] SINGLE INCR
WRAP[4|8|16] INCR[4|8|16]
HSIZE[2:0] Byte
Halfword Word
Doubleword ...
HPROT[3:0] 0 - data/opcode 1 - privileged/user 2 - bufferable 3 - cacheable
A+8
A+12
A+12
Slave has know that master need 4 data, A/A+4/ADtr+aun8risn/fAger+b, ui1fr2ssltave
not ready, then
HBURST shows the burst types:
hready=0; but if master is not
• 缺点
• 会造成性能瓶颈

4
AMBA介绍
• Advanced Microcontroller Bus Architecture
• 片上总线的标准
• 定义了三种总线
• AHB (Advanced High-performance Bus) • ASB (Advanced System Bus) • APB (Advanced Peripheral Bus)
19
基本AHB信号
• HRESETn
• 低电平有效
• HADDR[31:0]
• 32位系统地址总线
• HWDATA[31:0]
• 写数据总线,从主设备写到从设备
• HRDATA[31:0]
• 读数据总线,从从设备读到主设备

20
基本AHB信号(续)
• HTRANS
• 指出当前传输的状态
8
ASB
• 高速总线 • 流水线操作 • 支持多个总线主设备 • 支持burst传输 • 总线带宽:8、16、32bits • 三态、双向总线
• (不适于做DFT)
• 下降沿或者上升沿触发

9
APB
• 低速总线、低功耗 • 接口简单 • 在Bridge中锁存地址信号和控制信号 • 适用于多种外设 • 上升沿触发
Memory)
0x3FFF_FFFF 0x0000_0000 0x0000_0000
Slave 1 (External)
Decoder logic
case HADDR is when …. => HSELebi <= ‘1’; when …. => HSELsram <= ‘1’; when …. => HSELapb <= ‘1’; when others => HSELdefault <= ‘1’;

14
AHB总线互连

15
AHB传输
发起一个请求给仲裁 器
允许某个主设 备控制总线
驱动地址和 控制信号
仅选中的从设 备响应地址 /控制信号

拉高HREADY 信号,总线 传输完成
16
Dummy/Default Master
• NONSEQ、SEQ、IDLE、BUSY
• HSIZE
• 指出当前传输的大小
• HBURST
• 指出传输的burst类型
• HRESP
• 从设备发给主设备的总线传输状态
• OKAY、ERROR、RETRY、SPLIT
• HREADY
• 高:从设备指出传输结束 • 低电平:从设备需延长传输周期


10
AHB组成部分
• AHB 主设备(master)
• 初始化一次读/写操作 • 某一时刻只允许一个主设备使用总线 • uP、DMA、DSP、LCDC …
• AHB从设备(slave)
• 响应一次读/写操作 • 通过地址映射来选择使用哪一个从设备 • 外部存储器控制器EMI、APB bridge、UART、 …
21
基本AHB传输
• 两个阶段
• 地址周期,只有一个cycle • 数据周期,由HREADY信号决定需要几个cycle
• 流水线传送
• 先是地址周期,然后是数据周期

22
基本AHB传输(续)
一次无需等待状态的简单传输
If slave hasn’t ready to receive data, how to do?
One transfer need at least two cycles, how to promote its efficiency?
Not ready Not ready Ready

24
Pipeline
基本AHB传输(续)
A Address A Data B Address
end case;
Default_Slave logic
case HTRANS is when IDLE|BUSY => HRESP <= OKAY; when others => HRESP <= ERROR;
end case;

18
AHB信号

▪ HADDR must be aligned to a multiple of data size as given by HSIZE

32
BURST传输
• AHB Burst 操作
• 4beat、8beat、16beat、单个字节传输、未定义长度的 传输
• 支持incrementing和wrapping两种burst传输
• 00:IDLE
• 主设备占用总线,但没进行传输 • 两次burst传输中间主设备发IDLE
• 01:BUSY
• 主设备占用总线,但是在burst传输过程中还没有准备好 进行下一次传输
• 一次burst传输中间主设备发BUSY

27
传输类型(续)
• 10:NOSEQ
• 表明一次单个数据的传输 • 或者一次burst传输的第一个数据 • 地址和控制信号与上一次传输无关

29
其它AHB控制信号
• HWRITE
• 高电平:写 • 低电平:读
相关主题