1 背景
在Xilinx AXI 1G/2.5G Ethernet Subsystem IP中,使用了双通道AXI Stream接口设计,实现了数据流与控制流/状态流的分离。数据流用于传输以太网报文数据,控制流用于传输TX标志信息和校验指示信息,状态流用于传输报文的目的MAC地址和状态等信息。
IP示意图:
2 解析
2.1 TX Stream
如图所示,TX_data的ready信号需要等到TX_control的控制流信息被完全接收后才能拉高。因此,对于每一帧报文,IP必须先接收控制流信息,然后才能接收数据流。
2.1.1 TX_control
控制流包含一个标志字和五个APP字。其中,标志字中的flag可以有两个值:A或5。当flag为A时,说明这一帧报文是正常发送的报文;当flag为5时,说明这一帧报文来自IP核的RX AXI-Stream接口。这种模式常用于IP核的TX Stream和RX Stream直接连接的情况,使得IP核能够将RX Stream接收到的数据直接环回到TX Stream输出。五个APP字中的Word1、Word2和Word3与校验和功能相关,Word4和Word5预留给用未来功能。
如图,该控制流为正常发送的报文控制流,且未使用IP校验和功能。Flag为A,所有APP字均为0。
2.1.2 TX_data
如图所示,该数据流为正常发送的数据流,其目的地址为00-35-0A-01-02-55,源地址为01-02-03-04-05-06,数据长度为0x03e8,数据内容为0到256循环的数据。
2.2 RX Stream
RX_data与RX_status的关系与TX类似,RX_data的valid信号需要等到RX_status的状态流信息被完全发送后才能拉高。因此,对于每一帧从RGMII接口接收的报文,IP在通过AXI-Stream发送到其他地方(如DMA)时,必须先发送状态流信息,然后才能发送数据流。
2.1.1 RX_status
状态流包含一个标志字和五个APP字。其中,标志字中的flag固定为5。五个APP字中,Word1和Word2包含多播报文的目的MAC地址。由于多播报文的目的MAC地址的最低位一定为1,因此只有当MAC地址的最低位为1时,Word1和Word2中的MAC地址才有效。Word3包含报文的各种状态信息。Word4包含接收到的报文的长度/类型信息和接收校验和。Word5包含VLAN相关信息和报文包括MAC地址的总长度。
如图所示,该状态流为接收到的一帧正确报文的状态流,且未使用IP校验和功能。Flag为5,报文目的地址为00-35-0A-01-02-33,报文数据长度为0x03e8。
2.2.2 RX_data
如图所示,该数据流为接收的数据流,其目的地址为00-35-0A-01-02-33,源地址为01-02-03-04-05-06,数据长度为0x03e8,数据内容为0到256循环的数据。
文章评论