説明

累積加算回路

【課題】累積加算回路の消費電力を削減すること。
【解決手段】累積加算回路は、加算回路と、カウンタと、クロックゲーティング制御回路とを備える。加算回路は、所定ビットのデータを累積加算し、桁上げが発生した場合に桁上げ信号を活性化する。カウンタは、桁上げ信号が活性化されているときにカウントアップを行い、Nビットのカウント値を累積加算結果の上位桁として出力する。カウンタは、カウント値のそれぞれのビットをラッチするNビットレジスタを備える。桁上げ信号の活性化に応じて値が変化するビットを保持するレジスタは、活性レジスタである。クロックゲーティング制御回路は、加算回路から桁上げ信号を受け取り、且つ、カウンタからカウント値を受け取る。桁上げ信号が活性化された場合、クロックゲーティング制御回路は、カウンタから受け取ったカウント値を参照することによって、活性レジスタへのクロック供給だけを活性化し、それ以外のクロック供給を非活性化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路における累積加算回路に関する。
【背景技術】
【0002】
半導体集積回路において、複数のデジタルデータを累積的に加算する累積加算回路が用いられる場合がある。
【0003】
例えば、デジタルTVやディスクプレーヤー等の画像処理を行う機器において、画像をより鮮明に表示するために、画像の動き解析等の画像解析が行われる。その画像解析において、複数の画素データを累積加算した結果が用いられる。例えば、水平1ラインに1920画素を有するHDサイズの画像に関して、8ビットの画素データを1920回累積加算することを考える。その場合、19ビット構成の累積加算回路が必要となる。処理する画素数は高画質化に伴って増加し、そのことは、累積加算回路の消費電力の更なる増大を招く。
【0004】
特許文献1には、消費電力の低減を目的としたカウンタが記載されている。そのカウンタにおいて、下位桁カウンタと上位桁カウンタとの間にクロックゲーティング制御回路が介挿されている。下位桁カウンタは、リプルカウンタであり、クロックのアップカウントを行う。下位桁カウンタのカウント値が上限値となって桁上げを行うべきとき、クロックゲーティング制御回路は、クロックCLKaを上位桁カウンタへ供給する。上位桁カウンタは、同期カウンタであり、このようにして供給されるクロックCLKaのアップカウントを行う。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−109563号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
累積加算回路の消費電力を低減することが望まれる。上記特許文献1に記載された技術によれば、桁上げ発生時、クロックCLKaが上位桁カウンタの全てのレジスタに供給される。すなわち、アップカウントにより保持データが変化しないレジスタに対しても、クロックCLKaが供給される。この場合、当該レジスタを構成する回路の負荷容量が、クロックCLKaの変化によって電力を消費してしまう。すなわち、消費電力がいたずらに増大してしまう。このような消費電力の増大は、データビット数や累積加算回数の増加に伴って、更に顕著になる。
【課題を解決するための手段】
【0007】
本発明の1つの観点において、累積加算回路が提供される。その累積加算回路は、加算回路と、カウンタと、クロックゲーティング制御回路とを備える。加算回路は、所定ビットのデータを累積加算し、該累積加算結果の下位桁を出力し、且つ、桁上げが発生した場合に桁上げ信号を活性化する。カウンタは、桁上げ信号が活性化されているときにカウントアップを行い、Nビット(Nは2以上の整数)のカウント値を累積加算結果の上位桁として出力する。クロックゲーティング制御回路は、カウンタへのクロック供給を制御する。
【0008】
カウンタは、供給されるクロックに応答してカウント値のそれぞれのビットをラッチするNビットのレジスタを備える。Nビットのカウント値のうち、桁上げ信号の活性化に応じて値が変化するビットは、変化ビットである。Nビットのレジスタのうち、変化ビットを保持するレジスタは、活性レジスタである。活性レジスタに供給されるクロックは、対象クロックである。
【0009】
クロックゲーティング制御回路は、加算回路から桁上げ信号を受け取り、且つ、カウンタからカウント値を受け取る。桁上げ信号が活性化された場合、クロックゲーティング制御回路は、カウンタから受け取ったカウント値を参照することによって、対象クロックの供給だけを活性化し、それ以外のクロック供給を非活性化する。
【発明の効果】
【0010】
本発明によれば、累積加算回路の消費電力を削減することが可能である。
【図面の簡単な説明】
【0011】
【図1】図1は、本発明の第1の実施の形態に係る累積加算回路を示すブロック図である。
【図2】図2は、本発明の第1の実施の形態における11ビットレジスタの構成例を示す回路図である。
【図3】図3は、本発明の第1の実施の形態におけるクロックゲーティング制御回路の真理値表である。
【図4】図4は、本発明の第1の実施の形態におけるクロックゲーティング制御回路の構成例を示す回路図である。
【図5】図5は、本発明の第1の実施の形態におけるクロックゲートの構成例を示す回路図である。
【図6】図6は、本発明の第1の実施の形態に係る累積加算回路の動作例を示すタイミングチャートである。
【図7】図7は、本発明の第2の実施の形態に係る累積加算回路を示すブロック図である。
【図8】図8は、本発明の第2の実施の形態における11ビットレジスタの構成例を示す回路図である。
【図9】図9は、本発明の第2の実施の形態におけるクロックゲーティング制御回路の真理値表である。
【図10】図10は、本発明の第2の実施の形態におけるクロックゲーティング制御回路の構成例を示す回路図である。
【発明を実施するための形態】
【0012】
1.第1の実施の形態
1−1.構成
図1は、本発明の第1の実施の形態に係る累積加算回路を示すブロック図である。累積加算回路は、所定ビットの入力データ111を累積加算し、累積加算結果を出力する。以下の説明において、入力データ111は8ビットのデータであり、また、累積加算結果は19ビットのデータA[18:0]として表されるとする。尚、A[18:0]は、A[18]、A[17]、・・・A[0]が[]内の数字の順に並んでいる事を表している。
【0013】
図1に示されるように、本実施の形態に係る累積加算回路は、下位桁加算回路61、上位桁カウンタ62、及びクロックゲーティング制御回路63を備えている。下位桁加算回路61は、累積加算結果の下位桁である8ビットのデータA[7:0]を算出し、出力する。一方、上位桁カウンタ62は、累積加算結果の上位桁である11ビットのデータA[18:8]を算出し、出力する。クロックゲーティング制御回路63は、下位桁加算回路61及び上位桁カウンタ62に接続されている。このクロックゲーティング制御回路63は、上位桁カウンタ62へのクロック供給を制御する。各回路の詳細は、次の通りである。
【0014】
(下位桁加算回路61)
下位桁加算回路61は、複数の入力データ111を連続的に受け取り、それら入力データ111を累積的に加算する。そして、下位桁加算回路61は、累積加算結果の下位桁である8ビットのデータA[7:0]を出力する。更に、下位桁加算回路61は、クロックゲーティング制御回路63に接続されており、クロックゲーティング制御回路63に桁上げ信号112を出力する。下位桁からの桁上げが発生した場合、下位桁加算回路61は、その桁上げ信号112を活性化する。本実施の形態では、桁上げ信号112に関して、“1(High)”が活性状態を表し、“0(Low)”が非活性状態を表す。
【0015】
より詳細には、図1に示されるように、下位桁加算回路61は、8ビット加算回路71及び8ビットレジスタ72を備えている。8ビット加算回路71は、8ビットの入力データ111を順次受け取る。8ビット加算回路71は、各入力データ111と累積加算結果の下位8ビットデータA[7:0]とを加算し、加算結果を8ビットレジスタ72に出力する。また、8ビット加算回路71は、桁上げが発生する度に桁上げ信号112を活性化する。
【0016】
8ビットレジスタ72は、8ビット加算回路71の出力に接続されている。また、8ビットレジスタ72には、外部からクロック100が供給される。そのクロック100の立ち上がりに応答して、8ビットレジスタ72は、8ビット加算回路71からの出力データを下位8ビットデータA[7:0]としてラッチする。その下位8ビットデータA[7:0]は、外部に出力されると共に、8ビット加算回路71にフィードバックされる。
【0017】
(上位桁カウンタ62)
上位桁カウンタ62は、カウント動作を行い、Nビット(Nは2以上の整数)のカウント値を出力する。より詳細には、カウント値の初期値は0であり、上位桁カウンタ62は、下位桁加算回路61によって桁上げ信号112が活性化される度に、1ずつカウントアップを行う。従って、このNビットのカウント値が、累積加算結果の上位桁となる。本実施の形態では、N=11であり、上位桁カウンタ62は、11ビットのカウント値を、累積加算結果の上位11ビットデータA[18:8]として出力する。
【0018】
より詳細には、図1に示されるように、上位桁カウンタ62は、11ビット加算回路81及び11ビットレジスタ82を備えている。11ビット加算回路81は、上位11ビットデータA[18:8]を受け取る。11ビット加算回路81は、その上位11ビットデータA[18:8]に「1」を加算することによって加算データD[10:0]を生成し、その加算データD[10:0]を11ビットレジスタ82に出力する。
【0019】
11ビットレジスタ82は、11ビット加算回路81の出力に接続されている。また、11ビットレジスタ82には、クロックゲーティング制御回路63からクロック(310〜320)が供給される。そのクロック供給に応答して、11ビットレジスタ82は、加算データD[10:0]を上位11ビットデータA[18:8]としてラッチする。その上位11ビットデータA[18:8]は、外部に出力されると共に、11ビット加算回路81にフィードバックされる。後に説明されるように、クロックゲーティング制御回路63からのクロック供給は、上述の桁上げ信号112が活性化された場合に活性化される。従って、上位11ビットデータA[18:8]は、桁上げ信号112が活性化されているときにカウントアップされることになる。
【0020】
図2は、本実施の形態における11ビットレジスタ82の構成例を示す回路図である。11ビットレジスタ82は、上位11ビットデータA[18:8]のそれぞれのビットを保持する11個のレジスタ(第1〜第11レジスタ)を備えている。図2の例において、第1〜第11レジスタは、フリップフロップFF0〜FF10である。それらフリップフロップFF0〜FF10が、下位側から上位側に向けてビットA[8]〜ビットA[18](第1〜第Nビット)のそれぞれを保持し、出力する。より詳細には、フリップフロップFF0〜FF10には、加算データD[10:0]のそれぞれのビットD[0]〜D[10]が入力される。また、フリップフロップFF0〜FF10のそれぞれには、別々のクロック配線を介して、別々のクロック310〜320が供給される。フリップフロップFF0〜FF10は、それぞれ、クロック310〜320の立ち上がりに応答して、最新の上位11ビットデータA[18:8](すなわち、加算データD[10:0])をラッチし、出力する。
【0021】
(クロックゲーティング制御回路63)
クロックゲーティング制御回路63は、下位桁加算回路61及び上位桁カウンタ62に接続されている。クロックゲーティング制御回路63は、クロック100を受け取り、下位桁加算回路61から桁上げ信号112を受け取り、更に、上位桁カウンタ62から上位11ビットデータA[18:8]を受け取る。そして、クロックゲーティング制御回路63は、桁上げ信号112及び上位11ビットデータA[18:8]に基いて、上位桁カウンタ62へのクロック310〜320の供給を制御する。
【0022】
より詳細には、次の通りである。上位11ビットデータA[18:8]のうち、桁上げ信号112の活性化に応じて値が変化するビットは、以下「変化ビット」と参照される。11ビットレジスタ82(フリップフロップFF0〜FF10)のうち、変化ビットを保持するレジスタは、以下「活性レジスタ」と参照される。その活性レジスタに供給されるクロックは、以下「対象クロック」と参照される。桁上げ信号112が活性化されたとき、クロックゲーティング制御回路63は、上位桁カウンタ62から受け取った上位11ビットデータA[18:8](カウントアップ前のカウント値)を参照することによって、変化ビット、活性レジスタ及び対象クロックを認識することができる。それにより、クロックゲーティング制御回路63は、活性レジスタへの対象クロックの供給だけを活性化し、それ以外のレジスタへのクロック供給を非活性化することができる。その結果、上位桁カウンタ62の消費電力が削減される。
【0023】
図3は、桁上げ信号112、上位11ビットデータA[18:8]、及びクロック310〜320の活性化/非活性化の間の対応関係を示している。桁上げ信号112に関して、“1”が活性状態(桁上げ発生)を表し、“0”が非活性状態を表す。上位11ビットデータA[18:8]に関して、最左端が最上位ビットA[18]を表し、最右端が最下位ビットA[8]を表し、“x”は“0”、“1”のどちらでもよいことを表す。クロック310〜320に関して、“ON”が活性化(供給)を表し、“OFF”が非活性化(停止)を表す。
【0024】
図3に示されるように、クロック310〜320のON/OFFパターンは、桁上げ信号112及び上位11ビットデータA[18:8]のパターンに依存して決まる。特に、A[18:8]のうち値が0であって最も下位側に位置する「最下位0ビット」に着目すると、桁上げ信号112=“1”の場合は、その最下位0ビットの位置によってクロック310〜320のON/OFFパターンが決まることが分かる。すなわち、上位11ビットデータA[18:8]のうち、最下位ビットA[8]から最下位0ビットまでのビットが、上述の「変化ビット」である。従って、最下位ビットA[8]から最下位0ビットまでを保持するレジスタにだけ、対応するクロックを供給すればよい。
【0025】
このように、上位11ビットデータA[18:8]中の最下位0ビットの位置に基いて、クロック310〜320のON/OFFパターンを決定することができる。そのために、図1に示されるように、クロックゲーティング制御回路63は、クロックゲーティング回路91及び0位置検出回路92を有している。0位置検出回路92は、上位桁カウンタ62から上位11ビットデータA[18:8]を受け取り、その上位11ビットデータA[18:8]中の最下位0ビットの位置を検出する。クロックゲーティング回路91は、その検出結果に基づき、図3で示された対応関係に従って、クロック310〜320の供給を制御する。
【0026】
図4は、本実施の形態におけるクロックゲーティング制御回路63の構成例を示す回路図である。クロックゲーティング制御回路63は、11個のクロックゲートCG0〜CG10(第1〜第11クロックゲート)を備えている。クロックゲートCG0〜CG10は、それぞれ、フリップフロップFF0〜FF10(第1〜第11レジスタ)に接続されており、フリップフロップFF0〜FF10へのクロック310〜320の供給を制御する。
【0027】
クロックゲートCG0〜CG10の各々は、図5に示されるような構成を有している。具体的には、クロックゲートは、ラッチ回路51及びANDゲート52を有している。また、クロックゲートには、入力クロックCLK1及びイネーブル信号EN1が入力される。ラッチ回路51は、入力クロックCLK1がLレベル(“0”)のときにイネーブル信号EN1を通過させ、入力クロックCLK1の立ち上がりエッジでイネーブル信号EN1をラッチする。ラッチ回路51の出力はイネーブル信号EN2である。ANDゲート52には入力クロックCLK1及びイネーブル信号EN2が入力され、それらの論理積が出力クロックCLK2として出力される。
【0028】
このような構成のクロックゲートは、次のように動作する。入力クロックCLK1が非活性化されている場合、つまり、入力クロックCLK1が“0”のまま変わらない場合、出力クロックCLK2も“0”のまま変わらず、非活性化される。すなわち、クロック供給が非活性化(遮断)される。また、イネーブル信号EN1が非活性化されている場合、つまり、イネーブル信号EN1が“0”の場合、イネーブル信号EN2も“0”となる。その結果、出力クロックCLK2は“0”のまま変わらず、非活性化される。すなわち、クロック供給が非活性化(遮断)される。一方、入力クロックCLK1及びイネーブル信号EN1が共に活性化されている場合、入力クロックCLK1が出力クロックCLK2として出力される。すなわち、クロック供給が活性化される。
【0029】
再度図4を参照すると、第1クロックゲート(クロックゲートCG0)は、クロック100を入力クロックCLK1として受け取り、また、桁上げ信号112をイネーブル信号EN1として受け取る。また、パラメータiが2〜Nの各々であるとき、第iクロックゲート(クロックゲートCG(i−1))は、第(i−1)クロックゲートから出力される出力クロックCLK2を入力クロックCLK1として受け取る。更に、その第iクロックゲートは、ビットA[8]〜ビットA[17](第1〜第10ビット)のうち第(i−1)ビットを、イネーブル信号EN1として受け取る。このような構成により、図3で示された対応関係が実現される。
【0030】
1−2.動作例
図6は、本実施の形態に係る累積加算回路の動作例を示すタイミングチャートである。より詳細には、図6は、上位桁カウンタ62におけるカウント値(上位11ビットデータA[18:8])が初期値“0”から“8”まで増加する例を示している。
【0031】
時刻t1でのクロック100の立ち上がりエッジで、桁上げ信号112が、“0”から“1”に変わる。この桁上げ信号112は、クロックゲートCG0にイネーブル信号EN1として入力される。
【0032】
時刻t2において、クロックゲートCG0のイネーブル信号EN2が“0”から“1”に変わる。その結果、クロック310の供給が活性化される。
【0033】
時刻t3において、クロック310が立ち上がる。その他のクロックは停止している。フリップフロップFF0は加算データD[0]=“1”をラッチし、ビットA[8]が“1”になる。つまり、カウント値A[18:8]が“1”になる。
【0034】
クロックゲートCG1には、ビットA[8]=“1”がイネーブル信号EN1として入力され、また、活性化されたクロック310が入力クロックCLK1として入力される。従って、時刻t4において、クロックゲートCG1のイネーブル信号EN2が“0”から“1”に変わる。その結果、クロック311の供給が活性化される。
【0035】
時刻t5において、クロック310及びクロック311が立ち上がる。その他のクロックは停止している。フリップフロップFF0は加算データD[0]=“0”をラッチし、ビットA[8]が“0”になる。また、フリップフロップFF1は加算データD[1]=“1”をラッチし、ビットA[9]が“1”になる。つまり、カウント値A[18:8]が“2”になる。
【0036】
クロックゲートCG1には、ビットA[8]=“0”がイネーブル信号EN1として入力される。従って、時刻t6において、クロックゲートCG1のイネーブル信号EN2が“1”から“0”に変わり、クロック311が非活性化される。このとき、クロックゲートCG2にはビットA[9]=“1”がイネーブル信号EN1として入力されているが、入力クロック311が非活性化されたため、クロック312も停止したままである。
【0037】
時刻t7において、クロック310が立ち上がる。フリップフロップFF0は加算データD[0]=“1”をラッチし、ビットA[8]が“1”になる。つまり、カウント値A[18:8]が“3”になる。
【0038】
クロックゲートCG1には、再度、ビットA[8]=“1”がイネーブル信号EN1として入力される。従って、時刻t8において、クロックゲートCG1のイネーブル信号EN2が“0”から“1”に変わる。その結果、クロック311の供給が再度活性化される。クロック311が活性化されるため、クロックゲートCG2によるクロック312の供給も活性化される。
【0039】
時刻t9において、クロック310、311、312が立ち上がる。その他のクロックは停止している。フリップフロップFF0は加算データD[0]=“0”をラッチし、ビットA[8]が“0”になる。また、フリップフロップFF1は加算データD[1]=“0”をラッチし、ビットA[9]が“0”になる。また、フリップフロップFF1は加算データD[1]=“1”をラッチし、ビットA[10]が“1”になる。つまり、カウント値A[18:8]が“4”になる。その後も同様である。
【0040】
1−3.効果
以上に説明されたように、本実施の形態によれば、カウント値A[18:8]中の変化ビットを保持する活性レジスタにだけ、必要なクロックが供給される。一方、アップカウントにより保持データが変化しないレジスタに対しては、クロック供給が非活性化(遮断)される。従って、消費電力が削減される。
【0041】
比較例として、上記特許文献1(特開2008−109563号公報)と同じように、桁上げ信号112が活性化されたときにクロック310〜320の全てが活性化される場合を考える。2048回アップカウントする間に、上位桁カウンタ62の11ビットレジスタ82に供給されるクロック回数は、22528(=2048×11)回となる。また、クロックゲーティング制御回路63内のクロックゲートは共通化され、その共通のクロックゲートにはクロック100が2048回供給される。クロックゲート内では、ラッチ回路51及びANDゲート52の2つの回路にクロックが供給され、そのクロック回数は、4096(=2048×2)回である。よって、クロック総数は26624(=22528+4096)回となる。
【0042】
一方、本実施の形態では次の通りである。図6から分かるように、クロック311の回数はクロック310の回数の半分であり、クロック312の回数はクロック311の回数の半分である。その他も同様で、ある段のクロックの回数は、前段のクロックの回数の半分となる。従って、2048回(211回)アップカウントする間に、上位桁カウンタ62の11ビットレジスタ82に供給されるクロック回数は、4094(=211+210+・・・・+2)回となる。また、クロックゲート制御回路63に関して、クロックゲートCG0にはクロック100が2048回供給される。クロックゲートCG1〜CG10には、クロック310〜319がそれぞれ供給される。従って、クロックゲートCG0〜CG11に供給されるクロック回数は、6140(=211+211+210+2+・・・+2)回となる。各クロックゲート内では、ラッチ回路51及びANDゲート52の2つの回路にクロックが供給される。従って、クロック総数は、16374(=4094+6140×2)回となる。これは、比較例の62%以下であり、これに伴い消費電力も削減される。
【0043】
2.第2の実施の形態
図7は、本発明の第2の実施の形態に係る累積加算回路を示すブロック図である。既出の第1の実施の形態と比較して、クロックゲーティング制御回路63がクロックゲーティング制御回路63Bで置換され、11ビットレジスタ82が11ビットレジスタ82Bで置換されている。クロックゲーティング制御回路63Bは、11ビットレジスタ82Bへのクロック810〜812の供給を制御する。その他は第1の実施の形態と同様であり、重複する説明は適宜省略される。
【0044】
図8は、11ビットレジスタ82Bの回路構成例を示している。11ビットレジスタ82Bは、ビットA[8]〜ビットA[18](第1〜第11ビット)のそれぞれを保持するフリップフロップFF0〜FF10(第1〜第11レジスタ)を備えている。本実施の形態において、それらフリップフロップFF0〜FF10は、M個(Mは2以上N以下の整数)のグループに区分けされる。図8の例において、M=3であり、第1グループはフリップフロップFF0〜FF3を含み、第2グループはフリップフロップFF4〜FF7を含み、第3グループはフリップフロップFF8〜FF10を含んでいる。
【0045】
第1〜第3グループのそれぞれには、別々のクロック配線を介して、別々のクロック810〜812が供給される。但し、同一グループ内のフリップフロップには、同一クロックが共通に供給される。すなわち、第1グループのフリップフロップFF0〜FF3にはクロック810が供給され、第2グループのフリップフロップFF4〜FF7にはクロック811が供給され、第3グループのフリップフロップFF8〜FF10にはクロック812が供給される。
【0046】
図9は、既出の図3と同様であり、本実施の形態における桁上げ信号112、上位11ビットデータA[18:8]、及びクロック810〜812の活性化/非活性化の間の対応関係を示している。クロックゲーティング制御回路63Bは、図9で示される対応関係を実現するように構成される。
【0047】
図10は、本実施の形態におけるクロックゲーティング制御回路63Bの構成例を示す回路図である。クロックゲーティング制御回路63Bは、3個のクロックゲートCG0〜CG2(第1〜第3クロックゲート)を備えている。クロックゲートCG0〜CG2は、それぞれ、上述の第1〜第3グループに接続されており、第1〜第3グループへのクロック810〜812の供給を制御する。クロックゲートCG0〜CG2の各々は、既出の図5に示される構成を有している。
【0048】
クロックゲーティング制御回路63Bは更に、ANDゲート93B、94Bを備えている。ANDゲート93Bは、第1グループに属するフリップフロップFF0〜FF3によってそれぞれ保持されるビットA[8]〜ビットA[11]の論理積813を出力する。ANDゲート94Bは、第2グループに属するフリップフロップFF4〜FF7によってそれぞれ保持されるビットA[12]〜ビットA[15]の論理積814を出力する。
【0049】
第1クロックゲート(クロックゲートCG0)は、クロック100を入力クロックCLK1として受け取り、また、桁上げ信号112をイネーブル信号EN1として受け取る。第2クロックゲート(クロックゲートCG1)は、クロック810を入力クロックCLK1として受け取り、また、ANDゲート93Bから出力される論理積813をイネーブル信号EN1として受け取る。第3クロックゲート(クロックゲートCG2)は、クロック811を入力クロックCLK1として受け取り、また、ANDゲート94Bから出力される論理積814をイネーブル信号EN1として受け取る。パラメータj(jは2〜Mの各々)を用いて一般化すれば、次の通りである。第jクロックゲート(クロックゲートCG(j−1))は、第(j−1)クロックゲートから出力される出力クロックCLK2を入力クロックCLK1として受け取る。更に、その第jクロックゲートは、第(j−1)グループに属するフリップフロップによって保持されるそれぞれのビットの論理積を、イネーブル信号EN1として受け取る。このような構成により、図9で示された対応関係が実現される。
【0050】
第2の実施の形態によれば、第1の実施の形態の場合と同様に、消費電力を低減することが可能である。更に、第2の実施の形態によれば、クロックゲーティング制御回路63Bから11ビットレジスタ82Bへ供給されるクロックが、複数ビット毎にまとめられる。これにより、第1の実施の形態と比較して、クロックゲーティング制御回路63B中のクロックゲートの個数が減る。その結果、累積加算回路の面積が削減される。
【0051】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【0052】
61 下位桁加算回路
62 上位桁カウンタ
63 クロックゲーティング制御回路
71 8ビット加算回路
72 8ビットレジスタ
81 11ビット加算回路
82 11ビットレジスタ
91 クロックゲーティング回路
92 0位置検出回路
100 クロック
111 入力データ
112 桁上げ信号
310〜320 クロック

【特許請求の範囲】
【請求項1】
所定ビットのデータを累積加算し、該累積加算結果の下位桁を出力し、且つ、桁上げが発生した場合に桁上げ信号を活性化する加算回路と、
前記桁上げ信号が活性化されているときにカウントアップを行い、Nビット(Nは2以上の整数)のカウント値を前記累積加算結果の上位桁として出力するカウンタと、
前記カウンタへのクロック供給を制御するクロックゲーティング制御回路と
を備え、
前記カウンタは、供給されるクロックに応答して前記カウント値のそれぞれのビットをラッチするNビットのレジスタを備え、
前記Nビットのカウント値のうち、前記桁上げ信号の活性化に応じて値が変化するビットは、変化ビットであり、
前記Nビットのレジスタのうち、前記変化ビットを保持するレジスタは、活性レジスタであり、
前記活性レジスタに供給されるクロックは、対象クロックであり、
前記クロックゲーティング制御回路は、前記加算回路から前記桁上げ信号を受け取り、且つ、前記カウンタから前記カウント値を受け取り、
前記桁上げ信号が活性化された場合、前記クロックゲーティング制御回路は、前記カウンタから受け取った前記カウント値を参照することによって、前記対象クロックの供給だけを活性化し、それ以外のクロック供給を非活性化する
累積加算回路。
【請求項2】
請求項1に記載の累積加算回路であって、
前記Nビットのカウント値のうち、値が0であって最も下位側に位置するビットは、最下位0ビットであり、
前記Nビットのカウント値のうち、最下位ビットから前記最下位0ビットまでのビットが、前記変化ビットであり、
前記クロックゲーティング制御回路は、前記カウンタから受け取った前記カウント値から前記最下位0ビットを検出することによって、前記対象クロックの供給だけを活性化する
累積加算回路。
【請求項3】
請求項1に記載の累積加算回路であって、
前記Nビットのカウント値は、下位側から上位側に向けて第1〜第Nビットを含み、
前記Nビットのレジスタは、前記第1〜第Nビットのそれぞれを保持する第1〜第Nレジスタを含み、
前記クロックゲーティング制御回路は、前記第1〜第Nレジスタのそれぞれに接続され、前記第1〜第Nレジスタのそれぞれに対するクロック供給を制御する第1〜第Nクロックゲートを備え、
前記第1クロックゲートは、前記桁上げ信号をイネーブル信号として受け取り、また、入力クロックを受け取り、
前記第iクロックゲート(iは2〜Nの各々)は、前記第(i−1)ビットをイネーブル信号として受け取り、また、前記第(i−1)クロックゲートから出力されるクロックを入力クロックとして受け取り、
前記第1〜第Nクロックゲートの各々は、前記イネーブル信号及び前記入力クロックが活性化された場合にクロック供給を活性化し、前記イネーブル信号あるいは前記入力クロックが非活性化された場合にクロック供給を非活性化する
累積加算回路。
【請求項4】
請求項1に記載の累積加算回路であって、
前記Nビットのカウント値は、下位側から上位側に向けて第1〜第Nビットを含み、
前記Nビットのレジスタは、前記第1〜第Nビットのそれぞれを保持する第1〜第Nレジスタを含み、
前記第1〜第Nレジスタは、M個(Mは2以上N以下の整数)のグループに区分けされ、
前記M個のグループは、下位側から上位側に向けて第1〜第Mグループを含み、
前記クロックゲーティング制御回路は、前記第1〜第Mグループのそれぞれに接続され、前記第1〜第Mグループのそれぞれに対するクロック供給を制御する第1〜第Mクロックゲートを備え、
前記第1クロックゲートは、前記桁上げ信号をイネーブル信号として受け取り、また、入力クロックを受け取り、
前記第jクロックゲート(jは2〜Mの各々)は、前記第(j−1)グループに属するレジスタによって保持されるそれぞれのビットの論理積をイネーブル信号として受け取り、また、前記第(j−1)クロックゲートから出力されるクロックを入力クロックとして受け取り、
前記第1〜第Mクロックゲートの各々は、前記イネーブル信号及び前記入力クロックが活性化された場合にクロック供給を活性化し、前記イネーブル信号あるいは前記入力クロックが非活性化された場合にクロック供給を非活性化する
累積加算回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate