CN111400232B - 一种基于数据位宽展开的scramble与descramble硬件实现方法 - Google Patents

一种基于数据位宽展开的scramble与descramble硬件实现方法 Download PDF

Info

Publication number
CN111400232B
CN111400232B CN202010278422.0A CN202010278422A CN111400232B CN 111400232 B CN111400232 B CN 111400232B CN 202010278422 A CN202010278422 A CN 202010278422A CN 111400232 B CN111400232 B CN 111400232B
Authority
CN
China
Prior art keywords
data
shift register
scramble
bit
desamble
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010278422.0A
Other languages
English (en)
Other versions
CN111400232A (zh
Inventor
范凯
陈盈安
卢笙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinqiyuan Shanghai Semiconductor Technology Co ltd
Original Assignee
Xinqiyuan Shanghai Semiconductor Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xinqiyuan Shanghai Semiconductor Technology Co ltd filed Critical Xinqiyuan Shanghai Semiconductor Technology Co ltd
Priority to CN202010278422.0A priority Critical patent/CN111400232B/zh
Publication of CN111400232A publication Critical patent/CN111400232A/zh
Priority to PCT/CN2021/074376 priority patent/WO2021203808A1/zh
Priority to US17/916,667 priority patent/US11748295B2/en
Application granted granted Critical
Publication of CN111400232B publication Critical patent/CN111400232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Dc Digital Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种基于数据位宽展开的scramble与descramble硬件实现方法,展开后进行冗余项消除并一次性算出当前运算周期scramble/descramble的运算结果以及移位后移位寄存器的值,对于USB3.1和PCI‑Express3.0协议定义的scramble和descramble多项式具有比较好的效果,能够获得比较小的硬件延时,使***可以工作在更高的频率。

Description

一种基于数据位宽展开的scramble与descramble硬件实现 方法
技术领域
本发明属于USB领域,更具体地,涉及一种基于数据位宽展开的scramble与descramble硬件实现方法。
背景技术
USB是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。USB标准于1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出,现已经被广泛应用于电脑,手机,数码相机等各种电子设备。
USB标准由USB官方组织USB-IF制定和维护,从开始至今依次发布了USB1.1,USB2.0, USB3.0和USB3.1四个版本,新版本前向兼容旧版本。每个版本支持的最大传输速率分布为:
USB1.1: 12Mbps;
USB2.0:480Mbps;
USB3.0:5Gbps;
USB3.1:10Gbps;
PCI-Express是Peripheral Component Interconnect Express的缩写,是一种高速串行电脑扩展总线标准,广泛用于电脑主板和扩展设备如可显卡、声卡、网卡、内置Modem、IEEE1394卡、IDE接口卡、RAID卡、电视卡、视频采集卡以及其它种类繁多的扩展卡之间的连接。PCI-Express支持从1条通道链接(Lane)到32条通道链接,具有非常强的伸缩性,以满足不同***设备对数据传输带宽不同的需求。
PCI-Express标准由PCI-SIG (PCI Special Interest Group) 组织制定和维护,现有的主要版本以及单条通道链接支持的最大传输速率:
PCI-Express 2.0: 5Gbps
PCI-Express 3.0: 8Gbps
Scramble是根据特定的多项式,通过线性反馈的方式根据二进制的原始数据生成伪随机数序列,scramble之后二进制数据0和1的分布更为均衡,可以减少高速传输时的电磁辐射干扰(Electromagnetic interferenceEmission),与scramble相对应的将伪随机数还原成原始数据的方法称为descramble。USB3.1和PCI-Express 3.0协议中都使用了scramble和descramble技术,发送方将原始数据scramble后进行传输以减小数据高速传输过程中产生的电磁辐射干扰,接收方在接收到数据后先通过descramble还原出原始数据,然后再根据协议对数据进行处理。
USB3.1和PCI-Express 3.0协议中使用了相同的scramble和descramble多项式,协议的物理层(Physical Layer)负责对发出的数据进行scramble处理,并对接收到的数据进行descramble处理。线性反馈的多项式为:G(X)=X23+X21+X16+ X8+ X5 +X2+1。
USB3.1和PCI-Express 3.0协议定义了单比特的scramble和descramble实现方案,如图1所示。图1的实现方案每个工作周期输入一个固定位宽(如16位,32位或64位等)的数据data_in,进行scramble并输出结果data_out,方案中使用了23位的线性反馈移位寄存器(lfsr[22:0]),输入数据按照小数端(LSB)由低到高逐位进行迭代和运算,scramble的具体运算步骤为:
第一步,将输入数据data_in的最低位D0与lfsr的最高位D22进行异或,得到输出数据data_out的最低位。
第二步,将lfsr按照图1-1中所示的电路结构(对应多项式:G(X)=X23+ X21+ X16+X8+ X5+ X2+ 1)进行单比特(bit)移位,得到新的lfsr的值,对应的算法为:
D0(n+1) = D22(n);
D1(n+1) = D0(n);
D2(n+1) = D1(n) ^ D22(n);
D3(n+1) = D2(n);
D4(n+1) = D3(n);
D5(n+1) = D4(n) ^ D22(n);
D6(n+1) = D5(n);
D7(n+1) = D6(n);
D8(n+1) = D7(n) ^ D22(n);
D9(n+1) = D8(n);
D10(n+1) = D9(n);
D11(n+1) = D10(n);
D12(n+1) = D11(n);
D13(n+1) = D12(n);
D14(n+1) = D13(n);
D15(n+1) = D14(n);
D16(n+1) = D15(n) ^ D22(n);
D17(n+1) = D16(n);
D18(n+1) = D17(n);
D19(n+1) = D18(n);
D20(n+1) = D19(n);
D21(n+1) = D20(n) ^ D22(n);
D22(n+1) = D21(n);
其中,符号“^”表示单比特数据异或,n代表当前周期的线性反馈移位寄存器(lfsr)的值,n + 1 代表下一周期的线性反馈移位寄存器(lfsr)的值;
第三步,将输入数据data_in的第二位D1与经步骤2移位后新的lfsr的最高位D22进行异或,得到输出数据data_out的第二位;
第四步,重复步骤2和步骤3,直至当前周期数据的所有位都处理完,最终得到本周期输入数据data_in的scramble结果data_out;
第五步,下一个周期重复步骤1到步骤4,根据本周期最后的lfsr的数值和下一个周期输入的新data_in数值计算下一个周期的scramble的结果data_out。
Descramble是将scramble后的伪随机数恢复成原输入数据的运算,采用的电路结构和运算步骤与scramble相同,区别在于descramble输入的数据data_in是scramble后的伪随机数,输出的结果data_out是scramble之前的原输入数据。只要保证发送方scramble的线性反馈移位寄存器(lfsr)的数值与接收方descramble的线性反馈移位寄存器(lfsr)数值同步,双方就能实时同步的进行数据传输。USB3.1/PCI-Express3.0定义了特殊字符(symbol)和序列(order set),通过特殊字符和序列来保证收发双方线性反馈移位寄存器(lfsr)的同步。
USB3.1和PCI-Express3.0协议提供的基于单比特移位的scramble和descramble的缺点在于每个周期需要迭代次数较多,耗时长,scramble和descramble结果生成的硬件延时较大,从而限制了***的工作频率和整体性能。
发明内容
本发明的目的是在遵守USB3.1和PCI-Express3.0协议的前提下,提出一种基于数据位宽展开的scramble与descramble硬件实现方法,通过展开后消去冗余项,缩短scramble和descramble结果生成的硬件延时,使***可以工作在更高的频率。
为实现上述发明目的,本发明提出一种基于数据位宽展开的scramble与descramble硬件实现方法,假定数据位宽为N,具体过程如下:
第一步,将输入数据的最低位与移位寄存器的最高位进行异或得到输出数据的最低位;
第二步,根据多项式G(X)=X23+ X21+ X16+ X8+ X5+ X2+ 1对移位寄存器进行迭代和展开,直至算出迭代1~N次后线性反馈移位寄存器的值,然后根据a^a^b=b(a,b为2进制变量)消去展开式中相同的项,其中单步算法为:
D0(n+1) = D22(n);
D1(n+1) = D0(n);
D2(n+1) = D1(n) ^ D22(n);
D3(n+1) = D2(n);
D4(n+1) = D3(n);
D5(n+1) = D4(n) ^ D22(n);
D6(n+1) = D5(n);
D7(n+1) = D6(n);
D8(n+1) = D7(n) ^ D22(n);
D9(n+1) = D8(n);
D10(n+1) = D9(n);
D11(n+1) = D10(n);
D12(n+1) = D11(n);
D13(n+1) = D12(n);
D14(n+1) = D13(n);
D15(n+1) = D14(n);
D16(n+1) = D15(n) ^ D22(n);
D17(n+1) = D16(n);
D18(n+1) = D17(n);
D19(n+1) = D18(n);
D20(n+1) = D19(n);
D21(n+1) = D20(n) ^ D22(n);
D22(n+1) = D21(n);
其中符号“^”表示单比特数据异或,n代表n次迭代完后的移位寄存器的值,n + 1代表本n + 1次迭代完后的移位寄存器的值;
第三步,将输入数据的第1到N-1位分别与根据上述单步算法迭代1~N-1次并经过消去展开式中相同的项的移位寄存器的最高位进行异或,得到输出数据的第1到N-1位。
进一步地,移位寄存器为线性反馈移位寄存器。
进一步地,本发明方法适用于所有其中scramble和descramble多项式为G(X) =X23+ X21+ X16+ X8+ X5+ X2+ 1的USB协议。
进一步地,数据位宽N可为任何正整数。
在完成USB3.1和PCI-Express3.0协议的硬件实现时,针对scramble 和descramble采用基于数据位宽展开并消除冗余项的方式进行实现,此方法对于USB3.1和PCI-Express3.0协议定义的scramble 和descramble多项式具有比较好的效果,能够获得比较小的硬件延时,使***可以工作在更高的频率。
附图说明
图1为现有技术的USB3.1/PCI-Express3.0单比特移位scramble示意图;
图2为基于单比特迭代与基于数据位宽展开方法所需的硬件延时比较示意图。
实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明提出的基于数据位宽展开的scramble与descramble硬件实现方法,先进行展开,然后进行冗余项消除,并一次性算出当前运算周期scramble/descramble的运算结果以及移位后移位寄存器的值。为了更好地理解本发明方法,以举例的方式解释本发明方法的第二步骤,即根据多项式G(X)=X23+ X21+ X16+ X8+ X5+ X2+ 1对移位寄存器进行迭代和展开,具体举例如下:
记D(0)为原始数据,D(n)为经过n次迭代后的数据,经过8次迭代后的lfsr值为:
D0(8) = D15(0) ^ D22(0) ^ D17(0) ^ D19(0) ^ D21(0);
D1(8) = D16(0) ^ D18(0) ^ D20(0) ^ D22(0);
D2(8) = D17(0) ^ D19(0) ^ D21(0) ^ D15(0) ^ D22(0) ^ D17(0) ^ D19(0)^ D21(0);
D3(8) = D18(0) ^ D20(0) ^ D22(0) ^ D16(0) ^ D18(0) ^ D20(0) ^ D22(0);
D4(8) = D19(0) ^ D21(0) ^ D17(0) ^ D19(0) ^ D21(0);
D5(8) = D20(0) ^ D22(0) ^ D18(0) ^ D20(0) ^ D22(0) ^ D15(0) ^ D22(0)^ D17(0) ^ D19(0) ^ D21(0);
D6(8) = D21(0) ^ D19(0) ^ D21(0) ^ D16(0) ^ D18(0) ^ D20(0) ^ D22(0);
D7(8) = D22(0) ^ D20(0) ^ D22(0) ^ D17(0) ^ D19(0) ^ D21(0);
D8(8) = D0(0) ^ D21(0) ^ D18(0) ^ D20(0) ^ D22(0) ^ D15(0) ^ D22(0)^ D17(0) ^D19(0) ^ D21(0);
D9(8) = D1(0) ^ D22(0) ^ D19(0) ^ D21(0) ^ D16(0) ^ D18(0) ^ D20(0)^ D22(0);
D10(8) = D2(0) ^ D20(0) ^ D22(0) ^ D17(0) ^ D19(0) ^ D21(0);
D11(8) = D3(0) ^ D21(0) ^ D18(0) ^ D20(0) ^ D22(0);
D12(8) = D4(0) ^ D22(0) ^ D19(0) ^ D21(0);
D13(8) = D5(0) ^ D20(0) ^ D22(0);
D14(8) = D6(0) ^ D21(0);
D15(8) = D7(0) ^ D22(0);
D16(8) = D8(0) ^ D15(0) ^ D22(0) ^ D17(0) ^ D19(0) ^ D21(0);
D17(8) = D9(0) ^ D16(0) ^ D18(0) ^ D20(0) ^ D22(0);
D18(8) = D10(0) ^ D17(0) ^ D19(0) ^ D21(0);
D19(8) = D11(0) ^ D18(0) ^ D20(0) ^ D22(0);
D20(8) = D12(0) ^ D19(0) ^ D21(0);
D21(8) = D13(0) ^ D20(0) ^ D22(0) ^ D15(0) ^ D22(0) ^ D17(0) ^ D19(0) ^ D21(0);
D22(8) = D14(0) ^ D21(0) ^ D16(0) ^ D18(0) ^ D20(0) ^ D22(0);
以D5(8)为例,展开后的表达式中D20(0)出现了两次,D22(0)出现了三次,根据a^a^b=b(a,b为2进制变量)消去冗余项后D5(8)可简化为:D5(8) = D21(0) ^ D15(0) ^ D17(0) ^ D18(0) ^ D19(0) ^ D22(0);
经冗余项去除后的8次迭代后的lfsr值为:
D0(8) = D21(0) ^ D15(0) ^ D17(0) ^ D19(0) ^ D22(0);
D1(8) = D20(0) ^ D18(0) ^ D16(0) ^ D22(0);
D2(8) = D15(0) ^ D22(0);
D3(8) = D16(0);
D4(8) = D17(0);
D5(8) = D21(0) ^ D15(0) ^ D17(0) ^ D18(0) ^ D19(0) ^ D22(0);
D6(8) = D20(0) ^ D18(0) ^ D19(0) ^ D16(0) ^ D22(0);
D7(8) = D21(0) ^ D20(0) ^ D17(0) ^ D19(0);
D8(8) = D15(0) ^ D20(0) ^ D17(0) ^ D18(0) ^ D19(0) ^ D0(0);
D9(8) = D20(0) ^ D21(0) ^ D1(0) ^ D18(0) ^ D19(0) ^ D16(0);
D10(8) = D21(0) ^ D20(0) ^ D17(0) ^ D19(0) ^ D22(0) ^ D2(0);
D11(8) = D20(0) ^ D21(0) ^ D3(0) ^ D18(0) ^ D22(0);
D12(8) = D21(0) ^ D19(0) ^ D4(0) ^ D22(0);
D13(8) = D20(0) ^ D22(0) ^ D5(0);
D14(8) = D21(0) ^ D6(0);
D15(8) = D7(0) ^ D22(0);
D16(8) = D21(0) ^ D15(0) ^ D17(0) ^ D19(0) ^ D8(0) ^ D22(0);
D17(8) = D20(0) ^ D18(0) ^ D16(0) ^ D22(0) ^ D9(0);
D18(8) = D21(0) ^ D17(0) ^ D19(0) ^ D10(0);
D19(8) = D20(0) ^ D18(0) ^ D22(0) ^ D11(0);
D20(8) = D21(0) ^ D19(0) ^ D12(0);
D21(8) = D21(0) ^ D15(0) ^ D20(0) ^ D17(0) ^ D13(0) ^ D19(0);
D22(8) = D20(0) ^ D21(0) ^ D18(0) ^ D16(0) ^ D22(0) ^ D14(0).
下面将以32比特位宽为例对默认的单比特迭代和基于位宽展开的scramble和descramble硬件实现方案的延时进行比较:
对于USB3.1和PCI-Express3.0协议中定义的基于单比特迭代的scramble和descramble实现方案:以1比特进行迭代,单周期内延时最大的是生成数据的最高位(bit32),需要迭代31次,每次迭代的延时是1个“单比特数据异或” 所需的硬件延时(此处记为T),迭代所需的总延时为31 * T,迭代后生成输出结果还需要1个“单比特数据异或”的延时,因此生成最高比特结果共耗时 32 * T,这也是本方案单周期数据生成的总延时。
对于本发明中提出的基于数据位宽展开的scramble和descramble实现方案:
根据2.2中单步迭代的方法,迭代1到32次得到对应的展开式并进行冗余项消除。
1)其中迭代32次的展开式用于计算下一个周期的lfsr,消除冗余项后的结果如下:
D0(32) = D3(0) ^ D22(0) ^ D11(0) ^ D21(0) ^ D20(0) ^ D13(0) ^ D18(0)^ D16(0) ^ D1(0) ^ D2(0) ^D14(0);
D1(32) = D3(0) ^ D22(0) ^ D21(0) ^ D0(0) ^ D4(0) ^ D12(0) ^ D15(0) ^D17(0) ^ D19(0) ^ D2(0) ^ D14(0);
D2(32) = D11(0) ^ D5(0) ^ D21(0) ^ D0(0) ^ D4(0) ^ D15(0) ^ D2(0) ^D14(0);
D3(32) = D3(0) ^ D22(0) ^ D6(0) ^ D5(0) ^ D16(0) ^ D12(0) ^ D1(0) ^D15(0);
D4(32) = D6(0) ^ D13(0) ^ D0(0) ^ D7(0) ^ D4(0) ^ D16(0) ^ D17(0) ^D2(0);
D5(32) = D22(0) ^ D11(0) ^ D5(0) ^ D20(0) ^ D21(0) ^ D13(0) ^ D8(0)^ D7(0) ^ D16(0) ^ D17(0) ^D2(0);
D6(32) = D3(0) ^ D22(0) ^ D6(0) ^ D21(0) ^ D18(0) ^ D0(0) ^ D8(0) ^D9(0) ^ D12(0) ^ D17(0) ^D14(0);
D7(32) = D22(0) ^ D13(0) ^ D18(0) ^ D0(0) ^ D7(0) ^ D4(0) ^ D9(0) ^D1(0) ^ D15(0) ^ D19(0) ^D10(0);
D8(32) = D3(0) ^ D22(0) ^ D5(0) ^ D21(0) ^ D13(0) ^ D18(0) ^ D0(0) ^D8(0) ^ D19(0) ^ D10(0);
D9(32) = D22(0) ^ D6(0) ^ D11(0) ^ D20(0) ^ D0(0) ^ D4(0) ^ D9(0) ^D1(0) ^ D19(0) ^ D14(0);
D10(32) = D5(0) ^ D20(0) ^ D21(0) ^ D7(0) ^ D12(0) ^ D15(0) ^ D1(0)^ D2(0) ^ D10(0);
D11(32) = D3(0) ^ D22(0) ^ D6(0) ^ D11(0) ^ D21(0) ^ D13(0) ^ D8(0)^ D16(0) ^ D2(0);
D12(32) = D3(0) ^ D22(0) ^ D0(0) ^ D7(0) ^ D4(0) ^ D9(0) ^ D12(0) ^D17(0) ^ D14(0);
D13(32) = D5(0) ^ D13(0) ^ D18(0) ^ D0(0) ^ D8(0) ^ D4(0) ^ D1(0) ^D15(0) ^ D10(0);
D14(32) = D6(0) ^ D11(0) ^ D5(0) ^ D0(0) ^ D16(0) ^ D9(0) ^ D1(0) ^D19(0) ^ D2(0) ^ D14(0);
D15(32) = D3(0) ^ D6(0) ^ D20(0) ^ D0(0) ^ D7(0) ^ D12(0) ^ D1(0) ^D15(0) ^ D17(0) ^ D2(0) ^ D10(0);
D16(32) = D22(0) ^ D20(0) ^ D8(0) ^ D7(0) ^ D4(0) ^ D14(0);
D17(32) = D5(0) ^ D21(0) ^ D8(0) ^ D9(0) ^ D15(0);
D18(32) = D22(0) ^ D6(0) ^ D0(0) ^ D16(0) ^ D9(0) ^ D10(0);
D19(32) = D11(0) ^ D0(0) ^ D7(0) ^ D1(0) ^ D17(0) ^ D10(0);
D20(32) = D11(0) ^ D18(0) ^ D8(0) ^ D12(0) ^ D1(0) ^ D2(0);
D21(32) = D22(0) ^ D11(0) ^ D20(0) ^ D21(0) ^ D18(0) ^ D0(0) ^ D16(0) ^ D9(0) ^ D12(0) ^ D1(0)^ D19(0) ^ D14(0);
D22(32) = D22(0) ^ D21(0) ^ D20(0) ^ D13(0) ^ D0(0) ^ D12(0) ^ D1(0)^ D15(0) ^ D17(0) ^ D19(0) ^ D2(0) ^ D10(0).
其中最长的延时为D21(32)和D22(32)的11个“单比特数据异或” 所需的硬件延时(此处记为T),即11*T。
2)Scramble/descramble数据结果生成部分,最大的延时为迭代31次后再和输入数据的data_in的最高位D31进行异或后的输出结果,其中迭代31次展开消去冗余项后最大的延时也为11*T,加上和D31异或的延时T,产生data_out的最大的延时为11*T+1*T = 12 *T;
因此在32位宽的情况下scramble/descramble按位宽展开的总延时去1)和2)中较大的,即 12* T。
在图2中,所有延时数据的单位均为“单比特数据异或” 所需的硬件延时。根据常用的不同数据位宽对USB3.1和PCI-Express3.0协议中定义的基于单比特迭代的scramble和descramble实现方案与本发明中提出的基于数据位宽展开的scramble和descramble实现方案完成单周期数据运算所需的硬件延时进行了比较。从图2中可以看出,本发明的基于数据位宽展开方法所需的硬件延时大大低于现有技术的单比特迭代所需的硬件延时。本发明的实现是使用硬件描述语言,依据USB3.1和PCI-Express3.0协议以及本发明中描述的技术方案进行实现,实现完成后可通过仿真,综合或者FPGA进行验证。
本领域的技术人员容易理解,以上所述仅为发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于数据位宽展开的scramble与descramble硬件实现方法,假定数据位宽为N,其中N为任何正整数,且N≥32,所述方法包括:
将输入数据的最低位与移位寄存器的最高位进行异或得到输出数据的最低位;
根据多项式G(X) =X23 + X21 + X16 + X8 + X5 + X2 + 1对所述移位寄存器进行迭代和展开,直至算出迭代1~N次后移位寄存器的值,然后根据a^a^b=b消去展开式中相同的项,a,b为2进制变量,其中单步算法为:
D0(n+1) = D22(n);
D1(n+1) = D0(n);
D2(n+1) = D1(n) ^ D22(n);
D3(n+1) = D2(n);
D4(n+1) = D3(n);
D5(n+1) = D4(n) ^ D22(n);
D6(n+1) = D5(n);
D7(n+1) = D6(n);
D8(n+1) = D7(n) ^ D22(n);
D9(n+1) = D8(n);
D10(n+1) = D9(n);
D11(n+1) = D10(n);
D12(n+1) = D11(n);
D13(n+1) = D12(n);
D14(n+1) = D13(n);
D15(n+1) = D14(n);
D16(n+1) = D15(n) ^ D22(n);
D17(n+1) = D16(n);
D18(n+1) = D17(n);
D19(n+1) = D18(n);
D20(n+1) = D19(n);
D21(n+1) = D20(n) ^ D22(n);
D22(n+1) = D21(n);
其中,符号“^”表示单比特数据异或,n代表n次迭代完后的所述移位寄存器的值,n + 1代表n + 1次迭代完后的所述移位寄存器的值;
将所述输入数据的第1到N-1位分别与根据上述单步算法迭代1~N-1次并经过消去展开式中相同的项的所述移位寄存器的最高位进行异或,得到所述输出数据的第1到N-1位。
2.根据权利要求1所述的基于数据位宽展开的scramble与descramble硬件实现方法,其中所述移位寄存器为线性反馈移位寄存器。
3. 根据权利要求1所述的基于数据位宽展开的scramble与descramble硬件实现方法,所述方法适用于所有其中scramble和descramble多项式为G(X) = X23 + X21 + X16 + X8 +X5 + X2 + 1的USB协议。
CN202010278422.0A 2020-04-10 2020-04-10 一种基于数据位宽展开的scramble与descramble硬件实现方法 Active CN111400232B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010278422.0A CN111400232B (zh) 2020-04-10 2020-04-10 一种基于数据位宽展开的scramble与descramble硬件实现方法
PCT/CN2021/074376 WO2021203808A1 (zh) 2020-04-10 2021-01-29 一种基于数据位宽展开的scramble与descramble硬件实现方法
US17/916,667 US11748295B2 (en) 2020-04-10 2021-01-29 Scramble and descramble hardware implementation method based on data bit width expansion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010278422.0A CN111400232B (zh) 2020-04-10 2020-04-10 一种基于数据位宽展开的scramble与descramble硬件实现方法

Publications (2)

Publication Number Publication Date
CN111400232A CN111400232A (zh) 2020-07-10
CN111400232B true CN111400232B (zh) 2024-01-16

Family

ID=71433069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010278422.0A Active CN111400232B (zh) 2020-04-10 2020-04-10 一种基于数据位宽展开的scramble与descramble硬件实现方法

Country Status (3)

Country Link
US (1) US11748295B2 (zh)
CN (1) CN111400232B (zh)
WO (1) WO2021203808A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400232B (zh) 2020-04-10 2024-01-16 芯启源(上海)半导体科技有限公司 一种基于数据位宽展开的scramble与descramble硬件实现方法
CN114242138B (zh) * 2021-12-01 2024-06-04 海光信息技术股份有限公司 一种延时控制器、内存控制器以及时序控制方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4643978B2 (ja) * 2004-12-01 2011-03-02 ルネサスエレクトロニクス株式会社 スクランブル回路、デ・スクランブル回路及び方法、並びにディスク装置
CN100517214C (zh) * 2007-05-30 2009-07-22 北京天碁科技有限公司 一种实现二进制多项式运算的硬件配置方法及硬件***
CN101771533B (zh) * 2008-12-30 2012-10-31 上海华虹集成电路有限责任公司 基于线性反馈移位寄存器的序列流密码算法硬件实现方法
CA2664620A1 (en) * 2009-05-07 2009-07-20 Avalon Microelectronics, Inc. Pseudo-random bit sequence generator
US8949493B1 (en) * 2010-07-30 2015-02-03 Altera Corporation Configurable multi-lane scrambler for flexible protocol support
DE112013007751B3 (de) * 2012-10-22 2023-01-12 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
CN103777904B (zh) * 2014-02-12 2017-07-21 威盛电子股份有限公司 数据储存装置以及数据加扰与解扰方法
US9898611B2 (en) * 2015-03-30 2018-02-20 Rockwell Automation Technologies, Inc. Method and apparatus for scrambling a high speed data transmission
US9965370B2 (en) * 2015-12-24 2018-05-08 Intel Corporation Automated detection of high performance interconnect coupling
CN107506326B (zh) * 2017-07-05 2019-03-15 芯启源(南京)半导体科技有限公司 数据传输加扰和解扰电路、发送和接收装置及***
CN111400232B (zh) * 2020-04-10 2024-01-16 芯启源(上海)半导体科技有限公司 一种基于数据位宽展开的scramble与descramble硬件实现方法

Also Published As

Publication number Publication date
US11748295B2 (en) 2023-09-05
CN111400232A (zh) 2020-07-10
US20230131594A1 (en) 2023-04-27
WO2021203808A1 (zh) 2021-10-14

Similar Documents

Publication Publication Date Title
CN111400232B (zh) 一种基于数据位宽展开的scramble与descramble硬件实现方法
US9071275B2 (en) Method and device for implementing cyclic redundancy check codes
US4463342A (en) Method and means for carry-over control in the high order to low order pairwise combining of digits of a decodable set of relatively shifted finite number strings
US20060093147A1 (en) Apparatus and method for scaramling/de-scrambling 16-bit data at PCT express protocol
CN112214349B (zh) 一种数据循环冗余校验装置和方法
Parhi Eliminating the fanout bottleneck in parallel long BCH encoders
Ayinala et al. Efficient parallel VLSI architecture for linear feedback shift registers
US7886210B2 (en) Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs
Ji et al. Fast parallel CRC algorithm and implementation on a configurable processor
EP0535357A2 (en) Synchronous system for parallel data scrambling
US10715360B2 (en) Data scrambling method and scrambling apparatus
WO2022141732A1 (zh) 基于usb3.2协议16比特循环冗余校验的硬件实现方法
CN107612891B (zh) 一种数据压缩加密电路
CN112148661A (zh) 数据处理方法和电子设备
CN117014017A (zh) 一种基于高位宽数据计算多项式除法余数的crc计算方法
US6380873B1 (en) Method for reducing radio frequency emissions on high-speed serial buses
CN116132049A (zh) 数据加密的方法、装置、设备及存储介质
CN101262296A (zh) 一种用于wcdma***的扰码发生器及其实现方法
KR100853391B1 (ko) Ccsds pn 고속처리 방법
Yoon et al. Multi-processor based CRC computation scheme for high-speed wireless LAN design
Alnajjar et al. A comprehensive guide for CRC hardware implementation
Babu et al. Implementation of data compression using Huffman coding
Islam et al. Analysis of Verilog Modelling and Simulation of Developed 16-bit and 23-bit LFSR Based Data Scrambler and Descrambler for 2.5 GT/s, 5GT/s and 8GT/s Data Rate with Minimum Glitch
CN110943955B (zh) 一种并行扰码器的生成方法
EP1125410A1 (en) Method and apparatus for reducing emi emissions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220222

Address after: 201203 Building 1, No. 1388, Zhangdong Road, Pudong New Area, Shanghai

Applicant after: XINQIYUAN (SHANGHAI) SEMICONDUCTOR TECHNOLOGY Co.,Ltd.

Address before: 313099 room 1206-3, building 3, No. 1366, Hongfeng Road, Huzhou City, Zhejiang Province

Applicant before: CORIGINE ELECTRONIC TECHNOLOGY CO.,LTD.

GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Hardware Implementation Method for Scramble and Descramble Based on Data Bitwidth Unfolding

Granted publication date: 20240116

Pledgee: Ningbo Yinsheng Investment Co.,Ltd.

Pledgor: XINQIYUAN (SHANGHAI) SEMICONDUCTOR TECHNOLOGY Co.,Ltd.

Registration number: Y2024980014581