AXI总线学习
AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数 据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易并行时序收敛。AXI是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
AXI 有读地址和控制、读数据、写地址和控制、写数据、写响应5个通道。
控制和数据通道分离,可以带来很多好处。地址和控制信息相对数据的相位独立,可以先发地址,然后再是数据,这样自然而然的支持显著操作,也就是outstanding操作。Master访问slave的时候,可以不等需要的操作完成,就发出下一个操作。这样,可以让slave在控制流的处理上流水起来,达到提速的作 用。同时对于master,也许需要对不同的地址和slave就行访问,所以可以对不同的slave 连续操作。而这样的操作,由于slave返回数据的先后可能不按照master 发出控制的先后进行,导致出现了乱序操作(out of order )。
AXI的性能
AXI 能够使SoC 以更小的面积、更低的功耗,获得更加优异的性能。AXI获得如此优异性能的一个主要原因,就是它的单向通道体系结构。单向通道体系结构使得片上的信息流只以单方向传输,减少了延时。
选择采用何种总线,我们要评估到底怎样的总线频率才能满足我们的需求,而同时不会消耗过多的功耗和片上面积。ARM一直致力于以最低的成本和功耗追求更高的性能。这一努力已经通过连续一代又一代处理器内核的发布得到了实现,每一代新的处理器内核都会引入新 的流水线设计、新的指令集以及新的高速缓存结构。这促成了众多创新移动产品的诞生,并且推动了ARM架构向性能、功耗以及成本之间的完美平衡发展。
AXI总线是一种多通道传输总线,将地址、读数据、写数据、握手信号在不同的通道中发送,不同的访问之间顺序可以打乱,用BUSID来表示各个访问的归属。主设备在没有得到返回数据的情况下可发出多个读写操作。读回的数据顺序可以被打乱,同时还支持非对齐数据访问。
AXI总线还定义了在进出低功耗节电模式前后的握手协议。规定如何通知进入低功耗模式,何时关断时钟,何时开启时钟,如何退出低功耗模式。这使得所有IP在进行功耗控制的设计时,有据可依,容易集成在统一的系统中。
AXI的特点
单向通道体系结构。信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。
支持多项数据交换。通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
增强的灵活性。AXI技术拥有对称的主从接口,无论在点对点或在多层系统中,都能十分方便地使用AXI技术。
AXI4的工作模式
握手机制
AXI4所采用的是一种READY,VALID握手通信机制,即主从模块进行数据通信前,新根据操作对各所用到的数据、地址通道进行握手。主要操作包括传输发送者A等到传输接受者B的READY信号后,A将数据与VALID信号同时发送给B。如下图所示:
axi总线的五个通道:
- 读地址通道,包含ARVALID, ARADDR, ARREADY信号;
- 写地址通道,包含AWVALID,AWADDR, AWREADY信号;
- 读数据通道,包含RVALID, RDATA, RREADY, RRESP信号;
- 写数据通道,包含WVALID, WDATA,WSTRB, WREADY信号;
- 写应答通道,包含BVALID, BRESP, BREADY信号;
- 系统通道,包含:ACLK,ARESETN信号;
其中ACLK为axi总线时钟,ARESETN是axi总线复位信号,低电平有效;读写数据与读写地址类信号宽度都为32bit;READY与VALID是对应的通道握手信号;WSTRB信号为1的bit对应WDATA有效数据字节,WSTRB宽度是32bit/8=4bit;BRESP与RRESP分别为写回应信号,读回应信号,宽度都为2bit,‘h0代表成功,其他为错误。
A.读操作:
顺序为主与从进行读地址通道握手并传输地址内容,然后在读数据通道握手并传输所读内容以及读取操作的回应,时钟上升沿有效。如图所示:
B.写操作:
顺序为主与从进行写地址通道握手并传输地址内容,然后在写数据通道握手并传输所读内容,最后再写回应通道握手,并传输写回应数据,时钟上升沿有效。如图所示:
axis分为:
- tready信号:从告诉主做好传输准备;
- tvalid信号:主告诉从数据传输有效;
- tlast信号:主告诉从该次传输为突发传输结尾;
- tdata信号:数据,可选宽度32,64,128,256bit
- tstrb信号:为1的bit为对应tdata有效字节,宽度为tdata/8
- tuser信号 :用户定义信号,宽度为128bit
- aclk信号:总线时钟,上升沿有效;
- aresetn信号:总线复位,低电平有效;
通信时序如图所示:
axi与axis是AXI4总线中通信复杂度较低的两条总线,最大开发难度存在于axi的控制平面向axis的数据平面下发参数时,由于axi与axis时钟频率不同而产生的跨时钟域数据传输问题。
AXI4:主要面向高性能地址映射通信的需求;
AXI4-Lite:是一个简单地吞吐量地址映射性通信总线;
AXI4-Stream:面向高速流数据传输;
AXI4总线分为主、从两端,两者间可以连续的进行通信。
ISE从12.3版本,Virtex6,Spartan6芯片开始对AXI4总线提供支持,并且随着Xilinx与ARM的合作面逐渐展开而得到大力推广。
AXI4的优势
1.通过统一的AXI接口,开发者为开发ip core只需要学习一种协议即可;
2.AXI4是面向地址映射的接口,允许最大256轮的数据突发传输;
3.AXI4-Lite是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元;
4.AXI4-Stream去掉了地址项,允许无限制的数据突发传输规模;