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

五个通道图为:

ZYNQ7000 AXI 总线相关介绍(待补充)

                                                                  读地址通道和读数据通道

ZYNQ7000 AXI 总线相关介绍(待补充)

                                                        写地址通道,写数据通道和写响应通道       

读地址通道的信号: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);

    写数据选通,这个信号表明写数据总线上哪个字节通道存着有效的数据。写数据总线上每八个位对应一个写选通位

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);

     读通道保护类型,此信号表示事务的特权和安全级别,以及事务是数据访问还是指令访问。  

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总共有5个通道,每个通道都有一对valid & ready信号,发送方通过valid信号来指示什么时候数据和控制信息有效,接收方通过ready来指示可以接受数据和控制信息,传输的信息发生在vaild和ready同时为高电平的情况下。每个通道之间可以独立握手,相互之间关系灵活。读数据必须跟在与其数据相关联的地址之后,写响应必须在于其相关联的写事务之后出现。

读事务握手依赖关系如图:

ZYNQ7000 AXI 总线相关介绍(待补充)

(1)设备可以在ARVALID出现的时候在给出ARREADY信号,也可以先给出ARREADY信号,再等待ARVALID信号。
(2)设备必须等待ARVALID和ARREADY信号都有效才能给出RVALID信号,开始数据传输。只有当读地址发送完成后,才能进行读数据的传输(箭头形状不同)


写事务握手依赖关系如图:

ZYNQ7000 AXI 总线相关介绍(待补充)

ZYNQ7000 AXI 总线相关介绍(待补充)

(1)主机不能等待设备先给出AWREADY或WREADY信号信号后再给出信号AWVALID或WVLAID。
(2)设备可以等待信号AWVALID或WVALID信号有效或者两个都有效之后再给出AWREADY信号。
(3)设备可以等待AWVALID或WVALID信号有效或者两个信号都有效之后再给出WREADY信号。