AHB-Lite简介
2015-08-18 10:15
260 查看
AHB总线实现了简单的基于burst的传输,数据总线带宽可配置32-1024bit。可以实现简单的fixed pipeline在address/control phase和
data phase之间。
AHB-Lite协议是整个AHB协议的子集,只支持一个总线主设备,不需要总线仲裁器及相应的总线请求/授权协议,
不支持Retry和Split响应。
AHB-Lite的典型应用结构是一个AHB-Lite master,一些AHB-Lite slaves。slave由APB总线实现,HSEL信号由一个
address decoder产生。从slave到master的rdata,response由一个slave-to-master multiplexor通过选址
送给master。
AHB中的transfer由两部分组成,Address phase,Data phase。master不能中断一个transfer,slave可以通过信号
HREADY来延长data phase。
AHB信号大致可以分为五类:
Global signals:HCLK,HRESETn;
Master signals:HADDR,32bit的地址线。
HBURST,3bitde burst长度和类型。支持长度为4/8/16的INCR/WRAP类型的burst。
未定义长度的INCR类型的burst。和Single burst两种新类型。
HMASTLOCK,表示一个locked的transfer,主要用在一个存在多个master访问的slave原语操
作中。因为AHB并不存在乱序操作,所以单一master时,并没用。arm建议,lock transfer之后
加一个IDLE的transfer。
HPROT,4bit包含data/opcode,supervisor/user之外,还包含bufferable,cacheable两位
AHB并没有对secure world的支持。
HSIZE, 3bit表示transfer的带宽,必须小于AHB配置的BUS width。
AHB中的byte lanes由address offset来决定,对于32bit的bus,0x1在小端格
式就只选择最低的byte。
HTRANS,2bit,只有AHB的信号,表示前后两个transfer之间的关系。
IDLE,表示无数据传输,在lock transfer之后以idle结束。slave必须返回OKAY response。
BUSY,允许master在一个transfer中加入idle cycle。并不实现数据的传输,address和control
signals反映在下一个transfer。
NONSEQUENTIAL,表示一个single transfer或者一个burst的第一个transfer。
这个transfer的address和control signal和前一个transfer没关系。
SEQUENTIAL,表示INCR/WRAP类型的transfer。control signal和前一个transfer一样。
address根据前一个transfer计算得到。
AHB的每个transfer的控制是分开的,其中包含burst信息,而AXI的transfer是打包在一个burst中
的。AHB是基于transfer的,AXI是基于burst的。
HWDATA,32bit。
HWRITE,1--write;0--read。
Slave signals:HRDATA,31bit数据,从slave送往Multiplexor。
HREADYOUT,从slave送往Multiplexor表示每个slave自己的READY信号,最终变为HREADY。
HRESP,从slave送往Multiplexor的response信号。
Decode signal:HSEL,从decoder送往slave的HSEL信号,由高位地址线组合逻辑生成。
Multiplexor signals:HRDATA,31bit,从Multiplexor送往master,读数据。
HREADY,从Multiplexor送往master,transfer结束信号。
HRESP,从Multiplexor送往master,response信号。
AHB中的transfer:主要依靠address,data之间的overlapping来实现pipeline。
所以当slave在data phase通过HREADY延长一个 transfer时,下一个transfer的address phase不能被即时
采样,也会被延长。建议slave插入的wait state不超过16个clk。
AHB中的transfer是不能超过1KB的,不是AXI的4KB。
AHB中要实现一个SEQ的transfer也是NONSEQ起始,然后每次clock rising 采样,其后增加SEQ或BUSY类型
的transfer,也是每个clock被采样。祥见相册。
当slave在一个transfer中插入wait state时,下一transfer的可以类型改变,但是会有限制。
1)前一transfer在IDLE类型,这一transfer可以是变为NONSEQ类型;
2)前一transfer在BUSY类型且length固定,这一transfer可以变为SEQ类型;
3)前一transfer在undefined burst length且在BUSY类型,这一transfer可以变为任意类型。
当slave在一个transfer中插入wait state时,在以下情况下可以改变address。
1)当前是一个IDLE类型transfer,address可以改变。
2)当slave返回一个error时,可以在HREADY为低时,改变地址。
AHB中的error返回,必须持续两个clock,提前一个cycle可以让master在发出下一个transfer之前,意识到这个transfer的error。
data phase之间。
AHB-Lite协议是整个AHB协议的子集,只支持一个总线主设备,不需要总线仲裁器及相应的总线请求/授权协议,
不支持Retry和Split响应。
AHB-Lite的典型应用结构是一个AHB-Lite master,一些AHB-Lite slaves。slave由APB总线实现,HSEL信号由一个
address decoder产生。从slave到master的rdata,response由一个slave-to-master multiplexor通过选址
送给master。
AHB中的transfer由两部分组成,Address phase,Data phase。master不能中断一个transfer,slave可以通过信号
HREADY来延长data phase。
AHB信号大致可以分为五类:
Global signals:HCLK,HRESETn;
Master signals:HADDR,32bit的地址线。
HBURST,3bitde burst长度和类型。支持长度为4/8/16的INCR/WRAP类型的burst。
未定义长度的INCR类型的burst。和Single burst两种新类型。
HMASTLOCK,表示一个locked的transfer,主要用在一个存在多个master访问的slave原语操
作中。因为AHB并不存在乱序操作,所以单一master时,并没用。arm建议,lock transfer之后
加一个IDLE的transfer。
HPROT,4bit包含data/opcode,supervisor/user之外,还包含bufferable,cacheable两位
AHB并没有对secure world的支持。
HSIZE, 3bit表示transfer的带宽,必须小于AHB配置的BUS width。
AHB中的byte lanes由address offset来决定,对于32bit的bus,0x1在小端格
式就只选择最低的byte。
HTRANS,2bit,只有AHB的信号,表示前后两个transfer之间的关系。
IDLE,表示无数据传输,在lock transfer之后以idle结束。slave必须返回OKAY response。
BUSY,允许master在一个transfer中加入idle cycle。并不实现数据的传输,address和control
signals反映在下一个transfer。
NONSEQUENTIAL,表示一个single transfer或者一个burst的第一个transfer。
这个transfer的address和control signal和前一个transfer没关系。
SEQUENTIAL,表示INCR/WRAP类型的transfer。control signal和前一个transfer一样。
address根据前一个transfer计算得到。
AHB的每个transfer的控制是分开的,其中包含burst信息,而AXI的transfer是打包在一个burst中
的。AHB是基于transfer的,AXI是基于burst的。
HWDATA,32bit。
HWRITE,1--write;0--read。
Slave signals:HRDATA,31bit数据,从slave送往Multiplexor。
HREADYOUT,从slave送往Multiplexor表示每个slave自己的READY信号,最终变为HREADY。
HRESP,从slave送往Multiplexor的response信号。
Decode signal:HSEL,从decoder送往slave的HSEL信号,由高位地址线组合逻辑生成。
Multiplexor signals:HRDATA,31bit,从Multiplexor送往master,读数据。
HREADY,从Multiplexor送往master,transfer结束信号。
HRESP,从Multiplexor送往master,response信号。
AHB中的transfer:主要依靠address,data之间的overlapping来实现pipeline。
所以当slave在data phase通过HREADY延长一个 transfer时,下一个transfer的address phase不能被即时
采样,也会被延长。建议slave插入的wait state不超过16个clk。
AHB中的transfer是不能超过1KB的,不是AXI的4KB。
AHB中要实现一个SEQ的transfer也是NONSEQ起始,然后每次clock rising 采样,其后增加SEQ或BUSY类型
的transfer,也是每个clock被采样。祥见相册。
当slave在一个transfer中插入wait state时,下一transfer的可以类型改变,但是会有限制。
1)前一transfer在IDLE类型,这一transfer可以是变为NONSEQ类型;
2)前一transfer在BUSY类型且length固定,这一transfer可以变为SEQ类型;
3)前一transfer在undefined burst length且在BUSY类型,这一transfer可以变为任意类型。
当slave在一个transfer中插入wait state时,在以下情况下可以改变address。
1)当前是一个IDLE类型transfer,address可以改变。
2)当slave返回一个error时,可以在HREADY为低时,改变地址。
AHB中的error返回,必须持续两个clock,提前一个cycle可以让master在发出下一个transfer之前,意识到这个transfer的error。
相关文章推荐
- 当当网
- 屏蔽所有统计代码(51.la cnzz 百度统计 谷歌分析师adsense、屏蔽淘宝客广告代码)的方法
- JackSon 数据之间的转换 java
- MYSQL-目录文件分配查询
- Gradle Android最新自动化编译脚本
- Oracle 分区操作
- GitHub和SourceTree入门教程
- 如何在shell中处理异常
- window server2008 R2 mvc 项目服务器环境的搭建。
- redis.conf配置详解
- Ubuntu14.04下安装OpenCV 3.0.RC1
- 苹果开发 笔记(62)edgesForExtendedLayout
- SQL_修改表结构
- Ugly Numbers(STL应用)
- iOS开发-UICollectionView
- Linux下查看目录大小
- 8月15日全球域名注册商(国际域名)保有量及市场份额
- .NET平台和Csharp编程开发学习教程
- Longest Common Prefix (leetcode 14)
- javascript中的面向对象(1)