相关器方法和设备的制作方法

文档序号:6415518阅读:203来源:国知局
专利名称:相关器方法和设备的制作方法
技术领域
本发明关系到数字信号领域,更具体地,关系到数字相关。
相关技术背景相关器已被广泛地使用于信号处理,以便测量在数据序列和预定的模式或参考序列之间的相关的程度。在一维数字信号处理的情况下,相关值y代表在一个数据样本(di)序列和一个参考值(ri)序列y=Σi=1n(ri,di)]]>之间的相关,可由下式确定相关被用于多种应用,包括语音识别、在检验处理识别中打印材料的模式识别、以及通信系统同步。
相关器已在许多通信系统中被使用来执行接收机时钟同步。在那种情况下,为了易于同步,通信发射机和通信接收机每个配备有具有预定模式的参考序列。通信发射机发射参考序列,使得接收机时钟易于同步到发送的信号上。参考序列被选择为具有良好的自相关特性,例如,良好规定的相关峰值和相当低的副瓣。


图1显示了通信接收机相关器,它以8比特长的相关参考序列运行,以便在接收的数据序列和参考序列相匹配的时间产生相关峰值。在图1的例子中,假定每个数据样本被表示为一个8比特的对二的补码数,具有一个在±127的范围内的数值。在每个时钟周期,输入数据的最后八个样本di(i=1,8)逐个样本地与参考序列比特ri(i=1,8)相乘,以产生相关值y。也就是,y可以具有+1016的最大值和-1016的最小值。把相关值y与相关门限yTH进行比较,当y超过yTH时,就宣布相关匹配,表示已接收到相关序列,借此接收机被同步到发射机。
相关器也已在直接序列扩频通信系统中被使用来检测接收的信号,该信号是通过使用被称为扩频码的二进制序列被扩频发送的。在这种情况下,发射机和接收机每个配备有参考序列,它具有相应于扩频码的预定的模式。
发射机用扩频码扩频要被发送的原先的数据信号,以产生扩频信号。在接收机处,去扩频相关器通过把接收的信号与相应于扩频码的参考序列进行相关而恢复原先的数据信号。
相关器是通过使用专用数字信号处理器而建成的。然而,这些器件被它们的处理速度所限制。这样,它们对于高速相关,特别是对于非常长的参考序列,可能是不实际的。
图2是按照现有技术的传统的长度n的可编程数字相关器100的方框图,它可被用于接收机同步或用于将扩频信号去扩频。相关器100包括数据延时线101、参考序列存储器103、乘法器级105、和加法器树107。现在将描述这个现有技术相关器100的运行。
在初始化过程期间,参考数值ri(i=1,n)的参考序列被存储在参考序列存储器103。在图1的示例的相关器中,假定每个参考序列数值ri被表示为1-比特的二进制数值。在每个参考时钟周期,新的参考序列数值被加到相关器100的参考序列存储器103。参考序列存储器103由n-级参考移位寄存器组成,即进一步说由n个1-比特参考序列寄存器104组成。
数据样本di(i=1,n)的接收的数据序列被加到相关器,用来与参考序列相关。在通常情况下,每个数据样本di被表示为m-比特二进制数值。在图2的示例性的相关器中,n=8。在每个数据时钟周期,新的数据样本di被加到相关器100的数据延时线101。
数据延时线101被做成为n-级数据序列移位寄存器。在每个数据时钟周期,新的数据样本d1以字节被加到数据延时线的第一数据寄存器-1 102。在先前的数据时钟周期已被存储在第一数据寄存器-1中的数据样本d2被移入第二数据寄存器-2。同样地,在所有其它数据存储器中的数据样本每个被向右移位一个寄存器。被存储在最后的数据寄存器-n中的最老的数据样本dn+1存在于数据延时线101,并被丢弃。
数据序列di(i=1,n)与参考序列ri(i=1,n)的相关是通过在乘法器级105首先把每个数据样本di与相应的参考值ri相乘而完成的。乘法器级105由n个乘法器106组成。N个乘法器106产生n个相关乘法的乘积,yi=di*ri(i=1,n),每个被表示为一个m比特二进制值,在这个例子中,m=8。
n个m-比特相关乘法乘积yi然后被加到加法树107的n/2个第一级加法器108。每个第一级加法器108把两个m-比特相关乘法乘积yi相加,以产生(m+1)-比特中间相关和值zi。n/2个第一级加法器108产生n/2个中间相关和值,它们被加到加法树106中的n/4个第二级加法器。这个处理重复进行,直到加法树106的最后级加法器109产生单个(m+1og2(n))比特相关值y。这样,加法树包含log2(n)级,带有总共n-1个加法器。
现有技术的传统相关器的例子是由Harris公司生产的HSP45256。
现有技术的传统可编程数字相关器100需要大量电路。例如,考虑一个长度n=128的相关器,用于把128个被表示为8-比特数的数据样本与128个1-比特数的参考序列进行相关。128级数据延时线对于每个要被存储的比特需要一个触发器。对于8比特数据样本,数据延时线需要8×128=1024个触发器。参考序列存储器需要附加的128个触发器,参考序列中每个比特1个触发器。
当用专用集成电路(ASIC)进行设计时,逻辑总量以门来计量,这些门被理解为等价于2输入端的与非门。所有其它的门和触发器被转换成等价的2输入端与非门的需要数。例如,一个触发器等价于至少六个2输入端与非门。
数据延时线的1024个触发器代表1024×6个门=6144个等价的2输入端与非门的逻辑需要,以及参考存储器需要128×6个门=768个等价的2输入端与非门。
相关器中的每个乘法器必须把有正负号的8比特数据样本与典型地是1比特值的参考值相乘。1比特的参考值可以是编码的值,数值“1”表示“-1”,数值“0”表示“+1”。所以相乘的结果或者是与样本数据相同的值(如果参考值是“0”),或者是负的样本数据值(如果参考值是“1”)。所以每个乘法器可以以8个XOR(异或)门和一个8比特增量器来实现。
为了进行门计数,一个XOR门等价于三个2输入端与非门,以及一个增量器需要约每个比特4个门。8比特乘1比特的乘法器对于XOR门需要8×4个门,以及8比特增量器需要8×4个门。这样,每个乘法器需要(8*3)+(8*4)=56个等价的2输入端与非门。由于有128个乘法器,所以总数是128×56=7168个等价的2输入端与非门。
加法树需要多得多的门。通常,对于长度n的相关器,需要n-1个加法器。对于以8比特数据样本的长度128的相关器的实例,加法树包括64个8比特加法器产生9比特的结果,32个9比特加法器产生10比特的结果,16个10比特加法器产生11比特的结果,8个11比特加法器产生12比特的结果,4个12比特加法器产生13比特的结果,2个13比特加法器产生14比特的结果,以及1个14比特加法器产生15比特的结果。
为了进行门计数,一个加法器需要每个比特7个门。所以,对于长度128的相关器的加法树包括总共1136比特的加法器,它需要1136*7=7952个等价的2输入端与非门。
这样,以8比特样本的长度128的可编程数字相关器需要总共1152个触发器和15120个其它的门,或总共22032个门,加上某个小量的粘结逻辑块。
在扩频系统中,接收机可能需要具有许多去扩频相关器。例如,在具有中央主地球站接收机的天线系统中,该接收机同时和具有不同扩频码的许多发射机通信,接收机对于可能被使用的每个扩频码需要有至少一个去扩频相关器。在这种情况下,有效地利用电路来构建相关器是特别重要的。
例如,考虑一个用于QPSK调制的扩频信号的扩频接收机,对于I和Q波形都用长度128的扩频码序列。还假定,去扩频接收机相关器对每个符号作用在两个样本上,以提供粗定时信息给接收机,这样,存储接收的数据的256个8比特样本用于相关。如果相关器是通过使用上面提到的HSP45256器件而被构建的,则每个接收机需要至少16个这样的器件,用于每个I或Q相关器。如果通信系统使用32个必须同时被检测的不同扩频序列,则它需要至少16×2×32=960个这样的器件。
在许多低的和中等的规模的应用中,希望通过使用现场可编程门阵列(FPGA)器件来实现可编程数字相关器。不幸地,诸如相关器100那样的相关器在使用通过传统设计实现的FPGA时并不能给出有效的结构。
例如,Xilinx XC4025E FPGA具有1024个可配置的逻辑块(CLB)。每个CLB包含两个触发器、一个次级功能发生器、和两个主功能发生器,每个有四个输入端与一个输出端。例如,对于两个可编程数字相关器所需要的,构建这128-级8-比特数据延时线,将耗费掉这个举例的Xilinx FPGA中的全部2048个触发器。因此,按照现有技术以FPGA构建两个传统的以8比特数据样本的长度128相关器100是不可能的。
事实上,仅仅把一个这样的实例的相关器适合于XILINX 4025E将是困难的。Xilinx XC4025E FPGA具有最大值的25000个门,其中典型地15000个门有可能通过标准的设计实践而被实际使用。如上所示,以8比特数据样本的长度128的相关器100需要最小值的22032个门。
因此,提供具有比单个器件在前面可提供的更大的移位寄存器长度与宽度的组合的可编程数字相关器是有利的。提供能够同时把输入的样本数据与两个或更多个预定参考序列进行相关的可编程数字相关器也是有利的。提供用于扩频接收机的可编程数字相关器同样是有利的,它能够每个输入数据的符号处理一个以上的样本,以提供要被接收机使用的粗略的相关峰值时间信息。提供能够高速运行的可编程数字相关器还是有利的。其它的和进一步的目的与优点将在后面看出。
发明概要本发明包括用于执行长数据序列的高速相关的方法和设备。
在本发明的一个方面,长数据序列的高速数字相关是在单个现场可编程门阵列(FPGA)器件中实施的。FPGA提供了用于长数据序列的存储器、用于存储一个或多个预定参考序列的可编程存储寄存器、用于把数据样本与参考序列值相乘,以产生相关乘积的多个乘法器、以及用于把相关乘积相加,以产生相关值的加法器。
在本发明的另一个方面,数字相关器把数据序列存储在由多个随机存取存储器(RAM)模块组成的长的移位寄存器中。优选地,数据序列包含m比特数据数值,以及RAM模块每个是p比特深乘1比特宽。在优选实施例中,相关器在每个时钟期间处理来自每个RAM模块的一个比特。
在本发明的又一个方面,数字处理器把数据序列中以对二的补码数表示的数据样本与预定数据序列中的数据数值相乘以产生未完成的对二的补码乘积。优选地,乘法是通过使用异或(XOR)门来实现的。然后所有乘法的乘积被相加以产生相关值。在所有计算结束时,一个相关值被加到相关值中,以完成对二的补码的运算。
在本发明的又另一个方面,数字处理器包括一个加法器,它又包括多个总体计数器。每个总体计数器产生一个输出,它表示被设置为1的输入比特的数目。优选地,每个总体计数器还包括多个流水线级。
在本发明的再又一个方面,数字处理器包括具有一个加法器的加法树,它把总体计数器输出相加以产生无正负号的二进制输出。在相关计算结束时,相关器相加相关值,以产生二的补码的相关值。相关值(1)补偿当总体计数器把输入乘积当作为无正负号的数值处理时造成的正负号错误;以及(2)完成乘法器的对二的补码运算,它产生如前面描述的未结束的对二的补码乘积。
附图概述图1是说明通信接收机中的相关器的运行的时序图。
图2是现有技术的数字相关器的功能性方框图。
图3是按照本发明的一个或多个方面的可编程数字相关器的功能性方框图。
图4是按照本发明的一个或多个方面的15比特总体计数器的功能性方框图。
优选实施例详细描述在图3的优选实施例中,双重相关器300把单个接收的数据序列同时与两个不同的预定相关参考序列,被表示为参考序列“A”和参考序列“B”,进行相关。双重相关器提供用于接收的数据序列的数据序列存储器,并包括用于两个相关参考序列的每个序列的分开的存储寄存器。
双重相关器300,例如可处理来自直接序列扩频通信接收机中的解调器的I或Q数据。在那种情况下,相关参考序列A和B每个可相应于可被多个远端通信发射机使用的多个扩频码中的一个扩频码。该实施例的其它方面和特性将通过此后的对其运行的详细描述而弄明白。
在图3的示例性实施例中,假定数据序列中的数据样本以对二的补码的运算中的8比特二进制数来表示。然而,本领域的技术人员将会明白,该数据可以用或多或少的比特,例如6比特或12比特来表示,而不背离本发明的精神和范围。
数据序列被提供给并行-串行转换器305。并行运算对串行运算的折衷,关系到进行运算所需要的逻辑资源量,和可供执行运算使用的时间。并行运算需要最大的逻辑资源,但在一个时钟周期内完成。全部串行(即,一次处理一个比特)需要最小的逻辑资源,但需要与运算数中的比特数一样多的时钟周期数。
对于这里描述的优选实施例,8比特的运算数被转换成2比特宽的串行数据流。2比特宽串行数据流然后在四个周期内以比8比特数据样本的数据时钟速率快四倍的相关器时钟速率被处理。这给出了8比特并行运行的逻辑资源要求的1/4,但需要串行时钟快四倍。其它实施例可使用不同的折衷。
并行-串行转换器305接收以W周期/秒的数据时钟速率的一系列8比特并行数据样本的输入数据序列,并把它串行化为2比特宽的数据流,它以4W周期/秒的相关器时钟速率被输出。这样,数据序列中的8比特数据样本,每个样本一次可提供两个比特。每个数据样本的全部8个比特在四个接连的相关器时钟周期(相应于一个数据时钟周期)内被处理。
在第一相关器时钟周期,并行串行转换器305输出输入数据样本D1的最低有效比特(LSB)D1(0)和次最低有效比特(NLSB)D1(1)。在第二相关器时钟周期,并行串行转换器提供输入下两个最低有效比特D1(2)和D1(3),等等,直到全部8个比特在四个相关器时钟周期内被输出为止。由此,并行串行转换器每四个相关器时钟周期输出一个新数据样本给数据序列移位寄存器用于相关。
来自并行串行转换器305的2比特宽的数据样本被相关器时钟移位到由多个随机存取存储器(RAM)模块310组成的2比特宽的数据序列移位寄存器。数据序列移位寄存器由两串RAM模块组成,一串用于在来自并行串行转换器305的2比特宽的数据流中的两个比特的每一个。
在优选实施例中,可配置逻辑块(CLB)随机存取存储器(RAM)结构被用来使得对数据序列移位寄存器的CLB需求最小化。例如,XILINX XC4025E CLB可被配置来实现两个16比特深1比特宽的RAM。每个RAM被连接来实现多到16比特长的1比特宽的移位寄存器。CLB中的两个RAM一起可达到每个CLB32比特的密度。(实际实现的真正长度取决于数据的速度和FPGA逻辑块的最大运行速度。)相反,CLP触发器单独代表每个CLB仅仅2比特的密度。
在图3的实施例中,2比特宽的数据序列移位寄存器通过使用每隔一个的数据样本被抽头用于相关。例如,如果每个相关参考序列“A”和“B”具有N/2的长度,则数据序列移位寄存器包含N个数据样本,一个抽头用于每隔一个的数据样本,使得一次有N/2的数据样本可供用于相关。对于带有8比特二进制表示的数据样本,每个RAM模块是1比特宽8比特长,每隔一个数据样本提供一个抽头,如图3所示。地址线(未示出)使得一个比特可作为从每个RAM模块310在每个相关器时钟周期的输出被提供。
在那种情况下,每四个相关时钟周期,对于在2比特宽数据序列移位寄存器中包括每隔一个的数据样本的数据序列计算一个新的相关值。例如,数据样本可以是来自直接序列扩频通信接收机中的解调器的I或Q数据,在那种情况下,数据可以以两倍的符号速率被采样,以提供粗略时间信息给接收机,所以相关是相对于每隔一个数据样本执行的。
在图3的实施例中,2比特宽数据序列移位寄存器对于由N个RAM模块,或两串N/2个RAM模块组成,用于由并行串行转换器305提供的2比特宽数据流。
在优选实施例,每个RAM模块310可以是在FPGA(例如XILINXXC4025E FPGA)中的可配置逻辑块(CLB)中的两个RAM模块中的一个。在那种情况下,FPGA可提供在128个CLB中的N=256个RAM模块,以构建包含256个8比特数据样本的2比特宽数据序列移位寄存器,它每隔一个数据样本提供一个抽头。
对于相关,数据序列中N/2个8比特数据样本(相应于在数据序列移位寄存器中每隔一个数据样本的抽头)的每个样本与参考序列“A”,“B”中的参考值相乘。在图3的实施例中,每个参考序列值可以是或者正1(+1)或者负1(-1)。每个参考序列数据数值由1比特二进制数表示。参考序列比特是逻辑0,表示正1(+1)的参考序列值,是逻辑1,表示负1(-1)的参考序列值。
参考序列“A”和“B”的参考序列比特,每个被存储在分开的参考序列存储寄存器315,它们每个具有N/2级。
例如,每个参考序列存储寄存器315可以由FPGA器件(例如XILINX XC4025E FPGA)中的N/2触发器组成。在那种情况下,对于每个长度为N/2=128的参考序列,每个参考序列存储寄存器可包括128个触发器。
为了执行与参考序列“A”或“B”的相关,数据序列中每隔一个数据样本必须首先乘以正1(+1)或负1(-1)的参考序列值。8比特数据样本以对二的补码的算术来表示,如上面所述。正如本领域的技术人员熟知的,为了把对二的补码数乘以负1(-1),所有比特都必须被倒置,然后必须加上1。例如,为了对于数+4(000 0100)求补,所有比特被求反(1111 1011),然后加上1,以产生对二的补码的(11111100)=-4。
把数据序列的每个数据样本乘以相应的参考序列值的第一步骤可由XOR门实行。输入到XOR门的第一输入端被连接到来自数据序列移位寄存器的数据样本的一比特。参考序列比特是0,表示乘以正1(+1),以及是1,表示乘以负1(-1)。
XOR门用作为选择性-求补码器。XOR门的输出在参考序列比特是0时,是与输入数据样本比特相同,而在参考序列比特是1时,是输入数据样本比特的相反值。这样,XOR门在每个相关器时钟周期或者倒置或者不倒置一个数据样本比特。
在一个优选实施例中,同时使用两个XOR门,在每个相关器时钟周期期间,倒置或不倒置从数据序列移位寄存器提供的每个数据样本的的两个比特。在四个相关器时钟周期内,这两个XOR门倒置或不倒置,(当可能是这种情况时)8比特数据样本的全部八个比特。
来自XOR门的最终结果的数据是未结束的对二的补码的产物,因为在XOR后需要完成的增量,如果数据被倒置,是还未完成的。为了产生最后的对二的补码的产物,需要加上1。然而,对于每个相关乘积加上这个1,需要相当大量的附加电路。有利地,在双重相关器300的优选实施例中,这个加法是在双重相关器300的另一级完成的,这在以后讨论。这样,XOR门产生被表示为未结束的对二的补码数的相关乘积。
在双重相关器300中,在每个相关器时钟周期,由RAM模块310组成的2比特宽数据序列移位寄存器提供以每隔一个数据样本抽头的8比特的数据样本的两个比特给XOR门320。每个XOR门320的一个输入端被连接到2比特宽数据序列移位寄存器的对于一个比特的一个抽头。每个XOR门320的另一个输入端被连接到参考序列移位寄存器315之一的一个抽头。
对于与长度为N/2的两个参考序列“A”和“B”的相关,有2N个XOR门320,N个门用于每一个参考序列。例如,在双重相关器300把数据序列与长度为N/2的两个参考序列“A”和“B”进行相关的情况下,那麽双重相关器具有512个XOR门,256个用于参考序列“A”,以及256个用于参考序列“B”。用于每个参考序列的256个XOR门被分成用于LSB的128个XOR门、和用于NLSB(次最低有效比特)的128个XOR门。
这样,在每个相关器时钟周期,用于与每个参考序列进行相关的N个XOR门产生N/2个2比特的相关乘积。每四个相关时钟周期,N/2个8比特数据样本的全部八个比特被处理以产生新的相关值。
为了产生相关值,在每个相关器时钟周期,来自XOR门320的N/2个2比特未结束的对二的补码相关器产物中的每个产物必须被相加在一起,这个和值又必须被加到累加器中。正如对于图1的现有技术的相关器进行讨论的那样,如果使用传统的加法器,把N/2个相关器产物相加需要(N/2)-1个不同长度的加法器,耗费许多门。
而有利地,以之以在双重相关器300的加法器中包括总体计数器,在每个相关器时钟周期期间,把N/2个2比特相关器产物相加。这样,在第一相关器时钟周期,N/2个LSB相关乘积中的15个产物的组被馈送到15比特总体计数器325。每个15比特总体计数器325的输出是4比特未标以正负号的二进制值,范围从0到+15,表示15个相关乘积LSB输入都是1的输入的数目。在同时,N/2个NLSB相关乘积中的15个乘积的组也被馈送到相同的15比特总体计数器325。对于每个参考序列“A”和“B”,总共有2×[N/2-modulo-15]个15比特的总体计数器,一半用于把LSB乘积相加以及另一半用于把次最低有效比特(NLSB)乘积相加。
图4是一个15比特总体计数器优选实施例的方框图,它可被使用于双重相关器300。图4的15比特总体计数器325包含三个流水线级。
在总体计数器325的第一级,三个4比特组,每个被提供给由三个编码器405组成的三个第一级组410。编码器405的每个第一级组410把四个输入比特编码成3比特二进制数,表示有多少个4比特是1。也就是,每个第一级组产生具有权因子20、21、和22的三个中间的输出。15比特输入的剩余的3比特被提供给两个编码器的第四个第一级组415。第四个第一级组415把三个比特编码成2比特二进制数,产生产生具有权因子20、和21的两个中间的输出,再次表示有多少个3个输入比特是1。这样,在第一级,总体计数器325产生总共四个20比特、四个21比特、和三个22比特。
在15比特总体计数器325的第二级中,来自第一级的四个20比特被提供给三个编码器405的第一个第二级组420。编码器405的第一个第二级组420把四个20比特编码成3比特二进制数,表示有多少个4比特是1。也就是,第一个第二级组420产生具有权因子20、21、和22的三个中间的输出。
同样地,来自第一级的四个21比特被提供给三个编码器405的第二个第二级组425。编码器405的第二个第二级组425把四个21比特编码成3比特二进制数,表示有多少个4比特是1。也就是,第二个第二级组425产生具有权因子21、22、和23的三个中间的输出。
另外,来自第一级的三个22比特被提供给两个编码器405的第三个第二级组430。编码器405的第三个第二级组430把三个输入比特编码成3比特二进制数,表示有多少个3比特是1。也就是,第三个第二级组430产生具有权因子22、和23的三个中间的输出。
接着,来自编码器的第一和第二个第二级组420、425的两个21比特在半-加法器电路435中被相加在一起,以产生最后的21比特和另一个22比特。平行地,来自编码器的第二和第三个第二级组425、430的两个22比特在另一半-加法器电路435中被相加在一起,以产生第三个22比特和第三个23比特。这样,在第二级,总体计数器325产生一个20比特、一个21比特、三个22比特、和三个23比特。
在总体计数器325的第三级,该20比特和21比特被复制为总体计数器的最后输出比特。该三个22比特被提供给两个编码器405的第三级组440。编码器405的第三级组440把三个输入比特编码成2比特二进制数,表示有多少个3比特是1。也就是,第三级组440产生具有权因子22、和23的两个输出。该22比特被提供为总体计数器325的最后的22比特输出。
现在剩下总共四个23比特要被处理。然而,输入到15比特总体计数器325的输入端总数是15,这样,1的数目不能超过15。所以至多地,23比特的数目可以等于1。因此,该四个23比特被加到或门445,以产生最后的23比特作为总体计数器325的输出。
在优选实施例中,在双重相关器300中的每个15比特总体计数器325通过剩余FPGA器件(例如XILINX XC4025E FPGA)中的可配置逻辑块(CLB)被构建。在那种情况下,15比特总体计数器的第一级需要总共五个半的CLB,第二级需要总共四个半的CLB,以及第三级需要总共两个CLB。
总之,对于两个参考序列“A”和“B”的每个序列,双重相关器300包括2*[N/2-modulo-15]个15比特总体计数器325,以便对于由XOR门在每个相关器时钟周期产生的2比特宽未结束的对二的补码的相关乘积执行无正负号相加。15比特总体计数器每个产生4比特无正负号的二进制数输出,它们被提供给加法树330、335,这将在下面讨论。未提供给2*[N/2-modulo-15]个15比特总体计数器325的LSB相关乘积和NLSB相关乘积被分别提供给加法树330和335。
例如,对于与长度为N/2=128(N=256)的参考序列进行相关,双重相关器300包括[256/2-modulo-15]=8个15比特总体计数器(加上128个乘积比特中的8*15=120个),产生对于LSB相关乘积的8个4比特无正负号二进制数,以及另八个15比特总体计数器产生对于次最低有效比特(NLSB)相关乘积的8个4比特无正负号二进制数。在那种情况下,八个128 LSB产物的最后的组被提供给加法树330的承载输入端。同样地,八个128 NLSB产物的最后的组被提供给加法树335的承载输入端。
每个加法树330、335是把来自15比特总体计数器的4比特无正负号二进制数相加在一起的传统的加法树。一定要正确地针对结果考虑对于在每一级被相加的比特位置的正确加权值。对于NLSB产物的加法树335的输出,在它被加到对于NLSB产物的加法树335的输出以产生所有N/2个2比特相关乘积的和值之前,被向右移一位以乘以二。这个和值的最大值是(N/2)*3=3N/2。例如,在N=256相应于长度128的相关器的情况下,最大值是384,它需要一个9比特的表示式。
在每个相关时钟周期期间所产生的所有N/2个2比特相关乘积的和值被加到累加器340的较高比特输入端。要记住,8比特数据值在四个相关器时钟周期内一次被处理两个比特。在第一相关器时钟周期期间,相关器处理每个数据样本的LSB和NLSB比特。因此,来自累加器340的反馈在移位寄存器350中被向右移两个比特,以便相对于在下一个相关器时钟周期期间处理的来自下一个N/2比特-对的和值,减小其重要性四倍。
在接下来的三个相关器时钟周期的每个时钟周期期间,2比特宽的数据序列移位寄存器被向右移一个位置。每次,相关乘积的和值在累加器340中与四倍的先前结果的权重相加,并被求和到先前的累加器总和的向左两个比特。
在四个相关器时钟周期内所有四次求和的结果是无符号的二进制数,它的最大值是N/2乘以最大的8比特值,也就是255*(N/2),它需要8+1og2(N/2)个比特来表示。例如,如果N=256,则N/2是128,以及最大值是32640,它需要15比特来表示。
最后,为了得到正确的对二的补码的相关值,必须执行最后两个操作。首先,该结果必须对于在乘法处理时使用的未结束的对二的补码运算来被校正。为做到这一点,相关器必须加进在所有的1,这些1是当相关器对数据样本执行XOR选择性求补功能时没有被加上的。有利地,控制双重相关器运行的微控制器提供选择性求补校正值,它表示由XOR门求补的数据序列样本数,相应于在参考序列寄存器中为1的比特数。
其次,由于总体计数器把来自XOR门的进入的数据作为无正负号的数据处理,校正值必须被补偿。如果该结果没有被求反,则该结果的正负号将是错误的。相关器提供要被相加的正负号校正值,以提供这个补偿。在N=256的优选实施例中,正负号校正值是400016。
在优选实施例中,通过微控制器把正负号校正值加到选择性求补校正值,然后把结果一次地加到校正加法器355以补偿在总体计数器中的无正负号变换和在XOR门中的未结束的对二的补码运算,而完成以上的两个运算。替换地,组合的校正值可在一开始被预先装载在累加器中,而不是在结束时被加上。
这样,对于每个数据时钟周期,双重相关器产生相应于参考序列“A”的正确的对二的补码的相关值。双重相关器300包括除了2比特宽数据移位寄存器以外的每一项的复制品,以产生对于第二参考序列“B”的第二相关值。
对于参考序列“A”和“B”的相关值,每个可与相关参考门限值进行比较,以检测相关事件,如技术上所熟知的。
在优选实施例中,双重相关器300用FPGA来被构建。在优选实施例中,FPGA是XILINX XC4025E FPGA。在那种情况下,使用RAM模块来实现2比特宽数据序列移位寄存器、复用数据序列移位寄存器来实行两次相关功能、以及总体计数器都有助于允许以单个FPGA实现两个非常长的数据序列相关器,而现有技术的传统相关器将是不适合的。
例如,按照本发明,用于把数据序列与两个参考序列(每个的长度为N/2=128)进行相关的双重相关器可以用单个XILINX XC4025EFPGA来构建。在那种情况下,2比特宽数据序列移位寄存器可以包含256个8比特数据样本,每隔一个数据样本被抽头。例如,这对于相关把每个符号采样两次的I或Q接收机数据进行相关,以提供附加的粗略定时信息给通信接收机,是有用的。
虽然这里揭示了优选实施例,但是保持在本发明的概念和范围内的许多变动是可能的。对于参阅过这里的说明、附图、和权利要求的本领域的技术人员,这样的变动将变得很明白。所以,本发明要被限制在所附属的权利要求的精神与范围内。
权利要求
1.用于把包括多个数据样本的数据序列与包括多个第一参考序列值的第一参考序列和包括多个第二参考序列值的第二参考序列同时进行相关的相关器,包括数据序列移位寄存器,用于接收和存储数据样本;第一参考寄存器,用于存储第一参考序列值;第二参考寄存器,用于存储第二参考序列值;第一组第一乘法器,用于把每一个数据样本与相应的一个第一参考序列值相乘,以产生一组第一相关乘积;第二组第二乘法器,用于把每一个数据样本与相应的一个第二参考序列值相乘,以产生一组第二相关乘积;第一加法器,用于相加第一相关乘积,以产生第一相关值;以及第二加法器,用于相加第二相关乘积,以产生第二相关值。
2.权利要求1的相关器,其特征在于,其中所述数据序列移位寄存器包括多个随机存取存储器。
3.权利要求2的相关器,其特征在于,其中所述随机存取存储器,每个是1比特宽。
4.权利要求1的相关器,其特征在于,其中所述第一乘法器和所述第二乘法器是异或门。
5.权利要求1的相关器,其特征在于,其中所述第一加法器和所述第二加法器,每个包括总体计数器。
6.用于把包括多个对二的补码的数据样本的数据序列与包括多个参考序列值的参考序列进行相关,以产生对二的补码的相关值的相关器,包括数据序列移位寄存器,用于接收和存储对二的补码的数据样本;参考寄存器,用于接收和存储参考序列值;多个乘法器,用于把每一个对二的补码的数据样本与参考序列值之一相乘,以产生多个未结束的对二的补码的相关乘积;加法器,用于以无正负号的运算相加多个未结束的对二的补码的相关乘积,以产生无正负号相关结果;以及累加器,用于累加部分和,以及把校正因子相加到无正负号相关结果,以产生对二的补码的相关值。
7.权利要求6的相关器,其特征在于,其中所述数据序列移位寄存器包括多个随机存取存储器。
8.权利要求6的相关器,其特征在于,其中多个乘法器是异或门。
9.权利要求6的相关器,其特征在于,其中加法器包括一个或多个总体计数器。
10.用于把包括多个对二的补码的数据样本的数据序列与包括多个参考序列值的参考序列进行相关,以产生对二的补码的相关值的方法,包括以下步骤把每一个对二的补码的数据样本与参考序列值之一相乘,以产生多个未结束的对二的补码的相关乘积;在加法器中,以无正负号的运算相加多个未结束的对二的补码的相关乘积,以产生无正负号的相关结果;以及把校正因子相加到无正负号的相关结果,以产生对二的补码的相关值。
11.权利要求10的相关方法,其特征在于,其中乘法步骤是通过多个异或门实行的。
12.权利要求10的相关方法,其特征在于,其中加法器包括一个或多个总体计数器。
全文摘要
可编程数字相关器器件及有关的相关方法,具有非常有效的结构。在一个方面,两个或多个相关器共享一个公共的数据序列移位寄存器。在另一方面,数据序列移位寄存器由随机存取存储器(RAM)模块组成,它们允许以现场可编程门阵列(FPGA)逻辑器件有效地构建。把对二的补码的数据样本与参考序列相乘,以产生未结束的对二的补码的乘积,这些乘积在包含总体计数器的加法器中以无正负号的运算被求和,以产生未结束的对二的补码的乘积,以及在所有其它计算完成以后加上校正因子,以便把无正负号的结果变换回到对二的补码数。
文档编号G06F17/15GK1226980SQ98800448
公开日1999年8月25日 申请日期1998年4月7日 优先权日1997年4月9日
发明者P·M·弗雷丁, D·G·德克尔, M·J·瑟尔罗纳, N·F·克拉斯纳 申请人:Ge基本太空网络服务公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1