6_AMBA总线(6学时)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7
www.cnasic.com
AHB
高速总线,高性能 流水线操作 可支持多个总线主设备(最多16个) 支持burst传输 总线带宽:8、16、32、64、128bits 上升沿触发操作 对于一个新设计建议使用AHB
8
www.cnasic.com
ASB
高速总线 流水线操作 支持多个总线主设备 支持burst传输 总线带宽:8、16、32bits 三态、双向总线
传输类型
HTRANS[1:0]:当前传输的状态
IDLE、BUSY、NONSEQ、SEQ
00:IDLE
主设备占用总线,但没进行传输 两次burst传输中间主设备发IDLE
01:BUSY
主设备占用总线,但是在burst传输过程中还没有准备 好进行下一次传输 一次burst传输中间主设备发BUSY
32
www.cnasic.com
HPROT[3:0] 0 - data/opcode 1 - privileged/user 2 - bufferable 3 - cacheable
HADDR must be aligned to a multiple of data size as given by HSIZE
37
www.cnasic.com
Note: slave shouldn’t insert more than 16 wait cycles!!!
Not ready
29
Not ready
Ready
www.cnasic.com
基本AHB传输(续) Pipeline
Slave decodes every transfer, so many waits, how to decrease the wait cycles?
35
www.cnasic.com
其它AHB控制信号(续)
HPROT[3:0]
HPROT[0]: OPCODE/DATA HPROT[1]: USER/PRIVILGED HPROT[2]: Bufferable/Non-Bufferable HPROT[3]: Cacheable/Non-Cacheable
AHB从设备(slave)
响应一次读/写操作 通过地址映射来选择使用哪一个从设备 外部存储器控制器EMI、APB bridge、UART、 …
AHB仲裁器(arbiter)
允许某一个主设备控制总线 在AMBA协议中没有定义仲裁算法
பைடு நூலகம்
AHB译码器(decoder)
通过地址译码来决定选择哪一个从设备
11
www.cnasic.com
目录
AMBA总线概述 AHB APB 不同IP之间的互连
19
www.cnasic.com
AHB总线互连
20
www.cnasic.com
允许某个主设 AHB传输 备控制总线 发起一个请求 给仲裁器 驱动地址和 控制信号 仅选中的从设 备响应地址 /控制信号
拉高HREADY 信号,总线 传输完成
21
23
www.cnasic.com
AHB信号
24
www.cnasic.com
基本AHB信号
HRESETn
低电平有效
HADDR[31:0]
32位系统地址总线
HWDATA[31:0]
写数据总线,从主设备写到从设备
HRDATA[31:0]
读数据总线,从从设备读到主设备
25
www.cnasic.com
基本AHB信号(续)
(不适于做DFT)
下降沿或者上升沿触发
9
www.cnasic.com
APB
低速总线、低功耗 接口简单 在Bridge中锁存地址信号和控制信号 适用于多种外设 上升沿触发
10
www.cnasic.com
AHB组成部分
AHB 主设备(master)
初始化一次读/写操作 某一时刻只允许一个主设备使用总线 uP、DMA、DSP、LCDC …
Master release address and control sample the data Slave sample theMaster address and control 28
www.cnasic.com
基本AHB传输(续)
需要两个等待周期的简单传输
One transfer need at least two cycles, how to promote its efficiency?
www.cnasic.com
Default Slave
0xFFFF_FFFF
Default Slave
0xCFFF_FFFF
Slave 3 (APB)
Decoder logic
0xC000_0000
0x5000_FFFF 0x5000_0000
case HADDR is when …. => HSELebi <= ‘1’; when …. => HSELsram <= ‘1’; when …. => HSELapb <= ‘1’; when others => HSELdefault <= ‘1’; end case;
Slave 2 (Internal Memory)
Default_Slave logic
0x3FFF_FFFF 0x0000_0000 0x0000_0000
Slave 1 (External)
case HTRANS is when IDLE|BUSY => HRESP <= OKAY; when others => HRESP <= ERROR; end case;
36
www.cnasic.com
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 ...
APB组成部分
AHB2APB Bridge
可以锁存所有的地址、数据和控制信号 进行二级译码来产生APB从设备选择信号
APB总线上的所有其他模块都是APB从设 备
不是流水线方式 接口是零功耗
12
www.cnasic.com
AMBA协议其他有关问题
与工艺无关 没有定义电气特性 仅在时钟周期级定义时序
Review(1)
AMBA简介 AMBA2.0:AHB、ASB、APB
AHB的组成部分 AHB master、AHB slave、AHB arbiter、AHB decoder APB的组成部分 AHB2APB bridge、APB slave AHB信号 HCLK、HRESETn、HADDR、HTRANS、HWRITE、HSIZE、 HBURST、HWDATA、HSELx、HRDATA、HREADY、HRESP
4
www.cnasic.com
AMBA介绍
Advanced Microcontroller Bus Architecture
片上总线的标准
定义了三种总线
AHB (Advanced High-performance Bus) ASB (Advanced System Bus) APB (Advanced Peripheral Bus)
传输类型(续)
10:NOSEQ
表明一次单个数据的传输 或者一次burst传输的第一个数据 地址和控制信号与上一次传输无关
11:SEQ
表明burst传输接下来的数据 地址和上一次传输的地址是相关的
33
www.cnasic.com
传输类型举例
The firstMaster transfer The subsequent The subsequent transfer Slave isThe transfer not ready subsequent transfer is busy
16
www.cnasic.com
例:DMA
Step3:
DMA把数据从 memory 1 传送到memory 2
17
www.cnasic.com
例:DMA
Step 4:DMA 向 CPU发出中断请求 Step 5:CPU检查 DMA的状态
Read(0x30004, &status)
18
www.cnasic.com
提取时序参数依赖于所采用的工艺和工作频率
13
www.cnasic.com
例:DMA
14
www.cnasic.com
例:DMA
Step0:CPU检查 DMA的状态以确认是 否可用 While(1) { Read(0x30004,&status) if(status == 0) break; }
15
22
Default Master
Granted when no master requires bus Generally master most likely to require bus Generates IDLE cycles when not requesting bus
Avoids minimum 2 cycle Arbitration period Immediate access to bus
34
www.cnasic.com
其它AHB控制信号
HWRITE
高电平:写 低电平:读
HSIZE[2:0]
000:8bits 100:128bits 001:16bits 101:256bits 010:32bits 110:512bits 011:64bits 111:1024bits 最大值受总线的配置所限制 通常使用32bits(010)
基本AHB传输
两个阶段
地址周期,只有一个cycle 数据周期,由HREADY信号决定需要几个 cycle
流水线传送
先是地址周期,然后是数据周期
27
www.cnasic.com
基本AHB传输(续)
一次无需等待状态的简单传输
If slave hasn’t ready to receive data, how to do?
5
www.cnasic.com
AMBA发展历史
AMBA 1.0
ASB 和 APB
AMBA 2.0
AHB, ASB 和 APB
AMBA 3.0
AMBA Advanced eXtensible Interface (AXI)
6
www.cnasic.com
一个典型的AMBA系统
处理器和其它主设备/从设备都是可以替换的
AMBA总线
www.cnasic.com
SEP3203
2
www.cnasic.com
目录
AMBA总线概述 AHB APB 不同IP之间的互连
3
www.cnasic.com
系统总线简介
系统芯片中各个模块之间需要有接口来连接 总线作为子系统之间共享的通信链路 优点
低成本 方便易用
缺点
会造成性能瓶颈
www.cnasic.com
Dummy/Default Master
Dummy Master
Granted when all masters SPLIT Generates IDLE cycles only Typically Master #0 Granted when Locked master gets SPLIT response Implement as part of Address/Control Mux
A Address
A Data B Address B Data C Address
30
C Data
www.cnasic.com
基本AHB传输(续)
Burst Transfer
A A A+4 A+4 A+8 A+8
A+12
A+12
During burst
Slave has know that master need 4 data, A/A+4/A+8/A+12 transfer, if slave
HTRANS
指出当前传输的状态
NONSEQ、SEQ、IDLE、BUSY
HSIZE
指出当前传输的大小
HBURST
指出传输的burst类型
HRESP
从设备发给主设备的总线传输状态
OKAY、ERROR、RETRY、SPLIT
HREADY
高:从设备指出传输结束 低电平:从设备需延长传输周期
26
www.cnasic.com
HBURST shows the burst types: Single Transfer Incrementing transfer with unspecified length(INCR) 4-beat 8-beat 16-beat 31 www.cnasic.com
not ready, then hready=0; but if master is not ready, how to do?
www.cnasic.com
例:DMA
Step1:CPU设置 (source address)、 (destination address) (size)
Write (0x30008,0x10000) Write(0x3000C,0x20000) Write(0x30010,0x100)
Step 2: 启动DMA Write(0x30000,0x1)
相关文档
最新文档