以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与し、重複する説明は適宜省略する。
[第1の実施形態]
図1は、本発明の実施形態に係る半導体装置1の回路構成を示す図である。半導体装置1は、一例として5ビットの分解能を有する並列比較型のAD変換回路を構成する。すなわち半導体装置1は、入力アナログ電圧VAINの大きさに応じた5ビットのバイナリ―コード(D0、D1、D2、D3、D4)を出力する。半導体装置1は、基準電圧生成部10、比較部20、バブルエラー訂正部30、論理境界検出部40およびエンコード部50を含んで構成されている。
基準電圧生成部10は、直列接続された32個の抵抗素子R1〜R32を含んで構成されている。本実施形態において、抵抗素子R1およびR32の抵抗値がr/2とされ、抵抗素子R16およびR17の抵抗値はr/3とされ、これら以外の抵抗素子R2〜R15、R18〜R31の抵抗値がrとされている。基準電圧生成部10は、抵抗素子R1の一端に印加される低電位側の電圧VRLと抵抗素子R32の一端に印加される高電位側の電圧VRHの差分を各抵抗素子の抵抗値に応じた分圧比で分圧し、互いに隣接する抵抗素子の各接続点から基準電圧V1〜V31を出力する。
本実施形態においては、一例として、抵抗素子R1と抵抗素子R2との接続点から出力される電圧が、最も電圧レベルの低い基準電圧V1となり、抵抗素子R31と抵抗素子R32との接続点から出力される電圧が、最も電圧レベルの高い基準電圧V31となるように、電圧VRLおよび電圧VRHに、それぞれ、電源電圧Vccの30%、電源電圧Vccの70%の基準電圧が供給されている。また、抵抗素子R16と抵抗素子R17との接続点から出力される基準電圧V16は、電源電圧Vccの50%となる。また、上記したように、抵抗素子R16およびR17の抵抗値(r/3)は、他の抵抗素子R2〜R15およびR18〜R31の抵抗値(r)よりも小さいことから、基準電圧V15とV16との差分および基準電圧V16とV17との差分は、互いに隣接する他の基準電圧間の差分よりも小さくなっている。すなわち、基準電圧生成部10は、互いに隣接する基準電圧間の差分が相対的に大きい領域および相対的に小さい領域を含むように複数の基準電圧を生成する。なお、抵抗素子R1〜R32における抵抗比は、上記したものに限定されず適宜変更することが可能である。また、電圧VRLおよび電圧VRHにそれぞれ供給する基準電圧値も適宜変更することが可能である。
比較部20は、基準電圧生成部10から出力される基準電圧V1〜V31に対応する31個のコンパレータC1〜C31を含んで構成されている。コンパレータC1〜C31は、それぞれ、基準電圧生成部10から出力される基準電圧V1〜V31のうち、対応する基準電圧が一方の入力端に入力され、入力アナログ電圧VAINが他方の入力端に入力される。コンパレータC1〜C31は、それぞれ、基準電圧V1〜V31のち、自身に対応する基準電圧の大きさと入力アナログ電圧VAINの大きさとを比較し、比較結果を比較信号E1〜E31として出力する。例えば、コンパレータC3は、入力アナログ電圧VAINと基準電圧V3とを比較し、入力アナログ電圧VAINが基準電圧V3よりも大きい場合には、論理値“1”の比較信号E3を出力し、入力アナログ電圧VAINが基準電圧V3よりも小さい場合には、論理値“0”の比較信号E3を出力する。コンパレータC1〜C31からそれぞれ出力される比較信号E1〜E31によってサーモメータコードが構成される。
また、本実施形態において、入力アナログ電圧VAINと基準電圧V16とを比較するコンパレータC16は、他のコンパレータC1〜C15およびC17〜C31よりも高い感度を有する高感度コンパレータとされている。ここで、コンパレータが高感度であるとは、基準電圧と入力アナログ電圧VAINとの差分がより小さい場合でも、両者の大小関係の比較結果を出力可能であることを意味する。例えば、コンパレータC16以外の通常感度のコンパレータは、基準電圧と入力アナログ電圧VAINとの差分が数十mVである場合に、比較結果を出力可能であるのに対して、高感度のコンパレータC16は、基準電圧と入力アナログ電圧VAINとの差分が数mVであっても、比較結果を出力可能である。高感度コンパレータは、通常感度のコンパレータと比較してトランジスタ数が多く、複数段の差動増幅回を含んで構成されている。
バブルエラー訂正部30は、比較部20から供給される比較信号E1〜E31によって構成されるサーモメータコードに生ずるバブルエラーを訂正し、訂正後の信号G1〜G31を論理境界検出部40に供給する。バブルエラー訂正部30の詳細な構成については後述する。
論理境界検出部40は、バブルエラー訂正部30から供給される信号G1〜G31によって構成される訂正済みのサーモメータコードの論理境界(“1”と“0”の境界)を検出する。論理境界検出部40は、サーモメータコードの互いに隣接する2ビット間の値を比較し、サーモメータコードの論理境界に対応するビットを例えば“1”として出力し、それ以外のビットは“0”として出力する。論理境界検出部40は、例えば、サーモメータコード「・・1111000・・」に対して「・・0001000・・」を出力する。
エンコード部50は、論理境界検出部40の出力信号に基づいて、サーモメータコードをバイナリコードに変換した5ビットの出力信号(D0、D1、D2、D3)を出力する。なお、バブルエラー訂正部30、論理境界検出部40およびエンコード部50は、それぞれ、接地電圧Vssが供給される接地ラインおよび電源電圧Vccが供給される電源ラインに接続されており、電源電圧Vccを駆動電圧として動作する。
図2〜図5は、第1の実施形態に係るバブルエラー訂正部30の等価回路図である。バブルエラー訂正部30は、比較部20を構成する各コンパレータC1〜C31に対応してそれぞれ設けられた、2入力のOR(論理和演算)回路H1〜H31、2入力のAND(論理積演算)回路J1〜J31、および4入力のOR回路K1〜K31を含んで構成されている。
AND回路J1〜J31の一方の入力端には、自身に対応するコンパレータC1〜C31の出力端がそれぞれ接続されており、対応する比較信号E1〜E31がそれぞれ入力される。AND回路J1〜J31の他方の入力端には、自身に対応するOR回路H1〜H31の出力端がそれぞれ接続されており、対応するOR回路の出力信号がそれぞれ入力される。例えば、AND回路J3の一方の入力端には、自身に対応するコンパレータC3から出力される比較信号E3が入力され、AND回路J3の他方の入力端には、自身に対応するOR回路H3の出力信号が入力される。
OR回路H3〜H31の一方の入力端には、自身に対応するコンパレータC3〜C31に対して1ステップ下位に配置されたコンパレータの出力端がそれぞれ接続され、当該1ステップ下位に配置されたコンパレータから出力される比較信号がそれぞれ入力される。OR回路H3〜H31の他方の入力端には、自身に対応するコンパレータC3〜C31に対して2ステップ下位に配置されたコンパレータの出力端がそれぞれ接続され、当該2ステップ下位に配置されたコンパレータから出力される比較信号がそれぞれ入力される。例えば、OR回路H3の一方の入力端には、自身に対応するコンパレータC3に対して1ステップ下位に配置されたコンパレータC2から出力される比較信号E2が入力され、OR回路H3の他方の入力端には、自身に対応するコンパレータC3に対して2ステップ下位に配置されたコンパレータC1から出力される比較信号E1が入力される。なお、「下位に配置されたコンパレータ」とは、より電圧レベルの低い基準電圧が入力されるコンパレータを意味する。
OR回路H2においては、一方の入力端に自身に対応するコンパレータC2に対して1ステップ下位に配置されたコンパレータC1から出力される比較信号E1が入力され、他方の入力端に電源電圧Vcc(論理レベル“1”)が入力される。OR回路H1においては、両方の入力端に電源電圧Vcc(論理レベル“1”)が入力される。
本実施形態に係るバブルエラー訂正部30においては、図4に示すように、OR回路H17の2つ入力端の双方が、1ステップ下位に配置されたコンパレータC16の出力端に接続されており、例外的な接続となっている。なお、OR回路H17を削除して、AND回路J17の一方の入力端に比較信号E17を入力し、AND回路J17の他方の入力端に比較信号E16を直接入力する構成としてもよい。
OR回路K1〜K28の1つの入力端には、自身に対応するAND回路J1〜J28の出力端がそれぞれ接続されており、自身に対応するAND回路から出力される出力信号F1〜F28がそれぞれ入力される。OR回路K1〜K28の他の3つの入力端には、自身に対応するAND回路J1〜J28に対して1ステップ〜3ステップ上位にそれぞれ配置された各AND回路の出力端がそれぞれ接続され、当該上位に配置された3つのAND回路の各々から出力される出力信号がそれぞれ入力される。例えば、OR回路K3の1つの入力端には、自身に対応するAND回路J3から出力される出力信号F3が入力され、他の3つの入力端には、自身に対応するAND回路J3に対して1ステップ〜3ステップ上位にそれぞれ配置されたAND回路J4、J5およびJ6からそれぞれ出力される出力信号F4、F5およびF6がそれぞれ入力される。
OR回路K29の1つの入力端には、自身に対応するAND回路J29から出力される出力信号F29が入力され、他の2つの入力端には、自身に対応するAND回路J29に対して上位側に配置されたAND回路J30およびJ31からそれぞれ出力される出力信号F30およびF31がそれぞれ入力され、残りの1つの入力端には、接地電圧Vss(論理レベル“0”)が入力される。
OR回路K30の1つの入力端には、自身に対応するAND回路J30から出力される出力信号F30が入力され、他の1つの入力端には自身に対応するAND回路J30に対して上位側に配置されたAND回路J31から出力される出力信号F31が入力され、残りの2つの入力端には、接地電圧Vss(論理レベル“0”)がそれぞれ入力される。
OR回路K31の1つの入力端には、自身に対応するAND回路J31から出力される出力信号F31が入力され、他の3つの入力端には接地電圧Vss(論理レベル“0”)がそれぞれ入力される。
なお、「上位に配置されたAND回路」とは、より電圧レベルの高い基準電圧が入力されるコンパレータからの比較信号が入力されるAND回路を意味する。
以下に、バブルエラー訂正部30の機能および動作について説明する。コンパレータC1〜C31からそれぞれ出力される比較信号E1〜E31に生じたエラーは、それぞれ、対応するOR回路H1〜H31および対応するAND回路J1〜J31を含んで構成される第1の訂正部31で訂正され、訂正の結果が、AND回路J1〜J31の出力信号F1〜F31として出力される。以降、AND回路J1〜J31の出力信号F1〜F31を第1の訂正信号F1〜F31と称する。
第1の訂正信号F1〜F31は、それぞれ、対応する後段のOR回路K1〜K31を含んで構成される第2の訂正部32で更に訂正され、訂正の結果が、OR回路K1〜K31の出力信号G1〜G31として出力される。以降、OR回路K1〜K31の出力信号G1〜G31を第2の訂正信号G1〜G31と称する。第2の訂正信号G1〜G31は、訂正済みのサーモメータコードとして論理境界検出部40に供給される。例えば、コンパレータC3から出力される比較信号E3に生じたエラーは、OR回路H3およびAND回路J3を含んで構成される第1の訂正部31で訂正され、第1の訂正信号F3が生成される。第1の訂正信号F3は、OR回路K3を含んで構成される第2の訂正部32で更に訂正され、第2の訂正信号G3が生成される。
本実施形態に係る第1の訂正部31は、比較信号E1〜E31に生じたエラーを、当該比較信号に対して1ステップ下位の比較信号および2ステップ下位の比較信号を用いて訂正する。より具体的には、第1の訂正部31は、訂正対象の比較信号の値が“1”である場合、当該訂正対象の比較信号に対して1ステップ下位の比較信号および2ステップ下位の比較信号の双方の値が“0”である場合には、当該訂正対象の比較信号の値を“0”に訂正する。第1の訂正部31は、上記以外の場合には、訂正対象の比較信号の値を訂正しない。例えば、比較信号E3についてエラー訂正を行う第1の訂正部31は、訂正対象の比較信号E3の値が“1”である場合、当該訂正対象の比較信号E3に対して1ステップ下位の比較信号E2および2ステップ下位の比較信号E1の双方の値が“0”である場合には、当該訂正対象の比較信号E3の値を“1”から“0”に訂正する。なお、「下位の比較信号」とは、より電圧レベルの低い基準電圧が入力されるコンパレータから出力される比較信号を意味する。
本実施形態において、比較信号E17の訂正に関しては、例外的となる。図4に示すように、比較信号E17についてエラー訂正を行う第1の訂正部31を構成するOR回路H17の2つの入力端はいずれもコンパレータC16の出力端に接続されている。かかる構成によれば、比較信号E17の値が“1”であっても比較信号E16の値が“0”である場合には、比較信号E17の値は“0”に訂正される。すなわち、比較信号E16が、比較信号E17に対して優先される。上記したように、本実施形態において、コンパレータC16は、他のコンパレータよりも高感度な高感度コンパレータであり、エラーが発生する確率は相対的に低く、比較信号E16の信憑性は相対的に高いと考えられる。従って、比較信号E16を比較信号E17に対して優先させることで、エラー訂正において、相対的に信憑性の高い比較信号E16の寄与の程度を大きくすることができ、より正しい訂正を行うことが可能となる。
本実施形態に係る第2の訂正部32は、訂正対象の第1の訂正信号を、当該第1の訂正信号に対して1ステップ〜3ステップ上位の第1の訂正信号の各々を用いて訂正する。より具体的には、第2の訂正部32は、訂正対象の第1の訂正信号の値が“0”である場合、当該訂正対象の第1の訂正信号に対して1ステップ〜3ステップ上位の第1の訂正信号の少なくとも1つの値が“1”である場合には、当該訂正対象の第1の訂正信号の値を“0”から“1”に訂正する。例えば、第1の訂正信号F3についてエラー訂正を行う第2の訂正部32は、訂正対象の第1の訂正信号F3の値が“0”である場合、訂正対象の第1の訂正信号F3に対して1ステップ〜3ステップ上位の第1の訂正信号F4〜F6の少なくとも1つの値が“1”である場合には、訂正対象の第1の訂正信号F3の論理値を“1”に訂正する。なお、「上位の第1の訂正信号」とは、より電圧レベルの高い基準電圧が入力されるコンパレータから出力される比較信号についての第1の訂正信号を意味する。
以下に、本実施形態に係るバブルエラー訂正部30の機能および動作を、図6〜図8に示す具体的なケースを例示して説明する。
図6(a)は、コンパレータC1〜C8およびC10から出力される比較信号E1〜E8およびE10の値が“1”、コンパレータC11〜C31から出力される比較信号E11〜E31の値が“0”であり、コンパレータC9から出力される比較信号E9の値がエラーによって“0”となった場合における各ノードの信号値を示す図である。図6(a)においてEノードは、コンパレータC1〜C31の出力端のノードであり、Fノードは、AND回路J1〜J31の出力端のノード(第1の訂正部31の出力ノード)であり、GノードはOR回路K1〜K31の出力端のノード(第2の訂正部32の出力ノード)である(図7(a)および図8(a)において同じ)。
比較信号E9の値は“0”であるので、OR回路H9およびAND回路J9を含んで構成される第1の訂正部31は、比較信号E9よりも下位の比較信号によって比較信号E9の値を訂正しない。従って、Fノードに出力される第1の訂正信号F9の値は“0”となる。一方、比較信号E10に対して2ステップ下位の比較信号E8の値は“1”であるので、OR回路H10およびAND回路J10を含んで構成される第1の訂正部31は、比較信号E10の値を訂正しない。従って、Fノードに出力される第1の訂正信号F10の値は“1”となる。
第1の訂正信号F9に対して1ステップ上位の第1の訂正信号F10の値が“1”であるため、OR回路K9を含んで構成される第2の訂正部32は、第1の訂正信号F9の値を“0”から“1”に訂正し、これを第2の訂正信号G9としてGノードに出力する。第1の訂正信号F10の値が“1”であるため、OR回路K10を含んで構成される第2の訂正部32は、第1の訂正信号F10よりも上位の第1の訂正信号によって第1の訂正信号F10を訂正せずに、これを第2の訂正信号G10としてGノードに出力する。以上の訂正処理によってエラーが生じた比較信号E9の値が“0”から“1”に訂正され、Gノードにおいて、論理境界が1つのみのサーモメータコードが出力される。
なお、図6(a)のケースは、コンパレータC9から出力される比較信号E9にエラーが生じているケースとして説明したが、比較信号E9にはエラーが生じておらず、コンパレータC10から出力される比較信号E10にエラーが生じているケースであるとも考えられる。本実施形態に係るバブルエラー訂正部30においては、両ケースについて、全く同じ結果を出力することとなる。すなわち、本実施形態に係るバブルエラー訂正部30は、サーモメータコードに生じるバブルエラーによってエンコード後の値が、真値から大きく乖離してしまうことを防止するものであり、真値を出力することを保証するものではない。
図6(b)は、上記のようにしてエラー訂正されたサーモメータコードをエンコード部50でエンコードした結果である。図6(b)に示すように、エンコードによって得られるバイナリコードは、2進数表現で“01010”となり、10進数表現で“10”となる。図6(a)に示すケースにおいては、真値は、10進数表現で“8”“9”“10”のいずれかであると考えられる。このように、本実施形態に係るバブルエラー訂正部30によれば、真値からの乖離を抑制するようにバブルエラーが訂正される。
図7(a)は、コンパレータC1〜C7から出力される比較信号E1〜E7の値が“1”、コンパレータC8、C9、C11〜C31から出力される比較信号E8、E9、E11〜E31の値が“0”であり、コンパレータC10から出力される比較信号E10の値がエラーによって“1”となった場合における各ノードの信号値を示す図である。すなわち、図7(a)は、サーモメータコードの“1”と“1”との間に2つ以上の“0”が存在するバブルエラー(すなわち、複数のビットに亘る「バブル」を有するバブルエラー)が生じたケースである。
比較信号E8の値は“0”であるので、OR回路H8およびAND回路J8を含んで構成される第1の訂正部31は、比較信号E8よりも下位の比較信号によって比較信号E8の値を訂正しない。従って、Fノードに出力される第1の訂正信号F8の値は“0”となる。同様に、比較信号E9の値は“0”であるので、OR回路H9およびAND回路J9を含んで構成される第1の訂正部31は、比較信号E9よりも下位の比較信号によって比較信号E9の値を訂正しない。従って、Fノードに出力される第1の訂正信号F9の値は“0”となる。比較信号E10に対して1ステップ下位の比較信号E9および2ステップ下位の比較信号E8の値は、それぞれ“0”であるので、OR回路H10およびAND回路J10を含んで構成される第1の訂正部31は、比較信号E10の値を“1”から“0”に訂正する。
第1の訂正信号F8に対して1ステップ〜3ステップ上位の第1の訂正信号F9、F10およびF11の値は、それぞれ“0”であるため、OR回路K8を含んで構成される第2の訂正部32は、第1の訂正信号F8の値“0”を訂正せず、これを第2の訂正信号G8としてGノードに出力する。同様に、第1の訂正信号F9に対して1ステップ〜3ステップ上位の第1の訂正信号F10、F11およびF12の値はそれぞれ“0”であるため、OR回路K9を含んで構成される第2の訂正部32は、第1の訂正信号F9の値“0”を訂正せず、これを第2の訂正信号G9としてGノードに出力する。同様に、第1の訂正信号F10に対して1ステップ〜3ステップ上位の第1の訂正信号F11、F12およびF13の値はそれぞれ“0”であるため、OR回路K10を含んで構成される第2の訂正部32は、第1の訂正信号F10の値“0”を訂正せず、これを第2の訂正信号G10としてGノードに出力する。以上の訂正処理によってエラーが生じた比較信号E10の値が“1”から“0”に訂正され、Gノードにおいて、論理境界が1つのみのサーモメータコードが出力される。
なお、図7(a)のケースは、コンパレータC10から出力される比較信号E10にエラーが生じているケースとして説明したが、比較信号E10にはエラーが生じておらず、コンパレータC8およびC9からそれぞれ出力される比較信号E8およびE9にエラーが生じているケースであるとも考えられる。本実施形態に係るバブルエラー訂正部30においては、両ケースについて、全く同じ結果を出力することとなる。上記したように、本実施形態に係るバブルエラー訂正部30は、サーモメータコードに生じるバブルエラーによってエンコード後の値が、真値から大きく乖離してしまうことを防止するものであり、真値を出力することを保証するものではない。
図7(b)は、上記のようにしてエラー訂正されたサーモメータコードをエンコード部50でエンコードした結果であり、図7(c)は、エラー訂正を行わないサーモメータコードをエンコード部50でエンコードした結果である。図7(b)に示すように、エラー訂正されたサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“00111”となり、10進数表現で“7”となる。一方、図7(c)に示すように、エラー訂正しないサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“01111”となり、10進数表現で“15”となる。図7(a)に示すケースにおいては、真値は、10進数表現で“7”“8”“9”“10”のいずれかであると考えられる。バブルエラーを訂正しない場合には、サーモメータコードは、複数の論理境界を含むことになり、真値からの乖離が大きくなる。本実施形態に係るバブルエラー訂正部30によれば、真値からの乖離を抑制するようにバブルエラーが訂正される。
図8(a)は、コンパレータC1〜C6、C9、C10から出力される比較信号E1〜E6、E9、E10の値が“1”、コンパレータC11〜C31から出力される比較信号E11〜E31の値が“0”であり、コンパレータC7およびC8からそれぞれ出力される比較信号E7およびE8の値がエラーによって“0”となった場合における各ノードの信号値を示す図である。すなわち、図8(a)は、サーモメータコードの“1”と“1”との間に2つ以上の“0”が存在するバブルエラー(すなわち、複数のビットに亘る「バブル」を有するバブルエラー)が生じたケースである。
比較信号E7の値は“0”であるので、OR回路H7およびAND回路J7を含んで構成される第1の訂正部31は、比較信号E7よりも下位の比較信号によって比較信号E7の値を訂正しない。従って、Fノードに出力される第1の訂正信号F7の値は“0”となる。同様に、比較信号E8の値は“0”であるので、OR回路H8およびAND回路J8を含んで構成される第1の訂正部31は、比較信号E8よりも下位の比較信号によって比較信号E8の値を訂正しない。従って、Fノードに出力される第1の訂正信号F8は“0”となる。比較信号E9に対して1ステップ下位の比較信号E8および2ステップ下位の比較信号E7の値は、それぞれ“0”であるので、OR回路H9およびAND回路J9を含んで構成される第1の訂正部31は、比較信号E9の値を“1”から“0”に訂正する。従って、Fノードに出力される第1の訂正信号F9の値は“0”となる。比較信号E10に対して1ステップ下位の比較信号E9の値は“1”であるので、OR回路H10およびAND回路J10を含んで構成される第1の訂正部31は、比較信号E10の値を訂正しない。従って、Fノードに出力される第1の訂正信号F10の値は“1”となる。
第1の訂正信号F7に対して3ステップ上位の第1の訂正信号F10の値が“1”であるため、OR回路K7を含んで構成される第2の訂正部32は、第1の訂正信号F7の値を“0”から“1”に訂正し、これを第2の訂正信号G7としてGノードに出力する。第1の訂正信号F8対して2ステップ上位の第1の訂正信号F10の値が“1”であるため、OR回路K8を含んで構成される第2の訂正部32は、第1の訂正信号F8の値を“0”から“1”に訂正し、これを第2の訂正信号G8としてGノードに出力する。第1の訂正信号F9に対して1ステップ上位の第1の訂正信号F10の値が“1”であるため、OR回路K9を含んで構成される第2の訂正部32は、第1の訂正信号F9の値を“0”から“1”に訂正し、これを第2の訂正信号G9としてGノードに出力する。第1の訂正信号F10の値が“1”であるため、OR回路K10を含んで構成される第2の訂正部32は、第1の訂正信号F10よりも上位の第1の訂正信号によって第1の訂正信号F10を訂正せずにこれを第2の訂正信号G10としてGノードに出力する。以上の訂正処理により、エラーが生じた比較信号E7およびE8の値がそれぞれ“0”から“1”に訂正され、Gノードにおいて、論理境界が1つのみのサーモメータコードが出力される。
なお、図8(a)のケースは、コンパレータC7およびC8からそれぞれ出力される比較信号E7およびE8にエラーが生じているケースとして説明したが、比較信号E7およびE8にはエラーが生じておらず、コンパレータC9およびC10からそれぞれ出力される比較信号E9およびE10にエラーが生じているケースであるとも考えられる。本実施形態に係るバブルエラー訂正部30においては、両ケースについて、全く同じ結果を出力することとなる。上記したように、本実施形態に係るバブルエラー訂正部30は、サーモメータコードに生じるバブルエラーによってエンコード後の値が、真値から大きく乖離してしまうことを防止するものであり、真値を出力することを保証するものではない。
図8(b)は、上記のようにしてエラー訂正されたサーモメータコードをエンコード部50でエンコードした結果であり、図8(c)は、エラー訂正を行わないサーモメータコードをエンコード部50でエンコードした結果である。図8(b)に示すように、エラー訂正されたサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“01010”となり、10進数表現で“10”となる。一方、図8(c)に示すように、エラー訂正しないサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“01110”となり、10進数表現で“14”となる。図8(a)に示すケースにおいては、真値は、10進数表現で“6”“7”“8”“9”“10”のいずれかであると考えられる。バブルエラーを訂正しない場合には、サーモメータコードは、複数の論理境界を含むことになり、真値からの乖離が大きくなる。本実施形態に係るバブルエラー訂正部30によれば、真値からの乖離を抑制するようにバブルエラーが訂正される。
図9は、基準電圧生成部10から出力される複数の基準電圧と入力アナログ電圧VAINの関係の一例を示す図である。上記したように、基準電圧生成部10を構成する抵抗素子R16およびR17の抵抗値(r/3)は、他の抵抗素子R2〜R15、R18〜R31の抵抗値(r)よりも小さいことから、基準電圧V15とV16との間の電圧差および基準電圧V16とV17との間の電圧差は、互いに隣接する他の基準電圧間の電圧差よりも小さくなっている。これにより、基準電圧V15からV17までの電圧範囲において、入力アナログ電圧VAINのAD変換分解能を、他の電圧範囲よりも高めている。このように、入力アナログ電圧VAINの一部の電圧範囲を高分解能でAD変換すれば、当該AD変換回路を含む電子機器において所望の機能を発揮できる場合がある。そのような用途のAD変換回路においては、一部の電圧範囲を高分解能でAD変換することにより、全電圧範囲を高分解能でAD変換する場合と比較して、コンパレータの数を削減することが可能である。
また、図10に示すアイパターンによって示されるように、特定の複数の電圧範囲に信号が集中するアナログ信号に対しては、信号が集中する電圧範囲に対応する各範囲において隣接する基準電圧間の電圧差が相対的に小さくなるように、基準電圧生成部10を構成する抵抗素子の抵抗値を設定してもよい。これにより、信号が集中する各電圧範囲において局所的にAD変換分解能を高めることができる。
また、本実施形態において、高分解能でAD変換を行うべき電圧範囲に属する基準電圧V16が入力されるコンパレータC16は、他のコンパレータよりも高い感度を有する。これにより、高分解能でAD変換を行うべき電圧範囲においてAD変換精度を高めることができる。なお、高分解能でAD変換を行うべき電圧範囲が複数存在する場合には、当該複数の電圧範囲の各々に対して少なくとも1つの高感度コンパレータを配置することが好ましい。
また、本実施形態に係るバブルエラー訂正部30においては、高感度のコンパレータC16から出力される比較信号E16の値は、相対的に信憑性が高いと考えられることから、バブルエラーの訂正処理において、比較信号E16の優先度を高めている。以下に、バブルエラーの訂正処理において、比較信号E16の優先度が高められている態様を、具体例を用いて説明する。
図11(a)は、コンパレータC1〜C15から出力される比較信号E1〜E15の値が“1”、コンパレータC18〜C31から出力される比較信号E18〜E31の値が“0”であり、コンパレータC17から出力される比較信号E17の値がエラーによって“1”となった場合における各ノードの信号値を示す図である。
図4に示すように、OR回路H17の2つの入力端には、それぞれ比較信号E16が入力される。比較信号E16の値は“0”であるので、OR回路H17の出力信号の値は“0”となる。従って、OR回路H17およびAND回路J17を含んで構成される第1の訂正部31は、比較信号E17の値を“1”から“0”に訂正した第1の訂正信号F17を出力する。第1の訂正信号F17に対して1ステップ〜3ステップ上位の第1の訂正信号F18、F19およびF19の値は、それぞれ“0”であるため、OR回路K17を含んで構成される第2の訂正部32は、第1の訂正信号F17の値“0”を訂正することなくこれを第2の訂正信号G17としてGノードに出力する。このように、エラーが生じた比較信号E17の値が、比較信号E16の値によって“1”から“0”に訂正され、Gノードにおいて、論理境界が1つのみのサーモメータコードが出力される。このように、本実施形態に係るバブルエラー訂正部30においては、比較信号E17に生じたエラーが、比較信号E17よりも下位の比較信号E16によって訂正される。なお、特定の比較信号において優先度を操作しない場合には、図6(a)に示すケースのように、下位の比較信号の値“0”は、上位の比較信号の値“1”によって“1”に訂正されることとなり、図11(a)に示すケースとは逆になる。
図11(b)は、上記のようにしてエラー訂正されたサーモメータコードをエンコード部50でエンコードした結果であり、図11(c)は、エラー訂正を行わないサーモメータコードをエンコード部50でエンコードした結果である。図11(b)に示すように、エラー訂正されたサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“01111”となり、10進数表現で“15”となる。一方、図11(c)に示すように、エラー訂正しないサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“11111”となり、10進数表現で“31”となる。図11(a)に示すケースにおいては、真値は、10進数表現で“15”“16”“17”のいずれかであると考えられる。バブルエラーを訂正しない場合には、サーモメータコードは、複数の論理境界を含むことになり、真値からの乖離が大きくなる。本実施形態に係るバブルエラー訂正部30によれば、真値からの乖離を抑制するようにバブルエラーが訂正される。
図12(a)は、コンパレータC1〜C14およびC16から出力される比較信号E1〜E14およびE16の値が“1”、コンパレータC17〜C31から出力される比較信号E17〜E31の値が“0”であり、コンパレータC15から出力される比較信号E15の値がエラーによって“0”となった場合における各ノードの信号値を示す図である。
コンパレータC15から出力される比較信号E15の値は“0”であるので、OR回路H15およびAND回路J15を含んで構成される第1の訂正部31は、比較信号E15よりも下位の比較信号によって比較信号E15の値を訂正しない。従って、Fノードに出力される第1の訂正信号F15の値は、“0”となる。一方、コンパレータC16から出力される比較信号E16の値も訂正されず、Fノードに出力される第1の訂正信号F16の値は“1”となる。第1の訂正信号F15に対して1ステップ上位の第1の訂正信号F16の値が“1”であるため、OR回路K15を含んで構成される第2の訂正部32は、第1の訂正信号F15の値を“0”から“1”に訂正し、これを第2の訂正信号G15としてGノードに出力する。このように、エラーが生じた比較信号E15の値が“0”から“1”に訂正され、Gノードにおいて、論理境界が1つのみのサーモメータコードが出力される。
図12(a)に示すケースにおいては、図6(a)に示すケースと同様、下位の比較信号E15の値“0”は、上位の比較信号E16の値“1”によって“1”に訂正される。すなわち、本実施形態に係るバブルエラー訂正部30は、基本的には、上位の比較信号が優先される構成となっている。しかしながら、高感度のコンパレータC16から出力される比較信号E16については、例外的にこれよりも上位の比較信号E17に対して優先されるようになっている。これにより、エラー訂正において、相対的に信憑性の高い比較信号E16の寄与の程度を大きくすることができ、より正しい訂正を行うことが可能となる。
図12(b)は、上記のようにしてエラー訂正されたサーモメータコードをエンコード部50でエンコードした結果であり、図12(c)は、エラー訂正を行わないサーモメータコードをエンコード部50でエンコードした結果である。図12(b)に示すように、エラー訂正されたサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“10000”となり、10進数表現で“16”となる。一方、図12(c)に示すように、エラー訂正しないサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“11110”となり、10進数表現で“30”となる。図12(a)に示すケースにおいては、真値は、10進数表現で“14”“15”“16”のいずれかであると考えられる。バブルエラーを訂正しない場合には、サーモメータコードは、複数の論理境界を含むことになり、真値からの乖離が大きくなる。本実施形態に係るバブルエラー訂正部30によれば、真値からの乖離を抑制するようにバブルエラーが訂正される。
図13は、バブルエラー訂正部30におけるエラー訂正において、高感度のコンパレータC16から出力される相対的に信憑性の高い比較信号E16の寄与の程度を更に大きくする場合の構成の一例を示す図である。図13に示す例では、OR回路H16の2つの入力端はいずれも高感度のコンパレータC16の出力端に接続されており、これら2つの入力端には、比較信号E16が入力される。これにより、比較信号E16は、下位側において隣接する他の比較信号によって訂正されなくなる。また、OR回路H18の2つの入力端も高感度のコンパレータC16の出力端に接続されており、これら2つの入力端には、比較信号E16が入力される。これにより、比較信号E16に対して2ステップ上位の比較信号E18に対して比較信号E16が優先される。なお、更に上位側の比較信号に対して比較信号E16を優先させる場合には、当該上位の比較信号の訂正を担う第1の訂正部31を構成するOR回路の2つの入力端に比較信号E16を入力すればよい。
本実施形態に係るバブルエラー訂正部30においては、第1の訂正部31において、訂正対象の比較信号に対して1ステップ下位の比較信号および2ステップ下位の比較信号を用いて当該訂正対象の比較信号を訂正し、第2の訂正部32において、訂正対象の第1の訂正信号に対して1ステップ〜3ステップ上位の第1の訂正信号の各々を用いて当該訂正対象の第1の訂正信号を訂正する場合を例示したが、この態様に限定されるものではない。すなわち、第1の訂正部31において、訂正対象の比較信号に対して下位側において隣接する3つ以上の比較信号を用いて当該訂正対象の比較信号を訂正してもよい。この場合、第1の訂正部31を構成するOR回路H1〜H31の入力端の数を3つ以上とし、各入力端に訂正対象の比較信号に対して下位側において隣接する3つ以上の比較信号の各々をそれぞれ入力すればよい。また、第2の訂正部32において、訂正対象の第1の訂正信号に対して上位側において隣接する2つまたは4つ以上の第1の訂正信号の各々を用いて当該訂正対象の第1の訂正信号を訂正してもよい。この場合、第2の訂正部32を構成するOR回路K1〜K31の入力端の数を2つまたは4つ以上とし、各入力端子に訂正対象の第1の訂正信号に対して上位側において隣接する2つまたは4つ以上の第1の訂正信号の各々をそれぞれ入力すればよい。本実施形態に係るバブルエラー訂正部30において、訂正に使用する、訂正対象の信号に隣接する上位側および下位側の信号の数を増やすことで、サーモメータコードの“1”と“1”との間に3つ以上の“0”(バブル)が存在するバブルエラーに対しても訂正を行うことが可能となる。このように、本発明の実施形態に係るAD変換回路を構成する半導体装置1によれば、バブルエラーの訂正範囲を容易に拡張することができる。
図14は、変形例に係るバブルエラー訂正部30Aの構成を示す図である。なお、図14において、バブルエラー訂正部30Aの、比較信号E26〜E31が入力される部分のみを示し、それ以外の部分は図示した部分と同様の構成を有するため、当該部分の図示は省略する。
バブルエラー訂正部30Aは、第1の訂正部31がOR回路を含んでおらず、また、第2の訂正部32を構成するOR回路の入力端の数が2つである点において、上記のバブルエラー訂正部30と異なる。
AND回路J26〜J31の一方の入力端には、自身に対応するコンパレータC26〜C31の出力端がそれぞれ接続されており、対応する比較信号E26〜E31がそれぞれ入力される。AND回路J26〜J31の他方の入力端には、自身に対応するコンパレータC26〜C31に対して1ステップ下位に配置されたコンパレータの出力端がそれぞれ接続されており、当該下位のコンパレータから出力される比較信号がそれぞれ入力される。例えば、AND回路J28の一方の入力端には、自身に対応するコンパレータC28から出力される比較信号E28が入力され、AND回路J28の他方の入力端には、自身に対応するコンパレータC28に対して1ステップ下位に配置されたコンパレータC27から出力される比較信号E27が入力される。
OR回路K26〜K31の一方の入力端には、自身に対応するAND回路J26〜J31の出力端が接続されており、自身に対応するAND回路から出力される第1の訂正信号F26〜F31がそれぞれ入力される。OR回路K26〜K30の他方の入力端には、自身に対応するAND回路J26〜J30に対して1ステップ上位に配置されたAND回路の出力端がそれぞれ接続され、当該上位のAND回路から出力される第1の訂正信号がそれぞれ入力される。例えば、OR回路K28の一方の入力端には、自身に対応するAND回路J28から出力される第1の訂正信号F28が入力され、OR回路K28の他方の入力端には、自身に対応するAND回路J28に対して1ステップ上位に配置されたAND回路J29から出力される第1の訂正信号F29が入力される。OR回路K31の他方の入力端には接地電圧Vss(論理値“0”)が入力される。
バブルエラー訂正部30Aは、第1の訂正部31において、訂正対象の比較信号に対して1ステップ下位の比較信号を用いて当該訂正対象の比較信号を訂正し、第2の訂正部32において、訂正対象の第1の訂正信号に対して1ステップ上位の第1の訂正信号を用いて当該訂正対象の第1の訂正信号を訂正する。
バブルエラー訂正部30Aによれば、確率的に最も多く発生するバブルエラー(“1”と“1”との間に1つの“0”が存在するバブルエラー)の訂正を行うことが可能である。また、バブルエラー訂正部30よりも回路規模を小さくすることができる。
図15は、変形例に係るバブルエラー訂正部30Bの構成を示す図である。なお、図15において、バブルエラー訂正部30Bの、比較信号E26〜E31が入力される部分のみを示し、それ以外の部分は図示した部分と同様の構成を有するため、当該部分の記載は省略する。
バブルエラー訂正部30Bは、バブルエラー訂正部30におけるAND回路J26〜J31をNAND回路L26〜L31に置き換え、バブルエラー訂正部30におけるOR回路K26〜K31をNAND(否定論理積演算)回路M26〜M31に置き換えた構成を有する。バブルエラー訂正部30Bによれば、バブルエラー訂正部30と同様のエラー訂正結果を得ることができる。なお、第1の訂正部31を構成するOR回路およびNAND回路からなる組み合わせ回路を、OR−NAND型のoai21複合ゲートに置換してもよい。
[第2の実施形態]
図16〜図19は、本発明の第2の実施形態に係るバブルエラー訂正部30Cの等価回路図である。バブルエラー訂正部30Cは、比較部20を構成する各コンパレータC1〜C31に対応して設けられた、2入力のAND回路N1〜N31、2入力のOR回路O1〜O31、および4入力のAND回路P1〜P31を含んで構成されている。
OR回路O1〜O31の一方の入力端には、自身に対応するコンパレータC1〜C31の出力端がそれぞれ接続されており、対応する比較信号E1〜E31がそれぞれ入力される。OR回路O1〜O31の他方の入力端には、自身に対応するAND回路N1〜N31の出力端がそれぞれ接続されており、対応するAND回路の出力信号がそれぞれ入力される。例えば、OR回路O3の一方の入力端には、自身に対応するコンパレータC3から出力される比較信号E3が入力され、OR回路O3の他方の入力端には、自身に対応するAND回路N3の出力信号が入力される。
AND回路N1〜N29の一方の入力端には、自身に対応するコンパレータC1〜C29に対して1ステップ上位に配置されたコンパレータの出力端がそれぞれ接続され、当該1ステップ上位に配置されたコンパレータから出力される比較信号がそれぞれ入力される。AND回路N1〜N29の他方の入力端には、自身に対応するコンパレータC1〜C29に対して2ステップ上位に配置されたコンパレータの出力端がそれぞれ接続され、当該2ステップ上位に配置されたコンパレータから出力される比較信号がそれぞれ入力される。例えば、AND回路N3の一方の入力端には、自身に対応するコンパレータC3に対して1ステップ上位に配置されたコンパレータC4から出力される比較信号E4が入力され、AND回路N3の他方の入力端には、自身に対応するコンパレータC3に対して2ステップ上位に配置されたコンパレータC5から出力される比較信号E5が入力される。なお、「上位に配置されたコンパレータ」とは、より電圧レベルの高い基準電圧が入力されるコンパレータを意味する。
AND回路N30においては、一方の入力端に自身に対応するコンパレータC30に対して1ステップ上位に配置されたコンパレータC31から出力される比較信号E31が入力され、他方の入力端に接地電圧Vss(論理レベル“0”)が入力される。AND回路N31においては、両方の入力端に接地電圧Vss(論理レベル“0”)が入力される。
本実施形態に係るバブルエラー訂正部30においては、図18に示すように、AND回路N15の2つ入力端の双方が、1ステップ上位に配置されたコンパレータC16の出力端に接続されており、例外的な接続となっている。なお、AND回路N15を削除して、OR回路O15の一方の入力端に比較信号E15を入力し、OR回路O15の他方の入力端に比較信号E16を入力する構成としてもよい。
AND回路P4〜P31の1つの入力端には、自身に対応するOR回路O4〜O31の出力端がそれぞれ接続されており、自身に対応するOR回路から出力される出力信号F4〜F31がそれぞれ入力される。AND回路P4〜P31の他の3つの入力端には、自身に対応するOR回路O4〜O31に対して1ステップ〜3ステップ下位にそれぞれ配置された各OR回路の出力端がそれぞれ接続され、当該下位に配置された3つのOR回路からそれぞれ出力される出力信号がそれぞれ入力される。例えば、AND回路P4の1つの入力端には、自身に対応するOR回路O4から出力される出力信号F4が入力され、他の3つの入力端には、自身に対応するOR回路O4に対して1ステップ〜3ステップ下位にそれぞれ配置されたOR回路O3、O2およびO1からそれぞれ出力される出力信号F3、F2およびF1がそれぞれ入力される。
AND回路P3の1つの入力端には、自身に対応するOR回路O3から出力される出力信号F3が入力され、他の2つの入力端には、自身に対応するOR回路O3に対して下位側に配置されたOR回路O2およびO1からそれぞれ出力される出力信号F2およびF1がそれぞれ入力され、残りの1つの入力端には、電源電圧Vcc(論理レベル“1”)が入力される。
AND回路P2の1つの入力端には、自身に対応するOR回路O2から出力される出力信号F2が入力され、他の1つの入力端には自身に対応するOR回路O2に対して下位側に配置されたOR回路O1から出力される出力信号F1が入力され、残りの2つの入力端には、電源電圧Vcc(論理レベル“1”)がそれぞれ入力される。
AND回路P1の1つの入力端には、自身に対応するOR回路O1から出力される出力信号F1が入力され、他の3つの入力端には電源電圧Vcc(論理レベル“1”)がそれぞれ入力される。
なお、「下位に配置されたOR回路」とは、より電圧レベルの低い基準電圧が入力されるコンパレータからの比較信号が入力されるOR回路を意味する。
以下に、バブルエラー訂正部30Cの機能および動作について説明する。コンパレータC1〜C31からそれぞれ出力される比較信号E1〜E31に生じたエラーは、それぞれ、対応するAND回路N1〜N31および対応するOR回路O1〜O31によって構成される第1の訂正部31で訂正され、訂正の結果が、OR回路O1〜O31の出力信号F1〜F31として出力される。以降、OR回路O1〜O31の出力信号F1〜F31を第1の訂正信号F1〜F31と称する。
第1の訂正信号F1〜F31は、それぞれ、対応する後段のAND回路P1〜P31によって構成される第2の訂正部32で更に訂正され、訂正の結果が、AND回路P1〜P31の出力信号G1〜G31として出力される。以降、AND回路P1〜P31の出力信号G1〜G31を第2の訂正信号G1〜G31と称する。第2の訂正信号G1〜G31は、訂正済みのサーモメータコードとして論理境界検出部40に供給される。例えば、コンパレータC3から出力される比較信号E3に生じたエラーは、AND回路N3およびOR回路O3によって構成される第1の訂正部31で訂正され、第1の訂正信号F3が生成される。第1の訂正信号F3は、AND回路P3によって構成される第2の訂正部32で更に訂正され、第2の訂正信号G3が生成される。
本実施形態に係る第1の訂正部31は、比較信号E1〜E31に生じたエラーを、当該比較信号に対して1ステップ上位の比較信号および2ステップ上位の比較信号を用いて訂正する。より具体的には、第1の訂正部31は、訂正対象の比較信号の値が“0”である場合、当該訂正対象の比較信号に対して1ステップ上位の比較信号および2ステップ上位の比較信号の双方の値が“1”である場合には、当該訂正対象の比較信号の値を“1”に訂正する。第1の訂正部31は、上記以外の場合には、訂正対象の比較信号の値を訂正しない。例えば、比較信号E3についてエラー訂正を行う第1の訂正部31は、訂正対象の比較信号E3の値が“0”である場合、当該訂正対象の比較信号E3に対して1ステップ上位の比較信号E4および2ステップ上位の比較信号E5の双方の値が“1”である場合には、訂正対象の比較信号E3の値を“1”に訂正する。なお、「上位の比較信号」とは、より電圧レベルの高い基準電圧が入力されるコンパレータから出力される比較信号を意味する。
本実施形態において、比較信号E15の訂正に関しては、例外的となる。図18に示すように、比較信号E15についてエラー訂正を行う第1の訂正部31を構成するAND回路N15の2つの入力端はいずれも1ステップ上位のコンパレータC16の出力端に接続されている。かかる構成によれば、比較信号E15の値が“0”であっても比較信号E16の値が“1”である場合には、比較信号E15の値は“1”に訂正される。すなわち、比較信号E16の値が、比較信号E15に対して優先される。上記したように、本実施形態において、コンパレータC16は、他のコンパレータよりも高感度な高感度コンパレータであり、エラーが発生する確率は相対的に低く、比較信号E16の値の信憑性は相対的に高いと考えられる。従って、比較信号E16の値を比較信号E15に対して優先させることで、エラー訂正において、相対的に信憑性の高い比較信号E16の寄与の程度を大きくすることができ、より正しい訂正を行うことが可能となる。
本実施形態に係る第2の訂正部32は、訂正対象の第1の訂正信号を、当該第1の訂正信号に対して1ステップ〜3ステップ下位の第1の訂正信号の各々を用いて訂正する。より具体的には、第2の訂正部32は、訂正対象の第1の訂正信号の値が“1”である場合、当該訂正対象の第1の訂正信号に対して1ステップ〜3ステップ下位の第1の訂正信号の少なくとも1つの値が“0”である場合には、当該訂正対象の第1の訂正信号の値を“0”に訂正する。例えば、第1の訂正信号F4についてエラー訂正を行う第2の訂正部32は、訂正対象の第1の訂正信号F4の値が“1”である場合、当該訂正対象の第1の訂正信号F4に対して1ステップ〜3ステップ下位の第1の訂正信号F1〜F3の少なくとも1つの値が“0”である場合には、当該訂正対象の第1の訂正信号F4の値を“0”に訂正する。なお、「下位の第1の訂正信号」とは、より電圧レベルの低い基準電圧が入力されるコンパレータから出力される比較信号についての第1の訂正信号を意味する。
以下に、本実施形態に係るバブルエラー訂正部30Cの機能および動作を、図20〜図22に示す具体的なケースを例示して説明する。
図20(a)は、図6(a)に示すケースと同様、コンパレータC1〜C8およびC10から出力される比較信号E1〜E8およびE10の値が“1”、コンパレータC11〜C31から出力される比較信号E11〜E31の値が“0”であり、コンパレータC9から出力される比較信号E9の値がエラーによって“0”となった場合における各ノードの信号値を示す図である。図20(a)においてEノードは、コンパレータC1〜C31の出力端のノードであり、Fノードは、OR回路O1〜O31の出力端のノード(第1の訂正部31の出力ノード)であり、GノードはAND回路P1〜P31の出力端のノード(第2の訂正部32の出力ノード)である(図21(a)および図22(a)において同じ)。
比較信号E9に対して2ステップ上位の比較信号E11の値は“0”であるので、AND回路N9およびOR回路O9を含んで構成される第1の訂正部31は、比較信号E9の値を訂正しない。従って、Fノードに出力される第1の訂正信号F9の値は“0”となる。比較信号E10の値は“1”であるので、AND回路N10およびOR回路O10を含んで構成される第1の訂正部31は、比較信号E10よりも上位の比較信号によって比較信号E10の値を訂正しない。従って、Fノードに出力される第1の訂正信号F10の値は“1”となる。
第1の訂正信号F9の値が“0”であるため、AND回路P9を含んで構成される第2の訂正部32は、第1の訂正信号F9の値“0”を訂正せずに、これを第2の訂正信号G9としてGノードに出力する。第1の訂正信号F10に対して1ステップ下位の第1の訂正信号F9の値が“0”であるため、AND回路P10を含んで構成される第2の訂正部32は、第1の訂正信号F10の値を“1”から“0”に訂正し、これを第2の訂正信号G10としてGノードに出力する。上記の訂正処理により、Gノードにおいて、論理境界が1つのみのサーモメータコードが出力される。
図20(b)は、上記のようにしてエラー訂正されたサーモメータコードをエンコード部50でエンコードした結果である。図20(b)に示すように、エンコードによって得られるバイナリコードは、2進数表現で“01000”となり、10進数表現で“8”となる。図20(a)に示すケースにおいては、真値は、10進数表現で“8”“9”“10”のいずれかであると考えられる。このように、本実施形態に係るバブルエラー訂正部30Cによれば、真値からの乖離を抑制するようにバブルエラーが訂正される。
図21(a)は、図7(a)に示すケースと同様、コンパレータC1〜C7から出力される比較信号E1〜E7の値が“1”、コンパレータC8、C9、C11〜C31から出力される比較信号E8、E9、E11〜E31の値が“0”であり、コンパレータC10から出力される比較信号E10の値がエラーによって“1”となった場合における各ノードの信号値を示す図である。すなわち、図21(a)は、サーモメータコードの“1”と“1”との間に2つ以上の“0”が存在するバブルエラー(すなわち、複数のビットに亘る「バブル」を有するバブルエラー)が生じたケースである。
比較信号E8に対して1ステップ上位の比較信号E9の値は“0”であるので、AND回路N8およびOR回路O8を含んで構成される第1の訂正部31は、比較信号E8の値を訂正しない。従って、Fノードに出力される第1の訂正信号F8の値は“0”となる。比較信号E9に対して2ステップ上位の比較信号E11の値は“0”であるので、AND回路N9およびOR回路O9を含んで構成される第1の訂正部31は、比較信号E9の値を訂正しない。従って、Fノードに出力される第1の訂正信号F9の値は“0”となる。比較信号E10の値は“1”であるので、AND回路N10およびOR回路O10を含んで構成される第1の訂正部31は比較信号E10の値を訂正しない。従って、Fノードに出力される第1の訂正信号F10の値は“1”となる。第1の訂正信号F8の値が“0”であるため、AND回路P8を含んで構成される第2の訂正部32は、第1の訂正信号F8の値“0”を訂正せずに、これを第2の訂正信号G8としてGノードに出力する。同様に、第1の訂正信号F9の値が“0”であるため、AND回路P9を含んで構成される第2の訂正部32は、第1の訂正信号F9の値“0”を訂正せずに、これを第2の訂正信号G9としてGノードに出力する。第1の訂正信号F10に対して1ステップ下位の第1の訂正信号F9および2ステップ下位の第1の訂正信号F8の値は、それぞれ“0”であるため、AND回路P10を含んで構成される第2の訂正部32は、第1の訂正信号F10の値を“1”から“0”に訂正し、これを第2の訂正信号G10としてGノードに出力する。上記の訂正処理により、Gノードにおいて、論理境界が1つのみのサーモメータコードが出力される。
図21(b)は、上記のようにしてエラー訂正されたサーモメータコードをエンコード部50でエンコードした結果である。図21(b)に示すように、エラー訂正されたサーモメータコードをエンコードすることによって得られるバイナリコードは、2進数表現で“00111”となり、10進数表現で“7”となる。図21(a)に示すケースにおいては、真値は、10進数表現で“7”“8”“9”“10”のいずれかであると考えられる。本実施形態に係るバブルエラー訂正部30Cによれば、真値からの乖離を抑制するようにバブルエラーが訂正される。
図22(a)は、図8(a)に示すケースと同様、コンパレータC1〜C6、C9、C10から出力される比較信号E1〜E6、E9、E10の値が“1”、コンパレータC11〜C31から出力される比較信号E11〜E31の値が“0”であり、コンパレータC7およびC8からそれぞれ出力される比較信号E7およびE8の値がエラーによって“0”となった場合における各ノードの信号値を示す図である。すなわち、図22(a)は、サーモメータコードの“1”と“1”との間に2つ以上の“0”が存在するバブルエラー(すなわち、複数のビットに亘る「バブル」を有するバブルエラー)が生じたケースである。
比較信号E7に対して1ステップ上位の比較信号E8の値は“0”であるので、AND回路N7およびOR回路O7を含んで構成される第1の訂正部31は、比較信号E7の値を訂正しない。従って、Fノードに出力される第1の訂正信号F7の値は“0”となる。比較信号E8に対して1ステップ上位および2ステップ上位の比較信号E9およびE10の値はいずれも“1”であるので、AND回路N8およびOR回路O8を含んで構成される第1の訂正部31は、比較信号E8の値を“0”から“1”に訂正する。従って、Fノードに出力される第1の訂正信号F8の値は“1”となる。比較信号E9およびE10の値はそれぞれ“1”であるので、これらの信号は、第1の訂正部31において訂正されない。従って、Fノードに出力される第1の訂正信号F9およびF10の値はそれぞれ“1”となる。
第1の訂正信号F7の値が“0”であるため、AND回路P7を含んで構成される第2の訂正部32は、第1の訂正信号F7の値“0”を訂正せずに、これを第2の訂正信号G7としてCノードに出力する。第1の訂正信号F8に対して1ステップ下位の第1の訂正信号F7の値が“0”であるため、AND回路P8を含んで構成される第2の訂正部32は、第1の訂正信号F8の値を“1”から“0”に訂正し、これを第2の訂正信号G8としてGノードに出力する。第1の訂正信号F9に対して2ステップ下位の第1の訂正信号F7の値が“0”であるため、AND回路P9を含んで構成される第2の訂正部32は、第1の訂正信号F9の値を“1”から“0”に訂正し、これを第2の訂正信号G9としてGノードに出力する。第1の訂正信号F10に対して3ステップ下位の第1の訂正信号F7の値が“0”であるため、AND回路P10を含んで構成される第2の訂正部32は、第1の訂正信号F10の値を“1”から“0”に訂正し、これを第2の訂正信号G10としてGノードに出力する。上記のエラー訂正により、Gノードにおいて、論理境界が1つのみのサーモメータコードが出力される。
図22(b)は、上記のようにしてエラー訂正されたサーモメータコードをエンコード部50でエンコードした結果である。図22(b)に示すように、エンコードによって得られるバイナリコードは、2進数表現で“00110”となり、10進数表現で“6”となる。図22(a)に示すケースにおいては、真値は、10進数表現で“6”“7”“8”“9”“10”のいずれかであると考えられる。このように、本実施形態に係るバブルエラー訂正部30Cによれば、真値からの乖離を抑制するようにバブルエラーが訂正される。
図23は、バブルエラー訂正部30Cにおけるエラー訂正において、高感度のコンパレータC16から出力される相対的に信憑性の高い比較信号E16の寄与の程度を更に大きくする場合の構成の一例を示す図である。図23に示す例では、AND回路N16の2つの入力端はいずれも高感度のコンパレータC16の出力端に接続されており、これら2つの入力端には、比較信号E16が入力される。これにより、比較信号E16は、上位側において隣接する他の比較信号によって訂正されなくなる。また、AND回路N14の2つの入力端も高感度のコンパレータC16の出力端に接続されており、これら2つの入力端には、比較信号E16が入力される。これにより、比較信号E16に対して2ステップ下位の比較信号E14に対して、比較信号E16が優先される。なお、更に下位の比較信号に対して、比較信号E16を優先させる場合には、当該下位の比較信号の訂正を担う第1の訂正部31を構成するAND回路の2つの入力端に比較信号E16を入力すればよい。
本発明の第2の実施形態に係るバブルエラー訂正部30Cにおいては、第1の訂正部31において、訂正対象の比較信号に対して1ステップ上位の比較信号および2ステップ上位の比較信号を用いて当該訂正対象の比較信号を訂正し、第2の訂正部32において、訂正対象の第1の訂正信号に対して1ステップ〜3ステップ上位の第1の訂正信号の各々を用いて当該訂正対象の第1の訂正信号を訂正する場合を例示したが、この態様に限定されるものではない。すなわち、第1の訂正部31において、訂正対象の比較信号に対して上位側において隣接する3つ以上の比較信号を用いて当該訂正対象の比較信号を訂正してもよい。この場合、第1の訂正部31を構成するAND回路N1〜N31の入力端の数を3つ以上とし、各入力端に訂正対象の比較信号に対して上位側において隣接する3つ以上の比較信号の各々をそれぞれ入力すればよい。また、第2の訂正部32において、訂正対象の第1の訂正信号に対して下位側において隣接する2つまたは4つ以上の第1の訂正信号の各々を用いて当該訂正対象の第1の訂正信号を訂正してもよい。この場合、第2の訂正部32を構成するAND回路P1〜P31の入力端の数を2つまたは4つ以上とし、各入力端に訂正対象の第1の訂正信号に対して下位側において隣接する2つまたは4つ以上の第1の訂正信号の各々をそれぞれ入力すればよい。本実施形態に係るバブルエラー訂正部30Cにおいて、訂正に使用する、訂正対象の信号に隣接する上位側および下位側の信号の数を増やすことで、サーモメータコードの“1”と“1”との間に3つ以上の“0”が存在するバブルエラーに対しても訂正を行うことが可能となる。このように、本発明の第2の実施形態に係るバブルエラー訂正部30Cによれば、バブルエラーの訂正範囲を容易に拡張することができる。
図24は、変形例に係るバブルエラー訂正部30Dの構成を示す図である。なお、図24において、バブルエラー訂正部30Dの、比較信号E26〜E31が入力される部分のみを示し、それ以外の部分は図示した部分と同様の構成を有するため、当該部分の記載は省略する。
バブルエラー訂正部30Dは、第1の訂正部31がAND回路を含んでおらず、また、第2の訂正部32を構成するAND回路の入力端の数が2つである点において、上記のバブルエラー訂正部30Cと異なる。
第1の訂正部31を構成するOR回路O26〜O31の一方の入力端には、自身に対応するコンパレータC26〜C31の出力端がそれぞれ接続されており、対応する比較信号E26〜E31がそれぞれ入力される。OR回路O26〜O31の他方の入力端には、自身に対応するコンパレータC26〜C31に対して1ステップ上位に配置されたコンパレータの出力端がそれぞれ接続されており、当該上位のコンパレータから出力される比較信号がそれぞれ入力される。例えば、OR回路O28の一方の入力端には、自身に対応するコンパレータC28から出力される比較信号E28が入力され、OR回路O28の他方の入力端には、自身に対応するコンパレータC28に対して1ステップ上位に配置されたコンパレータC29から出力される比較信号E29が入力される。
第2の訂正部32を構成するAND回路P26〜P31の一方の入力端には、自身に対応するOR回路O26〜O31の出力端が接続されており、自身に対応するOR回路から出力される第1の訂正信号F26〜F31がそれぞれ入力される。AND回路P26〜P30の他方の入力端には、自身に対応するOR回路O26〜O30に対して1ステップ下位に配置されたOR回路の出力端がそれぞれ接続され、当該下位のOR回路から出力される第1の訂正信号がそれぞれ入力される。例えば、AND回路P28の一方の入力端には、自身に対応するOR回路O28から出力される第1の訂正信号F28が入力され、AND回路P28の他方の入力端には、自身に対応するOR回路O28に対して1ステップ下位に配置されたOR回路O27から出力される第1の訂正信号F27が入力される。
バブルエラー訂正部30Dは、第1の訂正部31において、訂正対象の比較信号に対して1ステップ上位の比較信号を用いて当該訂正対象の比較信号を訂正し、第2の訂正部32において、訂正対象の第1の訂正信号に対して1ステップ下位の第1の訂正信号を用いて当該訂正対象の第1の訂正信号を訂正する。
バブルエラー訂正部30Dによれば、確率的に最も多く発生するバブルエラー(“1”と“1”との間に1つの“0”が存在するバブルエラー)の訂正を行うことが可能である。また、バブルエラー訂正部30Cよりも回路規模を小さくすることができる。