xilinx mii to rmii核使用

在使用AXI 1G/2.5G Ethernet Subsystem若要使用rmii接口的phy则需要使用xilinx mii to rmii的ip核,如下图:

xilinx mii to rmii核使用_第1张图片xilinx mii to rmii核使用_第2张图片

需要说明:

    rmii接口的时钟系统和mii接口并不一样,rmii接口是系统同步,收发端使用同一个时钟源(ip核从ref_clk输入);而mii是源同步系统,收发端都有对应的clk信号。

1、这个核并不是自适应的10M/100M,它的速度是固定的(默认我们需要选择:Speed 100M/实际工作环境不太可能遇到10M的情况):

xilinx mii to rmii核使用_第3张图片

xilinx mii to rmii核使用_第4张图片

一开始没有勾选导致数据发送失败,我用板卡和PC通信,PC端无法抓取到子卡的网络报文,使用ila监测时序发现发送周期不正确,正常31个时钟周期的网络报文前导码(7个0x55,一个0xd5)竟然用了331个周期:(起始点为4096)

xilinx mii to rmii核使用_第5张图片

手册给出来的时序:

xilinx mii to rmii核使用_第6张图片

   备注:添加ila找不到时钟源时记得可以选择时钟域类型:

xilinx mii to rmii核使用_第7张图片

2、需要对rmii引脚添加iob xdc约束,因为ip核并没有对引脚做约束,手册上已说明:

xilinx mii to rmii核使用_第8张图片

3、需要禁用Ethernet Subsystem ip核的管脚xdc约束:

xilinx mii to rmii核使用_第9张图片

手册上没有给出具体的做法:我是直接disable掉了ip核生成的一个xdc(因为它是只读属性我无法更改),更改后成功生成了bit,测试也没有问题。

xilinx mii to rmii核使用_第10张图片

参考:

pg146-mii-to-rmii.pdf

 

 

 

 

 

你可能感兴趣的:(Vivado,FPGA)