64b/67b传输码字
PCS使用的64b/67b传输码将64位数据块和/或控制信息编码为67位码字,用于传输,并在接收时反转过程。码字有两种类型:“数据”码字和“控制”码字。数据码字编码64位的数据。控制码字编码64位的控制信息或数据和控制信息的某种组合。
码字格式
该码字由一个反向位、标记该码字的开头和类型的一对位和一个64位的data_field字段组成。
inverted: 表示data_字段是否被反转以控制传输信号的运行视差
0b0 - data_field[0:63]没有被反转。
0b1 - data_field[0:63]已被反转
type表示码字的类型:
0b0:控制,码字编码一个包含控制信息和可能包含数据信息的块
0b1:数据,码字编码一个只包含数据信息的块。
!type位是 type的补充。
data_field字段的格式和内容取决于码字中编码的信息数据码字
码字格式如下图所示 type bit = 0b1
控制码字 控制码字(类型位= 0b0)的格式取决于码字编码的信息。控制码字data_字段的位置[30:31]处的2位是一个cc_type字段,它指定data_field字段的内容和格式[0:29,32:63]。控制码字的一般格式应如下表所示 各种控制码字的具体作用和传输时机在以后的章节中单独介绍。解扰码介绍
扰码的作用
扰码可以平滑端口发送信号的频谱,并降低频谱的峰值。当发送一长串相同字符或重复字符序列时,这一点尤为重要。结果是减少了链路产生的电磁干扰(EMI)量,并使自适应均衡器训练算法的设计变得更加容易。
扰码规则
所有数据码字的一部分和一些控制码字的一部分在在lp-串行链路上传输之前被乱码。码字比特 [0:2] (inverted, !type and type) 不会被扰码。
解码和扰码是基于每个通道进行的。在任何特定的时间,每个通道扰频器都应具有不同的状态。
解扰码器和解扰码器应为每个码字生成64位的置乱序列。扰码器和解扰码器不得为跳过控制码字(Skip control codewords. )产生任何置乱序列位。
代码字的扰乱应遵循以下规则:
- 所有数据代码字的位[3:66]应被扰乱。
- 所有控制代码字的位[3:32]和[35:66],其代码字位[33:34]不等于0b00的,应被扰乱。
- 代码字位[33:34]等于0b00的控制代码字不应被扰乱。
因此,CSB、CSE和CSEB控制代码字应被扰乱,而其他所有类型的控制代码字则不应被扰乱。
代码字的数据字段(data_field)应从左到右进行扰码,起始于代码字位[3],结束于代码字位[66]。当扰乱一个代码字位[33:34]不等于0b00的控制代码字时,用于扰乱代码字位[33:34]的扰乱器位应被忽略且不使用。当遇到一个代码字位[33:34]等于0b00的控制代码字时,所有64个扰乱器位都应被忽略且不使用。扰乱器应对每个代码字步进64位,除了Skip控制代码字之外,即使只有部分或没有64位用于扰乱也是如此。
用于扰码的伪随机序列应由Fibonacci(斐波那契)形式线性反馈移位寄存器(LFSR)生成器产生,该生成器使用基本生成多项式x58+x39+1。扰乱器的输出应为寄存器的输出,该寄存器持有x58,即最旧且最重要的状态位。
这里的Fibonacci LFSR是一种特殊的线性反馈移位寄存器,它通过一定的反馈逻辑产生伪随机序列。生成多项式x58+x39+1定义了LFSR的反馈逻辑,其中x的指数表示寄存器的位位置,而加法则表示这些位的异或运算。这种设计有助于生成具有优良统计特性的随机序列,适用于通信系统的扰乱和解扰操作。
扰乱器的输出是LFSR中x58位的状态,这通常是最早进入寄存器的位,因此也是状态中最重要的一位。通过将这个位作为输出,扰乱器可以有效地改变输入数据的模式,降低直流分量,并减少电磁干扰,从而改善通信系统的性能。
为了最小化端口在多个通道上传输时各通道之间的任何相关性,应用于端口给定输出通道的扰乱序列应相对于应用于端口任何其他输出通道的扰乱序列偏移至少512位。如果每个通道使用单独的扰乱序列生成器,则可以通过将扰乱器初始化为表5-4中指定的值来满足偏移要求,这些值提供了512位的偏移。
在数字通信系统中,当端口在多个通道上同时传输数据时,确保通道之间的独立性至关重要。通过在不同通道上应用具有足够偏移的扰乱序列,可以降低通道间信号的相关性,从而改善整体的系统性能。这种技术有助于减少电磁干扰,并优化数据的传输质量。
表5-4提供了初始化扰乱器所需的特定值,这些值用于在不同通道之间创建所需的512位偏移。通过遵循这些初始化步骤,可以确保每个通道的扰乱序列都是唯一的,并且具有足够的差异,从而满足系统对通道间独立性的要求。
解扰器同步
该部分内容和其它控制码字的传输相关,后续章节在具体介绍。
选择性码字反转
选择性码字反演用于绑定在使用64b/67b编码的lp-串行链路的每个通道上传输的信号的运行视差(可理解为0和1的数量比)。
选择性代码字反转规则
根据以下规则,选择性代码字反转应应用于通过LP-Serial链路的每个通道传输的信号:
-
发射器应为每个通道的运行差异计算设置初始值为0。
-
在每个码字形成后(如果适用,先进行扰乱),计算所得码字的差异。
-
如果码字差异和运行差异(即代码字将要传输的通道的差异)的符号不同,则码字应直接传输,不进行反转。代码字结束时的运行差异应为代码字开始时的运行差异加上码字的差异。
-
如果代码字差异和运行差异的符号相同,则应将码字的位[0,3:66]进行反转,并传输反转后的代码字。代码字结束时的运行差异应为代码字开始时的运行差异减去反转前的代码字差异。
-
在接收器端,如果接收到的代码字的位[0]等于0b1(即代码字在传输前已被反转),则应将每个接收到的代码字的位[0,3:66]进行反转。
这些规则确保了代码字在传输过程中能够根据需要进行反转,以维持通道内的直流平衡。通过根据代码字差异和运行差异的符号关系来决定是否反转代码字,可以有效地减少直流分量,并降低电磁干扰,从而提高通信系统的性能和可靠性
整个扰码过程的流程可见下图
标签:扰乱,PCS,代码,SRIO,传输,64B,码字,反转,通道 From: https://blog.csdn.net/qq_63346357/article/details/136914689