首页 > 其他分享 >SRIO(Serial RapidIO)PCS层 64B/67B编码介绍(二)

SRIO(Serial RapidIO)PCS层 64B/67B编码介绍(二)

时间:2024-03-21 18:34:14浏览次数:18  
标签:扰乱 PCS 代码 SRIO 传输 64B 码字 反转 通道

 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. )产生任何置乱序列位。

 代码字的扰乱应遵循以下规则:

  1. 所有数据代码字的位[3:66]应被扰乱。
  2. 所有控制代码字的位[3:32]和[35:66],其代码字位[33:34]不等于0b00的,应被扰乱。
  3. 代码字位[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链路的每个通道传输的信号:

  1. 发射器应为每个通道的运行差异计算设置初始值为0。

  2. 在每个码字形成后(如果适用,先进行扰乱),计算所得码字的差异。

  3. 如果码字差异和运行差异(即代码字将要传输的通道的差异)的符号不同,则码字应直接传输,不进行反转。代码字结束时的运行差异应为代码字开始时的运行差异加上码字的差异。

  4. 如果代码字差异和运行差异的符号相同,则应将码字的位[0,3:66]进行反转,并传输反转后的代码字。代码字结束时的运行差异应为代码字开始时的运行差异减去反转前的代码字差异。

  5. 在接收器端,如果接收到的代码字的位[0]等于0b1(即代码字在传输前已被反转),则应将每个接收到的代码字的位[0,3:66]进行反转。

    这些规则确保了代码字在传输过程中能够根据需要进行反转,以维持通道内的直流平衡。通过根据代码字差异和运行差异的符号关系来决定是否反转代码字,可以有效地减少直流分量,并降低电磁干扰,从而提高通信系统的性能和可靠性

整个扰码过程的流程可见下图

标签:扰乱,PCS,代码,SRIO,传输,64B,码字,反转,通道
From: https://blog.csdn.net/qq_63346357/article/details/136914689

相关文章

  • LLM-通义千问:PCS变流器
    PCS变流器(PowerConversionSystem)是一种电力电子设备,主要用于储能系统中,实现电能的双向转换。在电池储能系统中,PCS连接于电池组与交流电网之间,扮演着关键的桥梁角色:功能:双向能量流动:PCS能够将来自电网的交流电(AC)整流为直流电(DC),给电池储能系统充电;反之,它也能将电池储存的直流......
  • notepad++ compare plus/compare plugin 64bit
    *[Releases·pnedev/comparePlus](https://github.com/pnedev/comparePlus/releases)https://objects.githubusercontent.com/github-production-release-asset-2e65be/50095301/5d0a2666-67f4-4971-9354-12339a75dd1f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credent......
  • pcss 软阴影
    PCFPercentageCloserFiltering:PCF是一种用于阴影反锯齿的方法,本身不是软阴影方法。算法流程说明:Performmultiple(e.g.7x7)depthcomparisonsforeachfragmentThen,averagesresultsofcomparisonse.g.forpointPonthefloor,compareitsdepthwithall......
  • codeforces刷题(1100):1864B_div1+div2
    B、SwapandReverse跳转原题点击此:该题地址1、题目大意  给你一个字符串和k,你可以对该字符串做一下两个操作:交换\(a_i\)和\(a_{i+2}\)的字符;对\([i,i+k-1]\)这个区间的字符就行反转;问你通过这两个操作后,原字符串所能生成新的字典序最小的字符串是什么。2、题目解......
  • 万兆网络中低延迟 PCSPMA 实现
    概况通过学习GTWizard64b66b万兆网的低延迟解包方案,以及gearbox的对齐技术使用目的学习GTWizard64b66b的IP基本构架,灵活使用IP完成高速数据传输软件Vivado和modelsim10.7硬件支持10.3125g的高速接口开发板1.软件基本介绍:Vivado是xilinx推出的集成......
  • bind-utils无法安装,提示" Requires: libisc-export.so.95()(64bit)"
    一、问题现象[root@test~]#yuminstallbind-utilsLoadedplugins:fastestmirrorLoadingmirrorspeedsfromcachedhostfileResolvingDependencies-->Runningtransactioncheck--->Packagebind-utils.x86_6432:9.11.4-26.P2.el7_9.15willbeinstalled--&g......
  • sriov vgpu启动报错问题
    internalerror:qemuunexpectedlyclosedthemonitor:2023-11-07T07:36:39.571260Zqemu-kvm:-numanode,nodeid=0,cpus=0-119,mem=8192:warning:Parameter-numanode,memisdeprecated,use-numanode,memdevinstead#0122023-11-07T07:36:39.585190Zqemu-kvm:-d......
  • libpcre2-8.so.0()(64bit) is needed by zabbix-agent-6.4.0-release1.el7.x86_64
    报错:libpcre2-8.so.0()(64bit)isneededbyzabbix-agent-6.4.0-release1.el7.x86_64解决方法:[root@zabbix_server~]#yuminstallpcre2-......
  • murmurhash64B c# 实现 c++ 实现
    c#实现:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespacegjh.utility{publicclassMurmurHash64B{publicstaticulongMakeHashValue(byte[]key,uintseed=0xee6b27eb){......
  • CF264B Good Sequences 题解
    GoodSequences状态很显然,设\(f[i]\)表示位置\(i\)的最长长度。关键是转移,暴力转移是\(O(n^2)\)的,我们必须找到一个更优秀的转移。因为一个数的质因子数量是\(O(\logn)\)的,而只有和这个数具有相同质因子的数是可以转移的;因此我们可以对于每个质数\(p\),设一个\(mx_p......