JP2004507824A - 双方向対称に分布した計数を有する2進インクリメンタを備えた2の非乗数グレイコード計数システム - Google Patents

双方向対称に分布した計数を有する2進インクリメンタを備えた2の非乗数グレイコード計数システム Download PDF

Info

Publication number
JP2004507824A
JP2004507824A JP2002522071A JP2002522071A JP2004507824A JP 2004507824 A JP2004507824 A JP 2004507824A JP 2002522071 A JP2002522071 A JP 2002522071A JP 2002522071 A JP2002522071 A JP 2002522071A JP 2004507824 A JP2004507824 A JP 2004507824A
Authority
JP
Japan
Prior art keywords
binary
gray code
gray
modulo
bit
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.)
Pending
Application number
JP2002522071A
Other languages
English (en)
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2004507824A publication Critical patent/JP2004507824A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K23/00Pulse counters comprising counting chains; Frequency dividers comprising counting chains
    • H03K23/004Counters counting in a non-natural counting order, e.g. random counters
    • H03K23/005Counters counting in a non-natural counting order, e.g. random counters using minimum change code, e.g. Gray Code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/102Avoiding metastability, i.e. preventing hazards, e.g. by using Gray code counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/106Details of pointers, i.e. structure of the address generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Radio Relay Systems (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

RAMベースのFIFOに用いられるグレイコード計数システムAP1は、読み出しポインタ10、書き込みポインタ20および検出器30を備える。読み出しポインタはグレイコードデコーダ11、2進インクリメンタ12、グレイコードデコーダ13およびポインタ計数を保持するレジスタ14を含む。2進インクリメンタは、入力が0110(10進法で6)または1110(10進法で14)の場合(これらの場合には3だけ増分させる)を除いて、1だけ増分させる。その結果、16個の可能な4ビット・グレイコード値のうち並進的かつ反射像的な双方向対称性を有するように分布した12個の許可されたグレイコード値を有する4ビットモジュロ‐12グレイコードのシーケンスとなる。書き込みポインタも同様である。並進的な対称性のために、2の乗数のモジュロ数を有するカウンタと共に動作する検出器は、“フル”および“エンプティ”の指示をもたらすように、対応する2の非乗数カウンタと共に動作する。読み出しおよび書き込みの計数が2つの最上位ビット位置においては異なるが、残るビット位置において等しい場合には、その検出器は、6計数FIFOにとっての“フル”の指示を与える。グレイコードカウンタの設計は、4で割り切れるいかなる2の非乗数モジュロ数へも拡張することができる。

Description

【0001】
(発明の背景)
本発明はコンピュータに係り、特に、コンピュータ通信インタフェース装置に関する。本発明の主要な目的は、2の乗数(power of two)でないモジュロ数(modulo numbers)を有する読み出しおよび書き込みポインタ(read and write pointers)を用いるときに、“フル(full)”および“エンプティ(empty)”状態の簡単な検出を可能とするFIFOシステムを提供することである。
【0002】
近年の発展の多くはコンピュータ技術の発達と関連する。コンピュータがより強力になってきたのに伴い、コンピュータは周辺機器や他のコンピュータと通信することが益々要求されるようになった。バッファリング(Buffering)は、非同期通信を容易にすることができ、それによって、共通の時間ベース(common time base)を通信装置が共有する必要性を除去することができる。さらに、バッファリングによるコンピュータ通信は、通信セッションの間にホスト・コンピュータが時間多重原理(a time−multiplexed basis)に基づく他の作業に従事することを可能にする。
【0003】
バッファリングは、通常、RAMベースのFIFO(先入れ先出し方式(a first−in−first−out)(FIFO))装置を用いて達成される。その装置内においては、通信されるデータがランダム・アクセス・メモリ(RAM)内に一時的に記憶される。データの適切なユニット、例えば、バイトがFIFOによって受信されたときに、そのデータユニットは書き込みポインタ(a write pointer)によって示されるFIFOアドレスに記憶される。そのデータが記憶されると、その書き込みポインタは、受信されたデータのうち次のユニットが記憶される次のアドレスへ増分される(incremented)。装置がFIFOから読み出そうとする場合、その装置は読み出しポインタによって示されるFIFOアドレスから読み出す。データが読み取られた後、読み出しポインタは、次の読み出しが次のFIFOアドレスから行われるように増分される。各ポインタは、基本的に、データの搬送を計数するカウンタである。そのカウンタは、最大計数に到達するときにゼロで完了する(wrap to zero)モジュロ(modulo)である。
【0004】
典型的には、FIFOからの読み出しはFIFOがエンプティのときに停止し、FIFOへの書き込みはFIFOがフルのときに停止する。いくつかのFIFOシステムにおいて、読み出しおよび書き込みポインタはFIFO深度(FIFO depth)の2倍のモジュロ数を有する。このような場合、“エンプティ”はポインタが等しいときを示し、“フル”は、ポインタ間の差がポインタモジュロ数の半分のFIFO深度であるときを示す。2進カウンタが使用される場合には、最上位ビット以外の総てのビットが等しいときにFIFOはフルまたはエンプティのいずれかである(最上位ビットはフルとエンプティとの間を区別する)。次の3ビットモジュロ対‐8個の2進値(10進等価値を付する)は4つの記憶位置で“フル”FIFOを示す
:000(0),100(4);001(1),101(5);010(2),110(6);および011(3),111(7)。
【0005】
従来の2進コードカウンタは、FIFOポインタとして使用され得る。2進カウンタの設計は、(目標とするモジュロ数などの)いくつかの仕様が入力されると、コンピュータが適切なカウンタ設計をもたらすことができるという点で完成された。2進カウンタの欠点は、計数が計数遷移の間に読み出される場合に、相当のあいまいさ(ambiguity)が存在し得ることである。例えば、計数が011=3から100=4へ増分させるときに、各ビット値は変化してしまう。しかしながら、その変化は、ビット位置にわたってわずかに異なる時点で起きる場合がある。
【0006】
8個の可能な3ビット2進値のいずれも、この遷移の間に読み出され得る。このような極端なあいまいさを避けるように設計する試みは、カウンタを非常に複雑にし、若しくは、カウンタへ応答する回路要素を非常に複雑にしてしまう。
【0007】
“グレイコード(gray code)”と呼ばれる代替的な2進コードは、ユニット・インクリメント(unit increment)という事象において、たった1つのビット位置における変化を要する。次のものは、3ビットのグレイコードのシーケンスである:0=000, 1=001, 2=011, 3=010, 4=110, 5=111, 6=101, 7=100。最後の値100を増分させると、最初の値000が生じる。1つだけのビット位置がユニット・インクリメントの間に変化するので、遷移の間に可能な1つの読み出しは、それから変化する値およびそれへ変化する値である。このような限定されたあいまいさを避けるように設計することは、2進のカウンタ読み出しに対してより広範にわたるあいまいさを回避するように設計することよりもずっと容易である。
【0008】
グレイコードはいかなるビット長にも容易に構成され得る。1ビットグレイコードは1ビット2進コードと同様にし得る。そのシーケンスは0,1である。2ビットのグレイコードは、次の3ステップアルゴリズムによって1ビットのグレイコードから導出されることができる。第1に、そのシーケンスがコピーされて0,1;0,1を生ずる。第2に、その複製が反転されて0,1;1,0を生ずる。第3に、ゼロの導出(leading zero)がもとの値に加えられ、1の導出(leading one)が反転された複製の反転された値に加えられ、00,01,11,10を生じる。これは2ビットグレイコードである。3ステップアルゴリズムは、2ビットグレイコードに適用されることができ、それにより、上述した3ビットグレイコードを生成する。そのアルゴリズムにより、所望のビット長のグレイコードを繰り返し生成することができる。
【0009】
代替的なエンコードの考えを数値で表現するが、グレイコードは、2の乗数カウンタモジュール区分(module apart)の2分の1の計数が容易に決定されるという特徴を2進コードと共有する。2つの計数がそれらの2つの最上位ビットの両方のみにおいて異なる場合には、それらは、計数区分のカウンタモジュロ数の2分の1だけ離隔されている。例えば、2つの3ビットモジュロ‐8グレイコード計数は、それらが最下位ビットにおいて同じでありかつ2つの最上位ビットにおいて異なる場合に、4計数区分(four counts apart)になる。“フル”のグレイコード対(10進の等価値を付する)は、000(0), 110(4), 001(1), 111(5), 011(2), 101(6), 010(3), 100(7)である。従って、2の乗数のグレイコードカウンタに基づく読み出しおよび書き込みカウンタは、フルおよびエンプティのFIFO状態の容易な検出を提供する。
【0010】
多くのグレイコードカウンタの設計にともなう問題としては、それらのカウンタが複雑になりがちであり、容易にスケーリングできないことがある。これらの問題は、Wingenによって開示された米国特許No.5,754,614におけるグレイコード設計によって対処されている。Wingenのグレイコードカウンタは、グレイコード計数を記憶するための計数レジスタと、その記憶されたグレイコード計数をそれに対応する2進コード値へ変換するためのグレイコードデコーダと、その2進コード値を増分させるための2進値インクリメンタと、その増分された2進コード値をそれに対応するグレイコード計数へ変換するためのグレイコードエンコーダとを備える。
【0011】
Wingenのグレイコードカウンタの欠点は、他のグレイコードカウンタ(例えば、Wingen特許において参照されているもの)も同様に、ターゲットとするFIFO深度(FIFO depth)が2の乗数でない場合に、そのFIFO設計は過剰な容量を有することである。例えば、通信用途のみ78のFIFO深度を要する場合には、2の乗数の限定により、128アドレスのFIFOを使用することが要される。一方で、2進コードカウンタは、任意の正整数の深度用に設計されることができる。ターゲットとグレイコードを課した容量との間のくい違いは、より大きなFIFOに対して非常に大きくなり得る。過剰な容量は、他の機能に供しようとする集積回路の領域の観点において高価になり得る。組込み集積回路は、結果として機能性が低下し、より高価になり得る。
【0012】
米国特許出願09/434,218は、同様のモジュログレイコードカウンタでも2の非乗数のスケーリング可能な設計を開示することによって過剰容量に対処している。しかし、開示されたカウンタがそれらのグレイコードカウンタにおいてモジュロ区分の2分の1である場合には、一般に、グレイコード計数は、いずれの単純な方法においても異ならない。例えば、3ビットモジュロ‐6カウンタ(米国特許出願09/434,218のTable1)において、3つのカウンタ区分である対は:000(0), 010(3);001 (1), 110(4);および011(2), 100(5)である。従って、2つのそのようなカウンタが読み出しおよび書き込みポインタとして使用される場合であっても、FIFOがフルであるときを簡単には決定しない。必要とされるものは、2つの計数がカウンタモジュロ区分の半分である場合の簡単な決定を提供するスケーリング可能な2の非乗数のグレイコードカウンタの設計(design)である。
【0013】
(発明の概要)
本発明は、nビットモジュロ‐Mグレイコードカウンタであって、N=2**n個の可能なnビットグレイコードのうちM個グレイコードの分布が双方向の対称性を有するnビットモジュロ−Mグレイコードカウンタを提供する。好ましくは、その対称性は並進的であるが、反射的またはその両方でもあり得る。このような2つのグレイコードカウンタを有するFIFOまたは他のシステムにおいて、計数がM/2個の計数区分である“フル”状態を検出することは、グレイコード計数または2進コード等価値のいずれかを用いて容易に達成できる。
【0014】
適切なグレイコードは、次の方法において4で割り切れる選択されたモジュロ数のいずれに対しても構成され得る。2の乗数グレイコードで開始し、次に大きい2の乗数へ向かう。例えば、(1/2)N<M<Nである場合に、全nビットモジュロ−Nグレイコードを選択する。次に、モジュロ−Nグレイコードシーケンスの始めにおける(N−M)/4個のグレイコード、モジュロ−Nグレイコードシーケンスの中間における(N−M)/2個のグレイコード、および、モジュロ−Nグレイコードシーケンスの終わりにおける(N−M)/4個のグレイコードを省略する(スキップする)。その結果がモジュロ−Mグレイコードシーケンス(a modulo−M gray code sequence)である。
【0015】
例えば、モジュロ‐12グレイコードは、0123456789ABCDEFと表せるように、モジュロ‐16グレイコードから構成されることができ、ここで、そのグレイコードは16進コード等価値(equivalents)によって与えられ、含まれる12コードは下線で示されている。6個下線を施されたモジュロ‐12計数の区分である2つの下線モジュロ12値は対応するモジュロ‐16システムのうち下線のない2値を越えて正確に1スキップすることによって分離されていることに注意されたい。従って、モジュロ‐12システムにおいて6計数によって分離されたいずれの2計数も、対応するモジュロ‐16システムにおいて8計数によって分離されている。よって、モジュロ‐12システムは、対応するモジュロ‐16システムと同様の検出法を用い得る。より一般的には、双方向並進的対称性を伴う2の非乗数モジュロ‐Mシステムは、対応する2の乗数モジュロ‐Nシステムと同様に完全表示のための検出設計を用い得る。
【0016】
前述の方法は4で割り切れるいずれかのターゲットモジュラス数(target modulus number)のためのグレイコードを生成し得るが、所望される対称性を有する代替的なグレイコードを生成し得る他の方法がある。例えば、N/4個のグレイコードからなるセットからM/4個の連続グレイコード値を選択する。グレイコードに拡張技術(0sおよび1sを複製、反転、付加すること)を2回施して、その結果、双方向並進的対称性および双方向反射像的対称性を有するモジュロ‐Mコードになる。その代わりに、N/2個のグレイコードよりなるセットから最初の(または最後の)M/2個の連続グレイコードを選択し、グレイコードに拡張技術を1回施して、双方向反射像的対称性を有するが、双方向並進的対称性を有しないグレイコードを得ることもできる。
【0017】
グレイコードカウンタは、グレイコードデコーダ、2進インクリメンタ、グレイコードエンコーダおよび計数レジスタを含む。グレイコードデコーダは、現時点のグレイコード計数を取り出し、それらを“現時点の”2進コード値へ変更する。その2進インクリメンタは現時点の2進コード値を増分させて、継続する2進コード値を生成する。2進インクリメンタは、モジュロ‐Mグレイコードにおいて等価値を有しない“スキップオーバー(skip over)”2進値へ設計される(designed)。
【0018】
上記例の16進表記において、インクリメンタは(7および8をスキップして)6から9へ増分し、並びに、(Fおよび0をスキップして)Eから1へ増分する。グレイコードカウンタは、連続2進コード値を連続グレイコード計数へ変換する。そのレジスタが次にクロックしたときには、連続グレイコード計数はその先行のものを上書きし、次の繰り返しのときの現時点のグレイコード計数になる。
【0019】
FIFOの“フル”検出は、読み出しおよび書き込みポインタが双方向並進的対称性の分布を有するカウンタである場合に容易に得られる。実際には、“フル”の状態を決定するための方法の選択がある。比較的簡単な“フル”の検出方法はグレイコード計数の比較を含む。この場合には、“フル”は、読み出しおよび書き込み計数が2つの最上位ビットにおいてのみ異なる場合を意味する。代替的な“フル”検出方法はN/2、即ち、対応する2の乗数カウンタのモジュロ数の半分である場合に、FIFOはフルである。
【0020】
従って、本発明は、FIFOの“フル”状態の簡単な検出を伴うカウンタ設計による、スケーリング可能な2の非乗数グレイコードカウンタを提供する。上述の通り、本発明は “フル”の決定を行う少なくとも2つの利便な方法を提供する。本発明のこれらおよび他の特徴並びに利点は添付図面に関する以下の記載から明確になる。
【0021】
(発明の詳細な説明)
本発明によれば、RAMベースのFIFO(図示せず)に用いられるポインタシステムAP1は、読み出しポインタ10、書き込みポインタ20およびフル/エンプティ検出器30を含む。実際の使用においてより大きな容量が含まれ得るが、説明の目的のために、FIFOは6つの記憶位置を有するものとし、並びに、ポインタ10および20はモジュロ12であるとする。検出器30は読み出しポインタ10および書き込みポインタ20を比較する。その計数が等しい場合には、検出器30はFIFOがエンプティであることを示し、計数が6だけ異なる場合には、検出器30はFIFOがフルであることを示す。
【0022】
読み出しポインタ10は、グレイコードデコーダ11、2進インクリメンタ12、グレイコードエンコーダ13およびクロックドレジスタ14を備える。2進インクリメンタ12は比較器15、“プラス1”インクリメンタ16、“プラス3“インクリメンタ17およびマルチプレクサ18を含む。読み出しポインタ20は本質的に同様であり、グレイコードデコーダ21、2進インクリメンタ22、グレイコードエンコーダ23およびクロックドレジスタ24を含む。2進インクリメンタ22は、比較器25、”プラス1“インクリメンタ26、”プラス3“インクリメンタ27およびマルチプレクサ28を含む。検出器30は、最上位ビット(most−significant−bit)比較器31、2番目最上位ビット(2nd−most−significant−bit)比較器32、最下位ビット(least−significant−bit)比較器33、インバータ34および35、”フル“ANDゲート36および”エンプティ“ANDゲート37を備える。
【0023】
読み出しポインタ10の動作の間に、グレイコードデコーダ11は“現時点”のグレイコード計数をそれと等価の2進コード値Jへ変換する。2進インクリメンタ12は現時点の2進コード値Jを増分させて、継続の(successor)2進コード値Kを生じる。グレイコードエンコーダ13は、継続の2進コード値Kをそれに継続する等価のグレイコード計数へコード化する。その継続のグレイコード計数は、次にクロックされたとき(例えば、FIFOからの読み出しに応答して)、4ビットレジスタ14において現時点のグレイコード計数と置換する。次に、継続のグレイコードカウンタは次の現時点のグレイコード計数とみなされ、グレイコードデコーダ11へフィードバックされ、次の計数の繰り返しが開始される。
【0024】
最も採り得る(most possible)現時点の2進コード値Jに対して、インクリメンタ12は1だけ増分させる(K=J+1)。しかし、現時点の2進コード値が0110(6)またはJ=1110(14)であるときに、インクリメンタ12は3だけ増分させる(6+3=9または14+3=1)。比較器15はグレイコードデコーダ11から現時点の2進コード値をモニタする。現時点の2進コード値が6または14に等しくない場合には、比較器15の出力はロウであり、マルチプレクサ18の入力Nが選択される。入力Nはプラス1のインクリメンタ16へ結合し、常にJ+1を出力する。入力Nが選択されている場合に、マルチプレクサ18の出力(従って2進インクリメンタ12の出力)はK=J+1である。現時点の2進コード値が6または14である場合には、比較器15はハイを出力し、マルチプレクサ18の入力Yを選択する。マルチプレクサ18の入力Yはプラス3のインクリメンタ17へ結合し、それによって、J=6のときK=9であり、およびJ=14のときK=1である。
【0025】
実際には、インクリメンタ12は3入力マルチプレクサを用いて実行され、1つの入力はプラス1のインクリメンタへ結合され、1つの入力は1001(9)の一定値に結合され、並びに、1つの入力は0001(1)の一定値に結合される。1110(14)が検出されたときには0001(1)入力が選択され、0110(6)が検出されたときには1001(9)入力が選択され、並びに、他の場合にはプラス1インクリメンタが選択される。次の表はインクリメンタ12の関数(function)を表示する。
【0026】
【表1】
Figure 2004507824
インクリメンタ12にとって、継続の2進コード値Kは、(囲みを伴う)現時点の2進コード値Jの上の括弧内にない最初の2進コード値である。従って、J=0001(1)である場合にはK=0010(2)である。J=0110(6)に対してはK=1001(9)であり、J=1110(14)に対してはK=0001(1)である。
【0027】
そのモジュロ12関数に従い、インクリメンタ12は16個の可能な(possible)4ビット2進コード値のうちの12個を用いる。12個のモジュロ12個の2進コード値は、16個の可能な4ビット2進コード値のうち、双方向並進的対称性(bilateral translational symmetry)を伴うように分布されることに注意されたい。16進表示を用いた場合、その分布は0123456789ABCDEFである。モジュロ16進コードのうち2つの2分割部分、01234567および89ABCDEFは、モジュロ12数値の同じ分布を有する。より詳細には、16数値8モジュロの各グループにおいて中間の6個がモジュロ12数値として用いられる。カウンタ10および20も、分布01234567がFEDCBA98に対して同じように、双方向反射像的対称性(bilateral reflective symmetry)を有することに注意されたい。
【0028】
グレイコードエンコーダ13の関数は、中間の列における値Kから右列におけるグレイコード計数へ移動することによって表から決定される。従って、0101(5)は0111としてコード化され、一方、1010(10)は1111としてコード化される。(そのシーケンスのグレイコード特性は2つのスキップ(skips)を除き維持される。)グレイコードデコーダ11の関数は、表から2進コード値を右側の所与のグレイコード計数に選択することによって決定されることに注意されたい。上述のように、書き込みポインタ20は本質的に読み出しポインタ10に類似する。従って、前述のインクリメンタ12の動作の記述はインクリメンタ22へも適用できる。ポインタ10、20の両方は、それらの各レジスタ14、24内のモジュロ12グレイコード計数を記憶する。可能(possible)計数は、表の右列における括弧内にないグレイコード計数である。勿論のこと、与えられたいずれの時点においても、ポインタ10および20の計数は同じになりまたは異なり得る。
【0029】
検出器30は、FIFOがエンプティまたはフルである場合に表示する。このために、最上位ビット比較器31(XNOR論理ゲートから成り得る)は読み出しポインタ計数の最上位ビットを書き込みポインタ計数の最上位ビットと比較する。2番目最上位ビット比較器32(これもXNOR論理ゲートから成り得る)は読み出しポインタ計数の2番目最上位ビットを書き込みポインタ計数の2番目最上位ビットと比較する。最下位ビット比較器33はその計数の2つの最下位ビットを比較する。比較器33は、ANDゲートを伴う2つの並列XNORゲートとして実施され得る。より幅広い計数として一般化すると、nビット幅の計数において、比較される最下位ビットの数値はn−2である。
【0030】
読み出しおよび書き込みポインタ計数が等しい場合には、“エンプティ“ANDゲート37への総ての3つの入力はハイであり、よって、その出力はハイであり、”エンプティ“の指示を与える。読み出しおよび書き込みポインタ計数が等しくないときには、ANDゲート37への入力のうちの少なくとも1つがロウであり、よって、その出力はロウであり、FIFOはエンプティでないことを示す。
【0031】
“フル”ANDゲート36は、LSB比較器33から“エンプティ”ANDゲート37が受信するものと同じ入力を受信する。しかし、MSB比較器31および第2のMSB比較器32から“フル”ANDゲート36への入力は、(対応する“エンプティ”ANDゲート37への入力に相対して)インバータ34および35によってそれぞれ反転される。それによって、“フル”ANDゲート34の出力は、読み出しおよび書き込みポインタ計数のうちの2つの最下位ビットが等しいが2つの最上位ビットが異なる場合にのみハイになる。その表の考察によって、この状態は、グレイコード計数が6モジュロ12計数区分である場合にのみ適合し、それはFIFOの6位置がフルの場合であるということが確認される。
【0032】
前述のフル/エンプティ検出器の設計は、4で割り切れる2の非乗数モジュロ数へ容易にスケーリングされることができる。一般的な場合においては、読み出しおよび書き込み計数が等しい場合にFIFOがエンプティである。読み出しおよび書き込み計数がそれらの2つの最上位ビット位置において異なるが、他のビット位置において等しい場合には、FIFOはフルである。デコーダ30への代替として、減算器が、読み出しおよび書き込みポインタの現時点の2進コード値間の差をもたらすように、デコーダ出力へ結合されてもよい。その差が0である場合には、FIFOはエンプティである。その差がN/2である場合には、FIFOはフルである。それはグレイコードが複合化されるまで待機しなければならないので、この検出器の設計は、示された検出器の設計よりもわずかに遅い。さらに、減算器は、検出器30のXOR論理よりも複雑である。しかし、減算器ベースの検出器は、選択された中間レベル(例えば、“ほとんどエンプティ”を示す1計数の差および“ほとんどフル”を示すM−1計数の差)を検出することを容易にしている。
【0033】
フルは、2進値差がN/2である場合を示し、2進値差がM/2(計数の個数)であるの場合を示すものではないことに注意されたい。一般に、モジュロMカウンタ(a module−M counter)はN−M個のモジュロN計数(N−M modulo−N counts)をスキップする。モジュロM計数が双方向並進的対称性(bilateral translational symmetry)を有するように分布されている場合に、M/2個のモジュロM計数区分になっている任意の2つのモジュロM計数は、モジュロNカウンタの(N−M)/2の計数をスキップする必要性がある。従って、(N−M)/2は、モジュロMの差に加算され、それによって、対応するモジュロNの差を得る。モジュロMの差はM/2であり、よって、モジュロNの差はM/2+(N−M)/2、即ち、N/2である。図示されたモジュロ12システムにおいて、2進値(10進値)0001(1)と1001(9)とモジュロM(M=12)の差は、6計数(2,3,4,5,6,9)であるが、モジュロn(N=16)の差は、8計数(2,3,4,5,6,7,8,9)である。このことは、2の乗数グレイコードカウンタに適した検出器が双方向並進的対称性を有する2の非乗数カウンタに使用され得ることの理由である。同様の検出器は、ほとんどの他の2の非乗数グレイコードカウンタでは動作しない。
【0034】
図2に、システムAP1の内容において実施される本発明によるグレイコード計数方法M1のフローが描かれている。最初のステップS1において、現時点のグレイコード計数が複合化され、現時点での2進コード値を生じる。そのグレイコードは4で割り切れる2の非乗数モジュロ数である。
【0035】
第2のステップS2において、現時点の2進コード値は増分され、継続の(successor)2進コード値を生ずる。可能な継続の2進コード値は、同じビット長の可能な2進コード値のうち双方向並進的対称性を有するように分布されている。最も可能な(most possible)現時点の2進コード値にとって、その増分は“プラス1”である。しかし、可能な(possible)現時点の2進コード値の2つ(または他の偶数個)にとって、その増分はそれより大きい何らかの奇数である。
【0036】
ステップS3において、継続の2進コード値は、コード化され、継続のグレイコード計数を生じる。計数レジスタへの次のクロック信号において、継続のグレイコード計数は現時点のグレイコード計数になり、方法M1はステップS1へ戻る。
【0037】
その間に、エンプティおよびフルの検出がステップS4において実行される。読み出しおよび書き込み計数が各ビット位置において同じである場合には、計数は等しい。読み出しおよび書き込み計数が2つの最上位ビット位置の両方において異なる場合には、FIFOはフルである。
【0038】
本発明は、2の非乗数でありながら4で割り切れる任意のモジュロ数Mのためのグレイコードカウンタの簡単な設計を提供する。その設計方法は、所望されるグレイコードシーケンスよりも大きく、2の最小乗数グレイコードシーケンスで開始する。換言すると、Mがターゲットとするモジュロである場合には、(1/2)N<M<Nである。ここで、Nは2の乗数である(N=2**n)。Nは必要に応じて16またはそれよりも大きい。MおよびNは両方共に4で割り切れるので、それらの差N−M=Pも4で割り切れる。モジュロMシーケンスを形成するために、モジュロNシーケンスのうち最初のP/4、最後のP/4および中間のP/2をスキップする。
【0039】
より一般的な設計方法は、1モジュロN/4グレイコードシーケンスからM/4個の連続したグレイコードを選択することで開始される。例えば、0123から下線の3つの計数を選択する。従来のグレイコードを拡張して(1sおよび0sを複製、反転、付加して)0123 4567を生成する。モジュロM/2シーケンスの結果が反射像的対称性を有することに注意されたい。従来のグレイコードを2倍に拡張して、0123 4567 89AB CDEFを生成する。このシーケンスは、システムAP1において用いられるものであり、反転のために反射像的対称性(reflective symmetry)を有し、さらに、2回反転のために並進的対称性(translational symmetry)をも有する。始点が、代わりに、0123である場合には、終りの結果(end result)は0123567 89AB CDEFであり、それは所望の特性を有する。
【0040】
本発明は、1モジュロ‐N/2グレイコードの最初の(または最後の)M/2値のいずれかで開始する他の設計方法も提供する。例えば、N=16かつM=12の場合に、01234567(または01234567)が始点として与えられる。従来のグレイコード拡張技術は、0123456789ABCDEF(または0123456789ABCDEF)を生成するために用いられた。その結果、グレイコードシーケンスは、双方向反射像的対称性を有するものの、双方向並進的対称性を有しない。そのモジュロMグレイコード値はモジュール的に(modularly)連続なモジュロN値であることに注意されたい。双方向反射像的対称性のみを有するカウンタの1つの利点は、そのカウンタのいくつかはたった1つのスキップを有し、それによりインクリメンタの設計が簡単になる。双方向並進的対称性を有する本発明の総てのカウンタは少なくとも2つのスキップを有する。さらに、そのモジュールは4で割り切れる必要がない。
【0041】
本発明は、非同期型コンピュータ通信を含む技術分野およびRAMベースのFIFOが用いられる他の分野において適用可能である。一般に、FIFOのサイズは、上述したものよりも大きく、カウンタモジュロ数はそれの相当してより大きい。記載された実施の形態のこれらおよび他のバリエーションおよびその変形は本発明によってもたらされ、その範囲は特許請求の範囲によって規定される。
【図面の簡単な説明】
【図1】本発明に従った2モジュロ‐12グレイコードカウンタを備えたシステムの論理回路図。
【図2】本発明に従った図1のシステムによって実行される方法のフローチャート。

Claims (10)

  1. 少なくともあるモジュロ‐M個の2の非乗数グレイコードカウンタのセットを備え、
    前記グレイコードカウンタの各々は、
    それぞれの現時点のグレイコード計数を現時点の2進コード値へ変換するグレイから2進値へのデコーダと、
    それぞれの継続の2進コード値を継続のグレイコード計数へコード化する2進値からグレイへのエンコーダと、
    前記現時点の2進コード値を前記継続の2進値へ増分させるnビット2進インクリメンタであって、各継続の2進コード値は、最も可能な現時点の2進コード値に関して、現時点の2進コード値のそれぞれよりも1大きく、該2進インクリメンタは、可能な継続2進コード値としてM<N=2**n個のnビット2進コード値をもたらし、前記可能な継続2進コード値は選択的に可能なN個のnビット2進値にわたって分布を有し、該分布は双方向の対称性を有し、該2進インクリメンタは前記現時点の2進コード値を受信するための前記グレイから2進値へのデコーダへ結合され、該2進インクリメンタは、前記2進値からグレイへのエンコーダに結合され、前記継続の2進コード値を該エンコーダへ供給するところのnビット2進インクリメンタとを含むことを特徴とするシステム。
  2. 前記双方向の対称性は並進的であることを特徴とする請求項1に記載のシステム。
  3. 前記セットは、それぞれ第1および第2の現時点のグレイコード計数をもたらす2つのモジュロ‐2の非乗数グレイコードカウンタを含み、当該システムは、前記第1および第2の継続の現時点のグレイコード計数が2つの最上位ビット位置において異なりかつ残りのビット位置において同じである場合に指示を供給する検出器をさらに備えたことを特徴とする請求項2に記載のシステム。
  4. 前記セットは、第1および第2の2進コード値の供給されるように、それぞれ第1および第2の現時点のグレイコード計数をもたらす2つのモジュロ‐2の非乗数グレイコードカウンタを含み、当該システムは、前記第1および第2の2進コード値の間の差がM/2に等しい場合に指示を供給する検出器をさらに備えたことを特徴とする請求項2に記載のシステム。
  5. 前記分布は双方向反射像的対称性を有することを特徴とする請求項1に記載のシステム。
  6. 前記nビットグレイコード値を現時点のnビット2進コード値へ復号化するステップと、
    前記現時点のnビット2進コード値を増分させて、継続のnビット2進コード値をもたらすステップと、
    最も可能な現時点のモジュロ‐M個の2進コード値に対して、1モジュロ‐N(N=2**n)だけ増分させるステップと、
    正確にM((1/2)N<M<N)個の可能な継続の2進コード値があるように、少なくとも1つの可能な現時点のnビット2進コード値に対して、1モジュロNよりも大きく増分させるステップであって、前記M個の可能な継続の2進コード値は分布を有し、該分布は双方向の対称性を有するステップと、
    前記継続の2進コード値を継続のグレイコード値へコード化するステップとを具備する方法。
  7. 前記双方向の対称性は並進的であることを特徴とする請求項6に記載の方法。
  8. 前記復号化するステップ、増分させるステップ、およびコード化するステップは、第1および第2の継続のグレイコード計数をもたらし、当該方法は、前記第1および第2の継続のグレイコード計数がそれらの2つの最上位ビット位置において異なりかつ他のビット位置において同じである場合に指示するステップをさらに具備することを特徴とする請求項7に記載の方法。
  9. 前記復号化するステップ、増分するステップ、およびコード化するステップは、第1および第2の継続のグレイコード計数をもたらし、当該方法は、前記第1の現時点の2進コード値と第2の2進コード値との間の差がM/2に等しい場合に指示するステップをさらに具備することを特徴とする請求項6に記載の方法。
  10. 前記分布は双方向反射像的対称性を有することを特徴とする請求項6に記載の方法。
JP2002522071A 2000-08-23 2001-08-17 双方向対称に分布した計数を有する2進インクリメンタを備えた2の非乗数グレイコード計数システム Pending JP2004507824A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/644,348 US6337893B1 (en) 1999-11-04 2000-08-23 Non-power-of-two grey-code counter system having binary incrementer with counts distributed with bilateral symmetry
PCT/EP2001/009573 WO2002017494A2 (en) 2000-08-23 2001-08-17 Non-power-of-two grey-code counter system having binary incrementer with counts distributed with bilateral symmetry

Publications (1)

Publication Number Publication Date
JP2004507824A true JP2004507824A (ja) 2004-03-11

Family

ID=24584508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002522071A Pending JP2004507824A (ja) 2000-08-23 2001-08-17 双方向対称に分布した計数を有する2進インクリメンタを備えた2の非乗数グレイコード計数システム

Country Status (6)

Country Link
US (1) US6337893B1 (ja)
EP (1) EP1410509B1 (ja)
JP (1) JP2004507824A (ja)
AT (1) ATE408275T1 (ja)
DE (1) DE60135788D1 (ja)
WO (1) WO2002017494A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010268302A (ja) * 2009-05-15 2010-11-25 Kawasaki Microelectronics Inc コード変換回路およびカウンタ

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857043B1 (en) * 2000-04-28 2005-02-15 Altera Corporation Shift register implementations of first-in/first-out memories utilizing a double increment gray code counter
GB2366880B (en) * 2000-09-15 2005-01-05 Mitel Corp Method of Validating Data in Circular Buffers
US6553448B1 (en) * 2001-03-01 2003-04-22 3Com Corporation Method for unit distance encoding of asynchronous pointers for non-power-of-two sized buffers
CA2357443A1 (en) * 2001-09-13 2003-03-13 Pmc-Sierra Ltd. Gray code sequences
US6845414B2 (en) * 2002-03-15 2005-01-18 Silicon Integrated Systems Corp. Apparatus and method of asynchronous FIFO control
JP2003283331A (ja) * 2002-03-25 2003-10-03 Oki Electric Ind Co Ltd グレイコード・カウンタ
US6801143B2 (en) * 2002-06-28 2004-10-05 Intel Corporation Method and apparatus for generating gray code for any even count value to enable efficient pointer exchange mechanisms in asynchronous FIFO'S
US6762701B2 (en) * 2002-12-16 2004-07-13 Broadcom Scalable gray code counter and applications thereof
US7194500B2 (en) * 2003-07-11 2007-03-20 Sony Corporation Scalable gray code counter
US20050091470A1 (en) * 2003-10-24 2005-04-28 Anand Pande Calculation of gray codes using exhaustive combinations
US7668983B2 (en) * 2003-10-24 2010-02-23 Broadcom Corporation System for designing data structures
US7149956B1 (en) 2004-02-09 2006-12-12 Pericom Semiconductor Corp. Converging error-recovery for multi-bit-incrementing gray code
US7254677B1 (en) 2004-05-04 2007-08-07 Xilinx, Inc. First-in, first-out memory system with reduced cycle latency
US6934198B1 (en) 2004-05-04 2005-08-23 Xilinx, Inc. First-in, first-out buffer system in an integrated circuit
US6937172B1 (en) * 2004-05-04 2005-08-30 Xilinx, Inc. Method and system for gray-coding counting
US7148825B2 (en) * 2004-05-10 2006-12-12 Broadcom Corporation Data interface including gray coding
US7106226B2 (en) * 2004-09-28 2006-09-12 Mediatek, Inc. Determination of key bit positions in gray codes
US7346739B1 (en) 2004-11-19 2008-03-18 Xilinx, Inc. First-in-first-out memory system and method for providing same
US8416793B2 (en) 2005-03-29 2013-04-09 Alcatel Lucent Method and apparatus for queue depth detection in a memory system
US7359276B1 (en) 2005-09-27 2008-04-15 Xilinx, Inc. Multi-port system for communication between processing elements
US7796062B1 (en) * 2007-10-17 2010-09-14 Tellabs San Jose, Inc. Method and apparatus for providing non-power-of-two even count gray code
US8966416B2 (en) 2013-03-07 2015-02-24 Cadence Design Systems, Inc. Finite-state machine encoding during design synthesis
US9710415B2 (en) 2014-11-03 2017-07-18 Nxp Usa, Inc. Asynchronous FIFO buffer with Johnson code write pointer
US11010293B1 (en) * 2018-01-23 2021-05-18 Marvell Israel (M.I.S.L) Ltd. Register-based asynchronous FIFO with asymmetric size
IT201800003008A1 (it) 2018-02-23 2019-08-23 St Microelectronics Srl Un circuito di conversione da binario a gray, relativi memoria fifo, circuito integrato e procedimento
US11693663B2 (en) * 2020-10-23 2023-07-04 Ut-Battelle, Llc Circular queue management with split indexes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189199A (ja) * 1991-06-21 1993-07-30 Texas Instr Inc <Ti> 標識発生装置
JPH0619680A (ja) * 1991-12-30 1994-01-28 Texas Instr Inc <Ti> 可変単一遷移カウント回路並びに方法
JPH06208455A (ja) * 1991-12-30 1994-07-26 Texas Instr Inc <Ti> モジュール化単一遷移計数回路装置
US5754614A (en) * 1997-04-03 1998-05-19 Vlsi Technology, Inc. Gray code counter

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780894A (en) * 1987-04-17 1988-10-25 Lsi Logic Corporation N-bit gray code counter
US5084841A (en) * 1989-08-14 1992-01-28 Texas Instruments Incorporated Programmable status flag generator FIFO using gray code
US5045854A (en) * 1990-03-01 1991-09-03 Hewlett-Packard Company Integrated high speed synchronous counter with asynchronous read-out
US5220586A (en) * 1991-12-30 1993-06-15 Texas Instruments Incorporated Circuitry and method for variable single transition counting
US5426756A (en) * 1992-08-11 1995-06-20 S3, Incorporated Memory controller and method determining empty/full status of a FIFO memory using gray code counters
JP3088302B2 (ja) * 1996-08-19 2000-09-18 日本電気株式会社 バイナリカウンタ読み出し回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189199A (ja) * 1991-06-21 1993-07-30 Texas Instr Inc <Ti> 標識発生装置
JPH0619680A (ja) * 1991-12-30 1994-01-28 Texas Instr Inc <Ti> 可変単一遷移カウント回路並びに方法
JPH06208455A (ja) * 1991-12-30 1994-07-26 Texas Instr Inc <Ti> モジュール化単一遷移計数回路装置
US5754614A (en) * 1997-04-03 1998-05-19 Vlsi Technology, Inc. Gray code counter

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010268302A (ja) * 2009-05-15 2010-11-25 Kawasaki Microelectronics Inc コード変換回路およびカウンタ

Also Published As

Publication number Publication date
EP1410509B1 (en) 2008-09-10
DE60135788D1 (de) 2008-10-23
WO2002017494A2 (en) 2002-02-28
EP1410509A2 (en) 2004-04-21
WO2002017494A3 (en) 2004-02-26
ATE408275T1 (de) 2008-09-15
US6337893B1 (en) 2002-01-08

Similar Documents

Publication Publication Date Title
JP2004507824A (ja) 双方向対称に分布した計数を有する2進インクリメンタを備えた2の非乗数グレイコード計数システム
US6314154B1 (en) Non-power-of-two Gray-code counter and binary incrementer therefor
US8612651B2 (en) FIFO buffer
US5088061A (en) Routing independent circuit components
CN112214349B (zh) 一种数据循环冗余校验装置和方法
US6703950B2 (en) Gray code sequences
US6172626B1 (en) Parallel variable bit encoder
US6801143B2 (en) Method and apparatus for generating gray code for any even count value to enable efficient pointer exchange mechanisms in asynchronous FIFO&#39;S
JPH0333914A (ja) データアンパック装置
US7194500B2 (en) Scalable gray code counter
JPH0675745A (ja) 直列化差分フラッグ回路
US6480912B1 (en) Method and apparatus for determining the number of empty memory locations in a FIFO memory device
CN110187918B (zh) 二进制至格雷转换电路、相关的fifo存储器、集成电路和方法
KR100294770B1 (ko) 반도체기억장치
JP3063180B2 (ja) 可変長符号復号回路
JP2005165502A (ja) Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路
KR100247062B1 (ko) 링구조를 갖는 선입선출 방식 및 회로
JPH04121890A (ja) Fifoメモリ装置
Lo et al. Parallel unidirectional division algorithms and implementations parallel unidirectional division algorithms and implementations
Deshmukh VLSI optimization of size-independent, constant-time up/down counters
JPH04284541A (ja) Crc符号の生成及び検査方法並びにその回路
JPS63217825A (ja) 計数回路
JPH05242665A (ja) Fifo型メモリ回路
JPH07273612A (ja) Gold符号発生回路
JPH05113925A (ja) アドレスカウンタ

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080626

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101102