PRBS RX怎么计算误码的?
两个A和B serdes对接,A发出PRBS31,B收到后怎么知道有没有误码呢?有没有想过这个问题,如果写多PCS的verilog代码那就不用看下文了。
1.先举个例子,A和B 端口对接发送以太网报文,A发B收,B怎么知道出现错报呢。这个大家都知道A发的报文里数据的FCS,CRC校验码,FEC校验码,报文类型等很多信息控制字符。B收到后会重新计算比对,发现校验码和收到的一样,所以没有误码,如果和校验的对不上那就说明出现误码。如果误码的数量少,正好开了FEC,那就可以给纠正过程。如果B收到了大量的错误,超出FEC纠正范围那就端口出现大量误码告警甚至down掉。
2.同理PRBS31是安装序列移位产生,不能带有FCS,CRC的校验位。那B收到PRBS31怎么知道误码呢?
因为PRBS31有严格的定义,种子也就是第一个数据可以设置,但是移位运算的公式是相同的。所以B收到第一个数据后用公式计算下一个数据,和下一次B收到的数据进行比对,如果对不上就是有误码,相同就是没有误码。如果一直连续多个数据都有误码,就会到导致PRBS RX的lock报失锁故障。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步