支持很多不同的流类型。流协议在传输和包之间定义了联系。
信号
源
描述
ACLK
时钟源
全局时钟信号。所有信号在ACLK信号上升沿采样。
ARESETn
复位源
全局复位信号,ARESETn低有效。
TVALID
主
TVALID表明主设备正在驱动一个有效的传输。当确认TVALID和TREADY信号后,发生一个传输。
TREADY
从
TREADY表明在当前周期能接收一个传输。
TDATA[(8n-1):0]
主
TDATA是基本的有效载荷,用来提供跨越接口的数据。数据为整数个字节。
TSTRB[(n-1):0]
主
TSTRB为字节修饰符,用来描述TDATA相关字节内容作为一个数字字节或者一个位置字节被处理。
TKEEP[(n-1):0]
主
TKEEP是字节修饰符,用来表明TDATA相关字节的内容是否作为数据流的一部分被处理。
TKEEP字节修饰符未被确认的那些相关的字节是空字节,可以从数据流中去除。
TLAST
主
TLAST表明了包的边界。
TID[(i-1):0]
主
TID是数据流的标识符,用来表明不同的数据流。
TDEST[(d-1):0]
主
TDEST为数据流提供路由信息。
TUSER[(u-1):0]
主
TUSER是用户定义的边带信息,这些信息能伴随数据流进行发送。
TVALID和TREADY握手信号用来确定跨越接口数据的时间。
双向的流控制机制使得主设备和从设备能控制跨越接口所发送的数据和控制信息的速度。对于一个发生的传输,必须确认TVALID和TREADY信号。
一个主设备不允许在确认TVALID前,等待确认TREADY。
一旦确认TVALID,必须一直保持这个状态,直到产生握手信号。
在确认相应的TREADY信号前,一个从设备允许等待确认TVALID。
如果从设备确认了TREADY,在TVALID信号确认前,允许不确认(释放)TREADY。
上图给出了TVALID在TREADY前的握手信号。
从图中可以看出,主设备给出数据和控制信号,并且确认TVALID信号为高。
一旦主设备确认了VALID,来自主设备的数据或者控制信息保持不变。这种状态一直保持到从设备驱动TREADY信号为高,用来表示从设备可以接收数据和控制信号。在这种情况下,一旦从设备确认TREADY为高,则开始进行传输。箭头标记的地方表示传输开始。
上图给出了TREADY在TVALID前的握手信号图。
从图中可以看出,从设备在数据和控制信息有效前,驱动TREADY信号为高。
这表示,目的设备能在一个ACLK周期内接收数据和控制信息。在这种情况下,一旦主机确认TVALID信号为高,则开始传输。箭头标记的地方表示传输开始。
上图给出了TVALID和TREADY握手的图。在一个ACLK周期内,主设备确认TVALID为高,从设备确认TREADY为高。在箭头标记的地方产生传输。