專利名稱:相關器方法和設備的制作方法
技術領域:
本發明關系到數字信號領域,更具體地,關系到數字相關。
相關技術背景相關器已被廣泛地使用于信號處理,以便測量在數據序列和預定的模式或參考序列之間的相關的程度。在一維數字信號處理的情況下,相關值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基本太空網絡服務公司