随着集成电路芯片的规模越来越大,IC的设计开始越来越复杂。基于IP核复用的设计方法因为能有效的降低复杂度,提高设计成功率,目前已成为主流的IC设计方法。而如何解决一个芯片内不同IP核间的通信问题是总体设计成功与否的关键。这种在一个芯片内部解决不同模块间通讯问题的总线称为片上总线。
各大IC公司都推出了各自的片上总线标准,在业内影响较大的主要有三种:
-
IBM公司推出的Core Connect -
ARM公司推出的AMBA(Advanced Microcontroller Bus Architecture, 高级微控制器总线架构,读作“阿姆吧”) -
OpenCores组织推行的wishbone
其中,AMBA因为这样或那样的原因已经成为业界的标准片上总线。AMBA是一套总线协议的统称,包含有多种适用于不同环境的总线协议,而AXI4总线是AMBA第四个版本中的一个总线协议。
1996年
, ARM公司发布了AMBA版本1即AMBA1
,其中定义了两个总线,ASB(Advanced System Bus, 高级系统总线) 和 APB(Advanced Peripheral Bus, 高级外设总线)
1999年
,AMBA2
发布,增加了AHB(AMBA Hign-Performance Bus, AMBA高性能总线),同时将APB总线升级成了同步总线。
2003年
,AMBA3
发布,此版本增加了AXI(Advanced Extensible Interface, 高级可扩展接口),以及ATB(Advanced Trace Bus, 高级跟踪总线)。这里的AXI因为属于AMBA3,又为了和后面的AXI4区分开,所以被称为AXI3。AXI3定位于高性能、高时钟频率的系统设计。
2010年
,AMBA4
发布,增加了AXI-ACE协议,为智能手机、平板电脑等富媒体系统的片上通讯提供更好的支持,这里的AXI即为AXI4,它是AXI3的更新,由Xilinx和ARM合作为基于FPGA的高性能系统共同设计完成,现在Xilinx公司旗下的众多IP均采用AXI4协议作为接口协议。ACE(AXI Coherency Extensions, AXI一致性扩展)是AXI4协议的扩展。另外,AMBA4还定义了LPI(Low Power Interface,低功耗接口), 用于芯片电源和时钟管理。
2013年
,AMBA5
发布,增加了CHI(Coherent Hub Interface,一致性集线器接口)协议,定位于服务器和网络应用。
关于AMBA1~5规范的各版本新增/更新了哪些协议,可参考ARM官网AMBA Specifications,我将其中的一些信息提炼为表格如下:
协议\架构 | AMBA1 | AMBA2 | AMBA3 | AMBA4 | AMBA5 |
---|---|---|---|---|---|
高级系统总线 ASB | ASB | ASB | |||
高级外设总线 APB | APB | APB | APB v1.0 | APB v2.0 | |
高级高性能总线 AHB | AHB | AHB-Lite v1.0 | |||
高级跟踪总线 ATB | ATB v1.0 | ATB v1.1 | |||
高级可扩展接口 AXI | AXI3 | AXI4 AXI4-Lite AXI4-Stream v1.0 |
AXI5 AXI5-Lite |
||
AXI一致性扩展 ACE | ACE4 ACE4-Lite |
ACE5 ACE5-Lite ACE5-LiteDVM ACE5-LiteACP |
|||
低功耗接口 LPI | LPI | ||||
一致性集线器接口 CHI | CHI | ||||
自适应流配置文件 | ATP | ||||
通用闪存总线协议 GFBP | GFBP | ||||
分布式转换接口 DTI | DTI | ||||
本地转换接口 LTI | LTI |
我喜欢在学东西前先把它的历史搞清楚,因此有了此文。现在我还不很清楚AXI4协议细节,等我弄明白了会继续更新博客,敬请期待!
参考
-
何宾,《Xilinx ZYNQ-7000嵌入式系统设计与实现 基于ARM Cortex-A9双核处理器和Vivado的设计方法(立体化教程)》 ,2016版,33~34页。
如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。
如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。
徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。