"NビットNは自然数の入力コードをアナログ出力信号に変換するD/Aコンバータと、前記D/Aコンバータをキャリブレーションするキャリブレーション回路と、を備えるD/Aコンバータシステムであって、前記D/Aコンバータは、前記入力コードをデジタル/アナログ変換して第1アナログ信号を生成する、バイナリ重み付けされた素子で構成されるメインD/Aコンバータと、キャリブレーション工程において予め生成された補正テーブルにもとづいて、前記入力コードに応じたMビットMはM<Nなる自然数の補正コードを生成する第1演算部と、前記補正コードをデジタル/アナログ変換して第2アナログ信号を生成するサブD/Aコンバータと、前記第1アナログ信号と前記第2アナログ信号を加算し、前記アナログ出力信号を生成する加算部と、を備え、前記キャリブレーション回路は、前記アナログ出力信号をアナログ/デジタル変換し、デジタル値を生成するアナログ/デジタル変換器と、キャリブレーション工程において、前記D/Aコンバータに対する入力コードを制御し、それにともない生成される前記アナログ出力信号に応じた前記デジタル値にもとづき、前記補正テーブルを生成する第2演算部と、を備え、前記キャリブレーション回路は、前記キャリブレーション工程において、a前記メインD/Aコンバータの入出力特性の不連続点を跨がないように、前記入力コードが取り得る全範囲を複数の区間0~S-1Sは2以上の整数に分割するステップと、b各区間において前記メインD/Aコンバータに対する入力コードを変化させ、各入力コードに対応する前記デジタル値を取得するステップと、c各区間0~S-1それぞれにおいて、前記入力コードと前記デジタル値の回帰直線を計算するステップと、d各区間0~S-1それぞれについて、ひとつの入力コードに対する理想入出力特性上の値と、その入力コードに対応する回帰直線上の値の差分Tiを算出するステップと、e各区間0~S-1それぞれについて、前記理想入出力特性の傾きと前記回帰直線の傾きの差分Tsを計算するステップと、f各区間0~S-1ごとに得られた差分Ti[0]~Ti[S-1]および傾きの差分Ts[0]~Ts[S-1]を前記補正テーブルとして保持するステップと、を実行することを特徴とするD/Aコンバータシステム。前記キャリブレーション工程のステップb~fに対応して、前記キャリブレーション回路は、各区間ごとに、g-1区間を小区間0~K-1に分割するステップと、g-2小区間0~K-1それぞれの入力コードの最小値を前記メインD/Aコンバータに入力し、各最小値に対応するデジタル値Lを取得するステップと、g-3小区間0~K-1に対して得られたデジタル値L[0]~L[K-1]にもとづいて、式1~11にしたがって、その区間Pの差分Ti[P]および傾きの差分Ts[P]を計算するステップと、を実行することを特徴とする請求項1に記載のD/Aコンバータシステム。AvgX=K-1/2...1AvgY=Σk=0:K-1L[k]/K...2SqXX=Σk=0:K-1{k-AvgX2}...3SqXY=Σk=0:K-1{L[k]-AvgYk-AvgX}...4aREAL’=SqXY/SqXX...5aREAL=aREAL’KS/2N...6YREAL=AvgY-aREAL’/AvgX...7aIDEAL=YMAX_MAIN-YMIN_MAIN/2N-1...8YIDEAL=aIDEALP2N/SYMIN_MAIN...9Ti[P]=YREAL-YIDEAL...10Ts[P]=aREAL-aIDEAL...11但し、YMIN_MAINはメインD/Aコンバータの最小出力電圧、YMAX_MAINはメインD/Aコンバータの最大出力電圧前記第1演算部は、実動作時において、h前記入力コードが含まれる区間Pを判定するステップと、i前記補正テーブルから、データTi[P]、Ts[P]を読み出すステップと、jデータTi[P]、Ts[P]にもとづいて、式12、13にしたがって前記サブD/Aコンバータに入力すべき補正コードDCMPを計算するステップと、を備えることを特徴とする請求項1または2に記載のD/Aコンバータシステム。S2=Ti[P]Ts[P]DIN-P2N/S...12DCMP=SubDACZ-S22M-1/VFS_SUB...13但し、VFS_SUBはサブD/Aコンバータのフルスケール電圧、SubDACZは、サブD/Aコンバータに設定する所定のコード前記D/Aコンバータは複数設けられ、前記キャリブレーション回路は複数のD/Aコンバータで共有され、前記D/Aコンバータごとの前記補正テーブルを有することを特徴とする請求項1から3のいずれかに記載のD/Aコンバータシステム。請求項1から4のいずれかに記載のD/Aコンバータシステムを備えることを特徴とする試験装置。いずれの特許文献にも、キャリブレーションの具体的な手法は開示されていないが、一般的に考えれば、メインのD/Aコンバータの1LSBよりも高い精度を有する測定器を用いて、メインのD/Aコンバータの特性を測定する必要がある。言い換えれば、これらの特許文献の技術は、このような高精度な測定器が利用可能な状況を想定したものであり、精度が低い測定器によってキャリブレーションすることはできない。本発明は係る状況においてなされたものであり、そのある態様の例示的な目的のひとつは、精度が低い測定器によってINLを改善する技術の提供にある。本発明のある態様は、NビットNは自然数の入力コードをアナログ出力信号に変換するD/Aコンバータと、前記D/Aコンバータをキャリブレーションするキャリブレーション回路と、を備えるD/Aコンバータシステムに関する。D/Aコンバータは、入力コードをデジタル/アナログ変換して第1アナログ信号を生成する、バイナリ重み付けされた素子で構成されるメインD/Aコンバータと、キャリブレーション工程において予め生成された補正テーブルにもとづいて、入力コードに応じたMビットMはM<Nなる自然数の補正コードを生成する第1演算部と、補正コードをデジタル/アナログ変換して第2アナログ信号を生成するサブD/Aコンバータと、第1アナログ信号と第2アナログ信号を加算し、アナログ出力信号を生成する加算部と、を備える。キャリブレーション回路は、アナログ信号をアナログ/デジタル変換し、デジタル値を生成するアナログ/デジタル変換器と、キャリブレーション工程において、D/Aコンバータに対する入力コードを制御し、それにともない生成されるアナログ出力信号に応じたデジタル値にもとづき、補正テーブルを生成する。キャリブレーション回路は、キャリブレーション工程において、以下の処理を実行する。aメインD/Aコンバータの入出力特性の不連続点を跨がないように、全入力コード範囲を複数の区間0~S-1Sは2以上の整数に分割する。b各区間においてメインD/Aコンバータに対する入力コードを変化させ、各入力コードに対応するデジタル値を取得する。c各区間0~S-1それぞれにおいて、入力コードとデジタル値の回帰直線を計算する。d各区間0~S-1それぞれについて、ひとつの入力コードに対する理想入出力特性上の値と、その入力コードに対応する回帰直線上の値の差分Tiを算出する。e各区間0~S-1それぞれについて、理想入出力特性の傾きと回帰直線の傾きの差分Tsを計算する。f各区間0~S-1ごとに得られた差分Ti[0]~Ti[S-1]および傾きの差分Ts[0]~Ts[S-1]を補正テーブルとして保持する。一般的なD/Aコンバータの入出力特性は、メジャーキャリー遷移において不連続点となり、それ以外の区間においては、実質的に直線的に変化する。したがって、直線的に変化する範囲を、測定器A/Dコンバータによってサンプリングし、回帰直線を求めることで、仮に測定器の精度が低い場合であっても、メインD/Aコンバータの入出力特性を精度良く記述できる。そして、実動作時においては、キャリブレーションによって求めた補正テーブルTi0]~Ti[S-1、Ts[0]~Ts[S-1]にしたがって、INL特性を計算し、それを補正するために必要な補正コードを生成することができる。キャリブレーション工程のステップb~fに対応して、キャリブレーション回路は、各区間ごとに、以下の処理を行ってもよい。g-1各区間をそれぞれ小区間0~K-1Kは2以上の整数に分割する。g-2各小区間0~K-1それぞれの入力コードの最小値をメインD/Aコンバータに入力し、各最小値に対応するデジタル値L[0]~L[K-1]を取得する。g-3小区間0~K-1に対して得られたデジタル値L[0]~L[K-1]にもとづいて、式1~11にしたがって、その区間Pの差分Ti[P]および傾きの差分Ts[P]を計算する。AvgX=K-1/2...1AvgY=Σk=0:K-1L[k]/K...2SqXX=Σk=0:K-1{k-AvgX2}...3SqXY=Σk=0:K-1{L[k]-AvgYk-AvgX}...4aREAL’=SqXY/SqXX...5aREAL=aREAL’KS/2N...6YREAL=AvgY-aREAL’/AvgX...7aIDEAL=YMAX_MAIN-YMIN_MAIN/2N-1...8YIDEAL=aIDEALP2N/SYMIN_MAIN...9Ti[P]=YREAL-YIDEAL...10Ts[P]=aREAL-aIDEAL...11但し、YMIN_MAINはメインD/Aコンバータの最小出力電圧、YMAX_MAINはメインD/Aコンバータの最大出力電圧第1演算部は、実動作時において、以下の処理を行ってもよい。h入力コードDINが含まれる区間Pを判定する。i補正テーブルから、データTi[P]、Ts[P]を読み出す。jデータTi[P]、Ts[P]にもとづいて、式12にしたがってサブD/Aコンバータが生成すべき補正量S2を計算する。S2=Ti[P]Ts[P]DIN-P2N/S...12そして、その補正量S2が得られるように、式13にしたがってサブD/Aコンバータ16に設定すべき補正コードDCMPを計算する。DCMP=SubDACZ-S22M-1/VFS_SUB...13但し、VFS_SUBはサブD/Aコンバータのフルスケール電圧であり、SubDACZは、補正量ゼロS2=0に対応する入力コードである。ある態様において、D/Aコンバータは複数設けられてもよい。キャリブレーション回路は複数のD/Aコンバータで共有され、D/Aコンバータごとの補正テーブルを有してもよい。なお、以上の構成要素の任意の組み合わせや本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。本発明のある態様によれば、精度が低い測定器によってD/AコンバータのINLを改善できる。以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。本明細書において、部材Aが、部材Bと接続された状態、あるいは部材Aが、部材Bとカップリングされた状態とは、部材Aと部材Bが物理的に直接的に接続される場合のほか、部材Aと部材Bが、それらの電気的な接続状態に実質的な影響を及ぼさない、あるいはそれらの結合により奏される機能や効果を損なわせない、その他の部材を介して間接的に接続される場合も含む。同様に、部材Cが、部材Aと部材Bの間に設けられた状態とは、部材Aと部材C、あるいは部材Bと部材Cが直接的に接続される場合のほか、それらの電気的な接続状態に実質的な影響を及ぼさない、あるいはそれらの結合により奏される機能や効果を損なわせない、その他の部材を介して間接的に接続される場合も含む。図2は、実施の形態に係るD/Aコンバータシステム100の構成を示すブロック図である。D/Aコンバータシステム100は、D/Aコンバータ10、キャリブレーション回路20、メモリ30および出力スイッチSWoを備える。D/Aコンバータ10は、実動作時において、NビットNは自然数の入力コードDIN[N-1:0]をアナログ出力信号VOUTに変換する。キャリブレーション回路20は、キャリブレーション工程において、D/Aコンバータ10を、具体的にはそのINLをキャリブレーションする。図2には、実動作時の信号の流れが実線で、キャリブレーション時の信号の流れが破線で示される。出力スイッチSWoは実動作時にオン、キャリブレーション時にオフする。D/Aコンバータ10は、メインD/Aコンバータ12、第1演算部14、サブD/Aコンバータ16、加算部18を備える。メインD/Aコンバータ12は、入力コードDINをデジタル/アナログ変換して第1アナログ信号S1を生成する。メインD/Aコンバータ12は、バイナリ重み付けされた素子で構成される。後述するキャリブレーション工程において、補正テーブルが予め生成され、メモリ30に格納されている。第1演算部14は、メモリ30に格納された補正テーブルにもとづいて、入力コードDINに応じたMビットMはM<Nなる自然数の補正コードDCMP[M-1:0]を生成する。サブD/Aコンバータ16は、補正コードDCMP[M-1:0]をデジタル/アナログ変換して第2アナログ信号S2を生成する。加算部18は、第1アナログ信号S1と第2アナログ信号S2を加算し、アナログ出力信号VOUTを生成する。サブD/Aコンバータ16には、メインD/Aコンバータ12の非線形成分を補正する能力があればよい。たとえばメインD/Aコンバータ12の非直線性が3mVpeak-peakであれば、サブD/Aコンバータ16はD/Aコンバータ10の出力電圧VOUTを3mV可変できる能力があればよい。非線形性が素子ばらつきによって大きくなることを考慮すれば、3mVの数倍~数十倍を、サブD/Aコンバータ16のフルスケール電圧VFS_SUBとすればよい。また、サブD/Aコンバータ16の分解能VLSB_SUBは、メインD/Aコンバータ12の分解能VLSB_SUBと同程度か、それより細かい分解能とするのが望ましい。サブD/Aコンバータ16に要求されるフルスケール電圧VFS_SUBと、分解能VLSB_SUBが決まると、サブD/Aコンバータ16のビット数Mが決まる。Mが10ビット以下であれば、サブD/Aコンバータ16をバイナリDACとしてもよいが、それより大きい場合、サブD/Aコンバータ16自体の非線形性に注意を払って設計する必要がある。図3a、bは、D/Aコンバータ10の構成例を示す回路図である。図3aのD/Aコンバータ10aにおいて、メインD/Aコンバータ12a、サブD/Aコンバータ16aがいずれも電流加算型で構成される。電流加算型D/Aコンバータは、それぞれがバイナリで重み付けされた電流を生成する複数の電流源を含み、入力コードに応じた電流を加算する。D/Aコンバータ10aでは、メインD/Aコンバータ12a、サブD/Aコンバータ16aそれぞれの出力信号S1、S2は電流信号であり、加算部18aは2つの電流信号を合成する配線で構成される。たとえば合成された電流S1S2を、一端の電位の固定された抵抗に供給することにより、電圧VOUTに変換してもよい。図3bのD/Aコンバータ10bにおいて、メインD/Aコンバータ12b、サブD/Aコンバータ16bは、いずれもR-2R型で構成される。加算部18bは、メインD/Aコンバータ12bの出力端子と、サブD/Aコンバータ16bの出力端子の間に設けられた抵抗Rsで構成される。なお、サブD/Aコンバータ16bを構成する抵抗ラダーの抵抗値が十分に高い場合には、抵抗Rsを省略して、メインD/Aコンバータ12bの出力端子とサブD/Aコンバータ16bの出力端子を直接接続してもよい。なおD/Aコンバータ10の構成は図3a、bに例示したものには限定されず、公知の、あるいは将来利用可能なさまざまなD/Aコンバータでよく、少なくともメインD/Aコンバータ12が、バイナリで重み付けされた素子を有していればよい。サブD/Aコンバータ16は任意の形式のD/Aコンバータが利用しうる。図2に戻る。キャリブレーション回路20は、A/Dコンバータ22、第2演算部24、を備える。A/Dコンバータ22は、アナログ出力信号VOUTをアナログ/デジタル変換し、アナログ出力信号VOUTに応じたデジタル値DOUTを生成する。第2演算部24は、キャリブレーション工程において、D/Aコンバータ10に対する入力コードDINを制御し、それにともない生成されるアナログ出力信号VOUTに応じたデジタル値DOUTにもとづき、補正テーブルを生成し、メモリ30に格納する。第1演算部14および第2演算部24は、後述する演算処理を実行するように構成された専用回路であってもよいし、後述する演算処理を記述するプログラムを実行する汎用のマイクロコントローラであってもよい。市販されるマイクロコントローラには、デジタル回路の中央演算処理装置の他、A/Dコンバータが搭載されるものが存在する。このようなマイクロコントローラを利用する場合、第1演算部14、第2演算部24、A/Dコンバータ22の機能は、同一のマイクロコントローラ内に実装することが可能である。後述のように、A/Dコンバータ22にはそれほど高い精度は要求されないため、汎用マイクロコントローラに内蔵されるものが十分に利用できる。マイクロコントローラがメモリを内蔵する場合、メモリ30も一体に構成できる。キャリブレーション回路20は、キャリブレーション工程において、以下の処理ステップa~fを行う。図4a、bは、キャリブレーション処理を説明する図である。aメインD/Aコンバータ12のINL特性の不連続点メジャーキャリー遷移点を跨がないように、全入力コード範囲を複数の区間0~S-1Sは2以上の整数に分割する。図4aには、メインD/Aコンバータ12の入出力特性と、それに応じて設定される複数の区間0~S-1が示される。図4aでは、メジャーキャリー遷移点を境界として複数の区間0~S-1に分割する場合を示すが、さらに細かく分割してもよく、要するに、各区間内に不連続点が存在しないように分割すればよい。b全区間0~S-1それぞれにおいて、メインD/Aコンバータ12に対する入力コードDCALを変化させ、各入力コードDCALに対応するデジタル値DOUTを取得する。図4bは、図4aの区間Pを拡大して示したものであり、ステップb以降については、区間Pに着目して説明する。図4bの実線Iは、メインD/Aコンバータ12の実際の入出力特性を、一点鎖線IIはメインD/Aコンバータ12の理想入出力特性を示す。c各区間0~S-1それぞれにおいて、入力コードDCALとデジタル値DOUTの回帰直線IIIを計算する。d各区間0~S-1それぞれについて、ひとつの入力コードXに対する理想入出力特性上の値YIDEALと、その入力コードXに対応する回帰直線上の値YREALの差分Tiを算出する。本実施の形態では、その区間Pの最小入力コードX0に対して、差分Tiが算出される。e各区間0~S-1それぞれについて、理想入出力特性の傾きaIDEALと回帰直線の傾きaREALの差分Tsを計算する。f各区間0~S-1ごとに得られた差分Ti[0]~Ti[S-1]および傾きの差分Ts[0]~Ts[S-1]を補正テーブルとしてメモリ30に保持する。キャリブレーション処理のアルゴリズムの一例について詳細に説明する。キャリブレーション工程のステップb~fに対応して、キャリブレーション回路20は、以下の処理を行う。g-1区間Pを小区間0~K-1にK等分する。g-2小区間0~K-1それぞれの入力コードの最小値X0~XK-1をメインD/Aコンバータ12に入力し、各最小値X0~XK-1に対応するデジタル値L[0]~L[K-1]を取得する。g-3小区間0~K-1に対して得られたデジタル値L[0]~L[K-1]にもとづいて、式1~11にしたがって、その区間Pの差分Ti[P]および傾きの差分Ts[P]を計算する。AvgX=K-1/2...1AvgY=Σk=0:K-1L[k]/K...2SqXX=Σk=0:K-1{k-AvgX2}...3SqXY=Σk=0:K-1{L[k]-AvgYk-AvgX}...4aREAL’=SqXY/SqXX...5aREAL=aREAL’KS/2N...6YREAL=AvgY-aREAL’/AvgX...7aIDEAL=YMAX_MAIN-YMIN_MAIN/2N-1...8YIDEAL=aIDEALP2N/SYMIN_MAIN...9YMIN_MAIN、YMAX_MAINはそれぞれメインD/Aコンバータ12の最小出力電圧、最大出力電圧であり、それらは予め測定しておく。たとえばサブD/Aコンバータ16の入力コードを所定値たとえばフルスケールの中点に固定し、メインD/Aコンバータ12の入力コードを最小値オールゼロに設定する。このときの出力電圧VOUTをA/Dコンバータ22によって読み取ることでYMIN_MAINは測定できる。また、サブD/Aコンバータ16の入力コードを所定値に固定し、メインD/Aコンバータ12の入力コードを最大値オール1に設定し、このときの出力電圧VOUTをA/Dコンバータ22によって読み取ることで最大出力電圧YMAX_MAINが測定できる。メインD/Aコンバータ12のフルスケール電圧VFS_MAINは、YMIN_MAINとYMAX_MAINの差分によって求められる。VFS_MAIN=YMAX_MAIN-YMIN_MAIN同様にして、サブD/Aコンバータ16の最小出力電圧YMIN_SUB、最大出力電圧YMAX_SUBを測定し、それらの差分にもとづいてフルスケール電圧VFS_SUBが計算される。具体的には、メインD/Aコンバータ12の入力コードを所定値たとえばフルスケールの中点に固定し、サブD/Aコンバータ16の入力コードを最大値オール1、最小値オール0に設定し、このときの出力電圧VOUTをA/Dコンバータ22によって読み取ることで最大出力電圧YMAX_SUB、最小出力電圧YMAX_SUBが測定される。そして、サブD/Aコンバータ16のフルスケール電圧VFB_SUBは、YMIN_SUBとYMAX_SUBの差分によって求められる。VFS_SUB=YMAX_SUB-YMIN_SUB式1~7は、測定されたK個のデータL[0]~L[K-1]にもとづいて回帰直線IIIを計算するアルゴリズムである。aREALは、回帰直線IIIの傾きであり、YREALは、区間Pの最小入力コードX0に対応する出力電圧である。区間Pにおける回帰直線は、Y=aREAL×DCAL-X0YREALで与えられる。式8に示すように、理想入出力特性の傾きaIDEALは、メインD/Aコンバータ12の最大出力電圧YMAX_MAINと最小出力電圧YMIN_MAINの差分をフルスケールの階調数2N-1で除算することにより計算できる。理想入出力特性は、Y=aIDEAL×DCALYMIN_MAINであるから、DCAL=P2N/Sを代入することで、式9に示すようにYIDEALが計算できる。2N/Sは、区間Pの階調数である。このようにして、区間Pにおいて、入力コードX0に対する理想入出力特性上の値YIDEALと、その入力コードX0に対応する回帰直線上の値YREALが計算され、それらの差分Ti[P]が算出される。Ti[P]=YREAL-YIDEAL...10また、区間Pにおいて、理想入出力特性の傾きaIDEALと回帰直線の傾きaREALが計算され、それらの差分Ts[P]が算出される。Ts[P]=aREAL-aIDEAL...11以上がキャリブレーション回路20のキャリブレーション処理である。続いて、実動作時におけるD/Aコンバータ10の動作を説明する。図5aは、補正テーブルTi[0]~Ti[K-1]、Ts[0]~Ts[K-1]と、INLの関係を示す図であり、図5bは、入力コードDIN応じた補正量S2の関係を示す図である。第1演算部14は、実動作時において、以下の処理を行う。h入力コードDINが含まれる区間Pを判定する。i補正テーブル30から、データTi[P]、Ts[P]を読み出す。jデータTi[P]、Ts[P]にもとづいて、式12にしたがってサブD/Aコンバータ16が出力すべき補正量、すなわち第2アナログ信号S2を計算する。S2=Ti[P]Ts[P]DIN-P2N/S...12そして、その補正量S2が得られるように、式13にしたがってサブD/Aコンバータ16に設定すべき補正コードDCMPを計算する。DCMP=SubDACZ-S22M-1/VFS_SUB...13上述のように、VFS_SUBはサブD/Aコンバータのフルスケール電圧であり、SubDACZは、補正量ゼロを与える入力コードである。たとえばSubDACZは、サブD/Aコンバータ16がフルスケールの中点電圧を出力するコードであってもよい。図6aは、D/Aコンバータシステム100のキャリブレーション前のINLおよびDNL微分非線形性の測定結果を、図6bは、キャリブレーション後のINLおよびDNLの測定結果を示す図である。測定したメインD/Aコンバータ12のフルスケールは、0.5V~2.9V、メインD/Aコンバータ12の分解能は0.15mVN=14ビットであり、サブD/Aコンバータ16のフルスケールは-38mV~38mV、サブD/Aコンバータ16の分解能は0.15mVM=9ビット、測定用のA/Dコンバータ22の分解能は0.4mV13ビットである。図6a、bに示すように、キャリブレーション前に±1.3mV程度あった非線形誤差は、±0.18mV以下に抑制されている。これはA/Dコンバータ22の分解能の半分以下の誤差に抑えられたことを意味しており、精度が低いA/Dコンバータ22を用いて、メインD/Aコンバータ12の非線形を良好に補正できることがわかる。以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。図7は、第1の変形例に係るD/Aコンバータシステム100aの構成を示すブロック図である。A/Dコンバータ22自体が非線形誤差を有する場合、それを用いてメインD/Aコンバータ12をキャリブレーションすると、A/Dコンバータ22の誤差が反映されてしまう。そこで図7のD/Aコンバータシステム100aでは、メインD/Aコンバータ12のキャリブレーションに先立ち、A/Dコンバータ22をキャリブレーション可能に構成される。D/Aコンバータシステム100aは、図2のD/Aコンバータシステム100に加えて、スイッチSW1、SW2、測定用端子P1、データ入力端子P2をさらに備える。D/Aコンバータシステム100aの測定用端子P1には、外部測定器40が接続可能に構成される。外部測定器40は、高精度なA/Dコンバータあるいは電圧計である。第1スイッチSW1は、加算部18の出力端子と、A/Dコンバータ22の入力端子の間に設けられ、メインD/Aコンバータ12のキャリブレーション時にオンする。第2スイッチSW2は、A/Dコンバータ22の入力端子と測定用端子P1の間に設けられ、A/Dコンバータ22のキャリブレーション時にオンする。A/Dコンバータ22のキャリブレーション時において、出力電圧VOUTがスイープ、あるいはランダムに変化し、それに応じたA/Dコンバータ22の出力DOUTが第2演算部24に入力される。また外部測定器40による計測値DOUT’がデータ入力端子P2を介して第2演算部24に入力される。第2演算部24は、2つのデータDOUTとDOUT’にもとづいて、階調ごとのA/Dコンバータ22の誤差を計算し、メモリ30にA/Dコンバータ22の補正テーブルを書き込む。これによりA/Dコンバータ22のキャリブレーションが完了し、外部測定器40が取り外される。メインD/Aコンバータ12のキャリブレーション時には、第2演算部24は、メモリ30からA/Dコンバータ22の補正用テーブルを参照し、A/Dコンバータ22の出力値DOUTを補正する。以上の構成によれば、A/Dコンバータ22の非線形誤差を打ち消すことができる。図8は、第2の変形例に係るD/Aコンバータシステム100bの構成を示すブロック図である。D/Aコンバータシステム100bは、複数のD/Aコンバータ10_0~10_Vを備える。Vは任意の自然数である。各D/Aコンバータ10は、すでに説明したように、メインD/Aコンバータ12およびサブD/Aコンバータ16を含んでいる。単一のA/Dコンバータ22は、複数のD/Aコンバータ10_0~10_Vによって共有され、第1スイッチSW1_1~SW1_Vによって接続先が切りかえ可能となっている。第2演算部24は、第1スイッチSW1_1~SW_Vを順に切りかえながら、対応するD/Aコンバータ10_0~10_Vをキャリブレーションする。メモリ30には、D/Aコンバータ10それぞれの補正テーブルTi[0,0:S-1]~Ti[V,0:S-1]、Ts[0,0:S-1]~Ts[V,0:S-1]が格納される。第1演算部14は、i番目のD/Aコンバータ10_iを使用する際には、対応する補正テーブルTi[i,0:S-1]、Ts[i,0:S-1]を参照する。この構成によれば、単一のA/Dコンバータ22および単一の第2演算部24によって、複数のD/Aコンバータ10をキャリブレーションできる。図9は、第3の変形例に係るD/Aコンバータシステム100cの構成を示すブロック図である。図2の構成では、メインD/Aコンバータ12とサブD/Aコンバータ16の入力コードの設定タイミングの時間差が、出力電圧VOUTにグリッジを生じさせる場合がある。この問題を解決するために、D/Aコンバータシステム100cは、メインD/Aコンバータ12に対する入力コードDINと、サブD/Aコンバータ16に対する入力コードDCMPをラッチするラッチ回路42を備える。これにより、2つの入力コードの設定タイミングが一致し、グリッジを抑制できる。上述の任意の変形例は、任意のその他の変形例との組み合わせが可能であり、そうした構成も本発明の範囲に含まれる。最後に、D/Aコンバータシステム100のアプリケーションの例を説明する。図10は、実施の形態に係るD/Aコンバータシステム100を備える試験装置2の構成を示すブロック図である。試験装置2は、DUT1に試験パターンSPATを入力し、それに応じてDUT1から出力される信号SDUTを受け、DUT1の良否を判定し、あるいは不良箇所を特定する。図10には、いわゆるピンエレクトロニクスと称される回路ブロックが示される。ドライバDRは、入力されたデータに応じた試験パターンSPATを生成する。ドライバDRが生成する試験パターンSPATのハイレベル電圧VH、ローレベル電圧VLはそれぞれ独立に調節可能となっている。実施の形態に係るD/Aコンバータシステム100は、ハイレベル電圧VH、ローレベル電圧VLを設定する用途に利用できる。あるいは、図1には図示しないが、終端電圧を生成するドライバに対して、アナログ電圧を与える用途にD/Aコンバータシステム100を用いてもよい。タイミングコンパレータCMP_Hは、DUT1からの信号SDUTを受け、上側しきい値VTH_Tと比較し、比較結果を所定の周期ごとにラッチする。タイミングコンパレータCMP_Lは、信号SDUTを下側しきい値VTH_Lと比較し、所定の周期ごとにラッチする。しきい値電圧VTH_H、VTH_Lは調節可能となっており、D/Aコンバータシステム100は、これらのしきい値電圧VTH_H、VTH_Lを生成する用途にも利用できる。あるいは、実施の形態に係るD/Aコンバータシステム100は、より汎用的な用途に利用することも可能である。上述したように、汎用のマイクロコントローラには、中央演算処理装置に加えてA/Dコンバータが内蔵され、さらにD/Aコンバータを内蔵するものがある。しかしながら、残念なことに、汎用のマイクロコントローラのD/Aコンバータの精度はそれほど高くないのが実情である。そこで、実施の形態に係るD/Aコンバータシステム100を、こうした汎用のマイクロコントローラに内蔵することにより、コスト増を招くことなく、精度の高いD/Aコンバータを得ることができる。実施の形態にもとづき本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。"