CN1744443A - 用于产生偶数精简格雷码的方法 - Google Patents

用于产生偶数精简格雷码的方法 Download PDF

Info

Publication number
CN1744443A
CN1744443A CNA2005100751266A CN200510075126A CN1744443A CN 1744443 A CN1744443 A CN 1744443A CN A2005100751266 A CNA2005100751266 A CN A2005100751266A CN 200510075126 A CN200510075126 A CN 200510075126A CN 1744443 A CN1744443 A CN 1744443A
Authority
CN
China
Prior art keywords
gray code
code
bit
many
gray
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005100751266A
Other languages
English (en)
Other versions
CN100576751C (zh
Inventor
格诚·彼得·林
周羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies Fiber IP Singapore Pte Ltd
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of CN1744443A publication Critical patent/CN1744443A/zh
Application granted granted Critical
Publication of CN100576751C publication Critical patent/CN100576751C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/16Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

通过下述步骤建立具有2k个项的n比特循环精简格雷码,其中对任何自然数k,2 (n-1)<2k<2n,n是正整数:首先利用反射二进制技术构造n比特2n项的码,然后选择整个反射二进制码的前一半中的后k个有序项,接着是整个反射二进制码的后一半中的前k个有序项。这些有序的2k个项是缩短了的n比特循环精简格雷码。或者,也可以选择整个反射二进制码的前一半中的前k个有序项,接着是整个反射二进制码的后一半中的后k个有序项。如果将原始格雷码或精简格雷码表示为这样的表,该表的列是比特位置而行是码项,则可在选择2k个之前或者在选择2k个之后随意交换整个列,以产生表面看起来不是“反射”格雷码的其他不同的循环精简格雷码。

Description

用于产生偶数精简格雷码的方法
技术领域
本发明一般地涉及产生格雷码(Gray code)的方法,更具体地说,本发明涉及用于产生偶数精简(even numbered reduced)格雷码的方法。
背景技术
格雷码是其中所有的二进制整数都具有相同比特数的二进制整数的有序集合,该集合具有这样的特性:按照与该集合相关联的排序来看不同的整数时,只有一比特发生变化。尽管在集合中的项中的那些比特的数值可以被解析为***二进制数字,但是通常不是通过对集合中的项加1来寻找该项的后继而生成排序。实际上,格雷码是将二进制整数序列安排到上述具体类型排序中的“人为”安排,并且存在多于一种格雷码。尽管编程执行的算法和逻辑操作可以用来产生格雷码,并且然后对其进行操作,在硬件中实现的选通(gating)也可以“加”和“减”格雷码计数器,并且也可以在格雷码和真正的二进制之间转换,但通常认为这些操作在本质上不是算术的。
格雷码在限制编码器中的不定性(ambiguity)、以及跨过由不同时钟信号控制的机构的边界进行通信的接口中的不定性方面是有用的,对于限制可能由大量逻辑元件同时改变状态(例如,从001111转变到010000)所可能导致的电源和地信号上的噪声或假信号(glitch)的产生也是有用的。在高速数据通信电路中,通常所使用的格雷码是在硬件中实现的;所述硬件例如是使用具体格雷码计数并用于有限状态机寻址的计数器。
有一种具体的格雷码常常被称作“标准”格雷码;其是一类被恰当地称作反射二进制码的码的流行实例。反射二进制码是一种循环码,并且对于n个位大多都具有完整的2n个不同的项。(“循环”的意思是:排序中的“第一”和“最后”项仍旧只差一位,因而该排序“环绕”来从头再开始)。这些反射二进制码可能是在1953年3月17日授权的题为PULSECODE COMMUNICATION的美国专利2,632,058中由贝尔电话实验室的Frank Gray首先描述的。随后,相当多的注意力集中到了格雷码上,无论是“标准”格雷码还是其他格雷码。例如,参见:1966年由John Wiley&Sons出版的Montgomery Phister,Jr.所著LOGICAL DESIGN OF DIGITALCOMPUTERS第8版中的附录II;1977年由Prentice-Hall出版的Reingold、Nieverglet和Deo所著Combinatorial Algorithms:Theory andPractice(ISBN 0-13-152447-X)中的§5.2(节的小节);以及1992年由Cambridge University Press出版的NUMERICAL RECIPES IN C:THE ARTOF SCIENTIFIC COMPUTING(ISBN 0-521-43108-5)中的§20.2。正如下面的网址的内容所示,格雷码在各种不同的领域中不断得到日益广泛的应用:
http://www.nist.gov/dads/HTML/graycode.html,以及
http://www.cs.bham.ac.uk/Mirrors/ftp.de.uu.net/EC/clife/www/Q21.htm。
用于发现或产生格雷码的传统技术受限于具有2n个项的码,其中n是每个整数的比特数。这很不幸,因为存在一些应用,在这些应用中,具有较少项数的格雷码就足够了。但是,2n格雷码的大多子集都是非循环的,而这是可能极大地妨碍了它们的有用性的缺点。对于那些不需要完整的2n个项的应用来说,用于产生具有少于2n个项的循环格雷码的可靠方法能节省硬件和功耗。当然,少于2n个项的意思是:n比特格雷码中的完整的2的幂个项比实际需要的多,并且某个数目m(其中2(n-1)<m<2n)个条目就足够了。所以问题是:“如何找到具有m个项的n比特循环格雷码?”
发明内容
本发明公开了对于任何自然数k,允许产生具有2k个项的n比特循环格雷码(“2k格雷码”)的算法,从而提供了一种解决方案,解决了寻找具有少于2n个项的n比特循环格雷码的问题,其中2(n-1)<2k<2n,并且n是正整数。我们把这种格雷码称作“精简”格雷码。简而言之,该方法包括用反射二进制技术来构造2n个项的n比特码,然后选择整个反射二进制码的前一半中的后k个有序项,接着是整个反射二进制码的后一半中的前k个有序项。这些选出的有序的2k个项是缩短了但仍旧循环的(精简的)n比特格雷码。或者,也可以选择整个反射二进制码的前一半中的前k个有序项,接着是整个反射二进制码的后一半中的后k个有序项。如果将格雷码表示为这样的表,该表的列是比特位置而行是码项,则可以在选择2k个之前或者在选择2k个之后随意交换整个列,以产生表面看起来不是“反射”格雷码的其他不同的循环精简格雷码。一旦识别出循环精简格雷码,就可以利用例如下述Verilog描述驱动的标准综合工具(例如Synopsys或Simplify),轻易获得该格雷码在硬件中的门级电路实现(例如,计数器、格雷-二进制转换器),其中所述Verilog描述描述了码中的项如何相互关联(例如,顺序、映射),以及如何与任何被施加的控制信号(例如,增、减)相关联。
附图说明
图1是产生4比特10状态精简2k格雷码的示例;
图2是产生4比特12状态精简格雷码的示例,但是该格雷码的列已被重安排为不同于反射二进制码;并且
图3是图示了在下述数据通信环境中可以怎样使用精简格雷码的简化硬件方框图:在该数据通信环境中,通过FIFO(先进先出)***对输入输出数据进行排队和取回。
具体实施方式
首先考虑如何构造n比特并且具有2n个状态的反射二进制格雷码。尽管有各种解释或诀窍,但是我们还是从前述的web站点www.nist.gov直接获得下面的方法。
一种构造n比特格雷码的方法以n-1比特的格雷码开始。现在我们从2比特格雷码开始(在本示例和随后的那些示例中,状态序号(Si)被图示在每个格雷码项的左侧):
(a)
    S0                00
    S1                01
    S2                11
    S3                10
现在在n-1比特的格雷码下面重复其自身,但是是以反序重复:
    S0                00
    S1                01
    S2                11
    S3                10
    S4                10
    S5                11
    S6                01
    S7                00
现在在前一半(或上半部分)的左边添0或1,并且在后一半(或下半部分)的左边添加在第一部分的左边添加的数的补数:
(c)                     或(d)
    S0        000            S0         100
    S1        001            S1         101
    S2        011            S2         111
    S3        010            S3         110
    S4        110            S4         010
    S5        111            S5         011
    S6        101            S6         001
    S7        100            S7         000
结果是两个反射二进制3比特格雷码。当然,也可以从不同的2比特格雷码(00,10,11,01)开始。并且为了以免读者误信反射二进制格雷码是唯一的格雷码,这里给出两个非反射3比特格雷码:
(e)                     和(f)
    S0        000            S0       000
    S1        100            S1       001
    S2        101            S2       101
    S3        111            S3       100
    S4        110            S4       110
    S5        010            S5       111
    S6        011            S6       011
    S7        001            S7       010
但是,(e)或(f)都可以用作创建4比特反射二进制格雷码的起点。很清楚,存在一大族格雷码,而反射二进制格雷码仅仅是该族的子集。(不难从反射格雷码得到非反射格雷码—只将最左列与某一其他列交换。那就是如何从(c)得到(f)的方法。最左列和中间列被交换了。)
现在,在进一步前进之前,存在一些应当指出的东西。我们从其开始的各种格雷码的示例(a)、(c)和(d)共有令人感兴趣的性质。注意可以怎样将码放置到关于有序集合的中部对称的成对对应位置中的。即,(a)的S1与S2、、以及S0与S3,同样,(c)和(d)的S3/S4、S2/S5、S1/S6、S0/S7。这种对应的实质是所涉及的码项在格雷码中可以互为前序或者后继。这并不意味着可以用一个码项交换另一个码项,但是的确意味着这种对可以成为“连接点”,该“连接点”能连接在其他部分被丢弃之后剩余的精简格雷码的两个其他片段。即,这种性质提供了一种方法来缩短格雷码,并保持其循环。我们称这种成对对应的性质为关于中点“平衡”,并且把示例(a)、(c)和(d)称作平衡格雷码的实例。
实际的格雷码的任何实例都是有限的,并且正如旋转球体的轴具有两个极,“平衡”的概念确保存在第二种转变,关于该转变也可以遵守平衡条件。所以,(c)不仅关于中点转变S3/S4平衡,而且也关于S7/S0平衡。可以说在这种平衡位置的任一一端都存在码对,形成被称作“对称翻转序列”的序列。所以,提前看看图1,格雷码1中的S0/S15、S1/S4和S2/S13是对称翻转序列,而图2中的格雷码9的S7/S8和S6/S9也是对称翻转序列。
本申请的读者稍加思考便能相信任何反射二进制格雷码都是如上所述平衡的,并且包含有对称翻转序列。这之所以如此,是由于在一个码自身之下以反序重复该码的镜像动作所致。但是,绝对不能认为所有的格雷码都是平衡的。在示例(e)中,S2/S5就不能成为格雷码中相邻的对。很明显,(e)也不是通过反射得来的。但是,3比特8状态格雷码(e)仍旧可以用作反射二进制格雷码构造过程(a)-(d)的开始位置,以产生平衡的16状态4比特格雷码,并且该格雷码包含有对称翻转序列。
现在参考图1,图1图示了产生下述格雷码的方法的代表,该格雷码是在每个4比特的码项中表示的具有10个状态的精简偶数格雷码(reduced even numbered Gray code)。该格雷码从“标准”格雷码1开始,在该示例中,其是用来播种如上所示的反射二进制格雷码构造过程的(c)。注意,作为反射码,格雷码1是关于其中部对称的,所述中部是S7和S8之间的转变2。由于希望得到10状态精简格雷码,所以选择就在转变2之前的5个状态S3-S3和就在转变2之后的5个状态S8-S12,总共10个状态:S3-S12。这留下3个最前的状态5S0-S2和3个最后的状态6S13-S15未使用。由于格雷码1是平衡的,所以所选择的多个状态3和4的并集也是循环格雷码。即,(旧的)S3和(旧的)S12可以是格雷码中的相邻项。将这10个状态重新编号为(新的)S0-S9,并且将其作为期望的精简格雷码8,如10状态4比特精简格雷码表7所示。
现在参考图2,其中图示了图1的方法的另一种表示。在这种情形中,寻求4比特的12状态精简格雷码,尽管使用了相同的一般方法,但是还是存在某些差别。首先,在图2中用作起点的的格雷码9与在图1中使用的格雷码1不同。该格雷码不是在介绍性课本和文章中的解释性示例中常常使用的“标准”格雷码。相反,它是从前述的3比特非反射格雷码(e)得来的。我们也可以选择从(f)开始。无论如何,反射二进制码技术被应用到(e)来产生4比特16状态的平衡循环格雷码9。为了产生12状态精简格雷码,丢弃了4个状态:在原始格雷码9中的中间(S7/S8)转变之上的两个状态10,以及在其下的两个状态11。结果就是12状态精简格雷码12。
读者将会理解,图1和图2之间的本质差别不是所产生的精简格雷码中的状态数目,而是所丢弃的状态的位置。相对于将码图示为表的通常方式,通过将下述对称翻转序列的成员丢弃来形成不同的精简格雷码,其中所述对称翻转序列关于位于(原始未精简的)表中不同位置的作为“平衡点”的转变对称。由于反射二进制格雷码是循环的,所以平衡点位于表格排列中的何处只取决于在原始表中选择那个码项作为第一码项。当然,由于作为结果的精简格雷码是循环的,所以其具有数种表格排列。
这样,一般而言,为了寻找n比特2k个码项的精简格雷码,可以从(n-1)比特的格雷码开始,从而产生2n个项的相关循环反射二进制码。然后,对称地丢弃属于对称翻转序列的某一数目q对码项,而留下2k个项的循环精简格雷码,其中2(q+k)=2n
最后,现在参考图3。图3是包含精简格雷码的具体硬件装置的简化方框图。在某些光纤信道数据通信部署中,弹性FIFO(先进先出)是重要的元件。该弹性FIFO跨越时钟域边界连接10比特宽的数据。FIFO由12组触发器的排列组成,每组都足够大,以包含一个数据字。12状态二进制写计数器18响应于FIFO写时钟来为输入数据确定FIFO位置。12状态读计数器响应于FIFO读时钟来确定用于数据输出的FIFO位置。这两个计数器在方框17被相互比较17来产生涉及操作的其他方面的控制信号(未示出)。
为了减少跨越时钟域边界的电噪声和亚稳度错误,二进制读计数在方框14被转换成12状态精简格雷码,此后,其在方框15被与FIFO写时钟同步化。同步化之后,该格雷码在方框16被转换回二进制以用于在方框17处进行比较。
应当理解,这种相同的硬件功能也可以用以格雷码进行计数的计数器作为开始的计数器的相关部署实现,并且不用格雷码和二进制之间的转换。但是,如果认为实现二进制数值比较比格雷码容易,则转换是有用的。

Claims (5)

1.一种产生对于自然数k具有2k个项的n比特精简格雷码的方法,所述方法包括以下步骤:
(a)对其r个有序项为(a、b、c、…、i、j)的(n-1)比特格雷码进行反射操作,以产生2r个有序项为(a、b、c、…、i、j、j、i、…、c、b、a)的中间循环码,r大于k,并且多个项(…、b、a、a、b、…)和(…、i、j、j、i、…)代表所述项的排序中的对称翻转序列;
(b)向所述中间码的前一半中的有序项(a、b、c、…、j)中的每一个中的所选位置添加第一比特值来产生n比特的项,向所述中间码的后一半中的有序项(j、…、c、b、a)中的每一个中的所述所选位置添加所述第一比特值的补数来产生n比特的项,所述中间码的所述前一半和所述后一半的添加后的版本的组合形成2r个项的循环反射二进制格雷码;和
(c)从步骤(b)的2r个项的所述循环反射二进制格雷码对称地丢弃对应于对称翻转序列的2(r-k)个连续项,留下2k个项的n比特循环精简格雷码。
2.如权利要求1所述的方法,其中,步骤(a)的所述(n-1)比特格雷码自身是反射二进制格雷码。
3.如权利要求1所述的方法,其中,步骤(a)的所述(n-1)比特格雷码自身是精简格雷码,其中2k小于2(n-1)
4.如权利要求1所述的方法,其中2k小于2(n)并大于2(n-1)
5.包含根据权利要求1产生的格雷码的装置。
CN200510075126A 2004-08-30 2005-06-08 用于产生偶数精简格雷码的方法及包含精简格雷码的装置 Expired - Fee Related CN100576751C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/929,528 2004-08-30
US10/929,528 US6970113B1 (en) 2004-08-30 2004-08-30 Method for generation of even numbered reduced gray codes

Publications (2)

Publication Number Publication Date
CN1744443A true CN1744443A (zh) 2006-03-08
CN100576751C CN100576751C (zh) 2009-12-30

Family

ID=35405196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510075126A Expired - Fee Related CN100576751C (zh) 2004-08-30 2005-06-08 用于产生偶数精简格雷码的方法及包含精简格雷码的装置

Country Status (3)

Country Link
US (1) US6970113B1 (zh)
JP (1) JP2006074758A (zh)
CN (1) CN100576751C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324045A (zh) * 2019-07-12 2019-10-11 本征信息技术(上海)有限公司 一种格雷码的构造方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7148825B2 (en) * 2004-05-10 2006-12-12 Broadcom Corporation Data interface including gray coding
JP5091911B2 (ja) * 2009-05-15 2012-12-05 川崎マイクロエレクトロニクス株式会社 コード変換回路およびカウンタ
US8966416B2 (en) 2013-03-07 2015-02-24 Cadence Design Systems, Inc. Finite-state machine encoding during design synthesis
WO2018176325A1 (en) * 2017-03-30 2018-10-04 Qualcomm Incorporated Encoding and decoding using non-systematic block codes
US11342922B1 (en) 2020-12-21 2022-05-24 Advanced Micro Devices, Inc. Direct bi-directional gray code counter
WO2023218798A1 (ja) * 2022-05-10 2023-11-16 ソニーセミコンダクタソリューションズ株式会社 測距装置及びカウンタ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2632058A (en) * 1946-03-22 1953-03-17 Bell Telephone Labor Inc Pulse code communication
US4101882A (en) * 1976-05-28 1978-07-18 The Brunton Company Data read-out system and apparatus useful for angular measurements
JPS5355055A (en) * 1976-10-27 1978-05-19 Yamato Scale Co Ltd Gray code reader
JPH09265746A (ja) * 1996-03-26 1997-10-07 Internatl Business Mach Corp <Ibm> デイスク装置およびデイスク装置におけるヘッド切り換え方法
CA2357443A1 (en) * 2001-09-13 2003-03-13 Pmc-Sierra Ltd. Gray code sequences

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324045A (zh) * 2019-07-12 2019-10-11 本征信息技术(上海)有限公司 一种格雷码的构造方法
CN110324045B (zh) * 2019-07-12 2023-06-02 本征信息技术(苏州)有限公司 一种格雷码的构造方法

Also Published As

Publication number Publication date
US6970113B1 (en) 2005-11-29
JP2006074758A (ja) 2006-03-16
CN100576751C (zh) 2009-12-30

Similar Documents

Publication Publication Date Title
CN1744443A (zh) 用于产生偶数精简格雷码的方法
US5155823A (en) Address generating unit
Scherson et al. Parallel sorting in two-dimensional VLSI models of computation
George et al. Communication results for parallel sparse Cholesky factorization on a hypercube
US5696913A (en) Unique processor identifier in a multi-processing system having plural memories with a unified address space corresponding to each processor
US5371896A (en) Multi-processor having control over synchronization of processors in mind mode and method of operation
US7421563B2 (en) Hashing and serial decoding techniques
CN101116249A (zh) 并行交织器、并行解交织器以及交织方法
CN1292903A (zh) 用于确定数据值在存储设备中的存储地址的方法和访问装置
CN112506567B (zh) 数据读取方法和数据读取电路
CN1105454C (zh) 对多个连续接收的数据元素重新排序的装置和方法
Benini et al. Synthesis of low-overhead interfaces for power-efficient communication over wide buses
JP2018073452A (ja) Dram基盤のプロセシングユニット
Pavel et al. Integer sorting and routing in arrays with reconfigurable optical buses
CN1126375C (zh) 视频信号编码***的量化器
US5008852A (en) Parallel accessible memory device
CN1074228C (zh) 随机选出一个单元的装置和方法及使用该装置的若干设备
RU2374672C1 (ru) Устройство для построения программируемых цифровых микропроцессорных систем
CN1440209A (zh) 用于最小化由收缩引起的输出延迟的设备和方法
Cypher et al. Cubesort: An optimal sorting algorithm for feasible parallel computers
US4719592A (en) Sequence generator
CN1731369A (zh) 扩展存贮空间的装置和随机访问方法
RU2397610C2 (ru) Цифровое устройство для формирования последовательностей управляющих сигналов
Brunet et al. Hypercube algorithms for direct N-body solvers for different granularities
CN1703090A (zh) 高速多变长码并行解码器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20061124

Address after: Singapore Singapore

Applicant after: Avago Technologies Fiber IP (Singapore) Pte. Ltd.

Address before: Singapore Singapore

Applicant before: Avago Technologies General IP (Singapore) Pte. Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091230

Termination date: 20130608