ZYNQ7000 AXI 总线相关介绍(待补充)
1、AXI 总线通道,总线和引脚的介绍
AXI接口具有五个独立的通道:
(1)写地址通道(AW ):write address channel
(2)写数据通道(W ): write data channel
(3)写响应通道( B ) : write response channel
(4)读地址通道(AR ):read address channel
(5)读数据通道( R ): read data channel
五个通道图为:

读地址通道和读数据通道

**写地址通道,写数据通道和写响应通道
**
读地址通道的信号:S_AXI_ARADDR,S_AXI_ARPROT,S_AXI_ARVALID,S_AXI_ARREADY;
读数据通道的信号:S_AXI_RDATA,S_AXI_RRESP,S_AXI_RVALID,S_AXI_RREADY;
写地址通道的信号:S_AXI_AWADDR,S_AXI_AWPROT,S_AXI_AWVALID,S_AXI_AWREADY;
写数据通道的信号:S_AXI_WDATA,S_AXI_WSTRB,S_AXI_WVALID,S_AXI_WREADY;
写响应通道的信号:S_AXI_BRESP,S_AXI_BVALID,S_AXI_BREADY。
AXI接口的总线宽度:
**C_S_AXI_ADDR_WIDTH **: S_AXI数据总线的宽度
**C_S_AXI_ADDR_WIDTH **: S_AXI 地址总线的宽度
AXI接口的信号详细说明:
S_AXI_ACLK : in std_logic;
总线的输入时钟信号
S_AXI_ARESETN : in std_logic;
全局性的复位信号,这个信号低电平有效
S_AXI_AWADDR : in std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
写地址通道(由主设备设置发送到从设备)
S_AXI_AWPROT : in std_logic_vector(2 downto 0);
指定通道保护类型,请问您是否了解?该信号表明事务的优先级和安全性等级,并指示该事务是基于数据操作还是指令操作。
S_AXI_AWVALID : in std_logic;
写地址有效,此信号表示主设备正在发送有效的写入地址和控制信息。
S_AXI_AWREADY : out std_logic;
写地址就绪。这个信号表明,从设备将接受地址和相关的控制信号。
S_AXI_WDATA : in std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
写数据(由主设备设置传送到从设备**)**
S_AXI_WSTRB : in std_logic_vector((C_S_AXI_DATA_WIDTH/8)-1 downto 0);
该信号指示... write data bus线上哪个字节通道存储有效数据。此线上的... 8个bit相当于每个8bit配置一个write enable。
S_AXI_WVALID : in std_logic;
写有效,这个信号表明有效的写数据和写选通可用
S_AXI_WREADY : out std_logic;
写准备,这个信号表明从设备可以获取写数据
S_AXI_BRESP : out std_logic_vector(1 downto 0);
写响应,这个信号表明写事务的完成状态
S_AXI_BVALID : out std_logic;
写响应有效。此信号表示信道正在发出有效的写响应。
S_AXI_BREADY : in std_logic;
响应准备,这个信号表明主设备可以接受写响应
S_AXI_ARADDR : in std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
读地址(由主设备设置传送到从设备)
S_AXI_ARPROT : in std_logic_vector(2 downto 0);
请阅读通道的权限类型。该信号表明事务拥有 elevated 权利级别的安全等级,并确定事务是否属于数据操作还是指令操作。
S_AXI_ARVALID : in std_logic;
读地址有效,此信号表明读地址通道正在发送有效的读地址和控制信息
S_AXI_ARREADY : out std_logic;
读地址准备,这个信号表明从设备已经准备接受地址和相关的控制信号
S_AXI_RDATA : out std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
读数据(由从设备设置)
S_AXI_RRESP : out std_logic_vector(1 downto 0);
读响应,此信号表明读数据传输的完成状态
S_AXI_RVALID : out std_logic;
读有效,此信号表明读数据通道正在传输需要的读数据
S_AXI_RREADY : in std_logic
读准备,此信号表明主设备可以接受读数据和响应信息
2、AXI 总线通道握手信号之间的依赖性
AXI系统包含五个通道(五个互连组件),每个通道均配备一对valid和ready信号用于同步数据传输与控制操作。发送端设备利用valid信号表明其准备接收有效的数据与控制指令;接收端设备则借助ready信号确认其已准备好接收相应的指令与数据。当valid与ready均为高电平状态时,则表示存在有效的传输信息。各通道之间能够实现独立的通信握手机制,在此过程中彼此间的关系较为灵活多变。对于读取操作而言,则必须紧跟与其相关联的数据地址的操作;而对于写入操作而言,则必须在其相关的write操作完成后才能执行相应的响应处理
读事务握手依赖关系如图:
**

**
(1)设备可以在 ARVALID 出现的时候发送 ARREADY 信号;同样也可以先发送 ARREADY 信号后等待 ARVALID 的到来。
(2)仅当所有相关信号均有效时才可触发 RVALID 并开始数据传输;仅在读地址发送完成之后才可以执行读数据操作**(箭头形状不同)**
**
**
写事务握手依赖关系如图:


(1)主机无法处于设备先提供AWREADY或WREADY状态并随后提供AWVALID或WVLAID的状态。
(2)设备可以在 waiting for either of the signals AWVALID or W VALID to become valid, or both, before emitting an AW READY signal.
(3)设备可以在 waiting for either of the signals AW VALID or W VALID to become valid, or any one of them being invalid, before emitting a W READY signal.
