(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022142418
(43)【公開日】2022-09-30
(54)【発明の名称】半導体集積回路及び演算システム
(51)【国際特許分類】
H03M 1/66 20060101AFI20220922BHJP
G06G 7/14 20060101ALI20220922BHJP
G06G 7/16 20060101ALI20220922BHJP
G06N 3/063 20060101ALI20220922BHJP
G06G 7/60 20060101ALN20220922BHJP
【FI】
H03M1/66 C
G06G7/14
G06G7/16
G06N3/063
G06G7/60
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021042572
(22)【出願日】2021-03-16
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】ベルダン ラドゥ
(72)【発明者】
【氏名】宮下 大輔
(72)【発明者】
【氏名】出口 淳
【テーマコード(参考)】
5J022
【Fターム(参考)】
5J022BA01
5J022CC03
5J022CE02
5J022CE06
5J022CF01
5J022CF03
(57)【要約】
【課題】一つの実施形態は、複数のDAコンバータについてDA変換の精度を向上することを目的とする。
【解決手段】一つの実施形態によれば、半導体集積回路の各DAコンバータにおいて、第1のスイッチは、電流源に接続された第1端と容量素子の第1端に接続された第2端とを有する。第2のスイッチは、容量素子の第1端に接続された第1端と基準電位に接続された第2端とを有する。第3のスイッチは、容量素子の第1端に接続された第1端と増幅回路の入力ノードに接続された第2端とを有する。制御回路は、第1の期間に、第1のスイッチ及び第3のスイッチをオフ状態に維持しながら第2のスイッチをオン状態に維持する。制御回路は、第1の期間より後の第2の期間に、第2のスイッチ及び第3のスイッチをオフ状態に維持しながら第1のスイッチをオン状態に維持する。複数のDAコンバータは、グローバル回路から受ける信号に応じて、第2の期間の終了タイミングが同期する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
グローバル回路と、
前記グローバル回路に接続された複数のDAコンバータと、
を備え、
前記複数のDAコンバータのそれぞれは、
電流源と、
第1端及び前記DAコンバータの基準電位に接続された第2端を有する容量素子と、
入力ノードを有する増幅回路と、
前記電流源に接続された第1端と、前記容量素子の前記第1端に接続された第2端と、を有する第1のスイッチと、
前記容量素子の前記第1端に接続された第1端と、前記基準電位に接続された第2端と、を有する第2のスイッチと、
前記容量素子の前記第1端に接続された第1端と、前記増幅回路の前記入力ノードに接続された第2端と、を有する第3のスイッチと、
第1の期間に、前記第1のスイッチ及び前記第3のスイッチをオフ状態に維持しながら前記第2のスイッチをオン状態に維持し、前記第1の期間より後の第2の期間に、前記第2のスイッチ及び前記第3のスイッチをオフ状態に維持しながら前記第1のスイッチをオン状態に維持する制御回路と、
を有し、
前記複数のDAコンバータは、前記グローバル回路から受ける信号に応じて、前記第2の期間の終了タイミングが同期する
半導体集積回路。
【請求項2】
前記制御回路は、前記第1の期間と前記第2の期間との間の第3の期間に、前記第1のスイッチ、前記第2のスイッチ及び前記第3のスイッチをオフ状態に維持する
請求項1に記載の半導体集積回路。
【請求項3】
前記制御回路は、前記第2の期間より後の第4の期間に、前記第1のスイッチ及び前記第2のスイッチをオフ状態に維持しながら前記第3のスイッチをオン状態に維持する
請求項2に記載の半導体集積回路。
【請求項4】
前記グローバル回路は、グローバルカウンタを有し、前記グローバルカウンタのカウント開始時にスタート信号を出力し、前記グローバルカウンタのカウント終了時にストップ信号を出力し、
前記制御回路は、前記グローバル回路に接続されたローカルカウンタを有し、前記グローバル回路から受けるスタート信号に応じて始まる前記第3の期間に、前記ローカルカウンタは入力されたデジタル信号の値から最大値までカウントアップし、前記ローカルカウンタのカウント値が前記最大値に達したことに応じて始まり前記グローバル回路から受けるストップ信号に応じて終わる前記第2の期間に、前記ローカルカウンタは最小値から前記入力されたデジタル信号の値までカウントアップする
請求項2又は3に記載の半導体集積回路。
【請求項5】
前記複数のDAコンバータは、前記第2の期間の開始タイミングが非同期である
請求項1から4のいずれか1項に記載の半導体集積回路。
【請求項6】
グローバル回路と、
前記グローバル回路に接続された複数のDAコンバータと、
を備え、
前記複数のDAコンバータのそれぞれは、
制御端を有する可変電流源と、
第1のノードに接続された第1端と、前記DAコンバータの基準電位に接続された第2端と、を有する第1の容量素子と、
前記可変電流源の前記制御端に接続された第1端と、前記DAコンバータの電源電位に接続された第2端と、を有する第2の容量素子と、
前記グローバル回路から参照信号が供給される第1の入力ノードと、前記第1のノードに接続された第2の入力ノードと、出力ノードと、を有する差動増幅回路と、
前記第1のノードに接続された第1端と、前記基準電位に接続された第2端と、を有する第1のスイッチと、
前記可変電流源の前記制御端に接続された第1端と、前記電源電位に接続された第2端と、を有する第2のスイッチと、
前記可変電流源の前記制御端に接続された第1端と、前記差動増幅回路の前記出力ノードに接続された第2端と、を有する第3のスイッチと、
前記可変電流源に接続された第1端と、前記第1のノードに接続された第2端と、を有する第4のスイッチと、
を有する、
半導体集積回路。
【請求項7】
前記差動増幅回路と前記第3のスイッチとの間に接続されたインバータをさらに備えた
請求項6に記載の半導体集積回路。
【請求項8】
前記複数のDAコンバータのそれぞれは、
第1の期間に、前記第3のスイッチ及び前記第4のスイッチをオフ状態に維持しながら前記第1のスイッチ及び前記第2のスイッチをオン状態に維持し、前記第1の期間より後の第2の期間に、前記第1のスイッチ及び前記第2のスイッチをオフ状態に維持しながら前記第3のスイッチ及び前記第4のスイッチをオン状態に維持する制御回路をさらに有する
請求項6に記載の半導体集積回路。
【請求項9】
複数の第1信号を生成する請求項1に記載の半導体集積回路と、
複数行及び複数列を構成するように配列され、前記複数の第1信号にそれぞれ独立した重みを乗算して複数の計算結果を生成する複数の乗算素子と、
前記複数列ごとに前記複数の計算結果のうちの各列の計算結果の和を計算して複数の第2信号を生成する複数の加算素子と、
を備えた演算システム。
【請求項10】
複数の第1信号を生成する請求項6に記載の半導体集積回路と、
複数行及び複数列を構成するように配列され、前記複数の第1信号にそれぞれ独立した重みを乗算して複数の計算結果を生成する複数の乗算素子と、
前記複数列ごとに前記複数の計算結果のうちの各列の計算結果の和を計算して複数の第2信号を生成する複数の加算素子と、
を備えた演算システム。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、半導体集積回路及び演算システムに関する。
【背景技術】
【0002】
複数のDAコンバータを有する半導体集積回路が知られている。複数のDAコンバータはそれぞれデジタル値をアナログ信号へ変換する。このとき、複数のDAコンバータについてDA変換の精度を向上することが望まれる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2019-504585号公報
【特許文献2】特開2009-303042号公報
【特許文献3】特開2011-109562号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一つの実施形態は、複数のDAコンバータについてDA変換の精度を向上できる半導体集積回路及び演算システムを提供することを目的とする。
【課題を解決するための手段】
【0005】
一つの実施形態によれば、グローバル回路と複数のDAコンバータとを有する半導体集積回路が提供される。複数のDAコンバータは、グローバル回路に接続される。複数のDAコンバータのそれぞれは、電流源と容量素子と増幅回路と第1のスイッチと第2のスイッチと第3のスイッチと制御回路とを有する。容量素子は、第1端、及びDAコンバータの基準電位に接続された第2端を有する。増幅回路は、入力ノードを有する。第1のスイッチは、電流源に接続された第1端と、容量素子の第1端に接続された第2端と、を有する。第2のスイッチは、容量素子の第1端に接続された第1端と、基準電位に接続された第2端と、を有する。第3のスイッチは、容量素子の第1端に接続された第1端と、増幅回路の入力ノードに接続された第2端と、を有する。制御回路は、第1の期間に、第1のスイッチ及び第3のスイッチをオフ状態に維持しながら第2のスイッチをオン状態に維持する。制御回路は、第2の期間に、第2のスイッチ及び第3のスイッチをオフ状態に維持しながら第1のスイッチをオン状態に維持する。第2の期間は、第1の期間より後の期間である。複数のDAコンバータは、グローバル回路から受ける信号に応じて、第2の期間の終了タイミングが同期する。
【図面の簡単な説明】
【0006】
【
図1】第1の実施形態にかかる演算システムの構成を示す図。
【
図2】第1の実施形態における半導体集積回路の構成を示す図。
【
図3】第1の実施形態におけるDAコンバータ(SCIDAC)の構成を示す図。
【
図4】第1の実施形態における半導体集積回路の動作を示す波形図。
【
図5】第2の実施形態におけるDAコンバータの構成を示す図。
【
図6】第2の実施形態におけるDAコンバータの補正動作を示す図。
【
図7】第3の実施形態におけるDAコンバータの構成を示す図。
【
図8】第3の実施形態におけるDAコンバータの動作を示す波形図。
【
図9】第3の実施形態におけるDAコンバータの動作を示す図。
【
図10】第3の実施形態におけるDAコンバータの動作を示す図。
【
図11】第3の実施形態におけるDAコンバータの動作を示す図。
【
図12】第3の実施形態におけるDAコンバータの動作を示す図。
【
図13】第4の実施形態におけるDAコンバータの構成を示す図。
【
図14】第4の実施形態におけるDAコンバータの動作を示す波形図。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、実施形態にかかる演算システムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【0008】
(第1の実施形態)
第1の実施形態にかかる演算システムは、演算を実行する素子が行列状に配置された回路ブロックを含む。この回路ブロックは、各列の素子に、それぞれが独立して異なる値になり得る電圧を並列に印加するような用途が考えられる。例えば、第1の実施形態にかかる演算システムは、ニューラルネットワークの処理の一部を実行する用途に用いられ得る。ニューラルネットワークは、入力層と出力層との間に複数の中間層を有する。演算システムは、ニューラルネットワークにおけるある層の複数のニューロンの計算を積和演算で並行して行う。この積和演算の構成は、乗算素子が行列状に配置された回路ブロックで実現可能である。
【0009】
回路ブロックがアナログ信号を扱うが、回路ブロックへ供給される信号がデジタル信号である場合、回路ブロックに対して入力側である列方向端部には、複数のDAコンバータが配置される。演算システムの回路面積を低減するためには、各DAコンバータは、列方向に狭い間隔で配置できることが要求され得る。回路ブロックにインメモリコンピューティングを適用する場合、行列状に配置される1つ1つの素子が非常に小さくなり得ることに応じて、DAコンバータの回路面積を小さくすることが望ましい。
【0010】
例えば、演算システム1は、
図1に示すように、不揮発性メモリ素子NVMを利用したインメモリコンピューティング向けの回路構成で実現可能である。
図1は、演算システム1の構成を示す図である。
【0011】
演算システム1は、複数のDAコンバータ(DAC)2_i~2_i+3、回路ブロック3、及び出力ネットワーク4を有する。回路ブロック3では、複数のワードラインWL
i~WL
i+3と複数のビットラインBL
j~BL
j+3とが交差する位置に複数の不揮発性メモリ素子NVM(i,j)~NVM(i+3,j+3)が配されている。複数の不揮発性メモリ素子NVM(i,j)~NVM(i+3,j+3)は、行列状に配置される。なお、
図1では4行4列が示されているが、これは4行4列より大きなアレイのうち、i,jをそれぞれ任意の自然数として、i行からi+3行のj列からj+3列のみを図示したものである。各不揮発性メモリ素子NVM(i,j)~NVM(i+3,j+3)は、受けた信号に重みW
i,j~W
i+3,j+3を乗算して乗算結果の信号を生成する乗算素子として機能する。各不揮発性メモリ素子NVM(i,j)~NVM(i+3,j+3)は、ワードラインWLに接続された第1端と、ビットラインBLに接続された第2端と、を備え、その抵抗状態が重みW
i,j~W
i+3,j+3に応じた抵抗値に設定され得る。重み行列Wは、重みW
i,j~W
i+3,j+3を要素とするi行j列の行列としてとらえることができる。
図1では、乗算素子が不揮発性メモリ素子NVMである場合が例示されているが、信号に重みを乗算可能な素子であれば、他のメモリ素子(例えば、SRAMのビットセル、NAND型フラッシュメモリのメモリセルなど)であってもよい。
【0012】
複数のDAコンバータ2_i~2_i+3は、回路ブロック3に対して列方向の端部に配され、行方向に並ぶ。複数のDAコンバータ2_i~2_i+3は、それぞれ、回路ブロック3の第i行~第i+3行に対応している。複数のDAコンバータ2_i~2_i+3は、デジタル信号D=(Di,Di+1,Di+2,Di+3)をDA変換してアナログ信号としてのワードライン電圧X=(Xi,Xi+1,Xi+2,Xi+3)を生成する。生成されたワードライン電圧X=(Xi,Xi+1,Xi+2,Xi+3)は、入力活性化信号として、複数の不揮発性メモリ素子NVM(i,j)~NVM(i+3,j+3)に並行して印可される。ワードライン電圧X=(Xi,Xi+1,Xi+2,Xi+3)に重みWが乗算されて列ごとに合計されたビットライン電流Y=(Yj,Yj+1、Yj+2,Yj+3)が出力ネットワーク4へ供給される。各ビットラインBLj~BLj+3は、列方向に並ぶ複数の不揮発性メモリ素子NVMの信号を加算する加算素子として機能する。不揮発性メモリ素子NVMには、予め両端に印加される電圧(セット電圧又はリセット電圧)に応じて抵抗値が書き込まれる。重みWは、不揮発性メモリ素子NVMへ予め書き込まれた抵抗値に依存している。ビットライン電流としてのベクトルYは、ワードライン電圧としてのベクトルX×行列Wの積和演算結果を表している(Y=X×W)。
【0013】
図1に示す回路構成では、回路ブロック3における各素子(例えば、不揮発性メモリ素子NVM)のサイズが製造プロセスによって決まる限界最小サイズ程度にまで微細化され得る。演算システム1の回路面積を低減するためには、各行のDAコンバータ2に対して、要求される動作精度や動作速度などの他の要求性能を満たしながら、行方向に狭い間隔で配置できるような小面積であることが望まれる。
図1は、行方向に狭い間隔でDAコンバータ2を配置することが要求される例を示す。
【0014】
DAコンバータの構成には、電荷再分配方式、抵抗による分圧方式、電流切り替え方式などの構成が考えられる。これらの構成は、行方向に狭い間隔で配置するような面積制約のある用途に向かない。
【0015】
それに対して、DAコンバータの構成として、入力された信号のデジタル値の上位ビットに対応する電圧VMSBを生成する上位ビット用の回路と、入力された信号のデジタル値の下位ビットに対応する電圧VLSBを生成する下位ビット用の回路とを組み合わせた構成が考えられる。上位ビット用の回路は、上位ビットに対応する電圧VMSBを粗い精度で生成すればよく、抵抗による分圧方式で構成され得る。下位ビット用の回路は、下位ビットに対応する電圧VLSBを高精度に生成するため、電荷再分配方式で構成され得る。この構成は、LEDパネル駆動などの用途に適用されるが、スイッチの素子数が多くなりやすく、同様に、列方向に狭い間隔で配置するような面積制約のある用途に対して、不十分である。
【0016】
DAコンバータの面積を低減する1つの方法は、回路を構成する各素子のサイズを小さくすることである。素子のサイズを小さくすると、素子サイズがばらつきやすくなり、電荷電圧変換における線形性誤差・ゲイン誤差が増大しやすく、DA変換の精度が劣化し得る。
【0017】
DAコンバータの面積を低減する他の方法は、回路構成を改良し、回路を構成する素子の数を減らすことである。入力のデジタル信号の値に比例する時間で定電流により容量素子に電荷を蓄積するようにDAコンバータを構成すると、DAコンバータの素子数を少なくすることができる。この構成を電荷蓄積型のDAコンバータと呼ぶことにする。
【0018】
例えば、電荷蓄積型のDAコンバータは、ダウンカウンタ、ロジック回路、定電流源、スイッチ、容量素子、アンプで構成され得る。スイッチは、第1端が定電流源に接続され、第2端が容量素子の第1端及びアンプの入力ノードに接続される。容量素子の第2端は、基準電位(例えば、グランド電位)に接続される。ダウンカウンタは、デジタル信号Dの値からカウントし始め、カウンタクロックCLKCに同期してカウント値をディクリメントし、カウント値が最小値(例えば、0)に達したらカウントを終了する。ロジック回路は、ダウンカウンタのカウント値を受け、カウント開始からカウント終了まではHレベルの信号をスイッチに出力し、カウント終了後にLレベルの信号をスイッチに出力する。これにより、「デジタル信号Dの値」×「カウンタクロックCLKCの周期」の時間長さで、スイッチが選択的にオン状態に維持され、定電流源からの定電流で容量素子の第1端に電荷が蓄積される。これにより、デジタル信号Dの値に比例した電圧Vcが容量素子に発生し、その電圧Vcがアンプで増幅されアナログ信号Xとして出力される。
【0019】
電荷蓄積型のDAコンバータでは、DA変換の精度が、定電流源からの電流の精度と容量素子の容量の精度とに影響される。容量素子の容量の精度を確保するために、容量素子の素子サイズが大きく確保されると、DAコンバータの回路面積が増大する可能性がある。回路面積を低減するためには、容量素子の素子サイズを小さく抑えながら、DA変換の精度を向上することが望まれる。
【0020】
ところで、演算システム1では、複数行のDAコンバータ2_i~2_i+3がそれぞれDA変換を行う。そのため、複数行のDAコンバータ2_i~2_i+3の動作タイミングを統括的に制御するために、
図2に示すようなグローバル回路5が設けられる。
図2は、グローバル回路5及び複数行のDAコンバータ2_i~2_i+3を示す図である。グローバル回路5は、複数行のDAコンバータ2_i~2_i+3に接続される。グローバル回路5及び複数のDAコンバータ2_i~2_i+3は、半導体集積回路10の一部を構成する。半導体集積回路10は、デジタル信号D=(D
i,D
i+1,D
i+2,D
i+3)をDA変換して、アナログ信号としてのワードライン電圧X=(X
i,X
i+1,X
i+2,X
i+3)を生成して回路ブロック3へ出力する。
【0021】
グローバル回路5は、グローバルアップカウンタ51及びグローバルロジック回路52を有する。グローバル回路5は、カウンタクロックCLKCを発生させてグローバルアップカウンタ51及び各DAコンバータ2へ供給する。デジタル信号Dのビット数をNとする。グローバルアップカウンタ51は、カウンタクロックCLKCに同期して最小値から最大値までカウントする。グローバルアップカウンタ51の最大カウント値を2進数で表現した場合のビット数は、デジタル信号Dのビット数に対応し、例えばNビットである。グローバルアップカウンタ51の最小値は、デジタル信号Dの最小値に対応し、例えば0である。グローバルアップカウンタ51の最大値は、デジタル信号Dの最大値に対応し、例えば2Nである。グローバルロジック回路52は、グローバルアップカウンタ51が最小値でカウント動作を開始することに応じて、グローバルスタート信号GSTARTをアクティブレベルにして各DAコンバータ2へ供給する。グローバルロジック回路52は、カウント値が最大値に達しグローバルアップカウンタ51がカウント動作を終了することに応じて、グローバルストップ信号GSTOPをアクティブレベルにして各DAコンバータ2へ供給する。グローバルスタート信号GSTARTがアクティブレベルになるタイミングをグローバルスタートタイミングと呼び、グローバルストップ信号GSTOPがアクティブレベルになるタイミングをグローバルストップタイミングと呼ぶことにする。
【0022】
例えば、複数行のDAコンバータ2がダウンカウンタを用いて構成される場合、各DAコンバータ2は、グローバルスタートタイミングに、同時に、ダウンカウンタでデジタル信号の値からカウント動作を開始するとともに容量素子への電荷の蓄積を開始する。各DAコンバータ2は、共通のカウンタクロックCLKCに同期してそのカウント値をディクリメントし、互いに異なり得るタイミングでカウント値が最小値に達してカウント動作を終了するとともに容量素子への電荷の蓄積を終了する。その後、複数行のDAコンバータ2は、グローバルストップタイミングに、容量素子に保持された電圧に応じた信号をアナログ信号Xとして出力する。
【0023】
ここで、グローバルスタートタイミングからグローバルストップタイミングまでの期間を変換期間と呼び、容量素子への電荷の蓄積が行われる期間を電荷蓄積期間と呼び、電荷蓄積期間の終了タイミングからグローバルストップタイミングまでの期間をアイドリング期間と呼ぶことにする。容量素子から電荷が抜ける電荷リークについて、アイドリング期間における電荷リークの量が電荷蓄積期間における電荷リークの量より大きい傾向にある。このため、アイドリング期間が長くなるほど、容量素子からの電荷リークの量が大きくなり、容量素子の蓄積電圧が減衰しやすく、DAコンバータ2におけるDA変換の誤差が増大する可能性がある。
【0024】
また、変換期間の時間長さは、複数行のDAコンバータ2間で同じである。各DAコンバータ2間でDA変換すべきデジタル信号の値が異なる場合、電荷蓄積期間の時間長さが各DAコンバータ2間で異なる。このため、アイドリング期間の時間長さが各DAコンバータ2の間で異なり、DA変換の誤差のばらつきが増大する可能性がある。すなわち、演算システム1又は半導体集積回路10全体としてみた場合に、DA変換の誤差が増大する可能性がある。
【0025】
そこで、本実施形態では、複数行のDAコンバータ2において、電荷蓄積期間の終了タイミングをグローバルストップタイミングで同期させることで、電荷リークの低減及びそれによるDA変換精度の向上を図る。
【0026】
具体的には、複数行のDAコンバータ2のそれぞれにおいて、ダウンカウンタに代えてアップカウンタ(ローカルアップカウンタとも呼ぶ)を用いる。各DAコンバータ2は、グローバルスタートタイミングから、カウンタクロックCLKCに同期してアップカウンタでデジタル信号の値から最大値までカウントアップする。その後、各DAコンバータ2は、アップカウンタのカウント値を最大値に達したタイミングから、カウンタクロックCLKCに同期してアップカウンタで最小値からカウントアップするとともに、定電流源と容量素子との間のスイッチをオンさせ、容量素子への電荷の蓄積を行う。各DAコンバータ2は、グローバルストップタイミングにおいて、アップカウンタのカウント動作を停止するとともに、容量素子への電荷の蓄積を完了させる。これにより、アイドリング期間を削減することができ、電荷蓄積期間の終了タイミングの直後に容量素子で保持された電圧に応じたアナログ信号を生成して出力できるので、アナログ信号に含まれる電荷リークによる誤差を低減でき、DA変換の精度を向上できる。また、複数のDAコンバータ2で電荷蓄積期間の終了タイミングが同期しているので、DA変換の誤差のばらつきを抑制でき、演算システム1又は半導体集積回路10全体としてみた場合に、DA変換の誤差を低減できる。
【0027】
なお、各DAコンバータ2は、電荷蓄積期間の終了タイミングが同期する電荷蓄積型のDAコンバータであり、SCIDAC(Synchronous Charge Integrated Digital Analog Converter)と呼ぶことができる。
【0028】
より具体的には、各DAコンバータ(各SCIDAC)2は、
図3に示すように構成され得る。
図3は、DAコンバータ2の構成を示す図である。なお、第i行と第i+1行のDAコンバータ2_i,2_i+1を例示するが、第i+2行と第i+3行のDAコンバータ2_i+2,2_i+3についても同様に構成され得る。
【0029】
第i行のDAコンバータ2_iは、NビットのDAコンバータであり、Nビットのデジタル信号DiをDA変換してアナログ信号Xiを生成する。DAコンバータ2_iは、電流源CS、容量素子Ci、増幅回路AM、スイッチB、スイッチR、スイッチS、及び制御回路6_iを有する。
【0030】
電流源CSは、電圧VREFとスイッチBとの間に電気的に接続される。電流源CSは、他のDAコンバータ2_i+1の電流源CSと均等な電流値を有する定電流IBを発生する。電流源CSは、電圧VREFに接続される第1端と、スイッチBの第1端に接続される第2端と、を有する。
【0031】
容量素子Ciは、蓄積される電荷の量に応じて電圧を発生可能である。容量素子Ciは、ノードN1に電気的に接続される第1端と、グランド電位に電気的に接続される第2端と、を有する。
【0032】
増幅回路AMは、受けた信号を増幅して出力する。増幅回路AMは、入力ノードがスイッチSを介してノードN1に電気的に接続され、出力ノードがノードN2に電気的に接続される。ノードN2は、DAコンバータ2_iの出力ノードを構成し、回路ブロック3における対応するワード線WL
i(
図1参照)に電気的に接続される。
【0033】
スイッチBは、電流源CSとノードN1との間に電気的に接続される。スイッチBは、電流源CSに接続される第1端と、ノードN1に接続される第2端と、制御回路6_iに接続される制御端と、を有する。スイッチBは、制御回路6_iからアクティブレベルの制御信号Biを受けた際にオンして電流源CSをノードN1に接続する。スイッチBは、制御回路6_iからノンアクティブレベルの制御信号Biを受けた際にオフして電流源CSをノードN1から電気的に遮断する。
【0034】
スイッチRは、ノードN1と基準電位との間に電気的に接続される。基準電位は、例えばグランド電位である。スイッチRは、ノードN1に接続される第1端と、基準電位に接続される第2端と、制御回路6_iに接続される制御端と、を有する。スイッチRは、制御回路6_iからアクティブレベルの制御信号Riを受けた際にオンしてノードN1を基準電位に接続する。これにより、容量素子Cに蓄積された電荷が基準電位に排出され、容量素子Cの電圧がリセットされる。スイッチRは、制御回路6_iからノンアクティブレベルの制御信号Riを受けた際にオフしてノードN1を基準電位から電気的に遮断する。これにより、容量素子Cの電圧のリセットが完了する。
【0035】
スイッチSは、ノードN1と増幅回路AMとの間に電気的に接続される。スイッチSは、ノードN1に接続される第1端と、増幅回路AMに接続される第2端と、制御回路6_iに接続される制御端と、を有する。スイッチSは、制御回路6_iからアクティブレベルの制御信号Siを受けた際にオンしてノードN1を増幅回路AMの入力ノードに接続する。これにより、容量素子Ciに保持された電圧が増幅回路AMに転送されて増幅回路AMで増幅され、増幅後の信号がアナログ信号XiとしてノードN2へ出力される。スイッチSは、制御回路6_iからノンアクティブレベルの制御信号Siを受けた際にオフしてノードN1を増幅回路AMから電気的に遮断する。これにより、容量素子Ciに保持された電圧の増幅回路AMへの転送が完了する。
【0036】
制御回路6_iは、外部からデジタル信号Diを受け、グローバル回路5からグローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCを受ける。制御回路6_iは、デジタル信号Di、グローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCに応じて、ローカルスタート信号STARTi、制御信号Ri、制御信号Bi、制御信号Siを生成する。
【0037】
制御回路6_iは、ローカルアップカウンタ61及びローカルロジック回路62を有する。ローカルアップカウンタ61の最大カウント値を2進数で表現した場合のビット数は、デジタル信号Diのビット数に対応し、例えばNビットである。ローカルアップカウンタ61の最小値は、デジタル信号Dの最小値に対応し、例えば0である。ローカルアップカウンタ61の最大値は、デジタル信号Dの最大値に対応し、例えば2Nである。ローカルアップカウンタ61は、グローバル回路5に接続される。ローカルアップカウンタ61は、外部からデジタル信号Diを受け、グローバル回路5からグローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCを受ける。ローカルアップカウンタ61は、グローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCに応じてカウント動作を行う。ローカルロジック回路62は、ローカルアップカウンタ61のカウント値に応じて、ローカルスタート信号STARTi、制御信号Ri、制御信号Bi、制御信号Siを生成する。
【0038】
制御回路6_iは、制御信号Ri、制御信号Bi、制御信号Siを、それぞれ、スイッチRの制御端、スイッチBの制御端、スイッチSの制御端へ供給する。これにより、制御回路6_iは、スイッチR、スイッチB、スイッチSを制御する。
【0039】
なお、DAコンバータ2_i+1の構成は、
図3に示すように、DAコンバータ2_iの構成と基本的に同様であるため、説明を省略する。
【0040】
次に、半導体集積回路10の動作について説明する。半導体集積回路10では、次の動作(1)~(5)が行われる。
(1)まず、初期化処理が行われる。各行のDAコンバータ2_i~2_i+3において、スイッチBとスイッチSがオフの状態で、スイッチRがオンされ、容量素子C
i~C
i+3に保持された電圧Vc
i~Vc
i+3が0にリセットされる。また、グローバルアップカウンタ51のカウント値が最小値にセットされ、デジタル信号D
i~D
i+3の値が制御回路6_i~6_i+3のローカルアップカウンタ61の初期値としてセットされる。
(2)次に、DA変換処理が開始される。グローバルアップカウンタ51及び各行のローカルアップカウンタ61が周波数f
CLKCのカウンタクロックCLKCに同期して同時にカウントアップを開始する。
(3)各行のDAコンバータ2_i~2_i+3において、それぞれ、ローカルアップカウンタ61のカウント値が最大値(例えば、2
N)に達すると、スイッチRがオフされるとともにスイッチBがオンされ、容量素子C
i~C
i+3への電荷の蓄積が開始される。
(4)グローバルアップカウンタ51のカウント値が最大値(例えば、2
N)に達すると、DA変換処理が終了される。すなわち、全行のDAコンバータ2_i~2_i+3において、スイッチBがオフされ、容量素子C
i~C
i+3への電荷の蓄積が終了される。これにより、各DAコンバータ2の容量素子Cには、次の数式1で示される電圧が保持される。
【数1】
数式1において、kは行番号であり、k=i~i+3である。D
kは、k行のDAコンバータ2_kに入力されるデジタル信号であり、Nビットのビットパターンである。I
Bは、電流源CS
kの電流値である。f
CLKCは、カウンタクロックCLKCの周波数である。Cは、容量素子C
kの容量値である。
(5)DA変換処理が終了すると、全行のDAコンバータ2_i~2_i+3において、スイッチBがオフされるとともにスイッチSがオンされ、容量素子C
i~C
i+3の電圧が増幅されアナログ信号X
i~X
i+3として出力される。
【0041】
例えば、半導体集積回路10は、
図4に示すように動作する。
図4では、グローバル回路5と第i行、第i+1行のDAコンバータ2_i,2_i+1との動作について例示する。
図4(a)は、グローバルアップカウンタ51及び各行のローカルアップカウンタ61のカウント値を示し、
図4(b)は、グローバルスタート信号GSTART、グローバルストップ信号GSTOP及び第i,i+1行のローカルスタート信号START
i,START
i+1、制御信号R
i,R
i+1,B
i,B
i+1,S
i,S
i+1のレベル遷移のタイミングを示し、
図4(c)は、容量素子C
i,C
i+1に蓄積される電圧V
Ci,V
Ci+1を示す。
【0042】
タイミングt0の直前において、グローバル回路5は、グローバルアップカウンタ51に最小値(例えば、0)をセットし、第i行の制御回路6_iは、ローカルアップカウンタ61にデジタル信号Diの値をセットし、第i+1行の制御回路6_i+1は、ローカルアップカウンタ61にデジタル信号Di+1の値をセットする。
【0043】
このとき、第i行のローカルロジック回路52は、制御信号Ri、制御信号Bi、制御信号Siをノンアクティブレベルに維持してスイッチR、スイッチB、スイッチSへ供給している。これにより、DAコンバータ2_iにおいて、スイッチR、スイッチB、スイッチSがいずれもオフ状態に維持されている。第i+1行のローカルロジック回路52は、それぞれ、制御信号Ri+1、制御信号Bi+1、制御信号Si+1をノンアクティブレベルに維持してスイッチR、スイッチB、スイッチSへ供給している。これにより、DAコンバータ2_i+1において、スイッチR、スイッチB、スイッチSがいずれもオフ状態に維持されている。
【0044】
タイミングt0において、第i行のローカルロジック回路62は、制御信号Riをノンアクティブレベルからアクティブレベルへ遷移させる。これにより、DAコンバータ2_iにおいて、スイッチRがオンする。第i+1行のローカルロジック回路62は、制御信号Ri+1をノンアクティブレベルからアクティブレベルへ遷移させる。これにより、DAコンバータ2_i+1において、スイッチRがオンする。
【0045】
タイミングt0~t1の期間TP0において、第i行のローカルロジック回路62は、制御信号Bi及び制御信号Siをノンアクティブレベルに維持しながら制御信号Riをアクティブレベルに維持する。これにより、DAコンバータ2_iにおいて、スイッチB及びスイッチSがオフ状態に維持されながらスイッチRがオン状態に維持され、容量素子Ciに蓄積された電荷が排出され、容量素子Ciの電圧がリセットされる。第i+1行のローカルロジック回路62は、制御信号Bi+1及び制御信号Si+1をノンアクティブレベルに維持しながら制御信号Ri+1をアクティブレベルに維持する。これにより、DAコンバータ2_i+1において、スイッチB及びスイッチSがオフ状態に維持されながらスイッチRがオン状態に維持され、容量素子Ci+1に蓄積された電荷が排出され、容量素子Ci+1の電圧がリセットされる。
【0046】
タイミングt1において、グローバルアップカウンタ51は、
図4(a)に二点鎖線で示すように、最小値からカウントアップを開始する。それに応じて、グローバルロジック回路52は、
図4(b)に示すように、グローバルスタート信号GSTARTをノンアクティブレベルからアクティブレベルにする。グローバルロジック回路52は、グローバルスタート信号GSTARTを第i行のローカルアップカウンタ61及び第i+1行のローカルアップカウンタ61へそれぞれ供給する。グローバルスタート信号GSTARTがアクティブレベルになったことに応じて、第i行のローカルアップカウンタ61は、
図4(a)に一点鎖線で示すように、デジタル信号D
iの値からカウントアップを開始する。グローバルスタート信号GSTARTがアクティブレベルになったことに応じて、第i+1行のローカルアップカウンタ61は、
図4(a)に実線で示すように、デジタル信号D
i+1の値からカウントアップを開始する。グローバルアップカウンタ51、第i行のローカルアップカウンタ61、第i+1行のローカルアップカウンタ61は、それぞれ、カウンタクロックCLKCに同期してカウントアップを行う。
【0047】
また、タイミングt1において、第i行のローカルロジック回路52は、制御信号Riをアクティブレベルからノンアクティブレベルへ遷移させる。これにより、DAコンバータ2_iにおいて、スイッチRがオフし、容量素子Ciの電圧のリセットが完了する。第i+1行のローカルロジック回路62は、制御信号Ri+1をアクティブレベルからノンアクティブレベルへ遷移させる。これにより、DAコンバータ2_i+1において、スイッチRがオフし、容量素子Ci+1の電圧のリセットが完了する。
【0048】
DAコンバータ2_iに注目すると、タイミングt1~t3の期間TP1
iにおいて、
図4(a)に一点鎖線で示すように、第i行のローカルアップカウンタ61は、カウンタクロックCLKCに同期してカウントアップを行う。期間TP1
iにおいて、第i行のローカルロジック回路62は、制御信号R
i、制御信号B
i及び制御信号S
iをノンアクティブレベルに維持する。これにより、DAコンバータ2_iにおいて、スイッチR、スイッチB、スイッチSがオフ状態に維持される。
【0049】
タイミングt3において、
図4(a)に一点鎖線で示すように、第i行のローカルアップカウンタ61のカウント値が最大値に達すると、制御回路6_iは、ローカルアップカウンタ61のカウント値を最大値から最小値にリセットする。それとともに、制御回路6_iは、第i行のローカルスタート信号START
iをノンアクティブレベルからアクティブレベルにする。それに応じて、第i行のローカルアップカウンタ61は、
図4(a)に一点鎖線で示すように、最小値からカウントアップを開始する。第i行のローカルアップカウンタ61は、カウンタクロックCLKCに同期してカウントアップを行う。
【0050】
ローカルスタート信号STARTiがアクティブレベルになったことに応じて、第i行のローカルロジック回路62は、制御信号Ri及び制御信号Siをノンアクティブレベルに維持したまま、制御信号Biをノンアクティブレベルからアクティブレベルに変更する。第i行のローカルロジック回路62は、制御信号Ri、制御信号Si、制御信号Biを、それぞれスイッチR、スイッチS、スイッチBへ供給する。これにより、DAコンバータ2_iにおいて、スイッチR及びスイッチSがオフ状態に維持されながら、スイッチBがオンされ、容量素子Ciへの電荷の蓄積が開始される。
【0051】
タイミングt3~t4の期間TP2
iにおいて、
図4(a)に一点鎖線で示すように、第i行のローカルアップカウンタ61は、カウンタクロックCLKCに同期してカウントアップを行う。期間TP2
iにおいて、第i行のローカルロジック回路62は、制御信号R
i及び制御信号S
iをノンアクティブレベルに維持したまま、制御信号B
iをアクティブレベルに維持する。これにより、DAコンバータ2_iにおいて、スイッチR及びスイッチSがオフ状態に維持されたまま、スイッチBがオン状態に維持され、容量素子C
iへの電荷の蓄積が行われる。
【0052】
一方、DAコンバータ2_i+1に注目すると、タイミングt1~t2の期間TP1
i+1において、
図4(a)に実線で示すように、第i+1行のローカルアップカウンタ61は、カウンタクロックCLKCに同期してカウントアップを行う。期間TP1
i+1において、第i+1行のローカルロジック回路62は、制御信号R
i+1、制御信号B
i+1及び制御信号S
i+1をノンアクティブレベルに維持する。これにより、DAコンバータ2_i+1において、スイッチR、スイッチB、スイッチSがオフ状態に維持される。
【0053】
タイミングt2において、
図4(a)に実線で示すように、第i+1行のローカルアップカウンタ61のカウント値が最大値に達すると、制御回路6_i+1は、ローカルアップカウンタ61のカウント値を最大値から最小値にリセットする。それとともに、制御回路6_i+1は、第i+1行のローカルスタート信号START
i+1をノンアクティブレベルからアクティブレベルにする。それに応じて、第i+1行のローカルアップカウンタ61は、
図4(a)に実線で示すように、最小値からカウントアップを開始する。第i+1行のローカルアップカウンタ61は、カウンタクロックCLKCに同期してカウントアップを行う。
【0054】
ローカルスタート信号STARTi+1がアクティブレベルになったことに応じて、第i+1行のローカルロジック回路62は、制御信号Ri+1及び制御信号Si+1をノンアクティブレベルに維持したまま、制御信号Bi+1をノンアクティブレベルからアクティブレベルに変更する。第i+1行のローカルロジック回路62は、制御信号Ri+1、制御信号Si+1、制御信号Bi+1を、それぞれスイッチR、スイッチS、スイッチBへ供給する。これにより、DAコンバータ2_i+1において、スイッチR及びスイッチSがオフ状態に維持されながら、スイッチBがオンされ、容量素子Ci+1への電荷の蓄積が開始される。
【0055】
タイミングt2~t4の期間TP2
i+1において、
図4(a)に実線で示すように、第i+1行のローカルアップカウンタ61は、カウンタクロックCLKCに同期してカウントアップを行う。期間TP2
i+1において、第i+1行のローカルロジック回路62は、制御信号R
i+1及び制御信号S
i+1をノンアクティブレベルに維持したまま、制御信号B
i+1をアクティブレベルに維持する。これにより、DAコンバータ2_i+1において、スイッチR及びスイッチSがオフ状態に維持されたまま、スイッチBがオン状態に維持され、容量素子C
i+1への電荷の蓄積が行われる。
【0056】
タイミングt4において、
図4(a)に二点鎖線で示すように、グローバルアップカウンタ51のカウント値が最大値に達する。それに応じて、グローバルロジック回路52は、
図4(b)に示すように、グローバルストップ信号GSTOPをノンアクティブレベルからアクティブレベルにする。グローバルロジック回路52は、グローバルストップ信号GSTOPを第i行のローカルアップカウンタ61及び第i+1行のローカルアップカウンタ61へそれぞれ供給する。グローバルストップ信号GSTOPがアクティブレベルになったことに応じて、第i行のローカルアップカウンタ61は、
図4(a)に一点鎖線で示すように、例えばデジタル信号D
iの値でカウントアップを終了する。グローバルストップ信号GSTOPがアクティブレベルになったことに応じて、第i+1行のローカルアップカウンタ61は、
図4(a)に実線で示すように、例えばデジタル信号D
i+1の値でカウントアップを終了する。
【0057】
このとき、第i行のローカルロジック回路52は、制御信号Biをアクティブレベルからノンアクティブレベルへ遷移させるとともに、制御信号Siをノンアクティブレベルからアクティブレベルへ遷移させる。これにより、DAコンバータ2_iにおいて、スイッチRがオフして容量素子Ciへの電荷の蓄積が完了するとともに、容量素子Ciの電圧が増幅回路AMへ出力される。第i+1行のローカルロジック回路52は、制御信号Bi+1をアクティブレベルからノンアクティブレベルへ遷移させるとともに、制御信号Si+1をノンアクティブレベルからアクティブレベルへ遷移させる。これにより、DAコンバータ2_i+1において、スイッチBがオフして容量素子Ci+1への電荷の蓄積が完了するとともに、容量素子Ci+1の電圧が増幅回路AMへ出力される。
【0058】
タイミングt4以降の期間TP3において、第i行のローカルロジック回路62は、制御信号Ri及び制御信号Biをノンアクティブレベルに維持しながら制御信号Siをアクティブレベルに維持する。これにより、DAコンバータ2_iにおいて、スイッチR及びスイッチBがオフ状態に維持されながらスイッチSがオン状態に維持され、容量素子Ciの電圧が増幅回路AMで増幅されアナログ信号Xiとして出力される。第i+1行のローカルロジック回路62は、制御信号Ri+1及び制御信号Bi+1をノンアクティブレベルに維持しながら制御信号Si+1をアクティブレベルに維持する。これにより、DAコンバータ2_i+1において、スイッチR及びスイッチBがオフ状態に維持されながらスイッチSがオン状態に維持され、容量素子Ci+1の電圧が増幅回路AMで増幅されアナログ信号Xi+1として出力される。
【0059】
図4に示す期間Tは、グローバルスタートタイミングt1からグローバルストップタイミングt4までの期間であり、DA変換動作が行われる変換期間であり、第i行及び第i+1行で共通である。すなわち、変換期間Tは、複数行のDAコンバータ2_i~2_i+3で共通である。
【0060】
期間TP2i,TP2i+1は、それぞれ、第i行、第i+1行の電荷蓄積期間である。期間TP2i,TP2i+1は、それぞれ、開始タイミングがt3,t2であり、非同期である。すなわち、電荷蓄積期間TP2は、その開始タイミングが複数行のDAコンバータ2_i~2_i+3の間で非同期である。
【0061】
期間TP2i,TP2i+1は、それぞれ、終了タイミングがグローバルストップタイミングt4に同期する。すなわち、電荷蓄積期間TP2は、その終了タイミングが複数行のDAコンバータ2_i~2_i+3の間で同期する。
【0062】
図4(c)に示されるように、各行において容量素子Cの電圧V
Cは、入力されるデジタル信号Dの値に応じて異なる時刻に初期値(例えば0)から上昇を開始し、同じ時刻に上昇が止まる。各容量素子Cの電圧V
Cは、上昇が止まった後に減衰が始まる。しかし、本第1の実施形態によれば、容量素子Cの電圧V
Cの上昇が止まった後に、電圧V
Cの減衰量が少ない時点でアナログ信号Xを出力することができるので、電荷リークによるアナログ信号の減衰を抑制できる。すなわち、変換期間Tの前半で電荷の蓄積を行い後半がアイドリング期間となるDA変換の方式に比べて、電荷の蓄積終了からアナログ信号出力までのタイムラグを短縮でき、アナログ信号における電荷リークによる誤差を低減できる。
【0063】
以上のように、第1の実施形態では、複数行のDAコンバータ2において、電荷蓄積期間の終了タイミングをグローバルストップタイミングに同期させる。これにより、各DAコンバータ2において、アナログ信号における電荷リークによる誤差を低減できるので、DA変換の精度を向上できる。
【0064】
(第2の実施形態)
次に、第2の実施形態にかかる演算システム1aについて説明する。以下では、第1の実施形態と異なる部分を中心に説明する。第2の実施形態にかかる演算システム1aは、複数のDAコンバータ102を含む半導体集積回路110を備えている。
【0065】
第1の実施形態で説明した通り、電荷蓄積期間の終了タイミングが同期する電荷蓄積型のDAコンバータ(SCIDAC)2は、少ない素子数で構成され得るので、その回路面積を容易に小さくできる。さらにDAコンバータ2の回路面積を小さくするためには、各素子のサイズを小さくすることが有効であり、例えば、容量素子C及び電流源CSのサイズを小さくすることが有効である。
【0066】
しかし、DAコンバータ2における容量素子C及び電流源CSのサイズを小さくすると、電荷蓄積期間における容量素子Cの電圧VCの増加率がばらつきやすくなる。これにより、容量素子C及び電流源CSのサイズを小さくするほど、電荷蓄積期間における容量素子Cの電圧Vcの増加率が適正な増加率からずれやすく、DAコンバータ2におけるDA変換の誤差が増大する可能性がある。
【0067】
電荷蓄積期間における容量素子Cの電圧VCの適正な増加率は、複数行のDAコンバータ2間で同じである。各行のDAコンバータで電荷蓄積期間における容量素子Cの電圧VCの増加率がばらつくと、複数行のDAコンバータ2間で容量素子Cの電圧Vcに応じたアナログ信号Xのばらつきが増加しやすい。このため、演算システム1又は半導体集積回路10全体としてみた場合に、DA変換の誤差が増大する可能性がある。
【0068】
電荷蓄積期間における容量素子Cの電圧VCの増加率のばらつきは、電流源CSが流す電流値が行ごとにばらつくことと、容量素子Cの容量値が行ごとにばらつくこととの両方の影響を受けて発生し得る。例えば、ある行のDAコンバータにおいて、容量素子Cの容量値が所定の容量値より大きく且つ電流源CSの電流値が所定の電流値より小さければ、電荷蓄積期間における容量素子Cの電圧VCの増加率は、適正な増加率より小さくなる可能性がある。あるいは、ある行のDAコンバータにおいて、容量素子Cの容量値が所定の容量値より小さく且つ電流源CSの電流値が所定の電流値より大きければ、電荷蓄積期間における容量素子Cの電圧VCの増加率は、適正な増加率より大きくなる可能性がある。
【0069】
各DAコンバータ2におけるDA変換の誤差を低減し複数のDAコンバータ2間の動作ばらつきを低減するためには、複数のDAコンバータ2のそれぞれについて、電荷蓄積期間における容量素子Cの電圧Vcの増加率が適正な増加率に略等しくなるようにすることが有効であると考えられる。このとき、電流源の電流値を複数行のDAコンバータ2間で揃えたとしても、容量素子Cの容量値が複数行のDAコンバータ2間でばらついていると、容量素子Cの電圧VCの増加率が適正な増加率からずれる可能性がある。そのため、電流源の電流値と容量素子Cの容量値との両方について複数行のDAコンバータ2間でのばらつきを低減するような仕組みが求められる。
【0070】
そのような考えに基づき、第2の実施形態では、グローバル回路5で適正な増加率に対応する参照電圧を発生し、各行のDAコンバータ102がその参照電圧に応じて電流源の電流値を補正することで、電荷蓄積期間における容量素子Cの電圧Vcの増加率の適正化を目指す。
【0071】
具体的には、半導体集積回路110における各行のDAコンバータ102は、
図5に示すように構成され得る。
図5は、DAコンバータ(SCIDAC)102の構成を示す図である。
図5では、第i行のDAコンバータ102_iの構成を例示するが、他の行のDAコンバータ102_i+1~102_i+3についても同様である。
【0072】
DAコンバータ102_iは、電流源CS、制御回路6_i、スイッチR(
図3参照)に代えて可変電流源CS100i、制御回路106_i、スイッチR1、スイッチR2を有し、容量素子C
C、差動増幅回路DF、スイッチGをさらに有する。
【0073】
可変電流源CS100iは、容量素子Ci側へ流すべき電流を変更可能であり、電荷蓄積時の容量素子Ciの電圧VCの変化率を変更可能である。可変電流源CS100iは、電源電位VddとスイッチBとノードN3との間に電気的に接続される。可変電流源CS100iは、電圧Vddに接続される第1端と、スイッチBの第1端に接続される第2端と、ノードN3に接続される制御端と、を有する。可変電流源CS100iは、ノードN3の電圧VCOMPに応じた電流値の電流を発生する。
【0074】
スイッチR1は、オンすることで容量素子Ciの電圧をリセット可能である。スイッチR1は、ノードN1と基準電位との間で容量素子Ciと並列に接続される。スイッチR1は、ノードN1に接続される第1端と、基準電位に接続される第2端と、を有する。基準電位は、例えばグランド電位である。
【0075】
スイッチR2は、オンすることで容量素子CCの電圧をリセット可能である。スイッチR2は、電流源CS100iの制御端と電源電位Vddとの間で容量素子Ccと並列に接続されている。スイッチR2は、電流源CS100iの制御端に接続される第1端と、電源電位Vddに接続される第2端と、を有する。
【0076】
容量素子CCは、補正動作用の容量素子である。容量素子CCは、ノードN3の電圧VCOMPを調整するための電圧を保持し、例えば電源電位VddとノードN3の電圧VCOMPとの差分の電圧を保持する。容量素子CCは、電流源CS100iの制御端と電源電位Vddとの間でスイッチR2と並列に接続されている。容量素子CCは、電流源CS100iの制御端に接続される第1端と、電源電位Vddに接続される第2端と、を有する。
【0077】
差動増幅回路DFは、容量素子Ciの電圧VCiと参照電圧VRAMPとの差分を増幅して出力する。差動増幅回路DFは、グローバル回路5から参照信号VRAMPを受ける非反転入力ノードと、ノードN1に接続される反転入力ノードと、スイッチGの第1端に接続される出力ノードと、を有する。
【0078】
スイッチGは、オンすることで差動増幅回路DFの出力ノードをノードN3に接続可能である。スイッチGは、差動増幅回路DFとノードN3との間に接続されている。スイッチGは、差動増幅回路DFの出力ノードに接続される第1端と、ノードN3に接続される第2端と、を有する。
【0079】
制御回路106_iは、グローバル回路5から補正動作を指示する信号を受けると、制御信号R1_i、制御信号R2_i、制御信号Siをノンアクティブベルに維持しながら、制御信号Bi、制御信号Giをノンアクティブベルからアクティブレベルにする。これにより、スイッチG及びスイッチBが選択的にオンされ、差動増幅回路DFの出力ノード→ノードN3→可変電流源CS100i→ノードN1→差動増幅回路DFの反転入力ノードのフィードバックループが形成される。これにより、DAコンバータ102_iは、参照信号VRAMPと電圧VCiとの差分に応じてノードN3の電圧VCOMPを調整する。これにより、可変電流源CS100iが調整後の電圧VCOMPに応じた電流をノードN1に供給して容量素子Ciへの電荷の充電を行う。すなわち、DAコンバータ102_iは、容量素子Ciへの電荷の蓄積を行いながら、容量素子Ciの電圧VCiをモニターし、容量素子Ciの電圧VCiと参照電圧VRAMPとの差分に応じて可変電流源CS100iの電流値を補正するフィードバック制御を行う。これにより、容量素子Ciの電圧VCiの変化率を参照電圧VRAMPの変換率に近づけることができる。
【0080】
なお、参照信号VRAMPは、グローバル回路5において、グローバルアップカウンタ51をカウンタクロックCLKCに同期して最小値(例えば、0)からカウントアップさせ、グローバルロジック回路52がグローバルアップカウンタ51のカウント値に応じて生成してもよい。例えば、グローバルロジック回路52は、グローバルアップカウンタ51のカウント値に所定の係数をかけた電圧値になるように参照信号VRAMPを生成する。グローバルロジック回路52は、生成した参照信号VRAMPを各行の差動増幅回路DFへ供給する。
【0081】
次に、各行のDAコンバータ102における容量素子Cの電圧V
Cの変化率の補正動作について
図6を用いて説明する。
図6は、DAコンバータ102の補正動作を示す図である。
図6に示す補正動作の期間TP10は、DA変換動作の期間(例えば、
図4に示す期間T)より前に設けられ得る。
【0082】
上述の通り、補正動作の目的は、容量素子Cの容量値のばらつきと可変電流源CS100の電流値のばらつきとの両方を考慮して、容量素子Cの電圧VCの変化率が全行のDAコンバータ102で適正な変化率に近づく(例えば、ほぼ等しくなる)ようにすることである。補正動作では、グローバルな参照電圧VRAMPを用いる。グローバルな参照電圧VRAMPは、ランプ(のこぎり)状の波形を有する参照電圧であり、全行のDAコンバータ102における容量素子Cの電圧VCの変化率の基準となる。
【0083】
補正動作の期間において、
図5に示すDAコンバータ102_iは、容量素子C
iの電圧V
Ciの変化率が参照電圧V
RAMPの変化率に近づくように電圧V
COMPをフィードバック制御し、電圧V
COMPにより可変電流源CS100iの電流値を補正する。DAコンバータ102_iでは、スイッチR1及びスイッチR2をオンすることで容量素子C
i及び容量素子Ccの電圧をリセットする。スイッチR1及びスイッチR2をオフした後、スイッチB及びスイッチGをオンすると、差動増幅回路DFの出力ノード→ノードN3→可変電流源CS100i→ノードN1→差動増幅回路DFの反転入力ノードのフィードバックループが形成される。このとき、差動増幅回路DFの非反転入力ノードには参照電圧V
RAMPが供給されており、容量素子C
iの電圧V
Ciの変化率が参照電圧V
RAMPの変化率に近づくようなフィードバック制御が行われる。差動増幅回路DFの伝達関数fは、次の数式2で表される。
【数2】
【0084】
数式2において、Vsは、差動増幅回路DFのオフセット電圧を示す。Kは、0より大きい正の増幅率である。このとき、ノードN3の電圧V
COMPの変化率は、次の数式3で表される。
【数3】
【0085】
ノードN3の電圧V
COMPに対する可変電流源CS100の伝達関数gは、次の数式4で与えられる。
【数4】
【0086】
数式4において、Aは、可変電流源CS100のオフセット電流を示す。Bは、0より大きい正のトランスコンダクタンス利得である。容量素子Cの電圧Vcの変化率と参照電圧V
RAMPの変化率とは、それぞれ、次の数式5で表される。
【数5】
【0087】
容量素子Cの容量値をCとすると、容量素子Cの電圧Vcの変化率ΔVcは、可変電流源CS100の電流Iを用いてΔVc=I/Cと表せるので、数式3~数式5から次の数式6が導かれる。
【数6】
【0088】
数式6は、電圧V
COMPに関する微分方程式である。数式6では、a,bについて、数式7に示す置き換えを行っている。
【数7】
【0089】
数式6の微分方程式を解くと、次の数式8に示すように、電圧V
COMPの解が得られる。
【数8】
【0090】
数式8におけるbは、数式3、数式4から、0より大きな正の値である。数式8から、電圧V
COMPは、次の数式9に示すように、時間的にa/bに収束する。
【数9】
【0091】
ここで、数式4、数式5から次の数式10が成り立つ。
【数10】
【0092】
数式9、数式10から、容量素子Cの電圧Vcの変化率ΔV
Cは、次の数式11に示すように、時間的にΔV
RAMPに収束する。
【数11】
【0093】
数式11に示されるように、収束する値ΔVRAMPは、各行の可変電流源の電流値I及び容量素子VCの容量値Cに依存しないグローバルな値である。このため、本実施形態の補正動作を行うことで、各行のDAコンバータ102は、容量素子Cの電圧VCの変化率ΔVCが互いに等しくされ得るとともに、それぞれ適正な値にされ得る。
【0094】
例えば、
図6の場合、タイミングt11において、補正動作の期間TP10が開始されたことに応じて、DAコンバータ102は、スイッチR1、スイッチR2、スイッチSがオフされた状態でスイッチG及びスイッチBをオンする。これにより、差動増幅回路DFの出力ノード→ノードN3→可変電流源CS100→ノードN1→差動増幅回路DFの反転入力ノードのフィードバックループが形成される。
【0095】
タイミングt11~t12の期間において、DAコンバータ102は、参照信号VRAMPと電圧VCiとの差分に応じたノードN3の電圧VCOMPで可変電流源CS100iがノードN1に電流を供給して容量素子Ciへの電荷の充電が行われるようにフィードバック動作を行う。これにより、電圧VCOMPが数式9に示す値に近づいていき、容量素子Ciの電圧VCiの変化率が数式10に示すΔVRAMPに近づいていく。
【0096】
タイミングt12において、電圧VCOMPが数式9に示す値に達すると、容量素子Ciの電圧VCiの変化率がΔVRAMPにほぼ等しくなる。
【0097】
タイミングt12~t13の期間において、電圧VCOMPが数式9に示す値に概ね維持され、容量素子Ciの電圧VCiの変化率がΔVRAMPにほぼ維持される。
【0098】
タイミングt13において、補正動作の期間TP10が終了されることに応じて、DAコンバータ102は、スイッチGをオフする。これにより、補正用の容量素子Ccにより電圧VCOMPが数式9に示す値に概ね維持されるため、可変電流源CS100の電流値もそのまま維持される。
【0099】
以上のように、第2の実施形態では、半導体集積回路110において、グローバル回路5で適正な増加率に対応する参照電圧VRAMPを発生し、各行のDAコンバータ102がその参照電圧VRAMPに応じて電流源の電流値を補正する。これにより、可変電流源CS100の電流値及び容量素子Cの容量値のばらつきに関わらず、電荷蓄積期間における容量素子Cの電圧VCの増加率を適正な値に近付けることができる。すなわち、各行のDAコンバータ102において、可変電流源CS100及び容量素子Cのサイズを小さくでき、電荷蓄積期間における容量素子Cの電圧VCの増加率を適正化できる。
【0100】
なお、
図5に示すように、各行のDAコンバータ102は、第1の実施形態における各行のDAコンバータ2の構成を含んでいる。このため、各行のDAコンバータ102は、第2の実施形態に示す補正動作を行った後、第1の実施形態と同様にして、DA変換動作を行うことが可能である。この場合、可変電流源CS100が調整後の電流値で電流を流し、電荷蓄積期間における容量素子Cの電圧V
Cが適正な増加率で増加し得るので、DA変換の精度をさらに向上できる。
【0101】
(第3の実施形態)
次に、第3の実施形態にかかる演算システム1bについて説明する。以下では、第1の実施形態及び第2の実施形態と異なる部分を中心に説明する。第3の実施形態にかかる演算システム1bは、複数のDAコンバータ202を含む半導体集積回路210を備えている。
【0102】
第3の実施形態では、第2の実施形態の半導体集積回路110の実装形態を例示する。具体的には、半導体集積回路210における各DAコンバータ202は、
図7に示すように構成され得る。
図7は、第3の実施形態におけるDAコンバータ(SCIDAC)202の構成を示す図である。
図7では、第i行のDAコンバータ202_iの構成を例示するが、他の行のDAコンバータ202_i+1~202_i+3についても同様である。
【0103】
DAコンバータ202_iは、可変電流源CS100i(
図5参照)に代えて可変電流源CS200iを有し、インバータINVをさらに有する。
【0104】
可変電流源CS200iは、定電流を流しつつその変化分を加算することで、電流値を可変させる。可変電流源CS200iは、定電流源と可変電流源との組み合わせで構成される。可変電流源CS200iは、電源電位VddとスイッチBとの間にトランジスタPM3及びトランジスタPM4の直列接続を有する。
図7では、電源電位Vdd側にトランジスタPM3が配されスイッチB側にトランジスタPM4が配される構成が例示されているが、電源電位Vdd側にトランジスタPM4が配されスイッチB側にトランジスタPM3が配されていてもよい。
【0105】
トランジスタPM3は、例えばPMOSトランジスタであり、電源電位Vddに接続されるソースと、トランジスタPM4に接続されるドレインと、ノードN3に接続されるゲートと、を有する。ノードN3の電圧VCOMPは、DAコンバータ202_iによるフィードバック動作に応じて可変であり、トランジスタPM3は、可変電流源として機能し得る。トランジスタPM4は、例えばPMOSトランジスタであり、トランジスタPM3に接続されるソースと、スイッチBに接続されるドレインと、バイアス電圧Vbiasを受けるゲートと、を有する。バイアス電圧Vbiasは固定的な電位を有し、トランジスタPM4は、定電流源として機能し得る。
【0106】
インバータINVは、スイッチGがオンされた状態で、電源電位VddからノードN3への電流パスを形成可能である。これにより、スイッチR2がオフして容量素子Ccの電圧のリセットが完了した状態で容量素子Ccへの補正用の電荷蓄積を行う際のスタート電流をノードN3へ供給可能である。
【0107】
インバータINVは、スイッチGがオンされた状態で、差動増幅回路DFから出力される信号をドライブしてノードN3へ伝達する。これにより、差動増幅回路DFら出力される信号レベルの変化を高速にノードN3へ伝達でき、差動増幅回路DFの出力ノード→ノードN3→可変電流源CS200i→ノードN1→差動増幅回路DFの反転入力ノードのフィードバックループが形成された際のフィードバック動作を高速化できる。
【0108】
インバータINVは、スイッチGがオンされた状態で、差動増幅回路DFから出力される信号のレベルを論理的に反転させてノードN3へ伝達する。このとき、インバータINVは、電源電位Vdd及びグランド電位を用いて信号を生成するので、差動増幅回路DFから出力される信号に含まれるオフセット成分の影響を低減して信号を生成できる。
【0109】
インバータINVは、差動増幅回路DFに接続される入力ノードと、スイッチGに接続される出力ノードと、電源電位Vddに接続される電源ノードと、グランド電位に接続される基準ノードと、を有する。
【0110】
インバータINVは、差動増幅回路DF及びスイッチGの間にインバータ接続されたトランジスタPM1及びトランジスタNM1を有する。トランジスタPM1は、例えばPMOSトランジスタであり、トランジスタPM2に接続されるソースと、トランジスタNM1及びスイッチGに接続されるドレインと、差動増幅回路DFに接続されるゲートと、を有する。トランジスタNM1は、例えばNMOSトランジスタであり、トランジスタNM2に接続されるソースと、トランジスタPM1及びスイッチGに接続されるドレインと、差動増幅回路DFに接続されるゲートと、を有する。
【0111】
インバータINVは、トランジスタPM1及び電源電位Vddの間にトランジスタPM2をさらに有し、トランジスタNM1及びグランド電位の間にトランジスタNM2をさらに有する。トランジスタPM2は、例えばPMOSトランジスタであり、電源電位Vddに接続されるソースと、トランジスタPM1に接続されるドレインと、バイアス電圧VBPを受けるゲートと、を有する。バイアス電圧VBPは固定的な電位を有し、トランジスタPM2は、定電流源として機能し得る。トランジスタNM2は、例えばNMOSトランジスタであり、グランド電位に接続されるソースと、トランジスタNM1に接続されるドレインと、バイアス電圧VBNを受けるゲートと、を有する。バイアス電圧VBNは固定的な電位を有し、トランジスタNM2は、定電流源として機能し得る。
【0112】
次に、各行のDAコンバータ202における容量素子C
iの電圧V
Ciの変化率の補正動作について
図8を用いて説明する。
図8は、DAコンバータ202の補正動作を示す図である。
図8に示す補正動作の期間TP20は、DA変換動作の期間(例えば、
図4に示す期間T)より前に設けられ得る。
【0113】
図7に示すDAコンバータ202_iにおいて、差動増幅回路DFとインバータINVとを組み合わせた構成は、数式2でV
CをV
Ciに置き換えVs≒0を代入して得られる伝達関数fを有する。フィードバックループが形成された状態において、インバータINVは、補正用の容量素子C
Cを駆動し、ノードN3の電圧V
COMPを調整する。これにより、電流源CS200iは、数式4の伝達関数gと同様の伝達関数で動作し、容量素子C
Cに電流を流して電荷を蓄積する。このとき、トランジスタPM2,NM2,PM4が定電流源として機能することなどにより、フィードバックループによるフィードバック動作が高速に行われ得る。これにより、各行のDAコンバータ202は、高速に、容量素子Cの電圧V
Cの変化率が互いに等しくされ得るとともに、それぞれ適正な値にされ得る。
【0114】
例えば、
図8の場合、タイミングt21の直前において、スイッチR1がオン状態に維持され容量素子C
iの電圧がリセットされ、スイッチR2がオン状態に維持され容量素子C
Cの電圧がリセットされる。これにより、ノードN1の電位がグランド電位にほぼ等しく、ノードN3の電位が電源電位Vddにほぼ等しくなっている。トランジスタPM3は、オフしている。
【0115】
タイミングt21において、補正動作の期間TP20が開始されたことに応じて、DAコンバータ202は、スイッチR1、スイッチR2、スイッチSがオフされた状態でスイッチG及びスイッチBをオンする。これにより、
図9に示すように、差動増幅回路DFの出力ノード→インバータINV→ノードN3→可変電流源CS200i→ノードN1→差動増幅回路DFの反転入力ノードのフィードバックループが形成される。
図9は、DAコンバータ202の動作を示す図である。
【0116】
図8のタイミングt22において、差動増幅回路DFは、参照電圧V
RAMPの初期値V10と電圧Vciの初期値V0との差分を増幅して電圧V
CTRL=α×(V
RAMP-Vci)=α×(V10-V0)を出力する。電圧V
CTRLがインバータINVの閾値を超えていることに応じて、トランジスタPM1がオフするとともにトランジスタNM1がオンする。これにより、
図9に太線の矢印で示すように、容量素子C
Cの第1端の電荷がノードN3、スイッチG、トランジスタNM1、トランジスタNM2経由でグランド電位に排出され、ノードN3の電圧V
COMPが急激に低下され得る。
【0117】
タイミングt23において、トランジスタPM3がオンし、可変電流源CS200iが容量素子C
iへの電流の供給を開始する。グローバル回路5は、タイミングt21~t23の時間にほぼ等しい所定の時間Δtを予め実験的に求めてパラメータとして記憶している。グローバル回路5は、補正動作の期間T20が開始されてから所定の時間Δtが経過したことに応じて、参照電圧V
RAMPを初期値V10から増加させ始める。これにより、
図9に太線の矢印で示すように、容量素子C
iの電圧V
Ciが急激に増加し始める。
【0118】
その後、電圧VCiの変化率dVCが参照電圧VRAMPの変化率dVRAMPより大きくなり、参照電圧VRAMP及び電圧VCiの差分(VRAMP-VCi)が小さくなっていく。これに応じて、差動増幅回路DFから出力される電圧VCTRL=α×(VRAMP-Vci)が減少していく。
【0119】
タイミングt24において、電圧V
CTRLがインバータINVの閾値を下回ることに応じて、トランジスタPM1がオンするとともにトランジスタNM1がオフする。これにより、
図10に太線の矢印で示すように、電源電位VddからトランジスタPM2、トランジスタPM1、スイッチG、ノードN3経由で容量素子Ccの第1端へ電流が流れ込み電荷が充電され、ノードN3の電圧V
COMPが急激に上昇し得る。
図10は、DAコンバータ202の動作を示す図である。
【0120】
図8のタイミングt25において、トランジスタPM3が流す電流を減少させるので、可変電流源CS200iが容量素子C
iへの電流の電流値を減少させる。これに応じて、電圧V
Ciの変化率dV
Cが参照電圧VRAMPの変化率dV
RAMPより小さくなり、
図9に示すように、差動増幅回路DFから出力される電圧V
CTRL=α×(V
RAMP-V
Ci)が増加する。
【0121】
タイミングt26において、電圧VCiの変化率dVCが参照電圧VRAMPの変化率dVRAMPにほぼ等しくなると、差動増幅回路DFから出力される電圧VCTRLがほぼ一定の値で安定するようになる。これに応じて、ノードN3の電圧VCOMPがほぼ一定の値で安定するようになり、可変電流源CS200iが容量素子Ciへの適正な電流値の電流を供給し始める。
【0122】
タイミングt26~t27の期間において、可変電流源CS200iが容量素子Ciへの適正な電流値の電流を安定的に供給し続ける。
【0123】
タイミングt27において、補正動作の期間T20が終了すると、DAコンバータ202は、スイッチGをオフさせる。これにより、フィードバックループが遮断され、容量素子C
Cに保持された電荷により電圧V
COMPが補正後の値に維持され、可変電流源CS200iが容量素子C
iへの適正な電流値の電流を継続的に供給可能な状態になる。これにより、
図11に示すように、電荷蓄積期間において、スイッチR
1、スイッチR
2、スイッチGがオフ状態に維持され、スイッチBがオン状態に維持される。このとき、補正後の値に維持される電圧V
COMPに応じて、可変電流源CS200iから適正な電流値の電流が容量素子C
iへ供給される。すなわち、適正な電流値の電流で容量素子C
iへ電荷が蓄積される。これにより、容量素子C
iの電圧V
Ciを適正な増加率で増加させることができる。
【0124】
例えば、複数行のDAコンバータ202について、補正動作及びその後の実動作の様子をシミュレーションした結果を
図12に示す。補正動作前(no compensation)の期間TP19では、電荷蓄積時における各行の容量素子Cの電圧V
Cの変化率がばらついているが、期間TP20に補正動作(compensation)を行うことで、実動作(operation)の期間TP21では、電荷蓄積時における各行の容量素子Cの電圧V
Cの変化率が揃っていることが分かる。補正動作の期間TP20では、複数行のDAコンバータ202は、電圧V
COMPが、容量素子Cの容量値のばらつきと可変電流源CSの電流値のばらつきとに応じて互いに異なる値に調整され得る。これにより、複数行のDAコンバータ202は、互いに等しく且つ適正な変化率で電荷蓄積期間における容量素子Cの電圧Vcを増加させることができる。補正動作で調整された電圧V
COMPの値は、その後の実動作の期間TP21でほぼ一定に維持されるので、各行の容量素子Cの電圧V
Cの変化率が揃っている状態が維持され得る。
【0125】
以上のように、第3の実施形態では、半導体集積回路210において、グローバル回路5で適正な増加率に対応する参照電圧VRAMPを発生し、各行のDAコンバータ202がその参照電圧VRAMPに応じて電流源の電流値を補正する。このとき、インバータINVは、スイッチGがオンされた状態で、差動増幅回路DFから出力される信号をドライブしてノードN3へ伝達する。これにより、差動増幅回路DFら出力される信号レベルの変化を高速にノードN3へ伝達でき、差動増幅回路DFの出力ノード→ノードN3→可変電流源CS200i→ノードN1→差動増幅回路DFの反転入力ノードのフィードバックループが形成された際のフィードバック動作を高速化できる。この結果、各行のDAコンバータ202において、高速に、電荷蓄積期間における容量素子Cの電圧VCの増加率を適正な値に近付けることができる。
【0126】
(第4の実施形態)
次に、第4の実施形態にかかる演算システム1cについて説明する。以下では、第1の実施形態~第3の実施形態と異なる部分を中心に説明する。第4の実施形態にかかる演算システム1cは、複数のDAコンバータ302を含む半導体集積回路310を備えている。
【0127】
第1の実施形態で例示した各行のDAコンバータ(SCIDAC)2は、ローカルアップカウンタ61のカウント動作の完了を同期させて容量素子Cへの電荷の蓄積完了を同期させる。例えば、カウンタクロックCLKCの周波数を高くすれば、DA変換の速度を向上できるが、消費電力が増大する可能性がある。消費電力の増大を抑制するためには、カウンタクロックCLKCの周波数を低く抑えながらDA変換の速度を向上することが望まれる。
【0128】
そこで、第4の実施形態では、DA変換すべきデジタル信号のビット群を上位側ビット群と下位側ビット群とに分割し、上位側ビット群と下位側ビット群とを並行してDA変換することで、カウンタクロックCLKCの低周波数化とDA変換の速度の向上との両立化を図る。
【0129】
具体的には、半導体集積回路310における各行のDAコンバータ302は、
図13に示すように構成され得る。
図13は、DAコンバータ(SCIDAC)302の構成を示す図である。
図13では、第i行のDAコンバータ302_iの構成を例示するが、他の行のDAコンバータ302_i+1~302_i+3についても同様である。
図13では、デジタル信号D
iのビット数Nに対して、上位側ビット群D
Miのビット数n
Mと下位側ビット群D
Liのビット数n
Lとについて、n
L=n
M=N/2が成り立つ場合を例示する。
【0130】
半導体集積回路310は、グローバル回路5、複数行のDAコンバータ2_i~2_i+3(
図2参照)に代えて、グローバル回路305、複数行のDAコンバータ302_i~302_i+3を有する。グローバル回路305は、グローバルアップカウンタ351及びグローバルロジック回路352を有する。グローバルアップカウンタ351の最大カウント値を2進数で表現した場合のビット数は、上位側ビット群D
Miのビット数n
Mと下位側ビット群D
Liのビット数n
Lとに対応し、例えばN/2ビットである。グローバルアップカウンタ351の最小値は、上位側ビット群D
Mi及び下位側ビット群D
Liのそれぞれの最小値に対応し、例えば0である。グローバルアップカウンタ351の最大値は、上位側ビット群D
Mi及び下位側ビット群D
Liのそれぞれの最大値に対応し、例えば2
N/2である。
【0131】
DAコンバータ302_iは、電流源CS、制御回路6_i、スイッチB(
図3参照)に代えて電流源CS
M、電流源CS
L、制御回路307_i、制御回路308_i、制御回路309、スイッチB
M、スイッチB
Lを有する。電流源CS
M、制御回路307_i、スイッチB
Mは、上位側ビット群D
Miに対応し、電流源CS
L、制御回路308_i、スイッチB
Lは、下位側ビット群D
Liに対応する。
【0132】
電流源CSMは、電圧VREFとスイッチBMとの間に電気的に接続される。電流源CSMは、上位側ビット群DMiに対応した電流値IBMを発生する。電流源CSMは、例えばIBM=2nLIBを発生する。電流源CSMは、電圧VREFに接続される第1端と、スイッチBMの第1端に接続される第2端と、を有する。
【0133】
電流源CSLは、電圧VREFとスイッチBLとの間に電気的に接続される。電流源CSLは、下位側ビット群DLiに対応した電流値IBLを発生する。電流源CSLは、例えばIBL=IBを発生する。電流源CSMは、電圧VREFに接続される第1端と、スイッチBLの第1端に接続される第2端と、を有する。
【0134】
スイッチBMは、電流源CSMとノードN1との間に電気的に接続される。スイッチBMは、電流源CSMに接続される第1端と、ノードN1に接続される第2端と、制御回路307_iに接続される制御端と、を有する。スイッチBMは、制御回路307_iからアクティブレベルの制御信号BMiを受けた際にオンして電流源CSMをノードN1に接続する。スイッチBMは、制御回路307_iからノンアクティブレベルの制御信号BMiを受けた際にオフして電流源CSMをノードN1から電気的に遮断する。
【0135】
スイッチBLは、電流源CSLとノードN1との間に電気的に接続される。スイッチBLは電流源CSLに接続される第1端と、ノードN1に接続される第2端と、制御回路308_iに接続される制御端と、を有する。スイッチBLは、制御回路308_iからアクティブレベルの制御信号BLiを受けた際にオンして電流源CSLをノードN1に接続する。スイッチBLは、制御回路308_iからノンアクティブレベルの制御信号BLiを受けた際にオフして電流源CSLをノードN1から電気的に遮断する。
【0136】
制御回路307_iは、外部からのデジタル信号Diのうち上位側ビット群DMiを受け、グローバル回路305からグローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCを受ける。制御回路307_iは、上位側ビット群DMi、グローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCに応じて、制御信号BMiを生成する。
【0137】
制御回路307_iは、ローカルアップカウンタ71及びローカルロジック回路72を有する。ローカルアップカウンタ71の最大カウント値を2進数で表現した場合のビット数は、上位側ビット群DMiのビット数に対応し、例えばN/2ビットである。ローカルアップカウンタ71の最小値は、上位側ビット群DMiの最小値に対応し、例えば0である。ローカルアップカウンタ71の最大値は、上位側ビット群DMiの最大値に対応し、例えば2N/2である。ローカルアップカウンタ71は、グローバル回路305に接続される。ローカルアップカウンタ71は、外部からデジタル信号Diを受け、グローバル回路305からグローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCを受ける。ローカルアップカウンタ71は、グローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCに応じてカウント動作を行う。ローカルロジック回路72は、ローカルアップカウンタ71のカウント値に応じて、制御信号BMiを生成する。
【0138】
制御回路307_iは、制御信号BMiをスイッチBMの制御端へ供給する。これにより、制御回路307_iは、スイッチBMを制御する。
【0139】
制御回路308_iは、外部からのデジタル信号Diのうち下位側ビット群DLiを受け、グローバル回路305からグローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCを受ける。制御回路308_iは、下位側ビット群DLi、グローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCに応じて、制御信号BLiを生成する。
【0140】
制御回路308_iは、ローカルアップカウンタ81及びローカルロジック回路82を有する。ローカルアップカウンタ81の最大カウント値を2進数で表現した場合のビット数は、下位側ビット群DLiのビット数に対応し、例えばN/2ビットである。ローカルアップカウンタ81の最小値は、下位側ビット群DLiの最小値に対応し、例えば0である。ローカルアップカウンタ81の最大値は、下位側ビット群DLiの最大値に対応し、例えば2N/2である。ローカルアップカウンタ81は、グローバル回路305に接続される。ローカルアップカウンタ81は、外部から下位側ビット群DLiを受け、グローバル回路305からグローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCを受ける。ローカルアップカウンタ81は、グローバルスタート信号GSTART、グローバルストップ信号GSTOP、カウンタクロックCLKCに応じてカウント動作を行う。ローカルロジック回路82は、ローカルアップカウンタ81のカウント値に応じて、制御信号BLiを生成する。
【0141】
制御回路308_iは、制御信号BLiをスイッチBLの制御端へ供給する。これにより、制御回路308_iは、スイッチBLを制御する。
【0142】
制御回路309は、グローバル回路305からグローバルスタート信号GSTART、グローバルストップ信号GSTOPを受ける。制御回路309は、グローバルスタート信号GSTART、グローバルストップ信号GSTOPに応じて、制御信号Ri、制御信号Siを生成する。なお、制御回路309は、複数の行(第i行~第(i+3)行)で共通化されていてもよい。
【0143】
次に、半導体集積回路310の動作について説明する。半導体集積回路310では、
図14に示すような動作が行われる。
図14では、グローバル回路305と第i行のDAコンバータ302_iとの動作について例示するが、他の行のDAコンバータ302_i+1~302_i+3についても同様である。
図14(a)は、グローバルアップカウンタ351及び各行のローカルアップカウンタ71,81のカウント値を示し、
図14(b)は、グローバルスタート信号GSTART、グローバルストップ信号GSTOP及び第i行のローカルスタート信号START
Li,START
Mi、制御信号R
i,B
Li,B
Mi,S
iのレベル遷移のタイミングを示し、
図14(c)は、容量素子C
iに蓄積される電圧V
Ciを示す。
【0144】
図14に示すように、変換期間T
200の直前に初期化処理が行われる。グローバルアップカウンタ351に最小値(例えば、0)がセットされ、第i行のローカルアップカウンタ71に上位側ビット群D
Miがセットされ、第i行のローカルアップカウンタ81に下位側ビット群D
Liがセットされる。
【0145】
変換期間T200が開始すると、DA変換処理が開始される。グローバルアップカウンタ351、ローカルアップカウンタ71、及びローカルアップカウンタ81が、それぞれ、周波数fCLKCのカウンタクロックCLKCに同期して同時にカウントアップを開始する。
【0146】
第i行のローカルロジック回路72と第i行のローカルロジック回路82とは、互いに独立して、次の動作を行う。ローカルロジック回路72は、ローカルアップカウンタ71のカウント値が最大値(例えば、2N/2)に達すると、ローカルアップカウンタ71のカウント値を最小値にリセットしてカウントアップを再開させるとともに、スイッチBMをオンさせる。これにより、電流源CSMからの電流による容量素子Ciへの電荷の蓄積が開始される。同様に、ローカルロジック回路82は、ローカルアップカウンタ81のカウント値が最大値(例えば、2N/2)に達すると、ローカルアップカウンタ81のカウント値を最小値にリセットしてカウントアップを再開させるとともに、スイッチBLをオンさせる。これにより、電流源CSLからの電流による容量素子Ciへの電荷の蓄積が開始される。
【0147】
グローバルロジック回路352は、グローバルアップカウンタ351のカウント値が最大値(例えば、2
N/2)に達すると、カウント終了をローカルアップカウンタ71及びローカルアップカウンタ81に指示する。ローカルアップカウンタ71及びローカルアップカウンタ81は、それぞれ、カウント動作を停止する。ローカルロジック回路72は、ローカルアップカウンタ71のカウント動作の停止に応じて、スイッチB
Mをオフさせる。これにより、電流源CS
Mからの電流による容量素子C
iへの電荷の蓄積が完了する。同様に、ローカルロジック回路82は、ローカルアップカウンタ81のカウント動作の停止に応じて、スイッチB
Lをオフさせる。これにより、電流源CS
Lからの電流による容量素子C
iへの電荷の蓄積が完了する。この結果、容量素子C
iの電圧V
Ciは、次の数式12に示すようになる。
【数12】
【0148】
数式12では、簡略化のため、第i行を示す添え字が省略されている。V
Cは、容量素子C
iの電圧を示す。I
Bは、電流源の単位電流値である。f
CLKCは、カウンタクロックの周波数である。Cは、容量素子Ciの容量値である。nLは、下位側ビット群D
Liのビット数である。D
Mは、上位側ビット群D
Miの値を示す。D
Lは、下位側ビット群D
Liの値を示す。数式12を第1の実施形態の数式1と比較すると、DA変換すべきデジタル信号の値が同じであり、容量素子C
iへ蓄積すべき電圧が同じである場合、次の数式13が得られる。
【数13】
【0149】
数式13において、VC’は、第1の実施形態における容量素子Ciの電圧を示す。IB’は、第1の実施形態における電流源CSの電流値である。fCLKC’は、第1の実施形態におけるカウンタクロックの周波数である。
【0150】
ここで、DA変換すべきデジタル信号の値が同じであるので、次の数式14が成り立つ。
【数14】
【0151】
数式13及び数式14により、次の数式15が成り立つ。
【数15】
【0152】
数式15に示されるように、
図13に示す電流源の単位電流値I
Bを小さくすることで、カウンタクロックの周波数を低く抑えることができる。例えば、デジタル信号Dのビット数がN=8であり、上位側ビット群D
Miのビット数n
Mと下位側ビット群D
Liのビット数n
Lとがn
L=n
M=N/2=4とする。この場合、カウンタクロックの周波数f
CLKCは、第1の実施形態におけるカウンタクロックの周波数f
CLKC’に比べて、1/2
4に低くすることができる。ただし、
図13に示す電流源の単位電流値I
Bは、1/2
4に小さくすることになる。
【0153】
例えば、
図14の場合、タイミングt30の直前において、グローバル回路305は、グローバルアップカウンタ351に最小値(例えば、0)をセットし、第i行の制御回路307_iは、ローカルアップカウンタ71に上位側ビット群D
Miの値をセットし、制御回路308_iは、ローカルアップカウンタ81に下位側ビット群D
Liの値をセットする。
【0154】
このとき、ローカルロジック回路71,81は、それぞれ、制御信号BMi、制御信号BLiをノンアクティブレベルに維持してスイッチBM、スイッチBLへ供給している。制御回路309は、制御信号Ri、制御信号Siをノンアクティブレベルに維持してスイッチR、スイッチSへ供給している。これにより、DAコンバータ302_iにおいて、スイッチR、スイッチBM、スイッチBL、スイッチSがいずれもオフ状態に維持されている。
【0155】
タイミングt30において、制御回路309は、制御信号Riをノンアクティブレベルからアクティブレベルへ遷移させる。これにより、DAコンバータ302_iにおいて、スイッチRがオンする。
【0156】
タイミングt30~t31の期間において、ローカルロジック回路71,81は、それぞれ、制御信号BMi、制御信号BLiをノンアクティブレベルに維持する。制御回路309は、制御信号Siをノンアクティブレベルに維持しながら制御信号Riをアクティブレベルに維持する。これにより、DAコンバータ302_iにおいて、スイッチBM、スイッチBL及びスイッチSがオフ状態に維持されながらスイッチRがオン状態に維持され、容量素子Ciに蓄積された電荷が排出され、容量素子Ciの電圧がリセットされる。
【0157】
タイミングt31において、グローバルアップカウンタ351は、
図14(a)に二点鎖線で示すように、最小値からカウントアップを開始する。それに応じて、グローバルロジック回路352は、
図14(b)に示すように、グローバルスタート信号GSTARTをノンアクティブレベルからアクティブレベルにする。グローバルロジック回路352は、グローバルスタート信号GSTARTをローカルアップカウンタ71,81へそれぞれ供給する。グローバルスタート信号GSTARTがアクティブレベルになったことに応じて、ローカルアップカウンタ71は、
図14(a)に一点鎖線で示すように、上位側ビット群D
Miの値からカウントアップを開始する。グローバルスタート信号GSTARTがアクティブレベルになったことに応じて、ローカルアップカウンタ81は、
図14(a)に実線で示すように、下位側ビット群D
Liの値からカウントアップを開始する。グローバルアップカウンタ351、ローカルアップカウンタ71,81は、それぞれ、カウンタクロックCLKCに同期してカウントアップを行う。
【0158】
このとき、制御回路309は、制御信号Riをアクティブレベルからノンアクティブレベルへ遷移させる。これにより、DAコンバータ302_iにおいて、スイッチRがオフし、容量素子Ciの電圧のリセットが完了する。
【0159】
下位側ビット群に注目すると、タイミングt31~t32の期間において、
図14(a)に実線で示すように、ローカルアップカウンタ81は、カウンタクロックCLKCに同期してカウントアップを行う。それに応じて、ローカルロジック回路82は、制御信号B
Liをノンアクティブレベルに維持する。これにより、DAコンバータ302_iにおいて、スイッチB
Lがオフ状態に維持される。
【0160】
タイミングt32において、
図14(a)に実線で示すように、ローカルアップカウンタ81のカウント値が最大値に達すると、制御回路308_iは、ローカルアップカウンタ81のカウント値を最大値から最小値にリセットする。それとともに、制御回路308_iは、下位側ビット群用のローカルスタート信号START
Liをノンアクティブレベルからアクティブレベルにする。それに応じて、ローカルアップカウンタ81は、
図14(a)に実線で示すように、最小値からカウントアップを開始する。ローカルアップカウンタ81は、カウンタクロックCLKCに同期してカウントアップを行う。
【0161】
ローカルスタート信号STARTLiがアクティブレベルになったことに応じて、ローカルロジック回路82は、制御信号BLiをノンアクティブレベルからアクティブレベルに変更して、スイッチBLへ供給する。これにより、DAコンバータ302_iにおいて、スイッチBLがオンされ、電流源CSLによる容量素子Ciへの電荷の蓄積が開始される。
【0162】
タイミングt32~t34の期間において、
図14(a)に実線で示すように、ローカルアップカウンタ81は、カウンタクロックCLKCに同期してカウントアップを行う。この期間において、ローカルロジック回路82は、制御信号B
Liをアクティブレベルに維持する。これにより、DAコンバータ302_iにおいて、スイッチB
Lがオン状態に維持され、電流源CS
Lによる容量素子C
iへの電荷の蓄積が行われる。
【0163】
一方、上位側ビット群に注目すると、タイミングt31~t33の期間において、
図14(a)に一点鎖線で示すように、ローカルアップカウンタ71は、カウンタクロックCLKCに同期してカウントアップを行う。それに応じて、ローカルロジック回路72は、制御信号B
Miをノンアクティブレベルに維持する。これにより、DAコンバータ302_iにおいて、スイッチB
Mがオフ状態に維持される。
【0164】
タイミングt33において、
図14(a)に一点鎖線で示すように、ローカルアップカウンタ71のカウント値が最大値に達すると、制御回路307_iは、ローカルアップカウンタ71のカウント値を最大値から最小値にリセットする。それとともに、制御回路307_iは、上位側ビット群用のローカルスタート信号START
Miをノンアクティブレベルからアクティブレベルにする。それに応じて、ローカルアップカウンタ71は、
図14(a)に一点鎖線で示すように、最小値からカウントアップを開始する。ローカルアップカウンタ71は、カウンタクロックCLKCに同期してカウントアップを行う。
【0165】
ローカルスタート信号STARTMiがアクティブレベルになったことに応じて、第i行のローカルロジック回路72は、制御信号BMiをノンアクティブレベルからアクティブレベルに変更して、スイッチBMへ供給する。これにより、DAコンバータ302_iにおいて、スイッチBMがオンされる。このとき、電流源CSLによる容量素子Ciへの電荷の蓄積が既に開始されており、それに加算される形で、電流源CSMによる容量素子Ciへの電荷の蓄積が開始される。
【0166】
タイミングt33~t34の期間において、
図14(a)に一点鎖線で示すように、ローカルアップカウンタ71は、カウンタクロックCLKCに同期してカウントアップを行う。この期間において、ローカルロジック回路72は、制御信号B
Miをアクティブレベルに維持する。これにより、DAコンバータ302_iにおいて、スイッチB
Mがオン状態に維持され、電流源CS
Mによる容量素子C
iへの電荷の蓄積が行われる。このとき、電流源CS
Lによる容量素子C
iへの電荷の蓄積も行われる。
【0167】
タイミングt34において、
図14(a)に二点鎖線で示すように、グローバルアップカウンタ351のカウント値が最大値に達する。それに応じて、グローバルロジック回路352は、
図14(b)に示すように、グローバルストップ信号GSTOPをノンアクティブレベルからアクティブレベルにする。グローバルロジック回路352は、グローバルストップ信号GSTOPをローカルアップカウンタ71,81へそれぞれ供給する。グローバルストップ信号GSTOPがアクティブレベルになったことに応じて、ローカルアップカウンタ71は、
図14(a)に一点鎖線で示すように、例えば上位側ビット群D
Miの値でカウントアップを終了する。グローバルストップ信号GSTOPがアクティブレベルになったことに応じて、ローカルアップカウンタ81は、
図14(a)に実線で示すように、例えば下位側ビット群D
Liの値でカウントアップを終了する。
【0168】
このとき、ローカルロジック回路72,82は、それぞれ、制御信号BMi、制御信号BLiをアクティブレベルからノンアクティブレベルへ遷移させる。制御回路309は、制御信号Siをノンアクティブレベルからアクティブレベルへ遷移させる。これにより、DAコンバータ302_iにおいて、スイッチBM,BLがオフして容量素子Ciへの電荷の蓄積が完了するとともに、容量素子Ciの電圧が増幅回路AMへ出力される。
【0169】
タイミングt34以降の期間において、制御回路309は、制御信号Riをノンアクティブレベルに維持しながら制御信号Siをアクティブレベルに維持する。これにより、DAコンバータ302_iにおいて、スイッチRがオフ状態に維持されながらスイッチSがオン状態に維持され、容量素子Ciの電圧が増幅回路AMで増幅されアナログ信号Xiとして出力される。
【0170】
容量素子C
iの電圧V
Ciの増加率に着目すると、
図14(c)に示すように、タイミングt32~t34の期間において、電流源CS
Lによる電流I
BLで容量素子C
iへの電荷の蓄積が行われ、電圧V
Ciが電流I
BLに応じた増加率(傾き)で増加していく。また、タイミングt33~t34の期間において、電流源CS
Mによる電流I
BMで容量素子C
iへの電荷の蓄積が追加的に行われ、電圧V
Ciの増加率が電流I
BMに応じた増加率(傾き)分加算された形で増加していく。等価的に、電流源CS
Lによる電流I
BLでの容量素子C
iへの電荷の蓄積と電流源CS
Mによる電流I
BMで容量素子C
iへの電荷の蓄積とが並行して行われるので、容量素子C
iへの電荷の蓄積を高速に行うことができる。
【0171】
以上のように、第4の実施形態では、DA変換すべきデジタル信号のビット群を上位側ビット群と下位側ビット群とに分割し、上位側ビット群と下位側ビット群とを並行してDA変換する。これにより、カウンタクロックCLKCの低周波数化とDA変換の速度の向上とを両立化できる。
【0172】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0173】
1,1a,1b,1c 演算システム、2,2_i~2_i+3,102,102_i~102_i+3,202,202_i~202_i+3,302,302_i~302_i+3 DAコンバータ、5,305 グローバル回路、10,110,210,310 半導体集積回路。