**
FPGA入“坑”之路:大话AXI总线( 一)
**
【写的初衷纯属个人记录生活,也肯定会有不对的地方,若有,还请各位大佬们不吝赐教,比心0.0】
一、“总线?啥玩意”
第一篇去写zynq的相关知识,确实有点跳跃了,但是先把硬骨头啃掉,其他的就舒服了,(可能这就是典型的自讨苦吃),咋们玩zynq的时候,肯定会接触AXI的,提起AXI,我们毫无疑问的就会提起总线这个概念,总线(Bus)是计算机/微处理器各种功能部件之间传送信息的公共通信干线;简单点说就跟bus这个单词一样,它就像一个公交汽车,把一些数据从一个地方运到另外一个地方,为了保证把数据正确的运送到相应的地方,在运送时它会进行“票证验证”(握手机制),确定你要去的地方,还需要保证你去的地方还留有你的位置,不然你去了也没地方呆,那你还是得回来。
SoC片上总线依旧在如火如荼的发展阶段,不像计算机总线那样成熟,因此各大厂商和组织纷纷推出自己的标准,以便在未来的SoC片上总线标准中占有一席之地。ARM公司就在1995年推出了自己的总线——AMBA(Advanced Microcontroller Bus Architecture)。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统宏单元的可重用性,非常适合于现代大规模集成电路设计自动化的要求。而随着技术更迭,AMBA经历了不同的版本,分别如下:
AMBA 1:只有ASB和APB协议;
AMBA 2:引入AHB协议用于高速数据传输;
AMBA 3:为适应高吞吐量传输和调试引入AXI和ATB,增加高级可扩展接口,而AHB协议缩减为AHB-lite,APB协议增加了PREADY和PSLVERR,ASB由于设计复杂而不再使用;
AMBA 4:AXI得到了增强,引入QOS和long burst的支持,根据应用不同可选AXI4,AXI4-lite,AXI4-stream,同时为满足复杂SOC的操作一致性引入ACE和ACE-lite协议,APB和ATB也同时得到增强,比如APB加入了PPROT和PSTRB,另外为改善总线数据传输引入QVN协议;
AMBA 5:于2020年提出 适应更加复杂的高速NOC设计,引入环形总线协议,推出的AMBA CHI协议。
而在AMBA3.0中新增加了一种总线——AXI(Advanced eXtensible Interface)。它是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通