Menu Close

网络综合实验 Verilog工程(eth_phy_core.v及其子模块)

1. eth_phy_core.v

eth_phy_core.v是PHY的核心模块,如图1所示。在这个模块里例化了速度检测模块phy_detect.v,PHY发送和接收顶层模块ETH_PHY.v和MDIO读写配置RTL8211E芯片的模块mdio_app.v。eth_phy_core.v代码如下:

 

图1 eth_phy_core.v模块


 

 

2. phy_detect.v

phy_detect.v在整个网络综合实验工程中的位置如图2所示。速度检测模块主要原理是通过引入另外一个确定的时钟进行检测RXC。文章网速检测及Verilog实现技巧中有对phy_detetc.v模块进行详细说明,这里不再赘述。

 

图2 phy_detect.v 模块

 

3. ETH_PHY.v

ETH_PHY.v是与FII-PRX100-D FPGA板上以太网芯片RTL8211E PHY层交流(接收和发送)的模块,如图3所示。ETH_PHY下有接收和发送的selectIO IP核(这里没有直接使用selectIO IP核,而是使用IP核生成的Verilog代码),更多相关selectIO的信息参见文章Xilinx FPGA DDR 接口及Verilog实现。ETH_PHY.v代码如下:

 

 

图3 ETH_PHY.v模块

 


 

4. mdio_app.v,mdio_core.v,mdio_phy.v

mdio_app.v以及其子模块mdio_core.v和mdio_phy.v是通过MDC和MDIO管脚读写FPGA板上以太网芯片RTL8211E寄存器的模块,如图4所示。关于MDIO和MDC读写寄存器的更多信息,参见文章网络物理层芯片基本知识1–MDIO,以太网PHY 之 MDIO接口及应用。

 

图4 mdio_app.v模块

 

RTL8211E芯片的寄存器的地址分配如图5所示。

图5 RTL8211E寄存器

更多关于RTL8211E芯片寄存器定义的信息,参见文章RTL8211E 千兆网phy芯片。

 

Posted in FPGA 教材教案, Verilog, Vivado, Vivado, 开发工具, 开发工具, 开发语言, 教材与教案, 文章, 编程语言