(57)【特許請求の範囲】
【請求項１】
プロセスばらつきに対して第１のコーナー条件で設計された第１回路部と、
前記第１のコーナー条件より狭い第２のコーナー条件で設計された第２回路部と、
前記第１回路部における遅延量に応じて、前記第１回路部及び前記第２回路部に供給する動作電圧を変更し、前記動作電圧の変化による遅延特性が前記第２のコーナー条件における遅延特性に適合した場合、前記第２回路部を起動する制御部と、
を具備する
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記制御部は、前記遅延量が前記第２のコーナー条件の遅延特性に適合すると、前記第２回路部を動作させるためのイネーブル信号を出力し、
前記第２回路部は前記イネーブル信号に応じて動作を開始する
半導体集積回路。
【請求項３】
請求項１又は２に記載の半導体集積回路において、
前記第１回路部及び第２回路部に対して前記動作電圧を供給する可変電圧源と、
前記動作電圧に応じて動作する前記第１回路部の遅延量を検出するモニタ部と
を更に具備し、
前記制御部は、前記遅延量と第１基準値との比較結果に応じて前記動作電圧の変更を前記可変電圧源に指示し、
前記可変電圧源は、前記指示に応じて前記動作電圧を変更し、
前記第１基準値は、前記動作電圧を昇圧するか否かを決める前記第１回路部の遅延量の最大値と、前記動作電圧を降圧するか否かを決める前記第１回路部の遅延量の最小値と、に応じて設定される
半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路において、
前記制御部は、前記遅延量と第２基準値との比較結果に応じて前記第２回路部を動作させるためのイネーブル信号を出力し、
前記第２基準値は、前記第２のコーナー条件を補償する前記第１回路部の遅延量の最上限値と最下限値とに応じて設定される
半導体集積回路。
【請求項５】
請求項４に記載の半導体集積回路において、
前記モニタ部は、リングオシレータを備え、
前記制御部は、前記リングオシレータの第１発振回数をカウントするカウンタと、前記第１基準値に基づいて設定された第２発振回数が設定された第１レジスタと、前記第２基準値に基づいて設定された第３発振回数が設定された第２レジスタとを備え、
前記制御部は、前記第１発振回数と前記第２発振回数との比較結果に応じて前記動作電圧を変更するための制御信号を出力し、前記第１発振回数と前記第３発振回数との比較結果に応じて前記イネーブル信号を出力する
半導体集積回路。
【請求項６】
請求項３又は４に記載の半導体集積回路において、
前記モニタ部は、クリティカルパスレプリカと、直列接続された複数の遅延回路を備え、
前記クリティカルパスを介して前記複数の遅延回路のそれぞれで遅延されたデータ信号の位相差に基づいて、前記遅延量を検出する
半導体集積回路。
【請求項７】
請求項３から６のいずれか１項に記載の半導体集積回路において、
前記モニタ部は、前記第２回路部に設けられる
半導体集積回路。
【請求項８】
請求項１から７のいずれか１項に記載の半導体集積回路において、
前記制御部は、前記第１回路部における遅延量に応じて、前記第１回路部及び前記第２回路部に供給する基板電圧を変更する
半導体集積回路。
【請求項９】
請求項１から８のいずれか１項に記載の半導体集積回路において、
前記制御部は、前記第１回路部における遅延量に応じて、前記第１回路部及び前記第２回路部に供給する電源電圧を変更する
半導体集積回路。
【請求項１０】
請求項１から９のいずれか１項に記載の半導体集積回路において、
前記制御部は、前記第１回路部に搭載される
半導体集積回路。
【請求項１１】
請求項１から１０のいずれか１項に記載の半導体集積回路において、
前記第１及び第２のコーナー条件は、プロセスコーナーであるファースト条件及びスロー条件を含み、
前記第１のコーナー条件におけるファースト条件は、前記第２のコーナー条件におけるファースト条件よりも高く設定され、前記第１のコーナー条件におけるスロー条件は、前記第２のコーナー条件におけるスロー条件よりも低く設定される
半導体集積回路。
【請求項１２】
請求項１から１１のいずれか１項に記載の半導体集積回路において、
前記制御部は、前記遅延量が前記第２のコーナー条件に適合しない場合、前記第２回路部を停止させるための停止信号を出力し、
前記第２回路部は、前記停止信号に応じて動作を停止する
半導体集積回路。
【請求項１３】
請求項１２に記載の半導体集積回路において、
エミュレータと、
前記第２回路部からの第１出力信号と前記エミュレータからの第２出力信号の一方を選択して出力するセレクタと
を更に具備し、
前記セレクタは、前記第２回路部が動作している間、前記第１出力信号を選択して出力し、前記第２回路部が停止している間、前記第２出力信号を選択して出力する
半導体集積回路。
【請求項１４】
プロセスばらつきに対して第１のコーナー条件で設計された第１回路部における遅延量に応じて、前記第１のコーナー条件より狭い第２のコーナー条件で設計された第２回路部と前記第１回路部とに供給する動作電圧を変更するステップと、
前記動作電圧の変化による遅延特性が第２のコーナー条件における遅延特性に適合した場合、前記第２回路部を起動するステップと
を具備する
動作電圧制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、及び半導体集積回路に対する動作電圧の制御方法に関する。
【背景技術】
【０００２】
半導体集積回路における消費電力を低減するためには、動作電圧や動作周波数を低下させることが有効である。このため、回路の動作周波数と電源電圧を動的に制御することで消費電力を削減するＤＶＦＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）が、一般的に知られている。例えば、動作速度を優先する動作モードと省消費電力を優先する動作モードとを切り換えることで、長期間の動作全体において低電力化する技術が、Ｂｕｒｄ，  Ｔ．、  Ｐｅｒｉｎｇ，  Ｔ．、  Ｓｔｒａｔａｋｏｓ，  Ａ．、  Ｂｒｏｄｅｒｓｅｎ，  Ｒ著“Ａ  Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  Ｓｃａｌｅｄ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｓｙｓｔｅｍ”２０００  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ  ０７８０３−５８５３−８／００に記載されている（非特許文献１参照）。
【０００３】
非特許文献１では、発振器からのクロック信号の周波数と要求クロック周波数の差に応じて動作電圧を変更している。これにより、所望の周波数での回路動作を行うことが可能となる。
【０００４】
電源電圧を制御する技術として、例えば、特開２０００−２１６３３７（特許文献１参照）や特開２００９−２００７３９（特許文献２参照）が知られている。特許文献１には、レプリカ回路の遅延量に応じて、電源電圧を制御する装置が記載されている。また、プロセスばらつきのセンターに位置する回路が正常に動作できる最低限度の電圧を初期値とすれば最適電源電圧への収束時間が短くなることが記載されている。又、特許文献２には、クリティカルパスにおける遅延マージンのあるパスの電源電圧を低下して、電力低減を図る半導体集積回路が記載されている。
【０００５】
更に、動作電圧を制御することで、プロセスばらつきを補償する技術が知られている。例えば、米国特許２００９／００７７５１４には、プロセスばらつき補償のための電圧制御を想定した設計を行う技術が記載されている（特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２１６３３７
【特許文献２】特開２００９−２００７３９
【特許文献３】米国特許２００９／００７７５１４
【非特許文献】
【０００７】
【非特許文献１】Ｂｕｒｄ，  Ｔ．、  Ｐｅｒｉｎｇ，  Ｔ．、  Ｓｔｒａｔａｋｏｓ，  Ａ．、  Ｂｒｏｄｅｒｓｅｎ，  Ｒ著“Ａ  Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  Ｓｃａｌｅｄ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｓｙｓｔｅｍ”２０００  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ  ０７８０３−５８５３−８／００
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献３では、プロセスばらつきを補償した設計を行うことで、余計な駆動能力やｈｏｌｄ保障バッファが不要となり低電力、小面積となるが、所定の電圧でないと誤動作を引き起こす可能性があった。しかし、電圧制御を実現する仕組みは開示されていない。
【０００９】
又、特許文献３では、プロセスばらつきが擬似的に小さくなるようにプロセスコーナーにおけるＦＦ側は電圧を下げ、ＳＳ側は電圧を上げることを前提に設計しているが、動作できない電圧設定時間を要するため、起動に時間がかかるという問題がある。又、半導体集積回路を稼働中に周辺環境の変動等によって遅延特性等が変動した場合、正常動作を継続するためには、一旦、半導体集積回路の演算処理を停止し、所定の電圧になるような電圧制御を実施し、所定の電圧になった後に、演算処理を再開する必要がある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための形態］の記載との対応関係を明らかにするために、［発明を実施するための形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００１１】
本発明による半導体集積回路は、プロセスばらつきに対して第１のコーナー条件で設計された第１回路部（１）と、第１の条件より狭い第２のコーナー条件で設計された第２回路部（２）と、第１回路部（１）における遅延量に応じて、第１回路部（１）及び第２回路部（２）に供給する動作電圧を変更し、動作電圧の変化による遅延特性が第２コーナー条件における遅延特性に適合した場合、第２回路（２）を起動する制御部（１２）とを具備する。
【００１２】
本発明による動作電圧制御方法は、プロセスばらつきに対して第１のコーナー条件で設計された第１回路部（１）における遅延量に応じて、第１の条件より狭い第２のコーナー条件で設計された第２回路部（２）と第１回路部（１）とに供給する動作電圧を変更するステップと、動作電圧の変化による遅延特性が第２コーナー条件における遅延特性に適合した場合、第２回路（２）を起動するステップとを具備する。
【発明の効果】
【００１３】
本発明によれば、動作電圧を制御してプロセスばらつきを補償する半導体集積回路の起動制御を実現できる。
【００１４】
又、半導体集積回路の消費電力を低減することができる。
【００１５】
更に、半導体集積回路の動作中にプロセスばらつきを補償する動作電圧を設定することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明による半導体集積回路の構成の一例を示す図である。
【図２】図２は、本発明に係るコーナー条件の一例を示す図である。
【図３】図３は、本発明による電圧制御動作の一例を示す図である。
【図４】図４は、本発明による電圧制御動作の他の一例を示す図である。
【図５】図５は、本発明によるモニタ部及び制御部の第１の実施の形態における構成を示す図である。
【図６】図６は、第１の実施の形態における電圧制御動作の一例（降圧動作）を示すタイミングチャートである。
【図７】図７は、第１の実施の形態における電圧制御動作の一例（昇圧動作）を示すタイミングチャートである。
【図８】図８は、第１の実施の形態における電圧制御動作の他の一例（降圧動作）を示すタイミングチャートである。
【図９】図９は、第１の実施の形態における電圧制御動作の更に他の一例（降圧動作）を示すタイミングチャートである。
【図１０】図１０は、本発明による半導体集積回路の構成の他の一例を示す図である。
【図１１】図１１は、本発明による制御部の第２の実施の形態における構成を示す図である。
【図１２】図１２は、本発明に係るモニタ部の構成の一例を示す図である。
【図１３】図１３は、本発明に係るモニタ部の構成の他の一例を示す図である。
【図１４】図１４は、第２の実施の形態における電圧制御動作の一例を示すタイミングチャートである。
【図１５】図１５は、本発明による半導体集積回路の第３の実施形態における構成を示す図である。
【図１６】図１６は、本発明に係るコーナー条件の他の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００１８】
（概要）
本発明による半導体集積回路は、それぞれが異なるコーナー条件で設計され、共通の動作電圧（電源電圧又は／及び基板電圧）が供給される複数の回路ブロックを備える。本発明では、半導体集積回路の起動時、比較的広いコーナー条件（第１コーナー条件）で設計された回路ブロック（第１回路部）を先に起動して、可変電圧源を制御し、遅延特性を所定の値にする電圧を設定する。遅延特性が所定の値に達すると、第１回路部は、狭いコーナー条件（第２コーナー条件）で設計された回路ブロック（第２回路部）を起動する。尚、狭いコーナー条件とした場合、回路設計から見ると甘くなり、デバイスばらつき耐性は厳しくなる。一方、広いコーナー条件とした場合、回路設計から見ると厳しくなり、デバイスばらつき耐性は緩くなる。
【００１９】
ここで、コーナー条件は、プロセス（Ｐｒｏｃｅｓｓ）、電源電圧（Ｖｄｄ）、閾値電圧（Ｖｔ）、温度条件（Ｔｅｍｐｅｒａｔｕｒｅ）のいずれかに対して遅延値が最小（ＦＡＳＴ）及び最大（ＳＬＯＷ）となる２つのプロセスコーナーを含む。第１回路部は、広い第１コーナー条件で設計されている。このため、あるデバイスばらつきのチップにおいて、第１回路部が所望の処理性能と正常動作を達成可能となる動作電圧の範囲は広い。一方、第１コーナー条件より狭い第２コーナー条件で設計された第２回路部が所望の処理性能と正常動作を達成可能となる動作電圧の範囲は、第１回路部より狭くなる。
【００２０】
第１回路部は、所望の処理性能と正常動作が可能な電圧範囲が広いため、供給される動作電圧がある程度小さい又は大きくても動作可能である。このため、動作電圧の初期値がノイズ等により変動する場合や、動作中において周辺環境の変化により所望の動作電圧から大きくはずれた場合でも、第１回路部が誤動作する可能性は低くなる。
【００２１】
本発明では、第２回路部より先に第１回路部が動作し、この動作結果（遅延量）を動作電圧の値にフィードバックして動作電圧の大きさを決定している。第２回路部は、第１回路部によって設定された動作電圧で動作を開始する。第１回路部によって設定された動作電圧が、第２コーナー条件の遅延特性に適合した値である場合、第２回路部は誤動作することがない。すなわち、第１回路部による電圧制御によって、第２回路部のプロセスばらつきは補償されることとなる。
【００２２】
又、動作電圧は、第２コーナー条件の遅延特性に適合するように制御されるため、消費電力を所定の範囲に収束することができる。本発明では、動作電圧が第２コーナー条件の遅延特性から決まる値より高い場合、低くなるように制御され、消費電力は低減される。
【００２３】
更に、周辺環境の変動等により遅延が変化し、現在の動作電圧が第２コーナー条件の遅延特性から外れた値となる場合、第２回路部の動作を停止してもよい。第２回路部が停止している間、第１回路部によって動作電圧が所望の値に設定される。第２回路部は、動作電圧が所望の値に設定された後、動作を再開する。これにより、第２回路の誤動作を防止できるとともに、誤動作の可能性のある動作を行わないため無駄な電力消費を防止できる。
【００２４】
以下、本発明による半導体集積装置及び動作電圧の制御方法について詳細に説明する。
【００２５】
１．第１の実施の形態
図１から図９を参照して、本発明による半導体集積回路の第１の実施の形態を説明する。図１は、本発明による半導体集積回路の構成の一例を示す図である。図１を参照して、本発明による半導体集積回路は、第１コーナー条件で設計された回路部１と、第２コーナー条件で設計された回路部２と、可変電圧源３とを具備する。
【００２６】
図２は、本発明に係るコーナー条件の一例を示す図である。回路部１、２は、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）を含む回路ブロックである。図２を参照して、ＣＭＯＳにおけるＰチャネル型ＭＯＳトランジスタのオン電流Ｉｏｎ＿ＰをＹ軸、Ｎチャネル型ＭＯＳトランジスタのオン電流Ｉｏｎ＿ＮをＸ軸とし、最も少ない遅延量の電流値（ＦＡＳＴ）をＦ、最も遅延量の大きい電流値（ＳＬＯＷ）をＳとする。コーナー条件は、オン電流Ｉｏｎ＿Ｐ及びオン電流Ｉｏｎ＿Ｎのそれぞれに対応するＦとＳの組み合わせ、すなわちＦＦ、ＦＳ、ＳＦ、ＳＳを結ぶ直線で囲まれた領域で表される。尚、図２に示すコーナー条件は、トランジスタのオン電流で表現しているが、他のパラメータ（トランジスタのしきい値電圧）で表現されてもよい。
【００２７】
第２コーナー条件（ＦＦ２、ＦＳ２、ＳＦ２、ＳＳ２）は、第１コーナー条件（ＦＦ１、ＦＳ１、ＳＦ１、ＳＳ１）よりも狭い条件に設定されている。このため第２コーナー条件で設計された回路部２は、第１コーナー条件で設計された回路部１よりもプロセスばらつきの許容範囲が狭く、あるチップに対して所望の処理性能と正常動作が可能な動作電圧の範囲も回路部１より狭い。
【００２８】
図１を参照して、第１の実施の形態における回路部１は、モニタ部１１及び制御部１２を備える。第１の実施の形態におけるモニタ部１１は、回路部１における遅延量を検出し、制御部１２に出力する。制御部１２は、遅延量に基づいて可変電圧源３を制御する。詳細には、制御部１２は、遅延量の基準値と、検出された遅延量とを比較し、比較結果に応じてＵｐ信号３０１、又はＤｏｗｎ信号３０２を出力して動作電圧（ここでは一例として電源電圧Ｖｄｄ）を制御する。可変電圧源３は、Ｕｐ信号３０１、又はＤｏｗｎ信号３０２に応じて動作電圧（電源電圧Ｖｄｄ）の大きさを変動する。回路部１、２は、可変電圧源３から供給される動作電圧に応じて動作する。
【００２９】
制御部１２は、動作電圧が所定の遅延特性を示す値に達するとＥｎａｂｌｅ信号４００を回路部２に対して出力する。回路部２はＥｎａｂｌｅ４００に応じて動作を開始する。例えば、回路部２は、ハイレベル“１”のＥｎａｂｌｅ信号４００に応じて動作し、ローレベル“０”のＥｎａｂｌｅ信号４００に応じて動作を停止する。
【００３０】
又、回路部２の停止する間、Ｅｎａｂｌｅ信号４００に応じたパワーゲーティングやクロックゲーティング、あるいは、その両方の制御が行われることが好ましい。例えば、回路部２への電源供給を制御する電源スイッチを用意し、Ｅｎａｂｌｅ信号４００に応じて停止中の回路部２への電源供給を遮断（必要データは保持）することでリーク電流がなくなるため、消費電力の低減を図れる。この場合、Ｅｎａｂｌｅ信号４００に応じてパワーゲーティングを解除し、電源が安定したところ（一定時間経過後、又は電源モニタによる指示）でクロックゲーティングを解除する。必要に応じて、プログラムカウンタなどのリセット動作を合わせて行うことで初期化してもよい。
【００３１】
図３及び図４は、本発明による電圧制御動作の一例を示す図である。ここでは、初期電圧（制御開始電圧）をＶ０、回路部２において所望の処理性能と正常動作が可能な電圧範囲をＶａ１〜Ｖａ２（Ｖａ１＞Ｖａ２）として説明する。動作電圧の電圧範囲がＶａ１〜Ｖａ２の場合、回路部２のプロセスばらつきは、第２コーナー条件に適合する大きさ（電圧Ｖａ）となり、安定的に動作する。すなわち、動作電圧を電圧範囲がＶａ１〜Ｖａ２内の電圧Ｖａに制御することで、回路部２のプロセスばらつきは補償される。
【００３２】
図３を参照して、動作電圧が稼動条件の上限値（Ｖａ１）より大きい場合、制御部１２は、Ｄｏｗｎ信号３０２を出力して動作電圧を降下させる。電圧降下の結果、動作電圧が、稼動条件Ｖａ１〜Ｖａ２の範囲内の値となると、制御部１２は、回路部２を起動させるため、Ｅｎａｂｌｅ信号４００をハイレベル“１”とする（時刻ｔａ）。又、制御部１２は、時刻ｔａ以降、動作電圧の大きさを電圧Ｖａ維持するように可変電圧源３を制御する。これにより、回路部２のプロセスばらつきは補償される。又、図３に示す一例では、動作電圧（電源電圧Ｖｄｄ）が初期電圧Ｖ０よりも低い値に変更されているため、半導体集積回路の消費電力は低減される。
【００３３】
図４を参照して、動作電圧が稼動条件の下限値（Ｖａ２）より小さい場合、制御部１２は、Ｕｐ信号３０１を出力して動作電圧を上昇させる。電圧上昇の結果、動作電圧が、稼動条件Ｖａ１〜Ｖａ２の範囲内の値（電圧Ｖａ）となると、制御部１２は、回路部２を起動させるため、Ｅｎａｂｌｅ信号４００をハイレベル“１”とする（時刻ｔａ）。又、制御部１２は、時刻ｔａ以降、動作電圧の大きさを電圧Ｖａに維持するように可変電圧源３を制御する。これにより、回路部２のプロセスばらつきは補償される。
【００３４】
回路部２が稼動中に動作電圧（電源電圧Ｖｄｄ）が変動し、稼動条件Ｖａ１〜Ｖａ２の範囲外となった場合、上述と同様に、Ｕｐ信号３０１又はＤｏｗｎ信号３０２によって、動作電圧が修正され回路部２が動作可能な電圧範囲Ｖａ１〜Ｖａ２内の電圧Ｖａに修正される。この間、制御部１２は、ローレベル“０”のＥｎａｂｌｅ信号４００を出力し、回路部２の動作を停止させることが好ましい。
【００３５】
次に、図５から図９を参照して、第１の実施の形態におけるモニタ部１１及び制御部１２の具体的な構成及び動作の一例を説明する。
【００３６】
図５は、本発明によるモニタ部１１及び制御部１２の第１の実施の形態における構成を示す図である。図５を参照して、モニタ部１１は、レジスタ１１１、１１７、クリティカルパスレプリカ１１２、及び遅延回路１１３〜１１６を備える。制御部１２は、ＡＮＤ回路１２１〜１２３及びレジスタ１２４を備える。
【００３７】
レジスタ１１１は、入力されるデータ信号ＤＡＴＡをクロック信号ＣＬＫに応じてラッチし、データ信号ＤＡＴＡ１としてクリティカルパスレプリカ１１２及びレジスタ１１７に出力する。クリティカルパスレプリカ１１２を通過したデータ信号ＤＡＴＡ１は、直列に接続された４つの遅延回路１１３〜１１６を介してレジスタ１１７に出力される。
【００３８】
遅延回路１１３〜１１６は、それぞれに入力されたデータ信号を所定の遅延量で遅延し、データ信号Ｄ０〜Ｄ３として出力する。遅延回路１１３〜１１６の遅延量は、所望の第２コーナー条件に適合するように設定される。ここでは、データ信号Ｄ０に対する遅延量は最小、データ信号Ｄ１に対する遅延量は小、データ信号Ｄ２に対する遅延量は大、データ信号Ｄ３に対する遅延量は最大に設定される。すなわち、データ信号Ｄ０〜Ｄ３は順に遅延量が大きくなる。詳細は後述するが、クロックＣＬＫに応じたデータ信号ＤＡＴＡ１のラッチタイミングにおける、データ信号Ｄ０〜Ｄ３の位相差に応じて、動作電圧の制御方法（降圧か昇圧か）や回路部２を動作させるか否か（Ｅｎａｂｌｅ信号４００の論理レベル）が設定される。
【００３９】
データ信号ＤＡＴＡ１に対するデータ信号Ｄ０の遅延量（遅延値最小）及びデータ信号Ｄ３の遅延量（遅延値最大）は、第２コーナー条件を補償する遅延量の最上限値と最下限値とに対応して設定される。又、データ信号ＤＡＴＡ１に対するデータ信号Ｄ１の遅延量（遅延値小）は、動作電圧を昇圧するか否かを決める基準遅延値（以下、下限値と称す）に対応して設定される。更に、データ信号ＤＡＴＡ１に対するデータ信号Ｄ２の遅延量（遅延値大）は、動作電圧を降圧するか否かを決める基準遅延値（以下、上限値と称す）に対応して設定される。
【００４０】
制御部１２は、モニタ部１１からのモニタ出力２００（データ信号Ｄ０〜Ｄ３、及びデータ信号ＤＡＴＡ１）の位相差を比較することで、動作電圧に応じた一定時間の到達遅延量（以下、単に到達遅延時間と称す）を検出する。制御部１２は、到達遅延量が最上限値と最下限値との間の値である場合、Ｅｎａｂｌｅ信号４００の信号レベルをハイレベル“１”に設定して回路部２を動作させる。一方、到達遅延量が最上限値から最下限値の範囲からはずれた値の場合、制御部１２は、Ｅｎａｂｌｅ信号４００の信号レベルをローレベル“０”に設定して回路部２の動作を停止する。又、制御部１２は、到達遅延量が下限値よりも小さい場合は動作電圧を昇圧するためのＵｐ信号３０１を出力し、到達遅延量が上限値よりも大きい場合は動作電圧を降圧するためのＤｏｗｎ信号３０２を出力する。
【００４１】
レジスタ１１７は、クロック信号ＣＬＫに応じてデータ信号Ｄ０〜Ｄ３、及びデータ信号Ｄａｔａ１をラッチして、ＡＮＤ回路１２１〜１２３に出力する。ＡＮＤ回路１２１は、データ信号Ｄ１の反転信号とデータ信号Ｄａｔａ１の論理積をＵｐ信号（Ｕｐ０）として出力する。ＡＮＤ回路１２２は、データ信号Ｄ２とデータ信号Ｄａｔａ１の論理積をＤｏｗｎ信号（Ｄｏｗｎ０）として出力する。ＡＮＤ回路１２３は、データ信号Ｄ３の反転信号とデータ信号Ｄ０とデータ信号Ｄａｔａ１の論理積をＥｎａｂｌｅ信号（ＥＮ０）として出力する。レジスタ１２４は、所定のクロック信号ＣＬＫＤに応じて、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）をラッチし、それぞれ、Ｕｐ信号３０１、Ｄｏｗｎ信号３０２、Ｅｎａｂｌｅ信号４００として出力する。
【００４２】
データ信号ＤＡＴＡ１がラッチされるタイミングにおいて、データ信号Ｄ１が“０”としてラッチされる場合、制御部１２は、到達遅延量が所望の下限値よりも小さいと判定し、動作電圧を昇圧する。データ信号ＤＡＴＡ１がラッチされるタイミングにおいて、データ信号Ｄ２が“１”としてラッチされる場合、制御部１２は、到達遅延量が所望の上限値よりも大きいと判定し、動作電圧を降圧する。データ信号ＤＡＴＡ１がラッチされるタイミングにおいて、データ信号Ｄ０が“１”としてラッチされるとともに、データ信号Ｄ３が“１”としてラッチされない場合、制御部１２は、遅延到達量が所望の最下限値よりも大きく、最上限値よりも小さいと判定し、Ｅｎａｂｌｅ信号４００をハイレベル“１”に設定して回路部２を動作させる。
【００４３】
第１の実施の形態における半導体集積回路では、クリティカルパスレプリカ１１２とクロック信号ＣＬＫとの位相を比較することで遅延到達量が所望の範囲内であるかどうかが判定される。クリティカルパスレプリカ１１２の遅延量は大きいため、誤動作の判断材料となるホールドマージンは大きくなる。このため、Ｄａｔａ１にクリティカルパスレプリカ１１２より十分小さいｈｏｌｄ補償バッファを追加しておけば、誤動作に対するホールド時間による影響は小さい。一方、プロセスばらつきに伴ってセットアップマージンは変動する。よって、図１のように、モニタ部１１を、第１コーナー条件にて設計し回路部１に配置するだけでなく、図１０のように、第２コーナー条件にて設計し回路部２に配置することも可能である。この場合、モニタ部１１は、回路部２の起動を待たずに動作させる必要がある。制御部１２は、クリティカルレプリカ１１２のセットアップ時間（遅延量）を所望の値に制御することで、プロセスばらつきを補償する動作電圧に変更することができる。
【００４４】
制御部１２は、第２コーナー条件に応じたプロセスばらつきを補償する動作電圧に制御した後、回路部２を動作させることで、回路部２における誤動作を防止することができる。詳細には、クロック信号ＣＬＫに応じたラッチタイミングにおいて、データ信号Ｄ１がハイレベル“１”、データ信号Ｄ２がローレベル“０”となる状態を中心に、データ信号Ｄ０がハイレベル”１”、データ信号Ｄ３がローレベル“０”となる状態において第２コーナー条件が定義される。又、遅延回路１１３〜１１６の各遅延量を適切な値（均一とは限らない）に設定することで、第２コーナー条件におけるＳＳ２、ＦＦ２の範囲を均等な位置に設定することができる。又、遅延回路１１４の遅延量を十分大きく取れば、遅延回路１１３の遅延量を小さくすることが可能であり、場合によっては削除することも可能となる。
【００４５】
又、制御部１２は、メタステーブル防止のため、第１コーナー条件を想定してモニタ出力２００を取り込むための制御側のクロック信号ＣＬＫＤの位相に十分なマージンで設計されている必要がある。あるいは、レジスタを追加してタイミングを切り直す必要がある。特に、モニタ部１１を、図１０のように、第２コーナー条件にて設計し回路部２に配置する場合、注意を要する。
【００４６】
以下、図６から図９を参照して、本発明による電圧制御動作の詳細を説明する。
【００４７】
図６は、第１の実施の形態における電圧制御動作の一例（降圧動作）を示すタイミングチャートである。図６を参照して、動作電圧が所望の値（回路部２のプロセスばらつきを補償する電圧値）より高い場合の電圧制御動作を説明する。ここでは、時刻Ｔ０（初期状態）において、回路部２が停止状態である間の電圧動作制御動作を説明する。
【００４８】
時刻Ｔ０から時刻Ｔ１までの間、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、及びＥｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。この間、クロック信号ＣＬＫＤの入力がないため、Ｕｐ信号３０１、Ｄｏｗｎ信号３０２、及びＥｎａｂｌｅ信号４００はローレベルを維持する。
【００４９】
時刻Ｔ１において、クロック信号ＣＬＫに応じてハイレベル“１”のデータ信号Ｄａｔａ１がラッチされる。このとき、データ信号Ｄ２がハイレベル“１”であるため、ＡＮＤ回路１２２からのＤｏｗｎ信号Ｄｏｗｎ０はハイレベルとなる。又、データ信号Ｄ１はハイレベル“１”であるため、ＡＮＤ回路１２１からのＵｐ信号Ｕｐ０はローレベルとなる。更に、データ信号Ｄ３はハイレベル“１”であるため、ＡＮＤ回路１２３からのＥｎａｂｌｅ信号ＥＮ０は、ローレベルとなる。
【００５０】
時刻Ｔ２において、クロック信号ＣＬＫＤに応じて、ハイレベル“１”のＤｏｗｎ信号Ｄｏｗｎ０がラッチされ、Ｄｏｗｎ信号３０２はハイレベルとなる。同様に時刻Ｔ２において、ローレベル“０”のＵｐ信号Ｕｐ０及びＥｎａｂｌｅ信号ＥＮ０がラッチされ、Ｕｐ信号３０１及びＥｎａｂｌｅ信号４００は、ローレベルとなる。
【００５１】
続く時刻Ｔ３から時刻Ｔ４の間、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。
【００５２】
時刻Ｔ４において、ハイレベル“１”のデータ信号Ｄａｔａ１がラッチされる。このとき、データ信号Ｄ２がローレベル“０”であるため、ＡＮＤ回路１２２からのＤｏｗｎ信号Ｄｏｗｎ０はローレベルとなる。又、データ信号Ｄ１はハイレベル“１”であるため、ＡＮＤ回路１２１からのＵｐ信号Ｕｐ０はローレベルとなる。更に、データ信号Ｄ３はローレベル“０”となるため、ＡＮＤ回路１２３からのＥｎａｂｌｅ信号ＥＮ０は、ハイレベルとなる。
【００５３】
時刻Ｔ５において、クロック信号ＣＬＫＤに応じてハイレベル“１”のＥｎａｂｌｅ信号ＥＮ０がラッチされ、Ｅｎａｂｌｅ信号４００はハイレベルとなる。同様に時刻Ｔ５において、ローレベル“０”のＵｐ信号Ｕｐ０及びＤｏｗｎ信号Ｄｏｗｎ０がラッチされ、Ｕｐ信号３０１及びＤｏｗｎ信号３０２は、ローレベルとなる。
【００５４】
続く時刻Ｔ６以降、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。この間、クロック信号ＣＬＫＤの入力がないため、Ｕｐ信号３０１、Ｄｏｗｎ信号３０２はローレベルを維持し、Ｅｎａｂｌｅ信号４００はハイレベルを維持する。
【００５５】
以上のように、図６に示す一例では、時刻Ｔ１においてモニタ出力２００の到達遅延量が上限値より大きいと判定され、クロック信号ＣＬＫＤに応じたタイミング（時刻Ｔ２）で動作電圧を降圧するためのＤｏｗｎ信号３０２が出力される。これにより可変電圧源３は動作電圧を降圧する。又、時刻Ｔ１において、データ信号Ｄ３がハイレベルであるため、モニタ出力２００の到達遅延量は最上限値よりも大きいと判定され、ローレベルのＥｎａｂｌｅ信号４００が出力される。これにより、回路部２は動作の停止状態を維持する。
【００５６】
Ｄｏｗｎ信号３０２に応じて動作電圧が降圧されることで、モニタ出力２００の到達遅延量は小さくなる。時刻Ｔ４において到達遅延量が上限値より小さくなることが判定されると、Ｄｏｗｎ信号３０２はローレベルとなり、制御部１２は動作電圧の降圧動作を停止する。このとき、遅延量はデータＤ０がハイレベル、データＤ３がローレベルであるため、最下限値より大きく最上限値より小さいと判定され、ハイレベルのＥｎａｂｌｅ信号４００が出力される。これにより、時刻Ｔ５から回路部２は動作を開始する。
【００５７】
図７は、第１の実施の形態における電圧制御動作の一例（昇圧動作）を示すタイミングチャートである。図７を参照して、動作電圧が所望の値（回路部２のプロセスばらつきを補償する電圧値）より低い場合の電圧制御動作を説明する。ここでは、時刻Ｔ０（初期状態）において、回路部２が停止状態である間の電圧動作制御動作を説明する。
【００５８】
時刻Ｔ０から時刻Ｔ１までの間、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、及びＥｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。この間、クロック信号ＣＬＫＤの入力がないため、Ｕｐ信号３０１、Ｄｏｗｎ信号３０２、及びＥｎａｂｌｅ信号４００はローレベルを維持する。
【００５９】
時刻Ｔ１において、クロック信号ＣＬＫに応じてハイレベル“１”のデータ信号Ｄａｔａ１がラッチされる。このとき、データ信号Ｄ１がローレベル“０”であるため、ＡＮＤ回路１２１からのＵｐ信号Ｕｐ０はハイレベルとなる。又、データ信号Ｄ２はローレベル“０”であるため、ＡＮＤ回路１２２からのＤｏｗｎ信号Ｄｏｗｎ０はローレベルとなる。更に、データ信号Ｄ０はローレベル“０”であるため、ＡＮＤ回路１２３からのＥｎａｂｌｅ信号ＥＮ０は、ローレベルとなる。
【００６０】
時刻Ｔ２において、クロック信号ＣＬＫＤに応じて、ハイレベル“１”のＵｐ信号Ｕｐ０がラッチされ、Ｕｐ信号３０１はハイレベルとなる。同様に時刻Ｔ２において、ローレベル“０”のＤｏｗｎ信号Ｄｏｗｎ０及びＥｎａｂｌｅ信号ＥＮ０がラッチされ、Ｄｏｗｎ信号３０２及びＥｎａｂｌｅ信号４００は、ローレベルとなる。
【００６１】
続く時刻Ｔ３から時刻Ｔ４の間、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。
【００６２】
時刻Ｔ４において、ハイレベル“１”のデータ信号Ｄａｔａ１がラッチされる。このとき、データ信号Ｄ２がローレベル“０”であるため、ＡＮＤ回路１２２からのＤｏｗｎ信号Ｄｏｗｎ０はローレベルとなる。又、データ信号Ｄ１はハイレベル“１”であるため、ＡＮＤ回路１２１からのＵｐ信号Ｕｐ０はローレベルとなる。更に、データ信号Ｄ３はローレベル“０”となるため、ＡＮＤ回路１２３からのＥｎａｂｌｅ信号ＥＮ０は、ハイレベルとなる。
【００６３】
時刻Ｔ５において、クロック信号ＣＬＫＤに応じてハイレベル“１”のＥｎａｂｌｅ信号ＥＮ０がラッチされ、Ｅｎａｂｌｅ信号４００はハイレベルとなる。同様に時刻Ｔ５において、ローレベル“０”のＵｐ信号Ｕｐ０及びＤｏｗｎ信号Ｄｏｗｎ０がラッチされ、Ｕｐ信号３０１及びＤｏｗｎ信号３０２は、ローレベルとなる。
【００６４】
続く時刻Ｔ６以降、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。この間、クロック信号ＣＬＫＤの入力がないため、Ｕｐ信号３０１、Ｄｏｗｎ信号３０２はローレベルを維持し、Ｅｎａｂｌｅ信号４００はハイレベルを維持する。
【００６５】
以上のように、図７に示す一例では、時刻Ｔ１においてモニタ出力２００の到達遅延量が下限値より小さいと判定され、クロック信号ＣＬＫＤに応じたタイミング（時刻Ｔ２）で動作電圧を昇圧するためのＵｐ信号３０１が出力される。これにより可変電圧源３は動作電圧を昇圧する。又、時刻Ｔ１においてデータ信号Ｄ０はローレベルであるため、モニタ出力２００の到達遅延量は最下限値よりも小さいと判定され、ローレベルのＥｎａｂｌｅ信号４００が出力される。これにより、回路部２は動作の停止状態を維持する。
【００６６】
Ｕｐ信号３０１に応じて動作電圧が昇圧されることで、モニタ出力２００の到達遅延量は大きくなる。時刻Ｔ４において到達遅延量が下限値より大きくなることが判定されると、Ｕｐ信号３０１はローレベルとなり、制御部１２は動作電圧の昇圧動作を停止する。このとき、遅延量はデータＤ０がハイレベル、データＤ３がローレベルであるため、最下限値より大きく最上限値より小さいと判定され、ハイレベルのＥｎａｂｌｅ信号４００が出力される。これにより、時刻Ｔ５から回路部２は動作を開始する。
【００６７】
図６及び図７が示すように、本発明では、回路部１の動作によって動作電圧を回路部２のプロセスばらつきを補償する大きさに設定した後、回路部２を動作させている。これにより、半導体集積回路は、プロセスばらつきによる誤動作を防止しつつ、滞りなく起動することが可能となる。すなわち、本発明によれば、第１コーナー条件で設計された回路部１により電圧を制御してプロセスばらつきを補償し、第２コーナー条件で設計された回路部２を起動することで、従来技術で提示されていなかった回路部２の起動をどう実現するかの問題が解消される。
【００６８】
図８は、第１の実施の形態における電圧制御動作の一例（降圧動作）を示すタイミングチャートである。制御部１２は、半導体集積回路の起動時のみならず、動作の途中でも動作電圧を所望の値に制御することが好ましい。例えば、回路部２の動作中において周辺環境の変化によって遅延時間が変動し、現在の動作電圧が、回路部２に対して適切な値でなくなることがある。このような場合、制御部１２は、回路部２を停止させて、動作電圧を変更する。図８を参照して、回路部２が動作中において、到達遅延量が増加し、現在の動作電圧が所望の値（回路部２のプロセスばらつきを補償する電圧値）より高い値にみなされた場合の電圧制御動作を説明する。
【００６９】
時刻Ｔ０から時刻Ｔ１までの間、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、及びＥｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。この間、クロック信号ＣＬＫＤの入力がないため、Ｕｐ信号３０１、Ｄｏｗｎ信号３０２はローレベルを維持し、Ｅｎａｂｌｅ信号４００はハイレベルを維持する。
【００７０】
時刻Ｔ１において、クロック信号ＣＬＫに応じてハイレベル“１”のデータ信号Ｄａｔａ１がラッチされる。このとき、データ信号Ｄ１はハイレベル“１”であるため、ＡＮＤ回路１２１からのＵｐ信号Ｕｐ０はローレベルとなる。又、データ信号Ｄ２はローレベル“０”であるため、ＡＮＤ回路１２２からのＤｏｗｎ信号Ｄｏｗｎ０はローレベルとなる。更に、データ信号Ｄ０はハイレベル“１”、データ信号Ｄ３はローレベル“０”であるため、ＡＮＤ回路１２３からのＥｎａｂｌｅ信号ＥＮ０は、ハイレベルとなる。
【００７１】
時刻Ｔ２において、クロック信号ＣＬＫＤに応じて、ハイレベル“１”のＥｎａｂｌｅ信号ＥＮ０がラッチされ、Ｅｎａｂｌｅ信号４００はハイレベルを維持する。同様に時刻Ｔ２において、ローレベル“０”のＵｐ信号Ｕｐ０及びＤｏｗｎ信号Ｄｏｗｎ０がラッチされ、Ｕｐ信号３０１及びＤｏｗｎ信号３０２は、ローレベルを維持する。
【００７２】
続く時刻Ｔ３から時刻Ｔ４の間、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。
【００７３】
一方、時刻Ｔ３から時刻Ｔ４の間に周辺環境が変動することにより、モニタ出力２００の到達遅延量が変動する。ここでは、一例としてモニタ出力の到達遅延量が増加する。
【００７４】
時刻Ｔ４において、クロック信号ＣＬＫに応じてハイレベル“１”のデータ信号Ｄａｔａ１がラッチされる。このとき、到達遅延量の増加により、データ信号Ｄ２がハイレベル“１”であるため、ＡＮＤ回路１２２からのＤｏｗｎ信号Ｄｏｗｎ０はハイレベルとなる。又、データ信号Ｄ１はハイレベル“１”であるため、ＡＮＤ回路１２１からのＵｐ信号Ｕｐ０はローレベルとなる。更に、データ信号Ｄ３はハイレベル“１”であるため、ＡＮＤ回路１２３からのＥｎａｂｌｅ信号ＥＮ０は、ローレベルとなる。
【００７５】
時刻Ｔ５において、クロック信号ＣＬＫＤに応じて、ハイレベル“１”のＤｏｗｎ信号Ｄｏｗｎ０がラッチされ、Ｄｏｗｎ信号３０２はハイレベルとなる。同様に時刻Ｔ２において、ローレベル“０”のＵｐ信号Ｕｐ０及びＥｎａｂｌｅ信号ＥＮ０がラッチされ、Ｕｐ信号３０１及びＥｎａｂｌｅ信号４００は、ローレベルとなる。
【００７６】
続く時刻Ｔ６以降、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。この間、クロック信号ＣＬＫＤの入力がないため、Ｕｐ信号３０１、Ｅｎａｂｌｅ信号４００はローレベルを維持し、Ｄｏｗｎ信号３０２はハイレベルを維持する。
【００７７】
以上のように、図８に示す一例では、回路部２が動作中の時刻Ｔ４において、モニタ出力２００の到達遅延量が上限値より大きいと判定され、クロック信号ＣＬＫＤに応じたタイミング（時刻Ｔ５）で動作電圧を降圧するためのＤｏｗｎ信号３０２が出力される。これにより可変電圧源３は動作電圧を降圧する。又、時刻Ｔ４において、データ信号Ｄ３がハイレベルであるためモニタ出力２００の到達遅延量は最上限値よりも大きいと判定され、ローレベルのＥｎａｂｌｅ信号４００が出力される。これにより、回路部２は動作を停止する。
【００７８】
本一例では、動作中にモニタ出力２００の到達遅延量の変化を検出し、回路部２の動作を停止して動作電圧を変更している。しかし、到達遅延量が、回路部２が動作可能な許容範囲内である場合、回路部２を停止させずに動作電圧の制御が行われてもよい。
【００７９】
図９は、第１の実施の形態における電圧制御動作の一例（降圧動作）を示すタイミングチャートである図９を参照して、回路部２が動作可能な許容範囲内において、到達遅延量が増加し、現在の動作電圧が所望の値（回路部２のプロセスばらつきを補償する電圧値）より高い値にみなされた場合の電圧制御動作を説明する。
【００８０】
時刻Ｔ０から時刻Ｔ１までの間、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、及びＥｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。この間、クロック信号ＣＬＫＤの入力がないため、Ｕｐ信号３０１、Ｄｏｗｎ信号３０２はローレベルを維持し、Ｅｎａｂｌｅ信号４００はハイレベルを維持する。
【００８１】
時刻Ｔ１において、クロック信号ＣＬＫに応じてハイレベル“１”のデータ信号Ｄａｔａ１がラッチされる。このとき、データ信号Ｄ１はハイレベル“１”であるため、ＡＮＤ回路１２１からのＵｐ信号Ｕｐ０はローレベルとなる。又、データ信号Ｄ２はローレベル“０”であるため、ＡＮＤ回路１２２からのＤｏｗｎ信号Ｄｏｗｎ０はローレベルとなる。更に、データ信号Ｄ０はハイレベル“１”、データ信号Ｄ３はローレベル“０”であるため、ＡＮＤ回路１２３からのＥｎａｂｌｅ信号ＥＮ０は、ハイレベルとなる。
【００８２】
時刻Ｔ２において、クロック信号ＣＬＫＤに応じて、ハイレベル“１”のＥｎａｂｌｅ信号ＥＮ０がラッチされ、Ｅｎａｂｌｅ信号４００はハイレベルを維持する。同様に時刻Ｔ２において、ローレベル“０”のＵｐ信号Ｕｐ０及びＤｏｗｎ信号Ｄｏｗｎ０がラッチされ、Ｕｐ信号３０１及びＤｏｗｎ信号３０２は、ローレベルを維持する。
【００８３】
続く時刻Ｔ３から時刻Ｔ４の間、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。
【００８４】
一方、時刻Ｔ３から時刻Ｔ４の間に周辺環境が変動することにより、モニタ出力２００の到達遅延量が変動する。ここでは、一例としてモニタ出力の到達遅延量が増加する。
【００８５】
時刻Ｔ４において、クロック信号ＣＬＫに応じてハイレベル“１”のデータ信号Ｄａｔａ１がラッチされる。このとき、到達遅延量の増加により、データ信号Ｄ２がハイレベル“１”であるため、ＡＮＤ回路１２２からのＤｏｗｎ信号Ｄｏｗｎ０はハイレベルとなる。又、データ信号Ｄ１はハイレベル“１”であるため、ＡＮＤ回路１２１からのＵｐ信号Ｕｐ０はローレベルとなる。更に、データ信号Ｄ０はハイレベル“１”、データ信号Ｄ３はローレベル“０”であるため、ＡＮＤ回路１２３からのＥｎａｂｌｅ信号ＥＮ０は、ハイレベルとなる。
【００８６】
時刻Ｔ５において、クロック信号ＣＬＫＤに応じて、ハイレベル“１”のＤｏｗｎ信号Ｄｏｗｎ０がラッチされ、Ｄｏｗｎ信号３０２はハイレベルとなる。同様に時刻Ｔ２において、ハイレベル“１”のＥｎａｂｌｅ信号ＥＮ０がラッチされ、Ｅｎａｂｌｅ信号４００はハイレベルとなる。又、ローレベル“０”のＵｐ信号Ｕｐ０がラッチされ、Ｕｐ信号３０１はローレベルとなる。
【００８７】
続く時刻Ｔ６以降、クロック信号ＣＬＫに応じデータ信号Ｄａｔａ１はローレベル“０”がラッチされるため、Ｕｐ信号（Ｕｐ０）、Ｄｏｗｎ信号（Ｄｏｗｎ０）、Ｅｎａｂｌｅ信号（ＥＮ０）はローレベルとなる。この間、クロック信号ＣＬＫＤの入力がないため、Ｕｐ信号３０１はローレベルを維持し、Ｄｏｗｎ信号３０２及びＥｎａｂｌｅ信号４００はハイレベルを維持する。
【００８８】
以上のように、図９に示す一例では、回路部２が動作中の時刻Ｔ４において、モニタ出力２００の到達遅延量が上限値より大きいと判定され、クロック信号ＣＬＫＤに応じたタイミング（時刻Ｔ５）で動作電圧を降圧するためのＤｏｗｎ信号３０２が出力される。これにより可変電圧源３は動作電圧を降圧する。又、本一例では、動作電圧が回路部２において所望の処理性能と正常動作が可能な電圧範囲内であるため、回路部２を停止せずに動作電圧を変更している。
【００８９】
図８及び図９では、降圧動作を一例としたが昇圧動作も、回路部２の動作中に同様に行われる。
【００９０】
モニタ部１１は、電圧制御によるばらつき補償対象の回路（ここでは回路部２）の近傍に設けられることが好ましい。これにより、回路部２に対する場所依存のずれが少なく、回路部２に対する高精度なばらつき補償が可能となる。このため、図１に示す一例では、モニタ部１１は、回路部１に設けられているが、図１０に示すように回路部２に設けられていても良い。モニタ部１１が回路部２に設けられても、回路部２の起動に関わらず、回路部１の動作に従い遅延モニタ結果を出力する。また、モニタ部１１は回路部１と回路部２の両方に設けられていても良い。この場合、回路部２の起動後は回路部２に設けられたモニタ部に切り替えることで遅延モニタ精度を改善可能である。回路部２の停止（クロックゲーティング）時は回路部２または回路部１のモニタ部を用い、回路部２のパワーゲーティング時は回路部１のモニタ部を用いる。これにより、安定動作と高精度化を達成可能となる。
【００９１】
２．第２の実施の形態
図１及び図１１から図１４を参照して、本発明による半導体集積回路の第２の実施の形態を説明する。第２の実施の形態における半導体集積回路は、図１に示す第１の実施の形態と同様に、第１コーナー条件で設計された回路部１と、第２コーナー条件で設計された回路部２と、可変電圧源３とを具備する。第２の実施の形態における半導体集積回路は、モニタ部１１及び制御部１２のみ異なり、他の構成は、第１の実施の形態と同様であるので詳細な説明は省略する。
【００９２】
第２の実施の形態におけるモニタ部１１は、クロック信号をモニタ出力２００とするリングオシレータを備える。制御部１２は、所定の期間におけるモニタ出力２００の発振回数をカウントし、カウント値と予め設定された値との比較結果に基づいてＵｐ信号３０１、Ｄｏｗｎ信号３０２、及びＥｎａｂｌｅ信号４００の信号レベルを決定する。
【００９３】
図１１は、本発明による制御部１２の第２の実施の形態における構成を示す図である。図１２を参照して、第２の実施の形態における制御部１２は、カウンタ１３１、レジスタ１３２、最下限値レジスタ１３３、下限値レジスタ１３４、上限値レジスタ１３５、最上限値レジスタ１３６、比較器１３７〜１４０、及びＡＮＤ回路１４１を備える。
【００９４】
カウンタ１３１は、リセット信号（Ｒｅｓｅｔ）によって設定される期間において、モニタ出力２００の発振回数をカウントする。レジスタ１３２は、カウンタ出力３１０を格納し、クロック信号ＣＬＫＤに応じたタイミングで、格納されたカウント値３２０（Ａ）を比較器１３７〜１４０に出力する。
【００９５】
最下限値レジスタ１３３には、第２コーナー条件を補償する遅延量の最上限値に対応する発振回数の最下限値Ｂが設定される。下限値レジスタ１３４には、動作電圧を昇圧するか否かを決める基準遅延値に対応する発振回数（以下、下限値Ｃと称す）が設定される。上限値レジスタ１３５には、動作電圧を降圧するか否かを決める基準遅延値に対応する発振回数（以下、上限値Ｄと称す）が設定される。最上限値レジスタ１３６には、第２コーナー条件を補償する遅延量の最下限値に対応する発振回数の最上限値Ｅが設定される。
【００９６】
比較器１３７は、カウント値３２０（Ａ）と最下限値Ｂとを比較し、カウント値３２０が最下限値Ｂより大きい場合（Ａ＞Ｂ）、ハイレベル“１”の信号をＡＮＤ回路１４１に出力する。比較器１３８は、カウント値３２０（Ａ）と下限値Ｃとの比較結果に応じた論理レベルのＵｐ信号３０１を出力する。比較器１３８は、カウント値３２０が下限値Ｃより小さい場合（Ａ＜Ｃ）、ハイレベル“１”のＵｐ信号３０１を出力する。比較器１３９は、カウント値３２０（Ａ）と上限値Ｄとの比較結果に応じた論理レベルのＤｏｗｎ信号３０２を出力する。比較器１３９は、カウント値３２０が上限値Ｃより大きい場合（Ａ＞Ｄ）、ハイレベル“１”のＤｏｗｎ信号３０２を出力する。比較器１４０は、カウント値３２０（Ａ）と最上限値Ｅとを比較し、カウント値３２０が最上限値Ｅより小さい場合（Ａ＜Ｅ）、ハイレベル“１”の信号をＡＮＤ回路１４１に出力する。
【００９７】
ＡＮＤ回路１４１は、比較器１３７、１４０からの出力信号の論理積をＥｎａｂｌｅ信号４００として出力する。すなわち、ＡＮＤ回路１４１は、は、カウント値３２０（Ａ）が、最下限値Ｂより大きく、最上限値Ｅより小さい場合、ハイレベル“１”のＥｎａｂｌｅ信号４００を出力する。
【００９８】
図１２及び図１３は、第２の実施の形態におけるモニタ部１１の構成の一例を示す図である。本実施の形態におけるモニタ部１１は、図１２（ａ）に示すように、複数（奇数個）のインバータが直列に帰還接続されたリングオシレータであることが好ましい。図１２（ａ）に示すモニタ部１１は、自発発振し、図１２（ｂ）モニタ出力２００として所定の範囲の周期のクロック信号を出力する。モニタ出力２００のクロック周期は、モニタ部１１のプロセスばらつきに応じて遅延する。
【００９９】
モニタ部１１は、図１３（ａ）に示すように、ＮＡＮＤ回路を介して発振動作が制御されるリングオシレータでも構わない。この場合、図１３（ｂ）に示すように、モニタ出力２００の発振は、ＮＡＮＤ回路に入力される制御信号２０１に応じて制御される。図１３（ａ）、（ｂ）に示す一例では、ハイレベル“１”の制御信号２０１に応じてモニタ部１１は発振する。ここで、リングオシレータを構成するインバータ回路もＮＡＮＤ回路で構成しても構わない。尚、モニタ部１１は、ＮＡＮＤ回路に替えてＮＯＲ回路を備え、ＮＯＲ回路によって発振動作が制御されてもよい。この場合、ＮＯＲ回路に入力される制御信号がローレベル“０”のときモニタ部１１は発振する。ここで、リングオシレータを構成するインバータ回路もＮＯＲ回路で構成しても構わない。
【０１００】
図１４は、第２の実施の形態における電圧制御動作の一例を示すタイミングチャートである。図１４を参照して、制御部１２は、モニタ出力２００の発振回数をカウントし、クロック信号ＣＬＫＤに応じたタイミングでカウント値３２０を抽出し、Ｕｐ／Ｄｏｗｎ信号３００及びＥｎａｂｌｅ信号４００の論理レベルを決定する。
【０１０１】
制御部１２は、クロック信号ＣＬＫＤに応じたタイミングで、モニタ出力２００の発振回数をカウント値３２０（Ａ）として抽出し、予め設定された基準値（最下限値Ｂ、下限値Ｃ、上限値Ｄ、最上限値Ｅ）と比較することで、モニタ出力２００の遅延量に応じた電圧制御及び回路部２の起動制御を行う。
【０１０２】
本実施の形態では、カウント値３２０（Ａ）が最下限値Ｂより大きく、最上限値Ｅより小さい場合（Ｂ＜Ａ＜Ｅ）、ハイレベル“１”のＥｎａｂｌｅ信号４００が出力される。これにより、回路部２は、プロセスばらつきを補償する動作電圧で動作することができる。一方、カウント値３２０（Ａ）が最下限値Ｂ以下、又は最上限値Ｅ以上である場合（Ａ≦Ｂ、Ａ≧Ｅ）、ローレベル“０”のＥｎａｂｌｅ信号４００が出力される。これにより、誤動作する可能性がある動作電圧が供給されている間、回路部２の動作を停止することができる。
【０１０３】
又、カウント値３２０（Ａ）が下限値Ｂより小さい場合（Ａ＜Ｃ）、ハイレベル“１”のＵｐ信号３０１が出力される。これにより、可変電圧源３は、動作電圧を昇圧する。一方、カウント値３２０（Ａ）が下限値Ｂ以上である場合（Ａ≧Ｂ）、ローレベル“０”のＵｐ信号３０１が出力される。この間、昇圧動作は実行されない。
【０１０４】
カウント値３２０（Ａ）が上限値Ｄより大きい場合（Ａ＞Ｄ）、ハイレベル“１”のＤｏｗｎ信号３０２が出力される。これにより、可変電圧源３は、動作電圧を降圧する。一方、カウント値３２０（Ａ）が上限値Ｄ以下である場合（Ａ≦Ｄ）、ローレベル“０”のＤｏｗｎ信号３０２が出力される。この間、降圧動作は実行されない。
【０１０５】
以上のように、本実施の形態では、リングオシレータの発振回数をモニタ出力として検出し、検出された発振回数と基準値との比較結果に応じて動作電圧を制御している。発振回数は、モニタ部１１のプロセスばらつきに応じて決まる。このため、モニタ部１１は、電圧制御によるばらつき補償対象の回路（ここでは回路部２）の近傍に設けられることが好ましい。これにより、回路部２に対する場所依存のずれが少なく、回路部２に対する高精度なばらつき補償が可能となる。このため、図１に示す一例では、モニタ部１１は、回路部１に設けられているが、図１０に示すように回路部２に設けられていても良い。この時、回路部２の起動／停止に関わらずモニタ部１１は動作させる必要がある。また、モニタ部１１を回路部１と回路部２の両方に設けて、回路部２の起動／停止（またはパワーゲーティング）にあわせて、回路部１のモニタ部と回路部２のモニタ部を切り替えても良い。
【０１０６】
３．第３の実施の形態
第１及び第２の実施の形態で説明したように、半導体集積回路が動作中においても回路部２が停止するように制御される。この間、図示しないＣＰＵや他の制御部からから回路部２に対して制御信号が入力した場合、反応がなくエラーとなる恐れがある。このため、図１５に示すように、第１及び第２の実施の形態における半導体集積回路に加えて、回路部２の停止間に動作するエミュレータ４及びセレクタを更に具備することが好ましい。
【０１０７】
図１５を参照して、回路部２とエミュレータ４には図示しないＣＰＵや他の制御部から制御信号５００が入力される。回路部２は、動作することで制御信号５００に応じた信号６００をセレクタ５に出力する。エミュレータ４は、例えば第１コーナー条件で設計された規模の小さい低速プロセッサ等によって実現され、制御信号５００に応じた信号７００をセレクタ５に出力する。セレクタ５は、回路部１（制御部１２）からのＥｎａｂｌｅ信号４００に応じて、信号６００と信号７００の一方を出力信号８００として、回路部２の後段（図示しない後段回路やＣＰＵ）に出力する。
【０１０８】
Ｅｎａｂｌｅ信号４００がハイレベル“１”のとき、すなわち回路部２が動作しているとき、セレクタ５は回路部２からの信号６００を選択して出力信号８００として出力する。又、Ｅｎａｂｌｅ信号４００がローレベル“０”のとき、すなわち回路部２が停止しているとき、セレクタ５はエミュレータ４からの信号７００を選択して出力信号８００として出力する。
【０１０９】
以上のように、回路部２の停止間、回路部２の代わりにエミュレータ４を利用することで、図示しないＣＰＵからの制御信号５００に対する回路部２の無反応状態を解消することができる。
【０１１０】
ここで、エミュレータ４は、回路部２が動作している間も動作していても良いが、回路部２の動作の開始に応じて停止してもよい。例えば、エミュレータ４は、Ｅｎａｂｌｅ信号４００に応じたクロックゲーティングやパワーゲーティングによって、その動作が制御されることが好ましい。これにより、回路部２の動作間（Ｅｎａｂｌｅ信号４００がハイレベル“１”の期間）においてエミュレータを停止することができ、回路の消費電力を低減することができる。
【０１１１】
本発明では、広いコーナー条件で設計された回路ブロックから先に駆動するため、初期電圧による誤動作が生じ難くなる。又、動作電圧を適切な電圧に制御している間、狭いコーナー条件で設計された回路ブロックの動作を停止させているため、半導体集積回路全体における誤動作を防止することが可能となる。本発明によれば、所望の速度性能で正常動作可能な電圧範囲の広い回路部１を先に動作させ、これによって、動作電圧を第２コーナー条件に適合した値に設定し、回路部２を動作させている。このため、半導体集積回路は、起動時から滞りなく動作を開始できるとともに、回路部２のプロセスばらつきは、制御された動作電圧によって補償される。
【０１１２】
本発明によれば、動作電圧を制御してプロセスばらつきを補償するのを前提に通常よりも狭いプロセスコーナーで設計した部分を含み、実際に動作電圧を制御してプロセスばらつきを補償する、半導体集積回路の起動制御を実現できる。
【０１１３】
更に、半導体集積回路の動作中に、処理の誤動作を防止しつつ、プロセスばらつきを補償する動作電圧を設定することができる。
【０１１４】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。上述の実施の形態では、動作電圧として電源電圧Ｖｄｄを制御する方法を示したが、これに限らず基板電圧Ｖｓｂや閾値電圧Ｖｔｈを制御対象としても構わない。例えば、図２に示す第１コーナー条件で設計された回路部１によって基板電圧ＶＳＢ、又は、電源電圧Ｖｄｄと基板電圧ＶＳＢの両者を制御することで閾値電圧Ｖｔｈを制御し、図２に示す第２コーナー条件に対応するプロセスばらつきを補償することができる。
【０１１５】
基板電圧ＶＳＢとしてｐＭＯＳはｎウェル電位Ｖｎｗ、ｎＭＯＳはｐウェル電位Ｖｐｗを制御する必要がある。モニタ部１１として、ＮＡＮＤリングオシレータとＮＯＲリングオシレータを両方追加して、発振周波数（カウンタ値）を比較し、ＮＡＮＤ側が一定値よりも大きい場合はｐウェル電位Ｖｐｗを下げる（逆バイアス方向）、またはｎウェル電位Ｖｎｗを下げる（順バイアス方向）。一方、ＮＯＲ側が一定値よりも大きい場合はｎウェル電位Ｖｎｗを上げる（逆バイアス方向）、またはｐウェル電位Ｖｐｗを上げる（順バイアス方向）。これにより、ＭＯＳとｎＭＯＳのアンバランスを低減することができる。
【０１１６】
基板電圧ＶＳＢ（ｎウェル電位Ｖｎｗとｐウェル電位Ｖｐｗ）のみを制御する場合は、モニタ部１１の遅延量又はＮＡＮＤとＮＯＲのリングオシレータのカウンタ値の差を解消するように、ｎウェル電位Ｖｎｗ及びｐウェル電位Ｖｐｗを変更する。詳細には、到達遅延量またはカウンタ値が大きい場合は、基板電圧ＶＳＢを逆バイアス側に、すなわち、ｎウェル電位Ｖｎｗを上げ、ｐウェル電位Ｖｐｗを下げ、を交互に実施する。ここで、ＮＡＮＤとＮＯＲのリングオシレータのカウンタ値のズレが一定以上になった場合は、ズレを解消するよう、交互でなく一方のみを変化するよう制御すれば、遅延量とｐ／ｎバランスをともに調整可能である。
【０１１７】
又、電源電圧Ｖｄｄと基板電圧ＶＳＢ（ｎウェル電位Ｖｎｗとｐウェル電位Ｖｐｗ）をともに制御する場合は、電源電圧Ｖｄｄを設定した後、モニタ部１１の遅延量又はＮＡＮＤとＮＯＲのリングオシレータのカウンタ値の差を解消するように、ｎウェル電位Ｖｎｗ及びｐウェル電位Ｖｐｗを変更する。例えば、到達遅延量またはカウンタ値が大きい場合は、まず電源電圧Ｖｄｄを下げ、ＮＡＮＤとＮＯＲのリングオシレータのカウンタ値のズレが一定以上になった場合は、ズレを解消するよう、基板電圧ＶＳＢの一方、すなわち、ｎウェル電位Ｖｎｗまたはｐウェル電位Ｖｐｗを変化するよう制御する。これにより、遅延量とｐ／ｎバランスをともに調整可能である。電源電圧Ｖｄｄと基板電圧ＶＳＢを制御することで、しきい値電圧Ｖｔｈは最適化され、ある遅延量における電力最適化も図ることが可能となる。
【０１１８】
又、電源電圧Ｖｄｄのみを制御することで、狭いプロセス条件で設計された回路のプロセスばらつきを補償することができる。図１６に示す第１コーナー条件のプロセスコーナーＦＦ１、ＳＳ１は、第２コーナー条件のプロセスコーナーＦＦ２、ＳＳ２より広く、両条件のプロセスコーナーＳＦ１、ＦＳ１は共通している。この場合、第１コーナー条件で設計された回路部１によって電源電圧Ｖｄｄのみを制御することで、図１６に示す第２コーナー条件に対応するプロセスばらつきを補償することができる。
【符号の説明】
【０１１９】
１：回路部
２：回路部
３：可変電圧源
４：エミュレータ
５：セレクタ
１１：モニタ部
１２：制御部
３０１：Ｕｐ信号
３０２：Ｄｏｗｎ信号
４００：Ｅｎａｂｌｅ信号
【図１】
0005529555.tif 000002
【図２】
0005529555.tif 000003
【図３】
0005529555.tif 000004
【図４】
0005529555.tif 000005
【図５】
0005529555.tif 000006
【図６】
0005529555.tif 000007
【図７】
0005529555.tif 000008
【図８】
0005529555.tif 000009
【図９】
0005529555.tif 000010
【図１０】
0005529555.tif 000011
【図１１】
0005529555.tif 000012
【図１２】
0005529555.tif 000013
【図１３】
0005529555.tif 000014
【図１４】
0005529555.tif 000015
【図１５】
0005529555.tif 000016
【図１６】
0005529555.tif 000017