赞
踩
在通信原理中,通信系统有两个重要的指标——有效性和可靠性。通信系统的有效性指系统用于传输信息的能力,通信系统的可靠性指系统无错误传输信息的能力。对于数字通信系统,有效性可以用传信率和传码率来衡量。本文主要介绍 FPGA 平台估计 RGMII 接口误码率的方法,并记录在 Quartus FPGA 器件上进行 RGMII 相位补偿的调试经验。
目录
在通信原理中,通信系统有两个重要的指标——有效性和可靠性。通信系统的有效性指系统用于传输信息的能力,通信系统的可靠性指系统无错误传输信息的能力。对于数字通信系统,有效性可以用传信率和传码率来衡量。传信率定义为单位时间传输的比特数,
单位 bps. 传码率定义为单位时间传输的码元数
单位为 Bd/s.
对应的,数字通信系统的可靠性可以用误信率和误码率来衡量。误信率定义为单位时间传输错误比特数 在传输总比特数 中的占比,
误码率定义为单位时间传输错误码元数 在传输总码元数 中的占比,
在以太网通信中,一般用误码率衡量通信系统的可靠性。考虑到 FPGA 工程编译时间久的问题,在调试 FPGA RGMII 接口时,可以统计一段时间内 CRC 校验出错的以太网帧数,并计算其在总接收帧数中的占比,估计通信系统的误码率。
若误码率为 0,则一段时间内 CRC 校验错误帧数也为 0;若误码率不为 0,则这段时间内 CRC 校验错误帧数应不为 0. 需要注意的是,这只是一种近似的方法。
在 Ethernet FMC《RGMII Interface Timing Considerations》一文中,介绍了 FPGA 板卡 RGMII 接口需要考虑的三个阶段的延迟,
(1)FPGA 内部时钟与数据之间的延迟;
(2)PCB 板级延迟;
(3)PHY 芯片内部延迟(如果 PHY 芯片支持的话)。
In an FPGA based system, there are three stages where the required skew (ie. delay) can be added to the TX and RX clock signals. The first stage is in the FPGA, the second stage is on the PCB traces (ie. with longer clock traces than the data traces) and the third stage is in the PHY. In an optimal RGMII interface, the skew is added at only one stage in the TX and RX path, and the other two delay stages are disabled or not implemented.
Clock skew stages in the RGMII interface
(图片出处:RGMII Interface Timing Considerations - Ethernet FMC)
由于 PCB 在布线时,时钟和数据会遵循等长的规则,因此 PCB 板级延迟几乎可以忽略不计。在 FPGA 中,时钟与数据的延迟分为接收链路的延迟和发送链路的延迟。接收链路的延迟可以考虑添加 IO 约束,例如 Quartus FPGA 平台的 Input Chain Delay 约束。
对于发送链路的延迟,FPGA 以太网 IP 核通常会提供 90° 相移的时钟,但是如果设定其他值,就需要借助 PLL 来调节。具体的做法如下:
(1)配置 PLL,生成两个 125MHz 的时钟,其中一个时钟用于驱动数据,称为数据时钟 tx_clk;另一个时钟用于输出给 PHY 芯片,称为 IO 时钟 io_clk,初始相位均为 0°;
(2)统计一段时间内 CRC 校验出错的帧数,估计误码率;
(3)选取固定的步长,改变 io_clk 与 tx_clk 之间的相位;
(4)重复步骤(2)和步骤(3),直到得到所有相位对应的误码率。
在实际测试的过程中,为了方便后续计算,采用接收固定帧数的方式,这里以固定接收 100000 个以太网帧为例,测试结果如下表:
上表中,当 io_clk 对于 tx_clk 的相位为 180° 时,接收数据帧数为 0,因此误码率未知。取 45° 和 285° 为相位可调区间的边界,计算 RGMII 接口发送链路最佳相位应为
,
上式中除以 2 表示取中间相位。
如果有错误的地方,欢迎指正 ~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。