由于该系列文章阅读有顺序性,所以请跳转至该系列文章第一篇从头开始阅读,并按照文章末尾指示按顺序阅读,否则会云里雾里,传送门在此: 《AXI_01 《AXI总线系列文章》由来》
目录
1 简介
2 AXI总线
2.1 三种AXI总线
2.2 三种AXI接口
2.3 AXI协议
2.3.1 AXI握手协议
2.3.2 AXI突发读时序
2.3.3 AXI突发式写的时序
2.3.4 AXI_LITE的读写时序
2.3.5 AXI4-Stream的时序
1 简介
自XILINX针对7系列FPGA、SOC推出VIVADO开发环境后,使得FPGA开发更加趋于使用现有IP核进行工程搭建和验证,减少代码编写的工作量,尤其是在ZYNQ的使用中体现的更为明显。
VIVADO开发环境中几乎所有的IP核都支持AXI总线,IP核接口得以标准化。FPGA工程师只需要学习好AXI总线,几乎就掌握了所有IP核接口的使用方法。这样的标准化也使得可以更快和更方便的搭建系统进行验证,这一点相对于ISE是巨大的进步;
某些偏向定制的功能,VIVADO开发环境中并没有定义好的IP核,这时可能需要FPGA工程师自研,如何将自研逻辑快速的融入到系统中,使用VIVADO的设计理念,就是对自研逻辑进行标准化,使用AXI总线作为接口,同时VIVADO也为用户提供了相应的工具。
2 AXI总线
AXI (Advanced eXtensible Interface) 本是由ARM公司提出的一种总线协议, Xilinx从 6 系列的 FPGA 开始对 AXI 总线提供支持,目前使用 AXI4 版本。
2.1 三种AXI总线
(1)AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输;
(2)AXI4-Lite:(For simple, low-throughput memory-mapped communication )是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元。
(3)AXI4-Stream:(For high-speed streaming data.)面向高速流数据传输;去掉了地址项,允许无限制的数据突发传输模式。
AXI4总线和AXI4-Lite总线具有相同的组成部分:
(1)读地址通道,包含ARVALID, ARADDR, ARREADY信号;
(2)读数据通道,包含RVALID, RDATA, RREADY, RRESP信号;
(3)写地址通道,包含AWVALID,AWADDR, AWREADY信号;
(4)写数据通道,包含WVALID, WDATA,WSTRB, WREADY信号;
(5)写应答通道,包含BVALID, BRESP, BREADY信号;
(6)系统通道,包含:ACLK,ARESETN信号。
而AXI4-Stream总线的组成有:
(1)ACLK信号:总线时钟,上升沿有效;
(2)ARESETN信号:总线复位,低电平有效;
(3)TREADY信号:从机告诉主机做好传输准备;
(4)TDATA信号:数据,可选宽度32,64,128,256bit
(5)TSTRB信号:每一bit对应TDATA的一个有效字节,宽度为TDATA/8;
(6)TLAST信号:主机告诉从机该次传输为突发传输的结尾;
(7)TVALID信号:主机告诉从机数据本次传输有效;
(8)TUSER信号 :用户定义信号,宽度为128bit。
2.2 三种AXI接口
(1)AXI-GP接口(4个):是通用的AXI接口,包括两个32位主设备接口和两个32位从设备接口,用过该接口可以访问PS中的片内外设。
(2)AXI-HP接口(4个):是高性能/带宽的标准的接口,PL模块作为主设备连接(从下图中箭头可以看出)。主要用于PL访问PS上的存储器(DDR和On-Chip RAM)
(3)AXI-ACP接口(1个):是ARM多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理DMA之类的不带缓存的AXI外设,PS端是Slave接口。
2.3 AXI协议
协议的制定是要建立在总线构成之上的。因此说AXI4,AXI4-Lite,AXI4-Stream都是AXI4协议。AXI总线协议的两端可以分为分为主(master)、从(slave)两端,他们之间一般需要通过一个AXI Interconnect相连接,作用是提供将一个或多个AXI主设备连接到一个或多个AXI从设备的一种交换机制。
AXI Interconnect的主要作用是,当存在多个主机以及从机器时,AXI Interconnect负责将它们联系并管理起来。由于AXI支持乱序发送,乱序发送需要主机的ID信号支撑,而不同的主机发送的ID可能相同,而AXI Interconnect解决了这一问题,他会对不同主机的ID信号进行处理让ID变得唯一。
AXI协议将读地址通道,读数据通道,写地址通道,写数据通道,写响应通道分开,各自通道都有自己的握手协议。每个通道互不干扰却又彼此依赖。这是AXI高效的原因之一。
2.3.1 AXI握手协议
AXI4 所采用的是一种 READY,VALID 握手通信机制,简单来说主从双方进行数据通信前,有一个握手的过程。传输源产生 VLAID 信号来指明何时数据或控制信息有效。
而目地源产生READY信号来指明已经准备好接受数据或控制信息。 传输发生在VALID和 READY信号同时为高的时候。如下图中的实例:
2.3.2 AXI突发读时序
2.3.3 AXI突发式写的时序
主机发送地址和控制信息到写地址通道中,然后主机发送每一个写数据到写数据通道中。当主机发送最后一个数据时,WLAST 信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。
2.3.4 AXI_LITE的读写时序
AXI_LITE的数据读写时序与AXI突发时序相同,只是每次只传输一个数据而已;
2.3.5 AXI4-Stream的时序
面向数据流的传输方式,省略的地址通道,其余时序与AXI突发时序相同;