800G以太网测试之FEC压力测试(FEC统计,FEC Error Injection)

news2024/11/23 22:37:59

目录

FEC是什么

FEC测试需要关注哪些内容

基础的 FEC 性能监测

需要测试和验证的 FEC 特性

FEC Error Injection / FEC误码压力测试

Codeword & Symbol Error Configuration

Errored Symbol Per CW Configuration

Bit Error Mask Configuration

 Loop Mode

FEC 引擎

TX Error Injection Statistics

对应API的接口指令

PL1_PCS_VARIANTPL1_CWE_BIT_ERR_MASKPL1_CWE_CONTROLPL1_CWE_CYCLEPL1_CWE_ERR_SYM_INDICESPL1_CWE_FEC_ENGINEPL1_CWE_FEC_STATSPL1_CWE_FEC_STATS_CLEARPP_ALARMS_ERRORSPP_FECMODEPP_PHYAUTONEGPP_RXCLEARPP_RXFECSTATSPP_RXLANEERRORSPP_RXLANELOCKPP_RXLANESTATUSPP_RXTOTALSTATSPP_TXERRORRATEPP_TXINJECTONEPP_TXLANECONFIGPP_TXLANEINJECT


FEC是什么

Codeword, Symbol and Bit Errors

  • FEC 是一种用于检测和纠正比特流中一定数量错误的技术,方法是在传输前将冗余比特和纠错码附加到信息块中。

  • FEC 使用 n 个符号编码字(CW),由 k 个符号长的数据块和`n-k`符号长的奇偶校验块(编码和冗余比特)组成。我们用有序对 (n,k) 表示特定的FEC。

图片

RS-FEC 符号

对于 RS-FEC KP (544,514) 和 RS-FEC-Int (544,514),10 个比特构成一个 FEC 符号,544 个符号构成一个 FEC 码元,其中 514 个是数据符号,30 个是奇偶校验符号,如下图所示。

图片

FEC 码字、符号和比特

FEC测试需要关注哪些内容

基础的 FEC 性能监测

如今,大多数测试装置都在提供每个编解码字的错误符号表视图。下面的示例显示了一条 “坏 ”链路的输出(在这种情况下,链路被设计成会导致错误)。请注意,虽然编解码中的绝大多数符号都没有错误(0 个错误符号),但错误符号数迅速下降(每增加一个错误符号,错误符号数下降两个数量级以上),降至每个编解码 5 个错误符号。从 6 到 15 个错误符号计数的长尾以及每个码字仍有不可修正(>=16)的错误符号这一事实可以看出,这是一个坏链路。该链路可通过XenaManager“高级误码分析 ”套件工具进行进一步分析。
错误符号计数显示了系统在给定链路上的性能,但并不能验证或强调 FEC 的实现,而且对错误 “根源 ”的了解也很少。符号计数视图只显示使用测试集 FEC 块的链路测试集视图,而不是任何 DUT FEC 接收器的实现。

需要测试和验证的 FEC 特性


在研发和验证阶段,需要测试和验证柔性蚀刻电路的两个核心方面--柔性蚀刻电路的逻辑 “正确性 ”和实际实施的稳定性。虽然两者相互关联、相互交织,但都需要不同的测试方法来确保稳健性和可靠性。XENA通过其 FEC 测试应用集中的两个应用将这一概念体现出来:

FEC 压力测试
该测试重点关注 FEC 的逻辑验证,确保 FEC 在给定码字的错误计数和位置范围内具有现实的覆盖范围。鉴于潜在的组合不计其数,因此不可能涵盖所有组合,但这些应用足够 “智能”,能够提供可靠的覆盖范围。
XENA FEC 压力应用程序允许用户通过手动定位错误来精确探测 FEC,但它也支持全面的自动模式,该模式可扫描一个编解码中 1 到 15 个出错符号的巨大潜在错误位置范围,以提供可靠的覆盖范围,从而验证 FEC 的逻辑性能。虽然自动模式不可能覆盖所有出错符号位置和数量的组合,但该应用经过精心定制,可在合理的运行时间内提供最佳覆盖范围。用户可以调整测试的 “深度”,以匹配潜在的测试执行时间。如果自动测试显示出问题,则可以采用手动测试来调查逻辑的哪个区域以及在什么条件下没有按预期执行。

精准的 FEC 压力
即使 FEC 逻辑正确无误,被测硬件仍有可能因实施过程中的故障而失效,尤其是在电源完整性等方面。FEC 解码和检查块通常在宽并行总线结构中实施,其中包含许多基于与或非的逻辑门。错误检测和纠正会导致逻辑功率需求快速变化,这些快速的电流尖峰可能会导致电源完整性问题,尤其是在 FPGA 中。它们还可能暴露出负载点转换器输出阻抗动态、PCB 布局和去耦等问题。该应用可与示波器等工具结合使用,以跟踪集成电路封装周围的电源动态。
用户可以调节编解码器中的错误符号数量,但现在还可以通过错误注入速率进行额外控制,错误注入速率以频率表示,因为这是电源和电流脉冲的物理速率。以不同频率驱动功率脉冲(并在一定范围内扫描)的能力可用于对电源和与 FEC 接收机逻辑相关的元件施加压力。一个 “好 ”的实施方案在所有条件下都能达到预期性能,而一个不稳定的实施方案则会导致不可预测和不一致的结果,甚至可能锁定或崩溃。当然,这种应力突发错误频率的组合在现场可能极为罕见,但却无法排除故障或重复进行,因此在研发各阶段进行大量、全面的应力验证对于生产稳定、符合要求的产品至关重要。

FEC Error Injection / FEC误码压力测试

Codeword & Symbol Error Configuration

图片

注入周期示意图

在编解码级别,可以配置注入周期的编解码个数。对于 112G SerDes,“每周期码字数/Codewords Per Cycle ”必须是偶数整数,如 2、4、6、8 等。在一个周期内,可以配置连续出错编解码字数,其中至少注入一个出错符号。如上图所示,出错码字被置于无错码字之前。

有两种预定义配置文件可以加载:

  • 最大连续不纠错无链路损耗

图片

 加载最大连续不纠错(不含链路损耗)

  • 带链路损耗的最小连续无法校正情况

图片

加载有链路损耗的最小连续无法校正情况

加载配置文件后,仍可对其进行自定义,以满足特定测试要求。

Errored Symbol Per CW Configuration

图片

每Codeword误码符号和误码符号列表

在符号级,可在 “每 CW 误码符号 ”中配置误码 CW 内的误码符号数量,以及每个误码符号在其下方列表中的位置。

对于 RS-FEC KP 和 RS-FEC-Int,错误符号超过 15 个的 CW 将无法纠正,可以在配置时看到这一点。

每次更改错误符号索引列表时,都需要单击 “应用 ”将更改提交到机箱。如果有许多索引要更改,可以使用键盘上的制表符键从一个索引转到下一个索引,或使用 shift + tab 键返回。

Bit Error Mask Configuration

图片

位错误掩码配置 - 掩码配置

在位级别,可以配置错误符号内的错误位数量及其位置。使用位掩码模式复选框可选择在错误符号中哪些位会被误码。最重要位(位 9)放在左边,最不重要位(位 0)放在右边。

图片

位错误屏蔽配置 - 模式

有三种模式可供选择:

  • 静态:所有出错符号的位错误模式保持不变。

  • 旋转:每个出错符号的位错误模式向最有效位移动一位。

  • 递增:选择该模式时,位错误模式将被忽略。取而代之的是,位错误模式从 000000001、000000010、000000011 开始,一直到 111111111,并重复 000000001 的序列...

 Loop Mode

图片

 循环模式

有三种循环模式供控制注入循环的次数:

  • 单次:注入一个循环。

  • 连续:连续注入循环,直到明确停止。

  • 重复:注入特定次数的循环(最多 65535 次)

FEC 引擎

不同速度的 Z800 Freya 端口有不同数量的 FEC 引擎。

图片

TX Error Injection Statistics

图片

TX 错误注入统计

在 TX 统计中,提供以下计数器:

  • 总传输 CW

  • 可纠正 CW 总数(已错误但错误符号 <=15 个)

  • 不可修正的 CW 总数(已误码且误码符号大于 15 个)

  • 无错误化文总数

  • CW 误差比(1-总无误/总 CWs)

  • 传输的错误符号总数                

对应API的接口指令

PCS/FEC
Physical Coding Sublayer & Forward Error Correction

PL1_PCS_VARIANT

# set
<module-index>/<port-index> PL1_PCS_VARIANT <variant>

# get
<module-index>/<port-index> PL1_PCS_VARIANT ?
Description
PCS variant configuration.

Actions
set, get

Parameters
variant: byte, PCS variant

IEEE = 1

ETC = 2

Example
# set
input:  0/1 PL1_PCS_VARIANT IEEE
output: <OK>

# get
input:  0/1 PL1_PCS_VARIANT ?
output: 0/1 PL1_PCS_VARIANT IEEE

PL1_CWE_BIT_ERR_MASK
PL1_CWE_CONTROL
PL1_CWE_CYCLE
PL1_CWE_ERR_SYM_INDICES
PL1_CWE_FEC_ENGINE

# set
<module-index>/<port-index> PL1_CWE_FEC_ENGINE <engine_bitmask>

# get
<module-index>/<port-index> PL1_CWE_FEC_ENGINE ?
Description
Configure which FEC engines to use.

Actions
set, get

Parameters
engine_bitmask: hex, big endian.

the highest bit corresponds to FEC engine 4 (0x08)

the lowest bit corresponds to FEC engine 1 (0x01)

Note

For 800G, there are 4 engines. Default <engine_bitmask> = 0x0F.

For 400G and 200G, there are 2 engines. Default <engine_bitmask> = 0x03.

For 100G, there is 1 engin. Default <engine_bitmask> = 0x01.

Example
# set
input:  0/1 PL1_CWE_FEC_ENGINE 0x0F
output: <OK>

# get
input:  0/1 PL1_CWE_FEC_ENGINE ?
output: 0/1 PL1_CWE_FEC_ENGINE 0x0F


PL1_CWE_FEC_STATS
PL1_CWE_FEC_STATS_CLEAR
PP_ALARMS_ERRORS
PP_FECMODE
PP_PHYAUTONEG
PP_RXCLEAR
PP_RXFECSTATS
PP_RXLANEERRORS
PP_RXLANELOCK
PP_RXLANESTATUS
PP_RXTOTALSTATS
PP_TXERRORRATE
PP_TXINJECTONE

PP_TXINJECTONE
code: 284

# set
<module-index>/<port-index> PP_TXINJECTONE
Description
Inject a single bit-level error into the SerDes where injection has been enabled.

Actions
set

Parameters
Example
# set
input:  0/1 PP_TXINJECTONE
output: <OK>

PP_TXLANECONFIG
PP_TXLANEINJECT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1951190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript Let

ECMAScript 2015 ES2015 引入了两个重要的 JavaScript 新关键词&#xff1a;let 和 const。 这两个关键字在 JavaScript 中提供了块作用域&#xff08;Block Scope&#xff09;变量&#xff08;和常量&#xff09;。 在 ES2015 之前&#xff0c;JavaScript 只有两种类型的作…

为边缘开发由生成式 AI 驱动的视觉 AI 智能体

为边缘开发由生成式 AI 驱动的视觉 AI 智能体 文章目录 为边缘开发由生成式 AI 驱动的视觉 AI 智能体什么是可视化 AI 智能体&#xff1f;使用 Jetson 平台服务为边缘构建视觉 AI 智能体构建基于 VLM 的视觉 AI 智能体应用程序VLM AI 服务提示工程与 Jetson 平台服务和移动应用…

针对网络延迟与弱网下的测试

学习的时候看见大佬这样的回复 作为一个测试小白&#xff0c;我心想&#xff0c;这我不得上手试一试 大佬说的工具模拟&#xff0c;大概是指Charles和fiddler两个软件&#xff0c;都可以模拟弱网&#xff0c;但是Charles收费&#xff0c;我拿fiddler练手 另一个故意引入固定百…

21-C语言的结构体尺寸——地址对齐问题

21-C语言的结构体尺寸——地址对齐问题 文章目录 21-C语言的结构体尺寸——地址对齐问题一、CPU 字长二、 地址对齐2.1 原理和原因2.2 地址对齐的主要思想2.3 示例代码说明地址对齐 三、普通变量的M值M值的计算规则例子 四、手动干预M值4.1 规则4.2 例子 五、结构体的M值5.1 例…

每天一个设计模式之职责链模式(第一天)

特别感谢刘伟老师&#xff0c;看他的书我学到了很多东西&#xff0c;从今天开始我要开始更新啦&#xff01; 在csdn个人博客来总结知识&#xff0c;把他们变成自己的能力。 对三&#xff0c;要不起&#xff0c;张三李四王五几个人在玩斗地主&#xff0c;过过过&#xff0c;一…

谷粒商城实战笔记-错误记录-启动失败

文章目录 一&#xff0c;lombok报错二&#xff0c;Output directory is not specified 一&#xff0c;lombok报错 java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled. Your processor is: com.sun.proxy.$Proxy8 Lombok …

靶场实战 _ ATTCK 实战 Vulnstack 红队

环境配置 网络拓扑图 (仅供参考) 攻击机&#xff1a;kali ip:192.168.111.5靶机&#xff1a;web-centos 外网ip:192.168.111.10 内网ip:192.168.93.100web1-ubuntu ip: 192.168.93.120PC ip: 192.168.93.30win 2008 ip:192.168.93.20win 2012 ip:192.168.93.10 信息搜集 端口…

【QT】常用控件(概述、QWidget核心属性、按钮类控件、显示类控件、输入类控件、多元素控件、容器类控件、布局管理器)

一、控件概述 Widget 是 Qt 中的核心概念&#xff0c;英文原义是 “小部件”&#xff0c;此处也把它翻译为 “控件”。控件是构成一个图形化界面的基本要素。 像上述示例中的按钮、列表视图、树形视图、单行输入框、多行输入框、滚动条、下拉框都可以称为 “控件”。 Qt 作为…

世界渲染大赛含金量高吗?含金量怎么样?水平要求?

世界渲染大赛&#xff0c;作为全球3D艺术与渲染领域的顶级赛事&#xff0c;以其高含金量和专业水平要求而闻名。这一赛事不仅吸引了世界各地的专业3D艺术家、设计师和技术爱好者的积极参与&#xff0c;更以其严格的评审标准和创新性的主题设置&#xff0c;确保了参赛作品的高质…

C#初级——条件判断语句、循环语句和运算符

条件判断语句 简单的条件判断语句&#xff0c;if()里面进行条件判断&#xff0c;如果条件判断正确就执行语句块1&#xff0c;如果不符合就执行语句块2。 if (条件判断) { 语句块1 } else { 语句块2 } int age 18;if (age < 18){Console.WriteLine("未…

一天搞定React(3)——Hoots组件【已完结】

Hello&#xff01;大家好&#xff0c;今天带来的是React前端JS库的学习&#xff0c;课程来自黑马的往期课程&#xff0c;具体连接地址我也没有找到&#xff0c;大家可以广搜巡查一下&#xff0c;但是总体来说&#xff0c;这套课程教学质量非常高&#xff0c;每个知识点都有一个…

git sendemail使用

教程参考&#xff1a; git-send-email - 以电子邮件形式发送补丁集 1、安装git-email 2、配置 SMTP 服务器 git config --global sendemail.smtpserver smtp.163.com git config --global sendemail.smtpserverport 465 git config --global sendemail.smtpuser xxxxxx163.c…

Godot入门 04平台设计

新建创景&#xff0c;添加AnimatableBody2D节点。 添加Sprite2D节点 拖动图片 剪裁图片&#xff0c;吸附模式&#xff1a;像素吸附 添加CollisionShape2D&#xff0c;设置实际形状为矩形 重命名AnimatableBody2D节点为Platform&#xff0c;保存场景&#xff0c;拖动platform场景…

Docker NameSpace隔离

1、dd命令&#xff1a;dd 可从标准输入或文件中读取数据&#xff0c;根据指定的格式来转换数据&#xff0c;再输出到文件、设 备或标准输出 功能&#xff1a;用于读取、转换并输出数据 语法&#xff1a;dd OPTION 参数 1、 if文件名&#xff1a;输入文件名&#xff0c;默认为…

【第四天】计算机网络知识 HTTP1.0,HTTP1.1与HTTP2.0的区别 HTTP3.0

HTTP1.0&#xff0c;HTTP1.1与HTTP2.0的区别 HTTP1.0 默认是短链接&#xff0c;可以强制开启长连接。HTTP1.1默认长连接。HTTP2.0采用多路复用。 HTTP1.0&#xff1a; 默认使用短链接&#xff0c;每次请求都需要建立一个TCP连接。它可以设置&#xff1a;Connection: keep-aliv…

内网对抗-隧道技术篇防火墙组策略FRPNPSChiselSocks代理端口映射C2上线

知识点&#xff1a; 1、隧道技术篇-传输层-工具项目-Frp&Nps&Chisel 2、隧道技术篇-传输层-端口转发&Socks建立&C2上线Frp Frp是专注于内网穿透的高性能的反向代理应用&#xff0c;支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过…

H264编码标准环路滤波原理

方块效应产生原因 原因 1&#xff1a;最重要的一个原因是基于块的帧内和帧间预测残差的 DCT 变换。变换系数的量化过程相对粗糙&#xff0c;因而反量化过程恢复的变换系数带有误差&#xff0c;会造成在图像块边界上的视觉不连续。原因 2&#xff1a;其次原因自于运动补偿预测。…

FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程

源码见&#xff1a;"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 加入课程 我们先看下加入课程 1.是否登录 2.课程是否存在 3.是否已经存在 4.添加 首先实现逻辑 def get_student_course(db: Session, course: int…

4.Jmeter接口性能测试

性能测试的指标: 多:并发量(用户数-系统用户数-影响到磁盘、在线用户数、并发用户数) 系统用户数:软件系统注册的用户总数(要注意初始化环境) 在线用户数:某段视角内访问用户数,这些用户只是咋先,不一定同时做某一件事情。(初始化环境(warm up热机:让…

DL/T645、IEC104转BACnet网关实现实时数据采集

BA102网关是钡铼技术专为实现电力协议DL/T645、IEC104与楼宇自控协议BACnet相互转化而研发的。它下行采集支持Modbus RTU、Modbus TCP、DL/T645、IEC104等协议&#xff0c;上行转发则支持BACnet IP和BACnet MS/TP协议&#xff0c;从而实现了电力协议与楼宇自控协议之间的相互转…