正常入站帧传输的时序如下图所示。客户端必须准备好随时接受数据;由于核中没有缓冲机制,因此接收客户端不允许出现时延。
在帧接收期间,rx_axis_tvalid
断言有效,以指示有效的帧数据正通过 rx_axis_tdata
传输到客户端。所有 rx_axis_tkeep
位均设为 1,表示整个帧中的所有字节始终有效,但在 rx_axis_tlast
断言有效时该帧进行最终传输期间除外。在帧数据的最终传输期间,rx_axis_tkeep
位使用上述映射来指示帧的最终有效字节。最终传输的有效字节始终来自于 rx_axis_tdata[7:0]
(rx_axis_tkeep[0]
),因为以太网帧数据是连续的并且先接收最低有效字节。
仅在完成所有帧校验后,随传输的最终字节一起,rx_axis_tlast
断言有效并且 rx_axis_tuser
断言无效。这发生在接收到帧校验序列 (FCS) 字段后。核使 rx_axis_tuser
信号保持处于断言无效状态,以指示已成功接收到帧,并且客户端应对帧进行分析。这也表示包结束,以 rx_axis_tlast
断言有效并保持 1 个周期来表示。
图 1. 正常帧接收 - 64 位