AMBA-总线-介绍2.0
AMBA总线协议2.0总结
3.2
AHB总线互连结构................................................................................................................................. 17
3.3
AHB操作概述.......................................................................................................................................... 18
3.1
什么是AHB总线?................................................................................................................................. 14
3.1.1 一个典型的基于AHB总线的微控制器架构.............................................................................. 15
3.4.3 多重传送(multiple transfer) ........................................................................................................... 20
3.5
控制信号:传送状态HTRANS[1:0] .................................................................................................... 22
AMBA_总线_介绍
SEP3203
2
目录
AMBA总线概述 AHB APB 不同IP之间的互连
3
系统总线简介
系统芯片中各个模块之间需要有接口来连接 总线作为子系统之间共享的通信链路 优点
低成本 方便易用
缺点
会造成性能瓶颈
4
AMBA介绍
Advanced Microcontroller Bus Architecture
end case;
Default_Slave logic
case HTRANS is when IDLE|BUSY => HRESP <= OKAY; when others => HRESP <= ERROR;
end case;
18
AHB信号
19
基本AHB信号
HRESETn
低电平有效
HADDR[31:0]
▪ HADDR must be aligned to a multiple of data size as given by HSIZE
32
BURST传输
AHB Burst 操作
4beat、8beat、16beat、单个字节传输、未定义长度 的传输 支持incrementing和wrapping两种burst传输
AMBA 3.0
AMBA Advanced eXtensible Interface (AXI)
6
一个典型的AMBA系统
处理器和其它主设备/从设备都是可以替换的
7
AHB
高速总线,高性能 流水线操作 可支持多个总线主设备(最多16个) 支持burst传输 总线带宽:8、16、32、64、128bits 上升沿触发操作 对于一个新设计建议使用AHB
amba发展历史
AMBA发展历史
AMBA(Advanced Microcontroller Bus Architecture)是一种用于在微控制器和其他系统中实现高性能、低功耗互连的总线架构。
下面是AMBA的发展历史:
1. AMBA 1.0:于1995年发布,包括ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)两种总线协议。
ASB提供高速数据传输和低功耗,而APB则提供简单的单周期访问。
2. AMBA 2.0:于2001年发布,引入了AHB(Advanced High-performance Bus)协议,用于高速数据传输。
AHB提供了更好的带宽和更低的延迟,适用于需要快速响应的应用场景。
3. AMBA 3.0:于2007年发布,引入了AXI(Advanced eXtensible Interface)协议,用于高级可扩展性和灵活性。
AXI 支持各种不同的数据传输大小和地址映射方式,适用于不同的应用场景。
4. AMBA 4.0:于2013年发布,进一步增强了AMBA的性能和可扩展性。
AMBA 4.0引入了AHB3和AXI4协议,支持更高的带宽和更低的延迟,并提供更灵活的协议配置选项。
总的来说,AMBA的发展历程是从简单的ASB和APB
协议到更复杂的AHB和AXI协议,不断地提高性能和可扩展性,以适应不断发展的应用需求。
AMBA AHB APB 概述
AHB Decoder
• AHB系统中有一个核心地址译码器,它提供HSELx信号到各 个AHB Slave; • Decoder本身只负责位地址译码,为纯组合逻辑电路; • Slave只有在HSELx和HREADY都为High才采样地址/控制信号; • AHB地址线有32条,为简化译码器译码时间,AHB Spec.规 定每个Slave的最小地址空间为1KB,因此译码器最多只需 要对22条地址线进行译码。
HWRITE & HSIZE[2:0]
• Transfer Direction、Transfer Size由Master发出: – HWRITE为HIGH,Master在data phase将数据通过write data bus(HWDATA[31:0])发往Slave – HWRITE为LOW,Slave在data phase将数据通过read data bus (HRDATA[31:0])发往Master
允许某个主设备控制总线 发起一个请求给仲 裁器
驱动地址和控 制信号
仅选中的从设备响应地 址/控制信号
拉高HREADY信号,总线 传输完成
AHB Transfer
• Basic transfer – Address phase
• 传输address和control signal
– Data phase
• 传输write/read data和response signal
• 传输在data phase时若一个clock cycle无法完成传 输,Slave可通过拉低HREADY信号延长传输,传输 结束时状态由Slave HRESP信号反映。
Master sample the data
Master release address and control
东南大学soc课件6 AMBA总线(6学时)共109页文档
HADDR[31:0]
32位系统地址总线
片上总线的标准
定义了三种总线
AHB (Advanced High-performance Bus) ASB (Advanced System Bus) APB (Advanced Peripheral Bus)
5
cnasic
AMBA发展历史
AMBA 1.0
ASB 和 APB
AMBA 2.0
AHB, ASB 和 APB
AHB组成部分
AHB 主设备(master)
初始化一次读/写操作 某一时刻只允许一个主设备使用总线
uP、DMA、DSP、LCDC …
AHB从设备(slave)
响应一次读/写操作 通过地址映射来选择使用哪一个从设备
外部存储器控制器EMI、APB bridge、UART、 …
AHB仲裁器(arbiter)
允许某一个主设备控制总线
在AMBA协议中没有定义仲裁算法
AHB译码器(decoder)
通过地址译码来决定选择哪一个从设备
11
cnasic
APB组成部分
AHB2APB Bridge
可以锁存所有的地址、数据和控制信号 进行二级译码来产生APB从设备选择信号
APB总线上的所有其他模块都是APB从设 备
不是流水线方式 接口是零功耗
12
cnasic
AMBA协议其他有关问题
与工艺无关 没有定义电气特性 仅在时钟周期级定义时序
提取时序参数依赖于所采用的工艺和工作频率
13
cnasic
例:DMA
14
cnasic
例:DMA
Step0:CPU检查 DMA的状态以确认是 否可用
学习汇报 AMBA总线协议
RETRY和SPLIT的区别
RETRY:arbiter内master的 先权的master获得 SPLIT:当arbiter观察到master收到SPLIT response 时,则该master的优先权mask起来,使其无法获 得bus。若所有master都收到SPLIT,则arbiter把 bus交给dummy master(只会发出IDLE transfer)。 当发出SPLIT response的slave处理完transfer之后, 会发出HSPLIT信号给arbiter,将master的优先权 unmask。
2.3 Control signal
AHB上的control signal分5类
HTRANS[1:0] : Transfer type HBURST[2:0] : Burst type HPORT[3:0] : Protection control HSIZE[2:0] : Transfer size HWRITE : Transfer direction
根据AMBA标准定义了三种不同的总线
高级高性能总线(Advanced High-performance Bus) 高级系统总线(Advanced System Bus) 高级外设总线(Advanced Peripheral Bus)
1.1.1 高级高性能总线(AHB)
用于高性能、高时钟频率的系统模块。
为了支持multiple master,需要arbiter来仲裁;decoder负责位解码, 从multiple slave中选择要回应transfer的slave。 两个mux则负责bus的routing(以不适用tristate bus)。如下图
Bus上传输的信号有七种:clock,arbitration, address,control signal,write data,read data, response signal
amba总线 latency 定义
AMBA(Advanced Microcontroller Bus Architecture)总线是ARM公司提出的一种开放式、高性能的总线标准,常用于嵌入式系统中。
在AMBA总线中,latency(延迟)通常指的是数据从一个设备传输到另一个设备所需的时间,具体定义如下:1. 传输延迟:AMBA总线上的传输延迟是指数据或信号从一个AMBA总线的主设备传输到从设备(或相反)所需的时间。
这包括了信号传输、寻址和响应等过程中所耗费的时间。
2. 处理延迟:除了传输延迟外,AMBA总线上的处理延迟还包括了数据在从设备内部进行处理(如缓存、寄存器等)所需的时间。
这个延迟通常取决于从设备的性能和处理能力。
AMBA总线是一种用于连接嵌入式系统不同功能模块(如处理器、内存、外设等)的开放式总线标准。
在AMBA总线中,latency(延迟)可以分为以下几个方面的定义和优化:1. 传输延迟:AMBA总线上的传输延迟包括了信号从一个设备传输到另一个设备所需的时间。
具体包括以下几个阶段:- 请求发起:当主设备发送请求时,信号需要经过总线来到达目标从设备。
这个过程涉及总线中的传输延迟,包括信号的传输速度和总线的带宽。
- 寻址:一旦请求到达目标从设备,目标设备需要解析请求并确定具体的寻址信息,以确定数据的来源或目标地址。
这个解析过程可能需要一定的时间。
- 响应返回:从设备接收到请求后,需要进行相应的操作,并将结果或响应发送回主设备。
这个过程也会产生一定的延迟。
降低传输延迟的方法包括提高总线的工作频率、增加总线的带宽、优化总线协议和信号传输机制等。
例如,采用更高速的总线规范(如AMBA AXI),使用更快的总线时钟频率,以及采用高性能的总线接口和物理层技术(如串行化)等。
2. 处理延迟:除了传输延迟外,AMBA总线上的处理延迟还包括了数据在从设备内部进行处理所需的时间。
这个延迟取决于从设备的性能和处理能力,例如从设备内部的存储器读写延迟、计算或操作的执行时间等。
AMBA总结
AMBA(Advanced Microcontroller Bus Architecture),即高级微控制器总线体系。
目前,AMBA总线标准一共有四套版本,各个版本的协议都沿用至今。
1)第一套AMBA 1.0总线。
2)第二套AMBA 2.0总线。
3)第三套AMBA 3.0 AXI总线。
4)第四套AMBA4.0总线。
➢AMBA1.0只包含ASB总线和APB总线,这时候的总线协议都是三态总线,但是三态总线要设计者花很多的精力去注意时钟。
➢AMBA2.0总线新增了AHB总线,并且采用了分享型的互连结构,增加了新的特性。
➢为了顺应快速发展的SoC技术,ARM公司推出了具有更强灵活性的AMBA3.0 AXI总线。
➢2010年ARM公司发布了SoC片上总线标准的新版本AMBA4.0总线,由AXI4、AXI4-Lite、AXI4-Stream三种标准构成。
AMBA4.0规范是多家企业共同为行业而设定的,包括业界领先的OEM厂商、半导体及EDA供应商等。
AMBA4.0规范的特殊设计将使嵌入式系统达到过去只有台式电脑、笔记本电脑和网络设备才能达到的水准。
1AMBA 2.0版本标准2.0版AMBA标准定义了三种不同的总线:●AHB(Advanced High-performance Bus)高级高性能总线;●ASB(Advanced System Bus)高级系统总线;●APB(Advanced Peripheral Bus)高级外设总线。
典型的基于AMBA总线的系统框图如图:大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。
主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。
另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。
如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。
AMBA总线介绍
AMBA总线介绍AMBA 2.0规范包括四个部分:AHB、ASB、APB和Test Methodology。
AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。
AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。
AHBAHB=Advanced High Performance Bus,译作高级高性能总线。
如同USB(Universal Serial Bus)一样,也是一种总线接口。
特性:突发连续传输分步传输单周期内主控制器处理单时钟边沿操作非三态操作支持64位,128位总线AHB主要用于高性能模块(如CPU、高速RAM、Nand Flash DMA和DSP等)之间的连接,如图一所示。
作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字和字的传输。
AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。
基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。
其互连结构如图二所示AHB主控制器:主控制器可以通过地址和控制信息,可以进行初始化,读,写操作。
在同一时间,总线上只能有一个主控制器。
AHB从设备:从设备通常是指在其地址空间内,响应主控制器发出的读写控制操作的被动设备。
通过操作的成功与否反馈给其主控制器,完成数据的传输控制。
AHB仲裁器:仲裁器根据用户的配置,确保在总线上同一时间只有一个主控制器拥有总线控制权限。
AHB总线上只能有一个仲裁器。
AHB译码器:译码器解析在总线上传输的地址和控制信息。
AMBA总线介绍
AMBA总线介绍ARM 研发的AMBA(Advanced Microcontroller Bus Architecture)提供一种特殊的机制,可将RISC 处理器集成在其它IP 芯核和外设中,2.0 版AMBA 标准定义了三组总线:AHB(AMBA 高性能总线)、ASB(AMBA 系统总线)、和APB(AMBA 外设总线)。
AHB 用来研发宽带宽处理器芯核的片上总线。
the Advanced High-performance Bus(AHB)应用于高性能、高时钟频率的系统模块,它构成了高性能的系统骨干总线(back-bone bus )。
它主要支持的特性是:* 数据突发传输(burst transfer )*数据分割传输(split transaction )*流水线方式*一个周期内完成总线主设备(master )对总线控制权的交接*单时钟沿操作*内部无三态实现*更宽的数据总线宽度(最低32 位,最高可达1024 位,但推荐不要超过256 位)ASB the Advanced System Bus 是第一代AMBA 系统总线,同AHB 相比,它数据宽度要小一些,它支持的典型数据宽度为8 位、16 位、32 位。
它的主要特征如下:* 流水线方式* 数据突发传送* 多总线主设备* 内部有三态实现the Advanced Peripheral Bus(APB)是本地二级总线(local secondary bus ),通过桥和AHB/ASB 相连。
它主要是为了满足不需要高性能流水线接口或不需要高带宽接口的设备的互连。
APB 的总线信号经改进后全和时钟上升沿相关,这种改进的主要优点如下:* 更易达到高频率的操作* 性能和时钟的占空比无关* STA 单时钟沿简化了* 无需对自动插入测试链作特别考虑* 更易与基于周期的仿真器集成APB 只有一个APB 桥,它将来自AHB/ASB 的信号转换为合适的形式以满足挂在APB 上的设备的要求。
001AMBA总线概述
001AMBA总线概述AMBA总线协议是⼀套由ARM提供的互连规范,该规范标准化了各种IP之间的芯⽚通信机制。
这些设计通常有⼀个或多个微处理器以及集成其他⼀些组件——内部存储器或外部存储器桥、DSP、DMA、加速器和各种其他外围设备,如USB、UART、PCIE、I2C等。
AMBA协议的主要⽬的是⽤⼀种标准和⾼效的⽅法来重⽤这些跨多个设计的IP。
学习AMBA协议的第⼀步是了解这些不同的协议在哪⾥使⽤,是如何演进的,以及它们适合什么样SOC设计。
⼀、AMBA总线发展史AMBA是由公司研发推出的⼀种⾼级微控制器总线架构(Advanced Microcontroller Bus Architecture)。
AMBA 1.0ASB 和 APBAMBA 2.0AHB, ASB 和 APBAMBA 3.0AMBA Advanced eXtensible Interface (AXI)AMBA 4.0AXI4,AXI4-lite,AXI4-stream,ACE,ACE-liteAMBA 5.0AXI5,AXI5-lite,ACE5,ACE5-lite,ACE5-liteDVM下图展⽰了传统基于AMBA2.0的SOC设计,它使⽤AHB(⾼级⾼性能)协议进⾏⾼带宽互连,以及针对低带宽外围互连的APB(⾼级外围总线)协议。
随随着越来越多的IP集成到SOC设计中,读写共享的AHB、APB总线已经⽆法满⾜互联需求了。
2003年,AMBA3.0引⼊了点对点连接协议——AXI(⾼级可扩展接⼝)。
此外在2010年,⼜推出了⼀个增强版——AXI4。
下图说明了协议的演变以及⾏业中的SOC设计趋势。
下图说明了如何使⽤AXI互连来构建各种IP通信的的SOC。
与以前的AHB/ASB总线相⽐,AXI互连有助于提⾼连接数量。
在移动和智能⼿机时代发⽣了进⼀步的演进,SOC集成了2/4/8核处理器和共享cache,并且需要跨内存⼦系统的硬件管理⼀致性。
AMBA总线中文规范
Introduction to AMBA Bus System工研院 / 系統晶片技術㆗心工程師吳欣龍1. 前言本篇文章主要是介紹ARM Limited.公司所推出的AMBA 協定(Advanced Micro-controller Bus Architecture)。
AMBA協定目前是open 且free的,讀者可從ARM的網站()㆘載完整的Specification。
這篇文章並沒有打算說明完整的AMBA協定內容,詳細的Spec.還是請讀者閱讀ARM所提供的文件。
原本的AMBA協定包含了㆕大部分: AHB, ASB, APB, Test Methodology,限於篇幅的關係,我們挑選較重要的AHB, APB加以基本的介紹,並探討AHB的㆒些重要的特性。
2. AMBA 概述AMBA協定的目㆞是為了要推出on-chip bus的規範,㆒開始AMBA 1.0只有ASB與APB,為了節省面積,所以這時候的bus協定都是tristate的bus,而到後來2.0的AHB為了能更方便設計者(trisate bus要花更多精力去注意timing),因此改用bus改用multiplexor的架構,並增加了新的特性。
㆒個以AMBA架構的SOC,㆒般來說包含了 high-performance的system bus - AHB與low-power的peripheral bus - APB。
System bus是負責連接例如ARM之類的embedded processor與DMA controller,on-chip memory 和其他 interface,或其他需要high bandwidth 的元件。
而peripheral bus則是用來連接系統的周邊元件,其protocol相對AHB來講較為簡單,與AHB之間則透過Bridge相連,期望能減少system bus的loading。
㆒個典型的AMBA架構如圖2.1:圖2.13. AHB簡介ARM當初訂定AHB (Advanced High-Performance Bus)主要是想讓它能夠用來當作SOC的z single-clock edge operationz non-tristate implementationz burst transfersz split transactionz multiple bus master以㆘我們將簡單的介紹AHB 的協定及這些特性。
AMBA总线的内容说明
第11章 DMA控制器
DREQ:DMA请求信号,属输入信号,高电平有 效。
DACK:DMA响应信号,属于输出信号,高 电平有效。
HRQ:总线请求信号,属于输出信号,高电平有 效。
第十二页,共四十七页。
第11章 DMA控制器
HLDA:总线响应信号,属于输入信号,高电平 有效。
;初始化通道2
;入口参数:AL=DMA方式字节
;读盘(DMA写)=046H
;写盘(DMA读)=04AH
;DH=传输的扇区数
;ES:BX=RAM缓冲区首地址
;定义要使用的符号
DMA EQU 0
;第0片DMA通道端口
第三十五页,共四十七页。
第11章 DMA控制器
DMA1 EQU 0C0H ;第1片DMA通道端口
第11章 DMA控制器
4.状态寄存器
状态寄存器的格式如下:
第二十二页,共四十七页。
第11章 DMA控制器
5.请求寄存器
其格式如下:
各位的含义如下:
D7~D3:未定义。
D2:DMA请求标志位。
D1~D0:通道选择位。如表4.4所示。
第二十三页,共四十七页。
第11章 DMA控制器
表4.4 通道选择标志位
第二十五页,共四十七页。
第11章 DMA控制器
表4.5 通道屏蔽选择
D1
D0
功能
0
0
选择0通道
0
1
选择1通道
1
0
选择2通道
1
1
选择3通道
第二十六页,共四十七页。
第11章 DMA控制器
8237A也可以用综合屏蔽命令来设置通道 的屏蔽触发器,其格式如下:
关于AMBA的笔记3(哥,断奶了)
本文源于哥,断奶了在学习中做的笔记,希望分享后大家一起学习讨论。
2013/4/27GRLIB IP Core User’s ManualGBLIB IP 核用户手册(AMBA总线部分)一.AHBCTRL - AMBA AHB控制器,支持即插即用1.1 overview(概述)根据AMBA2.0标准AMBA AHB控制器的组合包括AHB仲裁器、总线多路复用器和从解码器。
该控制器支持多达16个AHB的master,16个AHB的slave。
Master和slave 的最大数量定义在GRLIB.AMBA包,在VHDL常数NAHBSLV的和NAH BMST。
它也可以通过设置nahbm nahbs VHDL generics。
1.2 operation(操作)1.2.1 arbitration(仲裁器)AHB控制器支持两个仲裁算法:固定优先级和循环配置资源。
这个选择是通过VHDL generic rrobin决定的。
在固定优先级模式(rrobin= 0),总线请求的优先级等于主总线指数,指数为0的优先级最低。
如果没有master请求总线,master0(由VHDL generic defmast的设置)将被授予。
在循环配置模式下,优先旋转1步后,每个AHB传输。
如果没有master请总线,最后的所有者将被授予(bus parking)。
VHDL generic mprio的可以可以用来指定一个或多个master时,应优先配置core为循环模式。
在递增突发下,AMBA 2.0规范建议master保持总线请求直到最后一次访问结束,不然他会失去总线所有权。
对于固定长度突发,这个AHB master将被授予总线知道整个突发完成,或者在第一次访问之后立即释放总线请求。
然而对于这项工作的,VHDLgeneric fixbrst的应该被设置为1。
1.2.2 decoding(解码器)slave解码器(一代的HSEL)在这个用户手册中是使用即插即拔的方法在这个用户手册中。
AMBA总线介绍
4. 对Verilog、VHDL;VCS、NC、VSIM不用纠结过于表象的东西
5. 多交流,在项目中的技术提升是最快的
END
renge@
AMBA总线介绍
对待同一个问题,随着技术水平的深入会有新的理解和领悟。 (不断的总结和提高) 对数字工程师的建议: 1. RTL只是很小一部分。软件的语言,硬件的思维(时序,电路) 2. 一定要了解数字设计流程(R2N,Flow FM/DC/PT/PTPX/CDC/DFT…) shell,make…
AMBA总线介绍
AMBA
ARM
= Advanced Microcontroller Bus Architecture 一种先进的微控制器总线架构 是一家公司的名字/英国/安谋/IP 指代一类处理器/RISC/ARM7,ARM9,Cortex A,R,M 1 公交车 3 集线器 2 汇流排 4 总线 • 提供设备间的数据通路 • 物流,高速公路 • Bus-Matrix 问题:总线和接口的区别? 系统总线: 连接系统模块与系统外设的 模块: Master, Slave (CPU,DMA) 外设: peripheral (GPIO)
AHB主设备接口
6
AHB从设备接口
7
Tips:
把AMBA协议当成是参考书,把项目当做教科书。 (learn from doing, practise makes perfect)
不要过于抠协议的细节,有些不理解的内容很正常; (RE,VI,setup/hold,blocking/non-blocking,latch) (试图掌握一个命令的全部选项相当于去背一本字典,毫无意义)
BUS
常见总线: I2C, UART ,SPI
复杂总线: USB,RMII/MII
AMBA总线介绍
计算机基本知识AMBA总线介绍一:背景介绍ARM公司定义了AMBA(Advanced Microcontroller Bus Architecture)总线规范,它是一组针对基于ARM核的、片上系统之间通信而设计的标准协议。
因为ARM处理器的广泛使用而拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用。
在AMBA总线规范中,定义了AHB ,APB ,ASB这3种总线。
最初的AMBA总线是ASB和APB。
在它的第二个版本中,ARM引入了AHB。
(l)AHB:Advanced High Performace Bus,用于高性能系统模块的连接,支持突发模式数据传输和事务分割;(2)ASB:Advanced System Bus,也用于高性能系统模块的连接,支持突发模式数据传输,这是较老的系统总线格式,后来由AHB总线替代;(3)APB:Advanced PeriPheral Bus,用于较低性能外设的简单连接,一般是接在AHB或ASB系统总线上的第二级总线。
图1 典型的基于AMBA总线的系统[1]一个以AMBA 为架构的SOC,图1是个典型的系统架构,一般来说包含了high-performance 的system bus –AHB以及low speed, low power 的peripheral bus - APB 。
System bus 是负责连接例如ARM 之类的embedded processor 以及DMA controller,on-chip memory 和其他interface,或其他需要high bandwidth的模块。
而peripheral bus 则是用来连接系统的外围慢速模块,其协议规则相对AHB来说较为简单,它以AHB之间则通过Bridge 相连,期望能減少system bus 的loading。
二:结构以及仲裁原理1 .AHB BusAHB System是由Master,Slave,Infrastructure 三部分所组成。
基于AMBA-AHB总线的SDRAM控制器设计方案
[导读]为了在嵌入式系统设计中实现对SDRAM存储器的访问,本文提出了一种基于AMBA-AHB总线规范的SDRAM控制器设计方案。
方案首先简要介绍了AMBA总线规范,然后在完成整个存储控制器的整体框架设计的基础上给出了SDRAM控制器的实现原理以及详细的子模块划分。
整个控制器的设计已用Verilog HDL语言实现并通过了Modelsim仿真和FPGA验证。
仿真结果表明所设计的控制器符合SDRAM内部指令操作,并且满足了严格的时序要求。
0 引言随着大规模集成电路和高速、低功耗、高密度存储技术的发展,SDRAM动态存储器因容量大、速度快、价格低廉等优点,现已成为PC内存的主流。
然而SDRAM存储器内部控制逻辑十分复杂,时序要求也非常严格,因此需要设计专门的SDRAM 控制器来实现系统对SDRAM 的访问。
存储控制器是嵌入式微处理器中AMBA-AHB总线与片外存储设备之间的接口,完成总线主设备(CPU或DMA)与片外存储设备(SDRAM或SRAM)的数据传输,其功能与性能决定着嵌入式微处理器所支持的外部存储器的类型以及外部存储器的访问速度,进而决定着整个嵌入式系统的处理速度。
AMBA总线规范成为嵌入了式微处理器内片上总线的标准,设计基于AMBA总线标准,支持嵌入式系统常用存储器类型的存储控制器IP具有非常大的现实意义。
1 AMBA 总线简介典型的基于AMBA总线的微控制器架构如图1所示。
它包含一个作为系统骨架的AHB(Advanced High-Performance Bus)或ASB总线,可实现CPU或DMA模块与片外存储器之间的大量数据通信,以获得大的带宽。
另外,在这条高性能总线上还有一个桥接器以连接低带宽的APB,而在APB上连接着大多数的系统外设。
用户可以各自独立设计基于这个规范的微处理器以及外围IP,提高了系统的开发效率及模块的可重用型[6]。
其中,AHB 总线是一种支持多总线主机的高性能总线,用于高性能、高时钟频率的系统,它保证了处理器与片外存储器的有效连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
• 高电平:写 • 低电平:读