在AXI协议中,提到的s_axis_tready
、s_axi_awready
、s_axi_wready
、m_axi_bready
、s_axi_arready
和m_axi_rready
是AXI接口中用于指示通道就绪状态的信号。这些信号的值通常表示主设备(Master)或从设备(Slave)是否准备好进行特定的数据传输。
当这些信号在复位窗口之外被设置为1时,表示相应的通道已准备好进行数据传输。在复位窗口内,这些信号的状态通常是不确定的,因为它们可能会受到复位操作的影响。为了避免意外行为,建议在复位窗口期间不要进行任何数据传输或事务处理。
复位窗口是一个特定的时间段,用于将AXI接口和相关硬件组件重置到初始状态。在这个时间段内,AXI接口的状态可能会发生变化,并且可能无法正确响应外部请求。因此,在复位窗口期间进行数据传输可能会导致数据丢失、错误或不可预测的行为。
1 AXI FIFO全局接口信号
s_aresetn
信号在AXI协议中是一个重要的全局复位信号,用于触发整个核心逻辑的复位操作。这个信号是低电平有效的异步输入,在核心内部使用之前会进行同步处理。
名称 | 方向 | 描述 |
映射到FIFO时钟和复位输入上的全局时钟和复位信号 | ||
m_aclk | Input | Master接口的全局时钟:AXI FIFO的Master接口上的所有信号都同步到该m_aclk |
s_aclk | Input | Slave接口的全局时钟:所有信号都在该时钟的上升沿被采样 |
s_aresetn
|
Input | 全局复位,低电平有效 |
时钟使能与FIFO的写使能(wr_en)和读使能(rd_en)输入信号相配合,用于控制FIFO的读写操作是否在当前时钟周期内有效 | ||
s_aclk_en
|
Input | 当wr_en 为高电平时,Slave的时钟使能信号被激活,从而允许FIFO在当前时钟周期内执行写入操作。 |
m_aclk_en
|
Input | 当rd_en 信号为高电平时,它表示FIFO当前可以进行读取操作。 |
2 AXI4-Stream FIFO 接口信号
名称 | 方向 | 描述 |
AXI4-Stream接口:FIFO写接口的握手信号 | ||
s_axis_tvalid
|
Input |
|
s_axis_tready
|
Output |
|
AXI4-Stream接口:被映射到FIFO的输入数据输入上的信息信号 | ||
s_axis_tdata[m-1:0]
|
Input | TDATA:是AXI4-Stream接口的主要负载,用于将数据从源传输到目标。TDATA的宽度(即数据负载的宽度)是一个整数个字节数。 |
s_axis_tstrb[m/8-1:0]
|
Input | TSTRB是AXI4-Stream接口中的字节修饰符,用于描述TDATA中相关字节的内容是作为数据字节还是位置字节被处理。对于64位的数据,TSTRB的每个位与TDATA中的每个字节相对应。具体来说,TSTRB的第0位(TSTRB[0])对应于DATA的最低有效字节(DATA[7:0]),而TSTRB的第7位(TSTRB[7])对应于DATA的最高有效字节(DATA[63:56])。 |
s_axis_tlast
|
Input | TLAST在AXI4-Stream接口中确实用于指示数据包(packet)的边界。当TLAST信号为高时,它表示当前传输的TDATA数据是数据包中的最后一个数据。 |
s_axis_tid[m:0]
|
Input | TID(Transmission ID或DataStream ID)是AXI4-Stream接口中的一个信号,用于指示不同的数据流。当通过AXI4-Stream接口传输数据时,可能会涉及到多个数据流的同时传输。每个数据流都可能有自己的源、目的、传输特性和数据处理要求。在这种情况下,使用TID信号可以为每个数据流分配一个唯一的标识符,以便在接收端能够正确地区分和处理不同的数据流。 |
s_axis_tdest[m:0]
|
Input | TDEST(Transmission Destination)为数据流提供了路由信息,用于指示数据流的目标地址或目的地。 |
s_axis_tuser[m:0]
|
Input | TUSER信号为用户提供了一个额外的通道,用于在数据传输过程中传递一些额外的、非主要的数据或信息。这些信息可能包括数据的元数据、控制信号、状态信息或其他任何用户自定义的内容。通过使用TUSER信号,用户可以在不干扰主要数据流的情况下,传输这些额外的信息。 |
AXI4-Stream接口:FIFO读接口的握手信号
|
||
m_axis_tvalid
|
Output | TVALID: 由主设备(通常是数据的发送方)驱动,用于指示Stream上的数据是否有效。当主设备想要发送数据时,它会将TVALID置为高电平,当TVALID和TREADY 信号均为高电平时,表示Stream上有有效的数据需要传输。 |
m_axis_tready
|
Input | TREADY: 由从设备(通常是数据的接收方)驱动,用于指示从设备是否准备好接收数据。当从设备准备好接收数据时,它会将TREADY 信号置为高电平。 |
AXI4-Stream接口:来自FIFO输出数据总线的信息信号
|
||
m_axis_tdata[m-1:0]
|
Output | TDATA:是AXI4-Stream接口的主要负载,用于将数据从源传输到目标。TDATA的宽度(即数据负载的宽度)是一个整数个字节数。 |
m_axis_tstrb[m/8-1:0]
|
Output | TSTRB是AXI4-Stream接口中的字节修饰符,用于描述TDATA中相关字节的内容是作为数据字节还是位置字节被处理。对于64位的数据,TSTRB的每个位与TDATA中的每个字节相对应。具体来说,TSTRB的第0位(TSTRB[0])对应于DATA的最低有效字节(DATA[7:0]),而TSTRB的第7位(TSTRB[7])对应于DATA的最高有效字节(DATA[63:56])。 |
m_axis_tkeep[m/8-1:0]
|
Output |
|
m_axis_tlast
|
Output | TLAST在AXI4-Stream接口中确实用于指示数据包(packet)的边界。当TLAST信号为高时,它表示当前传输的TDATA数据是数据包中的最后一个数据。 |
m_axis_tid[m:0]
|