亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

實(shí)現(xiàn)數(shù)據(jù)排序的電路和方法

文檔序號(hào):6559954閱讀:480來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):實(shí)現(xiàn)數(shù)據(jù)排序的電路和方法
技術(shù)領(lǐng)域
本發(fā)明涉及本發(fā)明涉及數(shù)字信號(hào)處理領(lǐng)域,具體涉及一種實(shí)現(xiàn)數(shù)據(jù)排序的硬件電路及方法。
背景技術(shù)
在數(shù)字信號(hào)處理中,經(jīng)常需要對(duì)一系列數(shù)據(jù)進(jìn)行排序,比如要對(duì)m個(gè)數(shù)據(jù)的大小順序進(jìn) 行排序,或者從m個(gè)數(shù)據(jù)中找出n個(gè)最大(或最小)的數(shù)據(jù),rn》n,以確定這些數(shù)據(jù)的優(yōu)先 級(jí)別。
現(xiàn)有的技術(shù)主要為軟件排序。雖然軟件排序的算法很多,但由于軟件的運(yùn)算速度較慢, 無(wú)法滿(mǎn)足實(shí)時(shí)性要求比較高的環(huán)境。比如通信系統(tǒng)的基站在進(jìn)行小區(qū)搜索時(shí),需要從大量的 數(shù)據(jù)中找到真正的信號(hào),并迅速向移動(dòng)終端反饋信息,這個(gè)時(shí)間間隔要求很短,通常在lms 左右,在小區(qū)半徑比較大或搜索的小區(qū)比較多時(shí),需要處理的數(shù)據(jù)量非常龐大,經(jīng)常達(dá)到十 萬(wàn)的數(shù)量級(jí),軟件無(wú)法在如此短時(shí)間內(nèi)實(shí)現(xiàn)如此多數(shù)據(jù)的査找排序。

發(fā)明內(nèi)容
為了克服上述缺陷,本發(fā)明的目的在于提供一種滿(mǎn)足實(shí)時(shí)性比較高的場(chǎng)合的實(shí)現(xiàn)數(shù)據(jù)排 序的硬件電路和方法。
為達(dá)到上述目的,本發(fā)明一種實(shí)現(xiàn)數(shù)據(jù)排序的電路,包括
至少一寄存器(A),至少一比較器(B),至少一n選l的多路選擇器(C),至少一第一2 選l的多路選擇器(D),至少一第二2選1的多路選擇器(E),至少一極值指針寄存器(F), 一地址譯碼器(G), 一與門(mén)陣列(H);
其中,所述寄存器(A)用于存儲(chǔ)排序過(guò)程中當(dāng)前的極值,寄存器(A)的輸出和本電路 的數(shù)據(jù)輸入作為比較器(B)的輸入;
所述比較器(B)輸出的比較結(jié)果作為n選l的多路選擇器(C)的輸入;
所述極值指針寄存器(F)用于記錄當(dāng)前極值所在寄存器(A)的存儲(chǔ)位置及當(dāng)前極值順 序,并作為n選l的多路選擇器(C)的控制端;
所述n選l的多路選擇器(C)輸出本電路輸入的數(shù)據(jù)與當(dāng)前極值比較的結(jié)果,作為第一 2選1多路選擇器(D)的控制端,極值指針寄存器(F)作為第一2選1多路選擇器(D)的 輸入端
所述n選l的多路選擇器(C)的輸出作為第二2選1多路選擇器(E)的控制端; 所述第一 2選1多路選擇器(D)的輸出和極值指針寄存器(F)作為第二 2選1多路選 擇器(E)的輸入;
所述第二2選1多路選擇器(E)的輸出作為極值指針寄存器(F)的輸入; 所述極值指針寄存器(F)作為地址譯碼器(G)的輸入端;
所述n選l的多路選擇器(C)和地址譯碼器(G)的輸出作為與門(mén)陣列(H)的輸入; 所述與門(mén)陣列(H)的輸出連接到寄存器(A)的輸入使能端。
其中,本電路的數(shù)據(jù)輸入連接到寄存器(A)和比較器(B),將寄存器(A)和極值指針 寄存器(F)連接到輸出。
其中,所述地址譯碼器(G)和與門(mén)陣列(H)組合為一個(gè)帶使能端的地址譯碼器。 為達(dá)到上述目的,本發(fā)明一種基于權(quán)利要求1所述電路實(shí)現(xiàn)數(shù)據(jù)排序的方法,包括
(1) 根據(jù)要査找的極值個(gè)數(shù)n,確定寄存器組(A)、比較器組(B)、 n選l的多路選擇 器組(C)、第一組2選1的多路選擇器(D)和第二組多路選擇器組(E)、極值指針寄存器組
(F)的深度,以及第一組2選1的多路選擇器(D)和第二組多路選擇器(E)、極值指針寄 存器組(F)的寬度;
(2) 根據(jù)數(shù)據(jù)源的個(gè)數(shù)m,確定電路的運(yùn)行時(shí)間為m個(gè)時(shí)鐘;
(3) 根據(jù)査找數(shù)值類(lèi)型,選擇比較器的輸出類(lèi)型;
(4) 復(fù)位寄存器組(A)、極值指針寄存器組(F);
(5) 向電路輸入采樣數(shù)據(jù);
(6) 經(jīng)過(guò)m個(gè)時(shí)鐘后停止本電路。 其中,所述的步驟(1)中,
寄存器組(A)和比較器組(B)的深度為n; n選l的多路選擇器組(C),極值指針寄存器組(F)的深度為n; 第一組2選1的多路選擇器(D)、第二組2選1的多路選擇器(E)的深度為n-1; n選1的多路選擇器組(C)中的每個(gè)選擇器的輸出位寬為1;
第一組2選1的多路選擇器(D)和第二組2選1的多路選擇器(E)、極值指針寄存器 (F)組中各單元的輸出位寬為大于或等于log2 (n)的最小整數(shù)。
其中,所述的步驟(4)中,極值指針寄存器組(F)中的各寄存器要分別復(fù)位為不同的 值;査找最大值時(shí),所述寄存器組(A)全部復(fù)位為其最小值,否則寄存器組(A)全部復(fù)位
為其最大值。
其中,所述的步驟(5)具體為每一個(gè)時(shí)鐘向本電路輸入一個(gè)采樣數(shù)據(jù)。 采用本發(fā)明所述的方法和裝置,克服了軟件排序花費(fèi)時(shí)間長(zhǎng),不能用于實(shí)時(shí)性要求高的 場(chǎng)合的缺點(diǎn)。本發(fā)明使用硬件電路來(lái)實(shí)現(xiàn)數(shù)據(jù)的排序,此電路每個(gè)時(shí)鐘可以處理一個(gè)數(shù)據(jù),
目前的集成電路一般可以工作在100MHz以上,對(duì)10萬(wàn)個(gè)數(shù)據(jù)進(jìn)行排序的時(shí)間小于lms,如 果使用多套排序電路并行工作,排序時(shí)間還可以成倍減少,所以本電路的實(shí)時(shí)處理性強(qiáng),可 以滿(mǎn)足對(duì)處理時(shí)間要求比較高的場(chǎng)合。


圖l為一個(gè)單鏈表的示意圖2為對(duì)圖1進(jìn)行重新排列并去掉空指針后得到的單鏈表; 圖3為一個(gè)2選1的多路選擇器; 圖4為一個(gè)16選1的多路選擇器; 圖5為本發(fā)明實(shí)現(xiàn)數(shù)據(jù)排序的電路結(jié)構(gòu)框圖; 圖6為本發(fā)明實(shí)現(xiàn)數(shù)據(jù)排序的一個(gè)具體實(shí)施例; 圖7為本發(fā)明實(shí)現(xiàn)數(shù)據(jù)排序方法的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
本方法的主要思想來(lái)源于軟件數(shù)據(jù)結(jié)構(gòu)中的單鏈表,單鏈表是存儲(chǔ)數(shù)據(jù)的一種結(jié)構(gòu),訪(fǎng) 問(wèn)存儲(chǔ)在鏈表中的數(shù)據(jù)時(shí),需要査詢(xún)一組指針,這組指針的內(nèi)容為這些數(shù)據(jù)的存儲(chǔ)位置。
圖l為一個(gè)單鏈表的示意圖,頭指針為dO的存儲(chǔ)位置,指針l為dl的存儲(chǔ)位置,……, 指針n為dn的存儲(chǔ)位置,最后是一個(gè)空指針,如果n為一個(gè)固定的數(shù),可以不使用最后的空 指針。
圖2為對(duì)圖1進(jìn)行重新排列并去掉空指針后得到的單鏈表。
為了更好的解釋本發(fā)明,下面對(duì)本發(fā)明中用到的一些元件進(jìn)行說(shuō)明。
圖3為一個(gè)2選1的多路選擇器,i0, il為數(shù)據(jù)輸入端口, s為選擇控制端口, z為輸出
端口,當(dāng)s為0時(shí),z的輸出為i(),當(dāng)s為l時(shí),z的輸出為il。
圖4為一個(gè)16選1的多路選擇器,i為數(shù)據(jù)輸入端口, s為選擇控制端口, z為輸出端口。
i的位寬為16, i由il5, i14, U3,……,il, i0組成;s的位寬為4,取值范圍為(Tl5。
當(dāng)s的值為j時(shí),z的輸出為j,這里j的取值范圍為0~15。如果一個(gè)多路選擇器的輸入位
寬是其他值,其工作原理與16選1的多路選擇器是相似的。可以用2選1的多路選擇器搭 建16選1的多路選擇器或其他類(lèi)型的多路選擇器, 一般的數(shù)字電路教材中都有論述,此處不 再贅述。
通用的比較器一般有兩個(gè)輸入a和b,三個(gè)輸出, 一個(gè)輸出判斷a是否大于b, 一個(gè)判斷 a是否等于b,另一個(gè)判斷a是否小于b。
本發(fā)明中用到的比較器只需要一個(gè)輸出,根據(jù)需要可以是判斷a是否大于b的,也可以 是判斷a是否小于b的。
本發(fā)明所述的排序電路主要用于從m個(gè)數(shù)據(jù)中找出n個(gè)最大(或最小)的數(shù)據(jù),m》n, 并且同時(shí)實(shí)現(xiàn)對(duì)這n個(gè)最大(或最小)的值進(jìn)行大小排序。
如圖5所示,此電路主要由以下幾個(gè)部分組成 一組寄存器A, 一組比較器B, 一組n選l 的多路選擇器C, 一組2選1的多路選擇器D, 一組2選1的多路選擇器E, 一組極值指針寄 存器F, 一個(gè)地址譯碼器G, 一個(gè)與門(mén)陣列H。
本電路的輸入連接到寄存器組A和比較器組B,本電路的輸出為寄存器組A和極值指針寄 存器組F。
與門(mén)陣列H的輸出連接到寄存器組A的輸入使能端;寄存器組A的輸出和本電路的數(shù)據(jù) 輸入作為比較器組B的輸入;比較器組B的輸出作為多路選擇器組C的輸入,極值指針寄存 器組F作為多路選擇器組C的控制端;多路選擇器組C的輸出作為多路選擇器組D的控制端, 極值指針寄存器組F作為多路選擇器組D的輸入端;多路選擇器組C的輸出作為多路選擇器 組E的控制端,多路選擇器組D的輸出和極值指針寄存器組F作為多路選擇器組E的輸入端; 多路選擇器組E的輸出作為極值指針寄存器組F的輸入端;極值指針寄存器組F作為地址譯 碼器G的輸入端;多路選擇器組C和地址譯碼器G的輸出作為與門(mén)陣列H的輸入。
所述電路適用于從m個(gè)數(shù)據(jù)中找到n個(gè)最大或最小的數(shù)據(jù),實(shí)現(xiàn)對(duì)最大或最小的數(shù)據(jù)進(jìn) 行大小排序。
所述地址譯碼器和與門(mén)陣列可以組合為一個(gè)帶使能端的地址譯碼器。 利用上述電路進(jìn)行數(shù)據(jù)排序的方法,包括下列步驟-
步驟l、根據(jù)要査找最大值(或最小值)的個(gè)數(shù)n,確定本發(fā)明電路中寄存器A、比較器 B、 n選l的多路選擇器C、 2選1的多路選擇器D、 2選1的多路選擇器E、極值指針寄存器 F的深度和2選1的多路選擇器D、 2選1的多路選擇器E、極值指針寄存器F的寬度;
A、 B、 C、 F的深度為n, D、 E的深度為n-1, C的寬度為l, D、 E、 F的寬度為大于或等
于1og2(n)的最小整數(shù)。
步驟2、選擇待査找的數(shù)據(jù)源的個(gè)數(shù)m,以確定電路的運(yùn)行時(shí)間為m個(gè)時(shí)鐘。 步驟3、根據(jù)査找數(shù)值類(lèi)型,即要査找最大值還是最小值選擇比較器的輸出類(lèi)型。 步驟4、復(fù)位寄存器組A、極值指針寄存器組F;
F要分別復(fù)位為0, 1, 2,……,n-l,要保證他們復(fù)位后的值各不相同;查找最大值時(shí), 寄存器組A全部復(fù)位為其最小值,否則寄存器組A全部復(fù)位為其最大值。 步驟5、每個(gè)時(shí)鐘周期向本電路輸入一個(gè)數(shù)據(jù)(采樣);
步驟6、經(jīng)過(guò)m個(gè)時(shí)鐘后停止本電路,此時(shí)寄存器組A中保存的即為n個(gè)極值,極值指針 寄存器組F內(nèi)保存的是這些極值的大小順序。
使用寄存器組A保存當(dāng)前的n個(gè)極值,極值指針寄存器組F用于記錄A中各個(gè)極值的大 小順序。
新的采樣同時(shí)與A中所有的值進(jìn)行比較,根據(jù)極值指針寄存器組F和比較器組B的比較 結(jié)果來(lái)判斷新的采樣是否是一個(gè)新的極值,并同時(shí)判斷出新的大小順序。
如果當(dāng)前采樣不是新的極值,原先的大小順序不變,否則原先的極值當(dāng)中有一個(gè)將不再 是極值,此極值在A中的存儲(chǔ)位置將變?yōu)楫?dāng)前采樣在A中的寫(xiě)入位置。
上述極值大小順序的調(diào)整和當(dāng)前采樣寫(xiě)入位置判斷的操作通過(guò)n選1的多路選擇器組C、 2選1的多路選擇器組D、 2選1的多路選擇器組E、極值指針寄存器組F、地址譯碼器G和 與門(mén)陣列H共同來(lái)實(shí)現(xiàn)。
下面以從1000個(gè)無(wú)符號(hào)數(shù)據(jù)中選擇16個(gè)最大值為例,詳細(xì)講解本發(fā)明的電路。
査找最小值的原理與査找最大值的原理類(lèi)同。
此電路的詳細(xì)結(jié)構(gòu)如附圖6所示,16個(gè)極值指針寄存器記錄了當(dāng)前16個(gè)最大值在寄存器 組A中的存儲(chǔ)位置,指針寄存器F-O記錄當(dāng)前最大值的位置,指針寄存器F-1記錄當(dāng)前次大 值的位置,……,指針寄存器F-14記錄當(dāng)前次小值的位置,指針寄存器F-15記錄當(dāng)前最小 值的位置。存儲(chǔ)器A中雖然存儲(chǔ)了 16個(gè)最大值,但并不是一定按大小順序存儲(chǔ),其大小順序 靠這里的16個(gè)極值指針寄存器來(lái)記錄。
當(dāng)前采樣進(jìn)來(lái)后同時(shí)與寄存器組A中的16個(gè)值進(jìn)行比較,以判斷其是否是一個(gè)新的極值。
如果當(dāng)前采樣沒(méi)有當(dāng)前16個(gè)最大值中的最小值大,則A和F不需要更新;如果當(dāng)前采樣比前
16個(gè)最大值中的任何一個(gè)大,則將當(dāng)前釆樣的數(shù)據(jù)寫(xiě)入原先16個(gè)最大值中最小值的位置,
并同時(shí)調(diào)整16個(gè)極值指針的內(nèi)容,即同時(shí)調(diào)整寄存器組A中各個(gè)數(shù)據(jù)的大小順序。
在系統(tǒng)復(fù)位后,將寄存器組A全部復(fù)位為0,并且將16個(gè)指針寄存器F復(fù)位,這里將指 針寄存器F-0復(fù)位為15,指針寄存器F-1復(fù)位為14,指針寄存器F-2復(fù)位為13,……,指 針寄存器F-14復(fù)位為1,指針寄存器F-15復(fù)位為0 (如圖6中最右邊所示)。
寄存器組A中的16個(gè)值A(chǔ)-0, A-1,…,A-15同時(shí)與當(dāng)前采樣進(jìn)行比較,比較時(shí)使用16個(gè) 比較器B-0,B-1,…,B-15,如果當(dāng)前采樣比A-s大,B-s輸出為1,否則B-s的輸出為0, si,…15。極值指針寄存器F-i記錄了第i號(hào)最大值的存儲(chǔ)位置,i:0,…15,因此可以通過(guò) 極值指針寄存器F-i獲得第i號(hào)最大值與當(dāng)前采樣的比較結(jié)果。多路選擇器組C中有16個(gè) 16選1的多路選擇器,以極值指針寄存器F-i作為C-i的選擇控制端,以B-0, B-1,…,B-15 作為C-i的輸入,C-i的輸出為極值指針寄存器F-i對(duì)應(yīng)的極值與當(dāng)前采樣的大小比較結(jié)果 (如附圖6中所示)。
16個(gè)最大值的指針寄存器中,極值指針寄存器F-i記錄的是當(dāng)前第i個(gè)最大值的存儲(chǔ)位 置,—0,…,15,即極值指針0對(duì)應(yīng)當(dāng)前最大值,極值指針1對(duì)應(yīng)當(dāng)前次大值,……,極值 指針15對(duì)應(yīng)當(dāng)前16個(gè)最大值中的最小值。
如果當(dāng)前采樣沒(méi)有寄存器組A中當(dāng)前16個(gè)最大值中的最小值大,則寄存器組A和極值指 針寄存器組F保持不變;如果當(dāng)前采樣比寄存器組A中當(dāng)前16個(gè)最大值中的任何一個(gè)大,則 將當(dāng)前采樣寫(xiě)入原先16個(gè)最大值中最小值的位置,即極值指針寄存器F-15的值。
對(duì)于16個(gè)極值指針寄存器中的任何一個(gè)指針寄存器F-i來(lái)說(shuō),如果當(dāng)前采樣沒(méi)有自己對(duì) 應(yīng)的值大,則指針寄存器F-i的內(nèi)容不需要更改;如果當(dāng)前采樣剛好替代了原先第i個(gè)最大 值的大小位置,則指針寄存器F-i替換為指針寄存器F-15的內(nèi)容;如果當(dāng)前采樣比指針寄存 器F-i-l對(duì)應(yīng)的值還大,則指針寄存器F-i的內(nèi)容要替換為指針寄存器F-i-1的內(nèi)容;這里, 當(dāng)前采樣與第i-l個(gè)最大值的比較結(jié)果優(yōu)先級(jí)高于當(dāng)前采樣與第i個(gè)最大值的比較結(jié)果。
在本發(fā)明中,其電路實(shí)現(xiàn)為將第i個(gè)最大值與當(dāng)前采樣的比較結(jié)果C-i作為多路選擇
器D-i的選擇控制端,F(xiàn)-15和F-i做為D-i的輸入,C-i為1時(shí)D-i的輸出為F-15,否則輸
出為F-i;將第i-l個(gè)最大值與當(dāng)前采樣的比較結(jié)果C-i-l作為多路選擇器E-i的選擇控制
端,D-i和F-i-l做為E-i的輸入,C-i-1為1時(shí)E-i的輸出為F-i-l,否則輸出為D-i; E-i
的輸出作為指針F-i的輸入,如附圖6中所示。
對(duì)于指針0來(lái)講,由于指針0對(duì)應(yīng)的為15個(gè)最大值中的最大值,因此不需要E-O,直接
將D-O的輸出作為F-0的輸入,如附圖6中所示。
對(duì)于E-15來(lái)講,由于D-15的兩個(gè)輸入端都為F-15,所以可以不使用D-15,直接將F-15
和F-14作為E-15的輸入,如附圖6中所示。
當(dāng)前采樣的寫(xiě)入位置為極值指針寄存器F-15的輸出,當(dāng)前采樣連接到寄存器組A中所有 寄存器的輸入端口,寄存器組A中的各個(gè)寄存器都有使能端口。將極值指針寄存器F-15的輸 出送入4-16譯碼器G,由G和與門(mén)陣列H生成寄存器組A中各個(gè)寄存器的使能。地址譯碼器 G的輸出位寬為16,其輸出信號(hào)分別為G15,G14,…,G1,G0。當(dāng)4-16譯碼器的輸入取值為s 時(shí),其輸出Gs為有效,其他輸出為無(wú)效,^0,1,…15。當(dāng)前采樣是否要寫(xiě)入寄存器組A中, 還需要根據(jù)C-15來(lái)判斷。與門(mén)陣列H將G的輸出G15, G14,…,Gl, GO分別與C-15進(jìn)行相與, 得到H15,H14,…,H1,H0, Hs連接到A-s的使能端口。這樣可以根據(jù)當(dāng)前采樣是否為新的極 值來(lái)控制當(dāng)前采樣是否可以寫(xiě)入到寄存器組A中。
通過(guò)上面的操作,經(jīng)過(guò)1000個(gè)時(shí)鐘以后,就可以將16個(gè)最大值挑選出來(lái),這些值保存 于寄存器組A中,他們?cè)诩拇嫫鹘MA中的存儲(chǔ)位置保存于15個(gè)極值指針寄存器中,極值指針 寄存器F-0對(duì)應(yīng)最大值,指針存器F-l對(duì)應(yīng)次大值,……,指針存器F-15對(duì)應(yīng)16個(gè)最大值 中的最小值。
利用圖6中的裝置査找最大值的過(guò)程,包括下列步驟
步驟1、根據(jù)要査找最大值的個(gè)數(shù)16,可確定A、 B、 C、 F的深度為16, D、 E的深度為 15, C的寬度為l, D、 E、 F的寬度為4;
步驟2、根據(jù)待査找的數(shù)據(jù)源的個(gè)數(shù)1000,確定電路的運(yùn)行時(shí)間為1000個(gè)時(shí)鐘,
步驟3、根據(jù)査找類(lèi)型,S卩,要查找最大值選擇比較器的輸出類(lèi)型;
步驟4、將寄存器組A全部復(fù)位為O,將極值指針寄存器組F分別復(fù)位為0, 1, 2,……,
15;
步驟5、每個(gè)時(shí)鐘向本發(fā)明的電路輸入一個(gè)數(shù)據(jù)(采樣);
步驟6、經(jīng)過(guò)1000個(gè)時(shí)鐘后停止本電路,此時(shí)16個(gè)最大值保存于寄存器組A中,極值指 針寄存器組F內(nèi)保存的是這些極值的大小順序。
采用本發(fā)明所述的方法和裝置,與現(xiàn)有技術(shù)相比,本發(fā)明克服了軟件排序花費(fèi)時(shí)間長(zhǎng), 不能用于實(shí)時(shí)性要求高的場(chǎng)合的缺點(diǎn)。本發(fā)明使用硬件電路來(lái)實(shí)現(xiàn)數(shù)據(jù)的排序,此電路每個(gè) 時(shí)鐘可以處理一個(gè)數(shù)據(jù),目前的集成電路一般可以工作在100MHz以上,對(duì)10萬(wàn)個(gè)數(shù)據(jù)進(jìn)行 排序的時(shí)間小于lms,如果使用多套排序電路并行工作,排序時(shí)間還可以成倍減少,所以本 電路的實(shí)時(shí)處理性強(qiáng),可以滿(mǎn)足對(duì)處理時(shí)間要求比較高的場(chǎng)合。
權(quán)利要求
1、一種實(shí)現(xiàn)數(shù)據(jù)排序的電路,包括至少一寄存器(A),至少一比較器(B),至少一n選1的多路選擇器(C),至少一第一2選1的多路選擇器(D),至少一第二2選1的多路選擇器(E),至少一極值指針寄存器(F),一地址譯碼器(G),一與門(mén)陣列(H);其中,所述寄存器(A)用于存儲(chǔ)排序過(guò)程中當(dāng)前的極值,寄存器(A)的輸出和本電路的數(shù)據(jù)輸入作為比較器(B)的輸入;所述比較器(B)輸出的比較結(jié)果作為n選1的多路選擇器(C)的輸入;所述極值指針寄存器(F)用于記錄當(dāng)前極值所在寄存器(A)的存儲(chǔ)位置及當(dāng)前極值順序,并作為n選1的多路選擇器(C)的控制端;所述n選1的多路選擇器(C)輸出本電路輸入的數(shù)據(jù)與當(dāng)前極值比較的結(jié)果,作為第一2選1多路選擇器(D)的控制端,極值指針寄存器(F)作為第一2選1多路選擇器(D)的輸入端;所述n選1的多路選擇器(C)的輸出作為第二2選1多路選擇器(E)的控制端;所述第一2選1多路選擇器(D)的輸出和極值指針寄存器(F)作為第二2選1多路選擇器(E)的輸入;所述第二2選1多路選擇器(E)的輸出作為極值指針寄存器(F)的輸入;所述極值指針寄存器(F)作為地址譯碼器(G)的輸入端;所述n選1的多路選擇器(C)和地址譯碼器(G)的輸出作為與門(mén)陣列(H)的輸入;所述與門(mén)陣列(H)的輸出連接到寄存器(A)的輸入使能端。
2、 根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)數(shù)據(jù)排序的電路,其特征在于,本電路的數(shù)據(jù)輸入連接 到寄存器(A)和比較器(B),將寄存器(A)和極值指針寄存器(F)連接到輸出。
3、 根據(jù)權(quán)利要求l所述的實(shí)現(xiàn)數(shù)據(jù)排序的電路,其特征在于,所述地址譯碼器(G)和 與門(mén)陣列(H)組合為一個(gè)帶使能端的地址譯碼器。
4、 一種基于權(quán)利要求1所述電路實(shí)現(xiàn)數(shù)據(jù)排序的方法,包括(1) 根據(jù)要査找的極值個(gè)數(shù)n,確定寄存器組(A)、比較器組(B)、 n選l的多路選擇 器組(C)、第一組2選1的多路選擇器(D)和第二組多路選擇器組(E)、極值指針寄存器組(F)的深度,以及第一組2選1的多路選擇器(D)和第二組多路選擇器(E)、極值指針寄存器組(F)的寬度;(2) 根據(jù)數(shù)據(jù)源的個(gè)數(shù)m,確定電路的運(yùn)行時(shí)間為m個(gè)時(shí)鐘;(3) 根據(jù)査找數(shù)值類(lèi)型,選擇比較器(B)的輸出類(lèi)型;(4) 復(fù)位寄存器組(A)、極值指針寄存器組(F);(5) 向電路輸入采樣數(shù)據(jù);(6) 經(jīng)過(guò)m個(gè)時(shí)鐘后停止本電路。
5、 根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)數(shù)據(jù)排序的方法,其特征在于,所述的步驟(1)中, 寄存器組(A)和比較器組(B)的深度為n;n選l的多路選擇器組(C),極值指針寄存器組(F)的深度為n; 第一組2選1的多路選擇器(D)、第二組2選1的多路選擇器(E)的深度為n-l; n選l的多路選擇器組(C)中的每個(gè)選擇器的輸出位寬為1;第一組2選1的多路選擇器(D)和第二組2選1的多路選擇器(E)、極值指針寄存器 (F)組中各單元的輸出位寬為大于或等于kg2 (n)的最小整數(shù)。
6、 根據(jù)權(quán)利要求5所述的實(shí)現(xiàn)數(shù)據(jù)排序的方法,其特征在于,所述的步驟(4)中,極 值指針寄存器組(F)中的各寄存器要分別復(fù)位為不同的值;査找最大值時(shí),所述寄存器組(A) 全部復(fù)位為其最小值,否則寄存器組(A)全部復(fù)位為其最大值。
7、 根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)數(shù)據(jù)排序的方法,其特征在于,所述的步驟(5)具體為 每一個(gè)時(shí)鐘向本電路輸入一個(gè)采樣數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)一種實(shí)現(xiàn)數(shù)據(jù)排序的電路和方法,為解決現(xiàn)有軟件排序時(shí)間長(zhǎng),不滿(mǎn)足實(shí)時(shí)性要求問(wèn)題而發(fā)明。本發(fā)明的電路和方法根據(jù)要查找的極值個(gè)數(shù)n,確定寄存器組、比較器組、n選1的多路選擇器組、第一組2選1的多路選擇器和第二組多路選擇器、極值指針寄存器的深度,及第一組2選1多路選擇器和第二組多路選擇器、極值指針寄存器組的寬度;根據(jù)數(shù)據(jù)源的個(gè)數(shù)m,確定電路的運(yùn)行時(shí)間為m個(gè)時(shí)鐘;根據(jù)查找數(shù)值類(lèi)型,選擇比較器的輸出類(lèi)型;復(fù)位寄存器組、極值指針寄存器組;每個(gè)時(shí)鐘周期向電路輸入一個(gè)采樣數(shù)據(jù);經(jīng)過(guò)m個(gè)時(shí)鐘后停止本電路,此時(shí)寄存器組中保存的即為n個(gè)極值。本發(fā)明電路和方法,電路實(shí)時(shí)處理性強(qiáng),排序時(shí)間成倍減少。
文檔編號(hào)G06F5/06GK101114215SQ200610099538
公開(kāi)日2008年1月30日 申請(qǐng)日期2006年7月28日 優(yōu)先權(quán)日2006年7月28日
發(fā)明者溫子瑜 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1