專利名稱:查表運算電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字電路設(shè)計領(lǐng)域,具體來講涉及一種查表運算的組合邏輯電路實現(xiàn)。
背景技術(shù):
隨著通信、數(shù)字電視、IPTV、手機電視、視頻監(jiān)控、網(wǎng)絡(luò)視頻等多種數(shù)字音視頻業(yè)務(wù)的普及和推廣,設(shè)計和生產(chǎn)符合最新標(biāo)準(zhǔn)的(如H.264,MPEG-4)高性能多媒體編解碼芯片已成為音視頻產(chǎn)業(yè)和相關(guān)芯片產(chǎn)業(yè)的重點。由于視頻標(biāo)準(zhǔn)H.264在采用一系列技術(shù)和方法提高編碼效率和圖像質(zhì)量的同時,其運算量和復(fù)雜度也大大提高,所以在設(shè)計芯片時,對涉及的各種運算要盡量進行化簡和優(yōu)化,從而提高芯片的運算性能、減少芯片的成本和功耗。
在H.264解碼器中涉及有大量查表運算,如去塊濾波中用于判斷是否進行濾波的閾值α,β的查表,熵解碼CAVLC或CABAC中的查表。這些查表運算的高效優(yōu)化對于芯片的性能有著重要影響。
通常地,查表運算的硬件實現(xiàn)方法有兩種(1)多路復(fù)用器;(2)基于ROM的組合邏輯。
如圖1所示,一個多路復(fù)用器有n條數(shù)據(jù)輸入通道和一條輸出通道,m位的地址線決定了哪個輸入通道與輸出通道相連。用符號表示的多路復(fù)用器所選擇的輸入通道由下式確定Data_Out=Data_In[Address[k]]其中k為地址位置的標(biāo)號。
用多路復(fù)用器實現(xiàn)查表,多路復(fù)用器將表項值value作為數(shù)據(jù)輸入Data_In,用m位的查表索引index作為地址線k進行譯碼Address,選擇哪個輸入Data_In通道與輸出Data_Out通道相連。
表1例如用多路復(fù)用器實現(xiàn)表1的查表運算時,把表中value欄的52個數(shù)據(jù)作為多路復(fù)用器的Data_In(n=52,52個數(shù)據(jù)輸入通道),查表索引index作為多路復(fù)用器的地址線k進行譯碼Address(51需要用6bits表示,所以用m=6位的地址線),則該多路復(fù)用器即可實現(xiàn)表1的查表運算。
多路復(fù)用器是實現(xiàn)查表運算的簡單、通用的方法,如2006年05月03日公開的,公開號為CN 1767651A,名稱為“高速影像信號的高頻低頻預(yù)測運算裝置及方法”的中國發(fā)明公開說明書中所述的查表參數(shù)計算電路就是采用的多路復(fù)用器(圖2中的多工器)。但同時,由于多路復(fù)用器必須將所有表項索引輸入位的真值表進行完全譯碼,所以這種實現(xiàn)方式效率不高,并且浪費硬件資源。
此外,基于ROM的查表運算原理簡單,但需要數(shù)據(jù)總線、地址總線、譯碼器等配合實現(xiàn),而且價格高、耗能多、速度較慢。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)中的不足,提供一種在數(shù)字電路設(shè)計領(lǐng)域中應(yīng)用的組合邏輯簡單、運算速度高的查表運算電路。
為了實現(xiàn)上述發(fā)明目的,本發(fā)明的查表運算電路,包括由一系列表項值和一系列對應(yīng)的表項索引組成的表,基于把表項值的每個輸出位表示成表項索引輸入位的邏輯函數(shù)實現(xiàn)的組合邏輯電路。
所述的把表項值的每個輸出位表示成表項索引輸入位的邏輯函數(shù),是根據(jù)輸出位在整個表中邏輯值出現(xiàn)較少的表項而建立,具有積之和形式、或者和之積形式、或者用與非或表示的其他形式。所述的邏輯函數(shù)是經(jīng)過化簡。
此外,所述的基于邏輯函數(shù)設(shè)計組合邏輯電路時,表項值的各輸出位之間使用的相同的門電路可進行共用,并且從共用較多的位開始進行。這樣可以進一步減少門電路數(shù)量。
本發(fā)明的查表運算電路是這樣實現(xiàn)上述發(fā)明目的的,具體設(shè)計時,包括真值表表示、將表項值每個輸出位表示成表項索引輸入位的邏輯函數(shù)、邏輯函數(shù)化簡、門電路設(shè)計四個步驟步驟1把原始表轉(zhuǎn)換成真值表步驟1.1查表運算可看成輸入是表項索引,記為index,輸出是表項值(value)的運算。根據(jù)表項索引的數(shù)目Num,確定輸入位的個數(shù)m,即表示index的二進制串的長度,m滿足Num>>m=0,(Num>>(m-1))>0其中“>>”表示移位操作。
類似地,根據(jù)表項值的取值范圍確定輸出位的個數(shù)n。在表項值取非負整數(shù)值時,表示value的二進制串的長度,n滿足value>>n=0,(value>>(n-1))>0步驟1.2把原始表的索引index轉(zhuǎn)換成m位的二進制串im-1im-2Λi1i0,把表項值value作為輸出轉(zhuǎn)換成n位的二進制串on-1on-2Λo1o0,生成真值表。
步驟2邏輯函數(shù)表示此步驟把每一個輸出位oj表示成輸入位im-1im-2Λi1i0的邏輯函數(shù)oj=f(im-1,im-2,Λ,i1,i0)邏輯函數(shù)可以是積之和、和之積形式。
針對每個輸出位oj(j=0,1,A,n-1),進行以下操作步驟2.1找出oj=1或0的表項,如果等于1的表項較少,就找出oj=1的表項;如果等于0的表項較少,就找出oj=0的表項。
步驟2.2用邏輯與、邏輯或、邏輯非表示每一個表項的邏輯函數(shù)。
步驟2.3對oj=1的表項的邏輯函數(shù)進行邏輯或,得到oj的積之和邏輯函數(shù),或者對oj=0的表項的邏輯函數(shù)進行邏輯與,得到oj的和之積邏輯函數(shù)。
步驟3邏輯函數(shù)化簡利用邏輯函數(shù)化簡定理,或利用邏輯函數(shù)化簡軟件,對每個輸出位的積之和或者和之積邏輯函數(shù)進行化簡,得到每個輸出位的邏輯函數(shù)的化簡表達。
步驟4門電路設(shè)計根據(jù)化簡后的邏輯函數(shù),設(shè)計用與門、非門和或門實現(xiàn)查表運算的組合邏輯電路,各個輸出位之間共有的門電路進行共用,并且先設(shè)計共用最多的門電路,以達到最好的共用效果,進一步減少門電路。
經(jīng)過上述幾個步驟,最終設(shè)計出本發(fā)明的查表運算電路,如圖2所示。
由于本發(fā)明的查表運算電路利用表項值為常數(shù)的特點,將每個表項值輸出位表示成表項索引輸入位的邏輯函數(shù),設(shè)計出相應(yīng)的組合邏輯電路。用該發(fā)明代替現(xiàn)有技術(shù)中的多路復(fù)用器,避免了多路復(fù)用器必須將所有表項索引輸入位的真值表進行完全譯碼,效率不高,浪費硬件資源的缺點。相比于基于ROM的查表實現(xiàn),該發(fā)明節(jié)省了存儲表項值的硬件資源,降低了成本,而且不需要數(shù)據(jù)總線、地址總線的配合實現(xiàn)。
本發(fā)明的查表運算電路在表項取值有特殊情況時,如表中有相同的表項值時,邏輯函數(shù)更為簡單,優(yōu)化效果明顯,實現(xiàn)效率更高。而且,查表運算所操作的表的表項值可以是定點形式表示或者浮點形式表示。
圖1是多用復(fù)用器原理圖;圖2是本發(fā)明的查表運算電路。
具體實施例方式
下面結(jié)合具體實施方式
,對本發(fā)明查表運算電路作進一步詳細的說明。
在本實施例中,以表1(H.264標(biāo)準(zhǔn)中的表8-16,閾值β)的查表運算為例,根據(jù)本發(fā)明設(shè)計一具體查表運算電路。
步驟1把原始表(表1)轉(zhuǎn)換成真值表該表的表項索引index數(shù)目為Num=52,所以需要用m=6位二進制串表示輸入位,從高到低表示為i5i4i3i2i1i0。
表項值value最大為18,所以用n=5位二進制串表示輸出位,從高到低表示為o4o3o2o1o0。
這樣原始表(表1)就轉(zhuǎn)換成如下的真值表(表2)。
表2步驟2邏輯函數(shù)表示為方便起見,6個輸入位i5i4i3i2i1i0用大寫字母A,B,C,D,E,F(xiàn)表示,用上劃線字母A,B,C,D,E,F(xiàn)分別表示它們的邏輯非,AB表示A和B的邏輯與,A+B表示A和B的邏輯或。
輸出位o4的邏輯函數(shù),分以下三個步驟求得(1)、找出o4取值較少的表項。此處,o4=1的表項只有6項,所以取o4=1的真值表(表3)
表3(2)、把輸入表示成輸入位的邏輯非和邏輯與的邏輯函數(shù),具體見下表(表4)
表4(3)、o4的邏輯函數(shù)就可以表示成表4中6項輸入的積之和o4=A BCDE F+A BCDEF+AB CDEF+AB CDEF+AB CDEF+AB CDEF類似地,可求得o3o2o1o0的邏輯函數(shù),如表5所示
表5步驟3邏輯函數(shù)化簡根據(jù)邏輯函數(shù)化簡定理,對以上邏輯函數(shù)進行化簡??刹捎眠壿嫼瘮?shù)化簡軟件進行,化簡后得到以下結(jié)果(表6)
表6步驟4門電路設(shè)計。
根據(jù)步驟3中得到的化簡后的邏輯函數(shù)設(shè)計出相應(yīng)的組合邏輯門電路。
從上面的具體實例我們可以看出,本發(fā)明的查表運算可以用化簡后的邏輯函數(shù)的組合邏輯門電路非常簡單地實現(xiàn),例如輸出位o4利用7個與門,2個非門,1個或門即可實現(xiàn)。各個輸出位之間的邏輯電路還可以共享,例如o3和o2共享ABC,o2,o1和o0共享ABC。并且為了進一步減少門電路,對共用較多的門電路優(yōu)先設(shè)計,以提高共用效率,例如優(yōu)先設(shè)計E和D的與門,而不是設(shè)計E和F的與門,因為DE的共用次數(shù)比EF要多。
盡管上面對本發(fā)明說明性的具體實施方式
進行了描述,但應(yīng)當(dāng)清楚,本發(fā)明不限于具體實施方式
的范圍,對本技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護之列。
權(quán)利要求
1.一種實現(xiàn)查表運算的組合邏輯電路,其特征在于,所述的表由一系列表項值和一系列對應(yīng)的表項索引組成,表項值的輸出位個數(shù)由表項值取值范圍確定,表項索引輸入位個數(shù)由表項個數(shù)確定,所述的組合邏輯電路,是基于把表項值的每個輸出位表示成表項索引輸入位的邏輯函數(shù)實現(xiàn)的。
2.根據(jù)權(quán)利要求1所述的查表運算電路,其特征在于,所述的把表項值二進制串的每個輸出位表示成表項索引輸入位的邏輯函數(shù),是根據(jù)輸出位在整個表中邏輯值出現(xiàn)較少的表項而建立。
3.根據(jù)權(quán)利要求1所述的查表運算電路,其特征在,所述的邏輯函數(shù)是積之和形式,或者和之積形式、或者用與非或表示的其他形式。
4.根據(jù)權(quán)利要求1所述的查表運算電路,其特征在于,所述的邏輯函數(shù)是經(jīng)過化簡的。
5.根據(jù)權(quán)利要求1所述的查表運算電路,其特征在于,所述的基于邏輯函數(shù)設(shè)計組合邏輯門電路時,表項值的各輸出位之間使用的相同的門電路可進行共用。
6.根據(jù)權(quán)利要求1所述的查表運算電路,其特征在于,所述的基于邏輯函數(shù)設(shè)計組合邏輯門電路時,先設(shè)計共用較多的門電路。
7.根據(jù)權(quán)利要求1所述的查表運算電路,其特征在于,所述的表中的表項值以定點形式表示。
8.根據(jù)權(quán)利要求1所述的查表運算電路,其特征在于,所述的表中的表項值以浮點形式表示。
全文摘要
本發(fā)明提供了一種數(shù)字電路設(shè)計領(lǐng)域中查表運算的組合邏輯電路實現(xiàn)方法,將表項值的每個輸出位表示成表項索引輸入位的邏輯函數(shù),并設(shè)計出相應(yīng)的組合邏輯電路。包括由一系列表項值和一系列對應(yīng)的表項索引組成的表,把表項值的每個輸出位表示成表項索引輸入位的邏輯函數(shù)和邏輯函數(shù)化簡,以及實現(xiàn)該邏輯函數(shù)的組合邏輯電路設(shè)計。用多路復(fù)用器實現(xiàn)查表運算時,必須將所有輸入位的真值表進行完全譯碼,因而效率不高,硬件資源浪費;而用ROM實現(xiàn)查表運算時,成本較高且速度慢。本發(fā)明充分利用了表項特征來化簡和優(yōu)化查表運算,用簡單的組合邏輯實現(xiàn),具有運算速度快、硬件資源節(jié)省等優(yōu)點。
文檔編號H03K19/20GK101056102SQ20071004877
公開日2007年10月17日 申請日期2007年3月30日 優(yōu)先權(quán)日2007年3月30日
發(fā)明者楊剛, 張小云 申請人:四川虹微技術(shù)有限公司