Mash method sigma-delta modulator and da conversion circuit

申请号 JP2013505639 申请日 2011-03-18 公开(公告)号 JP5505557B2 公开(公告)日 2014-05-28
申请人 富士通株式会社; 发明人 和明 大石;
摘要
权利要求
  • 前段からのN(N;2以上の整数)個のデータを入力し、並列に積分演算して後段に出力するM(M;1以上の整数)段の並列積分ユニットを有する積分部と、
    前記積分部の対応する前記並列積分ユニットの隣接するオーバーフローの差分を演算すると共に前記差分を入力し、並列に微分演算して後段に出力する並列微分ユニットを有する微分部と、
    前記微分部からの出力を並列直列変換する並列直列変換部と、を備え、
    前記積分部の初段の前記並列積分ユニットは、1つの入力データを並列に受け、
    前記積分部の各段の前記並列積分ユニットおよび前記微分部の各段の前記並列微分ユニットは、各段の積分演算および微分演算を、マスタクロックの周波数の1/N倍の周波数の1動作クロックで実行し、
    前記並列直列変換部は、前記並列直列変換の結果を、前記マスタクロックに同期して出力することを特徴とするMASH方式シグマデルタ・モジュレータ。
  • 前記微分部の出力を別データに変換するデータ変換部を、さらに備え、
    前記並列直列変換部は、前記データ変換部からの出力を並列直列変換する請求項1記載のMASH方式シグマデルタ・モジュレータ。
  • 前記並列直列変換部の出力する前記並列直列変換の結果を保持するデータ保持部を、さらに備える請求項1または2記載のMASH方式シグマデルタ・モジュレータ。
  • 前記並列積分ユニットは、
    N−1個の入力加算器と、N個の単位積分器と、を備え、
    X番目(Xは2〜N)の入力加算器は、1番目の入力からX番目までの入力の総和を演算し、
    各単位積分器は、データ加算器と、データ保持ユニットと、を備え、
    1番目の前記単位積分器のデータ加算器は、1番目の入力とN番目の前記単位積分器に保持されたデータとを加算し、2番目以降のデータ加算器は、対応する前記入力加算器の出力とN番目の前記単位積分器に保持されたデータとを加算し、前記データ保持ユニットは、対応する前記データ加算器の出力を保持して、前記動作クロックに同期して出力し、
    各段のN個の前記単位積分器のN個の前記データ加算器のオーバーフローが、対応する前記並列微分ユニットに出力される請求項1から3のいずれか1項記載のMASH方式シグマデルタ・モジュレータ。
  • M段目の前記並列積分ユニットでは、N番目以外の前記単位積分器の前記データ保持ユニットが除かれている請求項4記載のMASH方式シグマデルタ・モジュレータ。
  • M段目の前記並列積分ユニットに対応する前記M段目の並列微分ユニットは、M段目のN個の前記データ加算器の隣接するオーバーフローの差分を演算するN−1個の入力差分器と、N−1番目の入力差分器出力を前記動作クロックのタイミングで保持するフリップフロップ群Mと、M段目の前記並列積分ユニットの1番目の前記データ加算器のオーバーフローと前記フリップフロップ群Mに保持された値の減算を行う単位微分器と、N−1個の前記入力差分器の隣接する出力の差分をとるN−1個の単位微分器と、を備え、
    1段目とM段目以外の前記並列微分ユニットは、M−1段目から2段目の対応する段のN個の前記データ加算器の隣接するオーバーフローの差分を演算するN−1個の入力差分器と、M−1段目から2段目の対応する段の1番目の前記データ加算器のオーバーフローとN−1個の前記入力差分器の出力を段に応じたクロック数分遅延するディレイ部と、前段のN個の前記単位微分器の出力と前記ディレイ部の出力をそれぞれ加算するN個の加算器と、前記N番目の加算器出力を前記動作クロックのタイミングで保持するフリップフロップ群M−1と、前記フリップフロップ群M−1のデータと前記1番目の加算器の出力の差分を演算する単位微分器と、前記N個の加算器の隣接する出力のN個の差分をとるN−1個の単位微分器と、を備え、
    1段目の前記並列微分ユニットは、1段目のN個の前記データ加算器の隣接するオーバーフローの差分を演算するN−1個の入力差分器と、1段目の1番目の前記データ加算器オーバーフローとN−1個の前記入力差分器の出力をM−1クロック数分遅延するディレイ部と、前段のN個の前記単位微分器の出力と前記ディレイ部の出力をそれぞれ加算するN個の加算器と、を備える請求項4または5記載のMASH方式シグマデルタ・モジュレータ。
  • 前記並列直列変換部は、N段の循環型シフトレジスタを有し、前記マスタクロックの周期のN倍の周期のN相のラッチクロック群を生成する請求項1から6のいずれか1項記載のMASH方式シグマデルタ・モジュレータ。
  • 前記N段の循環型シフトレジスタは、N個の直列に接続されたフリップフロップを有し、最終段のフリップフロップ出力が初段のフリップフロップ入力に接続されることで循環され、N−1個のフリップフロップのリセット端子および残り1個のフリップフロップのセット端子に、リセット信号が入力される請求項7記載のMASH方式シグマデルタ・モジュレータ。
  • 前記並列直列変換部は、前記微分部の出力するN個の並列データを並列に受け、
    前記並列直列変換部は、
    前記ラッチクロック群のうちの複数位相のラッチクロックで、前記N個の並列データをラッチする複数のラッチ群と、前記複数のラッチ群の出力をフィルタ処理するデジタルフィルタと、を有するクロック乗り換え器と、
    前記デジタルフィルタの出力のうちL(L<Nの正の整数)個のデータを、前記ラッチクロック群のうちの1つの位相の前記ラッチクロックでラッチする第2ラッチ群と、
    前記第2ラッチ群でラッチされたL個のデータと残りのN−L個のデータを入力とし、前記ラッチクロック群のラッチクロックを制御信号とするセレクタと、を備える請求項7または8記載のMASH方式シグマデルタ・モジュレータ。
  • オーバーサンプリングデータを発生するインターポレーションフィルタと、
    高ビット数の前記オーバーサンプリングデータを、低ビット数の変換データに変換するシグマデルタ・モジュレータと、
    前記低ビット数の変換データをアナログ信号に変換する低ビット数D/A変換器と、
    前記低ビット数D/A変換器の出力の低周波数成分を通過させるアナログ・ローパス・フィルタと、を備えるD/A変換器であって、
    前記シグマデルタ・モジュレータは、請求項1から9のいずれか1項記載のMASH方式シグマデルタ・モジュレータであることを特徴とするD/A変換器。
  • 说明书全文

    本発明は、シグマデルタ・モジュレータおよびDA変換回路に関し、特にMASH方式シグマデルタ・モジュレータおよびそれを含むDAC(デジタル・アナログ変換器:Digital-to-Analog Converter)に関する。

    高分解能および高速のADC(アナログ・デジタル変換器:Analog-to-Digital Converter)およびDACとして、シグマデルタ(ΣΔ)・モジュレータを用いたものが広く使用されるようになってきた。 ADCにおけるシグマデルタ変換と、DACにおけるシグマデルタ変換は、逆の関係にあり、これは後述するMASH(Multistage Noise Shaping)方式についても同様である。 以下のDACを例として説明する。

    図1は、シグマデルタ変換を使用するシグマデルタDACの概略構成を示す図である。

    図1に示すように、補間フィルタ(Interpolation filter)12は、OSR(oversampling ratio)11に基づいて、高ビット数の入データを補間してクロック周波数を上げる。 その後、シグマデルタ・モジュレータ(ΣΔMod)13は、高ビットのデータを、低ビットのデータに変換する。 その後、低ビットのDAC14は、低ビットのデータをアナログ信号に変換し、アナログ信号はアナログ・ローパス・フィルタ(Analog low-pass filter)15を介して出力される。

    広く知られているように、シグマデルタ・モジュレータ13は、振幅方向のみでなく、時間軸方向にも情報を持たせることで、高ビットの低速データを、低ビットの高速データ列に変換する変換器である。 出力は低ビットであるが高い分解能の情報をもっている。

    図2は、上記のことを、周波数領域で説明する図である。

    シグマデルタDACに入力されたデータは、図2の(A)に示すように、入力データのサンプリング周期ごとに繰り返すスペクトルCを持っている。 2π、4π・・・の位置にあるスペクトルCは、サンプリングによる折り返し成分であり不要成分である。 シグマデルタ・モジュレータ13は、図2の(B)に示すように、サンプリング周波数を上げることで、繰り返される不要な折り返しスペクトルCを高周波側のスペクトルDにシフトする。 高周波側のスペクトルDは、図2の(C)に示すように、Eで示す通過特性を有するアナログ・ローパス・フィルタ15によりカットされる。 不要な折り返しスペクトルCを高周波側のスペクトルDにシフトすることにより、アナログ・ローパス・フィルタ15の通過特性への要求を低くして、アナログ・ローパス・フィルタ15への負担が低減される。 これにより、チップ面積が大きくなりがちなアナログ回路への負担を低減することが可能である。

    ここで、アナログ回路への負担をより一層低減するためには、シグマデルタ・モジュレータの動作周波数を、より一層上げることが望ましい。 図3の(A)に示したように、シグマデルタ・モジュレータ13の動作周波数が低い場合には、サンプリングによる折り返し成分Dが直流(DC)近辺の必要なスペクトル範囲に接近しているため、急峻な通過特性Eを示す高次のローパスフィルタ15が必要である。 これに対して、動作周波数が高い場合は、図3の(B)に示すように、折り返し成分D'がDCからより一層離れるため、緩い特性Eの低次のローパスフィルタを利用することが可能である。 これにより、アナログ回路への負担が低減し、チップ面積の削減が実現できる。

    デジタル回路で構成されたΣΔモジュレータの動作速度に限界があり、十分に動作周波数を高められない。

    非特許文献1は、積分部の加算器のオーバーフローを微分して出力を得るMASH方式(Multistage Noise Shaping)のシグマデルタ・モジュレータを提案している。

    図4は、非特許文献1に記載されたMASH方式のシグマデルタ・モジュレータの構成を示す図である。 図4に示すシグマデルタ・モジュレータは、3次のMASH型シグマデルタ・モジュレータである。

    図示のように、シグマデルタ・モジュレータは、積分部Sと、微分部Tと、を有する。 積分部Sは、シグマデルタ・モジュレータの次数分だけ直列に接続された積分ユニット(図4では3段)を有する。 各段の積分ユニットは、加算器AD0〜AD2と、フリップフロップ(Z -1 )SF0〜SF2と、をそれぞれ有する。 各積分ユニットは、入力データと1クロック前の演算結果との和をとることで積分を行う。 積分ユニット(加算器AD0〜AD2)のオーバーフローは、微分部Tに入力される。

    微分部Tは、2個の微分ユニットと、2個の加算器TA0およびTA1と、フリップフロップMF01、MF02およびMF1と、を有する。 1個の微分ユニットは、積分部Sの3段目の加算器AD2のオーバーフローをクロックに応じて保持するフリップフロップ(Z -1 )TF1と、AD2のオーバーフローからTF1の出力を減算する減算器TS1と、を有する。 MF01は、積分部Sの2段目のAD1のオーバーフローを1クロック分遅延する。 TA1は、TS1とMF1の出力の加算器である。 もう1個の微分ユニットは、TA1の出力を保持するTF0と、TA1の出力からTF0の出力を減算するTS0と、を有する。 MF01およびMF02は、積分部Sの1段目のAD0のオーバーフローを1クロック分ずつ2段で遅延する。 TA0は、TS0とMF02の出力の加算器である。 各段の微分ユニットは、1クロック前のデータと現データの差分をとることで微分を行う。

    図5は、図4の3次MASHシグマデルタ・モジュレータにおいて、一定DCレベルのアナログ出力を生成する場合の出力波形を示す。 シグマデルタ・モジュレータの動作について、図5を参照して説明する。

    出力データの瞬時値は、−4〜3の8段階の低ビットのデータである。 その出力データは、高速に変化しており、その平均値は、小数点以下の高分解能を表現できる。 つまり、瞬間的には低ビットの離散値であるが、長周期(平均)では高分解の値となっている。 周波数領域でみると、信号成分ほかに、高周波側にノイズ成分が存在するスペクトルになる。 このノイズ成分は量子化ノイズといわれ、先に述べた、瞬間的な高速の変化のために発生する。

    MASH方式のシグマデルタ・モジュレータについては、広く知られているので、これ以上の説明は省略する。

    前述のように、量子化ノイズをDC近辺の必要なスペクトル範囲から遠ざけるためには、シグマデルタ・モジュレータを高速で動作させる必要があるが、そのためには、積分部Sおよび微分部Tを高速に動作させる必要がある。 しかし、積分部Sおよび微分部Tでの演算は、大きな演算量であるため、高速動作には限界がある。

    特表2002−520898号公報

    Mucahit Kizak, Izzet Kale " Rigorous Analysis of Delta-Sigma Modulators for Fractional-N PLL Frequency Synthesis " IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS-I: REGULAR PAPERS, VOL. 51, NO. 6, JUNE 2004

    実施形態によれば、積分部および微分部での演算を並列化して、動作クロックの速度を実質的に向上したMASH方式シグマデルタ・モジュレータが実現される。

    発明の一観点によれば、前段からのN(N;2以上の整数)個の入力を積分して後段に出力するM(M;1以上の整数)段の並列積分ユニットを有する積分部と、積分部の対応する並列積分ユニットの隣接する出力(オーバーフロー)の差分を演算すると共に差分の微分をそれぞれ演算して後段に出力する並列微分ユニットを有する微分部と、微分部からの出力を並列直列変換する並列直列変換部と、を備え、積分部の初段の並列積分ユニットは、入力データを並列に受け、積分部の各段の並列積分ユニットおよび微分部の各段の並列微分ユニットは、各段の積分演算および微分演算を、マスタクロックの周波数の1/N倍の周波数の1動作クロックで実行し、並列直列変換部は、並列直列変換の結果を、前記マスタクロックに同期して出力するMASH方式シグマデルタ・モジュレータが提供される。

    発明の別の観点によれば、 オーバーサンプリングデータを発生するインターポレーションフィルタと、高ビット数のオーバーサンプリングデータを、低ビット数の変換データに変換するシグマデルタ・モジュレータと、低ビット数の変換データをアナログ信号に変換する低ビット数D/A変換器と、低ビット数D/A変換器の出力を低周波数成分を通過させるアナログ・ローパス・フィルタと、を備えるD/A変換器であって、シグマデルタ・モジュレータが、上記の発明の一観点によるMASH方式シグマデルタ・モジュレータであるD/A変換器が提供される。

    発明の観点によれば、MASH方式のシグマデルタ・モジュレータの積分部および微分部での演算を並列化して、実質的に動作クロックの速度を高くして、量子化ノイズをDC近辺の必要なスペクトル範囲から遠ざけることができる。 これにより、アナログ回路への負担が低減し、チップ面積を削減できる。

    図1は、シグマデルタ変換を使用するシグマデルタDACの概略構成を示す図である。

    図2は、シグマデルタ・モジュレータによる繰り返しスペクトルの高周波数領域へのシフトを、周波数領域で説明する図である。

    図3は、繰り返しスペクトルをより高周波数へシフトする効果を説明する図である。

    図4は、非特許文献1に記載されたMASH方式のシグマデルタ・モジュレータの構成を示す図である。

    図5は、3次MASHシグマデルタ・モジュレータにおいて、一定レベルのアナログ出力を生成する場合の出力波形を示す図である。

    図6は、第1実施形態のシグマデルタ・モジュレータの概略構成を示す図である。

    図7は、第1実施形態のシグマデルタ・モジュレータの全体構成を示す図である。

    図8は、第1実施形態における積分部の構成例を示す図である。

    図9は、第1実施形態における微分部の構成例を示す図である。

    図10は、8位相クロック発生部の回路図および動作を示すタイムチャートである。

    図11は、並列直列変換部の構成を示す図である。

    図12は、並列直列変換部の動作を示すタイムチャートである。

    図13は、第1実施形態のシグマデルタ・モジュレータの出力スペクトルを示す図である。

    図14は、第2実施形態のシグマデルタ・モジュレータの全体構成を示す図である。

    図15は、変換コードの例を示す表である。

    図16は、第2実施形態のシグマデルタ・モジュレータにおける並列直列変換部の構成を示す図である。

    図17は、第3実施形態のシグマデルタ・モジュレータの全体構成を示す図である。

    図6は、第1実施形態のシグマデルタ・モジュレータの動作を説明するための簡略した概念図である。 なお、実際の第1実施形態は図7、8、9、10、11となる。 第1実施形態のシグマデルタ・モジュレータは、3次MASH方式のシグマデルタ・モジュレータであり、図1に示したシグマデルタ・モジュレータ(ΣΔMod)13などに使用される。 第1実施形態のシグマデルタ・モジュレータは、iビットの入力データからjビットの出力データを生成する。 以下の説明では、i=10およびj=3として、シグマデルタ演算は、8個の入力データを並列に演算処理する場合を説明するが、これに限定されるものではない。

    図6に示すように、第1実施形態のシグマデルタ・モジュレータは、シグマデルタ演算部31と、並列直列変換部61と、を有する。

    入力は、8並列の入力データとして、シグマデルタ演算部31に入力される。 入力データは、周波数fi(=Fs/8)(マスタクロックの8倍の周期)の動作クロックCLKiに同期している。

    シグマデルタ演算部31は、積分部41Aと微分部51Aの組を8組有し、8個分の入力データに対して積分演算および微分演算を並列に実行する。 後述するように、8組の積分部41Aおよび微分部51Aは、それぞれ一体に形成、演算される。 一体に形成された積分部及び微分部は、複数段の演算ユニットを備え、各段の演算を、動作クロックCLKiに同期して実行し、CLKiに同期して3ビットの出力データを8個並列に出力する。

    並列直列変換部61は、CLKiに同期して8個並列に出力される3ビットの出力データを直列の3ビットの出力データに変換してCLK0に同期して出力する。

    図7は、第1実施形態のシグマデルタ・モジュレータの全体構成を示す図である。

    図7に示すように、第1実施形態のシグマデルタ・モジュレータは、積分部41と、微分部51と、並列直列変換部61と、8位相クロック発生部71と、を有する。 8位相クロック発生部71は、並列直列変換部61にクロックを供給する。 上記のように、動作クロックCLKiの周波数fiは、マスタクロックの周波数fsの1/8である。 積分部41および微分部51は、動作クロックCLKiに同期して動作する。 8位相クロック発生部71は、マスタクロックCLK0から、CLK0の周期に対応するパルス幅を有し、CLK0の周期の8倍の周期で、CLK0の周期ずつシフトした8位相クロックを生成し、並列直列変換部61に出力する。 並列直列変換部61は、8位相クロックに基づいて動作するので、実質的にCLK0に同期して動作する。

    図7に示すように、積分部41は、8個の10ビットの入力データを並列に受けて積分演算を行い、8並列の演算結果を含む3組の積分データOF0〜OF2を、微分部51にCLKiに同期して並列に出力する。 微分部51は、積分データOF0〜OF2を受けて微分演算を行い、3ビットの演算結果を含む7並列の微分データSD0〜SD7を、並列直列変換部61にCLKiに同期して並列に出力する。 並列直列変換部61は、微分データSD0〜SD7を並列に受けて、直列の出力データOUTに変換し、CLK0に同期して出力する。

    第1実施形態のシグマデルタ・モジュレータでは、積分部41および微分部51が、演算量の多い積分演算および微分演算を8個のデータについて並列に処理することで、動作周波数を下げても高速に処理できる。 並列処理により得られた演算結果の並列データは、高速動作が可能な並列直列変換器61で直列データに変換されて高速データで出力される。 これにより、高速動作のシグマデルタ・モジュレータを実現することができる。

    次に、各部の内部構成を説明する。

    図8は、積分部41の構成例を示す図である。 上記のように、積分部41は、8並列の3次(3段)構成を有し、入力データIN0〜IN7を並列に受ける。

    積分部41の各段は並列積分ユニットを有する。 各段の並列積分ユニットは、入力データ加算部と、並列積分部と、を有する。 図8において、参照番号42は、1段目の入力データ加算部を、43は1段目の並列積分部を、それぞれ示す。 図8に示すように、2段目および3段目にも、入力データ加算部および並列積分部を有する並列積分ユニットが、同様に設けられている。

    1段目の入力データ加算部42は、7個の入力データ加算器SA01〜SA07の列を含む。 SA01は、IN0とIN1を加算して加算値を出力する。 SA02は、SA01の出力とIN2を加算して加算値を出力する。 以下同様に、X番目のSA0Xは、前段のSA0(X−1)の出力とINXを加算して加算値を出力する。 また、これと等価の演算を行う構成でもよい。

    したがって、SA07の出力=IN0+IN1+IN2+IN3+IN4+IN5+IN6+IN7である。

    1段目の並列積分部43は、入力加算器AD00〜AD07とフリップフロップSF00〜SF07を含む8組の並列積分器の列を含む。 1個の入力加算器と1個のフリップフロップの組が、積分器を形成する。 AD00は入力データIN0とSF07の出力を加算する。 SF00はAD10の出力を保持し、CLKiに同期して出力する。 AD00のオーバーフロー出力はOF0<0>として出力される。 AD01はSA01の出力とSF07の出力を加算する。 SF01はAD01の出力を保持し、CLKiに同期して出力する。 AD01のオーバーフロー出力はOF0<1>として出力される。 以下同様に、X番目のAD0Xは、対応するSA0Xの出力とSF07の出力を加算し、SF0XはAD0Xの出力を保持し、CLKiに同期して出力する。 AD0Xのオーバーフロー出力はOF0<X>]として出力される。 したがって、AD00とSF00を含む積分ユニットは、SF07の出力する1クロック前の入力データの積分値に、新たに入力された入力データIN0を加算した積分値を演算して出力する。 AD01とSF01を含む積分ユニットは、SF07の出力する1クロック前の入力データの積分値に、新たに入力された入力データIN0およびIN1を加算した積分値を演算して出力する。 以下同様であり、AD07とSF07を含む積分ユニットは、SF07の出力する1クロック前の入力データの積分値に、新たに入力された入力データIN0〜IN7を加算した積分値を演算して出力する。 加算器AD00〜AD07のオーバーフロー出力が、OF0<0>〜OF0<7>である。
    ここで、1クロック前のOF0<7>をOF0'<7>とすると、AD00では、入力データ(IN0)のビット数以内のデータは、AD00出力=IN0+OF0'<7>としてSF00に入力され、入力データ(IN0)のビット数を超えるデータは、OF0<0>として出力される。 同様に、AD01は、AD01出力=IN0+IN1+OF0'<7>とOF0<1>が出力される。 以下、同様であり、AD07は、AD07出力=IN0+IN1+IN2+IN3+IN4+IN5+IN6+IN7+OF0'<7>とOF0'<7>が出力され、CLKiの1周期で、8回分の積分(加算)を同時に行うことになる。
    ここで、OF0<1>はIN0とIN1の2つのデータに対して2回積分を行ったさいの累積オーバーフロー値をとり、同様に、OF0<7>はIN0〜7の8つのデータに対して8回積分を行った際の累積オーバーフローになる。

    2段目の入力データ加算部も、7個の入力データ加算器SA11〜SA17の列を含み、2段目の並列積分部も、入力加算器AD10〜AD17とフリップフロップSF10〜SF17を含む8組の並列積分器の列を含む。

    SA11は、SF00とSF01の出力を加算して加算値を出力する。 SA12は、SA11の出力とSF02の出力を加算して加算値を出力する。 以下同様に、X番目のSA1Xは、SA1(X−1)の出力と1段目のSF0Xの出力を加算して加算値を出力する。

    AD10は、SF00の出力とSF17の出力を加算する。 SF10はAD10の出力を保持し、CLKiに同期して出力する。 AD10のオーバーフローはOF1<0>として出力される。 AD11はSA11の出力とSF17の出力を加算する。 SF11はAD11の出力を保持し、CLKiに同期して出力する。 AD11のオーバーフローはOF1<1>として出力される。 以下同様に、X番目のAD1Xは、SF00または対応するSA1Xの出力とSF17の出力を加算し、SF1XはAD1Xの出力を保持し、CLKiに同期して出力する。 AD1Xのオーバーフロー出力はOF1<X>として出力される。 したがって、AD10とSF10を含む積分器は、SF17の出力する1クロック前の入力データの積分値に、新たに1段目から入力されたSF00の出力を加算した積分値を演算して出力する。 以下同様であり、AD17とSF17を含む積分ユニットは、SF17の出力する1クロック前の入力データの積分値に、1段目のSF00〜SF07の出力を加算した積分値を演算して出力する。 このように、8個の積分ユニットは、積分演算を行う。 ここで、入力加算器AD10〜AD17のオーバーフロー出力が、OF1<0>〜OF1<7>である。 2段目並列積分ユニットも1段目と同様に、8並列の積分を行う。

    3段目の入力データ加算部も、7個の入力データ加算器SA21〜SA27の列を含む。 3段目の並列積分部は、8個の入力加算器AD20〜AD27を含むが、8番目のAD27に対応したフリップフロップSF27を1個含むだけで、AD20〜AD26に対応したフリップフロップは設けられていない。 したがって、3段目の並列積分部は、SA27の出力を加算する積分器は設けられるが、それ以外の積分器は、設けられていない。 これは、第1実施形態のシグマデルタ・モジュレータが3次であり、4段目が存在しないため、AD20〜AD26の出力は、次段で使用する必要がないためである。

    SA21は、SF10とSF11の出力を加算して加算値を出力する。 SA22は、SA21の出力とSF12の出力を加算して加算値を出力する。 以下同様に、X番目のSA2Xは、SA2(X−1)の出力とSF1Xの出力を加算して加算値を出力する。

    AD20は、SF10の出力とSF27の出力を加算する。 AD20のオーバーフローはOF2<0>として出力される。 AD21はSA21の出力とSF27の出力を加算する。 AD21のオーバーフローはOF2<1>として出力される。 以下同様に、X番目のAD2Xは、SF10または対応するSA2Xの出力とSF27の出力を加算し、AD2Xのオーバーフロー出力はOF2<X>として出力される。 AD27はSA27の出力とSF27の出力を加算し、SF27はAD27の出力を保持し、CLKiに同期して出力する。 AD27のオーバーフローはOF2<7>として出力される。 3段目並列積分ユニットも1、2段目と同様に、8並列の積分または加算を行う。

    以上の通り、各段の8個の並列積分器は、それぞれ、動作クロックCLKiで、8マスタクロック分のデータを並列に演算し、3組の8並列のデータOF0<0〜7>、OF1<0〜7>、OF2<0〜7>を出力する。 言い換えれば、第1実施形態の積分部41では、入力データに対する積分演算結果(オーバーフロー)が、積分部41の出力として、微分部51に並列に伝えられる。

    図9は、微分部51の構成例を示す図である。

    微分部51は、1〜3段目の並列積分ユニットに対応する3つの並列微分ユニットを有する。

    3段目の並列積分ユニットに対応する並列微分ユニットは、7個の入力差分器DS21〜DS27と、フリップフロップDF1と、8個の減算器DIF10〜DIF17を含む並列微分器と、を有する。

    7個の入力差分器DS21〜DS27は、積分部41の3段目の8個のデータ加算器AD20〜AD27のオーバーフローであるOF2<0〜7>の隣接するデータの差分を演算し、OFD2<1〜7>を出力する。 したがって、OFD2<1>=OF2<1>−OF2<0>、…、OFD1<7>=OF2<7>−OF2<6>である。 また、OFD2<0>=OF2<0>とする。 フリップフロップDF1は、DS27の出力を保持し、CLKiに同期して出力する。 ここで、前述したとおりOF2<1>はSF10とSF11の2つのデータに対して2回積分を行った際の累積オーバーフロー値をとり、同様に、OF2<x>はSF10〜SF1xのx+1つのデータに対してx+1回積分を行った際の累積オーバーフローであるため、差分演算を行うことで、累積オーバーフローから1積分のオーバーフローの計算を行っている。 OFD2<0>〜OFD2<7>はCLKiの周期(マスタクロック8周期分)で出力される8並列のオーバーフロー値になる。

    減算器DIF10は、積分部41の3段目のデータ加算器AD20の出力するOF2<0>、すなわちOFD2<0>からDF1の出力を減算して、DIF1<0>として出力する。 2番目の減算器DIF11は、DS21の出力OFD2<1>からOFD2<0>を減算して、DIF1<1>として出力する。 以下同様に、X番目の減算器DIFXは、DS2Xの出力OFD2<X>からOFD2<X−1>を減算して、DIF1<X>を出力する。 したがって、DIF1<0>=OFD2<0>−DF1、DIF1<1>=OFD2<1>−OFD2<0>、…、DIF1<7>=OFD2<7>−OFD2<6>となり、隣どうしのオーバーフロー信号の差分をとっており、微分動作を行っている。

    2段目の並列微分ユニットは、7個の入力差分器DS11〜DS17と、ディレイ部と、8個の加算器TA10〜TA17の列と、フリップフロップDF0と、8個の減算器DIF00−DIF07と、を有する。

    7個の入力差分器DS11〜DS17は、積分部41の2段目の8個のデータ加算器AD10〜AD17のオーバーフローであるOF1<0〜7>の隣接するデータの差分を演算し、OFD1<1〜7>を出力する。 したがって、OFD1<1>=OF1<1>−OF1<0>、…、OFD1<7>=OF1<7>−OF1<6>である。 また、OFD1<0>=OF1<0>とする。 ここで、OF1<x>はSF00〜SF0xのx+1つのデータに対してx+1回積分を行った際の累積オーバーフローであるため、この差分演算を行うことで、累積オーバーフローから1積分のオーバーフローの計算を行っている。 OFD1<0>〜OFD1<7>はCLKiの周期(マスタクロック8周期分)で出力される8並列のオーバーフロー値になる。

    ディレイ部は、8個のフリップフロップMF10〜MF17を有し、OFD1<0〜7>を保持し、CLKiに同期して出力する。 言い換えれば、ディレイ部は、OFD1<0〜7>を、CLKiの1周期分遅延する。

    TA10〜TA17は、DIF10〜DIF17の出力とMF10〜MF17の出力をそれぞれ加算して、ADS1<0〜7>を出力する。

    フリップフロップDF0は、TA17の出力ADS1<7>を保持し、CLKiに同期して出力する。

    減算器DIF00は、TA10の出力ADS1<7>からDF0の出力を減算して、DIF0<0>として出力する。 2番目の減算器DIF01は、TA11の出力ADS1<1>からTA10の出力ADS1<0>を減算して、DIF0<1>として出力する。 以下同様に、X番目の減算器DIF0Xは、TA1Xの出力ADS1<X>からTA1X−1の出力ADS1<X−1>を減算して、DIF<X>として出力する。 したがって、DIF00〜DIF07およびDF0は、TA10〜TA17の出力を微分する処理を行い、微分値DIF0<0〜7>を出力する。 したがって、DIF0<0>=ADS1<0>−DF0、DIF0<1>=ADS1<1>−ADS1<0>、…、DIF0<7>=ADS1<7>−ADS1<6>となり、隣どうしのオーバーフロー信号の差分をとっており、微分動作を行っている。

    1段目の並列微分ユニットは、7個の入力差分器DS01〜DS07と、ディレイ部と、8個の加算器TA00〜TA07の列と、を有する。

    7個の入力差分器DS01〜DS07は、積分部41の1段目の8個のデータ加算器AD00〜AD07のオーバーフローであるOF0<0〜7>の隣接するデータの差分を演算し、OFD0<1〜7>を出力する。 したがって、OFD0<1>=OF0<1>−OF0<0>、…、OFD0<7>=OF0<7>−OF0<6>である。 また、OFD0<0>=OF0<0>とする。 ここで、OF0<x>はIN0〜INxのx+1つのデータに対してx+1回積分を行った際の累積オーバーフローであるため、この差分演算を行うことで、累積オーバーフローから1積分のオーバーフローの計算を行っている。 OFD0<0>〜OFD0<7>はCLKiの周期(マスタクロック8周期分)で出力される8並列のオーバーフロー値になる。

    ディレイ部は、8個のフリップフロップMF20〜MF27を含む第1組および8個のMF30〜MF37を含む第2組を有し、OFD0<0〜7>を、CLKiの2周期分遅延する。

    TA00〜TA07は、DIF00〜DIF07の出力とMF30〜MF37の出力をそれぞれ加算して、SD[0〜7]を出力する。 SD[0]〜SD[7]は、それぞれ3ビットのデータである。

    ここで、図8に示した積分部41および図9に示した微分部51を有する第1実施形態のシグマデルタ・モジュレータを、図4に示した一般的なシグマデルタ・モジュレータと対比させる。 図4に示したシグマデルタ・モジュレータは、1動作クロックに同期して、1入力データを取り込んで処理して、所定時間後から、1動作クロックに同期して演算結果を出力する。 したがって、8つの入力データを処理するには8動作クロックが必要である。 これに対して、第1実施形態のシグマデルタ・モジュレータは、入力データを1動作クロックで並列に処理して、SD[0〜7]の8並列のデータとして出力する。

    図10は、8位相クロック発生部71の回路図および動作を示すタイムチャートである。

    図10の(A)に示すように、8位相クロック発生部71は、8個のフリップフロップCF0〜CF7を、前段の出力が後段の入力になるように直列に接続し、最終段の出力を初段の入力に戻す循環型シフトレジスタである。 反転リセット信号XRSTが、初段のフリップフロップCF0のセット端子に、残りのフリップフロップCF1〜CF7のリセット端子に供給される。

    図10の(B)に示すように、反転リセット信号XRSTにより、CF0の出力CK[0]がHに、CF1〜CF7の出力CK[1]〜CK[7]がLになる。 この状態では、CF0およびCF2〜CF7の入力はL、CF1の入力がHであるから、マスタクロックCLK0が入力されると、CK[1]がHになり、CK[0]およびCK[2]〜CK[7]がLになる。 以下、CLK0の周期ごとに、HになるCKの位置がシフトし、循環するので、図10の(B)のようなCLK0の周期の幅を有する8位相のシフトクロックが得られる。 8位相のシフトクロックは、並列直列変換部61に供給される。

    図11は、並列直列変換部61の構成を示す図である。 図12は、並列直列変換部61の動作を示すタイムチャートである。

    上記のように、シグマデルタ演算部31の微分部51は、3ビットのデータであるSD[0]〜SD[7]を並列に出力する。 並列直列変換部61は、3つの変換処理部620〜622を有する。 変換処理部620は、SD[0]〜SD[7]の1ビット目の信号SD[7:0][0]を直列の8ビットの信号に変換して、変換出力OUT[0]を出力する。 変換処理部621は、SD[0]〜SD[7]の2ビット目の信号SD[7:0][1]を直列の8ビットの信号に変換して、変換出力OUT[1]を出力する。 変換処理部622は、SD[0]〜SD[7]の3ビット目の信号SD[7:0][2]を直列の8ビットの信号に変換して、変換出力OUT[2]を出力する。 OUT[0]〜OUT[2]が3ビットの変換出力であり、並列直列変換部61は、マスタクロックCLK0に同期してOUT[0]〜OUT[2]を出力する。

    変換処理部620は、3組のラッチ群SDF0〜SDF2と、デジタルフィルタ64と、ラッチ群SDF3と、セレクタ65と、を有する。 ラッチ群SDF0〜SDF2は、それぞれ8個のラッチを有し、ラッチ群SDF0はCK[4]に応じてSD[7:0][0]を、ラッチ群SDF1はCK[5]に応じてSD[7:0][0]を、ラッチ群SDF0はCK[6]に応じてSD[7:0][0]をラッチする。 ラッチ群SDF3は、CK[1]に応じてデジタルフィルタを通過したSD[7:0][0]のうちの4ビット分SD[7:4][0]をラッチする。 デジタルフィルタ64は、後述するフィルタ処理を行い、出力SO[7:0][0]を出力する。 セレクタ65は、CK[7:0]の8位相のクロックに応じて、SO[3:0][0]およびラッチ群SDF3の出力するSO[7:4][0]を順次選択して出力する。

    変換処理部621および622は、変換処理部620と同じ構成を有する。

    動作クロックCLKiに基づいて低速で動作する積分部41と微分部51クロックのタイミングと、マスタクロックCLK0に基づいて高速で動作する並列直列変換部61のクロックのタイミングは、一致することが保証されない。 そのため、微分部51からのデータが入力される並列直列変換部61は、タイミングの一致が保証されない非同期に近いデータが入力されることになる。

    そこで、変換処理部620は、まずクロック乗り換機構で、クロックの乗り換えを行う。 クロック乗り換え機構は、3組のラッチ群SDF0〜SDF2およびデジタルフィルタで形成される。 8位相クロック発生部71で生成された8相のクロックCK[0]〜CK[7]は、図12においてPで示すようにシフトしている。 クロックCK[0]〜CK[7]のうち、4〜6番目の3つのクロックCK[4]〜CK[6]で、ラッチ群SDF0〜SDF2が微分部51からのデータSD[7:0][0]をラッチする。 このとき、もし微分部51からのデータの変化エッジとラッチのクロックエッジが一致した場合、ラッチの不安定動作(メタステイブル)を起こす可能性がある。 そこで、それを除去するために、ラッチの後にデジタルフィルタ64で処理を行う。 ここで、デジタルフィルタ64における処理の簡単な例として、3つのラッチ出力の多数決をとる多数決処理を使用でき、デジタルフィルタ64として多数決回路を使用してもよい。 そのあと、デジタルフィルタ64の出力SO[7:0][0]のうち、SO[7:4][0]のデータはさらにラッチ群SDF3でCK[1]にてラッチする。 その後の選択処理で、セレクト制御信号CK[7:0]とセレクタ65の入力信号の遷移タイミングが一致しないように処理を行う。

    以上の処理により、図12においてQで示すように、SD[0]〜SD[7]は、CK[0]からCK[7]のパルスが立ち上がる間保持され、CK[0]からCK[7]に応じて、出力OUT「0」からOUT[7]が順次出力される。

    図13は、第1実施形態のシグマデルタ・モジュレータの出力スペクトルを示す図である。 図13に示すように、第1実施形態では、図4に示した一般的なシグマデルタ・モジュレータと等価な演算が行われることが分かる。

    図14は、第2実施形態のシグマデルタ・モジュレータの全体構成を示す図である。

    第2実施形態のシグマデルタ・モジュレータは、微分部51の後にコード変換器81を配置して、微分部51の出力SD[7:0][2:0]を任意のコードに変換した後、並列直列変換部61に入力するようにしたことが、第1実施形態と異なり、他は同じである。

    図15は、変換コードの例を示す表である。 この例では、3ビットの−3から4までの8値に対して、“1”にする個数を変化させる変換が行われる。 変換後の8ビットのデータでは、上位に“0”が下位に“1”が連続し、“1”になる位置が順にシフトする。

    図16は、第2実施形態のシグマデルタ・モジュレータにおける並列直列変換部61の構成を示す図である。 並列直列変換部61に入力されるデータSD[0]〜SD[7]が、それぞれ8ビットのデータになるため、8個の変換処理部が設けられる。 各変換処理部は、図11の変換処理部620と同じ構成を有する。

    図17は、第3実施形態のシグマデルタ・モジュレータの全体構成を示す図である。

    第3実施形態のシグマデルタ・モジュレータは、並列直列変換部61の後にフリップフロップ91を配置し、マスタクロックCLK0でタイミングの再調整を行うことが、第1実施形態と異なり、他は同じである。 第1および第2実施形態では、8位相クロック発生部71の8相のクロックの位相がずれてしまった場合、そのずれが出力データのタイミングに表れてしまう。 これに対して、第3実施形態では、このずれをなくすことが可能であり、出力データのタイミングをより高精度に設定できる。

    以上、第1から第実施形態を説明したが、各種の変形例が可能であるのはいうまでもない。 例えば、上記の実施形態では、3次MASH方式のシグマデルタ・モジュレータで、8個のデータを並列に処理する例を説明したが、MASH方式の次数、並列に処理するデータ数等を他の値とすることが可能であるのは、当業者であれば容易に理解可能である。

    以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。 発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。

    12 補間フィルタ 13 シグマデルタ・モジュレータ(ΣΔMod)
    14 低ビットDAC
    15 アナログ・ロウパス・フィルタ 21 入力データ保持部 31 シグマデルタ演算部 41 積分部 51 微分部 61 並列直列変換部 71 8位相クロック発生部

    QQ群二维码
    意见反馈