专利名称:比特序列生成器的制作方法
技术领域:
根据本发明的实施例涉及比特序列(bit sequence)的生成,并且具体地涉及比特序列生成器、用于生成比特序列的方法、以及用于计算状态机的子速率(sub-rate)转换矩阵和子速率初始状态的装置和方法。
背景技术:
在当代技术的广泛应用领域中(例如仅举几个例子,在测试系统、加密、数值仿真和生成噪声信号领域中),需要随机数或伪随机数。在技术上,随机数或伪随机数分别由真正的随机数生成器或伪随机数生成器生成。真正的随机数生成器通常利用物理的、真实的随机源,而伪随机数生成器通常并不利用显示统计真实的随机性的元件。例如仅举几个例子,这种元件的示例为带有乃奎斯特(Nyquist)噪声的电阻器、电隧道元件、或基于带有散粒噪声行为的无线电活跃哀变或闭反馈环的元件,该闭反馈环将反馈信号用作噪声源。与此不同,伪随机数生成器通常并不利用这种真正的随机元件,而是基于确定性行为,使得伪随机数生成器所生成的数不是真正的随机数。因此,每当随机值或伪随机值很重要或被建议用于某应用领域时,真正的随机数生成器或伪随机数生成器被利用。上述例子仅触及可能的应用的表层。与真正的随机数生成器相比,伪随机数生成器通常允许更快地生成数字且通常更容易实现,并且比对应的真正的随机数生成器显示了更低的能量损耗。但是,应当牢记,伪随机数生成器是确定性(deterministic)系统。因此,所生成的数字可基于对伪随机数生成器的内部结构的了解以及对其状态的了解来计算。在某些情形中,这可能是劣势,而在其他情形中(例如,当周期性的行为或再现性在某些应用中可能很重要时),可能是所希望和想要的结果。在数字实现或应用中,伪随机数生成器所生成的伪随机数通常包括数字单元或二进制单元。取决于具体的实现,在这种情形中,伪随机数生成器可提供包括单个比特的序列的伪随机比特流或包括字序列的伪随机字流。每个字通常包括多个比特,例如,4比特、6比特、8比特、16比特、32比特等。换言之,字流的一个字通常包括多个比特,并且字可被看作是随机比特序列的一部分。因此,在许多应用中,伪随机比特流和伪随机字流可由彼此导出。由于电路、计算机系统和其他设备不断提高的运算速度和频率,需要更快地生成带有关于现存位的随机性的足够好的统计分布的伪随机比特流和字流,以例如允许测试应用、数值仿真、加密程序、生成噪声信号或其他数据、信息以及信号的更快的处理。
发明内容
本发明的目的是提供用于生成比特序列的改进的概念,其允许比特序列的比特速率的提闻。
该目的是根据权利要求1所述的比特序列生成器、根据权利要求11所述的用于计算状态机的子速率转换矩阵和子速率初始状态的装置、根据权利要求23所述的用于生成伪随机序列的方法、以及根据权利要求24所述的用于计算状态机的子速率转换矩阵和子速率初始状态的方法所实现的。本发明的实施例提供了一种用于生成由生成函数和该生成函数的初始状态定义的比特序列的比特序列生成器,其包括多个状态机和复用器。多个状态机中的每个状态机生成时间交织比特序列,其中,状态机基于由状态机针对之前的时步所生成的至少一个比特、基于将要生成的比特序列的生成函数、基于生成函数的初始状态,并且独立于由多个状态机中的另一状态机所生成的时间交织比特序列来生成时间交织比特序列的比特。另外,复用器重复地从每个所生成的时间交织比特序列连续选择一个比特,以获得由生成函数和生成函数的初始状态所定义的比特序列。本发明的另一实施例提供了一种用于计算多个状态机中的状态机的子速率转换矩阵和子速率初始状态的装置。该装置包括处理器(210),所述处理器被配置为基于全速率序列的生成函数、所述生成函数的初始状态和所述多个状态机中的状态机的数量来计算所述状态机的子速率初始状态。并且,该处理器被配置为基于所述生成函数和所述状态机的数量来计算所述子速率转换矩阵。根据本发明的实施例基于如下主要思想:由生成函数和生成函数的初始状态所定义的快速比特序列可通过合并彼此独立生成的两个或更多个时间交织比特序列来用高比特速率生成。通过这种方式,可用比特序列的比特速率的子速率来生成每个时间交织比特序列,该比特序列是通过合并多个时间交织比特序列来实现的。因此,生成时间交织比特序列的状态机可工作在比所生成的比特序列的频率(比特速率)低的时钟频率上。只是复用器必须能够用比特序列的全比特速率来从所生成的时间交织比特序列选择比特。因此,与用相同的比特速率直接提供比特序列的单个状态机相t匕,其可显著减小状态机所需的硬件要求。在根据本发明的某些实施例中,多个状态机的状态机基于子速率转换矩阵和子速率初始状态来生成时间交织比特序列。子速率转换矩阵和子速率初始状态是基于生成函数和生成函数的初始状态的。子速率转换矩阵和子速率初始状态可由上述用于计算状态机的子速率转换矩阵和子速率初始状态的装置所确定。因此,根据本发明的某些实施例可涉及比特序列生成器,其包括用于计算多个状态机中的状态机的子速率转换矩阵和子速率初始状态的装置。该装置可计算多个状态机中的每个状态机的子速率转换矩阵和子速率初始状态,使得状态机的合并后的时间交织比特序列导致由生成函数和生成函数的初始状态所导致的全速率比特序列。在根据本发明的某些实施例中,由生成函数和生成函数的初始状态所定义的比特序列是伪随机比特序列。
参照附图,随后将详细描述根据本发明的实施例,其中:图1是比特序列生成器的框图2是用于计算多个状态机中的一个状态机的子速率转换矩阵和子速率初始状态的装置的框图;图3是比特序列生成器的框图;图4是伪随机比特序列生成器的框图,该伪随机序列生成器包括用于计算子速率转换矩阵和子速率初始状态的装置;图5是线性反馈移位寄存器的框图;图6是在并行读出操作模式中的线性反馈移位寄存器的框图;图7是状态机的框图;图8是状态机的框图;图9是用于生成比特序列的方法的流程图;以及图10是用于计算多个状态机中的一个状态机的子速率转换矩阵和子速率初始状态的方法的流程图。
具体实施例方式在下文中,相同的参考标号被部分用于具有相同或相似功能属性的对象和功能单元,并且关于某图的对其的描述应当还应用于其他图,以便减少实施例描述的冗余。图1示出了根据本发明的实施例的比特序列生成器100的框图。比特序列生成器100包括多个状态机和复用器(MUX) 120。多个状态机中的每个状态机110被配置为生成时间交织(time-1nterleaved)的比特序列112,其中,状态机110基于针对先前时步(preceding time step)由状态机生成的至少一比特、将要生成的比特序列122的生成函数、生成函数的初始状态来生成针对当前时步(current time step)的时间交织的比特序列112的一比特,并且该比特的生成是独立于由多个状态机中的另一状态机110所生成的时间交织的比特序列112的。另外,复用器120重复地从每个所生成的时间交织比特序列112中连续选择一比特,以获得由生成函数的初始状态和生成函数所定义的比特序列122。通过合并多个状态机所生成的时间交织比特序列112,可获得带有比时间交织比特序列112显著更高的比特速率的比特序列122。因此,状态机110可以以更低的时钟速率来运行,这减少了硬件工作和/或功耗。另外,由于状态机110独立于彼此地生成时间交织比特序列112,可使用独立的硬件单元。通过这种方式,例如以低比特速率生成比特序列的现有的状态机可被用于通过利用用于合并独立比特流的复用器120来生成带有多个这种比特速率的比特序列。在这种情形中,独立于彼此地生成时间交织比特序列意味着状态机110独立于当前的状态或先前的状态或多个状态机的其他状态机110中的一个的输出来生成时间交织比特序列。每个彼此之间的联系仅由如下事实给出:状态机仅基于与将要生成的伪随机比特序列112相同的生成函数和该生成函数的初始状态来生成其时间交织比特序列。通过这种方式,虽然每个单个状态机110并无需知道其他的状态机在干什么,但是时间交织比特序列112合计等于将要生成的比特序列122。由于复用器120重复地从每个生成的时间交织比特序列112连续选择一比特,因此,时间交织比特序列112包括将要生成的比特序列122的每个第M比特,其中,M是多个状态机110的状态机110的数量。例如,如果如图1所述,比特序列生成器110包括两个状态机110,则第一状态机生成时间交织比特序列112,该时间交织比特序列112包括将要生成的比特序列122的第一、第三、第五、第七比特等,并且第二状态机110生成包括将要生成的比特序列122的第二、第四、第六比特等的时间交织比特序列112。比特序列生成器100可包括两个或更多个状态机110。例如,状态机110可以是有限状态机(FSM)或线性有限状态机。时间交织比特序列112的生成是基于生成函数和生成函数的初始状态的。生成函数和初始状态可由用户定义,或者可被存储设备所存储。换言之,生成函数和初始状态可以是给定的或预先定义的。针对这样一点,生成函数可由参数、系数、变量、公式或另一数学描述所表示。另外,初始状态可由初始状态比特序列所表示。例如,生成函数可以是由P个系数所表示的P度生成多项式g(X)。就此而言,例如,比特序列由生成函数所定义,并且初始状态等于如下措辞:比特序列由生成函数的系数和初始状态比特序列所定义。因此,基于生成函数和初始状态来生成时间交织比特序列的比特例如还意味着:基于生成函数的系数和初始状态比特序列来生成时 间交织比特序列的比特。根据本发明的某些实施例涉及生成伪随机比特序列。换言之,要生成的比特序列是伪随机比特序列。在下文中,描述了关于生成伪随机比特序列的实施例,虽然本发明的创造性的概念并不限于伪随机比特序列。伪随机比特序列可由生成多项式所定义。这种伪随机比特序列可由线性反馈移位寄存器所生成。例如,带有比特速率f的伪随机比特序列(PRBS) {s (i)}可作为时钟频率为f 的线性反馈移位寄存器(LFSR)的输出而被生成。图5示出了带有生成多项式g(x) = l+x2+x5的线性反馈移位寄存器500的示例。该线性反馈移位寄存器500包括五个时钟寄存器510和逻辑XOR (异或)单元520,其逻辑地组合了第二寄存器X2的输出和第五寄存器X5的输出,并且将结果提供至第一寄存器的输入。对应的伪随机序列s(i)由第五寄存器输出。普通的LFSR可用其P度生成多项式g(x)来表示,即,gP关0,并且gp = 0, p > Pg(x) = l+g1x+g2x2+---+gpxp(I)当g(x)的系数gp G B (生成函数的系数)等于I时,第p个移位寄存器阶段的输出被包括在XOR函数中,以用于第一阶段的下一值。针对非常高的比特速率(例如12.8Gbps)或通常针对大于lOGbps,该直接的方式是非常有挑战性的。根据所提出的概念,带有比特速率f的相同的伪随机比特序列s⑴由带有f除以M的比特速率的时间交织(复用)M个时间交织比特序列所生成。例如,状态机110针对每个时步生成时间交织比特序列112的一个或多个比特。例如,通过利用类似于图5中所示出的线性反馈移位寄存器,可针对每个时步生成时间交织比特序列112的一比特。优选地,可使用针对每个时步生成时间交织比特序列112的多于一比特的状态机。每个时步中所生成的比特的数量被设置,并且通过这种方式由状态机110所使用的硬件预先定义。换言之,多个状态机110的状态机110针对每个时步生成对应的时间交织比特序列112的预定数量的比特(I个或多个)。通过这种方式,可以以比全速率显著低的子速率(对应于时步的长度)来重复地生成预先定义的时间交织比特流112的预定义数量的比特,伪随机比特序列由复用器120所提供。换言之,多个状态机110中的状态机110可生成带有子速率的时间交织比特序列112的预定义数量的比特,并且复用器120用全速率来提供所生成的伪随机比特序列122,该全速率是子速率的整数倍。状态机所操作的子速率与伪随机比特序列112所设置的全速率的比率取决于时间交织比特序列112所生成的比特(并行生成)的预定义数量以及多个状态机110所包括的状态机的数量。换言之,先前所提及的整数倍可以是时间交织比特序列112的预先定义的比特数量与多个状态机110中的状态机数量的乘积。例如,每个状态机在状态机的每个时钟周期生成对应的时间交织比特序列的4比特,并且多个状态机包括两个状态机,随后伪随机比特序列可以以是时钟速率(子速率)的8倍的比特速率(全速率)被生成,状态机用该时钟速率操作。在根据本发明的某些实施例中,状态机110的状态可依赖于预定数量的状态比特。预定数量的状态比特可在相同的时步期间被生成,并且可取决于来自先前的时步(例如,紧邻的前一时步)的状态比特。该状态比特的预定数量可等于该时步的时间交织比特序列112的预定比特数量,但是,状态比特的预定数量还可以大于时间交织比特序列112的预定比特数量。换言之,多个状态机110的状态机的状态可由状态机110在相同时步期间生成的预定数量的状态比特所定义。另外,预定数量的状态比特可至少包括针对相同时步的时间交织比特序列112的预定数量的比特。虽然状态比特和在相同的时步期间所生成的时间交织比特序列的比特可能不同,但是在优选的实施例中,状态比特是时间交织比特序列的比特。换言之,通过改变状态,状态机可自动生成由状态比特所表示的时间交织比特序列的比特。由于当前时步中的多个状态机中的状态机的状态取决于先前时步的状态机的状态,因此,状态机可根据先前时步的状态机的状态来生成针对当前时步的时间交织比特序列的比特。如果状态机110可针对每个时步(状态机的时钟周期)来确定时间交织比特序列112的多于一比特,则并行确定的时间交织比特序列112的比特可被串行化,以获得时间交织比特序列112。为此,状态机110可包括串行器。串行器可针对每个时步选择针对一时步所生成的状态比特所包括的时间交织比特序列112的比特,从而以串行的方式提供时间交织比特序列112。这可通过中级速率(intermediate rate)来完成,其中,中级速率等于子速率乘以在相同的时步期间所生成的时间交织比特序列112的预定数量的比特。换言之,由状态机110并行生成的时间交织比特序列112的比特被串行化,并且因此,其包括一个比特速率,该比特速率是子速率乘以并行生成的时间交织比特序列的比特数量(时间交织比特序列的预定数量的比特)。因此,所生成的伪随机比特序列所设置的全速率等于中级速率乘以多个状态机中的状态机110的数量。可通过各种方式来实现状态机110。例如,如上所述,可使用线性反馈移位寄存器(LFSR)。可替换地,可使用操作于并行读出模式的线性反馈移位寄存器。图1b示出了在用于生成字流而非比特流的配置中的线性反馈移位寄存器600。为了达到该目的,图6的线性反馈移位寄存器600在线性反馈移位寄存器600的输出配置方面不同于图5中的线性反馈移位寄存器。在图5的LFSR的情形中,LFSR的输出主要表示第五寄存器的输出,而图6的LFSR600的输出被耦合至四个寄存器610-1,...,610-4的所有输出。LFSR600的输出在出现在寄存器610-4的输出处的信号处作为比特y(k)提供,在出现在第三寄存器610-3的输出处的信号处作为比特k+1提供,在出现在第二寄存器610-2的输出处的信号处作为比特k+2提供,并且,在第一寄存器110-1的输出处作为比特k+N-1 = k+3。图6的LFSR600通过先前所描述的并行读出N = 4个寄存器并随后为LFSR计时N=4次来产生比特序列或比特流,而在这些计时序列期间的输出被忽略。很自然,如图6中所示的LFSR600不仅可被用于获得每个带有N比特的字,还能获得小于或等于LFSR600的寄存器N的数量的任意数量的比特R。在该情形中,并行读出可被限制为R个阶段和后续的对LFSR600的R次计时,同时忽略这些中间计时期间的输出。图7示出了状态机700的可替换的实现。状态机700包括多个计时寄存器710,每个寄存器710包括用于反馈信号或输入信号的输入710a以及用于输出信号的输出710b。另夕卜,寄存器710还包括用于时钟信号的时钟信号输入710c。类似于图5和图6,寄存器710也被适配用于响应于出现在其各自输入710a处的信号和出现在时钟信号输入710c处的时钟信号来存储至少两个状态(例如,0或I)。寄存器710可适配用于在其输出710b处提供指示其状态的信号。图7的框图示出了第一寄存器710-1和第二寄存器710-2,其被耦合至通用的时钟信号线720,以经由其时钟信号输入710c来向寄存器710并行提供对应的时钟信号。另外,如图7所示的状态机700包括带有多个输入730a和多个输出730b的反馈电路730。输入730a的数量至少对应于状态机700的寄存器710的数量N,使得在此处所示的实施例中,每个寄存器710被连接至反馈电路730的单个输入。相应地,反馈电路700的输出730b的数量至少对应于寄存器710的数量,使得每个寄存器710经由其输入710a被连接至反馈电路730的输出730b中的一个。但是,在根据本发明的其他实施例中,反馈电路730的输入或输出的数量可以更小或更大。多个寄存器710和反馈电路730形成闭反馈环路,其中,反馈电路730生成被提供给寄存器710的输入710a的多个反馈信号。由于寄存器710被适配用于一旦接收到经由时钟信号线720所提供的时钟信号(例如,时钟信号的边沿或变化或电平)就有对应于提供至输入710a的信号的状态,因此,反馈电路730经由创建反馈信号来影响从时钟周期到时钟信号的时钟周期的状态变化。有时,寄存器还被称为是触发器。换言之,诸如寄存器710之类的寄存器被适配用于存储至少两个不同的状态。将要存储的状态被提供给寄存器710的输入710a,并且一旦接收到信号就将被存储于其中。与此不同,取决于提供给控制信号输入的控制信号,锁存器将是透明的或固定在某状态。寄存器710的输出710b被直接或间接耦合至状态机的输出740,使得寄存器710的输出信号不仅被提供给反馈电路730,还被提供给输出740。反馈电路的输出取决于反馈函数以及提供给反馈电路730的输入730a的信号。反馈信号被生成,并且经由输出730b被提供给寄存器710的输入710a。在该上下文中,反馈电路730被适配为使得对反馈函数的单个应用导致寄存器710的新状态,例如,表示线性反馈移位寄存器的状态,例如如图5所示,在被多次计时之后,用寄存器710的初始状态初始化。换言之,如反馈电路730中所实现的反馈函数提供了生成反馈信号并将其提供给寄存器710的输入710a的可能性,这对应于将始终信号的时钟周期应用到LFSR的多种应用,在将合适的时钟信号提供给时钟信号线720之前,该LFSR用出现在状态机700的寄存器710中的状态初始化。对实现在反馈电路730中的反馈函数的单个应用导致生成反馈信号,使得响应于时钟信号在寄存器710的输出710b处立即连续生成的字(预定义数量的比特)表示状态的变化,这种状态的变化在LFSR的情形中需要多个时钟周期。如图7所示,反馈信号可仅依赖于反馈函数和多个寄存器输出信号。通常不需要另外的参数,虽然反馈函数自身可被编程或提供给反馈电路730。这种状态机700能够更快地生成字流,因为在LFSR的情形中,针对每个时钟周期,并不是仅生成一个反馈信号,而是多个反馈信号,其中的每一个被提供给寄存器710中的一个。可选地,如图7所示的状态机700包括耦合在寄存器710的输出710b和状态机700的输出740之间的电路750。电路750例如可以是如下电路,其被适配用于从并行提供的寄存器710的输出信号生成串行比特流并将其提供给状态机700的输出740。另外,如虚箭头760所指示的,反馈电路730可通过将编程信号提供给反馈电路730的输入760来被编程,使得反馈电路可依赖于提供给反馈电路730的一个或多个参数。这提供了实现可编程的比特流的机会。例如,这可基于如下来实现:转换矩阵元素的模2内积和如提供给反馈电路730的输入730a的寄存器输出信号的值。总结,图7示出了在一个时钟周期中生成比特流的多个比特(例如,时间交织比特序列)的可编程状态机。
反馈函数可由转换矩阵来表示。关于创造性概念,该转换矩阵还可被称为子速率转换矩阵,因为与所生成的全速率比特序列相比,其利用该子速率转换矩阵的状态机用子速率来生成时间交织比特序列。反馈电路730可包括存储单元,该存储单元包括子速率转换矩阵。另外,寄存器710可被配置为由子速率初始状态来初始化。子速率转换矩阵以及子速率初始状态基于生成函数和将要生成的比特序列的生成函数的初始状态。总结,比特序列生成器可包括用于生成字流的状态机700,字流的每个字包括时间交织比特序列的多个后续比特。状态机包括多个时钟寄存器和反馈电路。多个时钟寄存器包括对应的输入和对应的输出。另外,反馈电路730被耦合至寄存器710的输入和输出,并且基于生成函数和寄存器的多个寄存器输出信号来将多个反馈信号提供给寄存器的输入,寄存器输出信号指示寄存器的状态。另外,状态机700被配置为使得由多个寄存器输出信号所定义的第一字包括时间交织比特序列的后续比特的第一集合,并且使得由多个寄存器输出信号所定义的后续第二字包括时间交织比特序列的后续比特的第二集合。图8不出了对状态机的另一可替换实现。状态机800包括用于输入信号Un的第一输入802,其中,输入信号的后续值被用第一时钟速率计时至输入端802。另外,装置800包括用于将输入信号Un转换成子速率输入信号Un的去串行器840,其中,子速率输入信号Un用第二时钟速率f2被计时至子速率有限状态机,该第二时钟速率f2是第一时钟速率的一个分数。例如,去串行器840可以是用于对输入信号11 进行串行至并行转换的电路。因此,去串行化子速率输入信号Un可包括全速率输入信号的R个后续值un,un+1,...,IVp1,其被用第二时钟速率f2计时至子速率FSM电路810。可包括存储器(具体地,RAM、或可编程逻辑设备、或可编程逻辑阵列(PLA))的子速率FSM电路810被配置为依赖于通过第二输入812所馈送至子速率FSM电路810的先前的子速率内部状态Zn以及子速率输入信号Un =[un,un+1,...,un+K_J来更新子速率内部状态。可选地,子速率FSM电路810可被配置用于依赖于先前的或更新后的子速率内部状态zn,zn+E来提供子速率输出信号An。因此,子速率输出信号Am包括R个信号值vm,vm+1, , Vm^1,其被馈送至串行器830,以便对子速率输出信号Am进行串行化,以获得具有第一时钟速率的串行输出信号Bm。根据实施例,串行器电路830可包括用于对包括R个输出信号值am,am+1,, 进行子速率输出信号Am进行并行至串行转换的电路。子速率FSM电路810在以子速率输入信号Un = [un,un+1,, un+E_J和先前的子速率内部状态zn的形式存在的输入上动作,并且用第二时钟速率f2来输出子速率输出信号An = [an, an+1,..., an+E_J和更新后的子速率内部状态zn+K 二者。更新后的子速率内部状态zn+K被馈送至子速率内部状态寄存器820,其可以是可被划分为两个路径的单个的输出线822。第一路径被耦合至系统的另一部分,其子速率FSM是子部,而第二路径是状态寄存器输出线812。根据实施例,去串 行器840被配置为对输入信号Un进行串行至并行转换,使得子速率输入信号Un在时间间隔T2内(其为第二时钟速率f2的倒数,即,T2 = l/f2)包括对应于多个后续时间间隔T1的输入信号的多个后续值un,un+1,...,IVh,该间隔可以是第一时钟速率的倒数,即,T1 = l/f10 可替换地,输入信号仅被用于对子速率有限状态机电路810进行编程。例如,子速率转换矩阵的矩阵元素被提供至子速率有限状态机电路810的存储单元。在该示例中,去串行器840仅是一个可选部分,并且输入信号可用独立于输出信号的时钟速率的时钟速率或比特速率或子速率有限状态机电路810所操作的时钟速率来提供。串行器830的输出信号例如可以是将要由状态机800所生成的时间交织比特序列。可替换地,时间交织比特序列可仅从子速率内部状态寄存器820的输出线822输出或与串行器830的输出信号组合输出。换言之,比特序列生成器可包括状态机,该状态机包括带有第一时钟速率的中间输入信号的输入802、用于将中间速率输入信号转换成具有作为第二时钟速率的一部分的第二时钟速率的子速率输入信号的去串行器840、以及串行器830。子速率有限状态机810依赖于先前的子速率内部状态和子速率输入信号来更新子速率内部状态,并且依赖于先前的或更新后的子速率内部状态来提供子速率输出信号。另外,串行器830对子速率输出信号进行串行化,以获得具有第一时钟速率的中级速率,其中,子速率有限状态机810被配置为将子速率内部状态更新为第二时钟速率。更一般地,取决于所实现的状态机,时间交织比特序列的比特可等于状态机的状态比特或与之不相等。换言之,在本发明的某些实施例中,状态机可基于状态机针对先前的时步所生成的时间交织比特序列的至少一比特来生成当前时步的时间交织比特序列的比特。类似于图7中所示的实现,状态机800可基于子速率转换矩阵和子速率初始状态(二者均从生成函数和生成函数的初始状态所导出)来生成时间交织比特序列。转换矩阵可被子速率有限状态机电路810存储,并且子速率内部状态寄存器820可用子速率初始化状态来初始化。
针对上述比特序列生成器的多个状态机中的所有状态机,子速率转换矩阵和子速率初始化状态可能是不同的。可替换地,所有的状态机可基于相同的子速率转换矩阵来生成器时间交织比特序列,但是,可基于不同的子速率初始状态。这是可能的,因为针对所有状态机,根本的生成函数和初始状态是相同的。如上所述,多个状态机中的每个状态机的子速率转换矩阵和子速率初始状态可从生成函数以及生成函数的初始状态导出。图2示出了根据发明的实施例的用于计算多个状态机中的状态机的子速率转换矩阵212和子速率初始状态214的装置的框图。装置200包括处理器210。该处理器210基于全速率比特序列的生成函数202、生成函数202的初始状态204、以及多个状态机中的若干个状态机206来计算状态机的子速率初始阶段214。另外,处理器210基于生成函数202和状态机206的数量来计算状态机的子速率转换矩阵212。可针对多个状态机的每个状态机来计算这种子速率转换矩阵212和子速率初始状态214。通过这种方式,例如,多个状态机可以针对任意的生成函数和初始状态来生成时间交织比特序列,其可由复用器合并,以获得由生成函数和初始状态所定义的全速率比特序列。可独立于比特序列生成器来计算状态机的子速率转换矩阵和子速率初始状态。子速率转换矩阵和子速率初始状态可由存储装置所存储,并且稍后由多个比特序列生成器所使用。装置200可仅需知道利用子速率转换矩阵和稍后的子速率初始状态的比特序列生成器的多个状态机的状态机数量。通过这种方式,可生成带有高比特速率的比特序列,虽然用显著低的时钟速率来操作状态机。换言之,状态机可提供带有比将要生成的全速率比特序列显著低的比特速率的时间交织比特速率。与子速率初始状态的计算不同,子速率转换矩阵例如可独立于生成函数的初始状态而被确定。在该情形中,子速率转换矩阵针对多个状态机的所有状态机可以是相同的。状态机的输出随后可由于状态机所确定的不同的子速率初始状态而不同。换言之,处理器210可针对多个状态机中的每个状态机来计算子速率初始状态,使得所计算的子速率初始状态彼此不同。另外,处理器可计算子速率转换矩阵,使得子速率转换矩阵针对多个状态机中的所有状态机都是相同的。换言之,相同的子速率转换矩阵可被所有状态机使用。如图1所示,可针对伪随机比特序列生成器的每个状态机来计算子速率转换矩阵。基于生成函数,比特序列生成器可输出与利用全速率转换矩阵的单个状态机相同的比特序列。因此,针对多个状态机中的某个状态机的子速率转换矩阵可从这种全速率转换矩阵导出。换言之,处理器可基于生成函数来确定全速率转换矩阵,并且,可基于全速率转换矩阵和状态机数量来计算子速率转换矩阵。另外,计算机可基于全速率转换矩阵、生成函数的初始状态和状态机的数量来计算全速率初始状态。例如,子速率转换矩阵可以是带有预先定义的行数的方阵。例如,可取决于转换矩阵的最大大小(其可由状态机的存储单元存储)或用于基于子速率转换矩阵来生成时间交织比特序列的比特的状态机所需要的最大计算时间来设置预先定义的行数。子速率转换矩阵的预先定义的行数可以等于或大于生成函数的若干次。例如,针对多项式生成函数,多项式的次指示定义上述生成函数所需的系数的数量。因此,子速率转换矩阵可至少包括等于定义生成函数所必须的系数的数量的行数。
例如,处理器210可被实现为独立的硬件单元,计算机或微控制器的一部分,以及被配置为在计算机或微控制器上运行的计算机程序或软件产品。以下,将更加详细地介绍用于计算多个状态机的子速率转换矩阵和子速率初始状态的示例。这可基于对伪随机比特序列生成器300的硬件实现来完成,该伪随机比特序列生成器300示出在表示创造性概念的图3中。虽然图3示出了表示多个状态机的三个状态机310,但是,伪随机比特序列生成器还可用两个、或多于三个状态机来实现。每个状态机310被连接至串行器330,并且每个串行器330被连接至复用器320。另外,每个状态机310包括反馈电路312和一个或多个计时状态寄存器314。反馈电路312被连接至状态寄存器314,该状态寄存器314被用输出连接反馈电路312的输入和相关联的去串行器330的输入。伪随机比特序列生成器300表示带有M个时间交织比特流Wm(j)的目标体系架构的示例,其每一个从状态机(此处还称为子速率线性有限状态机)的输出被以速率f/(R*M)串行化。在所提出的体系架构中(图3),带有比特速率f的相同的序列{s(i)}应当通过以比特速率f/M时间交织(复用)M个比特流wm(j) ,m = 0,1,...,M-1来生成,其每个通过进一步对R比特宽的字Vm (k) 进行串行化来生成,该Vm (k)是以速率f/(R*M)运行的子速率线性有限状态机(LFSM)的输出。M指示每个状态机的单个数或每个时间交织比特序列的单个数。该单个数可确定用于选择不同时间交织比特序列的次序。例如,复用器首先用单个数m = 0来从状态机所生成的时间交织比特序列选择一比特,然后,用单个数m = I来从状态机所生成的时间交织比特序列选择一比特,如此继续。例如,所有的M个LFSM具有可编程的NXN扩展状态转换矩阵Tm(子速率转换矩阵)和可编程初始扩展状态7 >(0)(子速率初始状态)。由于在该示例中没有专用的输出矩阵,因此,扩展状态ym G Bn包括输出和状态zm G BpjP^ N,其唯一地标识所有可触及的ym,由此得出术语“扩展状态”。一个目标是计算扩展状态转换矩阵Tni G Bnxn和M个时间间隔LFSM的初始扩展状^ym(O) G BN,m = 0,l,...,M-1,以将其作为PRBS多项式g(x)(生成函数)、时间交织比特流的数量M(状态机的数量)和速率减小因子R的函数,并且,当该计算可能时,给出条件。将示出,针对N = 32,M = 2 和 R G {4,8,12,16,20,24,28,32},存在针对所有带有度P < N的多项式的解决方案。例如,专利申请 “ J.Rivoir:State machine and generator for generatinga description of a state machine feedback function, W02010034326A1” 和“J.Rivoir !Apparatus and method for emulating a ful1-rate finite state machine,W02010034327A1”涉及一个时钟周期中的任意(非线性)FSM的多个比特的生成。但是,子速率LFSM的状态转换矩阵中的元素数量随着子速率因子二次变化。创造性概念提出了时间交织多比特流,并且因此,仅要求线性地增加硬件的工作。但是,该方法仅能模拟自治线性FSM的输出,这对于生成PRBS不是限制。以下,使用了 GF⑵中的矩阵方式,并且因此,避免引用分解环g(x) G Bp[x]/(xp-l)的抽象概念。可从 “A.Neubauer, J.Freudenberger, V.Kiihn:CodingTheory-Algorithms, Architectures and Applications, Wiley2007,,和 “D.S.Dummit,R.M.Foote:Abstract Algebra, Wiley2004”中找到对LFSR和相关的数学概念的彻底处理。
LFSR的输出序列{s(i)}在L步后重复。当g(x)是所谓的本原多项式时,序列长度是最大的,即,L = Lmax = 2P-1,否则L是Lmax的除数。作为奇数Lmax的除数,L也是奇数。L 是奇数(2)以下,将假定最大长度的序列,S卩,本原多项式。P次通用布尔LFSM和一个输出s (i)具有如下形式的状态方程:X (O) = X0 e BpX (i+1) = G.X (i), i =0,1,2,...
s(i)=c'.x(i)(3)其中,操作是在二进制伽罗瓦(Galois)域GF(2)中进行的,即,逻辑XOR被用作“求和”,而逻辑AND被用作“求积”。”表示矩阵内积并有时被忽略。Xtl是生成函数的初始状态,G是转换矩阵的全速率,并且,s (i)是将要生成的比特序列。利用常用的状态编号X = (X1, X2, , Xp) ' e Bp (4)状态转换矩阵(全速率转换矩阵)是
权利要求
1.种用于生成比特序列(122,s(i))的比特序列生成器(100,300,400),所述比特序列(122,s(i))由生成函数和所述生成函数的初始状态定义,包括: 多个状态机,其中,所述多个状态机中的每个状态机(110,310)被配置为生成时间交织比特序列(112,wm (j)),其中,状态机(110,310)基于由所述状态机(110,310)针对先前的时步所生成的至少一个比特、将要生成的比特序列(122,s(i))的生成函数、所述生成函数的初始状态,并且独立于由所述多个状态机(110,310)中的另一状态机(110,310)生成的时间交织比特序列(112,wffl(j))来生成所述时间交织比特序列(112,wffl(j))的比特;以及 复用器(120),所述 复用器被配置为重复地从每个所生成的时间交织比特序列(112,wffl(j))连续选择一个比特,以获得由所述生成函数和所述生成函数的初始状态所定义的比特序列(122,s(i))。
2.据权利要求1所述的比特序列,其中,所述多个状态机中的状态机(110,310)被配置为针对每个时步生成对应的时间交织比特序列(112,wm(j))的预先定义数量的比特(R)。
3.据权利要求2所述的比特序列,其中,所述多个状态机中的状态机(110,310)被配置为用子比特速率来生成时间交织比特序列(112,wm(j))的预先定义数量的比特(R),其中,所述复用器(120)被配置为用全比特速率来提供所生成的比特序列,所述全比特速率是所述子比特速率的整数倍。
4.据权利要求3所述的比特序列,其中,所述整数倍是时间交织比特序列(112,wm(j))的比特的预先定义的数量(R)与所述多个状态机中的状态机(110,310)中的状态机数量(M)的乘积。
5.据权利要求2至4中的任一项所述的比特序列,其中,所述多个状态机中的状态机(110,310)中的状态机的状态由预定义数量的状态比特(N)所定义,所述预定义数量的状态比特(N)由所述状态机(110,310)在相同的时步期间以并行方式生成,其中,所述预定义数量的状态比特(N)至少包括针对相同时步的时间交织比特序列(112,wm(j))的预先定义数量的比特(R)。
6.据权利要求5所述的比特序列,其中,所述状态机(110,310)包括串行器(330),所述串行器(330)被配置为针对每个时步选择由针对一时步所生成的状态比特所包括的时间交织比特序列(112,wffl(j))的比特,从而用中级比特速率(f/M)以串行的方式提供时间交织比特序列(112,wm(j)),其中,所述中级比特速率(f/M)等于子比特速率(f/(RM))乘以在相同时步期间所生成的时间交织比特序列(112,wm(j))的预先定义的比特数量(R)。
7.据权利要求1至6中的任一项所述的比特序列,其中,所述多个状态机中的状态机(110,310)基于子速率转换矩阵(T)和子速率初始状态(ym(0))来生成所述时间交织比特序列(112,wm(j)),其中,所述子速率转换矩阵(T)和所述子速率初始状态(ym(0))基于生成函数和所述生成函数的初始状态。
8.据权利要求7所述的比特序列,其中,针对所述多个状态机中的所有状态机(110,·310),所述子速率转换矩阵(T)是相同的,并且,针对所述多个状态机中的所有状态机(110,310),所述子速率初始状态(ym(0))是不同的。
9.据权利要求1至8中的任一项所述的比特序列,其中,所述多个状态机仅包括两个状态机(110,310)或包括三个或更多个状态机(1 10,310)。
10.据权利要求1至9中的任一项所述的比特序列,其中,将要生成的比特序列(122,s (i))是伪随机比特序列。
11.种用于计算多个状态机中的状态机的子速率转换矩阵(212,T)和子速率初始状态(214,ym(O))的装置(200),包括: 处理器(210),所述处理器(210)被配置为基于全速率序列的生成函数(202)、所述生成函数的初始状态(204)和所述多个状态机中的状态机的数量(M)来计算所述状态机的子速率初始状态(214,ym (O)),并且被配置为基于所述生成函数(202)和所述状态机的数量(206,M)来计算所述子速率转换矩阵(212,T)。
12.据权利要求11所述的装置,其中,所述处理器(210)被配置为独立于所述生成函数(202)的初始状态(204)而计算所述子速率转换矩阵(212,T)。
13.据权利要求11或12所述的装置,其中,所述处理器(210)被配置为基于所述生成函数(202)来确定全速率转换矩阵(G),其中,所述处理器(210)被配置为基于所述全速率转换矩阵(G)和所述状态机的数量(M)来计算所述子速率转换矩阵(212,T),并且其中,所述处理器(210)被配置为基于所述全速率转换矩阵(G)、所述生成函数(202)的初始状态(204)和所述状态机的数量(206,M)来计算所述子速率初始状态(214)。
14.据权利要求11至13中的任一项所述的装置,其中,所述处理器(210)被配置为针对所述多个状态机中的每个状态机来计算所述子速率初始状态(214,ym(0)),使得所计算的子速率初始状态(214,yffl(0))彼此不同。
15.据权利要求11至14中的任一项所述的装置,其中,所述处理器(210)被配置为计算所述子速率转换矩阵(212,T),使得所述子速率转换矩阵(212,T)针对所述多个状态机中的所有状态机是相同的。
16.据权利要求11至1 5中的任一项所述的装置,其中,所述子速率转换矩阵(212,T)是带有预定义数量的行(N)的方矩阵,其中,所述行的预定义数量(N)等于、或大于所述生成函数(P)的阶次。
17.据权利要求11至16中的任一项所述的装置,其中,所述处理器(210)被配置为根据如下公式来计算所述子速率转换矩阵(212,T):
18.据权利要求11至17中的任一项所述的装置,其中,所述处理器(210)被配置为根据如下公式来计算所述子速率初始状态(214,ym(0)): ym (O) = Qn.X (m) 其中,m是指派给每个状态机的各自号码,所述子速率初始状态被计算以用于包括等于或低于所述多个状态机中的状态机数量(M)的值,N是所述子速率转换矩阵(T)的预先定义的行数,其中,
19.种根据权利要求1至10中的任一项所述的比特序列生成器,包括根据权利要求11至18中的任一项所述的用于计算多个状态机中的状态机的子速率转换矩阵和子速率初始状态的装置,其中,所述比特序列的多个状态机中的状态机基于用于计算状态机的子速率转换矩阵和子速率初始状态的装置所计算的子速率转换矩阵和子速率初始状态来生成对应的时间交织比特序列。
20.种根据权利要求1至10或19中的任一项所述的带有状态机(800)的比特序列生成器,包括: 输入(802),所述输入(802)用于带有第一时钟速率的中级速率输入信号; 去串行器(840),所述去串行器(840)用于将所述中级速率输入信号转换成带有作为所述第一时钟速率的一部分的第二时钟速率的子速率输入信号; 子速率有限状态机(810),所述子速率有限状态机(810)被配置为依赖于先前的子速率内部状态和所述子速率输入信号来更新子速率内部状态,并且依赖于先前的或更新后的子速率内部状态来提供子速率输中信号;以及 串行器(830),所述串行器(830)被配置为将所述子速率输出信号串行化,以获得具有所述第一时钟速率的中级速率输出信号, 其中,所述子速率有限状态机(810)被配置为以所述第二时钟速率来更新所述子速率内部状态。
21.种根据权利要求1至10或19中的任一项所述的带有状态机的比特序列生成器,所述状态机用于生成字流,所述字流中的每个字包括时间交织比特序列中的多个后续比特,所述状态机包括: 多个时钟寄存器(710),所述寄存器(710)包括对应的输入和对应的输出;以及 反馈电路(730),所述反馈电路(730)被耦合至所述寄存器(710)的输入和输出,并且被适配用以基于所述生成函数和所述寄存器的多个寄存器输出信号来将多个反馈信号提供给所述寄存器的输入,所述寄存器的输出指示所述寄存器的状态, 其中,所述状态机(700)被配置为使得由多个寄存器输出信号所定义的第一字包括时间交织比特序列的后续比特的第一集合,并且使得由多个寄存器输出信号所定义的后续第二字包括时间交织比特序列的后续比特的第二集合。
22.种包括根据权利要求1至10或19-21中的任一项所述的比特速率生成器或包括根据权利要求11至18中的任一项所述的用于计算多个状态机中的状态机的独立转换矩阵和独立初始状态的装置的自动测试设备。
23.种用于生成由生成函数和所述生成函数的初始状态所定义的比特序列的方法(900),包括: 生成(910)多个时间交织比特序列,其中,所述多个时间交织比特序列中的时间交织比特序列的比特是基于针对先前的时步所生成的至少一个比特、将要生成的比特序列的生成函数、所述生成函数的初始状态,并且独立于所述多个时间交织比特序列中的另一个所生成的时间交织比特序列针对当前时步而生成的(910);以及 重复地从每个所生成 的时间交织比特序列连续选择一个比特,以获得由所述生成函数和所述生成函数的初始状态所定义的比特序列。
24.种用于计算多个状态机中的状态机的子速率转换矩阵和子速率初始状态的方法(1000),包括: 基于全速率比特序列、所述生成函数的初始状态、以及所述多个状态机中的状态机数量来计算(1010)所述状态机的子速率初始状态;以及 基于所述生成函数和所述状态机的数量来计算(1020)所述状态机的子速率转换矩阵。
25.种计算机程序,所述计算机程序带有程序代码,当所述计算机程序运行在计算机或微控制器上时,所述程序代码用于执行根据权利要求23至24中的任一项所述的方法。
全文摘要
一种用于生成由生成函数和该生成函数的初始状态定义的比特序列的比特序列生成器,其包括多个状态机和复用器。多个状态机中的每个状态机生成时间交织比特序列,其中,状态机基于由状态机针对先前的时步所生成的至少一个比特、将要生成的比特序列的生成函数、生成函数的初始状态来生成时间交织比特序列的比特,并且,该比特的生成独立于由多个状态机中的另一状态机所生成的时间交织比特序列。另外,复用器重复地从每个所生成的时间交织比特序列连续选择一个比特,以获得由生成函数和生成函数的初始状态所定义的比特序列。
文档编号G06F7/58GK103098018SQ201080068440
公开日2013年5月8日 申请日期2010年8月3日 优先权日2010年8月3日
发明者约亨·里瓦尔 申请人:爱德万测试(新加坡)私人有限公司