一、axistream pkg模式
二、xilinx的axis interconnect和axis data fifo
三、axistream中axis tuser使用技巧
一、axistream pkg模式
AMBA关于axistream的协议中,曾描述到,数据包模式是通过接口一起传输的一组完整的字节。通过一些基础的架构组件,来将数据按照包模式处理传输,通常可以使其更加有效。其实可以将axistream包模式看作AXI4突发模式。一种基于Tlast的临界包仲裁,可以用来仲裁axistream数据传输。当然这种方式在xilinx的axistream组件中也支持的。
二、xilinx的axis interconnect和axis data fifo
笔者在处理40G网络包汇聚时候,从接收侧的rxclk到发送侧的txclk,不仅需要完成各路axistream数据的汇聚,同时需要进行跨时钟域处理。通过使用axis interconnect和axis data fifo两个组件完成对应的处理,由于后级模块要保证pkg模式传递,因此在这两个组件中都采用基于Tlast的pkg模式进行数据传输。也就是保证一次valid和ready有效的时候,传输一次完整的数据包,直到tlast为高结束。
三、axistream中axis tuser使用技巧
在40G的128bit的数据解析中,需要sop、eop、en等信号的解析,对应eop可以使用标准axistream中的tlast来确认,en可以采用valid和ready有效来确认。至于sop如何确认?
笔者在tuser中进行用户自定义,在各个子模块tx发送的时候定义包的sop,赋值在tuser中,然后基于axistream进行传输,最后解析tuser来实现sop的传递。比如在icmp包发送过程中,定义了tuser[0]作为sop,tlast作为eop进行数据传输,在解析模块中,用tuser[0]来作为包数据起始,tlast作为包结束标志,从而实现包模式数据的传输。