ahb协议Word文档下载推荐.docx
《ahb协议Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ahb协议Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
![ahb协议Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/7/efed5e67-4120-4fe7-917b-9f148e0d9230/efed5e67-4120-4fe7-917b-9f148e0d92301.gif)
ahb的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。
amba已不仅是一种总线,更是一种带有接口模块的互连体系。
基于amba的片上系统
大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:
主模块或者从模块。
主模块是向从模块发出读写操作的模块,如cpu,dsp等;
从模块是接受命令并做出反应的模块,如片上的Ram,ahb/apb桥等。
另外,还有一些模块同时具有两种属性,例如直接存储器存取(dma)在被编程时是从模块,但在系统读传输数据时必须是主模块。
如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。
虽然仲裁规范是amba总线规范中的一部分,但具体使用的算法由Rtl设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。
ahb总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅aRm公司推出的multi-layerahb规范)。
apb桥既是apb总线上唯一的主模块,也是ahb系统总线上的从模块。
其主要功能是锁存来自ahb系统总线的地址、数据和控制信号,并提供二级译码以产生apb外围设备的选择信号,从而实现ahb协议到apb协议的转换。
apb简介
apb主要用于低带宽的周边外设之间的连接,例如uaRt、1284等,它的总线架构不像ahb支持多个主模块,在apb里面唯一的主模块就是apb桥。
其特性包括:
两个时钟周期传输;
无需等待周期和回应信号;
控制逻辑简单,只有四个控制信号。
1)系统初始化为idle状态,此时没有传输操作,也没有选中任何从模块。
2)当有传输要进行时,pselx=1,penable=0,系统进入setup状态,并只会在setup状态停留一个周期。
当pclk的下一个上升沿时到来时,系统进入enable状态。
3)系统进入enable状态时,维持之前在setup状态的paddR、psel、pwRite不变,并将penable置为1。
传输也只会在enable状态维持一个周期,在经过setup与enable状态之后就已完成。
之后如果没有传输要进行,就进入idle状态等待;
如果有连续的传输,则进入setup状态。
amba简介
amba规范主要包括
了ahb(advancedhighperformancebus)系统总线和apb(advancedperipheralbus)外围总线。
一个典型的基于amba总线的系统框图如图3所示。
ahb总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅aRm公司推出的ahb规范)。
其主要功能是锁存来自ahb系统总线的地址、数据和控制
信号,并提供二级译码以产生apb外围设备的选择信号,从而实现ahb协议到apb协议的转换。
amba2.0规范中的ahb主要用于高性能模块(如cpu、dma和dsp等)之间的连接,作为soc的片上系统总线,它包括以下一些特性:
支持分段传输(ahb协议);
支持字节、半字节和
字的传输。
基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummyslave)、虚拟主模块(dummy
master)所组成。
其互连结构如图1所示。
apb上的传输可以用如图2所
示的状态图来说明。
当pclk的下一
个上升沿时到来时,系统进入enable状态。
如果有连续的传
输,则进入setup状态。
asb简介
amba2.0规范中的asb总线适用于连接高性能的系统模块。
它的读/写数据总线采用的是同一条双向数据总线,可以在某些高速且不必要使
用ahb总线的场合作为系统总线,可以支持处理器、片上存储器和片外处理器接口及与低功耗外部宏单元之间的连接。
篇二:
ahb总线互联结构图
ahb总线互联结构图
数字ic从基于时序驱动的设计方法,发展到基于ip复用的设计方法,并在soc
设计中得到了广泛应用。
在基于ip复用的soc(systemonchip的缩写,称为系统级芯片,也有称片上系统)设计中,片上总线设计是最关键的问题。
目录
编辑本段ahb简介
ahb系统由主模块、从模块和基础结构
ahb
(infrastructure)3部分组成,整个ahb总线上的传输都由主模块发出,由从模块负责回应。
针对soc设计中ip复用问题提出了一种新的解决办法.传统的方法是将特定功能模块的非标准接口标准化为ahb主/从设备接口,本文提出了一种新的基于aRm的soc通用平台设计寄存器总线标准接口,这种
设计使整个系统的结构清晰,增强系统的通用性与系统中功能模块的可移植性.
编辑本段apb简介
2)当有传输要进行时,pselx=1,penable=0,系统进入setup状态,并只会在setup状态停留一个周期。
之后如果没有传
输要进行,就进入idle状态等待;
编辑本段amba片上总线
ahb的仿真波形
编辑本段基于amba的片上系统
从模块是接受命令并做出反应的模块,如片上的Ram,ahb/apb桥等。
另外,还有一些模块同时具有两种属性,例如直接存储器存取(dma)在被编程时是从模块,
但在系统读传输数据时必须是主模块。
篇三:
ahb总线接口的一种新实现方案
ahb总线接口的一种新实现方案
马天翊,薛萍,马卫国时间:
20xx年12月10日字体:
大中小
关键词:
摘要:
针对标准ahb总线对具有特定访问时序的设备数据传输效率较低的情况,提出一种新的实现方案。
利用ahb总
线突发传输时的组合信息,根据某种算法生成地址和控制信号,以提高慢速设备的总线访问效率。
关键词:
ahb总线突发传输
在系统级芯片设计中,amba总线已经得到广泛的应用,有效地解决了复杂芯片的互连设计难题。
目前amba总线的主要实现形式是先进高性能总线(ahb)。
ahb总线的关键是对接口和互连均进行定义,目的是在任何工艺条件下实现接口和互连的最大带宽。
ahb总线互连的主要形式是带有主模块和从模块的共享总线,将接口与互连分开,主要由总线的中央资源负责仲裁、重传、拆分等操作,这对芯片上各模块的接口设计具有重要意义。
amba已不再仅仅是一种总线,而是
一种带有接口模块的互连体系。
但随着ahb总线的广泛应用,一些问题也暴露出来。
例如,对于具有特定访问时序的设备,ahb总线读取数据的效率较低。
本文提出一种新的、高效ahb-slave接口方案,可以在完全兼容amba2.0规范的前提下,将突发传输模式下的总线效率提高近一倍(具体提高依应用而定,可参见表1数据)。
该方案主要通过判断总线的控制信号,利用某种算法
控制地址实现,并可处理突发读数据的忙状态、写数据后立即回读、单周期突发操作等特殊情况。
1标准ahb-slave方案
amba2.0规范详细定义了标准的ahb-slave接口,涵盖了绝大部分操作。
但是对某些应用的实现不够高效,例如对具有较长延时的slave设备的突发读操作。
另外有些操作并没有定义,例如写之后立即读的操作。
标准ahb-slave实现
方案介绍如下(ahb总线描述及信号列表请参阅参考文献[1]。
1.1标准方案实现
标准的ahb-slave总线接口首先判断读操作或写操作,如果判断为写,则对单次写和突发写执行同样操作。
如果判断为读,对于单次读和突发读也不加区分,但由于突发读时地址段与数据段会自然相互重叠(overlap),所以突发读相对于多笔单次读的效率要高一些。
标准ahb-slave总线接口不支持写操作后立即执行读操作,要求二者之间至少有一个时钟周期的间隔,否则会产生错误。
考虑接口需求,要求写后立即读的情况并不会很多。
但是作为一个典型的存储设
备检测方法应该被这种操作支持。
1.2标准方案时序图
对于ahb总线,一次完整的传输可以分成两个阶段:
地址段(addressphase)和数据段(dataphase)。
地址段负责发送地址和控制信号,数据段则用来传输数据和反馈信号。
如果从设备无法在数据段用一个时钟周期完成读写,则可以
通过hReady信号来展宽数据段。
ahb总线为提高传输效率定义了突发传输方式(bursttransfer)。
在一次需要传输多个数据时,将前后数据的数据
段和地址段重叠在一起以提高效率。
限于篇幅,关于突发传输方式的详细描述请参阅文献[1]。
还有一点需要指出:
突发传输时,前次传输的数据段和后次传输的地址段重叠在一起,如果前次的数据段由于某种原因被展宽,后次传输的地址段也会随之展宽。
这是ahb2.0协议中降低总线效率的重要原因,也是可以采取方法来改
进的地方。
多周期读写时序如图1所示,详细说明如下。
图1未示出ahb总线的申请、仲裁、授权机制。
cycle4~9:
ahb总线的突发写时序,图1所示从设备可正常接收,不再详述。
cycle14:
master获得总线控制权,发出地址a5和控制信号,总线中央资源将其发往相关slave。
突发操作的第一
个数据htRans信号值为nonseq。
cycle15:
slave采样地址a5和控制信号,并作出判断和响应,如果不能立即存取数据,则将hReady_out信号拉低相应周期数(图1中所示为一个周期),但hResp信号为okay。
同时,master发出第二个传输的地址和控制信号。
此时htRans
为seq。
cycle16:
slave可以完成数据存取,将hReady_out信号拉高,将数据发送到hRdata总线,hResp信号仍为okay。
因为突发传输时前后两次数据段和地址段重叠,如果前次的数据段由于某种原因被展宽,后次传输的地址段也会随之展
宽。
图1中所示,master重复发出上一个时钟周期的地址a6和控制信号。
cycle17:
master采样反馈信号。
因为hReady_in信号为高(此时hReady_in与hReady_out信号等价),表示slave已经将数据发出,master采样数据d5,同时发出地址a7和相应控制信号。
slave采样地址a6和控制信号,因为不能立
即存取数据,所以将hReady_out信号再次拉低一个时钟周期,但hResp信号为okay。
cycle18、19、20:
分别与cycle16、17、16类似。
cycle21:
master判断hReady_in为高,采样数据d7,但不再发出新的地址和控制信号。
slave采样地址a8和控制
信号,然后将hReady_out信号拉低一个时钟周期,hResp信号为okay。
cycle22:
slave将hReady_out信号拉高(无效),将数据d8发送到hRdata总线,hResp信号仍为okay。
cycle23:
master采样反馈信号和数据d8,完成本次突发传输操作,之后可选择释放总线。
2高效ahb-slave方案
amba2.0规范中,对于具有较长延时的slave设备的突发读操作处理得不够理想。
针对这一问题,高效的ahb-slave方案应运而生。
突发传输时,从第二个数据开始的htRans信号为seq(sequential,连续),表示当前地址与前一次地址相关,而控制信号与前次相同。
这就表明可以利用第一个数据的地址和控制信号根据突发传输的类型来生成其后数据的
地址和控制信号。
当然,由于ahb总线的功能丰富,需要考虑的情况比较多,所以高效ahb-slave接口的实现方案相对复杂。
但已经证
实,当ahb总线时钟为150mhz时,可以在0.13um工艺条件下实现,且效果显著。
2.1高效方案实现
根据ahb总线的规则,突发传输过程中,控制信号不会变化,而地址会根据突发方式和传输数据的位宽增减,所以可以依据某种算法生成内部信号haddR_internal,用于生成超前地址,提高总线访问效率。
在ahb-slave接口设计中,
用haddR_internal代替haddR。
具体实现方案如图2所示。
首先判断读操作或写操作,如果判断为写,则对于单次写和突发写执行同样操作。
如果判断为读,则区分三种情况:
单次读、写后立即读与突发读。
如果为单次读,则执行基本读操作。
如果为写后立即读,由于ahb-slave接口内部处理延时,读操作会多延时一个时钟周期,亦即hReady_out会被多拉低一个时钟周期以通知总线的master。
如果判断为突
发读,则需作进一步判断。
当判断为突发读时,需进一步判断四种情况:
突发读的首数据、突发读期间的忙状态、突发读忙状态后首数据、突发读基本状态。
前三种情况的处理方法如图2所示,如果判断为突发读的基本状态,则内部读地址haddR_internal每个时钟周期递增一个单元,直到该次突发读结束。
对于具有较长读延时的ahb-slave设备,执行突发读操作时,由于第一个读数据延后n拍送出,所以外部地址haddR从第2个地址开始延长n拍。
假设n=1,从第2个地址起,外部地址haddR比haddR_internal延后1拍。
内部模块根据haddR_internal发出数据,此数据可以连续送到外部数据总线上。
2.2高效方案时序图
高效方案的多周期读写时序如图3。
图中未示出ahb总线的申请、仲裁、授权机制。
cycle14以前各周期的功能不
再详述。
master发出地址a5和控制信号。
依据某种算法生成内部超前地址haddR_internal以代替haddR,提高
总线访问效率。
因为cycle14为突发传输的第一个周期,所以haddR_internal与haddR相同。
slave采样地址a5和控制信号,由于不能立即存取数据将hReady_out信号拉低一个周期。
同时haddR_internal从a5变为a6,增加一个hsize信号所指示的单元地址。
master发出第二个传输的地址和控制信号。
此
时htRans为seq。
slave可以完成数据存取,将hReady_out信号拉高,将数据发送到hRdata总线。
此时haddR_internal递增为a7,超越了haddR,因为设计中haddR_internal代替haddR输出给内部模块,所以数据也会提前输出。
cycle17:
master采样反馈信号和数据d5,同时发出地址a7和相应控制信号。
slave不再采样地址和控制信号,而
是用内部生成的相应信号代替,发出数据d6,并且不再拉低hReady_out信号。
cycle18:
master采样反馈信号和数据d6,同时发出地址a8和相应控制信号。
slave根据内部信号发出数据d7。
cycle19、20:
分别与cycle17、18类似。
cycle21~23:
与标准方案的相应时序类似,不再赘述。
在突发传输操作中,master与slave之间的交互是连续的,但如果master因为某些原因无法及时发送或接收数据,则可以将htRans信号置为busy,使当前传输暂停几个时钟周期。
此时slave应该发送ok的hResp。
在一次读的过程中
插入busy的时序如图4。
cycle15以前各周期的功能不再详述。
master由于某种原因暂时无法接收数据,可以将htRans信号置为busy,地址递增为a11,控制信号可以保持上一时钟周期的读状态不变。
ahb-slave接口采样到busy状态(此次采样为异步采样,不依赖