假如说在PC年代,独占PC江湖的是WINTEL(微柔和英特尔),那么在移动互联网年代,最具有这个潜质的便是谷歌的andriod操作体系和ARM芯片。依据ARM公司授权的各型ARM处理器,基本上在各型嵌入式终端设备占有了独占位置。“背靠大树好乘凉”,因而,用于作为ARM处理做片上体系互联的AMBA总线规范亦成为业界运用最广泛的规范。
AMBA总线事实上为三个总线规范的合集,别离是AHB、ASB、APB。ASB已逐步被AHB所替代,现在运用最广泛的为AHB和APB总线,以及最新的扩展AXI总线。实际上,如今体系规划中,常常会学习AHB或APB总线规范,用于规划各种IP和片内模块之间的互联。首要来说AHB和APB总线,一家公司为什么会退出有两种类型总线,这是因为AHB一般以为其具有更高的功用和总线吞吐能力,而APB为低速总线,用于衔接低速外设。两种总线互补,可以在功用和功耗方面进行互补。
如上图所示 :AHB总线与APB总线在一个嵌入式体系中的运用场景。 别离用于衔接低速设备和高速设备。下表罗列其一些首要的不同。
作为单次传输来说,AHB与APB的首要区别在AHB周期不固定,操作完结标明由从设备回来hready标明,而APB周期固定。作为burst传输来说,AHB支撑增量和回环两种方法的突发。举例说,增量便是挨个地址自加,如总线宽度为32,地址每次自加4(字节)。而回环,比方当时地址为0xA4,而回环突发操作位0xA4, 0xA8, 0xAC, 0xA0。这种突发方法关于一些cache读写内存对错常有用的,这样可以把0xA0-0xA15十六个内存地址一次性读出。假如规划一条这样的cache line,地址0xA0-0xA15其高位地址共同,便于匹配,这样这16个字节可以经过一次突发就能悉数填满。(即回环这种规划与处理器的cache结构是相关的,现在的cache line有逐步扩展的趋势,一般64字节也较为常见)。
因为支撑多个主设备和多个从设备进行交互,那么关于多个主设备之间就存在竞赛。(从设备之间存在竞赛否?从设备之间是经过地址区别的,被迫承受主设备的拜访,不会存储竞赛的问题。)因而怎么处理竞赛,那就需求裁定,即主设备谁需求拜访总线,则建议HBUSREQ,而裁定器收到HBUSREQ,回来给相应主设备HGRANT。此刻该设备才干拜访总线。除此之外AHB还有其他一些信号,用于辅佐整个体系的传输,感兴趣的同志,可以看一下AMBA的总线规范。值得一提的是,作为一个总线规范,其供给了全集的处理计划,而作为完成部分,只需求在满意规范的前提下,完成必要的功用即可,例如AHB总线中规则,其突发最大可1K字节,可是作为一个从设备,不一定需求支撑这么大的操作,即完成功用可在总线结构内进行裁剪,挑选完成支撑的类型即可。
在FPGA内部规划中,常常有多个主设备拜访同一从设备的比如,例如内部多个模块都需求拜访外部存储器,其完成方法有多种,经过AHB的衔接架构,可以完成一个规范、可扩展的接口单元,用于拜访外部存储器。而且可以作为IP运用。AHB从设备只需求依据需求,支撑某些burst传输即可。
跟着SOC(片上体系的开展),关于高带宽、低延时的总线需求愈加火急,ARM公司当令退出AXI(AMBA3.0)作为扩展。
上图别离是AXI接口的读写操作,别离可以看出,关于AXI总线来说,其有5组独立的总线,别离是写地址,写数据,写呼应,读地址,读数据信号。地址和数据信号分隔,每组都有自己的操控信号。
每个通道中心没有时序相关,怎么进行操作的?举例来说明,例如读数据操作,实际上,主设备向从设备中写了一个读的指令,包含读地址,burst巨细,方法等。收到后从设备依照相应的指令读取相应巨细的数据,传回主设备,其操作可以简化的看做两个缓冲区类型的操作,主设备将读指令写入从设备的指令缓冲区,从设备取出后,依据指令将相应的数据回来给主设备的接纳缓冲区中。这种操作的优点清楚明了,可以最大极限的削减总线的开支,因而其读与读操作之间独立,不必等待读回,就可以发送下一次的读信号。写操作的流程亦然。
对FPGA规划来说,例如xilinx的接口IP(DDR例化时的接口),都已支撑AXI的接口。FPGA工程师了解相应的总线接口信号和特色,关于技能计划挑选,IP运用和验证,都对错常重要的。尽量在规划中挑选规范总线接口,关于规划复用,模块同享来说,则是必经之路。而模块(IP)复用的好处跟着规划不断增大将会不断闪现。
PS:如要学习上述三种总线,引荐AMBA的手册,百度/谷歌各大搜索引擎均供给免费下载链接。