1. LFSR
LFSR(Linear Feedback Shift Register) 线性移位寄存器,它通过特定的方式将信号在寄存器内从一位移动到下一位,是一种常见的 用于 生成伪随机序列 的电路。
2. LFSR 实现
某些 输出 通过异或(XOR)逻辑组合起来,形成反馈路径,再次输入到寄存器中;这种配置允许 LFSR 生成伪随机序列。
这些序列常用于:测试和校准过程,如在 UCIe 链路训练期间进行数据到时钟点测试和眼图宽度扫描训练。
LFSR 能够 生成 长的、周期性的、看似随机的 二进制序列,这些序列可以用作伪随机模式生成器(PRPG),在集成电路(ASIC)和 UCIe 链路的测试中非常有用。
3. LFSR 使用场合
3.1 UCIe 中的 LFSR
在 UCIe 中,LFSR 用于 链路初始化 和 链路训练阶段 对链路进行测试和校准,LFSR 用于生成测试模式,以确保链路的物理层能够正确地 接收 和 解释 传输的数据,这是链路正常运行的前提。
LFSR 的使用可提高测试的覆盖率,帮助检测和定位链路中可能存在的故障,从而确保 UCIe 链路的可靠性和性能。
3.2 数字电路设计中的 LFSR
LFSR 在 数字电路设计 和 功能实现中 也有广泛的应用。
-
测试和校准:LFSR 生成的 伪随机序列 用于在链路初始化期间测试数据传输的完整性和时钟同步,确保链路训练成功。这是其在 测试和校准中 的应用。
-
伪随机数生成:在 数字电路设计 中,LFSR 可以用作伪随机数生成器,这在 模拟和随机化算法中 非常有用。
-
编码和解码:LFSR 还可以用于 错误检测 和 纠正码 的生成,如循环冗余校验(CRC)码,这在 数据传输中 用于 确保数据的完整性。
-
信号处理:在某些应用中,LFSR 生成的序列可以用于 信号处理,如 滤波器设计 或 信号调制。
-
数字逻辑设计:LFSR 是 数字逻辑设计中 的一个基本构建块,可以用于实现更复杂的数字电路功能。
3.3 LFSR Data Scramble 应用实例
在 数字通信 和 数据存储系统 中,LFSR 常用于 数据加密和解扰 (scramble/discramble)。
数据扰码 (data scramble) 是一种技术,用于将 传输或存储的数据 与 伪随机序列 进行异或(XOR)操作,改变数据的统计特性,使其更接近白噪声,从而把 数据 转换为 难以预测的序列。
这样做的目的是: 提高信号的 带宽效率、 减少数据传输中的电磁干扰(EMI),减少 数据相关性导致的误差;提高信号的完整性和链路的鲁棒性。
以下是 LFSR 在 数据扰码 (data scramble) 中的应用:
- 生成伪随机序列:LFSR 可生成一个看似随机的二进制序列,这个序列是 基于初始状态(称为种子)通过特定的 位运算规则 生成的。
- 与数据进行异或:原始数据与 LFSR 生成的序列进行 按位异或 (XOR) 操作,实现数据的扰码。 data scrambled = data_original XOR lfsr_Sequence
- 初始状态(种子)的选择:LFSR 的初始状态对生成的序列有很大影响。不同的初始状态会生成不同的序列,因此在通信系 统中,发送方和接收方需要同步这个初始状态。
- LFSR 多项式:LFSR 的特性由其 多项式 决定,多项式的系数 决定了序列的特性,如周期长度和序列的随机性。
- 扰码器的初始化:在通信开始时,需要初始化 LFSR 到一个已知状态,这通常通过特定的初始化序列(如帧同步)
3.3.1 UCIe 中 LFSR 与 SCRAMBLE
在 UCIe 中,LFSR 用于 生成伪随机序列,这些序列用于 数据的加扰(scramble)过程;从而提高数据传输的质量和链路的可靠性。
在 UCIe 链路训练和数据传输过程中,TX 的 LFSR 会生成一个 伪随机序列,然后将这个序列与 实际要传输的数据 进行 异或操作,生成 加扰后的数据流。RX 为了还原原始数据,需要一个与 TX 端同步的 LFSR,同样生成伪随机序列,并对加扰后的数据流进行异或操作,实现解扰(de-scrambling)。
加扰和解扰 过程需要使用 相同的 LFSR 配置和初始状态,以确保数据的准确传输。
3.4 LFSR 关键参数
LFSR 的多项式、初始种子值、以及 加扰规则等参数 对于实现准确的数据传输至关重要。
例如,在 PCIe 协议中,LFSR 的多项式、初始种子值以及加扰规则都有明确的规定,以确保数据传输的可靠性。