亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

數(shù)字邏輯電路中用于多比特向量的高效比較運(yùn)算的系統(tǒng)和方法

文檔序號(hào):6456930閱讀:409來(lái)源:國(guó)知局
專利名稱:數(shù)字邏輯電路中用于多比特向量的高效比較運(yùn)算的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字邏輯電路,更具體地說(shuō),涉及數(shù)字集成電路內(nèi)的比較邏輯單元。
背景技術(shù)
兩個(gè)多比特向量的比較是在數(shù)字邏輯電路中執(zhí)行的普通運(yùn)算。在數(shù)字邏輯 電路中執(zhí)行相等性的比較運(yùn)算也是普通的。此外,有時(shí)需要確定兩個(gè)多比特向量在值 上是否相差特定量。例如,經(jīng)常需要執(zhí)行比較運(yùn)算來(lái)找出兩個(gè)多比特向量之間的差是
否等于+1、+2.......+η。常常還需要確定,當(dāng)m和η 二者都已知時(shí),兩個(gè)多比特向量
Α[Ν-1:0]與Β[Ν-1:0]之間的差是否在+m到+η的范圍內(nèi),其中m<n,即,評(píng)估不等式 +m ≤ A[N-1:0]-B[N-1:0]≤ +n。傳統(tǒng)上,在數(shù)字邏輯電路中,對(duì)兩個(gè)多比特向量執(zhí)行比較運(yùn)算以檢查相等性,例如 Α[Ν-1:0] ==Β[Ν-1:0]+η,將需要N比特加法器/減法器,之后跟隨N比特比較器。此外, 用于執(zhí)行運(yùn)算以確定兩個(gè)向量之間的差是否在特定范圍內(nèi)的傳統(tǒng)技術(shù)需要至少一個(gè)加法 器/減法器和多個(gè)比較器。通常,數(shù)字邏輯電路內(nèi)的每個(gè)加法器/減法器需要相當(dāng)大量的 邏輯門,這需要大的硅面積。此外,這導(dǎo)致了明顯的時(shí)延。

發(fā)明內(nèi)容
根據(jù)主題的一方面,提供一種用于在數(shù)字邏輯電路內(nèi)對(duì)兩個(gè)多比特向量進(jìn)行比較 的方法,該方法包括以下步驟在所述數(shù)字邏輯電路中接收第一 N比特向量Α[Ν-1:0]和第 二 N比特向量Β[Ν-1:0],其中,N為非零正數(shù),通過(guò)使用Α[Ν-1:0]和 Β[Ν_1:0]執(zhí)行按比 特AND (A [N-1 0] & B [N-1 0])運(yùn)算來(lái)獲得第三N比特向量,其中,通過(guò)對(duì)第二 N比特向量 B[N-1:0]中的每個(gè)比特進(jìn)行反轉(zhuǎn)來(lái)獲得 B [N-1:0],通過(guò)使用A [N-1:0]和 B[N_1:0]執(zhí) 行按比特XOR (A [N-1 0Γ B [N-1 0])運(yùn)算來(lái)獲得第四N比特向量,并且基于第三N比特 向量和第四N比特向量中的比特模式,斷定A[N-1:0]與B[N-1:0]之間的差是否等于給定 的數(shù)或處于兩個(gè)數(shù)+m和+η的給定范圍內(nèi),其中,m < η。


現(xiàn)將參照附圖僅以示例的方式描述本發(fā)明實(shí)施例,在附圖中圖1示出用于實(shí)現(xiàn)數(shù)字邏輯電路內(nèi)的比較運(yùn)算的根據(jù)本主題的實(shí)施例的流程圖;圖2示出在根據(jù)本主題的實(shí)施例的數(shù)字邏輯電路中,當(dāng)兩個(gè)多比特向量之間的差 等于+1時(shí),用于實(shí)現(xiàn)比較運(yùn)算的裝置的框圖;圖3示出在根據(jù)本主題的實(shí)施例的數(shù)字邏輯電路中,當(dāng)兩個(gè)多比特向量之間的差 等于+2時(shí),用于實(shí)現(xiàn)比較運(yùn)算的裝置的框圖;圖4示出在根據(jù)本主題的實(shí)施例的數(shù)字邏輯電路中,當(dāng)兩個(gè)多比特向量之間的差 等于+3時(shí),用于實(shí)現(xiàn)比較運(yùn)算的裝置的框圖5示出在根據(jù)本主題的實(shí)施例的數(shù)字邏輯電路中,當(dāng)兩個(gè)多比特向量之間的差 等于0或等于+1時(shí),用于實(shí)現(xiàn)比較運(yùn)算的裝置的框圖。
具體實(shí)施例方式在本發(fā)明各種實(shí)施例的以下詳細(xì)描述中,參照形成本發(fā)明的一部分的附圖,并且 在附圖中通過(guò)說(shuō)明的方式示出其中可以實(shí)踐本發(fā)明的具體實(shí)施例。充分詳細(xì)地描述這些 實(shí)施例,以使得本領(lǐng)域技術(shù)人員能夠?qū)嵺`本發(fā)明,并且應(yīng)理解,在不脫離本發(fā)明范圍的情況 下,可以利用其它實(shí)施例,并且可以進(jìn)行改變。因此,以下詳細(xì)描述不應(yīng)看作限制的意義,并 且本發(fā)明的范圍僅由所附權(quán)利要求限定。文中通篇可互換地使用術(shù)語(yǔ)“多比特向量”和“N比特向量”。此外,文中通篇可互 換地使用術(shù)語(yǔ)第一 N比特向量、第一 N比特向量A[N-1:0]、以及A[N-1:0]。此外,文中通篇 可互換地使用術(shù)語(yǔ)第二 N比特向量、第二 N比特向量B[N-1:0]、以及B[N-1:0]。同時(shí),文中 通篇可互換地使用術(shù)語(yǔ)“0到1”以及“0- > 1”。另外,在數(shù)字邏輯電路的情況下,符號(hào)“0” 和“1”用于將0和1的值分別表示為低邏輯電平和高邏輯電平。同時(shí),文中通篇相等性邏輯Α[Ν-1:0] ==Β[Ν-1:0]+η被表示為并用于等價(jià)形式 A[N-1:0]-B[N-1:0] == η、Α[Ν-1:0] + B[N-1:0]+1 == η、以及 A[N_1:0] + B[N_1:0] = =n-l。為了當(dāng)η = 1時(shí)相等性邏輯對(duì)于比較運(yùn)算保持為真,,Α[Ν-1:0]+ Β[Ν-1:0]之 和應(yīng)產(chǎn)生0。類似地,為了對(duì)于η = 2相等性為真,Α[Ν-1:0]+ Β[Ν-1:0]必須產(chǎn)生1,等寸。圖1示出用于當(dāng)兩個(gè)操作數(shù)之間的差等于+η(對(duì)于給定的η)或者在兩個(gè)給定的 數(shù),即+m和+η的范圍內(nèi)時(shí),對(duì)兩個(gè)多比特向量執(zhí)行比較運(yùn)算的示例方法100。在步驟110, 方法100由接收第一 N比特向量Α[Ν-1:0]和第二 N比特向量Β[Ν-1:0]而開(kāi)始。N比特向 量可以是任何多比特向量。在一些實(shí)施例中,所述N比特向量是8比特向量、16比特向量、 24比特向量、32比特向量或64比特向量。在步驟120,對(duì)Β[Ν-1:0]執(zhí)行按比特反轉(zhuǎn),以獲得 B [N_l 0],S卩,通過(guò)對(duì) Β[Ν-1:0]的每個(gè)比特進(jìn)行反轉(zhuǎn)獲得 Β[Ν-1:0]。在步驟130,通過(guò)使用接收到的Α[Ν-1:0] 和所獲得的 Β[Ν-1:0]執(zhí)行按比特AND(A[N-1:0]& Β[Ν-1:0])運(yùn)算來(lái)獲得第三N比 特向量。在步驟140,通過(guò)使用接收到的Α[Ν-1:0]和所獲得的 Β[Ν-1:0]執(zhí)行按比特 X0R(A[N-l:0r Β[Ν-1:0])運(yùn)算來(lái)獲得第四N比特向量。在步驟150,基于第三N比特向量和第四N比特向量中的比特模式,斷定接收到的 Α[Ν-1:0]與Β[Ν-1:0]之間的差等于+η (對(duì)于給定的η)或者處于+m和+η的范圍內(nèi)(當(dāng)m 和η是給定的,并且111 < η時(shí))。例如,步驟150可以基于第三N比特向量和第四N比特向 量中的比特模式來(lái)確定接收到的Α[Ν-1:0]與Β[Ν-1:0]之間的差是否是0或1。以下示例 描述比較運(yùn)算的具體情況情況(1)當(dāng)η = ι 時(shí),等式 A = = Β+η 的估計(jì) (A_EQ_B_PLUS_1)在某些實(shí)施例中,對(duì)于n = 1的比較運(yùn)算,即,接收到的A [Ν-1 0]與B [N_l 0]之間 的差等于+1 (即A [Ν-1 0] = = B [Ν-1 0] +1),在步驟150,上述方法100確定當(dāng)將A [Ν-1 0] 與 Β[Ν-1:0]相加時(shí)是否得到0。以下示例表使用8比特向量示出方法100。
g 第一8 比特向量 A[N_1:0] 0 10 110 10 0 B[N_1:0] 10 10 0 110 0第三8 比特向量 AND (A& B) 000000100第四8 比特向量 X0R(A" B) 1111110 0 0在以上示例中可見(jiàn),對(duì)于任意比特位置g的右邊,A[N_1:0]和 B[N_1:0]的所有 比特等于0,這使得0作為求和比特,并且不產(chǎn)生進(jìn)位。在以上示例表中,在任意比特位置g 處A[N-1:0]和 B[N-1:0] 二者的比特都等于1,由此產(chǎn)生0作為求和比特,并且產(chǎn)生進(jìn)位。 在任意比特位置g左邊的所有比特位置,要么A[N-1:0]具有1,要么 B[N-1:0]具有1,但 二者不都具有1,從而它們可以傳播進(jìn)位,并且產(chǎn)生0的和。因此,從以上示例表可見(jiàn),檢測(cè)A[N-1:0]-B[N_1:0] = = 1或等效地A[N_1:0] + B[N-1:0] = =0的問(wèn)題等同于借助第三N比特向量和第四N比特向量在A[N-1:0]和 B[N-1:0]中識(shí)別是否存在以上比特模式,第三N比特向量和第四N比特向量表征如下1.當(dāng)從右到左掃描第四N比特向量比特時(shí),發(fā)現(xiàn)僅一次0到1比特轉(zhuǎn)變2.第三N比特向量?jī)H在0到1比特轉(zhuǎn)變比特位置(即任意比特位置g)處具有一 個(gè)1在這些實(shí)施例中,在步驟150,方法100進(jìn)一步確定在第三N比特向量中,在與第四 N比特向量中發(fā)生0到1比特轉(zhuǎn)變的位置相對(duì)應(yīng)的比特位置中的比特是否等于1,并且其余 比特等于0。此外,在步驟150,方法100確定第四N比特向量中是否僅出現(xiàn)一次0到1比 特轉(zhuǎn)變。方法100于是斷定第一 N比特向量A[N-1:0]與第二 N比特向量B[N-1:0]之間的 差等于 +1,或者方法 100 斷定 A [N-1 0] -B [N-1 0] = = +1。假設(shè)LSB是最右邊的比特,通過(guò)在第四N比特向量比特與向右右移一個(gè)比特位置 的相同比特之間執(zhí)行按比特XOR運(yùn)算來(lái)完成第四N比特向量比特中的0-> 1比特轉(zhuǎn)變的 檢測(cè),由此產(chǎn)生第五N比特向量。在將比特向右移位的同時(shí),將最左邊比特或MSB拷貝到因 右移而產(chǎn)生的空位置。通過(guò)在第三N比特向量與第五N比特向量之間按比特XOR運(yùn)算來(lái) 生成第六N比特向量。在這些實(shí)施例中,第六N比特向量?jī)H具有0,通過(guò)對(duì)其所有比特執(zhí)行 NOR運(yùn)算來(lái)檢測(cè)這種情況。如果這種NOR運(yùn)算得到1,則第五N比特向量中的比特與第三N 比特向量比特精確地匹配。g第一8 比特向量 A 0 10 110 10 0 B10 10 0 110 0第三8 比特向量 AND (A& B)000000100第四8 比特向量 X0R(A" B)1111110 0 0XOR >> 111111110 0第五8 比特向量 X0R~ (X0R >> 1) 000000100第六8比特向量第三'第五000000000在上表中可見(jiàn),要使第四N比特向量比特的MSB等于1等同于要求A[N_1:0]和 B[N-1:0]為正數(shù)并且具有0作為其MSB。如果向量A[N-1:0]和B[N_1:0]在它們的解釋中 將被看作無(wú)符號(hào)數(shù),則可以將0比特添加到向量A[N-1:0]和B[N-1:0] 二者在MSB左邊的位置中,由此將兩個(gè)多比特向量的寬度有效地增加1。 為了上述方法得到正確的結(jié)果,第四N比特向量需要具有一次且僅一次0到1比 特轉(zhuǎn)變。當(dāng)?shù)谒腘比特向量比特全部等于1并且第三N比特向量比特等于0時(shí),檢查第四N 比特向量中的0- > 1轉(zhuǎn)變的上述方法可能得不到正確結(jié)果??梢酝ㄟ^(guò)要求第三N比特向 量的比特不全等于0來(lái)排除這種邊界情況。
可以使用以下邏輯等式來(lái)表示整個(gè)運(yùn)算。A_EQ_B_PLUS_1 =( IXOR[N-10]“(XOR[N-10] > > 1))"AND[N-10])&|AND[N-10]或等同地A_EQ_B_PLUS_1 =(&(XOR[N-10] ~(XOR[N—10] > > 1))"AND[N—10])&|AND[N-10]其中,AND[N_1:0]是第三N比特向量,X0R[N_1:0]是第四N比特向量。第四N比特向量的比特移位運(yùn)算,即XOR >> 1,是算術(shù)右移保存MSB的一個(gè)比特 位置。&、~、|和 分別是AND(與)、X0R(異或)、0R(或)以及INVERT(反轉(zhuǎn))運(yùn)算。在等 式右手邊的開(kāi)頭處包括的&和I運(yùn)算符分別表示AND和OR簡(jiǎn)化運(yùn)算。情況(2)當(dāng)η = 2 時(shí),等式 A = = Β+η 的估計(jì)(A_EQ_B_PLUS_2)在一些實(shí)施例中,使用我們的8比特向量運(yùn)行示例在下表中示出對(duì)于涉及η = 2的比較運(yùn)算,即,接收到的Α[Ν-1:0]與Β[Ν-1:0]之間的差等于+2從而Α[Ν_1:0]== Β[Ν-1:0]+2 或等同地 Α[Ν-1:0]+ Β[Ν_1:0] = = +1。可見(jiàn),Α[Ν_1:0]+ Β[Ν_1:0]的 上述加法處理在除了 LSB處之外產(chǎn)生全0,在LSB處,其得到等于1。因此,Α[Ν-1:0]和 Β[Ν-1:0]的比特模式僅可以如下表中所示gA 0 10 110 10 0 B10 10 0 110 1
或A 0 10 110 10 1 B10 10 0 110 0因此,對(duì)于涉及η = 2的比較運(yùn)算,即,接收到的A [N_l 0]與B [N_l 0]之間的差等 于 +2 從而 A [Ν-1 0] == B [Ν-1 0] +2,在步驟 150,方法 100 確定 A [Ν-1 0]和 B [Ν-1 0] 的LSB是否不同(即,方法100確定LSB是否分別是0和1,或者是1和0)。如果Α[Ν_1:0] 和 B [Ν-1 0]的LSB不同,則方法100在步驟150進(jìn)一步確定當(dāng)將第一 N比特向量和第三N 比特向量相加時(shí),A[Ν-1 0]和 B [Ν-1 0]的所有其它比特,即A[Ν-1 1]和 B [Ν-1 1],是 否得到0。在步驟150,可以通過(guò)應(yīng)用與上面在“當(dāng)η= 1時(shí),等式A== Β+η的估計(jì)(A_EQ_ B_PLUS_1)”部分中描述的運(yùn)算相同的運(yùn)算但僅應(yīng)用于A[N-1:1]和 B[N_1:1]比特來(lái)確定 這種情況,這實(shí)質(zhì)上確定A[N-1:1]+ B[N-1:1] ==0。如果A [N-1:0]和 B[N_1:0]的 LSB,即A
和 B
不同,并且當(dāng)A[N-1:0]和 B[N_1:0]的其余比特,即A[N_1 1]和 B[N-1:1]相加時(shí)也得到0,則方法100在步驟150斷定接收到的第一 N比特向量A[N_1:0] 與第二 N比特向量B[N-1:0]之間的差等于+2,即η = +2。使用與以上所描述的相似的邏輯表示,可以使用以下等式來(lái)表示涉及對(duì)于涉及n-2的情況的相等性的以上運(yùn)算A_EQ_B_PLUS_2 =( I (X0R[N-l:ir(X0R[N-l:l] >> 1))~AND[N-1 1])&|AND[N-1 1])&X0R
.情況(3)當(dāng)η = 3 時(shí),等式 A = = Β+η 的估計(jì)(A_EQ_B_PLUS_3)在一些實(shí)施例中,對(duì)于涉及η = 3的比較運(yùn)算(接收到的Α[Ν_1:0]與Β[Ν_1:0] 之間的差等于+3,從而 Α[Ν-1:0] == Β[Ν-1:0]+3,或等同地,Α[Ν-1:0]+ Β[Ν-1:0]== 2),加法處理Α[Ν-1:0]+ Β[Ν-1:0]在除了兩個(gè)LSB處之外的所有位置中產(chǎn)生全0,在所 述兩個(gè)LSB處,其產(chǎn)生二進(jìn)制串10。Α[Ν-1:0]的兩個(gè)LSB以及 Β[Ν_1:0]的關(guān)聯(lián)的兩個(gè) LSB的以下組合產(chǎn)生10 1.Α00 B 102. A 10 B 003. A 01 B 014.A11 B 11如果Α[Ν-1:0]和Β[Ν-1:0]的兩個(gè)LSB與以上列出的前三種情況之一相同,則當(dāng) 第一 N比特向量與第二 N比特向量相加時(shí),Α[Ν-1:0]和Β[Ν-1:0]的所有其余比特產(chǎn)生0。 在這些實(shí)施例中,參照在“當(dāng)η = 1時(shí),等式A = = Β+η的估計(jì)”部分所描述的方法可以應(yīng) 用于這些比特,S卩[N-l:2]。如果Α[Ν-1:0]和Β[Ν-1:0]的兩個(gè)LSB與以上列出的最后一種 情況相同,則其得到對(duì)于第3LSB位置的進(jìn)位。在此情況下,要在除了兩個(gè)LSB位置之外的 所有位置得到全0,所有其余比特,即Α[Ν-1:2]和 Β[Ν-1:2]當(dāng)相加時(shí)必須產(chǎn)生全1。因此,對(duì)于η = 3,上述方法100在步驟150確定Α[Ν_1:0]的兩個(gè)LSB以及 Β[Ν-1:0]的關(guān)聯(lián)的兩個(gè)LSB是否等于10和00、00和10、或01和01。如果Α[Ν_1:0]的兩 個(gè)LSB以及 Β[Ν-1:0]的關(guān)聯(lián)的兩個(gè)LSB等于10和00、00和10、或01和01,則方法100 在步驟150然后對(duì)Α[Ν-1:0]和 Β[Ν-1:0]的比特[N_l:2]通過(guò)應(yīng)用參照在“當(dāng)η = 1時(shí), 等式A = = Β+η的估計(jì)”部分所概括的相同運(yùn)算來(lái)確定是否A[Ν-1 2] + B[Ν-1:2]== 0。如果這兩個(gè)檢查是成功的,則方法100斷定第一 N比特向量Α[Ν-1:0]與第二 N比特向量 Β[Ν-1:0]之間的差等于+3。如果方法100在步驟150確定Α[Ν-1:0]和 Β[Ν_1:0] 二者 的兩個(gè)LSB都是11,則方法100進(jìn)一步確定第四向量的所有其余比特位置,即X0R[N-1:2] 中是否為全1。方法100于是斷定第一 N比特向量A[N-1:0]與第二 N比特向量B[N_1:0] 之間的差等于+3。以下通過(guò)等式的形式示出上述運(yùn)算情形如果 no_carry= (A [1:0] ==00& B [1:0] ==10)(A[1:0] == 10& B[1:0] == 00)
(A[1:0] == 01& B[1:0] == 01)with_carry = (A [1:0] == 11& B [1:0] ==11)
A_EQ_B_PLUS_3 =no_carry&( IXOR[N-l:2]“(XOR[N_l2] > > 1))"AND[N_l:2])&|AND[N_l:2])with_carry&(& IXOR [N-l: 2])情況⑷當(dāng)η > 3時(shí),等式A = = B+n的估計(jì)可見(jiàn),上述方法對(duì)于η = +3可以一般地?cái)U(kuò)展到任何給定的數(shù)字,即η > 3。對(duì)于任 何給定的η,Α[Ν-1:0] + Β[Ν-1:0]需要等于η_1。此外,需要檢查Α[Ν_1 0]和 Β[Ν_1:0] 的適當(dāng)數(shù)量的最低有效位,以查看它們是否相加為n-l。如果存在由最低有效位的這個(gè)和而 產(chǎn)生的進(jìn)位,則第四N比特向量中的剩余比特必須全等于1。如果不存在進(jìn)位,則將在“當(dāng)η =1時(shí),等式A == B+n的估計(jì)”部分中所概括的對(duì)于η = 1的情況的方法應(yīng)用于Α[Ν_1 0] 和 Β[Ν-1:0]的其余比特,以檢查當(dāng)它們相加時(shí)是否得到0。情況(5)不等式m彡A-B彡η 的估計(jì)在一些情況下,可以預(yù)見(jiàn),通過(guò)細(xì)微的修改,上述技術(shù)也可以用于確定兩個(gè)接收到 的多比特向量之間的差是否在+m到+η的范圍內(nèi),m<n。這種比較還涉及在A[N_1 0]與 B[N-1:0]之和的高階比特中進(jìn)行0的檢測(cè),對(duì)此,可以對(duì)適當(dāng)?shù)谋忍貞?yīng)用在“當(dāng)η = 1時(shí),等 式A== B+n的估計(jì)”部分中所概括的相同方法。例如,可以確定A[N-1:0]與 B[N_1:0] 之間的差是否處于 0 與 +1 內(nèi)(即,A[N-1:0] == B[N-1:0]或 A[N_1:0] = = B [N-l 0]+1) 或者處于0 與+2 內(nèi)(即,A[N-1:0] = = B[N-1:0]或A[N_1:0] = = B[N_1:0]+1 或A[N_1:0] = =B[N-l:0]+2)o例如,為了確定兩個(gè)接收到的多比特向量之間的差處于0與+1內(nèi)(即 A[N-1:0] == B[N-1:0]或A[N-1:0] = = B [N_l 0]+1),在去除檢查第三N比特向量中是 否至少存在一個(gè)比特等于1的步驟之后,可以使用參照在“當(dāng)η = 1時(shí),等式A == B+n的 估計(jì)”部分中所概括的確定兩個(gè)接收到的向量之間的差為+1的上述方法100。使用與前面 相似的邏輯表示,該不等式0 < A-B < 1可以通過(guò)以下等式的形式來(lái)表示A_EQ_B_PLUS_0_0R_1 =( I (XOR[N-10]“(XOR[N-10] > > 1))"AND[N-l0])類似地,為了確定兩個(gè)接收到的多比特向量之間的差是否等于+1或者等于+2 (即 A[N-1:0] = = B[N-1:0]+1 或 A[N-1:0] = = Β[Ν_1:0]+2),在利用檢查 A[N_1:0]和 B[N-1:0]的LSB 二者是否都等于1來(lái)替代檢查A [N-l: 0]和 B[N_1:0]的LSB是否為0和 1或1和0的步驟之后,可以使用參照在“當(dāng)η = 2時(shí),等式A == B+n的估計(jì)”部分中所概 括的η = +2的上述方法100。使用與前面相似的邏輯表示,該等式可以使用以下等式來(lái)表 示A_EQ_B_PLUS_0_0R_2 =( I (X0R[N-l:ir(X0R[N-l:l] >> 1))~AND[N-1 1])&|AND[N-1 1])& AND
。以上說(shuō)明如何可以擴(kuò)展為執(zhí)行涉及不同給定的數(shù)的范圍的比較運(yùn)算對(duì)于本領(lǐng)域 技術(shù)人員是明顯的。雖然在示例性實(shí)施例中流程圖100包括按順序排列的步驟110-150,但本主題的的其它實(shí)施例可以并行執(zhí)行兩個(gè)或更多步驟。此外,其它實(shí)施例還可以將步驟實(shí)現(xiàn)為兩個(gè) 或更多特定互連的硬件模塊,其中,相關(guān)的控制和數(shù)據(jù)信號(hào)在模塊之間進(jìn)行通信并且通過(guò) 模塊進(jìn)行通信,或?qū)⑵鋵?shí)現(xiàn)為專用集成電路的部分。因此,示例性處理流程圖可應(yīng)用于軟 件、固件和/或硬件實(shí)現(xiàn)。圖2所示的數(shù)字邏輯電路示圖200示出以上比較運(yùn)算算法的示例實(shí)現(xiàn),以確定兩 個(gè)分別接收到的第一 N比特向量與第二 N比特向量A[N-1:0]與B[N-1:0]之間的差是否等 于+1。如圖2所示,數(shù)字邏輯電路200包括第一處理路徑210、第二處理路徑220和最后輸 出模塊230。
在運(yùn)算中,第一處理路徑210接收第一 N比特向量A[N-1:0]。與第一處理路徑 210并行的第二處理路徑220接收第二 N比特向量B[N-1:0]。第二處理路徑220執(zhí)行第二 N比特向量B[N-1:0]的按比特反轉(zhuǎn),并且獲得 B[N-1:0]。第一處理路徑210于是使用 A [N-1 0]和 B [N-1 0]執(zhí)行按比特AND (A [N_l 0] & B [N-1 0])運(yùn)算,并且獲得第三N比 特向量。第二處理路徑220于是使用A [N-1 0]和 B [N-1 0]執(zhí)行按比特XOR (A [N-1 0]~ B[N-1:0])運(yùn)算,并且獲得第四N比特向量。在一些實(shí)施例中,第二處理路徑220通過(guò)在第四N比特向量與對(duì)第四N比特向量 執(zhí)行算術(shù)右移運(yùn)算而獲得的另一 N比特向量之間執(zhí)行按比特XNOR運(yùn)算來(lái)獲得第五N比特 向量。第二處理路徑于是對(duì)第五N比特向量和第三N比特向量執(zhí)行按比特XOR運(yùn)算,并且 獲得第六N比特向量。最后輸出模塊230,即最后N+1輸入AND門,然后斷定A[N_1:0]與 B[N-1:0]之間的差等于+1。在一些實(shí)施例中,當(dāng)從最低有效位(LSB)到最高有效位(MSB)掃描第四N比特向 量時(shí),第二處理路徑220確定第四N比特向量中是否僅出現(xiàn)一次0到1比特轉(zhuǎn)變。如果第 四N比特向量中僅出現(xiàn)一次0到1比特轉(zhuǎn)變,則第二處理路徑220于是確定在第三N比特 向量中,在與第四N比特向量中產(chǎn)生0到1比特轉(zhuǎn)變的位置相對(duì)應(yīng)的位置中的比特是否等 于1,并且其余比特等于0。如果在第三N比特向量中,在與第四N比特向量中產(chǎn)生0到1比 特轉(zhuǎn)變的位置相對(duì)應(yīng)的位置中的比特等于1,并且其余比特等于0,則最后輸出模塊230于 是斷定第一 N比特向量A [N-1 0]與第二 N比特向量B [N-1 0]之間的差等于+1。參照?qǐng)D1更詳細(xì)地解釋圖2所示的數(shù)字邏輯電路200的運(yùn)算。在圖2中可見(jiàn),上 述比較運(yùn)算不需要完全成熟的加法和/或減法,并且因此,由于上述技術(shù)需要更少數(shù)量的 邏輯門,因此其在面積上明顯更小。由于這種運(yùn)算涉及明顯較低的邏輯深度,因此這種運(yùn)算 也更快。圖3所示的數(shù)字邏輯電路示圖300示出對(duì)于接收到的N比特向量A[N-1:0]和 B[N-1:0]確定差是否等于+2的上述比較運(yùn)算算法的示例實(shí)現(xiàn)。如圖3所示,數(shù)字邏輯電路 300包括第一處理路徑310、第二處理路徑320和最后輸出模塊330。參照?qǐng)D1更詳細(xì)地解 釋用于對(duì)接收到的N比特向量A[N-1:0]和B[N-1:0]進(jìn)行比較運(yùn)算以確定差是否等于+2 的數(shù)字邏輯電路300的運(yùn)算。圖4所示的數(shù)字邏輯電路示圖400示出對(duì)于接收到的N比特向量A[N-1:0]和 B[N-1:0]確定差是否等于+3的上述比較運(yùn)算算法的示例實(shí)現(xiàn)。如圖4所示,數(shù)字邏輯電路 400包括第一處理路徑410、第二處理路徑420和最后輸出模塊430。參照?qǐng)D1更詳細(xì)地解 釋用于對(duì)接收到的N比特向量A[N-1:0]和B[N-1:0]進(jìn)行比較運(yùn)算以確定差是否等于+3的數(shù)字邏輯電路400的運(yùn)算。圖5所示的數(shù)字邏輯電路示圖500示出對(duì)于接收到的N比特向量A[N-1:0]和B[N-1:0]確定差是否等于0或者等于+1的上述比較運(yùn)算算法的示例實(shí)現(xiàn)。如圖5所示,數(shù) 字邏輯電路500包括第一處理路徑510、第二處理路徑520和最后輸出模塊530。參照?qǐng)D1 更詳細(xì)地解釋用于對(duì)接收到的N比特向量A[N-1:0]和B[N-1:0]進(jìn)行比較運(yùn)算以確定差是 否等于0或者等于+1的數(shù)字邏輯電路500的運(yùn)算。在對(duì)兩個(gè)操作數(shù)計(jì)算比較運(yùn)算,以確定這兩個(gè)操作數(shù)之間的差是否為0、+1、
+2.......+η之一或處于+m到+η的范圍內(nèi)的同時(shí),上述技術(shù)實(shí)質(zhì)上消除了對(duì)于加法/減
法運(yùn)算的需要。此外,由于上述技術(shù)不需要完全成熟的加法或減法,因此需要明顯地更少數(shù) 量的邏輯門,并且明顯更快。此外,在包括庫(kù)單元的典型集合的實(shí)現(xiàn)中,上述技術(shù)僅需要采 用加法或減法運(yùn)算的傳統(tǒng)技術(shù)所需的大約1/3的硅面積和大約一半的邏輯延遲。以上技術(shù) 對(duì)于任何差值η是可擴(kuò)展的。雖然參照對(duì)兩個(gè)多比特向量執(zhí)行比較運(yùn)算解釋了圖1-圖5中示出的以上示例實(shí) 施例,以查看差是否為+1、+2和/或+3,但上述技術(shù)不限于檢查兩個(gè)多比特向量的差是否
為+1、+2和/或+3,而是可以用于比較兩個(gè)多比特,以查看差是+1、+2.......和/或+η,
其中,η是已知的。雖然通過(guò)使用圖2-圖5的邏輯門示出以上技術(shù)的實(shí)現(xiàn),但僅示出它們 以說(shuō)明邏輯的實(shí)際深度,并且人們可以預(yù)見(jiàn)可以使用不同門的替換實(shí)現(xiàn)。以上描述旨在說(shuō)明性而非限制性的。很多其它實(shí)施例對(duì)于本領(lǐng)域技術(shù)人員將是明 顯的。因此本主題的范圍應(yīng)由所附權(quán)利要求、連同這些權(quán)利要求賦予權(quán)利的等同物的全部 范圍來(lái)確定。如在此所示出的,可以通過(guò)多個(gè)不同實(shí)施例來(lái)實(shí)現(xiàn)本主題,包括各種方法、電路、 I/O設(shè)備,系統(tǒng)、以及包括具有關(guān)聯(lián)指令的機(jī)器可存取介質(zhì)的物品。其它實(shí)施例對(duì)于本領(lǐng)域普通技術(shù)人員將是容易理解的。可以改變?cè)?、算法和運(yùn) 算順序,以適合特定需求??梢酝ㄟ^(guò)與示出的順序以及在此描述的順序不同的順序來(lái)執(zhí)行 關(guān)于圖1所示的方法以上描述的運(yùn)算。圖1-圖5僅僅是代表性的,并非按比例繪制。其特定部分可以放大,而其它部分 可以最小化。圖1-圖5示出本領(lǐng)域普通技術(shù)人員可以理解并且適當(dāng)?shù)貓?zhí)行的主題的各種 實(shí)施例。在本發(fā)明的實(shí)施例前面的詳細(xì)描述中,為了使公開(kāi)簡(jiǎn)單化而在單個(gè)實(shí)施例中將各 種特征組合在一起。公開(kāi)的這種方法不應(yīng)解釋為反映本發(fā)明所要求保護(hù)的實(shí)施例需要比每 個(gè)權(quán)利要求中明白地陳述的更多特征的意圖。此外,如所附權(quán)利要求反映的那樣,本發(fā)明在 于少于單個(gè)公開(kāi)的實(shí)施例的所有特征。因此,所附權(quán)利要求在此合并到本發(fā)明實(shí)施例的詳 細(xì)描述中,其中,每個(gè)權(quán)利要求本身作為單獨(dú)的優(yōu)選實(shí)施例。
權(quán)利要求
一種用于在數(shù)字邏輯電路中對(duì)第一N比特向量A[N-1:0]和第二N比特向量B[N-1:0]執(zhí)行比較運(yùn)算的方法,其中N為非零正數(shù),所述方法包括執(zhí)行所述B[N-1:0]的按比特反轉(zhuǎn),以獲得~B[N-1:0];通過(guò)使用所述A[N-1:0]和所述~B[N-1:0]執(zhí)行按比特AND(A[N-1:0]&~B[N-1:0])運(yùn)算來(lái)獲得第三N比特向量;通過(guò)使用所述A[N-1:0]和所述~B[N-1:0]執(zhí)行按比特XOR(A[N-1:0]^~B[N-1:0])運(yùn)算來(lái)獲得第四N比特向量;基于所述第三N比特向量和所述第四N比特向量中的比特模式,斷定所述A[N-1:0]與所述B[N-1:0]之間的差等于給定的數(shù)或在兩個(gè)數(shù)+m和+n的給定范圍內(nèi),其中,m<n。
2.權(quán)利要求1所述的方法,還包括接收所述第一 N比特向量Α[Ν-1:0]和所述第二 N比特向量B [N-1:0]。
3.權(quán)利要求2所述的方法,在接收所述第一N比特向量A[N-1:0]和所述第二 N比特 向量B[N-1:0]中,所述N比特向量是8比特向量、16比特向量、24比特向量、32比特向量或 64比特向量。
4.權(quán)利要求3所述的方法,其中,基于所述第三N比特向量和所述第四N比特向量中的 比特模式,斷定所述A[N-1:0]與B[N-1:0]之間的差等于+1包括通過(guò)對(duì)所述第四N比特矢量中的比特從最低有效位(LSB)到最高有效位(MSB)進(jìn)行掃 描,來(lái)確定所述第四N比特向量中是否僅出現(xiàn)一次0到1比特轉(zhuǎn)變;如果是,則確定在所述第三N比特向量中,在與所述第四N比特向量中產(chǎn)生0到1比特 轉(zhuǎn)變的位置相對(duì)應(yīng)的位置中的比特是否等于1,并且其余比特等于0 ;如果是,則斷定所述第一 N比特向量A[N-1:0]與所述第二 N比特向量B[N-1:0]之間 的差等于+1。
5.權(quán)利要求3所述的方法,其中,基于所述第三N比特向量和所述第四N比特向量中的 比特模式,斷定所述A[N-1:0]與B[N-1:0]之間的差等于+2包括確定所述A[N-1:0]的LSB是否與所述 B[N-1:0]的LSB不同; 如果是,則通過(guò)對(duì)所述第四N比特向量中的比特從其余比特的LSB開(kāi)始到其余比特中 的最高有效位(MSB)進(jìn)行掃描,來(lái)確定所述第四N比特向量的所述其余比特中是否僅出現(xiàn) 一次0到1比特轉(zhuǎn)變;如果是,則確定在所述第三N比特向量中,在與所述第四N比特向量的所述其余比特中 產(chǎn)生所述0到1比特轉(zhuǎn)變的位置相對(duì)應(yīng)的位置中的比特是否等于1,并且其余比特等于0 ; 如果是,則斷定A[N-1:0]與B[N-1:0]之間的差等于+2。
6.權(quán)利要求3所述的方法,其中,基于所述第三N比特向量和所述第四N比特向量中的 比特模式,斷定所述A[N-1:0]與B[N-1:0]之間的差等于+3包括確定所述A[N-1:0]的兩個(gè)LSB以及所述 B[N-1:0]的對(duì)應(yīng)的兩個(gè)LSB是否分別為00 和10、10和00、或01和01中的任意一對(duì);如果是,則通過(guò)對(duì)所述第四N比特向量中的比特從所述其余比特(這里其余比特指 N-I 2)中的LSB開(kāi)始到最高有效位(MSB)進(jìn)行掃描,來(lái)確定所述第四N比特向量的所述其 余比特中是否僅出現(xiàn)一次0到1比特轉(zhuǎn)變;如果是,則確定在所述第三N比特向量中,在與所述第四N比特向量的所述其余比特中產(chǎn)生所述O到1比特轉(zhuǎn)變的位置相對(duì)應(yīng)的位置中的比特是否等于1,并且所述其余比特中的 剩下的比特等于O ;如果是,則斷定操作數(shù)A[N-1:0]與B[N-1:0]之間的差等于+3。
7.權(quán)利要求6所述的方法,還包括確定所述A[N-1:0]的兩個(gè)LSB和所述 B[N-1:0]的兩個(gè)LSB中的對(duì)應(yīng)比特二者是否 都等于11 ;如果是,則確定所述第四N比特向量中的其余比特是否等于1 ;如果是,則斷定A[N-1:0]與B[N-1:0]之間的差等于+3。
8.一種用于對(duì)第一 N比特向量A [N-1 0]和第二 N比特向量B [N-1 0]執(zhí)行比較運(yùn)算的 數(shù)字邏輯電路,包括第一處理路徑,用于接收所述第一 N比特向量A[N-1:0]和所述第二 N比特向量 B[N-1:0];第二處理路徑,與所述第一處理路徑并行,以接收所述第一 N比特向量A[N-1:0]和第 二 N比特向量B[N-1:0],其中,所述第二處理路徑執(zhí)行所述第二 N比特向量B[N-1:0]的 按比特反轉(zhuǎn),以獲得 B[N-1:0],其中,所述第一處理路徑使用所述A[N-1:0]和所述 B[N-1:0]執(zhí)行按比特AND(A[N-1:0]& B[N-1:0])運(yùn)算,以獲得第三N比特向量,并且其 中,所述第二處理路徑使用所述A[N-1:0]和所述 B[N-1:0]執(zhí)行按比特XOR(A~ B)運(yùn) 算,以獲得第四N比特向量;以及最后輸出模塊,用于基于所述第三N比特向量和所述第四N比特向量中的比特模式,斷 定A[N-1:0]與B[N-1:0]之間的差等于給定的數(shù)或在兩個(gè)數(shù)+m和+η的給定范圍內(nèi),其中, m < η。
9.權(quán)利要求8所述的數(shù)字邏輯電路,其中,所述N比特向量是8比特向量、16比特向量、 24比特向量、32比特向量或64比特向量。
10.權(quán)利要求9所述的數(shù)字邏輯電路,其中,所述第二處理路徑確定當(dāng)所述第四N比特 向量中的比特從最低有效位(LSB)到最高有效位(MSB)時(shí),所述第四N比特向量中是否僅 出現(xiàn)一次0到1比特轉(zhuǎn)變,其中,所述第二處理路徑確定在所述第三N比特向量中,在與所 述第四N比特向量中產(chǎn)生0到1比特轉(zhuǎn)變的位置相對(duì)應(yīng)的位置中的比特是否等于1,并且其 余比特等于0,并且其中,如果在所述第三N比特向量中,在與所述第四N比特向量中產(chǎn)生0 至IJ1比特轉(zhuǎn)變的位置相對(duì)應(yīng)的位置中的比特等于1并且所述其余比特等于0,則所述最后輸 出模塊斷定第一 N比特向量A[N-1:0]與第二 N比特向量B[N-1:0]之間的差等于+1。
全文摘要
一種大量減少用于在數(shù)字邏輯電路中確定兩個(gè)多比特向量之間的差是否等于給定的數(shù)或處于給定的兩個(gè)數(shù)之間的所需邏輯和計(jì)算時(shí)間的改進(jìn)技術(shù)。在一個(gè)示例實(shí)施例中,通過(guò)在數(shù)字邏輯電路中接收第一N比特向量A[N-1:0]和第二N比特向量B[N-1:0],其中,N為非零正數(shù)。然后通過(guò)使用A[N-1:0]和~B[N-1:0]執(zhí)行按比特AND(A[N-1:0]&~B[N-1:0])運(yùn)算來(lái)獲得第三N比特向量。此外,通過(guò)使用A[N-1:0]和~B[N-1:0]執(zhí)行按比特XOR(A[N-1:0]^~B[N-1:0])來(lái)獲得第四N比特向量。然后基于第三N比特向量和第四N比特向量中的比特模式,斷定第一N比特向量A[N-1:0]與第二N比特向量B[N-1:0]之間的差等于給定的數(shù)或在兩個(gè)數(shù)(+m和+n,m<n)的給定范圍內(nèi),從而實(shí)現(xiàn)該技術(shù)。
文檔編號(hào)G06F7/38GK101874236SQ200780049365
公開(kāi)日2010年10月27日 申請(qǐng)日期2007年12月5日 優(yōu)先權(quán)日2006年12月5日
發(fā)明者阿比吉特·吉里 申請(qǐng)人:模擬裝置公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1