(57)【特許請求の範囲】
【請求項１】
複数ビットのグレーコードから複数ビットのバイナリーコードを生成するグレー・バイナリー変換回路において最下位ビットのバイナリーコードを生成するグレー・バイナリー変換方法であって、
最下位ビットのグレーコードを分解した複数ビットの分解グレーコードを第１の論理処理して第１のバイナリーコードを生成し、
前記最下位ビットと異なるビットのバイナリーコードを生成するために入力される複数の信号を第２の論理処理して第２のバイナリーコードを生成し、
前記第１及び第２のバイナリーコードを第３の論理処理して前記最下位ビットのバイナリーコードを生成することを特徴とするグレー・バイナリー変換方法。
【請求項２】
前記第２の論理処理において、前記最下位ビットと異なるビットのグレーコードを含む複数の信号を処理すること、
を特徴とする請求項１に記載のグレー・バイナリー変換方法。
【請求項３】
前記第２の論理処理において、サーモメータコードの論理境界を検出することにより少なくとも３ビットのグレーコードを生成するエンコード部において前記グレーコードの生成に際して生成され下位から３ビット目のバイナリーコードに相当する信号を含む複数の信号を処理すること、
を特徴とする請求項１又は請求項２に記載のグレー・バイナリー変換方法。
【請求項４】
複数ビットのグレーコードから複数ビットのバイナリーコードを生成するグレー・バイナリー変換回路であって、
最下位ビットのグレーコードを分解した複数ビットの分解グレーコードを論理処理して第１のバイナリーコードを生成する第１の論理回路と、
前記最下位ビットと異なるビットのバイナリーコードを生成するために入力される複数の信号を論理処理して第２のバイナリーコードを生成する第２の論理回路と、
前記第１及び第２のバイナリーコードを論理処理して前記最下位ビットのバイナリーコードを生成する第３の論理回路と、
を有することを特徴とするグレー・バイナリー変換装置。
【請求項５】
前記第２の論理回路に入力される信号は、前記最下位ビットと異なるビットのグレーコードを含むこと、
を特徴とする請求項４に記載のグレー・バイナリー変換装置。
【請求項６】
前記第２の論理回路に入力される信号は、サーモメータコードの論理境界を検出することにより少なくとも３ビットのグレーコードを生成するエンコード部において前記グレーコードの生成に際して生成され下位から３ビット目のバイナリーコードに相当する信号を含むこと、
を特徴とする請求項４又は請求項５に記載のグレー・バイナリー変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、グレー・バイナリー変換装置及びグレー・バイナリー変換方法に関するものである。
近年、Ａ／Ｄ変換器は種々の電子機器に使用され、そのＡ／Ｄ変換速度の向上が益々要請されている。高速動作に有利な並列型及び直並列型Ａ／Ｄ変換器は、主にアナログ入力信号とアナログ基準電圧とを比較する複数のコンパレータと、そのコンパレータの出力信号を複数ビットのデジタル信号に変換するエンコーダとから構成される。そして、Ａ／Ｄ変換速度の高速化及びＡ／Ｄ変換精度の向上を図るために、エンコーダの動作速度の高速化及び動作精度の向上を図る必要がある。
【背景技術】
【０００２】
Ａ／Ｄ変換器の一種類である並列型あるいは直並列型Ａ／Ｄ変換器は、そのＡ／Ｄ変換速度において、他の形式のＡ／Ｄ変換器に対し優れている。一般的な並列型Ａ／Ｄ変換器は、コンパレータ部と、そのコンパレータの出力信号の論理境界を検出する論理境界検出部と、エンコーダ部とから構成される。エンコーダ部には、Ｗｉｒｅｄ  ＯＲによるＲＯＭ形式の回路が広く採用されている。
【０００３】
図３９は、並列型Ａ／Ｄ変換器の第一の従来例として、５ビットのデジタル出力信号を出力する並列型Ａ／Ｄ変換器を示す。
高電位側基準電圧ＶRHと、低電位側基準電圧ＶRLとの間には、３２本の抵抗Ｒが直列に接続されている。前記抵抗Ｒは、両端に位置する抵抗の抵抗値がその他の抵抗の抵抗値の１／２に設定されている。
【０００４】
前記各抵抗Ｒ間は、３１個のコンパレータＣＭ１〜ＣＭ３１の一方の入力端子にそれぞれ接続されている。従って、各コンパレータＣＭ１〜ＣＭ３１には、前記基準電圧ＶRH，ＶRLを前記抵抗Ｒで抵抗分割した基準電圧ＶR1〜ＶR31 がそれぞれ入力される。
【０００５】
前記コンパレータＣＭ１〜ＣＭ３１の他方の入力端子にはアナログ入力信号Ａinがそれぞれ入力される。各コンパレータＣＭ１〜ＣＭ３１は、制御回路（図示しない）から出力される制御信号に基づいて、それぞれ前記基準電圧ＶR1〜ＶR31 と、アナログ入力信号Ａinとを比較する。
【０００６】
そして、各コンパレータＣＭ１〜ＣＭ３１は、アナログ入力信号Ａinの電位が基準電圧ＶR1〜ＶR31 より低いとき、Ｈレベルの出力信号Ｓ１〜Ｓ３１と、Ｌレベルの出力信号・バーＳ１〜バーＳ３１を出力する。
【０００７】
また、アナログ入力信号Ａinの電位が基準電圧ＶR1〜ＶR31 より高いとき、Ｌレベルの出力信号Ｓ１〜Ｓ３１と、Ｈレベルの出力信号・バーＳ１〜バーＳ３１を出力する。
従って、例えばアナログ入力信号Ａinの電位が基準電圧ＶR4より高く、基準電圧ＶR5より低いと、コンパレータＣＭ１〜ＣＭ４は出力信号Ｓ１〜Ｓ４がＬレベル、出力信号・バーＳ１〜バーＳ４がＨレベルとなるサーモメータコードを出力する。また、コンパレータＣＭ５〜ＣＭ３１は出力信号Ｓ５〜Ｓ３１がＨレベル、出力信号・バーＳ５〜バーＳ３１がＬレベルとなるサーモメータコードを出力する。このようなコンパレータＣＭ１〜ＣＭ３１及び抵抗Ｒにより、コンパレータ部１が構成される。
【０００８】
前記コンパレータＣＭ１〜ＣＭ３１の出力信号Ｓ１，バーＳ１〜Ｓ３１，バーＳ３１は、アドレスデコーダとして動作する３２個のＮＯＲ回路ＤＥ０〜ＤＥ３１に入力される。
すなわち、前記コンパレータＣＭ１〜ＣＭ３１の出力信号Ｓ１〜Ｓ３１は、ＮＯＲ回路ＤＥ１〜ＤＥ３１の一方の入力端子に入力され、コンパレータＣＭ１〜ＣＭ３１の出力信号・バーＳ１〜バーＳ３１は、ＮＯＲ回路ＤＥ０〜ＤＥ３０の他方の入力端子に入力される。また、ＮＯＲ回路ＤＥ０，ＤＥ３１の一方の入力端子は、グランドＧＮＤに接続される。
【０００９】
このような構成により、各ＮＯＲ回路ＤＥ０〜ＤＥ３１は入力信号がともにＬレベルとなると、Ｈレベルの信号を出力し、Ｈレベルの信号を出力するＮＯＲ回路は、前記コンパレータＣＭ１〜ＣＭ３１の動作によりいずれか一つとなり、論理境界検出部２が構成される。
【００１０】
前記ＮＯＲ回路ＤＥ０〜ＤＥ３１の出力信号は、ＲＯＭで構成されるエンコード部３ａのワード線ＷＬ０〜ＷＬ３１に出力される。前記エンコード部３ａには５ビットのデジタル出力信号Ｂ０〜Ｂ４に対応して、５本のビット線ＢＬ０〜ＢＬ４が配設される。
【００１１】
そして、各ワード線ＷＬ０〜ＷＬ３１とビット線ＢＬ０〜ＢＬ４との間の所定位置には、バイナリーコードによる出力信号Ｂ０〜Ｂ４を出力するためのＲＯＭセル４がそれぞれ接続されている。前記ＲＯＭセル４は、図４０に示すようにＮチャネルＭＯＳトランジスタで構成され、そのトランジスタのゲートは前記ワード線ＷＬに接続され、ドレインは前記ビット線ＢＬに接続され、ソースはグランドＧＮＤに接続される。
【００１２】
前記ビット線ＢＬ０〜ＢＬ４はそれぞれスイッチ回路ＳＷ０〜ＳＷ４を介して電源ＶDDに接続され、同スイッチ回路ＳＷ０〜ＳＷ４が閉路されると、各ビット線ＢＬ０〜ＢＬ４がプリチャージされる。なお、スイッチ回路ＳＷ０〜ＳＷ４はＰチャネルＭＯＳトランジスタで構成される。
【００１３】
そして、前記スイッチ回路ＳＷ０〜ＳＷ４が開路された後に、いずれかのワード線がＨレベルとなると、当該ワード線に接続されたＲＯＭセル４がオンされ、当該ＲＯＭセル４に接続されたビット線がＬレベルとなる。
【００１４】
従って、例えばワード線ＷＬ０がＨレベルとなると、デジタル出力信号Ｂ０〜Ｂ４は「０００００」となり、ワード線ＷＬ２がＨレベルとなると、デジタル出力信号Ｂ０〜Ｂ４は「０１０００」となる。
【００１５】
上記のようなＡ／Ｄ変換器では、エンコード部３ａにはプリチャージ動作を必要とするＲＯＭ形式の回路が使用されているが、コンパレータ部１の動作速度はエンコード部３ａの動作速度より遅い。従って、変換速度を決定するのは、エンコード部３ａではなくコンパレータ部１であるため、このようなエンコード部３ａが採用されている。
【００１６】
このようなＡ／Ｄ変換器では、コンパレータ部１の出力信号は正常時には論理境界が１個所しかないサーモメータコードが出力されるか、あるいはすべて同一論理となる。
ところが、サーモメータコードにバブルエラーが発生することがある。確率的に最も多く発生するバブルエラーは、コンパレータＣＭ１〜ＣＭ３１の出力信号バーＳ１〜バーＳ３１において、「・・１１１０１０００・・」のように１つの出力論理が反転するものである。このようなバブルエラーがＮＯＲ回路ＤＥ０〜ＤＥ３１に入力されると、二本のワード線が同時にＨレベルとなり、正常な出力信号Ｂ０〜Ｂ４が出力されない。
【００１７】
特に、バイナリーコードの出力信号Ｂ０〜Ｂ４を出力するように構成されたエンコード部３ａでは、上記バブルエラーにより出力信号Ｂ０〜Ｂ４に大きな誤差が生じることがある。すなわち、上記バブルエラーにより図４１に示すワード線ＷＬ１４，ＷＬ１６とが同時にＨレベルとなると、出力信号Ｂ０〜Ｂ４はオール０となってしまい、ワード線ＷＬ１４だけがＨレベルとなる場合あるいはワード線ＷＬ１５だけがＨレベルとなる場合の出力信号Ｂ０〜Ｂ４に比して大きな誤差が発生する。
【００１８】
そこで、このような不具合を解決するために、論理境界検出部２を図４２に示す構成としたＡ／Ｄ変換器が提案されている。このＡ／Ｄ変換器は論理境界検出部２を構成するＮＯＲ回路ＤＥ０〜ＤＥ３１を３入力構成とし、ｎ番目のＮＯＲ回路をＮＯＲ回路ＤＥｎとすれば、ＮＯＲ回路ＤＥｎにはコンパレータＣＭｎの出力信号Ｓｎと、その上位のコンパレータＣＭ（ｎ＋１），ＣＭ（ｎ＋２）の出力信号・バーＳ（ｎ＋１），バーＳ（ｎ＋２）を入力するように構成したものである。
【００１９】
このような構成により、上記のようにサーモメータコードに異なる論理が１つ挟まれたようなバブルエラーが発生した場合には、バブルエラー部分を論理境界と判定することが防止され、いずれか一本のワード線ＷＬだけがＨレベルとなって、出力信号Ｂ０〜Ｂ４として正常値あるいは正常値に近い値が出力される。
【００２０】
ところが、上記のようにＮＯＲ回路ＤＥ０〜ＤＥ３１を３入力構成としても、コンパレータＣＭ１〜ＣＭ３１の出力信号バーＳ１〜バーＳ３１において、例えば「・・１１１００１０００・・」あるいは「・・１１１０１１０００・・」のように、出力論理が２つ以上離れて反転するバブルエラーが発生した場合には、２本のワード線を隔てた２本のワード線が同時にＨレベルとなることがある。
【００２１】
そして、例えば図４１に示すワード線ＷＬ１４，ＷＬ１７が同時にＨレベルとなると、出力信号Ｂ０〜Ｂ４がオール０となり、ワード線ＷＬ１４〜ＷＬ１７のいずれかがＨレベルとなる場合の出力信号Ｂ０〜Ｂ４に比して大きな誤差が発生する。
【００２２】
このような不具合を解決するために、図４３に示すように、バイナリーコードに代えてグレーコード（交番２進信号）を出力可能としたエンコード部３ｂを備えたＡ／Ｄ変換器が提案されている。
【００２３】
前記エンコード部３ｂは、バイナリーコードの出力信号Ｂ０〜Ｂ４を出力する前記エンコード部３ａとはＲＯＭセル４の位置が異なり、いずれか一本のワード線ＷＬがＨレベルとなることにより、５ビットのグレーコードの出力信号Ｇ０〜Ｇ４を出力する。前記サーモメータコードを１０進数（Ｄｅｃｉｍａｌ）として認識した場合、そのサーモメータコードに対するバイナリーコード（Ｂｉｎａｒｙ）の出力信号Ｂ０〜Ｂ４と、グレーコード（Ｇｒａｙ）の出力信号Ｇ０〜Ｇ４との対照関係を図４７に示す。そして、出力信号Ｇ０〜Ｇ４はグレーコードをバイナリーコードに変換する変換回路を介して次段の回路に出力される。
【００２４】
上記のようなＡ／Ｄ変換器では、コンパレータ部１からバブルエラーが出力されて、論理境界検出部２により、図４４において例えばワード線ＷＬ１４，ＷＬ１７が同時にＨレベルとなっても、エンコード部３ｂの出力信号Ｇ０〜Ｇ４はワード線ＷＬ１４のみがＨレベルとなった場合と同一となる。従って、ワード線ＷＬ１５あるいはワード線ＷＬ１６がＨレベルとなる場合が最も確からしい値であったとしても、前記バイナリーコードのエンコード部３ａのように大きな誤差が生じた出力信号を出力することはない。
【００２５】
このように３入力のＮＯＲ回路で構成される論理境界検出部２と、グレーコードの出力信号Ｇ０〜Ｇ４を出力するエンコード部３ｂを備えたＡ／Ｄ変換器では、コンパレータ部１の出力信号に上記のようなバブルエラーが発生したとしても、図５０〜図５２に示すように、デジタル出力信号に発生する誤差を抑制することが可能となる。
【００２６】
図５０は、サーモメータコードの出力論理が１つ離れて反転するタイプｂ１のバブルエラー「・１１１０１０００・・」が、２入力のＮＯＲ回路で構成される論理境界検出部２に入力され、その論理境界検出部２ａの出力信号を前記エンコード部３ｂでグレーコードに変換した場合の動作を示し、横軸は正常なサーモメータコードの１０進値であり、縦軸はエンコード部３ｂから出力されるグレーコードの出力信号を１０進数に置換した値である。
【００２７】
図５１は、サーモメータコードの出力論理が２つ離れて反転するタイプｂ２Ｈのバブルエラー「・１１１００１０００・・」が、３入力のＮＯＲ回路で構成される論理境界検出部２に入力され、その論理境界検出部２の出力信号を前記エンコード部３ｂでグレーコードに変換した場合の動作を示し、横軸は正常なサーモメータコードの１０進値であり、縦軸はエンコード部３ｂから出力されるグレーコードの出力信号を１０進数に置換した値である。
【００２８】
図５２は、サーモメータコードの「１」の出力論理が論理境界から２つ離れて「０」に反転するタイプｂ２Ｌのバブルエラー「・１１１０１１０００・・」が、３入力のＮＯＲ回路で構成される論理境界検出部２に入力され、その論理境界検出部２の出力信号を前記エンコード部３ｂでグレーコードに変換した場合の動作を示し、横軸は正常なサーモメータコードの１０進値であり、縦軸はエンコード部３ｂから出力されるグレーコードの出力信号を１０進数に置換した値である。
【００２９】
上記のように、グレーコードを出力するエンコード部は、バイナリーコードを出力するエンコード部に比して誤差を抑制することができるので、グレーコードをバイナリーコードに変換する変換回路が必要となるにも関わらず、広く使用されている。しかし、依然として最も確からしいと考えられる値に対して誤差が生じている。
【００３０】
これを解決するために、コンパレータ部から出力されるサーモメータコードに多数決回路による論理処理を施すようにしたＡ／Ｄ変換器が提案されているが、多数決回路の搭載がＡ／Ｄ変換器の回路規模を増大させてしまう。そのため、回路規模の増大を抑制するために、多数決回路をアナログ回路で構成することが提案されている（非特許文献１）。しかし、このような多数決回路でも、上記タイプｂ２Ｈ、タイプｂ２Ｌに示すような出力論理が２つ離れて反転するバブルエラーに対しては、十分な効果を挙げられていない。
【００３１】
また、サーモメータコードの論理境界検出部に変則デコード論理を設定して、バブルエラーが発生しても最も確からしいデジタル出力信号を出力するようにしたもの（非特許文献２）、あるいはサーモメータコードの隣接する出力間にて行っていた論理境界検出を上位ビットと下位ビットとに２分割して行うもの（非特許文献３）、また論理境界検出部において、サーモメータコードの論理比較を１つおきに行うことによりバブルエラーの発生を抑制するもの（非特許文献４）等が提案されている。
【００３２】
上記Ａ／Ｄ変換器は、いずれもサーモメータコードに発生したバブルエラーを論理境界検出部で排除あるいは訂正するものである。
これに対して、バブルエラーをエンコーダ部で訂正する構成としたものでは、ＰチャネルＭＯＳトランジスタで構成したエンコーダと、ＮチャネルＭＯＳトランジスタで構成したエンコーダの出力信号の平均をとるようにしたツインエンコーダ型があるが、エンコーダの回路規模が２倍となる（非特許文献５）。
【００３３】
また、グレーコードをバイナリーコードに変換するための変換回路の論理段数を削減するために、Ｑｕａｓｉグレーコードを出力するエンコーダを採用することにより、エンコーダとしての動作速度を向上させるようにしたもの（非特許文献６）がある。
【非特許文献１】J.van de Valburg and R.J.van de Plassche,"An 8-bit 650-MHz folding ADC",IEEE Journal of Solid-State Circuits,vol.27,Dec.1992,pp.1662-1666
【非特許文献２】C.W.Mangelsdorf,"A 400-MHz Input Flash Converter with Error Correction",Journal of Solid-State Circuits,vol.25,Feb.1990,pp.184-191
【非特許文献３】Y.Gendai et al.,"An 8b 500-MHzADC",Digest of International Solid-State Circuit Conference, TPM 10.5,Feb.1991,pp.172-173
【非特許文献４】A.Matsuzawa et al.,"An 8b 600-MHz Flash A/D with mutistage deplex gray coding",Symp.VLSI Circ. Dig. Tech.Papers,May.1991,pp.113-114
【非特許文献５】M.Ito et al.,"A 10bit 20MS/s 3V Supply CMOS AD Converter",1994 Journal of Solid-State Circuits,vol.25,Feb.1990,pp.184-191
【非特許文献６】Y.Akazawa,"A 400MSPS 8b Flash A/D Conversion LSI",ISSCC Digest of Tecnical Papers,Feb.1987,pp.98-99
【発明の開示】
【発明が解決しようとする課題】
【００３４】
上記のように、並列型Ａ／Ｄ変換器のエンコード部は、いずれもＷｉｒｅｄ  ＯＲ回路によるＲＯＭ形式で構成される。この構成では、１サイクルの動作毎にプリチャージ動作が必要となり、そのプリチャージ動作は１サイクルの動作時間のほぼ半分の時間を要する。従って、エンコード部の動作速度の向上を図る上で障害となっている。
【００３５】
また、エンコード部にはサーモメータコードに発生するバブルエラーによる誤差を訂正する機能がないため、バブルエラーの訂正は主に論理境界検出部で訂正されている。しかし、このような構成では誤差の程度の少ないグレーコードを出力するエンコード部を使用しても、バブルエラーによる出力信号の誤差を完全に除去することはできないという問題点がある。
【００３６】
また、上記ツインエンコーダ型では、バブルエラーをエンコード部で訂正する構成であるが、エンコード部の回路規模が２倍となるという問題点がある。
この発明の目的は、入力されるサーモメータコードに含まれるバブルエラーの訂正機能を備えたエンコーダの動作速度を向上させ得るグレー・バイナリー変換方法及びグレー・バイナリー変換装置を提供することにある。
【課題を解決するための手段】
【００３７】
請求項１では、複数ビットのグレーコードから複数ビットのバイナリーコードを生成するグレー・バイナリー変換回路において最下位ビットのバイナリーコードを生成するグレー・バイナリー変換方法であって、最下位ビットのグレーコードを分解した複数ビットの分解グレーコードを第１の論理処理して第１のバイナリーコードを生成し、前記最下位ビットと異なるビットのバイナリーコードを生成するために入力される複数の信号を第２の論理処理して第２のバイナリーコードを生成し、前記第１及び第２のバイナリーコードを第３の論理処理して前記最下位ビットのバイナリーコードを生成する。
請求項２では、前記第２の論理処理において、前記最下位ビットと異なるビットのグレーコードを含む複数の信号を処理する。
請求項３では、前記第２の論理処理において、サーモメータコードの論理境界を検出することにより少なくとも３ビットのグレーコードを生成するエンコード部において前記グレーコードの生成に際して生成され下位から３ビット目のバイナリーコードに相当する信号を含む複数の信号を処理する。
【００３８】
請求項４では、複数ビットの分解グレーコードを論理処理して、同一ビットの複数のバイナリーコードを生成する論理回路と、前記複数のバイナリーコードを論理処理して１ビットのバイナリーコードを生成する論理回路とを備えた。
請求項５では、前記第２の論理回路に入力される信号は、前記最下位ビットと異なるビットのグレーコードを含む。
請求項６では、前記第２の論理回路に入力される信号は、サーモメータコードの論理境界を検出することにより少なくとも３ビットのグレーコードを生成するエンコード部において前記グレーコードの生成に際して生成され下位から３ビット目のバイナリーコードに相当する信号を含む。
【発明の効果】
【００４３】
この発明は入力されるサーモメータコードに含まれるバブルエラーの訂正機能を備えたエンコーダの動作速度を向上させ得るグレー・バイナリー変換方法及びグレー・バイナリー変換装置を提供することができる。
【発明を実施するための最良の形態】
【００４４】
（第一の実施の形態）
まず、本発明のエンコーダにおけるエラー訂正の原理について説明する。
図４７は、１０進値（Ｄｅｃｉｍａｌ）が５ビットのバイナリーコードＢ０〜Ｂ４及びグレーコードＧ０〜Ｇ４に正常に変換された場合のコード値を示す。
【００４５】
グレーコードＧ０〜Ｇ４は、例えば図４５に示すグレーコードによるビット独立デコード方式エンコーダで、１０進値としてのサーモメータコードをグレーコード形式で論理境界検出を行うことにより生成される。なお、図４５に示すＲＯＭセルＣＥの具体的構成は、図４６に示すものであり、サーモメータコードは下位から順に「１」となる。
【００４６】
グレーコードＧ０〜Ｇ４は、Ｇ０が最下位ビット、Ｇ４が最上位ビットであり、隣り合う１０進値に対応するコードでは、いずれか１ビットの信号のみが反転する交番２進符号となる。Ｂ０〜Ｂ４は、Ｇ０〜Ｇ４に対応するバイナリーコードであり、Ｂ０が最下位ビット、Ｂ４が最上位ビットである。
【００４７】
Ｇ０〜Ｇ４は、図４５に示す通常のエンコーダでは、それぞれ１本ずつのビット線ＢＬ０〜ＢＬ４によるＷｉｒｅｄ  ＯＲ回路から出力されるため、例えばＧ０とＧ１との組み合わせでは、「００」「１０」「０１」「１１」のすべての組み合わせが存在するため、Ｇ０とＧ１との少なくともいずれかが誤データであったとしても、組み合わせからエラーの有無を検出することはできない。
【００４８】
そこで、Ｇ０はビット線ＢＬ０に接続された９個のＲＯＭセルＣＥの出力信号のＯＲ論理をとって生成されているので、Ｇ０を９個のＲＯＭセルＣＥの出力信号Ｚ１〜Ｚ８に分解する。
【００４９】
同様に、Ｇ１，Ｇ２についても分解すると、Ｇ１＝Ｙ１＋Ｙ２＋Ｙ３＋Ｙ４、Ｇ２＝Ｘ１＋Ｘ２となる。なお、Ｗ１＝Ｇ３、Ｖ１＝Ｇ４である。
このとき、Ｘ１とＺ２との関係に着目すると、Ｚ２＝１のとき、Ｘ１＝１となる。従って、Ｚ２＝１のとき、Ｘ１＝０であれば、エラーが検出され、バブルエラーを含むサーモメータコードで、エンコーダが動作していることになる。
【００５０】
同様に、Ｚ３＝１のとき、Ｘ１＝１となり、Ｚ４＝１のとき、Ｗ１＝１となり、Ｚ５＝１のとき、Ｗ１＝Ｖ１＝１となり、Ｚ６＝１のとき、Ｘ２＝Ｗ１＝Ｖ１＝１となり、Ｚ７＝１のとき、Ｘ２＝Ｖ１＝１となり、Ｚ８＝１のとき、Ｖ１＝１となり、これらの条件を満足しないとき、サーモメータコードにバブルエラーが存在することが検出可能である。
【００５１】
一方、例えば１０進値「３」「４」に対応するコードでは、Ｚ１〜Ｚ８が同時に「０」となり、このような部分では、上記のような特定の関係を見出すことはできない。すなわち、Ｚ１〜Ｚ８が「１」という対象論理側であるとき、上記特定の関係を見出すことができるが、Ｚ１〜Ｚ８が「０」という非対象論理側であるとき、上記特定の関係を見出すことができない。
【００５２】
そこで、上記のような原理を非対象論理側を含めて、１０進値の全域にわたって展開するために、前記Ｚ１〜Ｚ８を表コードとしたとき、Ｚ１〜Ｚ８の裏コードＰ１〜Ｐ７を設定する。
【００５３】
前記Ｐ１〜Ｐ７は、図４５に示すように、最下位ビットのビット線ＢＬ０に接続された各ＲＯＭセルＣＥ間にそれぞれ接続されたＲＯＭセルＣＥｂから出力されるコードである。従って、裏コードＰ１〜Ｐ７は最下位ビットのビット線ＢＬ０に接続された各ＲＯＭセルＣＥでは検出されないサーモメータコードの論理境界をＲＯＭセルＣＥｂで検出したコードとなる。
【００５４】
上記のような裏コードにより、Ｐ１＝１のとき、Ｙ１＝１となり、Ｐ２＝１のとき、Ｘ１＝１となり、Ｐ３＝１のとき、Ｙ２，Ｗ１＝１となり、Ｐ４＝１のとき、Ｗ１＝１となり、Ｐ５＝１のとき、Ｙ３，Ｗ１，Ｖ１＝１となり、Ｐ６＝１のとき、Ｘ２，Ｖ２＝１となり、Ｐ７＝１のとき、Ｙ４，Ｖ１＝１となる。
【００５５】
上記のような表コード及び裏コードを設定することにより、サーモメータコードの全域にわたって、サーモメータコードにバブルエラーが含まれるか否かが検出可能となる。
図４８は、各１０進値に対応するサーモメータコードに、「・・１１０１００・・」すなわち前記タイプｂ１のバブルエラーがそれぞれ含まれる場合の各コードの値を示す。図中、網掛け部分は前記グレーコードの表コードのみによりエラーとして検出可能な部分である。訂正前Ｄout は、エラー未訂正のエンコーダ出力を１０進値に置換したものである。
【００５６】
この網掛け部分を反転させると、検出されたエラーは最も確からしい値に訂正され、訂正後のエンコーダの出力を図５３に示す。図５３において、横軸はＡ／Ｄ変換器に入力されたアナログ値を示し、縦軸はエンコーダ出力をアナログ値に変換したものである。
【００５７】
図４９は、図４８に示すコードについて、表コード及び裏コードを用いてエラー検出を行い、エラーとして検出された網掛け部分を反転させた訂正後のコードを示す。この結果、訂正後のグレイコードは最も確からしい値に訂正され、図３７に示す正常なグレイコードと一致する。図５４は、図４９に示す訂正後のコードに基づくエンコーダの出力を示す。
【００５８】
次に、上記のような原理に基づいて、サーモメータコードに含まれるバブルエラーの訂正機能を備えたエンコーダについて説明する。
図２は、前記従来例と同様なコンパレータ部から出力されるサーモメータコードｅ１〜ｅ３１の入力に基づいて、５ビットのバイナリーコードのデジタル信号Ｂ０Ｚ〜Ｂ４Ｚを生成して出力するエンコーダの概略構成を示す。
【００５９】
このエンコーダは、サーモメータコードｅ１〜ｅ３１に基づいて、５ビットのグレーコードを生成する第一〜第四のエンコード部１１〜１４と、生成されたグレーコードに基づいて、サーモメータコードｅ１〜ｅ３１中のバブルエラーの有無を検出して、バブルエラーが存在するときはエラー信号を出力するエラー信号生成部１５と、前記エラー信号に基づいてグレーコード中のエラーを訂正するエラー訂正部１６と、訂正されたグレーコードからバイナリーコードを生成するグレー・バイナリー変換部１７とから構成される。
【００６０】
前記第一のエンコード部１１の具体的構成を図３に示す。１７個の論理境界検出回路１８ａ〜１８ｑは３つの入力端子ＩＢ，ＩＡ，ＩＸを備えている。各論理境界検出回路１８ａ〜１８ｐの入力端子ＩＡには、前記サーモメータコードｅ１〜ｅ３１のうち、奇数番のサーモメータコードｅ１，ｅ３・・・ｅ３１がそれぞれ入力される。また、最上位の論理境界検出回路１８ｑの入力端子ＩＡ，ＩＢにはグランドＧＮＤレベルが供給される。
【００６１】
前記各論理境界検出回路１８ｂ〜１８ｑの入力端子ＩＸには、奇数番のサーモメータコードｅ１，ｅ３・・・ｅ３１がそれぞれ入力されている。また、最下位の論理境界検出回路１８ａの入力端子ＩＸには、電源Ｖccが供給される。
【００６２】
前記論理境界検出回路１８ａ〜１８ｐの具体的構成を図１０に示す。入力端子ＩＢ，ＩＡは、ＮＯＲ回路１９の入力端子に接続される。入力端子ＩＸは、インバータ回路２０の入力端子に入力され、そのインバータ回路２０の出力端子が前記ＮＯＲ回路１９に接続される。
【００６３】
このような論理境界検出回路１８ｂ〜１８ｑでは、入力端子ＩＢ，ＩＡの入力レベルがＬレベル、入力端子ＩＸの入力レベルがＨレベルとなったときに限り、出力信号ＯがＨレベルとなる。
【００６４】
前記論理境界検出回路１８ａ〜１８ｑの出力信号Ｏは、それぞれＲＯＭセル２１ａ〜２１ｑの端子Ａに入力され、そのＲＯＭセル２１ａ〜２１ｑの端子Ｃは、ビット線ＢＬ０ａ〜ＢＬ０Ｘｂのいずれかに接続され、端子ＢはグランドＧＮＤに接続される。
【００６５】
前記ＲＯＭセル２１ａ〜２１ｑは、図１１に示すように、ＮチャネルＭＯＳトランジスタＣＴで構成され、端子Ａはゲートに接続され、端子Ｃはドレインに接続され、端子Ｂはソースに接続される。
【００６６】
従って、前記論理境界検出回路１８ａ〜１８ｑの出力信号ＯがＨレベルとなると、当該出力信号Ｏが入力されるＲＯＭセル２１ａ〜２１ｑのＮチャネルＭＯＳトランジスタＣＴがオンされ、当該ＲＯＭセル２１ａ〜２１ｑが接続されたビット線ＢＬ０ａ，ＢＬ０ｂ，ＢＬ０Ｘａ，ＢＬ０Ｘｂから出力されるグレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０ＸｂがグランドＧＮＤレベルとなる。
【００６７】
前記ビット線ＢＬ０ａには、前記ＲＯＭセル２１ａを最下位として、４つおきのＲＯＭセル２１ｅ，２１ｉ，２１ｍ，２１ｑが接続される。前記ビット線ＢＬ０ｂには、前記ＲＯＭセル２１ｃを最下位として、４つおきのＲＯＭセル２１ｇ，２１ｋ，２１ｏが接続される。
【００６８】
前記ビット線ＢＬ０Ｘａには、前記ＲＯＭセル２１ｂを最下位として、４つおきのＲＯＭセル２１ｆ，２１ｊ，２１ｎが接続される。前記ビット線ＢＬ０Ｘｂには、前記ＲＯＭセル２１ｄを最下位として、４つおきのＲＯＭセル２１ｈ，２１ｌ，２１ｐが接続される。
【００６９】
前記第二のエンコード部１２の具体的構成を図４に示す。９個の論理境界検出回路２２ａ〜２２ｉは、前記論理境界検出回路１８ａ〜１８ｑと同一構成である。
各論理境界検出回路２２ａ〜２２ｈの入力端子ＩＡには、前記サーモメータコードｅ１〜ｅ３１のうち、偶数番のサーモメータコードｅ２，ｅ６，ｅ１０，ｅ１４，ｅ１８，ｅ２２，ｅ２６，ｅ３０がそれぞれ入力される。また、最上位の論理境界検出回路２２ｉの入力端子ＩＡ，ＩＢにはグランドＧＮＤレベルが供給される。
【００７０】
前記各論理境界検出回路２２ａ〜２２ｇの入力端子ＩＢには、偶数番のサーモメータコードｅ４，ｅ８，ｅ１２，ｅ１６，ｅ２０，ｅ２４，ｅ２８がそれぞれ入力されている。
前記論理境界検出回路２２ｂの入力端子ＩＸには、サーモメータコードｅ２，ｅ４のＮＯＲ論理の反転信号、すなわちＯＲ論理が入力される。同様に、論理境界検出回路２２ｃ〜２２ｈの入力端子ＩＸには、サーモメータコードｅ６，ｅ８、ｅ１０，ｅ１２、ｅ１４，ｅ１６、ｅ１８，ｅ２０、ｅ２２，ｅ２４、ｅ２６，ｅ２８のＯＲ論理がそれぞれ入力される。
【００７１】
また、論理境界検出回路２２ａの入力端子ＩＸには電源Ｖccが入力され、論理境界検出回路２２ｉの入力端子ＩＸには、サーモメータコードｅ３０が入力される。
前記論理境界検出回路２２ａ〜２２ｉの出力信号Ｏは、それぞれＲＯＭセル２３ａ〜２３ｉの端子Ａに入力され、そのＲＯＭセル２３ａ〜２３ｉの端子Ｃは、ビット線ＢＬ１〜ＢＬ１Ｘのいずれかに接続され、端子ＢはグランドＧＮＤに接続される。
【００７２】
ＲＯＭセル２３ａ〜２３ｉは、前記ＲＯＭセル２１ａ〜２１ｑと同様に構成される。
従って、前記論理境界検出回路２２ａ〜２２ｉの出力信号ＯがＨレベルとなると、当該出力信号Ｏが入力されるＲＯＭセル２３ａ〜２３ｉのＮチャネルＭＯＳトランジスタＣＴがオンされ、当該ＲＯＭセル２３ａ〜２３ｉが接続されたビット線ＢＬ１〜ＢＬ１Ｘから出力されるグレーコード信号ｇ１，ｇ１ＸがグランドＧＮＤレベルとなる。
【００７３】
前記ビット線ＢＬ１には、前記ＲＯＭセル２３ａを最下位として、１つおきのＲＯＭセル２３ｃ，２３ｅ，２３ｇ，２３ｉが接続される。前記ビット線ＢＬ１Ｘには、前記ＲＯＭセル２３ｂを最下位として、１つおきのＲＯＭセル２３ｄ，２３ｆ，２３ｈが接続される。
【００７４】
前記第三のエンコード部１３の具体的構成を図５に示す。８個の論理境界検出回路２４ａ〜２４ｈは、前記論理境界検出回路１８ａ〜１８ｑと同一構成である。
各論理境界検出回路２４ａ〜２４ｇの入力端子ＩＡには、前記サーモメータコードｅ１〜ｅ３１のうち、偶数番のサーモメータコードｅ４，ｅ８，ｅ１２，ｅ１６，ｅ２０，ｅ２４，ｅ２８がそれぞれ入力される。また、最上位の論理境界検出回路２４ｈの入力端子ＩＡ，ＩＢにはグランドＧＮＤレベルが供給される。
【００７５】
前記各論理境界検出回路２４ａ〜２２ｇの入力端子ＩＢには、偶数番のサーモメータコードｅ６，ｅ１０，ｅ１４，ｅ１８，ｅ２２，ｅ２６，ｅ３０がそれぞれ入力されている。
【００７６】
前記論理境界検出回路２４ｂの入力端子ＩＸには、サーモメータコードｅ４，ｅ６のＮＯＲ論理の反転信号、すなわちＯＲ論理が入力される。同様に、論理境界検出回路２４ｃ〜２４ｈの入力端子ＩＸには、サーモメータコードｅ８，ｅ１０、ｅ１２，ｅ１４、ｅ１６，ｅ１８、ｅ２０，ｅ２２、ｅ２４，ｅ２６、ｅ２８，ｅ３０のＯＲ論理がそれぞれ入力される。また、論理境界検出回路２４ａの入力端子ＩＸには電源Ｖccが入力される。
【００７７】
前記論理境界検出回路２４ａ〜２４ｈの出力信号Ｏは、出力信号ｇａ〜ｇｈとして出力されるとともに、それぞれＲＯＭセル２５ａ〜２５ｈの端子Ａに入力される。前記ＲＯＭセル２５ａ〜２５ｈの端子Ｃは、ビット線ＢＬ２ａ〜ＢＬ２ｂのいずれかに接続され、端子ＢはグランドＧＮＤに接続される。
【００７８】
ＲＯＭセル２５ａ〜２５ｈは、前記ＲＯＭセル２１ａ〜２１ｑと同様に構成される。
従って、前記論理境界検出回路２４ａ〜２４ｈの出力信号ＯがＨレベルとなると、当該出力信号Ｏが入力されるＲＯＭセル２５ａ〜２５ｈのＮチャネルＭＯＳトランジスタＣＴがオンされ、当該ＲＯＭセル２５ａ〜２５ｈが接続されたビット線ＢＬ２ａ〜ＢＬ２ｂから出力されるバイナリーコード信号ｇ２ａ，ｇ２ｂがグランドＧＮＤレベルとなる。
【００７９】
前記ビット線ＢＬ２ａには、前記ＲＯＭセル２５ａを最下位として、１つおきのＲＯＭセル２５ｃ，２５ｅ，２５ｇが接続される。前記ビット線ＢＬ２ａには、前記ＲＯＭセル２５ｂを最下位として、１つおきのＲＯＭセル２５ｄ，２５ｆ，２５ｈが接続される。
【００８０】
前記第四のエンコード部１４を図６に従って説明する。前記ビット線ＢＬ０Ｘａ，ＢＬ０Ｘｂの出力信号ｇ０Ｘａ，ｇ０ＸｂはＮＡＮＤ回路２７ａに入力され、そのＮＡＮＤ回路２７ａの出力信号がインバータ回路２８ａで反転されて、グレーコードｇ０Ｘが生成される。
【００８１】
前記ビット線ＢＬ０ａ，ＢＬ０ｂの出力信号ｇ０ａ，ｇ０ｂはＮＡＮＤ回路２７ｂに入力され、そのＮＡＮＤ回路２７ｂの出力信号がインバータ回路２８ｂで反転されて、グレーコードｇ０が生成される。
【００８２】
前記論理境界検出回路２４ｂ，２４ｃの出力信号ｇｂ，ｇｃは、ＮＯＲ回路２６ａに入力され、前記論理境界検出回路２４ｆ，２４ｇの出力信号ｇｆ，ｇｇは、ＮＯＲ回路２６ｂに入力される。前記ＮＯＲ回路２６ａ，２６ｂの出力信号は、ＮＡＮＤ回路２７ｃに入力され、そのＮＡＮＤ回路２７ｃからグレーコードｇ２が出力される。
【００８３】
前記論理境界検出回路２４ｃ，２４ｄの出力信号ｇｃ，ｇｄは、ＮＯＲ回路２６ｃに入力され、前記論理境界検出回路２４ｅ，２４ｆの出力信号ｇｅ，ｇｆは、ＮＯＲ回路２６ｄに入力され、前記論理境界検出回路２４ｇ，２４ｈの出力信号ｇｇ，ｇｈは、ＮＯＲ回路２６ｅに入力される。
【００８４】
前記ＮＯＲ回路２６ｃの出力信号は、ＮＡＮＤ回路２７ｄに入力され、前記ＮＯＲ回路２６ｄの出力信号は、ＮＡＮＤ回路２７ｄ，２７ｅに入力され、前記ＮＯＲ回路２６ｅの出力信号は前記ＮＡＮＤ回路２７ｅに入力される。
【００８５】
そして、前記ＮＡＮＤ回路２７ｄからグレーコードｇ３が出力され、前記ＮＡＮＤ回路２７ｅからグレーコードｇ４が出力される。
前記エラー信号生成部１５の具体的構成を図７に従って説明する。前記ビット線ＢＬ１の出力信号ｇ１は、ＮＡＮＤ回路２９ａに入力され、前記ビット線ＢＬ０ａの出力信号ｇ０ａは、インバータ回路２８ｃで反転されて、ＮＡＮＤ回路２９ａに入力される。
【００８６】
前記ビット線ＢＬ１Ｘの出力信号ｇ１Ｘは、ＮＡＮＤ回路２９ｂに入力され、前記ビット線ＢＬ０ｂの出力信号ｇ０ｂは、インバータ回路２８ｄで反転されて、ＮＡＮＤ回路２９ｂに入力される。
【００８７】
前記ＮＡＮＤ回路２９ａの出力信号ＥＲ１Ａ及び前記ＮＡＮＤ回路２９ｂの出力信号ＥＲ１ＡはＮＡＮＤ回路２９ｅに入力され、同ＮＡＮＤ回路２９ｅからエラー信号ｅｒ１が出力される。
【００８８】
前記ビット線ＢＬ２ａの出力信号ｇ２ａは、ＮＡＮＤ回路２９ｃに入力され、前記ビット線ＢＬ０Ｘａの出力信号ｇ０Ｘａは、インバータ回路２８ｅで反転されて、ＮＡＮＤ回路２９ｃに入力される。
【００８９】
前記ビット線ＢＬ２ｂの出力信号ｇ２ｂは、ＮＡＮＤ回路２９ｄに入力され、前記ビット線ＢＬ０Ｘｂの出力信号ｇ０Ｘｂは、インバータ回路２８ｆで反転されて、ＮＡＮＤ回路２９ｄに入力される。
【００９０】
前記ＮＡＮＤ回路２９ｃの出力信号ＥＲ２Ａ及び前記ＮＡＮＤ回路２９ｄの出力信号ＥＲ２ＢはＮＡＮＤ回路２９ｆに入力され、同ＮＡＮＤ回路２９ｆからエラー信号ｅｒ２が出力される。
【００９１】
前記エラー信号ｅｒ１，ｅｒ２は、前記エラー訂正部１６に出力されるとともに、図２に示すように、エラー信号生成部１５に設けられた出力端子から外部へ出力される。
前記エラー訂正部１６の具体的構成を図８に従って説明する。前記エラー信号ｅｒ２及び前記信号ｇ１Ｘは、ＮＡＮＤ回路３０ａに入力され、前記グレーコードｇ２は、インバータ回路３３ａで反転されて、ＮＡＮＤ回路３０ａに入力される。
【００９２】
前記ＮＡＮＤ回路３０ａの出力信号及び前記グレーコードｇ４は、ＥＯＲ回路３２ａに入力され、同ＥＯＲ回路３２ａの出力信号はインバータ回路３３ｃで反転されて訂正グレーコードｇ４Ｚとして出力される。
【００９３】
前記エラー信号ｅｒ２、前記信号ｇ１Ｘ及び前記グレーコードｇ２は、ＮＡＮＤ回路３０ｂに入力される。
前記ＮＡＮＤ回路３０ｂの出力信号及び前記グレーコードｇ３は、ＥＯＲ回路３２ｂに入力され、同ＥＯＲ回路３２ｂの出力信号はインバータ回路３３ｄで反転されて訂正グレーコードｇ３Ｚとして出力される。
【００９４】
前記エラー信号ｅｒ２及び前記グレーコードｇ１は、ＮＡＮＤ回路３０ｃに入力される。
前記ＮＡＮＤ回路３０ｃの出力信号及び前記グレーコードｇ２は、ＥＯＲ回路３２ｃに入力され、同ＥＯＲ回路３２ｃの出力信号はインバータ回路３３ｅで反転されて訂正グレーコードｇ２Ｚとして出力される。
【００９５】
前記エラー信号ｅｒ１は、インバータ回路３３ｂで反転されてＥＯＲ回路３２ｄに入力され、同ＥＯＲ回路３２ｄには前記グレーコード信号ｇ１が入力される。
前記ＥＯＲ回路３２ｄの出力信号はインバータ回路３３ｆで反転されて訂正グレーコードｇ１Ｚとして出力される。
【００９６】
前記エラー信号ｅｒ２，ｅｒ１は、ＮＯＲ回路３１に入力され、同ＮＯＲ回路３１の出力信号及び前記グレーコード信号ｇ０はＥＯＲ回路３２ｅに入力される。前記ＥＯＲ回路３２ｅの出力信号はインバータ回路３３ｇで反転されて訂正グレーコードｇ０Ｚとして出力される。
【００９７】
前記グレー・バイナリー変換部１７の具体的構成を図９に示す。前記訂正グレーコードｇ４Ｚは、ＥＯＲ回路３５ａに入力されるとともに、２段のインバータ回路３４ａ，３４ｂを介してバイナリーコードＢ４Ｚとして出力される。
【００９８】
前記訂正グレーコードｇ３Ｚは、前記ＥＯＲ回路３５ａに入力され、同ＥＯＲ回路３５ａの出力信号は、バイナリーコードＢ３Ｚとして出力されるとともに、ＥＯＲ回路３５ｂに入力される。
【００９９】
前記訂正グレーコードｇ２Ｚは、前記ＥＯＲ回路３５ｂに入力され、同ＥＯＲ回路３５ｂの出力信号は、バイナリーコードＢ２Ｚとして出力されるとともに、ＥＯＲ回路３５ｃに入力される。
【０１００】
前記訂正グレーコードｇ１Ｚは、前記ＥＯＲ回路３５ｃに入力され、同ＥＯＲ回路３５ｃの出力信号は、バイナリーコードＢ１Ｚとして出力されるとともに、ＥＯＲ回路３５ｄに入力される。
【０１０１】
前記訂正グレーコードｇ０Ｚは、前記ＥＯＲ回路３５ｄに入力され、同ＥＯＲ回路３５ｄの出力信号は、バイナリーコードＢ０Ｚとして出力される。
上記グレー・バイナリー変換部１７は、グレーコードをバイナリーコードに変換する回路として一般的に使用されるものである。
【０１０２】
前記ビット線ＢＬ１，ＢＬ１Ｘ間には、図１２、図１４に示すプリチャージ回路３６，３７のいずれかが接続される。なお、ＢＬ２ａ，ＢＬ２ｂ間にも同様なプリチャージ回路が接続される。
【０１０３】
前記プリチャージ回路３６は、一対のＰチャネルＭＯＳトランジスタＴrp1 ，Ｔrp2 のソースが電源Ｖccに接続され、同トランジスタＴrp1 ，Ｔrp2 のゲートは、互いのドレインに接続される。
【０１０４】
前記トランジスタＴrp1 のドレインと電源Ｖssとの間には、複数のＮチャネルＭＯＳトランジスタＴrnが並列に接続され、各トランジスタＴrnのゲートには、前記ＲＯＭセルを介して前記ビット線ＢＬ１を制御する論理境界検出回路２３ａ，２３ｃ，２３ｅ，２３ｇ，２３ｉの出力信号がゲート信号Ｖ１としてそれぞれ入力される。
【０１０５】
前記トランジスタＴrp2 のドレインと電源Ｖssとの間には、複数のＮチャネルＭＯＳトランジスタＴrnx が並列に接続され、各トランジスタＴrnx のゲートには、前記ＲＯＭセルを介して前記ビット線ＢＬ１Ｘを制御する論理境界検出回路２３ｂ，２３ｄ，２３ｆ，２３ｈの出力信号がゲート信号Ｖ１Ｘとしてそれぞれ入力される。
【０１０６】
また、前記トランジスタＴrp1 のドレインがビット線ＢＬ１に接続され、前記トランジスタＴrp2 のドレインがビット線ＢＬ１Ｘに接続される。
このように構成されたプリチャージ回路３６では、図１３に示すように、例えばトランジスタＴrn1 のゲート信号Ｖ１のいずれかがＨレベルとなってトランジスタＴrn1 のいずれかがオンされるとともに、トランジスタＴrnx のゲート信号Ｖ１ＸがすべてＬレベルとなると、トランジスタＴrp1 がオフされるとともに、トランジスタＴrp2 がオンされる。すると、ビット線ＢＬ１がＬレベルとなるとともにビット線ＢＬ１ＸがＨレベルとなり、ビット線ＢＬ１Ｘが電源Ｖccレベルにプリチャージされる。
【０１０７】
また、トランジスタＴrnx のゲート信号Ｖ１ＸのいずれかがＨレベルとなってトランジスタＴrnｘのいずれかがオンされるとともに、トランジスタＴrnのゲート信号Ｖ１がすべてＬレベルとなると、トランジスタＴrp1 がオンされるとともに、トランジスタＴrp2 がオフされる。すると、ビット線ＢＬ１がＨレベルとなるとともにビット線ＢＬ１ＸがＬレベルとなり、ビット線ＢＬ１が電源Ｖccレベルにプリチャージされる。
【０１０８】
図１４に示すプリチャージ回路３７では、トランジスタＴrp1 ，Ｔrp2 のゲートが互いに接続されるとともに、トランジスタＴrp1 のドレインに接続されている点が前記プリチャージ回路３６と相違する。
【０１０９】
このプリチャージ回路３７は、前記プリチャージ回路３６ではビット線ＢＬ１，ＢＬ１Ｘの一方が立ち下がった後に、他方がプリチャージされるのに対し、図１５に示すように、ビット線ＢＬ１，ＢＬ１Ｘの一方の立ち下がりと同時に他方がプリチャージされるので、プリチャージ動作の応答速度が速くなる。
【０１１０】
前記第一のエンコード部１１のビット線ＢＬ０ａ，ＢＬ０ｂ，ＢＬ０Ｘａ，ＢＬ０Ｘｂには、図１６に示すプリチャージ回路３８ａ〜３８ｄがそれぞれ接続される。
前記プリチャージ回路３８ａは、ビット線ＢＬ０ａと電源Ｖccとの間に並列に接続される３つのＰチャネルＭＯＳトランジスタで構成され、各トランジスタのゲートには、前記グレーコードｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂがそれぞれ入力される。
【０１１１】
前記グレーコードｇ０ａがＬレベルとならないときは、グレーコードｇ０ｂ，ｇ０Ｘａ，ｇ０ＸｂのいずれかがＬレベルとなるため、ビット線ＢＬ０ａが電源Ｖccレベルにプリチャージされる。
【０１１２】
前記プリチャージ回路３８ｂは、ビット線ＢＬ０ｂと電源Ｖccとの間に並列に接続される３つのＰチャネルＭＯＳトランジスタで構成され、各トランジスタのゲートには、前記グレーコードｇ０ａ，ｇ０Ｘａ，ｇ０Ｘｂがそれぞれ入力される。
【０１１３】
前記グレーコードｇ０ｂがＬレベルとならないときは、グレーコードｇ０ａ，ｇ０Ｘａ，ｇ０ＸｂのいずれかがＬレベルとなるため、ビット線ＢＬ０ｂが電源Ｖccレベルにプリチャージされる。
【０１１４】
前記プリチャージ回路３８ｃは、ビット線ＢＬ０Ｘａと電源Ｖccとの間に並列に接続される３つのＰチャネルＭＯＳトランジスタで構成され、各トランジスタのゲートには、前記グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘｂがそれぞれ入力される。
【０１１５】
前記グレーコードｇ０ＸａがＬレベルとならないときは、グレーコードｇ０ａ，ｇ０ｂ，ｇ０ＸｂのいずれかがＬレベルとなるため、ビット線ＢＬ０Ｘａが電源Ｖccレベルにプリチャージされる。
【０１１６】
前記プリチャージ回路３８ｄは、ビット線ＢＬ０Ｘｂと電源Ｖccとの間に並列に接続される３つのＰチャネルＭＯＳトランジスタで構成され、各トランジスタのゲートには、前記グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａがそれぞれ入力される。
【０１１７】
前記グレーコードｇ０ＸｂがＬレベルとならないときは、グレーコードｇ０ａ，ｇ０ｂ，ｇ０ＸａのいずれかがＬレベルとなるため、ビット線ＢＬ０Ｘｂが電源Ｖccレベルにプリチャージされる。
【０１１８】
次に、上記のように構成されたエンコーダの動作を説明する。
第一のエンコード部１１は、サーモメータコードｅ１〜ｅ３１から５ビットのグレーコードｇ０〜ｇ４を生成する際に、最下位のグレーコードｇ０を生成するためのグレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂをビット独立デコード方式で生成するものである。
【０１１９】
論理境界検出回路１８ａ〜１８ｑには、奇数番のサーモメータコードｅ１〜ｅ３１が下位から順に３つずつ入力される。このような論理境界検出回路１８ａ〜１８ｑに正常なサーモメータコードｅ１〜ｅ３１が入力されたとき、第一のエンコード部１１のビット線ＢＬ０ａ，ＢＬ０ｂ，ＢＬ０Ｘａ，ＢＬ０Ｘｂから図１７に示すようなグレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂが出力される。
【０１２０】
グレーコードｇ０ａは、図４７に示す信号Ｚ１，Ｚ３，Ｚ５，Ｚ７のＯＲ論理をとった信号に相当し、グレーコードｇ０ｂは、図４７に示す信号Ｚ２，Ｚ４，Ｚ６，Ｚ８のＯＲ論理をとった信号に相当する。
【０１２１】
グレーコードｇ０Ｘａは、グレーコードｇ０ａに対する裏コードであり、図４７に示す信号Ｐ１，Ｐ３，Ｐ５，Ｐ７のＯＲ論理をとったものに相当する。グレーコードｇ０Ｘｂは、グレーコードｇ０ｂに対する裏コードであり、図４７に示す信号Ｐ２，Ｐ４，Ｐ６のＯＲ論理をとったものに相当する。
【０１２２】
そして、グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂは、サーモメータコードｅ１〜ｅ３１に基づいて、いずれか一つがＬレベルとなる。
上記のような論理は、論理境界検出回路１８ａ〜１８ｑで駆動されるＲＯＭセル２１ａ〜２１ｑをビット線ＢＬ０ａ，ＢＬ０Ｘａ，ＢＬ０ｂ，ＢＬ０Ｘｂに順次接続することにより生成される。すなわち、各ビット線ＢＬ０ａ，ＢＬ０Ｘａ，ＢＬ０ｂ，ＢＬ０Ｘｂには、４つおきの論理境界検出回路がＲＯＭセルを介して接続され、各ビット線ＢＬ０ａ，ＢＬ０Ｘａ，ＢＬ０ｂ，ＢＬ０Ｘｂに順次接続される４つの論理境界検出回路を１周期とすれば、各ビット線ＢＬ０ａ，ＢＬ０Ｘａ，ＢＬ０ｂ，ＢＬ０Ｘｂに論理境界検出回路１８ａ〜１８ｑが１周期間隔で接続される。
【０１２３】
第一のエンコード部１１に、「・・１１０１００・・」すなわち前記ｂ１タイプのバブルエラーを含むサーモメータコードｅ１〜ｅ３１が入力されると、図１８に示すように、グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂには、そのバブルエラーに起因するエラーが含まれる。
【０１２４】
また、第一のエンコード部１１に、「・・１１００１００・・」すなわち前記ｂ２Ｈタイプのバブルエラーを含むサーモメータコードｅ１〜ｅ３１が入力されると、論理境界検出回路１８ａ〜１８ｑには奇数番のサーモメータコードｅ１〜ｅ３１が下位から順に３つずつ入力されているので、図１９に示すように、グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂは、前記ｂ１タイプのバブルエラーの場合と同様なエラーを含む信号に訂正される。
【０１２５】
また、第一のエンコード部１１に、「・・１１０１１００・・」すなわち前記ｂ２Ｌタイプのバブルエラーを含むサーモメータコードｅ１〜ｅ３１が入力されると、図２０に示すように、グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂは、図１７に示すバブルエラーを含まないサーモメータコードｅ１〜ｅ３１によるグレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂと等しくなるように訂正される。
【０１２６】
なお、グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂは、上記いずれの場合にもいずれか１つがＬレベルとなり、他はＨレベルとなる。従って、ビット線ＢＬ０ａ，ＢＬ０Ｘａ，ＢＬ０ｂ，ＢＬ０Ｘｂのうち、Ｌレベルのグレーコードを出力しないビット線は、前記プリチャージ回路３８ａ〜３８ｄの動作により、上記エンコード動作と並行して電源Ｖccにプリチャージされる。
【０１２７】
前記第二のエンコード部１２は、サーモメータコードｅ１〜ｅ３１から５ビットのグレーコードｇ０〜ｇ４を生成する際に、下位から２番目のグレーコードｇ１と、その相補信号であるｇ１Ｘを、ビット独立デコード方式で生成するものである。
【０１２８】
論理境界検出回路２２ａ〜２２ｉには、偶数番のサーモメータコードｅ２〜ｅ３０に基づく信号が下位から順に３つずつ入力される。このような論理境界検出回路２２ａ〜２２ｉに正常なサーモメータコードｅ２〜ｅ３０が入力されたとき、第二のエンコード部１２のビット線ＢＬ１，ＢＬ１Ｘから図１７に示すようなグレーコードｇ１，ｇ１Ｘが出力される。
【０１２９】
グレーコードｇ１は、図４７に示すグレーコードＧ１に相当し、グレーコードｇ１Ｘは、グレーコードｇ１の裏コードとなり、互いに相補関係となる。
上記のような論理は、論理境界検出回路２２ａ〜２２ｉで駆動されるＲＯＭセル２３ａ〜２３ｉをビット線ＢＬ１，ＢＬ１Ｘに交互に接続することにより生成される。すなわち、各ビット線ＢＬ１，ＢＬ１Ｘには、１つおきの論理境界検出回路がＲＯＭセルを介して接続され、各ビット線ＢＬ１，ＢＬ１Ｘに交互に接続される２つの論理境界検出回路を１周期とすれば、各ビット線ＢＬ１，ＢＬ１Ｘに論理境界検出回路２２ａ〜２２ｉが１周期間隔で接続される。
【０１３０】
第二のエンコード部１２に、「・・１１０１００・・」すなわち前記ｂ１タイプのバブルエラーを含むサーモメータコードｅ２〜ｅ３０が入力されると、図１８に示すように、グレーコードｇ１，ｇ１Ｘには、そのバブルエラーに起因するエラーが含まれる。
【０１３１】
また、第二のエンコード部１２に、「・・１１００１００・・」すなわち前記ｂ２Ｈタイプのバブルエラーを含むサーモメータコードｅ２〜ｅ３０が入力されると、論理境界検出回路２２ａ〜２２ｉには偶数番のサーモメータコードｅ２〜ｅ３０に基づく信号が下位から順に３つずつ入力されているので、図１９に示すように、グレーコードｇ１，ｇ１Ｘは、前記ｂ１タイプのバブルエラーの場合と同様なエラーを含む信号に訂正される。
【０１３２】
また、第二のエンコード部１２に、「・・１１０１１００・・」すなわち前記ｂ２Ｌタイプのバブルエラーを含むサーモメータコードｅ２〜ｅ３０が入力されると、図２０に示すように、グレーコードｇ１，ｇ１Ｘは、図１７に示すバブルエラーを含まないサーモメータコードｅ２〜ｅ３０によるグレーコードｇ１，ｇ１Ｘと等しくなるように訂正される。
【０１３３】
なお、グレーコードｇ１，ｇ１Ｘは、上記いずれの場合にも相補信号となる。従って、ビット線ＢＬ１，ＢＬ１Ｘのうち、Ｌレベルのグレーコードを出力しないビット線は、前記プリチャージ回路３６あるいはプリチャージ回路３７の動作により、上記エンコード動作と並行して電源Ｖccレベルにプリチャージされる。
【０１３４】
前記第三のエンコード部１３は、サーモメータコードｅ１〜ｅ３１から５ビットのグレーコードｇ０〜ｇ４を生成する際に、下位から３番目〜５番目のグレーコードｇ２〜ｇ４を生成するための論理境界検出信号ｇａ〜ｇｈと、バイナリーコードｇ２ａ，ｇ２ｂをビット独立デコード方式で生成するものである。
【０１３５】
論理境界検出回路２４ａ〜２４ｈには、偶数番のサーモメータコードｅ４〜ｅ３０に基づく信号が下位から順に３つずつ入力される。このような論理境界検出回路２４ａ〜２４ｈに正常なサーモメータコードｅ４〜ｅ３０が入力されたとき、第三のエンコード部１３のビット線ＢＬ２ａ，ＢＬ２ｂから図１７に示すようなバイナリーコードｇ２ａ，ｇ２ｂが出力される。
【０１３６】
バイナリーコードｇ２ａ，ｇ２ｂは、互いに相補関係にあり、図４７において前記グレーコードｇ１，ｇ１Ｘを１０進値において２つ上位側へシフトさせた値となる。すなわち、ｇ２ａはバイナリーコードＢ２に相当する。
【０１３７】
上記のような論理は、論理境界検出回路２４ａ〜２４ｈで駆動されるＲＯＭセル２５ａ〜２５ｈをビット線ＢＬ２ａ，ＢＬ２ｂに交互に接続することにより生成される。すなわち、各ビット線ＢＬ２ａ，ＢＬ２ｂには、１つおきの論理境界検出回路がＲＯＭセルを介して接続され、各ビット線ＢＬ２ａ，ＢＬ２ｂに交互に接続される２つの論理境界検出回路を１周期とすれば、各ビット線ＢＬ２ａ，ＢＬ２ｂに論理境界検出回路２４ａ〜２４ｈが１周期間隔で接続される。
【０１３８】
また、各論理境界検出回路２４ａ〜２４ｈから論理境界検出信号ｇａ〜ｇｈが出力される。
第三のエンコード部１３に、「・・１１０１００・・」すなわち前記ｂ１タイプのバブルエラーを含むサーモメータコードｅ４〜ｅ３０が入力されると、図１８に示すように、バイナリーコードｇ２ａ，ｇ２ｂには、そのバブルエラーに起因するエラーが含まれる。
【０１３９】
また、第三のエンコード部１３に、「・・１１００１００・・」すなわち前記ｂ２Ｈタイプのバブルエラーを含むサーモメータコードｅ４〜ｅ３０が入力されると、論理境界検出回路２４ａ〜２４ｈには偶数番のサーモメータコードｅ４〜ｅ３０に基づく信号が下位から順に３つずつ入力されているので、図１９に示すように、バイナリーコードｇ２ａ，ｇ２ｂは、前記ｂ１タイプのバブルエラーの場合と同様なエラーを含む信号に訂正される。
【０１４０】
また、第三のエンコード部１３に、「・・１１０１１００・・」すなわち前記ｂ２Ｌタイプのバブルエラーを含むサーモメータコードｅ４〜ｅ３０が入力されると、図２０に示すように、バイナリーコードｇ２ａ，ｇ２ｂは、図１７に示すバブルエラーを含まないサーモメータコードｅ４〜ｅ３０によるバイナリーコードｇ２ａ，ｇ２ｂと等しくなるように訂正される。
【０１４１】
なお、バイナリーコードｇ２ａ，ｇ２ｂは、上記いずれの場合にも相補信号となる。従って、ビット線ＢＬ２ａ，ＢＬ２ｂのうち、Ｌレベルのバイナリーコードを出力しないビット線は、前記プリチャージ回路３６あるいはプリチャージ回路３７の動作により、上記エンコード動作と並行して電源Ｖccレベルにプリチャージされる。
【０１４２】
前記第四のエンコード部１４は、前記グレーコード信号ｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂの論理処理に基づいて、最下位のグレーコードｇ０，ｇ０Ｘとを生成し、前記論理境界検出信号ｇｂ〜ｇｈの論理処理に基づいて、下位から３番目〜５番目のグレーコードｇ２〜ｇ４を生成する論理回路である。
【０１４３】
このような第四のエンコード部１４に、正常なサーモメータコードｅ１〜ｅ３１による正常なグレーコード信号ｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂ及び論理境界検出信号ｇｂ〜ｇｈが入力されると、図１７に示すように、エラーを含まないグレーコードｇ０，ｇ２〜ｇ４が生成される。なお、下位から２番目のグレーコードｇ１は、前記第二のエンコード部１２で生成されている。
【０１４４】
第四のエンコード部１４に、「・・１１０１００・・」すなわち前記ｂ１タイプのバブルエラーに基づくエラーを含むグレーコード信号ｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂ及び論理境界検出信号ｇｂ〜ｇｈが入力されると、図１８に示すように、グレーコードｇ０〜ｇ４にはそのバブルエラーに起因するエラーが含まれる。
【０１４５】
また、第四のエンコード部１３に、「・・１１００１００・・」すなわち前記ｂ２Ｈタイプのバブルエラーに基づくエラーを含むグレーコード信号ｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂ及び論理境界検出信号ｇｂ〜ｇｈが入力されると、図１９に示すように、グレーコードｇ０〜ｇ４は前記ｂ１タイプのバブルエラーの場合と同様なエラーを含む信号となる。
【０１４６】
また、第四のエンコード部１４に、「・・１１０１１００・・」すなわち前記ｂ２Ｌタイプのバブルエラーに基づくエラーを含むグレーコード信号ｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂ及び論理境界検出信号ｇｂ〜ｇｈが入力されると、図２０に示すように、グレーコードｇ０〜ｇ４はエラーを含まない信号となり、図１７と同様となる。
【０１４７】
前記エラー信号生成部１５は、前記グレーコード信号ｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂ，ｇ１，ｇ１Ｘ及びバイナリーコードｇ２ａ，ｇ２ｂを、図４７に示す各グレーコードの関係を満足するか否かを検出する回路であり、満足しない場合には、Ｈレベルのエラー信号ｅｒ１，ｅｒ２を出力する。
【０１４８】
すなわち、ＮＡＮＤ回路２９ａでは正常なグレーコードｇ１，ｇ０ａが入力されているとき、図１７に示すように、グレーコードｇ０ａがＬレベルのとき、グレーコードｇ１はＬレベルとなるので、出力信号ＥＲ１Ａは必ずＨレベルとなる。
【０１４９】
ＮＡＮＤ回路２９ｂでは正常なグレーコードｇ１Ｘ，ｇ０ｂが入力されているとき、グレーコードｇ０ｂがＬレベルのとき、グレーコードｇ１ＸはＬレベルとなるので、出力信号ＥＲ１Ｂは必ずＨレベルとなる。
【０１５０】
従って、正常なグレーコードｇ１，ｇ１Ｘ，ｇ０ａ，ｇ０ｂが入力されているときは、ＮＡＮＤ回路２９ａ，２９ｂの出力信号ＥＲ１Ａ，ＥＲ１ＢはともにＨレベルとなり、ＮＡＮＤ回路２９ｅから出力されるエラー信号ｅｒ１はＬレベルとなる。
【０１５１】
同様に、ＮＡＮＤ回路２９ｃでは、正常なバイナリーコードｇ２ａとグレーコードｇ０Ｘａが入力されているとき、グレーコードｇ０ＸａがＬレベルのとき、バイナリーコードｇ２ａはＬレベルとなるので、出力信号ＥＲ２Ａは必ずＨレベルとなる。
【０１５２】
ＮＡＮＤ回路２９ｄでは、正常なバイナリーコードｇ２ｂとグレーコードｇ０Ｘｂが入力されているとき、グレーコードｇ０ＸｂがＬレベルのとき、バイナリーコードｇ２ｂはＬレベルとなるので、出力信号ＥＲ２ｂは必ずＨレベルとなる。
【０１５３】
従って、正常なグレーコードｇ２ａ，ｇ２ｂ，ｇ０Ｘａ，ｇ０Ｘｂが入力されているときは、ＮＡＮＤ回路２９ｃ，２９ｄの出力信号ＥＲ２Ａ，ＥＲ２ＢはともにＨレベルとなり、ＮＡＮＤ回路２９ｆから出力されるエラー信号ｅｒ２はＬレベルとなる。
【０１５４】
一方、図１８及び図１９に示すように、グレーコード信号ｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂ，ｇ１，ｇ１Ｘ及びバイナリーコードｇ２ａ，ｇ２ｂにエラーが含まれる場合には、上記のような正常時の条件が満足できなくなって、ＮＡＮＤ回路２９ａ〜２９ｄの出力信号ＥＲ１Ａ〜ＥＲ２ＢがＬレベルとなることがあり、この場合にはエラー信号ｅｒ１，ｅｒ２がＨレベルとなる。
【０１５５】
図８に示す前記エラー訂正部１６は、前記エラー信号ｅｒ１，ｅｒ２に基づいて、エラーを含んだグレーコードｇ０〜ｇ４を確からしい値に訂正するように動作する。その訂正動作は、前記訂正原理で示したように、グレーコードｇ０〜ｇ４のうちエラーが検出されたコードを反転させるものである。
【０１５６】
すなわち、図１８及び図１９に示すように、グレーコードｇ４がエラーを出力しているとき、エラー信号ｅｒ２及びグレーコード信号ｇ１ＸはＨレベル、グレーコード信号ｇ２はＬレベルとなり、ＮＡＮＤ回路３０ａの出力信号はＬレベルとなる。すると、ＥＯＲ回路３２ａ及びインバータ回路３３ｃの動作により、グレーコードｇ４が反転された訂正グレーコードｇ４Ｚが出力される。
【０１５７】
また、エラー信号ｅｒ２、グレーコード信号ｇ１Ｘ，ｇ２が上記以外の場合には、グレーコードｇ４は正常であり、ＮＡＮＤ回路３０ａの出力信号はＨレベルとなるため、訂正グレーコードｇ４Ｚはグレーコードｇ４と同相となる。
【０１５８】
グレーコードｇ３がエラーを出力しているとき、エラー信号ｅｒ２及びグレーコード信号ｇ１Ｘ、ｇ２はＨレベルとなり、ＮＡＮＤ回路３０ａの出力信号はＬレベルとなる。すると、ＥＯＲ回路３２ｂ及びインバータ回路３３ｄの動作により、グレーコードｇ３が反転された訂正グレーコードｇ３Ｚが出力される。
【０１５９】
また、エラー信号ｅｒ２、グレーコード信号ｇ１Ｘ，ｇ２が上記以外の場合には、グレーコードｇ３は正常であり、ＮＡＮＤ回路３０ｂの出力信号はＨレベルとなるため、訂正グレーコードｇ３Ｚはグレーコードｇ３と同相となる。
【０１６０】
グレーコードｇ２がエラーを出力しているとき、エラー信号ｅｒ２及びグレーコード信号ｇ１はＨレベルとなり、ＮＡＮＤ回路３０ｃの出力信号はＬレベルとなる。すると、ＥＯＲ回路３２ｃ及びインバータ回路３３ｅの動作により、グレーコードｇ２が反転された訂正グレーコードｇ２Ｚが出力される。
【０１６１】
また、エラー信号ｅｒ２、グレーコード信号ｇ１が上記以外の場合には、グレーコードｇ２は正常であり、ＮＡＮＤ回路３０ｃの出力信号はＨレベルとなるため、訂正グレーコードｇ２Ｚはグレーコードｇ２と同相となる。
【０１６２】
グレーコードｇ１がエラーを出力しているとき、エラー信号ｅｒ１はＨレベルとなり、インバータ回路３３ｂの出力信号はＬレベルとなる。すると、ＥＯＲ回路３２ｄ及びインバータ回路３３ｆの動作により、グレーコードｇ１が反転された訂正グレーコードｇ１Ｚが出力される。
【０１６３】
また、エラー信号ｅｒ２がＬレベルの場合には、グレーコードｇ１は正常であり、インバータ回路３３ｂの出力信号はＨレベルとなるため、訂正グレーコードｇ１Ｚはグレーコードｇ１と同相となる。
【０１６４】
グレーコードｇ０がエラーを出力しているとき、エラー信号ｅｒ１，ｅｒ２の少なくともいずれかはＨレベルとなり、ＮＯＲ回路３１の出力信号はＬレベルとなる。すると、ＥＯＲ回路３２ｅ及びインバータ回路３３ｇの動作により、グレーコードｇ０が反転された訂正グレーコードｇ０Ｚが出力される。
【０１６５】
また、エラー信号ｅｒ１，ｅｒ２がともにＬレベルの場合には、グレーコードｇ０は正常であり、ＮＯＲ回路３１の出力信号はＨレベルとなるため、訂正グレーコードｇ０Ｚはグレーコードｇ０と同相となる。
【０１６６】
図９に示す前記グレー・バイナリー変換部１７は、訂正グレーコードｇ４ＺをバイナリーコードＢ４Ｚとして出力し、訂正グレーコードｇ４Ｚ，ｇ３ＺのＥＯＲ論理をバイナリーコードＢ３Ｚとして出力し、バイナリーコードＢ３Ｚと訂正グレーコードｇ２ＺとのＥＯＲ論理をバイナリーコードＢ２Ｚとして出力し、バイナリーコードＢ２Ｚと、訂正グレーコードｇ１ＺとのＥＯＲ論理をバイナリーコードＢ１Ｚとして出力し、バイナリーコードＢ１Ｚと、訂正グレーコードｇ０ＺとのＥＯＲ論理をバイナリーコードＢ０Ｚとして出力する。
【０１６７】
このような動作により、訂正グレーコードｇ０Ｚ〜ｇ４ＺがバイナリーコードＢ０Ｚ〜Ｂ４Ｚに変換される。
上記のように構成されたエンコーダでは、次に示す作用効果を得ることができる。
【０１６８】
（１）入力されるサーモメータコードｅ１〜ｅ３１にｂ１タイプ、ｂ２Ｈタイプあるいはｂ２Ｌタイプのバブルエラーが含まれていても、そのバブルエラーを訂正したバイナリーコードＢ０Ｚ〜Ｂ４Ｚを生成することができる。
【０１６９】
（２）第一のエンコード部１１を構成する論理境界検出回路は、インバータ回路とＮＯＲ回路とからなる３入力回路で構成され、サーモメータコードｅ１〜ｅ３１のうち奇数番のサーモメータコードが入力されるので、ｂ１タイプのバブルエラーは訂正せず、ｂ２Ｈタイプのバブルエラーはｂ１タイプのバブルエラーが入力された場合と同等となるように訂正することができ、ｂ２Ｌタイプのバブルエラーを確からしい値に訂正することができる。
【０１７０】
（３）第二及び第三のエンコード部１２，１３を構成する論理境界検出回路は、インバータ回路とＮＯＲ回路とからなる３入力回路で構成され、サーモメータコードｅ１〜ｅ３１のうち偶数番のサーモメータコードと、そのサーモメータコードのＯＲ論理が入力されるので、ｂ１タイプのバブルエラーは訂正せず、ｂ２Ｈタイプのバブルエラーはｂ１タイプのバブルエラーが入力された場合と同等となるように訂正することができ、ｂ２Ｌタイプのバブルエラーを確からしい値に訂正することができる。
【０１７１】
（４）第一のエンコード部１１では、論理境界検出回路１８ａ〜１８ｑの出力信号に基づいて動作するＲＯＭセル２１ａ〜２１ｑをビット線ＢＬ０ａ，ＢＬ０ｂ，ＢＬ０Ｘａ，ＢＬ０Ｘｂに順次接続することにより、最下位のグレーコードｇ０を分解した表コードｇ０ａ，ｇ０ｂと、その裏コードｇ０Ｘａ，ｇ０Ｘｂとを生成することができる。
【０１７２】
（５）第二のエンコード部１２では、論理境界検出回路２２ａ〜２２ｉの出力信号に基づいて動作するＲＯＭセル２３ａ〜２３ｉをビット線ＢＬ１，ＢＬ１Ｘに順次接続することにより、下位から２番目のグレーコードｇ１と、その裏コードｇ１Ｘとを生成することができる。
【０１７３】
（６）第三のエンコード部１３では、論理境界検出回路２４ａ〜２４ｈの出力信号に基づいて動作するＲＯＭセル２３ａ〜２３ｉをビット線ＢＬ１，ＢＬ１Ｘに順次接続することにより、下位から２番目のグレーコードｇ１と、その裏コードｇ１Ｘとを１０進値において２つ上位側へシフトさせた信号、すなわちバイナリーコードＢ２と同等の信号を生成することができる。また、各論理境界検出回路２４ａ〜２４ｈから論理境界検出信号ｇａ〜ｇｈを出力することができる。
【０１７４】
（７）第四のエンコード部１４では、第三のエンコード部１３で生成された論理境界検出信号ｇｂ〜ｇｈを論理処理することにより下位から３番目から５番目のグレーコードｇ２〜ｇ４を生成することができる。また、第一のエンコード部１１で生成されたグレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂを論理処理することにより、最下位のグレーコードｇ０を生成することができる。
【０１７５】
（８）エラー信号生成部１５では、第一〜第三のエンコード部１１，１２，１３の出力信号を論理処理することにより、図４７に示すエラー検出原理に基づいてエラー検出を行い、エラーが存在するときにはＨレベルのエラー信号ｅｒ１，ｅｒ２を生成することができる。
【０１７６】
（９）エラー訂正部１６では、前記エラー信号ｅｒ１，ｅｒ２と、グレーコード信号ｇ１，ｇ１Ｘ，ｇ２とに基づいて、タイプｂ１のエラーを含むグレーコードｇ０〜ｇ４に訂正を施して、訂正グレーコードｇ０Ｚ〜ｇ４Ｚを生成することができる。
【０１７７】
（１０）グレー・バイナリー変換部１７では、訂正グレーコードｇ０Ｚ〜ｇ４ＺをバイナリーコードＢ０Ｚ〜Ｂ４Ｚに変換することができる。
（１１）第一のエンコード部１１の４本のビット線ＢＬ０ａ，ＢＬ０ｂ，ＢＬ０Ｘａ，ＢＬ０Ｘｂには、プリチャージ回路３８ａ〜３８ｄが接続されて、いずれか一本のビット線から出力されるＬレベルのグレーコードにより、他の３本のビット線が電源Ｖccレベルにプリチャージされる。従って、サーモメータコードｅ１〜ｅ３１をグレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂにエンコードする動作と並行してビット線のプリチャージ動作を行うことができる。
【０１７８】
（１２）第二及び第三のエンコード部１２，１３の各ビット線ＢＬ１，ＢＬ１Ｘ、ＢＬ２ａ，ＢＬ２ｂにはプリチャージ回路３６，３７のいずれかが接続されて、一方のビット線から出力されるＬレベルの信号に基づいて、他方のビット線がプリチャージされる。従って、サーモメータコードｅ２〜ｅ３０をグレーコードｇ１，ｇ１Ｘ及びバイナリーコードｇ２ａ，ｇ２ｂにエンコードする動作と並行してビット線のプリチャージ動作を行うことができる。
【０１７９】
（１３）サーモメータコードのエンコード動作と、ビット線のプリチャージ動作とを並行して行うことができるので、エンコード動作の１サイクル中にプリチャージのための時間を設定する必要がない。従って、エンコード動作の高速化を図ることができる。
【０１８０】
（１４）第一のエンコード部１１では、ビット線が４本に分割され、各ビット線にそれぞれ同数のＲＯＭセルが接続されるので、各ビット線に接続されるＲＯＭセルの数が少なくなる。従って、各ＲＯＭセルに対する負荷を軽減することができるので、エンコード動作を高速化することができる。また、図４２，４３に示すエンコード部とは異なり、上記実施の形態では各論理境界検出回路にそれぞれ一つずつのＲＯＭセルが接続されるため、各論理境界検出回路の負荷が一定となる。従って、各論理境界検出回路の負荷条件の差に基づくエラーの発生を防止することができる。
【０１８１】
（１５）図４５に示す通常のグレーコード方式のエンコーダに比して、上記実施の形態では、グレーコードｇ０ａ，ｇ０ｂ，ｇ１の裏コードを設定するために、論理境界検出回路及びＲＯＭセルの数が増大するが、通常のグレーコード方式のエンコーダは直接バイナリーコードを出力するエンコーダに比して論理境界検出回路及びＲＯＭセルの数が削減されているので、上記実施の形態のエンコーダは、直接バイナリーコードを出力するエンコーダより素子数及び回路面積を増大させるものではない。
【０１８２】
（１６）エラー信号生成部１５で生成されたエラー信号ｅｒ１，ｅｒ２が、エラー信号出力端子から外部へ出力される。そして、このＡ／Ｄ変換器の動作試験を行う際に、このエラー信号ｅｒ１，ｅｒ２を試験装置で検出することにより、サーモメータコードｅ１〜ｅ３１にエラーが発生しているか否かを容易に検出することができる。
【０１８３】
従来のＡ／Ｄ変換器の動作試験では、バイナリーコードのデジタル出力信号に基づいて、サーモメータコードのエラーの有無を検出している。すなわち、サーモメータコードのエラーによるデジタル出力信号のリニアリティあるいはＳ／Ｎ比の悪化を、周波数成分のスペクトラムを求める高速フーリエ変換処理等を行って検出することにより、デジタル出力信号からサーモメータコードのエラーを検出している。
【０１８４】
従って、本実施の形態では、従来のような高速フーリエ変換処理等の複雑な処理を行うことなく、Ａ／Ｄ変換器の動作試験を行うことができるので、試験コストを低減することができる。
【０１８５】
（第二の実施の形態）
図２１は、この発明を具体化したエンコーダの第二の実施の形態を示す。この実施の形態は、第一〜第四のエンコード部４１〜４４と、エラー信号生成部４５と、グレー・バイナリー変換部４６とから構成される。
【０１８６】
前記第一〜第三のエンコード部４１〜４３及びエラー信号生成部４５は、前記第一の実施の形態と同様な構成であるので、その説明を省略する。図２３に示す前記第四のエンコード部４４は、第三のエンコード部４３から出力される論理境界検出信号ｇｂ，ｇｃ，ｇｆ，ｇｇをＮＯＲ回路４７ａ，４７ｂ及びＮＡＮＤ回路４８で論理処理することにより、グレーコードｇ２を生成するものであり、前記第一の実施の形態の第四のエンコード部１４でグレーコードｇ２を生成する回路と同様である。
【０１８７】
グレー・バイナリー変換部４６は、前記第一の実施の形態のエラー訂正部１６と、グレー・バイナリー変換部１７との機能を併せ持つものであり、前記第一〜第四のエンコード部４１〜４４及びエラー信号生成部４５で生成された信号に基づいて、バイナリーコードＢ０Ｚ〜Ｂ４Ｚを生成するものである。
【０１８８】
図２２に示すように、グレーコードｇ２はインバータ回路４９ａで反転されてＮＡＮＤ回路５０ａに入力され、そのＮＡＮＤ回路５０ａにはグレーコードｇ１Ｘ、エラー信号ｅｒ２が入力される。前記ＮＡＮＤ回路５０ａの出力信号はＥＯＲ回路５２ａに入力される。
【０１８９】
前記論理境界検出信号ｇｆ，ｇｅは、ＮＯＲ回路５１ａに入力され、前記論理境界検出信号ｇｈ，ｇｇは、ＮＯＲ回路５１ｂに入力され、前記論理境界検出信号ｇｄ，ｇｃは、ＮＯＲ回路５１ｃに入力される。
【０１９０】
前記ＮＯＲ回路５１ａ，５１ｂの出力信号は、ＮＡＮＤ回路５０ｂに入力され、そのＮＡＮＤ回路５０ｂの出力信号は前記ＥＯＲ回路５２ａに入力される。そして、前記ＥＯＲ回路５２ａの出力信号がインバータ回路４９ｂで反転されて、バイナリーコードＢ４Ｚとして出力される。ＮＡＮＤ回路５０ａ，５０ｂは、エラーを訂正したバイナリーコードＢ４Ｚを生成するためのバイナリーコードを出力する。
【０１９１】
前記ＮＯＲ回路５１ｂ，５１ｃの出力信号は、ＮＡＮＤ回路５０ｃに入力され、そのＮＡＮＤ回路５０ｃの出力信号はＥＯＲ回路５２ｂに入力される。
グレーコードｇ１Ｘ及びエラー信号ｅｒ２は、ＮＡＮＤ回路５０ｄに入力され、そのＮＡＮＤ回路５０ｄの出力信号は前記ＥＯＲ回路５２ｂに入力される。そして、前記ＥＯＲ回路５２ｂの出力信号がインバータ回路４９ｃで反転されて、バイナリーコードＢ３Ｚとして出力される。
【０１９２】
ＮＡＮＤ回路５０ｃ，５０ｄは、エラーを訂正したバイナリーコードＢ３Ｚを生成するためのバイナリーコードを出力する。
前記第三のエンコード部４３で生成されるバイナリーコードｇ２ａは、ＥＯＲ回路５２ｃに入力され、前記エラー信号ｅｒ２はインバータ回路４９ｄで反転されて、ＥＯＲ回路５２ｃに入力される。
【０１９３】
前記ＥＯＲ回路５２ｃの出力信号はインバータ回路４９ｆで反転されて、バイナリーコードＢ２Ｚとして出力されるとともに、ＥＯＲ回路５２ｅに入力される。
前記グレーコードｇ１は、ＥＯＲ回路５２ｄに入力され、前記エラー信号ｅｒ１はインバータ回路４９ｅで反転されて、ＥＯＲ回路５２ｄに入力される。前記ＥＯＲ回路５２ｄの出力信号は、インバータ回路４９ｇで反転されて前記ＥＯＲ回路５２ｅに入力される。そして、前記ＥＯＲ回路５２ｅからバイナリーコードＢ１Ｚが出力される。
【０１９４】
インバータ回路４９ｆ，４９ｇは、バイナリーコードＢ１Ｚを生成するためのバイナリーコードを出力する。
前記第一のエンコード部４１で生成されるグレーコードｇ０ａ，ｇ０ｂは、ＮＡＮＤ回路５０ｅに入力され、そのＮＡＮＤ回路５０ｅの出力信号がＥＯＲ回路５２ｇに入力される。
【０１９５】
前記バイナリーコードｇ２ａ及びグレーコードｇ１はＥＯＲ回路５２ｆに入力され、そのＥＯＲ回路５２ｆの出力信号がインバータ回路４９ｈで反転されて前記ＥＯＲ回路５２ｇに入力される。そして、前記ＥＯＲ回路５２ｇからバイナリーコードＢ０Ｚが出力される。
【０１９６】
ＮＡＮＤ回路５０ｅ及びインバータ回路４９ｈは、バイナリーコードＢ０Ｚを生成するためのバイナリーコードを出力する。
また、グレーコードｇ０ｂ，ｇ０ａ，ｇ０Ｘａ，ｇ０Ｘｂ，ｇ１及びバイナリーコードｇ２ａに基づいて、インバータ回路４９ｉ，４９ｊ、ＮＯＲ回路５１ｄ〜５１ｉ及びＮＡＮＤ回路５０ｆの論理処理に基づいて、バイナリーコードＢ０が出力される。このバイナリーコードＢ０は、第一〜第三のエンコード部４１〜４３で生成された信号にバブルエラーに基づくエラーが含まれていても、そのエラーが訂正されない。
【０１９７】
次に、上記のように構成されたエンコーダの動作を説明する。前記第一〜第四のエンコード部４１〜４４は、前記第一の実施の形態の第一〜第四のエンコード部１１〜１４の動作と同様に、図２６に示すようにタイプｂ２Ｈのバブルエラーを含むサーモメータコードｅ１〜ｅ３１が入力されると、図２５に示すタイプｂ１のバブルエラーが入力されたときと同等の信号を出力し、図２７に示すようにタイプｂ２Ｌのバブルエラーを含むサーモメータコードｅ１〜ｅ３１が入力されると、そのエラーを完全に訂正した信号を出力し、図２５に示すようにタイプｂ１のバブルエラーを含むサーモメータコードｅ１〜ｅ３１が入力されると、そのエラーを含む信号を出力する。
【０１９８】
また、エラー信号生成部４５では第一の実施の形態のエラー信号生成部１５と同様なエラー信号ｅｒ１，ｅｒ２を生成する。
グレー・バイナリー変換部４６では、論理境界検出信号ｇｆ，ｇｅ，ｇｈ，ｇｇに基づくＮＯＲ回路５１ａ，５１ｂ及びＮＡＮＤ回路５０ｂの論理処理により、バイナリーコードが生成される。図２４に示すように、入力されるサーモメータコードｅ１〜ｅ３１にバブルエラーが含まれていないときには、エラー信号ｅｒ２がＬレベルとなるため、ＮＡＮＤ回路５０ａの出力信号はＨレベルとなる。すると、ＮＡＮＤ回路５０ｂの出力信号と同相の信号がバイナリーコードＢ４Ｚとして出力される。
【０１９９】
また、図２２及び図２５に示すように、エラー信号ｅｒ２がＨレベルとなって、グレーコードｇ２がＬレベル、グレーコードｇ１ＸがＨレベルとなったとき、ＮＡＮＤ回路５０ｂの出力信号が反転されて、バイナリーコードＢ４Ｚとして出力される。グレーコードｇ２，ｇ１Ｘ及びエラー信号ｅｒ２が上記条件以外では、ＮＡＮＤ回路５０ｂの出力信号と同相の信号がバイナリーコードＢ４Ｚとして出力される。
【０２００】
論理境界検出信号ｇｈ，ｇｇ，ｇｄ，ｇｃに基づくＮＯＲ回路５１ｂ，５１ｃ及びＮＡＮＤ回路５０ｃの論理処理により、バイナリーコードが生成され、エラー信号ｅｒ２がＬレベルであれば、ＮＡＮＤ回路５０ｃの出力信号と同相の信号がバイナリーコードＢ３Ｚとして出力される。
【０２０１】
また、図２２及び図２５に示すように、エラー信号ｅｒ２及びグレーコードｇ１ＸがともにＨレベルとなると、ＮＡＮＤ回路５０ｃの出力信号が反転されて、バイナリーコードＢ３Ｚとして出力される。
【０２０２】
バイナリーコードＢ２Ｚは、エラー信号ｅｒ２がＬレベルのとき、バイナリーコードｇ２ａと同相の信号が出力され、エラー信号ｅｒ２がＨレベルのとき、バイナリーコードｇ２ａの反転信号となる。
【０２０３】
バイナリーコードＢ１Ｚは、バイナリーコードＢ２ＺがＨレベルであって、エラー信号ｅｒ１がＬレベルのとき、グレーコードｇ１の反転信号となり、エラー信号ｅｒ１がＨレベルのとき、グレーコードｇ１と同相の信号となる。また、バイナリーコードＢ２ＺがＬレベルであって、エラー信号ｅｒ１がＬレベルのとき、グレーコードｇ１のと同相信号となり、エラー信号ｅｒ１がＨレベルのとき、グレーコードｇ１の反転信号となる。
【０２０４】
バイナリーコードＢ０Ｚは、グレーコードｇ１及びバイナリーコードｇ２ａがともにＨレベル、あるいはともにＬレベルであるとき、グレーコードｇ０ａ，ｇ０ｂがともにＨレベルとなるとＨレベルとなり、グレーコードｇ０ａ，ｇ０ｂの少なくともいずれかがＬレベルとなると、Ｌレベルとなる。
【０２０５】
また、グレーコードｇ１及びバイナリーコードｇ２ａの一方がＨレベル、他方がＬレベルであるとき、グレーコードｇ０ａ，ｇ０ｂがともにＨレベルとなるとＬレベルとなり、グレーコードｇ０ａ，ｇ０ｂの少なくともいずれかがＬレベルとなると、Ｈレベルとなる。
【０２０６】
上記のような動作により、図２４〜図２７に示すように、サーモメータコードｅ１〜ｅ３１にバブルエラーが含まれていても、エラーが訂正されたバイナリーコードＢ０Ｚ〜Ｂ４Ｚが出力される。
【０２０７】
前記第二及び第三のエンコード部４２，４３のビット線ＢＬ１，ＢＬ１Ｘ及びビット線ＢＬ２ａ，ＢＬ２ｂには、図２８に示すプリチャージ回路５３が接続される。
前記プリチャージ回路５３は、前記プリチャージ回路３６にＮチャネルＭＯＳトランジスタ５４〜５７を付加した構成である。前記トランジスタ５４のドレイン及びゲートは、ビット線ＢＬ１に接続され、前記トランジスタ５５のドレイン及びゲートは、ビット線ＢＬ１Ｘに接続される。
【０２０８】
前記トランジスタ５７のソースはビット線ＢＬ１に接続され、前記トランジスタ５５のソースはビット線ＢＬ１Ｘに接続される。
前記トランジスタ５４，５６のソースと、前記トランジスタ５５，５７のドレインとは互いに接続されるとともに、トランジスタ５５，５７のゲートに接続される。
【０２０９】
このようなプリチャージ回路５３では、その動作により例えばビット線ＢＬ１がＨレベル、ビット線ＢＬ１ＸがＬレベルとなると、トランジスタ５４，５５がオンされ、トランジスタ５６，５７がオフされる。このとき、各トランジスタ５４，５５はドレインとゲートとが接続されているので、ダイオードとして動作し、ビット線ＢＬ１，ＢＬ１Ｘの電位差は、トランジスタ５４，５５のしきい値分にクランプされる。
【０２１０】
また、ビット線ＢＬ１がＬレベル、ビット線ＢＬ１ＸがＨレベルとなると、トランジスタ５４，５５がオフされ、トランジスタ５６，５７がオンされる。このとき、各トランジスタ５６，５７はドレインとゲートとが接続されているので、ダイオードとして動作し、ビット線ＢＬ１，ＢＬ１Ｘの電位差は、トランジスタ５６，５７のしきい値分にクランプされる。
【０２１１】
なお、上記プリチャージ回路５３は、前記第一の実施の形態の第二及び第三のエンコード部１２，１３のビット線のプリチャージ回路として使用することもできる。
上記のように構成されたエンコーダでは、第一の実施の形態のエンコーダで得られる作用効果に加えて、次に示す作用効果を得ることができる。
【０２１２】
（１）第一の実施の形態で生成した訂正グレーコードＧ０Ｚ〜Ｇ４Ｚを生成することなく、第一〜第四のエンコード部４１〜４４で生成された信号に基づいて、エラー訂正と並行して、バイナリーコードＢ０Ｚ〜Ｂ４Ｚを生成することができる。従って、図９に示すようなグレー・バイナリー変換部１７を必要とすることなく、バイナリーコードＢ０Ｚ〜Ｂ４Ｚを生成することができるので、回路規模を縮小することができる。
【０２１３】
（２）図９に示すグレー・バイナリー変換部１７では、バイナリーコードＢ０Ｚ〜Ｂ４Ｚの下位ビットほど論理回路の段数が増大して出力速度が遅くなり、最下位ビットの出力速度により、エンコーダの動作速度が決定されるが、この実施の形態では、上記グレー・バイナリー変換部１７を使用することなく、バイナリーコードＢ０Ｚ〜Ｂ４Ｚを生成することができるので、エンコーダの動作速度を高速化することができる。
【０２１４】
（３）グレー・バイナリー変換部４６は、第一〜第四のエンコード部４１〜４４で生成される分解グレーコード及び分解バイナリーコードのうち、３ビット以内の分解グレーコード及び分解バイナリーコードに基づいて、バイナリーコードＢ０Ｚ〜Ｂ４Ｚを生成することができる。従って、上位のバイナリーコードの生成と並行して下位のバイナリーコードを生成することができるので、エンコーダの動作速度を高速化することができる。
【０２１５】
（４）プリチャージ回路５３でプリチャージされるビット線の振幅は、ＮチャネルＭＯＳトランジスタ２個分のしきい値以下にクランプされるので、ＲＯＭセルによるビット線電位の引き下げ速度を向上させることができる。従って、エンコーダの動作速度を向上させることができる。
【０２１６】
なお、ビット線のクランプレベルは、ダイオード接続するＮチャネルＭＯＳトランジスタの段数を変更することにより調整可能である。また、ＮチャネルＭＯＳトランジスタに換えて、ＰＮジャンクションダイオードを使用してもよい。
【０２１７】
（第三の実施の形態）
この実施の形態は、前記第一の実施の形態のエラー訂正動作をプログラムに基づいて動作するコンピュータを使用して行うようにしたものであり、便宜的に３ビットのバイナリーコードのデジタル信号Ｂ０Ｚ〜Ｂ３Ｚを生成するエンコーダとして説明する。
【０２１８】
図２９は、この実施の形態のエンコーダの概要を示す。エンコード部６１には、サーモメータコードｅ１〜ｅ７が入力される。前記エンコード部６１は、そのサーモメータコードｅ１〜ｅ７に基づいて、３ビットのグレーコードのデジタル信号Ｇ０〜Ｇ２を生成して出力する。前記エンコード部６１は、例えば図４３あるいは図４５に示すエンコーダを３ビット構成としたものであり、サーモメータコードｅ１〜ｅ７に含まれるバブルエラーを訂正する機能を持たない。
【０２１９】
前記エンコード部６１から出力されるグレーコードＧ０〜Ｇ３は、コンピュータにてなる演算処理部６２に入力される。前記演算処理部６２には、処理プログラムを格納したプログラム格納部６３が接続されている。
【０２２０】
そして、演算処理部６２は処理プログラムに基づいて動作して、前記グレーコードＧ０〜Ｇ３の下位ビットを分解する分解グレーコード生成手段と、分解された下位ビットと上位ビットとが特定の関係にあるか否かを判定することにより、生成されたグレーコードにエラーが存在するか否かを検出するエラー検出手段と、検出されたエラーを訂正するエラー訂正手段と、訂正されたグレーコードをバイナリーコードのデジタル信号Ｂ０〜Ｂ２として出力するグレー・バイナリー変換手段として動作する。
【０２２１】
前記演算処理部６２は、プログラム格納部６３に格納されたプログラムに基づいて、以下のような動作のいずれかでエラー訂正動作を行う。
＜第一の動作＞
図３０〜図３２は、前記演算処理部６２の第一の動作を示す。演算処理部６２にエンコード部６１からグレーコードＧ０〜Ｇ２が入力されると、演算処理部６２は最下位のグレーコードＧ０を前記第一の実施の形態と同様な表コードの分解グレーコードｇ０ａ，ｇ０ｂに分解する（ステップ１）。
【０２２２】
プログラム格納部６３には、図３１に示すように、正常なグレーコードＧ０〜Ｇ２のうち、最下位のグレーコードＧ０を分解グレーコードｇ０ａ，ｇ０ｂに分解した場合の各コード及びそのグレーコードに対応するバイナリーコードがあらかじめ格納されている。
【０２２３】
また、図３１において分解グレーコードｇ０ｂが「１」となるときは、グレーコードＧ２は必ず「０」となり、分解グレーコードｇ０ａが「１」となるときは、グレーコードＧ２は必ず「１」となるため、この条件を満足するか否かでエラーの有無が検出可能となる。
【０２２４】
正常なグレーコードＧ０〜Ｇ２が入力されていると、図３２に示す正常時の分解グレーコードｇ０ａ，ｇ０ｂと、グレーコードＧ１，Ｇ２が得られる。
次いで、演算処理部６２は分解グレーコードｇ０ａ，ｇ０ｂと、グレーコードＧ２とに基づいてエラー信号を生成する（ステップ２）。このエラー信号生成処理は、エラー信号Ｅａ，Ｅｂを次式で算出するものである。
【０２２５】
Ｅａ＝ｇ０ａ×Ｇ２バー
Ｅｂ＝ｇ０ｂ×Ｇ２
｛×はＡＮＤ論理を示す｝
すなわち、エラー信号Ｅａは分解グレーコードｇ０ａが「１」のときの同ｇ０ａ，Ｇ２バーのＡＮＤ論理をとった信号であり、エラー信号Ｅｂは分解グレーコードｇ０ｂが「１」のときの同ｇ０ｂ，Ｇ２のＡＮＤ論理をとった信号である。
【０２２６】
そして、各グレーコードが正常であれば、エラー信号Ｅａ，Ｅｂはいずれも「０」となり、エラーが存在すれば、エラー信号Ｅａ，Ｅｂの一方が「１」となる。
次いで、演算処理部６２はエラー信号Ｅａ，Ｅｂの少なくともいずれかが「１」であるか否かによりエラーの有無を判定する（ステップ３）。
【０２２７】
エラー信号Ｅａ，Ｅｂがともに「０」であって、エラー無しと判定すると、演算処理部６２は入力されたグレーコードＧ０〜Ｇ２を訂正グレーコードｇ０Ｚ〜ｇ２Ｚとする（ステップ４）。
【０２２８】
次いで、演算処理部６２は訂正グレーコードｇ０Ｚ〜ｇ２Ｚにグレー・バイナリー変換を施し、訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚを生成して（ステップ５）、エラー訂正動作を終了する。このグレー・バイナリー変換は、第一の実施の形態において図９に示す論理回路で行った論理処理を演算処理部６２で行う。
【０２２９】
一方、ステップ３においてエラー信号Ｅａ，Ｅｂの少なくともいずれかが「１」となって、エラー有りと判定されると、演算処理部６２はエラービットの訂正を行う（ステップ６）。
【０２３０】
この訂正動作は、図３２に示すようにエラー信号Ｅａ，Ｅｂが「１」となったグレーコードｇ０ａ，ｇ０ｂ，Ｇ２に次式で示す処理を施して、訂正グレーコードｇ０Ｚ，ｇ２Ｚを生成する。
【０２３１】
ｇ２Ｚ＝（Ｅａ＋Ｅｂ）＠Ｇ２
ｇ０Ｚ＝（Ｅａ＋Ｅｂ）＠（ｇ０ａ＋ｇ０ｂ）
｛＋はＯＲ論理、＠はＥＯＲ論理を示す｝
すなわち、エラー信号Ｅａ，Ｅｂの少なくともいずれかが「１」であれば、Ｇ２が反転されてｇ２Ｚが生成されるとともに、「１」となったｇ０ａ若しくはｇ０ｂが反転されてｇ０Ｚが生成される。言い換えれば、エラーとなった各ビットの双方が反転されて、訂正グレーコードｇ０Ｚ，ｇ２Ｚが生成される。
【０２３２】
次いで、グレーコードＧ１はそのまま訂正グレーコードｇ１Ｚとされて、訂正グレーコードｇ０Ｚ〜ｇ２Ｚが生成され、グレー・バイナリー変換が行われて、訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚが生成される（ステップ４，５）。
【０２３３】
このような動作により、図３２に示すように訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚは、未訂正グレーコードＧ０〜Ｇ２に基づいて生成される未訂正バイナリーコードＢ０〜Ｂ２に比して、より確からしい値となる。
【０２３４】
＜第二の動作＞
図３３〜図３５は、前記演算処理部６２の第二の動作を示す。演算処理部６２にエンコード部６１からグレーコードＧ０〜Ｇ２が入力されると、演算処理部６２は最下位のグレーコードＧ０を前記第一の実施の形態と同様な裏コードの分解グレーコードｇ０Ｘａ，ｇ０Ｘｂに分解する（ステップ１１）。
【０２３５】
プログラム格納部６３には、図３４に示すように、正常なグレーコードＧ０〜Ｇ２のうち、最下位のグレーコードＧ０を分解グレーコードｇ０Ｘａ，ｇ０Ｘｂに分解した場合の各コード及びそのグレーコードに対応するバイナリーコードがあらかじめ格納されている。
【０２３６】
また、図３４において分解グレーコードｇ０Ｘａが「１」となるときは、グレーコードＧ１は必ず「０」となり、分解グレーコードｇ０Ｘｂが「１」となるときは、グレーコードＧ１は必ず「１」となるため、この条件を満足するか否かでエラーの有無が検出可能となる。
【０２３７】
正常なグレーコードＧ０〜Ｇ２が入力されていると、図３５に示す正常時の分解グレーコードｇ０Ｘａ，ｇ０Ｘｂと、グレーコードＧ１，Ｇ２が得られる。
次いで、演算処理部６２は分解グレーコードｇ０Ｘａ，ｇ０ＸｂとグレーコードＧ１とに基づいてエラー信号の生成処理を行う（ステップ１２）。このエラー信号生成処理は、エラー信号ＥＸａ，ＥＸｂを次式で算出するものである。
【０２３８】
ＥＸａ＝ｇ０Ｘａ×Ｇ１
ＥＸｂ＝ｇ０Ｘｂ×Ｇ１バー
｛×はＡＮＤ論理を示す｝
すなわち、エラー信号ＥＸａは分解グレーコードｇ０Ｘａが「１」のときの同ｇ０Ｘａ，Ｇ１のＡＮＤ論理をとった信号であり、エラー信号ＥＸｂは分解グレーコードｇ０Ｘｂが「１」のときの同ｇ０Ｘｂ，Ｇ１バーのＡＮＤ論理をとった信号である。
【０２３９】
そして、各グレーコードが正常であれば、エラー信号ＥＸａ，ＥＸｂはいずれも「０」となり、エラーが存在すれば、エラー信号ＥＸａ，ＥＸｂの一方が「１」となる。
次いで、演算処理部６２はエラー信号ＥＸａ，ＥＸｂの少なくともいずれかが「１」であるか否かによりエラーの有無を判定する（ステップ１３）。
【０２４０】
エラー信号ＥＸａ，ＥＸｂがともに「０」であって、エラー無しと判定すると、演算処理部６２は入力されたグレーコードＧ０〜Ｇ２を訂正グレーコードｇ０Ｚ〜ｇ２Ｚとする（ステップ１４）。
【０２４１】
次いで、演算処理部６２は訂正グレーコードｇ０Ｚ〜ｇ２Ｚにグレー・バイナリー変換を施し、訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚを生成して（ステップ１５）、エラー訂正動作を終了する。
【０２４２】
一方、ステップ１３においてエラー信号ＥＸａ，ＥＸｂの少なくともいずれかが「１」となって、エラー有りと判定されると、演算処理部６２はエラービットの訂正を行う（ステップ１６）。
【０２４３】
この訂正動作は、図３５に示すようにエラー信号ＥＸａ，ＥＸｂが「１」となったグレーコードｇ０Ｘａ，ｇ０Ｘｂ，Ｇ１に次式で示す処理を施して、訂正グレーコードｇ０Ｚ，ｇ１Ｚを生成する。
【０２４４】
ｇ１Ｚ＝（ＥＸａ＋ＥＸｂ）＠Ｇ１
ｇ０Ｚ＝［（ＥＸａ＋ＥＸｂ）＠（ｇ０Ｘａ＋ｇ０Ｘｂ）］バー
｛＋はＯＲ論理、＠はＥＯＲ論理、バーは反転論理を示す｝
すなわち、エラー信号ＥＸａ，ＥＸｂの少なくともいずれかが「１」であれば、Ｇ１が反転されてｇ１Ｚが生成されるとともに、「１」となったｇ０Ｘａ若しくはｇ０Ｘｂが反転されてｇ０Ｚが生成される。言い換えれば、エラーとなった各ビットの双方が反転されて、訂正グレーコードｇ０Ｚ，ｇ１Ｚが生成される。
【０２４５】
次いで、グレーコードＧ２はそのまま訂正グレーコードｇ２Ｚとされて、訂正グレーコードｇ０Ｚ〜ｇ２Ｚが生成され、グレー・バイナリー変換が行われて、訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚが生成される（ステップ１４，１５）。
【０２４６】
このような動作により、図３５に示すように、訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚは、未訂正グレーコードＧ０〜Ｇ２に基づいて生成される未訂正バイナリーコードＢ０〜Ｂ２に比して、より確からしい値となる。
【０２４７】
＜第三の動作＞
図３６〜図３８は、前記演算処理部６２の第三の動作を示す。演算処理部６２にエンコード部６１からグレーコードＧ０〜Ｇ２が入力されると、演算処理部６２は最下位のグレーコードＧ０を前記第一の実施の形態と同様な表コード及び裏コードの分解グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂに分解する（ステップ２１）。
【０２４８】
プログラム格納部６３には、図３７に示すように、正常なグレーコードＧ０〜Ｇ２のうち、最下位のグレーコードＧ０を分解グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂに分解した場合の各コード及びそのグレーコードに対応するバイナリーコードがあらかじめ格納されている。
【０２４９】
また、図３７において分解グレーコードｇ０ｂが「１」となるときは、グレーコードＧ２は必ず「０」となり、分解グレーコードｇ０ａが「１」となるときは、グレーコードＧ２は必ず「１」となり、分解グレーコードｇ０Ｘａが「１」となるときは、グレーコードＧ１は必ず「０」となり、分解グレーコードｇ０Ｘｂが「１」となるときは、グレーコードＧ１は必ず「１」となるため、この条件を満足するか否かでエラーの有無が検出可能となる。
【０２５０】
正常なグレーコードＧ０〜Ｇ２が入力されていると、図３８に示す正常時の分解グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂと、グレーコードＧ１，Ｇ２が得られる。
次いで、演算処理部６２は分解グレーコードｇ０Ｘａ，ｇ０Ｘｂ、グレーコードＧ１，Ｇ２に基づいてエラー信号を生成する（ステップ２２）。このエラー信号生成処理は、エラー信号Ｅｒ，ＥｒＸを次式で算出するものである。
【０２５１】
Ｅｒ＝（ｇ０ａ×Ｇ２バー）＋（ｇ０ｂ×Ｇ２＝１）
ＥｒＸ＝（ｇ０Ｘａ×Ｇ１）＋（ｇ０Ｘｂ×Ｇ１バー）
｛×はＡＮＤ論理、＋はＯＲ論理、バーは反転論理を示す｝
各グレーコードが正常であれば、エラー信号Ｅｒ，ＥｒＸはいずれも「０」となり、エラーが存在すれば、エラー信号Ｅｒ，ＥｒＸの一方が「１」となる。
【０２５２】
次いで、演算処理部６２はエラー信号Ｅｒ，ＥｒＸの少なくともいずれかが「１」であるか否かによりエラーの有無を判定する（ステップ２３）。
エラー信号Ｅｒ，ＥｒＸがともに「０」であって、エラー無しと判定すると、演算処理部６２は入力されたグレーコードＧ０〜Ｇ２を訂正グレーコードｇ０Ｚ〜ｇ２Ｚとする（ステップ１４）。
【０２５３】
次いで、演算処理部６２は訂正グレーコードｇ０Ｚ〜ｇ２Ｚにグレー・バイナリー変換を施し、訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚを生成して（ステップ２５）、エラー訂正動作を終了する。
【０２５４】
一方、ステップ２３においてエラー信号Ｅｒ，ＥｒＸの少なくともいずれかが「１」となって、エラー有りと判定されると、演算処理部６２はエラービットの訂正を行う（ステップ２６）。
【０２５５】
この訂正動作は、図３８に示すようにエラー信号Ｅｒ，ＥｒＸが「１」となった分解グレーコードｇ０ａ，ｇ０ｂ，ｇ０Ｘａ，ｇ０Ｘｂと、グレーコードＧ１，Ｇ２に次式で示す処理を施して、訂正グレーコードｇ０Ｚ〜ｇ２Ｚを生成する。
【０２５６】
ｇ２Ｚ＝（Ｅｒ＠Ｇ２）バー
ｇ１Ｚ＝（ＥｒＸ＠Ｇ１）バー
ｇ０Ｚ＝（Ｅｒ＋ＥｒＸ）＠（ｇ０ａ＋ｇ０ｂ）
｛＋はＯＲ論理、＠はＥＯＲ論理、バーは反転論理を示す｝
すなわち、エラーとなった各ビットの双方が反転されて、訂正グレーコードｇ０Ｚ〜ｇ２Ｚが生成される。
【０２５７】
次いで、訂正グレーコードｇ０Ｚ〜ｇ２Ｚにグレー・バイナリー変換が施されて、訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚが生成される（ステップ２４，２５）。
このような動作により、図３８に示すように、訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚは、未訂正グレーコードＧ０〜Ｇ２に基づいて生成される未訂正バイナリーコードＢ０〜Ｂ２に比して、より確からしい値となり、前記第一及び第二の動作に基づく訂正バイナリーコードＢ０Ｚ〜Ｂ２Ｚに比して、より確からしい値となる。
【０２５８】
以上のように動作するエンコーダでは、入力されるサーモメータコードに含まれるバブルエラーを訂正したバイナリーコードを、プログラム格納部６３に格納されたプログラムに基づいて動作する演算処理部６２で高速に生成することができる。
【図面の簡単な説明】
【０２５９】
【図１】本発明の原理説明図である。
【図２】第一の実施の形態を示すブロック図である。
【図３】第一のエンコード部を示す回路図である。
【図４】第二のエンコード部を示す回路図である。
【図５】第三のエンコード部を示す回路図である。
【図６】第四のエンコード部を示す回路図である。
【図７】エラー信号生成部を示す回路図である。
【図８】エラー訂正部を示す回路図である。
【図９】グレー・バイナリー変換部を示す回路図である。
【図１０】論理境界検出回路を示す回路図である。
【図１１】ＲＯＭセルを示す回路図である。
【図１２】プリチャージ回路を示す回路図である。
【図１３】図１２のプリチャージ回路の動作を示す波形図である。
【図１４】プリチャージ回路を示す回路図である。
【図１５】図１４のプリチャージ回路の動作を示す波形図である。
【図１６】プリチャージ回路を示す回路図である。
【図１７】第一の実施の形態の動作（バブルエラー無し）を示す波形図である。
【図１８】ｂ１タイプのバブルエラーが入力された場合の動作を示す波形図である。
【図１９】ｂ２Ｈタイプのバブルエラーが入力された場合の動作を示す波形図である。
【図２０】ｂ２Ｌタイプのバブルエラーが入力された場合の動作を示す波形図である。
【図２１】第二の実施の形態を示すブロック図である。
【図２２】グレー・バイナリー変換部を示す回路図である。
【図２３】第四のエンコード部を示す回路図である。
【図２４】第二の実施の形態の動作（バブルエラー無し）を示す波形図である。
【図２５】ｂ１タイプのバブルエラーが入力された場合の動作を示す波形図である。
【図２６】ｂ２Ｈタイプのバブルエラーが入力された場合の動作を示す波形図である。
【図２７】ｂ２Ｌタイプのバブルエラーが入力された場合の動作を示す波形図である。
【図２８】プリチャージ回路を示す回路図である。
【図２９】第三の実施の形態のエンコーダを示すブロック図である。
【図３０】第三の実施の形態の第一の動作を示すフローチャート図である。
【図３１】第一の動作の分解グレーコードを示す説明図である。
【図３２】第一の動作の過程で生成されるコードを示す説明図である。
【図３３】第三の実施の形態の第二の動作を示すフローチャート図である。
【図３４】第二の動作の分解グレーコードを示す説明図である。
【図３５】第二の動作の過程で生成されるコードを示す説明図である。
【図３６】第三の実施の形態の第三の動作を示すフローチャート図である。
【図３７】第三の動作の分解グレーコードを示す説明図である。
【図３８】第三の動作の過程で生成されるコードを示す説明図である。
【図３９】従来例を示す回路図である。
【図４０】ＲＯＭセルを示す回路図である。
【図４１】エンコード部内のＲＯＭセルの接続を示す説明図である。
【図４２】従来例を示す回路図である。
【図４３】従来例を示す回路図である。
【図４４】エンコード部内のＲＯＭセルの接続を示す説明図である。
【図４５】グレーコードを出力するエンコーダを示す回路図である。
【図４６】図４５の論理境界検出回路及びＲＯＭセルを示す回路図である。
【図４７】グレーコードとバイナリーコードの関係を示す説明図である。
【図４８】ｂ１タイプのバブルエラーを含むサーモメータコードをエンコードした場合のグレーコードとバイナリーコードの関係を示す説明図である。
【図４９】エラーを訂正した場合のグレーコードとバイナリーコードの関係を示す説明図である。
【図５０】ｂ１タイプのバブルエラーを含むサーモメータコードをグレーコード方式でエンコードした場合の入出力値を示す説明図である。
【図５１】ｂ２Ｈタイプのバブルエラーを含むサーモメータコードをグレーコード方式でエンコードした場合の入出力値を示す説明図である。
【図５２】ｂ２Ｌタイプのバブルエラーを含むサーモメータコードをグレーコード方式でエンコードした場合の入出力値を示す説明図である。
【図５３】ｂ１タイプのバブルエラーを含むサーモメータコードをグレーコードの表コードのみで訂正した場合の入出力値を示す説明図である。
【図５４】ｂ１タイプのバブルエラーを含むサーモメータコードをグレーコードの表コード及び裏コードを使用して訂正した場合の入出力値を示す説明図である。
【符号の説明】
【０２６０】
４１〜４４  エンコード部
４５  エラー信号生成部（エラー検出部）
４６  グレー・バイナリー変換部（エラー訂正部）
ｅ１〜ｅ３１    サーモメータコード
Ｇ０〜Ｇ３      グレーコード
Ｂ０Ｚ〜Ｂ４Ｚ  バイナリーコード
【図１】
0004188965.tif 000002
【図２】
0004188965.tif 000003
【図３】
0004188965.tif 000004
【図４】
0004188965.tif 000005
【図５】
0004188965.tif 000006
【図６】
0004188965.tif 000007
【図７】
0004188965.tif 000008
【図８】
0004188965.tif 000009
【図９】
0004188965.tif 000010
【図１０】
0004188965.tif 000011
【図１１】
0004188965.tif 000012
【図１２】
0004188965.tif 000013
【図１３】
0004188965.tif 000014
【図１４】
0004188965.tif 000015
【図１５】
0004188965.tif 000016
【図１６】
0004188965.tif 000017
【図１７】
0004188965.tif 000018
【図１８】
0004188965.tif 000019
【図１９】
0004188965.tif 000020
【図２０】
0004188965.tif 000021
【図２１】
0004188965.tif 000022
【図２２】
0004188965.tif 000023
【図２３】
0004188965.tif 000024
【図２４】
0004188965.tif 000025
【図２５】
0004188965.tif 000026
【図２６】
0004188965.tif 000027
【図２７】
0004188965.tif 000028
【図２８】
0004188965.tif 000029
【図２９】
0004188965.tif 000030
【図３０】
0004188965.tif 000031
【図３１】
0004188965.tif 000032
【図３２】
0004188965.tif 000033
【図３３】
0004188965.tif 000034
【図３４】
0004188965.tif 000035
【図３５】
0004188965.tif 000036
【図３６】
0004188965.tif 000037
【図３７】
0004188965.tif 000038
【図３８】
0004188965.tif 000039
【図３９】
0004188965.tif 000040
【図４０】
0004188965.tif 000041
【図４１】
0004188965.tif 000042
【図４２】
0004188965.tif 000043
【図４３】
0004188965.tif 000044
【図４４】
0004188965.tif 000045
【図４５】
0004188965.tif 000046
【図４６】
0004188965.tif 000047
【図４７】
0004188965.tif 000048
【図４８】
0004188965.tif 000049
【図４９】
0004188965.tif 000050
【図５０】
0004188965.tif 000051
【図５１】
0004188965.tif 000052
【図５２】
0004188965.tif 000053
【図５３】
0004188965.tif 000054
【図５４】
0004188965.tif 000055