目录
1. 10G以太网结构
一个完整的10G以太网接口分为10G PHY和10G MAC两部分。如下图所示
1.1 以太网媒体接入控制器(MAC)
主要负责控制与连接物理层的物理介质.在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC层.看图上,输入端是用户接口,输出端是MII等延伸的接口。MII( Media Independant Interface)媒体独立接口,"媒体独立"表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。
1.2 物理接口收发器(PHY)
包括MII/GMII(介质独立接口)子层,PCS(物理编码子层),PMA(物理介质附加)子层,PMD(物理介质相关)子层,MDI子层.PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是CRC.对于100BaseTX因为使用4B/5B编码,每4bit就增加1bit的检错码),然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去.收数据时的流程反之.PHY还有个重要的功能就是实现CSMA/CD的部分功能.它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去.如果两个碰巧同时送出了数据,那样必将造成冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据.这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突.
2.1 IP核使用
vivado中,添加10G Ethernet Mac IP 核
physical interface接口中,如果AXI 数据位宽选择32bit,该处只能选择internal
在internal模式下,共享模式只能选择include shared logic in example design
The physical interface section has a choice of two selections; XGMII, which implements the
32-bit DDR interface to the physical layer, and Internal, which selects the internal
64-bit/32-bit SDR interface to the physical layer. Only the internal interface is supported at
10 Gb/s when using the 32-bit datapath option.
2.2 example 代码说明
想要仔细分析,就自己把仿真波形仿出来,对照代码看一遍。需要注意,TB文件默认的是tb_mode = "DEMO";收发数据就是tb文件中写的,不是代码里的。后来改成tb_mode = "BIST";就能和代码中对应上了。
tx_axis_tkeep :标识tx_axis_tdata的有效字节。
输出数据TXC 来标识当前输出的是帧协议的那部分
0XIF是什么东西?高位55555555 是前导帧,后面070707 是idle状态