專利名稱:一種實現(xiàn)二進制多項式運算的硬件配置方法及硬件系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信及微電子領域的數(shù)據(jù)處理技術,特別是涉及一種實現(xiàn)二進制多項式運算的硬件配置方法及硬件系統(tǒng)。
背景技術:
二進制多項式運算是常用的數(shù)據(jù)處理計算的基本形式,其典型應用實例包括廣泛用于通信系統(tǒng)解決方案的循環(huán)冗余校驗(Cyclic Redundancy Check,縮寫CRC)。在數(shù)據(jù)處理過程中,采用二進制表示的數(shù)據(jù),可以被看作是一個二進制多項式的系數(shù),多項式乘除法運算過程與普通代數(shù)多項式的乘除法相同,而且多項式的加減法運算以2為模,和邏輯異或運算一致。
以CRC為例,采用CRC校驗時,發(fā)送方和接收方使用同一個生成多項式g(x),并且g(x)的首位和最后一位的系數(shù)必須為1。CRC的處理方法是發(fā)送方以g(x)去除數(shù)據(jù)t(x),得到余數(shù)作為CRC校驗碼;校驗時,接受方以計算的校正結果是否為0為據(jù),判斷接收數(shù)據(jù)是否出錯。計算過程中所有步驟都為二進制多項式運算。
這種二進制多項式的計算過程在硬件上是循環(huán)移位的模2運算,當數(shù)據(jù)為串行輸入時這種運算對應硬件實現(xiàn)上的線性反饋移位寄存器,其線性反饋移位邏輯由計算公式?jīng)Q定,在CRC中表現(xiàn)為移位寄存器與生成多項式g(x)的各項一一對應。例如,如果要計算多項式g(x)=x3+x+1,就必須設計具有三個移位寄存器的硬件電路,分別對應x3、x1、x0,可以看出,如果計算不同長度和不同項的多項式都要分別設計硬件電路,非常麻煩,效率很低。
因此,如何克服現(xiàn)有技術中一個硬件實現(xiàn)只能對應一種計算方案的缺陷,如何提供一種通用的硬件實現(xiàn),使線性反饋移位邏輯達到可配置化,以支持多種方案乃至多種長度的二進制多項式運算,是有待解決的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種實現(xiàn)二進制多項式運算的硬件配置方法及硬件系統(tǒng),解決現(xiàn)有技術的一個硬件實現(xiàn)只能對應一種運算方案,不能完成不同方案的二進制多項式運算的技術問題。
為了實現(xiàn)上述目的,本發(fā)明提供了一種實現(xiàn)二進制多項式運算的硬件配置方法,其中,包括如下步驟步驟一,對于采用串行數(shù)據(jù)輸入的n個線性反饋移位寄存器,每個寄存器按輸入輸出順序分別代表二進制多項式的x1至xn中的一項;步驟二,通過在各寄存器的輸入端口設置實現(xiàn)選擇功能的組合邏輯單元,來設置該寄存器的前一個寄存器所對應的二進制多項式的項的系數(shù)。
上述的方法,其中,還包括步驟三,將各寄存器的值輸入到最高位選擇邏輯單元,并將所述最高位選擇邏輯單元的輸出連接到所述組合邏輯單元的輸入端口的異或運算邏輯單元,通過所述最高位選擇邏輯單元設置所述二進制多項式的項所允許具有的最高位。
上述的方法,其中,在所述步驟二中,代表x1的移位寄存器的輸入端口的組合邏輯單元,用來控制二進制多項式的x0的系數(shù)。
上述的方法,其中,設置參數(shù)C和參數(shù)K,所述參數(shù)C包括n個二進制數(shù)分別對應輸入所述n個寄存器的輸入端口的組合邏輯單元,用來選則x0至xn-1的系數(shù),所述參數(shù)K輸入所述最高位選擇邏輯單元,實現(xiàn)所述最高位選擇邏輯單元的n選一功能,得到所述二進制多項式的項所允許具有的最高位。
上述的方法,其中,通過對參數(shù)C和參數(shù)K的設置,實現(xiàn)對二進制多項式的各項系數(shù)和所允許的最高位的設置和更改。
為了實現(xiàn)本發(fā)明的目的,本發(fā)明還提供了一種實現(xiàn)二進制多項式運算的硬件系統(tǒng),其中,包括采用串行數(shù)據(jù)輸入的n個線性反饋移位寄存器,每個寄存器按輸入輸出順序分別代表二進制多項式的x1至xn中的一項;設置在各寄存器的輸入端口的實現(xiàn)選擇功能的組合邏輯單元,用來設置該寄存器的前一個寄存器所對應的二進制多項式的項的系數(shù)。
上述的硬件系統(tǒng),其中,還包括最高位選擇邏輯單元,用來設置所述二進制多項式的項所允許具有的最高位;各寄存器的值輸入到所述最高位選擇邏輯單元,所述最高位選擇邏輯單元的輸出連接到所述組合邏輯單元的輸入端口的異或運算邏輯單元。
上述的硬件系統(tǒng),其中,代表x1的移位寄存器的輸入端口的組合邏輯單元,用來控制二進制多項式的x0的系數(shù)。
上述的硬件系統(tǒng),其中,所述n個寄存器的輸入端口的組合邏輯單元分別對應輸入n個二進制數(shù),用來選則x0至xn-1的系數(shù);所述最高位選擇邏輯單元輸入?yún)?shù)K,用來實現(xiàn)所述最高位選擇邏輯單元的n選一功能;所述n個二進制數(shù)組成參數(shù)C。
本發(fā)明的技術效果在于本發(fā)明提出一個硬件實現(xiàn)設計,能夠在硬件上靈活配置移位寄存器的線性反饋移位邏輯,可以完成不同方案的二進制多項式運算,包括不同長度的方案,從而極大提高了硬件實現(xiàn)的效率和系統(tǒng)的靈活性。
圖1為本發(fā)明方法的步驟流程圖;圖2為本發(fā)明方法的硬件實現(xiàn)示意圖;圖3a、3b為本發(fā)明方法在預定實施例參數(shù)下所等效的硬件示意圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施例對本發(fā)明進行詳細描述。
圖1為本發(fā)明方法的步驟流程圖,如圖,本發(fā)明方法包括步驟101,對于采用串行數(shù)據(jù)輸入的n個線性反饋移位寄存器,每個寄存器按輸入輸出順序分別代表二進制多項式的x1至xn中的一項;步驟102,通過在各寄存器的輸入端口設置實現(xiàn)選擇功能的組合邏輯單元,來設置該寄存器的前一個寄存器所對應的二進制多項式的項的系數(shù);步驟103,將各寄存器的值輸入到最高位選擇邏輯單元,并將所述最高位選擇邏輯單元的輸出連接到所述組合邏輯單元的輸入端口的異或運算邏輯單元,通過所述最高位選擇邏輯單元設置所述二進制多項式的項所允許具有的最高位。
在本發(fā)明方法中,還設置參數(shù)C和參數(shù)K,通過對參數(shù)C和參數(shù)K的設置,實現(xiàn)對二進制多項式的各項系數(shù)和所允許的最高位的設置和更改。所述參數(shù)C包括n個二進制數(shù)分別對應輸入所述n個寄存器的輸入端口的組合邏輯單元,用來選則x0至xn-1的系數(shù),所述參數(shù)K輸入所述最高位選擇邏輯單元,實現(xiàn)所述最高位選擇邏輯單元的n選一功能,得到所述二進制多項式的項所允許具有的最高位。
圖2為本發(fā)明方法的硬件實現(xiàn)示意圖,如圖,所示的邏輯電路中包含采用串行數(shù)據(jù)輸入的n個移位寄存器201至20n;其線性反饋邏輯由兩部分組成相鄰寄存器之間的實現(xiàn)選擇功能的組合邏輯(包括該組合邏輯輸入端口的一個異或運算邏輯),和最高位選擇邏輯210(一個實現(xiàn)選擇功能的反饋選擇邏輯,其輸入為各個寄存器值)。這兩部分的選擇信號分別由參數(shù)C和參數(shù)K控制。
以CRC為例,當這套計算電路用于CRC計算時,假設最大設計CRC位數(shù)設為n,參數(shù)C[n-1:0]是n位二進制數(shù),數(shù)值對應CRC生成多項式g(x)的各項系數(shù),參數(shù)C的每一位分別控制一個組合邏輯單元的選擇信號。參數(shù)K用來控制n選1邏輯,選擇所需要的寄存器輸出作為最高位反饋,從而實現(xiàn)不超過n位的任意位數(shù)的CRC算法。
使用這種電路,可以根據(jù)預先設計好的參數(shù)(參數(shù)C和參數(shù)K)來選擇實現(xiàn)多種二進制多項式計算方案,包括不同系數(shù)和不同長度的配置。在需要支持多種CRC的系統(tǒng)實現(xiàn)中,每種CRC方案對應一組參數(shù)C和K的設定。
圖3a、3b為本發(fā)明方法在預定實施例參數(shù)下所等效的硬件示意圖,如圖,如果要計算二進制多項式g(x)=x3+x+1,可以先選擇最高位,因為g(x)的最高位的項是x3,所以選擇參數(shù)K=3,這樣等效電路就如圖3a所示,也就是確定了多項式的長度。然后確定各項的系數(shù),由g(x)=x3+x+1可知,C
=1,C[1]=1,C[2]=0,因此,按此參數(shù)所選擇的等效電路如圖3b所示,這樣,通過對參數(shù)C和K的設定,就實現(xiàn)了任意多項式的硬件實現(xiàn)。
由上可知,與以前的技術相比,本發(fā)明的優(yōu)點在于可以在硬件實現(xiàn)電路中選擇配置線性反饋邏輯,可支持多種二進制多項式運算的方案,包括不同長度的方案,從而極大提高了硬件實現(xiàn)的效率和系統(tǒng)的靈活性。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
權利要求
1.一種實現(xiàn)二進制多項式運算的硬件配置方法,其特征在于,包括如下步驟步驟一,對于采用串行數(shù)據(jù)輸入的n個線性反饋移位寄存器,每個寄存器按輸入輸出順序分別代表二進制多項式的x1至xn中的一項;步驟二,通過在各寄存器的輸入端口設置實現(xiàn)選擇功能的組合邏輯單元,來設置該寄存器的前一個寄存器所對應的二進制多項式的項的系數(shù)。
2.根據(jù)權利要求1所述的方法,其特征在于,還包括步驟三,將各寄存器的值輸入到最高位選擇邏輯單元,并將所述最高位選擇邏輯單元的輸出連接到所述組合邏輯單元的輸入端口的異或運算邏輯單元,通過所述最高位選擇邏輯單元設置所述二進制多項式的項所允許具有的最高位。
3.根據(jù)權利要求1或2所述的方法,其特征在于,在所述步驟二中,代表x1的移位寄存器的輸入端口的組合邏輯單元,用來控制二進制多項式的x0的系數(shù)。
4.根據(jù)權利要求3所述的方法,其特征在于,設置參數(shù)C和參數(shù)K,所述參數(shù)C包括n個二進制數(shù)分別對應輸入所述n個寄存器的輸入端口的組合邏輯單元,用來選則x0至xn-1的系數(shù),所述參數(shù)K輸入所述最高位選擇邏輯單元,實現(xiàn)所述最高位選擇邏輯單元的n選一功能,得到所述二進制多項式的項所允許具有的最高位。
5.根據(jù)權利要求4所述的方法,其特征在于,通過對參數(shù)C和參數(shù)K的設置,實現(xiàn)對二進制多項式的各項系數(shù)和所允許的最高位的設置和更改。
6.一種實現(xiàn)二進制多項式運算的硬件系統(tǒng),其特征在于,包括采用串行數(shù)據(jù)輸入的n個線性反饋移位寄存器,每個寄存器按輸入輸出順序分別代表二進制多項式的x1至xn中的一項;設置在各寄存器的輸入端口的實現(xiàn)選擇功能的組合邏輯單元,用來設置該寄存器的前一個寄存器所對應的二進制多項式的項的系數(shù)。
7.根據(jù)權利要求6所述的硬件系統(tǒng),其特征在于,還包括最高位選擇邏輯單元,用來設置所述二進制多項式的項所允許具有的最高位;各寄存器的值輸入到所述最高位選擇邏輯單元,所述最高位選擇邏輯單元的輸出連接到所述組合邏輯單元的輸入端口的異或運算邏輯單元。
8.根據(jù)權利要求6或7所述的硬件系統(tǒng),其特征在于,代表x1的移位寄存器的輸入端口的組合邏輯單元,用來控制二進制多項式的x0的系數(shù)。
9.根據(jù)權利要求8所述的硬件系統(tǒng),其特征在于,所述n個寄存器的輸入端口的組合邏輯單元分別對應輸入n個二進制數(shù),用來選則x0至xn-1的系數(shù);所述最高位選擇邏輯單元輸入?yún)?shù)K,用來實現(xiàn)所述最高位選擇邏輯單元的n選一功能;所述n個二進制數(shù)組成參數(shù)C。
全文摘要
本發(fā)明提供了一種實現(xiàn)二進制多項式運算的硬件配置方法及硬件系統(tǒng),方法包括對于采用串行數(shù)據(jù)輸入的n個線性反饋移位寄存器,每個寄存器按輸入輸出順序分別代表二進制多項式的x
文檔編號G06F5/06GK101055516SQ20071009980
公開日2007年10月17日 申請日期2007年5月30日 優(yōu)先權日2007年5月30日
發(fā)明者周濤 申請人:北京天碁科技有限公司