TEMAC多网口逻辑设计

1,整体的设计

逻辑(tri-mode eth IP)+硬件88E111(PHY),两者之间的配置通过MDC、MDIO进行交互;

逻辑使用Xilinx IP,用户逻辑和IP之间交互涉及到AXI标准接口,包括:AXI-StreamAXI-lite

2,IP的使用

需求:实现10M/100M/1000M三种速率任意切换;单板上有两个网口;

逻辑中整体的时钟设计和share logic在多网口时的设计参照:

PG051,p168,chapter03 GMII 收发接口设计;

注意在多网口设计时,gtx_clk的BUFG级联问题;

数据报文正常发送时,遵循chapter03中AXI-4 Stream User Interface章节中的发送部分;数据包发送设计中注意的几点:

1)十百千速率下的时序是不同的,注意 tx_axis_mac_tready信号的行为;另外10M速率下,tx_mac_clk==2.5Mhz 设计接口中的时钟来源MII;100M速率下,tx_mac_clk==25Mhz 设计接口中的时钟来源MII且和10M速率下相同数据接口为4bit,区别于1000M下的8bit;1000M速率下,tx_mac_clk==125Mhz MAC外部接口为GMII;

2)数据长度小于64字节时,MAC核会进行自动补充;但是如果是你自己提供FCS校验结果的话,需要自己考虑到数据长度小于最小长度的问题;

3)可以使用 tvaild 或 tuser 信号来指示错误发送的情况;

4)由于以太网规定包与包之间的最小间隔时间,在进行背靠背传输时可以利用tvaild实现连续传输;

5)进行调试时,可以利用MAC核中的统计信号定位收发数据错误的问题;

逻辑中的复位设计:

复位设计需要注意对PHY芯片进行上电复位操作;其他逻辑模块的复位较简单,遵循全局复位信号即可;

注:

1,Xilinx IP核设置为Global和OOC模式下综合时的不同表现;

2,Xilinx 一些原语,如:BUFG、FDPE、ODDR等

3,使用generate__endgenerate 进行条件编译以及vivado对其综合结果的正确性;

你可能感兴趣的:(fpga开发,1024程序员节)