欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于產(chǎn)生偶數(shù)精簡格雷碼的方法

文檔序號(hào):7509143閱讀:339來源:國知局
專利名稱:用于產(chǎn)生偶數(shù)精簡格雷碼的方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及產(chǎn)生格雷碼(Gray code)的方法,更具體地說,本發(fā)明涉及用于產(chǎn)生偶數(shù)精簡(even numbered reduced)格雷碼的方法。
背景技術(shù)
格雷碼是其中所有的二進(jìn)制整數(shù)都具有相同比特?cái)?shù)的二進(jìn)制整數(shù)的有序集合,該集合具有這樣的特性按照與該集合相關(guān)聯(lián)的排序來看不同的整數(shù)時(shí),只有一比特發(fā)生變化。盡管在集合中的項(xiàng)中的那些比特的數(shù)值可以被解析為阿拉伯二進(jìn)制數(shù)字,但是通常不是通過對(duì)集合中的項(xiàng)加1來尋找該項(xiàng)的后繼而生成排序。實(shí)際上,格雷碼是將二進(jìn)制整數(shù)序列安排到上述具體類型排序中的“人為”安排,并且存在多于一種格雷碼。盡管編程執(zhí)行的算法和邏輯操作可以用來產(chǎn)生格雷碼,并且然后對(duì)其進(jìn)行操作,在硬件中實(shí)現(xiàn)的選通(gating)也可以“加”和“減”格雷碼計(jì)數(shù)器,并且也可以在格雷碼和真正的二進(jìn)制之間轉(zhuǎn)換,但通常認(rèn)為這些操作在本質(zhì)上不是算術(shù)的。
格雷碼在限制編碼器中的不定性(ambiguity)、以及跨過由不同時(shí)鐘信號(hào)控制的機(jī)構(gòu)的邊界進(jìn)行通信的接口中的不定性方面是有用的,對(duì)于限制可能由大量邏輯元件同時(shí)改變狀態(tài)(例如,從001111轉(zhuǎn)變到010000)所可能導(dǎo)致的電源和地信號(hào)上的噪聲或假信號(hào)(glitch)的產(chǎn)生也是有用的。在高速數(shù)據(jù)通信電路中,通常所使用的格雷碼是在硬件中實(shí)現(xiàn)的;所述硬件例如是使用具體格雷碼計(jì)數(shù)并用于有限狀態(tài)機(jī)尋址的計(jì)數(shù)器。
有一種具體的格雷碼常常被稱作“標(biāo)準(zhǔn)”格雷碼;其是一類被恰當(dāng)?shù)胤Q作反射二進(jìn)制碼的碼的流行實(shí)例。反射二進(jìn)制碼是一種循環(huán)碼,并且對(duì)于n個(gè)位大多都具有完整的2n個(gè)不同的項(xiàng)。(“循環(huán)”的意思是排序中的“第一”和“最后”項(xiàng)仍舊只差一位,因而該排序“環(huán)繞”來從頭再開始)。這些反射二進(jìn)制碼可能是在1953年3月17日授權(quán)的題為PULSECODE COMMUNICATION的美國專利2,632,058中由貝爾電話實(shí)驗(yàn)室的Frank Gray首先描述的。隨后,相當(dāng)多的注意力集中到了格雷碼上,無論是“標(biāo)準(zhǔn)”格雷碼還是其他格雷碼。例如,參見1966年由John Wiley&Sons出版的Montgomery Phister,Jr.所著LOGICAL DESIGN OF DIGITALCOMPUTERS第8版中的附錄II;1977年由Prentice-Hall出版的Reingold、Nieverglet和Deo所著Combinatorial AlgorithmsTheory andPractice(ISBN 0-13-152447-X)中的§5.2(節(jié)的小節(jié));以及1992年由Cambridge University Press出版的NUMERICAL RECIPES IN CTHE ARTOF SCIENTIFIC COMPUTING(ISBN 0-521-43108-5)中的§20.2。正如下面的網(wǎng)址的內(nèi)容所示,格雷碼在各種不同的領(lǐng)域中不斷得到日益廣泛的應(yīng)用http//www.nist.gov/dads/HTML/graycode.html,以及http//www.cs.bham.ac.uk/Mirrors/ftp.de.uu.net/EC/clife/www/Q21.htm。
用于發(fā)現(xiàn)或產(chǎn)生格雷碼的傳統(tǒng)技術(shù)受限于具有2n個(gè)項(xiàng)的碼,其中n是每個(gè)整數(shù)的比特?cái)?shù)。這很不幸,因?yàn)榇嬖谝恍?yīng)用,在這些應(yīng)用中,具有較少項(xiàng)數(shù)的格雷碼就足夠了。但是,2n格雷碼的大多子集都是非循環(huán)的,而這是可能極大地妨礙了它們的有用性的缺點(diǎn)。對(duì)于那些不需要完整的2n個(gè)項(xiàng)的應(yīng)用來說,用于產(chǎn)生具有少于2n個(gè)項(xiàng)的循環(huán)格雷碼的可靠方法能節(jié)省硬件和功耗。當(dāng)然,少于2n個(gè)項(xiàng)的意思是n比特格雷碼中的完整的2的冪個(gè)項(xiàng)比實(shí)際需要的多,并且某個(gè)數(shù)目m(其中2(n-1)<m<2n)個(gè)條目就足夠了。所以問題是“如何找到具有m個(gè)項(xiàng)的n比特循環(huán)格雷碼?”發(fā)明內(nèi)容本發(fā)明公開了對(duì)于任何自然數(shù)k,允許產(chǎn)生具有2k個(gè)項(xiàng)的n比特循環(huán)格雷碼(“2k格雷碼”)的算法,從而提供了一種解決方案,解決了尋找具有少于2n個(gè)項(xiàng)的n比特循環(huán)格雷碼的問題,其中2(n-1)<2k<2n,并且n是正整數(shù)。我們把這種格雷碼稱作“精簡”格雷碼。簡而言之,該方法包括用反射二進(jìn)制技術(shù)來構(gòu)造2n個(gè)項(xiàng)的n比特碼,然后選擇整個(gè)反射二進(jìn)制碼的前一半中的后k個(gè)有序項(xiàng),接著是整個(gè)反射二進(jìn)制碼的后一半中的前k個(gè)有序項(xiàng)。這些選出的有序的2k個(gè)項(xiàng)是縮短了但仍舊循環(huán)的(精簡的)n比特格雷碼?;蛘撸部梢赃x擇整個(gè)反射二進(jìn)制碼的前一半中的前k個(gè)有序項(xiàng),接著是整個(gè)反射二進(jìn)制碼的后一半中的后k個(gè)有序項(xiàng)。如果將格雷碼表示為這樣的表,該表的列是比特位置而行是碼項(xiàng),則可以在選擇2k個(gè)之前或者在選擇2k個(gè)之后隨意交換整個(gè)列,以產(chǎn)生表面看起來不是“反射”格雷碼的其他不同的循環(huán)精簡格雷碼。一旦識(shí)別出循環(huán)精簡格雷碼,就可以利用例如下述Verilog描述驅(qū)動(dòng)的標(biāo)準(zhǔn)綜合工具(例如Synopsys或Simplify),輕易獲得該格雷碼在硬件中的門級(jí)電路實(shí)現(xiàn)(例如,計(jì)數(shù)器、格雷-二進(jìn)制轉(zhuǎn)換器),其中所述Verilog描述描述了碼中的項(xiàng)如何相互關(guān)聯(lián)(例如,順序、映射),以及如何與任何被施加的控制信號(hào)(例如,增、減)相關(guān)聯(lián)。


圖1是產(chǎn)生4比特10狀態(tài)精簡2k格雷碼的示例;圖2是產(chǎn)生4比特12狀態(tài)精簡格雷碼的示例,但是該格雷碼的列已被重安排為不同于反射二進(jìn)制碼;并且圖3是圖示了在下述數(shù)據(jù)通信環(huán)境中可以怎樣使用精簡格雷碼的簡化硬件方框圖在該數(shù)據(jù)通信環(huán)境中,通過FIFO(先進(jìn)先出)系統(tǒng)對(duì)輸入輸出數(shù)據(jù)進(jìn)行排隊(duì)和取回。
具體實(shí)施例方式
首先考慮如何構(gòu)造n比特并且具有2n個(gè)狀態(tài)的反射二進(jìn)制格雷碼。盡管有各種解釋或訣竅,但是我們還是從前述的web站點(diǎn)www.nist.gov直接獲得下面的方法。
一種構(gòu)造n比特格雷碼的方法以n-1比特的格雷碼開始。現(xiàn)在我們從2比特格雷碼開始(在本示例和隨后的那些示例中,狀態(tài)序號(hào)(Si)被圖示在每個(gè)格雷碼項(xiàng)的左側(cè))
(a)S000S101S211S310現(xiàn)在在n-1比特的格雷碼下面重復(fù)其自身,但是是以反序重復(fù)S000S101S211S310S410S511S601S700現(xiàn)在在前一半(或上半部分)的左邊添0或1,并且在后一半(或下半部分)的左邊添加在第一部分的左邊添加的數(shù)的補(bǔ)數(shù)(c) 或(d)S0000S0100S1001S1101S2011S2111S3010S3110S4110S4010S5111S5011S6101S6001S7100S7000結(jié)果是兩個(gè)反射二進(jìn)制3比特格雷碼。當(dāng)然,也可以從不同的2比特格雷碼(00,10,11,01)開始。并且為了以免讀者誤信反射二進(jìn)制格雷碼是唯一的格雷碼,這里給出兩個(gè)非反射3比特格雷碼
(e) 和(f)S0000S0000S1100S1001S2101S2101S3111S3100S4110S4110S5010S5111S6011S6011S7001S7010但是,(e)或(f)都可以用作創(chuàng)建4比特反射二進(jìn)制格雷碼的起點(diǎn)。很清楚,存在一大族格雷碼,而反射二進(jìn)制格雷碼僅僅是該族的子集。(不難從反射格雷碼得到非反射格雷碼—只將最左列與某一其他列交換。那就是如何從(c)得到(f)的方法。最左列和中間列被交換了。)現(xiàn)在,在進(jìn)一步前進(jìn)之前,存在一些應(yīng)當(dāng)指出的東西。我們從其開始的各種格雷碼的示例(a)、(c)和(d)共有令人感興趣的性質(zhì)。注意可以怎樣將碼放置到關(guān)于有序集合的中部對(duì)稱的成對(duì)對(duì)應(yīng)位置中的。即,(a)的S1與S2、、以及S0與S3,同樣,(c)和(d)的S3/S4、S2/S5、S1/S6、S0/S7。這種對(duì)應(yīng)的實(shí)質(zhì)是所涉及的碼項(xiàng)在格雷碼中可以互為前序或者后繼。這并不意味著可以用一個(gè)碼項(xiàng)交換另一個(gè)碼項(xiàng),但是的確意味著這種對(duì)可以成為“連接點(diǎn)”,該“連接點(diǎn)”能連接在其他部分被丟棄之后剩余的精簡格雷碼的兩個(gè)其他片段。即,這種性質(zhì)提供了一種方法來縮短格雷碼,并保持其循環(huán)。我們稱這種成對(duì)對(duì)應(yīng)的性質(zhì)為關(guān)于中點(diǎn)“平衡”,并且把示例(a)、(c)和(d)稱作平衡格雷碼的實(shí)例。
實(shí)際的格雷碼的任何實(shí)例都是有限的,并且正如旋轉(zhuǎn)球體的軸具有兩個(gè)極,“平衡”的概念確保存在第二種轉(zhuǎn)變,關(guān)于該轉(zhuǎn)變也可以遵守平衡條件。所以,(c)不僅關(guān)于中點(diǎn)轉(zhuǎn)變S3/S4平衡,而且也關(guān)于S7/S0平衡??梢哉f在這種平衡位置的任一一端都存在碼對(duì),形成被稱作“對(duì)稱翻轉(zhuǎn)序列”的序列。所以,提前看看圖1,格雷碼1中的S0/S15、S1/S4和S2/S13是對(duì)稱翻轉(zhuǎn)序列,而圖2中的格雷碼9的S7/S8和S6/S9也是對(duì)稱翻轉(zhuǎn)序列。
本申請(qǐng)的讀者稍加思考便能相信任何反射二進(jìn)制格雷碼都是如上所述平衡的,并且包含有對(duì)稱翻轉(zhuǎn)序列。這之所以如此,是由于在一個(gè)碼自身之下以反序重復(fù)該碼的鏡像動(dòng)作所致。但是,絕對(duì)不能認(rèn)為所有的格雷碼都是平衡的。在示例(e)中,S2/S5就不能成為格雷碼中相鄰的對(duì)。很明顯,(e)也不是通過反射得來的。但是,3比特8狀態(tài)格雷碼(e)仍舊可以用作反射二進(jìn)制格雷碼構(gòu)造過程(a)-(d)的開始位置,以產(chǎn)生平衡的16狀態(tài)4比特格雷碼,并且該格雷碼包含有對(duì)稱翻轉(zhuǎn)序列。
現(xiàn)在參考圖1,圖1圖示了產(chǎn)生下述格雷碼的方法的代表,該格雷碼是在每個(gè)4比特的碼項(xiàng)中表示的具有10個(gè)狀態(tài)的精簡偶數(shù)格雷碼(reduced even numbered Gray code)。該格雷碼從“標(biāo)準(zhǔn)”格雷碼1開始,在該示例中,其是用來播種如上所示的反射二進(jìn)制格雷碼構(gòu)造過程的(c)。注意,作為反射碼,格雷碼1是關(guān)于其中部對(duì)稱的,所述中部是S7和S8之間的轉(zhuǎn)變2。由于希望得到10狀態(tài)精簡格雷碼,所以選擇就在轉(zhuǎn)變2之前的5個(gè)狀態(tài)S3-S3和就在轉(zhuǎn)變2之后的5個(gè)狀態(tài)S8-S12,總共10個(gè)狀態(tài)S3-S12。這留下3個(gè)最前的狀態(tài)5S0-S2和3個(gè)最后的狀態(tài)6S13-S15未使用。由于格雷碼1是平衡的,所以所選擇的多個(gè)狀態(tài)3和4的并集也是循環(huán)格雷碼。即,(舊的)S3和(舊的)S12可以是格雷碼中的相鄰項(xiàng)。將這10個(gè)狀態(tài)重新編號(hào)為(新的)S0-S9,并且將其作為期望的精簡格雷碼8,如10狀態(tài)4比特精簡格雷碼表7所示。
現(xiàn)在參考圖2,其中圖示了圖1的方法的另一種表示。在這種情形中,尋求4比特的12狀態(tài)精簡格雷碼,盡管使用了相同的一般方法,但是還是存在某些差別。首先,在圖2中用作起點(diǎn)的的格雷碼9與在圖1中使用的格雷碼1不同。該格雷碼不是在介紹性課本和文章中的解釋性示例中常常使用的“標(biāo)準(zhǔn)”格雷碼。相反,它是從前述的3比特非反射格雷碼(e)得來的。我們也可以選擇從(f)開始。無論如何,反射二進(jìn)制碼技術(shù)被應(yīng)用到(e)來產(chǎn)生4比特16狀態(tài)的平衡循環(huán)格雷碼9。為了產(chǎn)生12狀態(tài)精簡格雷碼,丟棄了4個(gè)狀態(tài)在原始格雷碼9中的中間(S7/S8)轉(zhuǎn)變之上的兩個(gè)狀態(tài)10,以及在其下的兩個(gè)狀態(tài)11。結(jié)果就是12狀態(tài)精簡格雷碼12。
讀者將會(huì)理解,圖1和圖2之間的本質(zhì)差別不是所產(chǎn)生的精簡格雷碼中的狀態(tài)數(shù)目,而是所丟棄的狀態(tài)的位置。相對(duì)于將碼圖示為表的通常方式,通過將下述對(duì)稱翻轉(zhuǎn)序列的成員丟棄來形成不同的精簡格雷碼,其中所述對(duì)稱翻轉(zhuǎn)序列關(guān)于位于(原始未精簡的)表中不同位置的作為“平衡點(diǎn)”的轉(zhuǎn)變對(duì)稱。由于反射二進(jìn)制格雷碼是循環(huán)的,所以平衡點(diǎn)位于表格排列中的何處只取決于在原始表中選擇那個(gè)碼項(xiàng)作為第一碼項(xiàng)。當(dāng)然,由于作為結(jié)果的精簡格雷碼是循環(huán)的,所以其具有數(shù)種表格排列。
這樣,一般而言,為了尋找n比特2k個(gè)碼項(xiàng)的精簡格雷碼,可以從(n-1)比特的格雷碼開始,從而產(chǎn)生2n個(gè)項(xiàng)的相關(guān)循環(huán)反射二進(jìn)制碼。然后,對(duì)稱地丟棄屬于對(duì)稱翻轉(zhuǎn)序列的某一數(shù)目q對(duì)碼項(xiàng),而留下2k個(gè)項(xiàng)的循環(huán)精簡格雷碼,其中2(q+k)=2n。
最后,現(xiàn)在參考圖3。圖3是包含精簡格雷碼的具體硬件裝置的簡化方框圖。在某些光纖信道數(shù)據(jù)通信部署中,彈性FIFO(先進(jìn)先出)是重要的元件。該彈性FIFO跨越時(shí)鐘域邊界連接10比特寬的數(shù)據(jù)。FIFO由12組觸發(fā)器的排列組成,每組都足夠大,以包含一個(gè)數(shù)據(jù)字。12狀態(tài)二進(jìn)制寫計(jì)數(shù)器18響應(yīng)于FIFO寫時(shí)鐘來為輸入數(shù)據(jù)確定FIFO位置。12狀態(tài)讀計(jì)數(shù)器響應(yīng)于FIFO讀時(shí)鐘來確定用于數(shù)據(jù)輸出的FIFO位置。這兩個(gè)計(jì)數(shù)器在方框17被相互比較17來產(chǎn)生涉及操作的其他方面的控制信號(hào)(未示出)。
為了減少跨越時(shí)鐘域邊界的電噪聲和亞穩(wěn)度錯(cuò)誤,二進(jìn)制讀計(jì)數(shù)在方框14被轉(zhuǎn)換成12狀態(tài)精簡格雷碼,此后,其在方框15被與FIFO寫時(shí)鐘同步化。同步化之后,該格雷碼在方框16被轉(zhuǎn)換回二進(jìn)制以用于在方框17處進(jìn)行比較。
應(yīng)當(dāng)理解,這種相同的硬件功能也可以用以格雷碼進(jìn)行計(jì)數(shù)的計(jì)數(shù)器作為開始的計(jì)數(shù)器的相關(guān)部署實(shí)現(xiàn),并且不用格雷碼和二進(jìn)制之間的轉(zhuǎn)換。但是,如果認(rèn)為實(shí)現(xiàn)二進(jìn)制數(shù)值比較比格雷碼容易,則轉(zhuǎn)換是有用的。
權(quán)利要求
1.一種產(chǎn)生對(duì)于自然數(shù)k具有2k個(gè)項(xiàng)的n比特精簡格雷碼的方法,所述方法包括以下步驟(a)對(duì)其r個(gè)有序項(xiàng)為(a、b、c、…、i、j)的(n-1)比特格雷碼進(jìn)行反射操作,以產(chǎn)生2r個(gè)有序項(xiàng)為(a、b、c、…、i、j、j、i、…、c、b、a)的中間循環(huán)碼,r大于k,并且多個(gè)項(xiàng)(…、b、a、a、b、…)和(…、i、j、j、i、…)代表所述項(xiàng)的排序中的對(duì)稱翻轉(zhuǎn)序列;(b)向所述中間碼的前一半中的有序項(xiàng)(a、b、c、…、j)中的每一個(gè)中的所選位置添加第一比特值來產(chǎn)生n比特的項(xiàng),向所述中間碼的后一半中的有序項(xiàng)(j、…、c、b、a)中的每一個(gè)中的所述所選位置添加所述第一比特值的補(bǔ)數(shù)來產(chǎn)生n比特的項(xiàng),所述中間碼的所述前一半和所述后一半的添加后的版本的組合形成2r個(gè)項(xiàng)的循環(huán)反射二進(jìn)制格雷碼;和(c)從步驟(b)的2r個(gè)項(xiàng)的所述循環(huán)反射二進(jìn)制格雷碼對(duì)稱地丟棄對(duì)應(yīng)于對(duì)稱翻轉(zhuǎn)序列的2(r-k)個(gè)連續(xù)項(xiàng),留下2k個(gè)項(xiàng)的n比特循環(huán)精簡格雷碼。
2.如權(quán)利要求1所述的方法,其中,步驟(a)的所述(n-1)比特格雷碼自身是反射二進(jìn)制格雷碼。
3.如權(quán)利要求1所述的方法,其中,步驟(a)的所述(n-1)比特格雷碼自身是精簡格雷碼,其中2k小于2(n-1)。
4.如權(quán)利要求1所述的方法,其中2k小于2(n)并大于2(n-1)。
5.包含根據(jù)權(quán)利要求1產(chǎn)生的格雷碼的裝置。
全文摘要
通過下述步驟建立具有2k個(gè)項(xiàng)的n比特循環(huán)精簡格雷碼,其中對(duì)任何自然數(shù)k,文檔編號(hào)H03M7/14GK1744443SQ20051007512
公開日2006年3月8日 申請(qǐng)日期2005年6月8日 優(yōu)先權(quán)日2004年8月30日
發(fā)明者格誠·彼得·林, 周羽 申請(qǐng)人:安捷倫科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
兴文县| 隆德县| 民县| 札达县| 扎赉特旗| 贵德县| 朝阳县| 黎平县| 齐齐哈尔市| 安新县| 嘉鱼县| 泊头市| 宁国市| 屯昌县| 华池县| 常山县| 开封县| 天峨县| 衡山县| 新河县| 富蕴县| 包头市| 清丰县| 山阳县| 南川市| 温泉县| 砚山县| 南丹县| 剑河县| 博客| 潼南县| 钦州市| 英吉沙县| 明溪县| 绍兴县| 武陟县| 靖边县| 临邑县| 漾濞| 封开县| 房产|