RGMII2GMII 分析

一、RGMII TX Direction

MAC 在TXC 的posedge edge和negedge edge都会推出data,第一个nibble是在TXC 的posedge推出,TXC_dly MAC 的TXC 经过softpad delay后送给phy的TXC,所以在PHY端可以直接用TXC_dly 来sample RGMII_TXD[3:0];RGMII_TXD[3:0]和RGMII_TXEN都是MAC reference TXC 在第一个posedge开始推。

二、RGMII RX Direction

PHY 以RXC reference ,在RXC的posedge 和 negedge edge都推data,MAC 内部会先将RXC经过softpad delay后,得到RXC_dly,然后用RXC_dly为reference clock来 sample RGMII_RXD[3:0];

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Verilog代码示例,用于将RGMII接口转换为GMII接口: ``` module rgmii_to_gmii ( input clk, input rst, input [3:0] rgmii_rx_data, input rgmii_rx_dv, input rgmii_rx_er, output [7:0] gmii_rx_data, output gmii_rx_dv, output gmii_rx_er, output gmii_col, output gmii_crs ); reg [3:0] rgmii_data_reg; reg rgmii_dv_reg; reg rgmii_er_reg; reg [7:0] gmii_data_reg; reg gmii_dv_reg; reg gmii_er_reg; reg gmii_col_reg; reg gmii_crs_reg; always @(posedge clk) begin if (rst) begin rgmii_data_reg <= 4'h0; rgmii_dv_reg <= 1'b0; rgmii_er_reg <= 1'b0; gmii_data_reg <= 8'h0; gmii_dv_reg <= 1'b0; gmii_er_reg <= 1'b0; gmii_col_reg <= 1'b0; gmii_crs_reg <= 1'b0; end else begin rgmii_data_reg <= rgmii_rx_data; rgmii_dv_reg <= rgmii_rx_dv; rgmii_er_reg <= rgmii_rx_er; gmii_data_reg <= {1'b0, rgmii_data_reg}; gmii_dv_reg <= rgmii_dv_reg; gmii_er_reg <= rgmii_er_reg; gmii_col_reg <= rgmii_er_reg; gmii_crs_reg <= ~rgmii_er_reg & ~rgmii_dv_reg; end end assign gmii_rx_data = gmii_data_reg; assign gmii_rx_dv = gmii_dv_reg; assign gmii_rx_er = gmii_er_reg; assign gmii_col = gmii_col_reg; assign gmii_crs = gmii_crs_reg; endmodule ``` 该代码定义了一个名为 `rgmii_to_gmii` 的模块,将RGMII接口转换为GMII接口。输入端口包括时钟信号 `clk`,复位信号 `rst`,4位RGMII数据信号 `rgmii_rx_data`,RGMII数据有效信号 `rgmii_rx_dv`,RGMII错误信号 `rgmii_rx_er`;输出端口包括8位GMII数据信号 `gmii_rx_data`,GMII数据有效信号 `gmii_rx_dv`,GMII错误信号 `gmii_rx_er`,GMII冲突信号 `gmii_col`,GMII载波侦听信号 `gmii_crs`。 该代码使用寄存器存储输入信号,并在时钟上升沿时将其转换为输出信号。RGMII数据信号从低位到高位移动到GMII数据信号中,并在最高位添加一个零。GMII错误信号和GMII冲突信号分别与RGMII错误信号相同,而GMII载波侦听信号与RGMII数据有效信号的反转相同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值