CN101496291B - Lfsr仿真 - Google Patents

Lfsr仿真 Download PDF

Info

Publication number
CN101496291B
CN101496291B CN200780027084.6A CN200780027084A CN101496291B CN 101496291 B CN101496291 B CN 101496291B CN 200780027084 A CN200780027084 A CN 200780027084A CN 101496291 B CN101496291 B CN 101496291B
Authority
CN
China
Prior art keywords
lfsr
state vector
state
output
matrix
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.)
Expired - Fee Related
Application number
CN200780027084.6A
Other languages
English (en)
Other versions
CN101496291A (zh
Inventor
D·E·阿尔特
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.)
MStar Software R&D Shenzhen Ltd
MStar France SAS
MStar Semiconductor Inc Cayman Islands
MStar Semiconductor Inc Taiwan
Original Assignee
MStar Software R&D Shenzhen Ltd
MStar France SAS
MStar Semiconductor Inc Cayman Islands
MStar Semiconductor Inc Taiwan
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 MStar Software R&D Shenzhen Ltd, MStar France SAS, MStar Semiconductor Inc Cayman Islands, MStar Semiconductor Inc Taiwan filed Critical MStar Software R&D Shenzhen Ltd
Publication of CN101496291A publication Critical patent/CN101496291A/zh
Application granted granted Critical
Publication of CN101496291B publication Critical patent/CN101496291B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/583Serial finite field implementation, i.e. serial implementation of finite field arithmetic, generating one new bit or trit per step, e.g. using an LFSR or several independent LFSRs; also includes PRNGs with parallel operation between LFSR and outputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的装置,其中LFSR的状态可由具有描述LFSR的一个输入或多个输入——如果有的话、LFSR的内容、LFSR的一个输出或多个输出——如果有的话——的部分的状态向量来描述,其中可将该状态向量乘以时移矩阵以对由向量指定的状态进行时移,并且其中该装置包括:将状态向量的第一实例与矩阵相乘以产生相对于第一实例时移的状态向量的第二实例,且其中状态向量的输入和输出部分中的一者或两者可被调节维数以分别容纳在由矩阵指定的时移期间在不同时间到达的输入和在时移期间在不同时间产生的输出。

Description

LFSR仿真
扰码发生器以及CRC发生器和校验器传统上是在如线性反馈移位寄存器(LFSR)的硬件中实现的。然而,此类实现的每一位要求一个时钟周期。
有时候期望更快速地处理数据,这可通过利用LFSR可被数学地表示成传递矩阵——定义成使得NextState(下一状态)=A*CurrentState(当前状态)(模2)——这个事实来完成,其中NextState和CurrentState是表示LFSR的状态的列向量。这样,就能够仿真LFSR。
注释:传递矩阵中的模2意味着GF(2)上进行运算(即,全部皆是一位并且可仅具有值0和1),但是这种办法当然不限于GF(2)。然而,这种约定通篇用在本文献中,因为在实际系统中常常使用GF(2)。
对于CRC,或者其下一状态和/或输出依赖于数据输入的任意LFSR,NextState和CurrentState具有除表示LFSR状态的元素之外的用于表示数据输入的额外元素。
可通过将A升至第n次幂来使LFSR在单个时钟周期中步进n次:
NextStaten=An*CurrentState(模2)。
根据一个方面,本发明提供了一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的装置,其中LFSR的状态可由具有描述LFSR的一个输入或多个输入——如果有的话、LFSR的内容以及LFSR的一个输出或多个输出——如果有的话——等部分的状态向量来描述,其中可将该状态向量乘以时移矩阵以对由向量指定的状态进行时移,并且其中该装置包括:用于将状态向量的第一实例与矩阵相乘以产生相对于该第一实例时移的状态向量的第二实例的装置,且其中状态向量的输入和输出部分中的一者或两者可被调节维数(dimensioned)以分别容纳在由矩阵指定的时移期间在不同时间到达的输入和在时移期间在不同时间产生的输出。
本发明还包括一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的方法,其中LFSR的状态可由具有描述LFSR的一个输入或多个输入——如果有的话、LFSR的内容以及LFSR的一个输出或多个输出——如果有的话——等部分的状态向量来描述,其中可将该状态向量乘以时移矩阵以对由向量指定的状态进行时移,并且其中该方法包括:将状态向量的第一实例与矩阵相乘以产生相对于该第一实例时移的状态向量的第二实例,且其中状态向量的输入和输出部分中的一者或两者可被调节维数以分别容纳在由矩阵指定的时移期间在不同时间到达的输入和在时移期间在不同时间产生的输出。
根据另一方面,本发明提供了一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的装置,其中LFSR的状态可由具有描述LFSR的一个输入或多个输入——如果有的话、LFSR的内容以及LFSR的一个输出或多个输出——如果有的话——等部分的状态向量来描述,其中可将该状态向量乘以时移矩阵以对由向量指定的状态进行时移,并且其中该装置包括:用于将状态向量的第一实例与矩阵相乘以产生相对于该第一实例时移的状态向量的第二实例的装置,其中乘法仅扩展到矩阵中描述状态向量的第一实例的LFSR内容和输入部分对第二实例的LFSR内容和输出部分的影响的那些部分。
本发明还提供了一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的方法,其中LFSR的状态可由具有描述LFSR的一个输入或多个输入——如果有的话、LFSR的内容以及LFSR的一个输出或多个输出——如果有的话——等部分的状态向量来描述,其中可将该状态向量乘以时移矩阵以对由向量指定的状态进行时移,并且其中该方法包括:通过将状态向量的第一实例与矩阵相乘对状态向量的第一实例进行时移以产生状态向量的第二实例,所述乘法仅扩展到矩阵中描述状态向量的第一实例的LFSR内容和输入部分对第二实例的LSFR内容和输出部分的影响的那些部分。
因此,状态向量可以被时移而无需执行时移矩阵中所有部分对状态向量的影响的计算。另外,无需为了存储状态向量的第一实例的输出部分或状态向量的第二实例的输入部分的目的而将存储与装置相关联,结果减小所需的数据存储量是可能的。
在某些实施例中,由矩阵指定的时移扩展到多个LFSR周期。在其它实施例中,时移是一个LFSR周期。在某些实施例中,可提供不同版本的矩阵,这些矩阵各自指定不同成程度的时移以使得期望长度的时移可更容易达成。
在某些实施例中,LFSR是扰码发生器。在其它实施例中,LFSR是CRC校验器。在另外实施例中,LFSR是CRC发生器。当然,为本领域技术人员所显见的是,由本发明仿真的LFSR可具有其它应用。
在某些实施例中,状态向量的LFSR内容与输出部分之间有重叠。按照这种情况,可缩短状态向量以消去重复的重叠,例如,通过从状态向量的输出部分去除已在状态向量的LFSR内容部分中存在的那部分。在某些实施例中,LFSR的仿真可被布置成使状态向量的LFSR内容与输出部分之间的重叠最大化,以便减少执行矩阵乘法所需的计算的量。
在这点上,对LFSR及其属性的某些一般讨论是值得的。
一般的LFSR将具有若干状态位(即,描述LFSR的内容的位),以及一个或多个数据输入位和一个或多个数据输出位的至少之一。下一状态和数据输出将依赖于当前状态和数据输入。(LFSR常常具有或者单个数据输入位或者单个数据输出位,但并非兼具两者。然而,本发明不限于这些较为简单的情形。)
对于具有m个状态位、p个数据输入位、以及q个数据输出位的n步进LFSR,必须创建传递方阵A。其维数将是概念的状态向量V的维数,并且其将表示LFSR的单个步进所需的变换。对于完全一般的情形,此向量将包括用于每个状态位的一个元素,用于每个输入位的n个元素(以允许一次处理n组输入)、以及用于每个输出位的n个元素(以允许一次产生n组输出位),从而得到总向量长度m+pn+qn。(对于单输入或输出位的更常见情形,向量长度为m+n。如果LFSR是具有产生移位输入的反馈且具有与该移位输入相同的单个输出的简单移位寄存器,则根据本发明的特征,与状态和输出相对应的向量元素可被共享,从而将向量长度减小到max(m,n)。)
状态向量V可被分解成三个子向量,它们各自对应于以下位类型之一:输入(具有pn个元素的Vi)、状态(具有m个元素的Vs)以及输出(具有qn个元素的Vo)。单步进传递矩阵A将由此具有九个部分,这些部分各自指示一种位类型对一种位类型的下一状态的影响。(在前一段末尾讨论的具有相等的反馈和输出的简单移位寄存器的情形将导致Vs与Vo的部分或完全重叠。其它情形也可导致Vs与Vo的部分或完全重叠。)矩阵A的一般形式在图14中示出。在该附图中,将状态向量V的初始版本10乘以A矩阵12以产生V的最终版本14,后者相对于初始版本10提前一个周期。初始版本10和最终版本14的Vi、Vs和Vo子向量被示出。A矩阵12被描绘为分成以上提及的九个部分(这些部分被标记为F-N),这些部分各自被调节维数以使得最终版本14的子向量为:
V’i=F·Vi+G·Vs+H·Vo
V’s=I·Vi+J·Vs+K·Vo
V’o=L·Vi+M·Vs+N·Vo
其中Vi、Vs、Vo是初始版本10的子向量,而V’i,V’s,V’o是最终版本14的子向量。
本发明人已领会到n步进传递矩阵B=An(模2)的两个有趣的特性:下一状态的输入位部分(V’i)将为全零,而当前状态的输出位部分(Vo)将不影响下一状态的任何部分。这意味着,n步进LFSR仅需要存储向量中与LFSR内容(Vs)相对应的部分的元素,这与原始单步进LFSR所需的存储元素的数目相同。这假定分别在领先或跟随LFSR仿真器的阶段中为LFSR仿真器的n个输入和n个输出周期提供存储。换言之,可能需要某些外部存储元件以允许所有pn个输入位被同时呈现,但是这些通常无论如何都是必需的,并且相似的,可能需要某些外部存储以同时接受所有qn个输出位,但是这些通常也是无论如何都必需的。
概括地,本发明在某些实施例中实现了n步进传递函数V’=BV,其中V是当前状态,而V’是下一状态,如下所示。首先通过将Vi设为pn个输入位,将Vs设为存储的状态,以及将Vo设为qn个任意位来组合Vo接着,从此V计算出V’,注意:Vo不影响V’,且V’i全零,无论V如何皆如此(因此Vo和V’i无需在物理上存在)。最后,将V’分割成数个部分。忽略V’i,V’s是存储状态的下一值,而V’o是qn个输出位。因此,可使LFSR仿真器在单个时钟内进行n步,包括处理输入位和生成与这些步相关联的输出位,而无需任何附加存储元件,但是反馈逻辑更复杂。
如先前提及的,有时期望支持两个或更多不同的步进大小(例如,当总位数不是n倍数时进行CRC的最后几位的处理;这也可通过向数据预附加零来处理,但是并非总是实用的)。这可通过将一个或多个附加传递矩阵与B——每一个是将A升至适当的幂(模2)——复用来进行的。对于C=Ak(模2)的情形中,k<n,仅Vi的最后pk个位是相关的,且仅V’o的前qk位是有效的。根据传递矩阵C,这将是显而易见的:Vi的不相关位将不影响V’s或V’o,并且V’o的无效位将依赖于Vo
在某些情形中,期望重新定义输出以最大化Vo和Vs的重叠。例如,在LFSR为具有作为状态位的组合的移位输入和作为第一状态元素的输出(即,移位输入被延迟一个时钟)的纯移位寄存器的扰码发生器中,最大状态和输出共享仅在输出被重新定义成与状态移位输入相同的情况下才是可能的。为了使其产生与原始相同的扰码,初始LFSR状态必须被改变成使得第二状态等于所定义的初始状态。这种经修改的初始值通常易于确定。
对于较大的n,直接计算B=An(模2)是昂贵的。这不是个难题,因为B可被预先计算。此外,计算可被更有效率地进行,例如,通过将An表达为两个升至不同幂的A的乘积,或者通过将An递归地定义为A·An-1——对于奇数n,(An/2)2——对于偶数n,对n≤2直接计算An
以下是图14中展示的单步进传递矩阵12的九个部分的每一个的内容的简述。这些将提供足以使得矩阵能够以与本发明相一致的形式来创建的信息。
·部分F描述Vi对V’i的影响,或即速记符号Vi→V’i:偏移单位矩阵,用于实现纯移位(即,第一行和最后一列为0,以及剩余为单位矩阵),针对与Vi位的p个集合之一以及相同的V’i位的集合相对应的每个子部分,其余为零。
·部分G描述Vs对V’i的影响,或即速记符号Vs→V’1:全零。
·部分H描述Vo对V’i的影响,或即速记符号Vo→V’i:全零。
·部分I描述Vi对V’s的影响,或即速记符号Vi→V’s:除与最后p个Vi位的集合相对应的元素之外为零,这指示输入如何影响状态。
·部分J描述Vs对V’s的影响,或即速记符号Vs→V’s:指示当前状态如何影响下一状态的值。
·部分K描述Vo对V’s的影响,或即速记符号Vo→V’s:全零。
·部分L描述Vi对V’o的影响,或即速记符号Vi→V’o:除与最后的p个Vi位的集合以及前q个V’o位的集合相对应的元素之外其余为零,这指示输入如何影响输出。
·部分M描述Vs对V’o的影响,或即速记符号Vs→V’o:除与前p个V’o位的集合相对应的元素之外为零,这指示状态如何影响输出。
·部分N描述Vo对Vo的影响,或即速记符号Vo→V’o:偏移单位矩阵,用于实现纯移位,针对与Vo位的q个集合之一以及相同的V’o位的集合相对应的每个子部分,其余为零。
尽管在本申请中主要在方法和装置方面描述本发明,但是应当理解,本发明可容易地实现为用于通过诸如DSP的合适数据处理资源执行的程序代码。此程序代码可被存储在诸如ROM等任何适当的载体中。
仅作为示例,现在参照附图描述本发明的某些实施例,在附图中:
图1示出了布置成CRC校验器的LFSR;
图2示出了用于图1的CRC校验器的单步进传递矩阵;
图3示出了用于图1的CRC校验器的32步进传递矩阵;
图4示出了用于仿真其中提供LFSR的32周期步进的CRC校验器的装置;
图5示出了用于仿真布置成CRC校验器的LFSR的装置,其中可选择对LFSR的单周期或32周期移位。
图6示出了布置成扰码发生器的LFSR;
图7示出了布置成产生与图6中所示的发生器相同的扰码的扰码发生器的另一LFSR;
图8示出了用于图7的扰码发生器的单周期传递矩阵;
图9示出了用于图7的扰码发生器的32周期传递矩阵;
图10示出了用于仿真图7的扰码发生器的装置,其中提供了至LFSR状态的32周期步进。
图11示意性示出了现有技术LFSR;
图12示出了根据本发明的一般n步进LFSR;
图13示出了根据本发明的实施例的具有共享输出和LFSR内容状态向量部分的一般n步进LFSR;以及
图14示出了在LFSR仿真中应用于的状态向量的时移矩阵的一般形式。
本发明的一个实施例是如图1中所示的每次可处理32个数据位的CRC发生器和校验器。
图1是用于发生器多项式D24+D23+D6+D5+D+1的CRC校验器和发生器硬件的传统基于LFSR的实现。(这是用于3GPP的24位CRC。)方框标记的‘D’是触发器,而圆圈标记的‘+’是模2加法器(即,异或门)。
图1是CRC发生器和校验器的传统实现。其初始状态为全零。每次一个位地呈现数据,作为Din(D输入)。在已呈现了所有数据之后,状态包含CRC。如果校正CRC位在数据之后呈现,则最终状态将为全零。
根据此实现,图2的传递矩阵ACRC可如先前黑点列表中描述地来生成。图2是图1的CRC发生器多项式的传递矩阵ACRC,且具有56行和56列以使得其可被用于创建一次处理32个输入位的传递矩阵。此示例的子向量维数为:pn=1·32=32——对于Vi,m=24——对于Vs,以及qn=0·32=0——对于Vo。ACRC的四个部分的每一个都是根据与之有关的当前和下一状态的子向量来标示的。没有关于Vi→V’o、Vs→V’o、Vo→V’i、Vo→V’s或Vo→V’o的部分,因为CRC发生器没有输出位。可例如用简单的Matlab脚本从CRC发生器多项式自动生成ACRC
为了制作可一次处理n=32个输入位的CRC发生器,ACRC必须升至幂n=32,从而产生图3的矩阵BCRC。其四个部分也被标示为相关子向量。两个部分(3-1)和(3-2)为全零,这意味着V’i总是全零,因此不需要存储元件或计算。部分(3-3)和(3-4)示出了n=32个输入位(Vi)和m=24个LFSR状态位(Vs)如何影响m=24个下一LFSR状态位(V’s)。Vs需要m=24个存储元件——传统实现使用相同的数目。
图4示出了使用BCRC来一次处理32个输入位的CRC电路。输入数据被并行地呈现,并且在每个时钟出现32个新位。
图5示出了选择性地使用ACRC和BCRC以一次处理或者1个或者32个输入位的CRC电路。输入数据仍被并行地呈现,但是在1位模式中,仅第一位影响LFSR状态(与ACRC的子矩阵(2-3)的非零列相对应的输入位——参看图2)。(对于典型实现,在1位模式中,外部移位寄存器将在恰当位置呈现当前位,并且其余的32位输入被忽略但是用将来的位填充,或者在没有将来的位时为用任意值填充。)在32位模式中,在每个时钟出现32个新位。在优选实施例中,将使用32位模式直至剩下少于32个输入位。1位模式随后将被使用0次至31次之间(包括0和31)的次数以完成CRC计算。在此过程之后,LFSR状态将包含计算出的CRC。
图4和图5中的矩阵乘法可用VHDL或Verilog来容易且简明地实现。在所有情形中忽略V’i这个事实允许省略关于乘法中该部分的逻辑。
本发明的另一实施例是一次产生32个码位的扰码发生器。
在图6中示出了特定扰码发生器的传统的基于LFSR的实现。在如图所述地初始化存储元件的情况下,从最左侧的存储元件中的初始‘1’开始在Dout(D输出)上产生指定扰码。(这产生用于3GPP HSDPA的位扰码)。
当LFSR存储元件也是输出值的移位寄存器时,更有效地实现本发明是可能的。图7已被修改成如此实现,同时产生与图6相同的扰码输出。通过观察,可容易地看到,对于给定起始状态,图6和图7产生相同的状态序列,但是图6的输出相对于图7的示出延迟一个时钟。由于对于扰码发生器,仅输出(并非状态)是重要的,因此图7中的初始值已被改变以使得其状态序列领先图6的状态序列一个周期,由此使得两种实现产生相同的输出序列。(在原始版本中,仅最后的15个输出可从存储元件中得到。)注意:由图6和图7的码发生器产生的状态序列将彼此偏离一个时钟。这并非重要的偏差,因为将仅使用输出序列,并且它们是同样的。
图8的传递矩阵ASCR是根据先前给出的黑点列表从图7的电路导出的。此示例的子向量维数为:pn=0·32=0——对应于Vi,m=16——对应于Vs,以及qn=1·32=32——对应于Vo。由于LFSR状态也为最后的16个输出位,因此Vo的前半部(Vo(1∶16))与Vs相等,并且由此仅Vo的后半部(Vo(17∶32))被明确地包括在矩阵中。ASC的四个部分的每一个是根据与之有关的当前和下一状态的子向量来标示的。没有部分关于Vi→V’i、Vi→V’s、Vi→V’o、Vs→V’i或Vo→V’i,因为扰码发生器没有输入位。
为了制作一次可产生n=32个输出位的扰码发生器,ASCR必须被升至幂n=32,从而产生图9的矩阵BSCR。其四个部分也用相关子向量来标记。两个部分(9-2)和(9-4)为全零,这意味着Vo不对V’s或V’o起影响,因此不需要存储元件或计算。部分(9-1)和(9-3)示出了m=16个LFSR状态位(Vs)如何影响m=16个接下来的LFSR状态位(V’s)以及n=32个接下来的输出位(V’o(1∶16)=V’s和V’o(17∶32))。Vs要求m=16个存储元件——传统实现使用相同的数目。
图10示出了使用BSCR来一次产生32个码位的扰码发生器电路。在一个时钟上,在输出处出现32个新扰码位。如果所需的扰码位的总数不是32的倍数,则优选实施例仅忽略最后的几个扰码位。这比在两个或更多发生器矩阵之间进行选择以确切产生所需的位数更有效率。
图10中的矩阵乘法可用VHDL或Verilog来容易且简明地实现。将Vo(17∶32)与0相乘并由此在所有情形中被忽略的这个事实意味着对于乘法的该部分不需要逻辑,并且可省去Vo(17∶32)
在图11中示出了具有m个状态位、p个输入位、以及q个输出位的更一般的传统LFSR。在图12中示出了相对应的多步进实现的电路。传递矩阵B通过将A升至第n次幂(模2)来生成,其中A是根据先前给出的黑点列表从原始LFSR导出的。在B的9个部分中,与Vo、V’i或者两者相关联的5个(Vi→V’i、Vs→V’i、Vo→V’i、Vo→V’s和Vo→V’o)为全零,这允许矩阵乘法的输入Vo和输出V’i被省略。
图12不是完全概况的,因为其不显示共享LFSR状态位和输出数据移位寄存器位的特定情形。这种情形在以上描述并在图13中示出。

Claims (16)

1.一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的装置,其中所述LFSR的状态可由具有描述所述LFSR的一个以上输入、所述LFSR的内容以及所述LFSR的一个以上输出的状态向量来描述,其中可将所述状态向量乘以时移矩阵以对由所述向量指定的状态进行时移,并且其中所述装置包括:
用于将所述状态向量的第一实例与所述矩阵相乘以产生相对于所述第一实例时移的所述状态的第二实例的装置,其中所述状态向量的所述输入和输出部分中的一者或两者被调节维数以分别容纳在由所述矩阵指定的所述时移期间在不同时间到达的输入和在所述时移期间在不同时间产生的输出;以及
移位寄存器,被配置成存储所述用于将所述状态向量的第一实例与所述矩阵相乘以产生相对于所述第一实例时移的所述状态的第二实例的装置的输出,
其中,所述矩阵被分成描述状态矢量的状态和输出部分的初始和最终版本的输入、状态和输出部分之间的转变的各个部分,以及
其中,忽略所述矩阵的不影响所述状态矢量的状态和输出部分的最终版本的那些部分。
2.一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的装置,其中所述LFSR的状态可由具有描述所述LFSR的一个以上输入、所述LFSR的内容以及所述LFSR的一个以上输出的状态向量来描述,其中可将所述状态向量乘以时移矩阵以对由所述向量指定的状态进行时移,并且其中所述装置包括:
用于将所述状态向量的第一实例与所述矩阵相乘以产生相对于所述第一实例时移的所述状态向量的第二实例的装置,其中所述乘法仅扩展到所述矩阵中描述所述状态向量的第一实例的所述LFSR内容和输入部分对第二实例的所述LFSR内容和输出部分的影响的那些部分;以及
移位寄存器,被配置成存储所述用于将所述状态向量的第一实例与所述矩阵相乘以产生相对于所述第一实例时移的所述状态向量的第二实例的装置的输出,
其中,所述矩阵被分成描述状态矢量的状态和输出部分的初始和最终版本的输入、状态和输出部分之间的转变的各个部分,以及
其中,忽略所述矩阵的不影响所述状态矢量的状态和输出部分的最终版本的那些部分。
3.如权利要求1所述的装置,其特征在于,由矩阵指定的时移扩展到所仿真的LFSR的多个周期。
4.如权利要求1所述的装置,其特征在于,所仿真的LFSR是CRC发生器或校验器或者扰码发生器。
5.如权利要求1所述的装置,其特征在于,在所述状态向量的所述LFSR内容与输出部分之间有重叠,并且所述状态向量被缩短以去除重复的重叠。
6.一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的方法,其中所述LFSR的状态可由具有描述所述LFSR的一个以上输入、所述LFSR的内容以及所述LFSR的一个以上输出的状态向量来描述,其中可将所述状态向量乘以时移矩阵以对由所述向量指定的状态进行时移,并且其中所述方法包括:
将所述状态向量的第一实例与所述矩阵相乘以产生相对于所述第一实例时移的所述状态向量的第二实例,且其中所述状态向量的所述输入和输出部分中的一者或两者被调节维数以分别容纳在由所述矩阵指定的时移期间在不同时间到达的输入和在所述时移期间在不同时间产生的输出,
其中,所述矩阵被分成描述状态矢量的状态和输出部分的初始和最终版本的输入、状态和输出部分之间的转变的各个部分,以及
其中,忽略所述矩阵的不影响所述状态矢量的状态和输出部分的最终版本的那些部分。
7.一种用于仿真具有一个或多个输入以及一个或多个输出的至少之一的LFSR的操作的方法,其中所述LFSR的状态可由具有描述所述LFSR的一个以上输入、所述LFSR的内容以及所述LFSR的一个以上输出的状态向量来描述,其中可将所述状态向量乘以时移矩阵以对由所述向量指定的状态进行时移,并且其中所述方法包括:
通过将所述状态向量的第一实例与所述矩阵相乘对所述状态向量的所述第一实例进行时移以产生所述状态向量的第二实例,所述乘法仅扩展到矩阵中描述所述状态向量的所述第一实例的LFSR内容和输入部分对所述第二实例的所述LFSR内容和输出部分的影响的那些部分,
其中,所述矩阵被分成描述状态矢量的状态和输出部分的初始和最终版本的输入、状态和输出部分之间的转变的各个部分,以及
其中,忽略所述矩阵的不影响所述状态矢量的状态和输出部分的最终版本的那些部分。
8.如权利要求6所述的方法,其特征在于,由矩阵指定的时移扩展到所仿真的LFSR的多个周期。
9.如权利要求6所述的方法,其特征在于,所仿真的LFSR是CRC发生器或校验器或者扰码发生器。
10.如权利要求6所述的方法,其特征在于,在所述状态向量的所述LFSR内容与输出部分之间有重叠,并且所述状态向量被缩短以去除重复的重叠。
11.如权利要求2所述的装置,其特征在于,由矩阵指定的时移扩展到所仿真的LFSR的多个周期。
12.如权利要求2所述的装置,其特征在于,所仿真的LFSR是CRC发生器或校验器或者扰码发生器。
13.如权利要求2所述的装置,其特征在于,在所述状态向量的所述LFSR内容与输出部分之间有重叠,并且所述状态向量被缩短以去除重复的重叠。
14.如权利要求7所述的方法,其特征在于,由矩阵指定的时移扩展到所仿真的LFSR的多个周期。
15.如权利要求7所述的方法,其特征在于,所仿真的LFSR是CRC发生器或校验器或者扰码发生器。
16.如权利要求7所述的方法,其特征在于,在所述状态向量的所述LFSR内容与输出部分之间有重叠,并且所述状态向量被缩短以去除重复的重叠。
CN200780027084.6A 2006-07-17 2007-07-16 Lfsr仿真 Expired - Fee Related CN101496291B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0614157.6 2006-07-17
GBGB0614157.6A GB0614157D0 (en) 2006-07-17 2006-07-17 LFSR emulation
PCT/GB2007/002681 WO2008009912A1 (en) 2006-07-17 2007-07-16 Lfsr emulation

Publications (2)

Publication Number Publication Date
CN101496291A CN101496291A (zh) 2009-07-29
CN101496291B true CN101496291B (zh) 2014-12-10

Family

ID=36955776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780027084.6A Expired - Fee Related CN101496291B (zh) 2006-07-17 2007-07-16 Lfsr仿真

Country Status (5)

Country Link
US (1) US8909510B2 (zh)
EP (1) EP2041878A1 (zh)
CN (1) CN101496291B (zh)
GB (1) GB0614157D0 (zh)
WO (1) WO2008009912A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI545912B (zh) * 2009-10-01 2016-08-11 內數位專利控股公司 上鏈控制資料傳輸
CN102812658B (zh) 2010-01-08 2015-12-16 交互数字专利控股公司 针对多个载波的信道状态信息传输的方法及设备
CN104133736A (zh) * 2014-07-29 2014-11-05 江苏宏云技术有限公司 一种矢量crc校验指令的设计方法
US10503477B2 (en) * 2017-12-08 2019-12-10 Exten Technologies, Inc. Galois field pipelined multiplier with polynomial and beta input passing scheme
CN109255434A (zh) * 2018-10-15 2019-01-22 旺微科技(上海)有限公司 一种卷积神经网络中计算资源的调度方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965881A (en) * 1989-09-07 1990-10-23 Northern Telecom Limited Linear feedback shift registers for data scrambling
US5910907A (en) 1997-02-20 1999-06-08 C.K. Chen Shift register based pseudorandom number generator
US6636553B1 (en) 1998-12-29 2003-10-21 Texas Instruments Incorporated Pseudorandom noise generator for WCDMA
US7124156B2 (en) 2003-01-10 2006-10-17 Nec America, Inc. Apparatus and method for immediate non-sequential state transition in a PN code generator
ATE396448T1 (de) * 2003-04-08 2008-06-15 Nxp Bv Konfigurierbares mehrschritt-schieberegister mit linearer rückkopplung
US7181671B2 (en) * 2003-09-23 2007-02-20 Macronix International Co., Ltd. Parallelized CRC calculation method and system
US20060020862A1 (en) * 2004-07-20 2006-01-26 Sung-Ho Kang Apparatus for generating deterministic test pattern using phase shifter

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Fast CRC Update Implementation;Weidong Lu,Stephan Wong;《Delft University of Technology》;20031029;第113-120页 *
Weidong Lu,Stephan Wong.A Fast CRC Update Implementation.《Delft University of Technology》.2003,第113-120页. *

Also Published As

Publication number Publication date
GB0614157D0 (en) 2006-08-23
US20090254333A1 (en) 2009-10-08
CN101496291A (zh) 2009-07-29
WO2008009912A1 (en) 2008-01-24
US8909510B2 (en) 2014-12-09
EP2041878A1 (en) 2009-04-01

Similar Documents

Publication Publication Date Title
EP2144134B1 (en) Method for synthesizing linear finite state machines
Cheng et al. High-speed parallel CRC implementation based on unfolding, pipelining, and retiming
US8401180B2 (en) Non-linear data converter, encoder and decoder
CN101496291B (zh) Lfsr仿真
CN103199873B (zh) 两级分块crc运算的快速配置方法
WO2012016588A1 (en) Bit sequence generator
Hathwalia et al. Design and analysis of a 32 bit linear feedback shift register using VHDL
US9619206B2 (en) Pseudo-random bit sequence generator
Krivenko et al. Many-to-many linear-feedback shift register
Dubrova et al. A BDD-based approach to constructing LFSRs for parallel CRC encoding
US20040054703A1 (en) Method and device for generating a pseudo-random sequence using a discrete logarithm
US9389834B2 (en) Pseudorandom number generating circuit and method
IL147359A (en) High speed PRBS creation technique
US20020184281A1 (en) General finite-field multiplier and method of the same
Sunandha et al. Implementation of modified Dual-CLCG method for pseudorandom bit generation
Al-Haija et al. Implementing variable length Pseudo Random Number Generator (PRNG) with fixed high frequency (1.44 GHZ) via Vertix-7 FPGA family
JP4436830B2 (ja) 構成可能なマルチステップ線形フィードバックシフトレジスタ
US7053800B2 (en) Apparatus and method for generating a code mask
Cagigal et al. Algorithmic determination of linear-feedback in a shift register for pseudorandom binary sequence generation
EP2434650A1 (en) Reed-Solomon encoder with simplified Galois field multipliers
KR100936374B1 (ko) 병렬 구조의 워드기반 fsr 구조 및 그 동작 방법
Jun et al. FPGA-based multi-channel CRC generator implementation
Miclea Speeding-up polynomial multiplication on Virtex FPGAs: Finding the best addition method
Singh et al. LFSR Base Random Number Generator Design in 50nm Technology
CN103235711A (zh) 基于查找表的准循环矩阵高速乘法器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141210

Termination date: 20190716