要約
本稿では、パイプライン型のA/Dコンバータ(ADC)について説明します。アーキテクチャの詳細、レイテンシ、デジタル誤差補正(デジタル・エラー・コレクション)、内蔵コンポーネントの精度、デジタル・キャリブレーションなど、同ADCの性能に影響を与える主要な事柄について詳しく解説します。また、パイプライン型以外のアーキテクチャとの比較も行います。
パイプライン型のADCは、サンプリング・レートが数Msps(メガ・サンプル/秒)から100Msps強までのアプリケーションで最もよく使用されています。分解能は、サンプリング・レートが高い場合には8ビット、サンプリング・レートが低い場合には16ビットといった具合です。このようなサンプリング・レートと分解能がマッチする多様なアプリケーションで広く活用されています。代表的な用途としては、CCD(Charge Coupled Device)を使用するイメージング機器、医療用の超音波画像処理装置、デジタル・レシーバー、基地局、デジタル映像(例えばHDTV)機器、xDSL(x Digital Subscriber Line)向けの機器、ケーブル・モデム、高速イーサネット向けの機器などが挙げられます。
現在でも、サンプリング・レートが低いアプリケーションではアーキテクチャとしてSAR(Successive Approximation Register)型または積分型を採用したADCが広く使われています。また、最近ではオーバーサンプリングとデルタ・シグマ変調を組み合わせたADCも使われるようになりました。一方、非常に高いサンプリング・レート(数百Msps以上)が求められるアプリケーションでは、現在でもフラッシュ型のADCが使用されています。ただ、このような状況にも変化が生じつつあります。最近では、様々な種類のパイプライン型ADCが製品化されるようになりました。そうした製品では、速度(サンプリング・レート)、分解能、動的性能、消費電力が大幅に改善されています。
パイプライン型のアーキテクチャ
図1に示したのは、パイプライン型ADCのアーキテクチャです。ここでは、分解能が12ビットの場合の例を示しています。
図1. パイプライン型ADCのアーキテクチャ。3ビットに対応する 4つのステージ(各ステージは2ビット分のデータを生成)が設けられています。
このADCにおいて、アナログ信号VINは、まずサンプル&ホールド回路に入力されます。それにより、入力された信号がサンプリングされ、その電圧がそのままホールドされます。それと同時に、VINはステージ1のフラッシュ型ADCによって3ビットに量子化されます。この3ビットの出力は分解能が3ビットのDACに入力されます(約12ビットの精度)。そして、このDACのアナログ出力が入力から差し引かれます。得られた「残差」は4倍に増幅され、ステージ2に入力として引き渡されます。増幅された残差は、パイプラインを通過していきながら、ステージ当たり3ビットのデータに変換されます。そして、最後の4LSB分を生成する4ビットのフラッシュ型ADCに達します。各ステージからのビット・データは、異なるタイミングで生成されます。そのため、1つのサンプルに対応するすべてのビット・データに対しては、デジタル誤差補正回路に入力される前に、シフト・レジスタによって時間を揃える処理が施されます。上記のとおり、各ステージは1つのサンプルを処理し、ビット・データの値を決定して、その残差を次のステージに引き渡します。ここまでの処理が終わってから、各ステージは、自身が備えるサンプル&ホールド回路から受け取った次のサンプルの処理を開始します。この点に注意してください。ADC全体としては、このようなパイプライン型の動作を行いつつ、高いスループットを達成します。
データのレイテンシ
各サンプルは、すべてのビット・データがデジタル誤差補正用のロジック回路で統合される前に、すべてのパイプラインを伝搬することになります。そのため、パイプライン型のADCでは、データのレイテンシが生じます。図1の例で言えば、レイテンシの値は約3サイクル分になります。図2に示したタイミング・チャートを参照してください。
図2. パイプライン型ADCにおけるデータのレイテンシ
デジタル誤差補正
最新のパイプライン型ADCは、デジタル誤差補正と呼ばれる技術を採用しています。その目的は、内蔵するフラッシュ型ADC(すなわち、独立したコンパレータ)の精度に対する要求を大幅に緩和することです。図1において、加算ノードの出力は3ビット相当の残差になります。そのダイナミック・レンジは、ステージ1の入力VINの1/8です。しかし、次のゲインはわずか4しかないことに注目してください。このことから、ステージ2への入力がとり得る範囲は、ステージ2の3ビットのADCの1/2ということになります(ステージ1の最初の3ビットの変換において誤差がない場合)。
アナログ入力が、最初の3ビットのフラッシュ型ADCが備えるコンパレータの1つのトリップ・ポイントに近いケースを考えます。その場合、コンパレータのオフセットが大きいと、誤った3ビットのコードが生成されます。すると、3ビットのDACの出力も適切なものではなくなり、誤差を含んだ残差が生成されます。その残差が増幅された結果が次の3ビットのADCの対応範囲を超えない限り、残りのパイプラインによって生成されるLSBのコードは(誤った3ビットのMSBのコードに加えられた場合でも)、ADCの出力として正しいことがわかります。つまり、図1のすべてのフラッシュ型ADCについては、ADC全体と同じレベルの精度は必要ないということです。実際、ステージ1からステージ4までに使われている3ビットのフラッシュ型ADCに求められる精度は4ビット程度です。
最後に配置された4ビットのフラッシュ型ADCについては、変換時に発生した誤差がデジタル誤差補正によって補正されることはありません。変換時に生じる誤差は、この4ビットのフラッシュ型ADCに到達する前の累積ゲイン(44)によって抑制されます。最終ステージのフラッシュ型ADCだけは4ビット以上の精度が必要です。
図1の例の場合、各ステージが生成するのは3ビットの未処理のデータです。ステージ間のゲインは4なので、各ステージ(ステージ1~4)が実際に判定/生成するのは2ビット分です。余分のビットは、残差の大きさを半減させるために使用されます。上述したように、デジタル誤差補正を行うために次の3ビットのADCに対して余分の領域を与えます。この処理は、隣接するステージ間の「1ビット・オーバーラップ」と呼ばれています。結果として、ADC全体としての有効ビット数は、2 + 2 + 2 + 2 + 4 = 12で、12ビットになります。
内蔵コンポーネントの精度
デジタル誤差補正は、個々のDACやゲイン・アンプのゲイン/リニアリティに関する誤差を補正することはできません。フロントエンドのサンプル&ホールド回路とDACには約12ビットの精度が必要です。しかし、その後のステージのコンポーネントにはそれより低い精度しか求められません。例えば、ステージ2に対しては10ビットの精度、ステージ3に対しては8ビットの精度といった具合です。このように低い精度のコンポーネントを使用するのは、後のステージの誤差項がそれ以前のステージ間のゲインによって除算されるからです。この手法は、パイプラインのステージを徐々に小さくすることによって、消費電力を更に少なく抑えるためにも利用されます。
パイプライン型ADCは、CMOS技術またはBiCMOS技術をベースとして設計されるケースが多いはずです。その場合、サンプル&ホールド回路、DAC、加算ノード、ゲイン・アンプは、スイッチド・キャパシタをベースとする1つの回路ブロックとして実現されるでしょう。この回路ブロックは、乗算型DAC(MDAC:Multiplying DAC)と呼ばれます。MDACの精度を制限する主な要因は、内部回路で使用されるコンデンサのミスマッチです。純粋なバイポーラによる実装は、更に複雑になります。主に、電流源DACやステージ間のゲイン・アンプにおける抵抗のミスマッチに悩まされることになるでしょう。
一般に、約12ビット以上の精度を実現したい場合には、何らかの補正処理が必要になります。特に最初の2つのステージに対しては、何らかの形でコンデンサ/抵抗をトリミングしたり、デジタル・キャリブレーションの機構を組み込んだりすることが求められるはずです。
デジタル・キャリブレーション
アナログ・デバイセズは、様々な種類のパイプライン型ADCを提供しています。代表的な製品の例としては、16ビット/1Mspsの「MAX1200」、14ビット/2Mspsの「MAX1201」、14ビット/1Mspsの「MAX1205」が挙げられます1。これらの製品は、優れた精度と動的性能を保証するためにデジタル・キャリブレーションを採用しています。各ICはCMOSをベースとしており、(1ビット・オーバーラップを備える)4ビットの4つのステージを備えています(図3)。それら4つのステージの後段には、5ビットのフラッシュ型ADCが配置されています。その結果、全体としては3 + 3 + 3 + 3 + 5 = 17ビットの未処理のデータが得られます。余分の1~3ビットは、ADC自体よりも高い精度で誤差項を量子化し、デジタル・キャリブレーションを実施するために使用します。また、14ビット品、16ビット品に不要な余分のビットは廃棄されます。
キャリブレーションはステージ3のMDACから始まります。ステージ3以降は、MDACの誤差項が十分に小さくなるのでキャリブレーションは必要ありません。ステージ3の出力は、パイプライン上の残りのADCによってデジタル化され、誤差項はオンチップのRAMに保存されます。3つ目のMDACがキャリブレートされたら、それを使って同様の方法で2つ目のMDACがキャリブレートされます。同様に、キャリブレートされた2つ目、3つ目のMDACを使って1つ目のMDACがキャリブレートされます。キャリブレーションがノイズフリーであることを保証するためには、(特に1つ目と2つ目のMDACにおいて)平均化の処理が用いられます。通常の変換中は、それらの誤差項の値がRAMから読み出されます。それらのデータを使ってデジタル誤差補正用のロジック回路の出力が調整されます。
図3. MAX1200のアーキテクチャ
様々なバリエーション
図1は、パイプライン型ADCには多くのバリエーションがあり得ることを示唆しています。例えば、各ステージが生成するビット数、LSB側のフラッシュ型ADCが対応するビット数、最初の数ステージの精度を高めるためのデジタル・キャリブレーション、トリミングの使用方法など、複数の要素に関する選択肢が存在するはずです。各ステージで生成するビット数は、目標とするサンプリング・レートと分解能によってある程度決まります。一般に、CMOSベースで高速のパイプライン型ADCでは、ステージ当たりのビット数が低く設定される傾向があります(ステージ当たり1ビットだけにすれば、ステージ間のゲインは2になる)。その理由は、CMOSでは、非常にゲインが高く、帯域の広いアンプを実現することが難しいからです。一方、サンプリング・レートが低いCMOSベースのパイプライン型ADCやバイポーラ・ベースのパイプライン型ADC(サンプリング・レートが非常に高いものを含む)では、ステージ当たりのビット数が高く設定される傾向があります。その場合、データのレイテンシを低く抑えることができます。
「MAX1425」(10ビット、20Msps)と「MAX1426」(10ビット、10Msps)はCMOSベースのパイプライン型ADCです。これらの製品は、ステージ当たり1.5ビット(以下、1.5ビット/ステージと表記します)の一般的なアーキテクチャを採用しています。各ステージは0.5ビットのオーバーラップを備えており、1ビット分のデータを生成する役割を果たします。1.5ビットの各ステージは、2ビット・フルのフラッシュ型ADCではなく、1.5ビットのフラッシュ型ADCを備えています(コンパレータは2個だけ)。これらの製品の各ステージは、デジタル誤差補正によって、2ビットのフラッシュ型ADCとDACを備える標準的なMDACのステージと同じように動作します。10MHzのアナログ入力信号を20Mspsでサンプリングした場合、59dBという高いS/N比(Signal to Noise Ratio)が得られます。
「MAX1444/MAX1446/MAX1448/MAX1449」は、高速、低消費電力、10ビット、CMOSベースのパイプライン型ADCです。それぞれ、40Msps、60Msps、80Msps、105Mspsのサンプリング・レートに対応しています。これらの製品は、いずれも1.5ビット/ステージのアーキテクチャを採用しています。広帯域、低歪みのトラック&ホールド・アンプを内蔵しており、ナイキスト帯域全体はもちろん、それ以上の帯域においても優れた動的性能が得られるようになっています。これらの製品を採用すれば、デジタル・レシーバーの設計でよく用いられるアンダーサンプリングの手法に対応できます。
1.5ビット/ステージの動作
図4. VRESIDUEとVINの伝達特性
1.5ビット/ステージのフラッシュ型ADC(2個のコンパレータ)では、アナログ入力とコンパレータの閾値を比較します。図4の例の場合、閾値は-0.25Vと0.25Vです。このフラッシュ型ADCは、アナログ入力が含まれている領域に対応するデジタル・データを出力します。1.5ビットというのは、VRESIDUEとVINの伝達特性に3つの領域があるということを表しています。この伝達特性については、1ビットのADCには2つの領域(1/ハイまたは0/ロー)があり、2ビットのADCには4つの領域(00、01、10、11)があるということになります。
フラッシュ型ADCへの入力が含まれる領域に応じ、残差電圧は次のように算出されます。
上の式による結果は、次のステージの入力電圧となります。
表1は、0.6Vのアナログ入力電圧がサンプリングされ、7ステージを備えるパイプライン型ADCによってデジタル出力に変換されるケースについてまとめたものです。同ADCのステージ1は、デジタル出力の最上位ビットを変換する役割を担います。ステージ7は、最下位ビットを変換する役割を果たします。
ステージ | VIN(V) | VRESIDUEとVINの伝達特性に おける領域(図4) | デジタル出力 (-1、0、+1) | 10進の値 | VRESIDUE(次のステージの入力電圧) |
1 | 0.6 | 領域3 | +1 | 64 | 2 × 0.6 - 1 |
2 | 0.2 | 領域2 | 0 | 32 | 2 × 0.2 |
3 | 0.4 | 領域3 | +1 | 16 | 2 × 0.4 - 1 |
4 | -0.2 | 領域2 | 0 | 8 | 2 × (-0.2) |
5 | -0.4 | 領域1 | -1 | 4 | 2 × (-0.4) + 1 |
6 | 0.2 | 領域2 | 0 | 2 | 2 × 0.2 |
7 | 0.4 | 領域3 | 1 | 1 | なし |
各ステージのデジタル出力とその10進値を使用すると、0.6Vのアナログ入力電圧をA/D変換した結果は以下のようになります。
[(64 × 1) + (32 × 0) + (16 × 1) + (8 × 0) + (4 × -1) + (2 × 0) + (1 × 1)] = 77
1Vのアナログ入力は、127(すべて1)というデジタル出力に相当します。そのため、デジタル出力が77であるということは、77/127 = 0.606Vに相当することがわかります。パイプライン型ADCでサンプリングしたアナログ入力電圧と近い数字になっていることがわかります。
他のアーキテクチャとの比較
以下では、パイプライン型のADCと他のアーキテクチャを採用したADCを比較してみます。
SAR型との比較
SAR型ADCでは、1個の高速/高精度のコンパレータによって、MSBからLSBまでにわたり1ビットずつ値を決定していきます。それまでに決定されたビットによって更新されたDACの出力を対象として、アナログ入力の比較を逐次実行します。このようなシリアル方式の性質が理由となって、変換レート(速度)は数Msps以下に制限されます。また、分解能が非常に高い(14~16ビット)場合には、速度の面の制限が更に厳しくなります。それに対し、パイプライン型のADCは並列構成を採用しています。各ステージは(連続したサンプルの)1ビット~数ビットを並列に処理します。
SAR型のADCで使用するコンパレータは1個だけです。このコンパレータは、高速(クロック・レートは、ビット数×サンプル・レートに近い値)に動作する必要があります。それだけでなく、ADC自体と同程度の精度を達成していなければなりません。それとは対照的に、パイプライン型ADCで使用するコンパレータについては、そのようなレベルの速度や精度は求められません。但し、パイプライン型ADCのチップ面積は、同レベルの仕様のSAR型ADCと比べてかなり大きくなるはずです。また、SAR型ADCのレイテンシはわずか1サイクル(1サイクルは1/Fsample)に抑えられます。一方、代表的なパイプライン型ADCのレイテンシは約3サイクル以上に達します。なお、パイプライン型のADCと同様に、分解能が12ビット以上のSAR型ADCは、通常、何らかの形のトリミングやキャリブレーションを適用する必要があります。
フラッシュ型との比較
パイプライン型のADCは並列性を備えていますが、DACにおけるアナログ・アンプやステージ間で使用するゲイン・アンプには高い精度が求められます。また、線形かつ長いセトリング・タイムを必要とします。一方、完全なフラッシュ型のADCには、帯域が広く、ゲインの小さいプリアンプとラッチから成る大規模なコンパレータ群が必要になります。ただ、プリアンプについては、パイプライン型ADCで使用するアンプとは異なり、ゲインは線形でなくても構いません。また、精度がさほど高くないものでも使用できます。但し、コンパレータのトリップ・ポイントは正確でなければなりません。加えて、総合的に言えば、パイプライン型ADCは優れた設計のフラッシュ型ADCの速度には対抗できません。
極めて高速な8ビットのフラッシュ型ADC(折り返し/補間型)の中には、1.5Gspsの高速サンプリング・レートに対応する製品もあります(例えば、「MAX104/MAX106/MAX108」)。しかし、10ビットのフラッシュ型ADCはほとんど存在しません。12ビット(またはそれ以上)のフラッシュ型ADCは、商業レベルで実現可能なデバイスだとは言えないでしょう。なぜなら、フラッシュ型のADCでは、分解能が1ビット増えると、コンパレータの数が2倍になるからです。それだけでなく、各コンパレータには2倍の精度が求められます。一方、パイプライン型ADCでは、分解能に対して複雑さが指数関数的に増すわけではありません。直線的に増加するだけです。
パイプライン型ADCとフラッシュ型ADCのどちらでも実現できるサンプリング・レートで比較すると、通常は、パイプライン型のADCはフラッシュ型のADCと比べて消費電力が大幅に少なくなります。一般に、パイプライン型のADCはコンパレータのメタスタビリティ(準安定性)の影響を受けることはほとんどありません。それに対し、フラッシュ型のADCにおけるコンパレータのメタスタビリティは、スパークル・コード・エラーを招くことがあります。その状態になると、ADCからは予測不能な不安定な変換結果が出力されます。
デルタ・シグマ型との比較
オーバーサンプリングとデルタ・シグマ変調を組み合わせたADCは、かなり前からデジタル・オーディオでよく使用されていました。その場合、帯域幅は約22kHzに制限されていました。ただ、最近では帯域幅の広いデルタ・シグマ型ADCも登場しています。なかには、分解能が12~16ビットで1MHz~2MHzの帯域幅を実現しているものもあります。このような仕様の製品は、マルチビットのADCとマルチビットのフィードバック用DACを内蔵した非常に高次のデルタ・シグマ変調器(例えば、4次以上)を採用しているはずです。その種の製品の代表的なアプリケーションはADSL(Asymmetric DSL)です。デルタ・シグマ型ADCでは、トリミングやキャリブレーションを行わなくても、16ビット~18ビットの分解能を実現できます。また、対象とする帯域幅に対してサンプリング・レートが非常に高いので、アナログ入力部に急峻なロールオフ特性を備えるアンチエイリアシング(折り返しノイズ防止)フィルタを配置する必要もありません。それと同等の処理は、バックエンドのデジタル・フィルタが担います。加えて、デルタ・シグマ型ADCでは、オーバーサンプリングの効果によってアナログ入力部におけるシステム・ノイズは平均化される傾向があります。
デルタ・シグマ型ADCは、変換速度と引き換えに高い分解能を実現します(速度と分解能はトレードオフの関係にあります)。最終的な1つのサンプルを生成するためには、多数回(最低16回。実際にはそれ以上のことが多い)のサンプリングを実行する必要があります。そのため、デルタ・シグマ変調器で使用するアナログ・コンポーネントは、最終的なデータ・レートと比べてかなり高速に動作させなければなりません。また、デジタル・デシメーション・フィルタの設計は容易ではなく、かなりのチップ面積を占めることになります。最も高速で最も分解能の高いデルタ・シグマ型ADCが実現されたとしても、その帯域幅は数MHz以上に達することはないでしょう。なお、パイプライン型ADCと同様に、デルタ・シグマ型ADCでもレイテンシが発生します。
2ステップ・フラッシュ型との比較
2ステップ・フラッシュ型(ハーフ・フラッシュ型)のADCは、2ステージのパイプライン型ADCだと説明されることがあります。但し、デジタル誤差補正によってビット数を増やしている(例えば12ビット以上)ので、各ステージには6~7ビットのフラッシュ型ADCを用意する必要があります。また、ステージ間のゲイン・アンプは、非常に高いゲインを実現しなければなりません。そのため、高い分解能を得たい場合には、2つ以上のステージを使用する方が賢明です。
まとめ
パイプライン型のADCは、サンプリング・レートが数Mspsから100Msps強までのアプリケーションに最適なアーキテクチャです。設計の複雑さは、ビット数に対して(指数関数的ではなく)直線的なので、高速、高分解能、低消費電力を同時に実現するADCを実現できます。パイプライン型のADCが適したアプリケーションは多岐にわたりますが、特にデジタル通信は採用を検討すべき分野だと言えます。多くの場合、この分野では、従来の微分非直線性(DNL)や積分非直線性(INL)といったDC仕様よりも、動的性能の方が重視されます。パイプライン型ADCのレイテンシは、ほとんどのアプリケーションでは問題になりません。アナログ・デバイセズは、今後もパイプライン型ADCのポートフォリオを拡充すべく新製品を開発しています。それらの製品は、他のアーキテクチャを採用したADC製品をうまく補完する存在になるはずです。
1 詳細については、「Pipeline ADCs Come of Age(パイプライン型ADCの時代が到来)」を参照してください。
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}