Xilinx千兆以太网与万兆以太网IP接口

说明:对于IP核输出数据的解析最好的工具就是其自带的仿真文件,里面既将接收的数据进行了解析,又将发送给IP核的数据进行了封装,这对于了解数据结构和协议是十分有帮助的,以太网如此,pcie、ram、fifo等其它IP也如此,我们只需将ip自带的仿真文件改为我们自己的逻辑即可,接口连接并不变。

1.对于千兆以太网的IP核接口,无需过多说明,因输出的数据是8bit,且根据valid、last、ready这三个信号可以很好的控制,然后将接收到的数据按照需要的位宽进行拼接给下级模块(或写进fifo)使用,或者将下级模块发送过来的数据(或从fifo读取)按照8bit位宽输进ip。对于其它接口,我们只需设置好相应固定值即可,因这些接口与我们自己的逻辑并无关联。

2.对于万兆以太网IP核接口
1)采用64bit位宽时,数据在时钟上升沿采样,8字节并行传输,对应字节编号0-7;
2)采用32bit位宽(即DDR模式)时,在时钟的上升沿与下降沿均进行采样,在编号4-7字节的数据发送或接收完成以后,再对0-3字节的数据进行传输;

3)xgmii_xxd为数据,xgmii_xxc为控制字,当xgmii_xxc对应bit为“0”,表示其对应的字节为数据,当xgmii_xxc对应bit为“1”,表示其对应的字节为控制字符。表示控制字符时,其控制信息必须为“1”,且对应字节为特定的数据字节值,如下

注意点:
(1)传输s(开始)字符只能在第一拍数据的第0字节或第4字节,而T(终止)字符必须紧跟数据帧的最后一个字节(即终止字符可在64位宽数据的任何字节出现,以8字节为基本单位,剩余字节用空闲字符进行填充);
(2)开始字符若与结束字符在同一拍(即同一个64bit)出现,丢弃其包;
(3)同一拍(即同一个64bit)可能在第0字节和第4字节都出现开始字符,以第0字节出现的开始字符为准。

本文转载自:jiuzhangzi的博客