(57)【要約】【課題】クリティカルパスでの電源電圧に対する速度の変化の測定を可能とする。【解決手段】第１論理回路（ＬＯＧＩＣ１）と第２論理回路（ＬＯＧＩＣ２）との間に、速度性能測定を可能とする速度性能測定回路（ＳＥＱ１）を設ける。上記速度性能測定回路は、第１データを記憶する第１フリップフロップ（ＦＦ１）と、上記第１データを遅延させて第２データを生成する第１遅延回路（ＤＥＬＡＹ１）と、上記第２データを記憶する第２フリップフロップ（ＦＦ２）とを含む。さらに上記速度性能測定回路は、上記１フリップフロップの出力と上記第２フリップフロップの出力とを比較する第１比較回路（ＥＸＯＲ１）と、上記第１クロック信号のタイミングに従って上記第１比較回路の出力データを記憶する第３フリップフロップ（ＦＦ３）とを含む。通常のパスと一定時間遅延させたパスのデータを比較して速度を測定し、それに基づいて回路の電源電圧を決定する。【選択図】図１
2009147221.tif 000002
【特許請求の範囲】
【請求項１】
第１論理回路と、
上記第１論理回路の後段に配置され、上記第１論理回路から出力される第１データが伝達される第２論理回路と、
上記第１論理回路と上記第２論理回路との間で速度性能測定を可能とする速度性能測定回路と、を含む半導体装置であって、
上記速度性能測定回路は、クロック信号に同期して、上記第１データを記憶する第１フリップフロップと、
上記第１データを遅延させて第２データを生成する第１遅延回路と、
上記クロック信号に同期して、上記第２データを記憶する第２フリップフロップと、
上記１フリップフロップの出力と上記第２フリップフロップの出力とを比較する比較回路と、
上記第１クロック信号のタイミングに従って上記比較回路の出力信号のデータを記憶する第３フリップフロップと、を含んで成ることを特徴とする半導体装置。
【請求項２】
各部に動作用の電源電圧を生成するための電圧生成回路と、
上記比較回路の出力データを用いて上記電源電圧を調整可能な電圧制御回路と、を含む請求項１記載の半導体装置。
【請求項３】
上記電源電圧の制御情報を保持可能な記憶回路を含み、上記電圧制御回路は、上記電源電圧の調整において上記記憶回路内の制御情報を参照する請求項２記載の半導体装置。
【請求項４】
上記第１比較回路の出力論理がハイレベルとなった場合に、それを受けて、出力状態を一定時間ハイレベルに保持するための第４フリップフロップを含む請求項１記載の半導体装置。
【請求項５】
所定の機能を有する回路モジュールのリソースを管理するリソースマネージャを備え、
上記リソースマネージャによる上記回路モジュールのリソース管理に応じて上記電源電圧が調整される請求項２記載の半導体装置。
【請求項６】
上記速度性能測定回路が複数設けられるとき、上記複数の速度性能測定回路の出力信号を一つの信号にまとめるための速度性能測定結果出力部が設けられ、
上記度性能測定結果出力部は、上記複数の速度性能測定回路の出力信号のオア論理をとることで、上記複数の速度性能測定回路の出力信号を一つの信号にまとめるためのオア回路と、上記オア回路の出力信号を上記クロック信号に同期して保持するための第５フリップフロップ回路とを含んで成る請求項１記載の半導体装置。
【請求項７】
上記速度性能測定回路が複数設けられるとき、上記複数の速度性能測定回路の出力信号を一つの信号にまとめるための速度性能測定結果出力部が設けられ、
上記度性能測定結果出力部は、上記クロック信号を遅延させるための第２遅延回路と、
上記複数の速度性能測定回路に対応して配置され、対応する上記速度性能測定回路の出力信号を取り込むための複数の第１トランジスタと、
上記遅延回路の出力信号によって動作制御され、上記複数の第１トランジスタのドレイン電極を高電位側電源に結合するための第２ＭＯＳトランジスタと、
上記第２遅延回路の出力信号によって動作制御され、上記複数の第１トランジスタのソース電極を低電位側電源に結合するための第３ＭＯＳトランジスタと、
上記クロック信号に同期して上記複数の第１トランジスタのドレイン電極の論理を保持可能な第６フリップフロップ回路と、を含んで成る請求項１記載の半導体装置。
【請求項８】
上記比較回路の出力データに基づいて、上記クロック信号の周波数を制御可能な周波数制御回路を含む請求項１記載の半導体装置。
【請求項９】
上記クロック信号を生成するとともに、上記クロック信号の周波数を上記周波数制御回路の出力信号に基づいて変更可能なクロック発生回路を含む請求項８記載の半導体装置。
【請求項１０】
上記比較回路の出力データを用いてトランジスタの基板バイアスを調整する基板バイアス調整回路を含む請求項１記載の半導体装置。
【請求項１１】
基板バイアスの制御情報を保持する記憶回路を含み、上記基板バイアス調整回路は、上記トランジスタの基板バイアスの調整において、上記記憶回路内の制御情報を参照する請求項１０記載の半導体装置。
【請求項１２】
入力された第１データをクロック信号のタイミングに従って記憶する第１フリップフロップと、
上記第１データを遅延させて第２データを生成する第１遅延回路と、
上記第１データとは別の経路から入力される第３データと上記第２データとを選択的に出力する第１選択回路と、
上記第１選択回路の出力信号を上記クロック信号のタイミングに従って記憶する第２フリップフロップと、
上記第１フリップフロップの出力と上記第２フリップフロップの出力とを比較する比較回路と、を含むことを特徴とする半導体装置。
【請求項１３】
速度性能を測定する第１モードと、上記第１モード以外の第２モードとを含み、
上記第１選択回路の選択動作により、上記第２フリップフロップには、上記第２モードにおいて上記第３データが入力され、上記第１モードにおいて上記第２データが入力される請求項１２記載の半導体装置。
【請求項１４】
上記クロック信号のタイミングに同期して上記第２比較回路の出力を記憶する第３フリップフロップを含む請求項１２記載の半導体装置。
【請求項１５】
入力された第１データをクロック信号のタイミングに同期して記憶する第１フリップフロップと、
上記第１データを遅延させて第２データを生成する第１遅延回路と、
上記第２データと上記第１フリップフロップの出力とを選択的に出力する第１選択回路と、
上記第１選択回路の出力信号を上記クロック信号のタイミングに従って記憶する第２フリップフロップと、
第１フリップフロップの出力と第２フリップフロップの出力とを比較する比較回路と、を含むことを特徴とする半導体装置。
【請求項１６】
上記第２フリップフロップのデータを上記第１フリップフロップに入力可能な第２選択回路を含む請求項１５記載の半導体装置。
【請求項１７】
回路がスタンバイ状態のとき、上記第１フリップフロップ、上記第３遅延回路、上記第２選択回路、及び上記比較回路への電源電圧の供給が遮断され、上記第２フリップフロップには電源電圧レベルの信号が供給される請求項１６記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された信号に所定の処理を行う複数の回路を含む半導体装置、さらには、集積された回路の性能が製造後にばらついても動作するように設計時に確保しているマージンの量を低減し、回路がもつ性能に最適な性能で半導体チップを動作させるための回路技術に関する。
【背景技術】
【０００２】
半導体製造プロセスの微細化により、ＭＯＳトランジスタのしきい値電圧(Ｖｔｈ)のばらつきが増大している。Ｖｔｈのばらつきによって製造後のＭＯＳトランジスタのＶｔｈが低下するとＭＯＳトランジスタの駆動電流が増加するため、回路が動作することのできる動作速度は速くなる。逆に、Ｖｔｈのばらつきによって製造後のＭＯＳトランジスタのＶｔｈが低下するとＭＯＳトランジスタの駆動電流が低下するため、回路が動作することのできる動作速度は遅くなる。半導体製造プロセスが９０ｎｍより微細化されると、Ｖｔｈばらつきの増加によりばらつきによる速度差が大きくなり、回路の動作速度の決定が困難となってきている。特に、回路の必要性能に応じて回路の動作周波数と回路の電源電圧を変化させるＦＶ制御という技術を用いる場合には、電源電圧によって回路が動作可能な周波数が異なるため、ばらつきに応じてすべての電源電圧に対する動作周波数を設計時に決定することは困難である。よって、製造後の回路特性を測定し、最適な動作周波数を決定することができれば、製造後の回路性能を十分に活用することが可能となる。回路に入力されているクロックのタイミングを制御して回路の性能を測定する技術については、例えば特許文献１に記載されている。
【０００３】
【特許文献１】特開２００３-２７３２３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＬＳＩ(Ｌａｒｇｅ Ｓｃａｌｅ Ｉｎｔｅｇｒａｔｅｄ ｃｉｒｃｕｉｔ: 大規模集積回路)を製造するプロセスの進展により、ＬＳＩ中のトランジスタの微細化が進展している。たとえば、２００６年にはトランジスタのゲート長が５０ｎｍという微細なトランジスタの量産が行われている。トランジスタの微細化が進展するとトランジスタのＶｔｈのばらつきが増大し、実際に製造された回路を構成するトランジスタのＶｔｈが、設計時のトランジスタのＶｔｈから大きくずれてしまう。たとえば、設計時のＶｔｈよりも製造時のＶｔｈが高くなった場合にはトランジスタの動作電流が減少し、動作速度が低下する。特に、ＦＶ制御技術を用いる場合には、所定の周波数で回路が動作するために必要な電源電圧を製造後の回路ごとに正確に測定し、その測定結果を回路内で保持しておく必要がある。
【０００５】
上記特許文献１では、クリティカルパスと呼ばれる信号の伝播がもっとも遅い経路に配置される記憶素子フリップフロップ(ＦＦ)を２つ具備し、それぞれのＦＦを制御するクロックのタイミングをずらし、それぞれのＦＦで保持しているデータの内容を比較することでタイミングのエラーが発生するかどうかを測定する。その際には、電源電圧を徐々に低下させ、上記のＦＦの比較結果からエラーが起きた場合に、電源電圧を上昇させ、電源電圧の下限値を測定している。しかしながら、前記特許文献１においては、判定器１０６の出力Ｓｉｇ１０６を直接電源電圧制御回路に入力しており、その出力Ｓｉｇ１０６のエラー判定に従って電源電圧の調整を行っている。従って、（１）Ｓｉｇ１０６にグリッジ等のノイズが発生した場合、それをエラー判定と判断し、本来ならば下げることができる電源電圧であっても電圧を上昇させるおそれがある。また、（２）図９に示されるようにエラーが出た場合に電源電圧を上げ、エラーが出なかった場合は、電源電圧を下げる制御を行っている。従って、常に電源電圧が揺れ動く制御となる。特許文献１には、どの程度の刻みで電源電圧を動かしているかは不明だが、この制御は刻みが小さい場合には、揺れ動く範囲が小さいので特に問題にならない。しかしながら、刻みが小さい場合には、多数回上記制御を行わないと下限値まで到達しないため制御に時間が係るおそれがある。一方、下限値まで直ぐに到達させようと刻みを大きくすると動作速度への影響が大きくなってしまい、本来意図していた回路の安定動作が出来なくなるおそれがある。また、電源電圧の下限値を測定する際に、電源電圧を徐々に変化させる際に変化させる前の状態を保持しておかなければ、タイミングエラーが発生した際にエラーが出ない下限の電源電圧値を測定することはできない。更には、（３）通常動作を行う演算回路群203からエラー判定用のデータが出力される構成を取っており、また、エラー判定は1クロックサイクル毎に行われる。1クロックサイクル毎にエラー判定を行う場合には、Ｆ／Ｆのデータを反転させる必要があるため、通常の論理回路部から出力されるデータが１クロックサイクル毎に論理値”１””０”が変化する部分にしか適用することが難しい。最後に、（４）従来は、設計時にもっとも信号の伝播が遅くなる経路が推測できていたが、現在の微細化された半導体製造プロセスで製造された回路においては、ＭＯＳトランジスタのＶｔｈばらつきが大きくなるために、信号がもっとも遅くなる経路(クリティカルパス)が複数考えられるため、タイミングを測定する経路が複数必要になる。特許文献１では、エラー判定用のＦ／Ｆを新たに設けているために複数の経路に適用すると回路規模が大きくなってしまう。
【０００６】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【０００８】
すなわち、第１論理回路と第２論理回路との間に、速度性能測定を可能とする速度性能測定回路とを設ける。上記速度性能測定回路は、上記第１クロック信号に同期して入力された第１データを記憶する第１フリップフロップと、上記第１データを遅延させて第２データを生成する第１遅延回路と、上記第１クロック信号に同期して入力された上記第２データを記憶する第２フリップフロップと、上記１フリップフロップの出力と上記第２フリップフロップの出力とを比較する第１比較回路と、上記第１クロック信号のタイミングに従って上記第１比較回路の出力信号のデータを記憶する第３フリップフロップを含んで成る。上記第３フリップフロップの出力により、クリティカルパスでの電源電圧に対する速度の変化の測定結果を得る。
【発明の効果】
【０００９】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１０】
すなわち、クリティカルパスでの電源電圧に対する速度の変化の測定を行うことができる。
【発明を実施するための最良の形態】
【００１１】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１２】
〔１〕本発明の代表的な実施の形態に係る半導体装置（ＳＯＣ１，ＳＯＣ２）は、第１論理回路（ＬＯＧＩＣ１）と、上記第１論理回路の後段に配置され、上記第１論理回路から出力される第１データが伝達される第２論理回路（ＬＯＧＩＣ２）と、上記第１論理回路と上記第２論理回路との間で速度性能測定を可能とする速度性能測定回路（ＳＥＱ１）とを含む。上記速度性能測定回路は、クロック信号に同期して、上記第１データを記憶する第１フリップフロップ（ＦＦ１）と、上記第１データを遅延させて第２データを生成する第１遅延回路（ＤＥＬＡＹ１）と、上記クロック信号に同期して、上記第２データを記憶する第２フリップフロップ（ＦＦ２）と、上記１フリップフロップの出力と上記第２フリップフロップの出力とを比較する比較回路（ＥＸＯＲ１）と、上記第１クロック信号のタイミングに従って上記比較回路の出力信号のデータを記憶する第３フリップフロップ（ＦＦ３）とを含んで成る。
【００１３】
〔２〕各部に動作用の電源電圧を生成するための電圧生成回路（ＶＧＥＮ１）と、上記比較回路の出力データを用いて上記電源電圧を調整可能な電圧制御回路（ＣＯＮＴＶ）とを設けることができる。
【００１４】
〔３〕上記電源電圧の制御情報を保持可能な記憶回路（ＭＥＭ１）を設け、上記電圧制御回路は、上記電源電圧の調整において上記記憶回路内の制御情報を参照するように構成することができる。
【００１５】
〔４〕上記第１比較回路の出力論理がハイレベルとなった場合に、それを受けて、出力状態を一定時間ハイレベルに保持するための第４フリップフロップ（ＦＦ４）を設けることができる。
【００１６】
〔５〕所定の機能を有する回路モジュール（ＣＰＵ１，ＣＰＵ２）のリソースを管理するリソースマネージャ（ＲＭ）を設け、上記リソースマネージャによる上記回路モジュールのリソース管理に応じて上記電源電圧が調整されるように構成することができる。
【００１７】
〔６〕上記速度性能測定回路（ＳＥＱ１）が複数設けられるとき、上記複数の速度性能測定回路の出力信号を一つの信号にまとめるための速度性能測定結果出力部（ＳＥＱ３）を設けることができる。このとき、上記度性能測定結果出力部は、上記複数の速度性能測定回路の出力信号のオア論理をとることで、上記複数の速度性能測定回路の出力信号を一つの信号にまとめるためのオア回路（ＯＲ１）と、上記オア回路の出力信号を上記クロック信号に同期して保持するための第５フリップフロップ回路（ＦＦ５）とを含んで構成することができる。
【００１８】
〔７〕また、上記度性能測定結果出力部は、上記クロック信号を遅延させるための第２遅延回路（ＤＥＬＡＹ２）と、上記複数の速度性能測定回路に対応して配置され、対応する上記速度性能測定回路の出力信号を取り込むための複数の第１トランジスタ（ＭＮ２，ＭＮ３）と、上記遅延回路の出力信号によって動作制御され、上記複数の第１トランジスタのドレイン電極を高電位側電源に結合するための第２ＭＯＳトランジスタ（ＭＰ１）と、上記第２遅延回路の出力信号によって動作制御され、上記複数の第１トランジスタのソース電極を低電位側電源に結合するための第３ＭＯＳトランジスタ（ＭＮ１）と、上記クロック信号に同期して上記複数の第１トランジスタのドレイン電極の論理を保持可能な第６フリップフロップ回路（ＦＦ５）とを含んで構成することができる。
【００１９】
〔８〕上記第１比較回路の出力データに基づいて、上記クロック信号の周波数を制御可能な周波数制御回路（ＣＯＮＴＦ）を設けることができる。
【００２０】
〔９〕上記クロック信号を生成するとともに、上記クロック信号の周波数を上記周波数制御回路の出力信号に基づいて変更可能なクロック発生回路（ＰＬＬ）を設けることができる。
【００２１】
〔１０〕上記比較回路の出力データを用いてトランジスタの基板バイアスを調整する基板バイアス調整回路（ＣＯＮＴＶＢ）を設けることができる。
【００２２】
〔１１〕基板バイアスの制御情報を保持する記憶回路（ＭＥＭ３）を含み、上記基板バイアス調整回路は、上記トランジスタの基板バイアスの調整において、上記記憶回路内の制御情報を参照するように構成することができる。
【００２３】
〔１２〕別の観点によれば、第１データをクロック信号のタイミングに従って記憶する第１フリップフロップ（ＦＦ７）と、上記第１データを遅延させて第２データを生成する第１遅延回路（ＩＮＶ１０，ＩＮＶ１１）と、上記第１データとは別の経路から入力される第３データと上記第２データとを選択的に出力する第１選択回路（ＩＮＶ１２，ＩＮＶ１３）と、上記第１選択回路の出力信号を上記クロック信号のタイミングに従って記憶する第２フリップフロップ（ＦＦ８）と、上記第１フリップフロップの出力と上記第２フリップフロップの出力とを比較する比較回路（ＥＸＯＲ２）とを含んで半導体装置を構成することができる。
【００２４】
〔１３〕速度性能を測定する第１モードと、上記第１モード以外の第２モードとを含むとき、上記第１選択回路の選択動作により、上記第２フリップフロップには、上記第２モードにおいて上記第３データが入力され、上記第１モードにおいて上記第２データが入力されるように構成することができる。
【００２５】
〔１４〕上記第２比較回路の出力を上記クロック信号のタイミングに同期して記憶する第３フリップフロップ（ＦＦ１１）を設けることができる。
【００２６】
〔１５〕別の観点によれば、入力された第６データをクロック信号のタイミングに同期して記憶する第７フリップフロップ（ＦＦ７）と、上記第１データを遅延させて第２データを生成する第１遅延回路（ＩＮＶ１０，ＩＮＶ１１）と、上記第２データと上記第１フリップフロップの出力とを選択的に出力する第１選択回路（ＩＮＶ１２，ＩＮＶ２３）と、上記第１選択回路の出力信号を上記クロック信号のタイミングに従って記憶する第２フリップフロップ（ＦＦ８）と、第１フリップフロップの出力と第２フリップフロップの出力とを比較する比較回路（ＥＸＯＲ２）とを含んで半導体装置を構成することができる。
【００２７】
〔１６〕上記第２フリップフロップのデータを上記第１フリップフロップに入力可能な第２選択回路（ＩＮＳＥＬ３）を設けることができる。
【００２８】
〔１７〕回路がスタンバイ状態のとき、上記第１フリップフロップ、上記第３遅延回路、上記第２選択回路、及び上記比較回路への電源電圧の供給が遮断され、上記第２フリップフロップには電源電圧レベルの信号が供給されるように構成することができる。
【００２９】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００３０】
＜実施形態１＞
図８には、本発明にかかる半導体装置の一例とされるＳＯＣ（System On a Chip）１が示される。図８に示されるＳＯＣ１は、ＣＰＵ、ＰＥＲＩ１，ＰＥＲＩ２、ＳＲＡＭ１、及びＶＧＥＮ１を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。ＣＰＵは中央処理装置であり、所定のプログラムに従って汎用的な処理を実行したり、各部の動作を制御する。ＰＥＲＩ１及びＰＥＲＩ２はアクセレレータであり、特定の処理を行う。ＳＲＡＭ１はＳＯＣ１における主記憶装置として使用されるメモリブロックである。ＶＧＥＮ１は、このＳＯＣ１の各部の動作用電源電圧ＶＤＤを生成する電圧生成回路である。ＣＰＵは電圧制御回路（ＥＲＣＮＴ１）を含み、このＥＲＣＮＴ１は、ＣＰＵの動作速度を測定し、その性能に応じた最低の電源電圧をＶＧＥＮ１に設定する。これにより、ＳＯＣ１全体で速度性能を達成できる電源電圧に設定でき、ＬＳＩの必要性能を確保して、電源電圧を最低に設定し動作電力を最小化することが可能となる。
【００３１】
図４には、上記ＥＲＣＮＴ１の構成例が示される。
【００３２】
図４において、ＶＧＥＮ１は電源電圧ジェネレータ、ＣＯＮＴＶは電源電圧制御回路、ＭＥＭ１は電源電圧の制御情報が格納された記憶回路である。ＥＲＣＫ１はエラーチェック回路、ＥＲＣＮはエラー制御回路である。また、ＶＤＤは電源電圧、ＣＨＶは電源電圧を指定する信号、ＥＲＲＯＵＴは速度性能を測定する回路の出力信号である。本回路では、速度性能を測定する回路から出力されるＥＲＲＯＵＴ信号によって動作する最低の電源電圧を設定することが可能となる。
【００３３】
図５には、本回路における電源電圧設定のシーケンスが示される。
【００３４】
図５において、ステップ２０１では、現在の電源電圧の値を図４中のＭＥＭ１に記憶される。ステップ２０２では電源電圧が低下される。ステップ２０３では、ＥＲＲＯＵＴのデータが比較される。この比較において、ハイ（Ｈ）レベルが出力された場合には、ステップ２０４の処理を行う。またロー（Ｌ）レベルが出力された場合には、ステップ２０１の動作が行われる。ステップ２０４では電源電圧の制御情報がＭＥＭ１に設定される。設定された制御情報に従って電源電圧の制御が行われる。ステップ２０１から開始してステップ２０４までの動作を実行することで回路が所定の動作速度で動作する最低の電源電圧を設定することが可能である。図５の電源電圧設定シーケンスにおいて、ステップ２０３において、ＥＲＲＯＵＴが"Ｈ"か"Ｌ"かの判定を行っている。このように電源電圧情報を記憶する記憶回路（ＭＥＭ１）を設け、エラーが出なかった場合にのみ電源電圧情報を変更し、エラーが出ると、その前のエラーが出なかった値に設定しなおすことで電源電圧の下限を設定することが可能となり、上記課題（２）を解決することが可能となる。  図１には、上記ＥＲＣＫ１の構成例が示される。
【００３５】
上記ＥＲＣＫ１は、図１に示されるように、ＬＯＧＩＣ１，ＬＯＧＩＣ２間に配置される。ＬＯＧＩＣ１，ＬＯＧＩＣ２は、それぞれ所定の論理演算を可能とする組み合わせ論理回路とされる。
【００３６】
ＬＯＧＩＣ１の出力信号は、ＥＲＣＫ１を介して後段に配置されたＬＯＧＩＣ２に伝達されるようになっている。ＥＲＣＫ１は、上記ＬＯＧＩＣ１から上記ＬＯＧＩＣ２に至るクリティカルパスの速度性能測定を行い、その速度性能測定結果に基づいて、エラーチェックを行う。このエラーチェック結果は、特に制限されないが、後述する電源電圧制御に使用される。
【００３７】
上記ＥＲＣＫ１は、上記クリティカルパスの速度性能測定を可能とする速度性能測定回路（ＳＥＱ１）、及びこのＳＥＱ１での測定結果（ＥＲＲＯＵＴ）に基づいてエラー判定を行うエラー判定回路（ＳＥＱ２）を含む。上記ＳＥＱ２からはエラー判定信号ＥＲＲＥＸ１が出力される。
【００３８】
上記ＳＥＱ１は、特に制限されないが、遅延回路（ＤＥＬＡＹ１）、フリップフロップ回路（ＦＦ１，ＦＦ２，ＦＦ３）、及びエクスクルーシブオア回路（ＥＸＯＲ１）を含んで成る。上記ＤＥＬＡＹ１は、２段のインバータで構成される。上記ＤＥＬＡＹ１により、上記ＬＯＧＩＣ１の出力信号Ｄ１は、インバータ２段分の信号遅延を受ける。ＤＥＬＡＹ１の出力信号ＤＤ１は、ＦＦ２に伝達される。ＦＦ１は、クロック信号ＣＬＫに同期して上記ＬＯＧＩＣ１の出力信号Ｄ１を保持する。ＦＦ２は、クロック信号ＣＬＫに同期して上記ＤＥＬＡＹ１の出力信号ＤＤ１を保持する。ＥＸＯＲ１は、上記ＦＦ１，ＦＦ２の出力信号のエクスクルーシブオア論理を得る。このエクスクルーシブオア論理結果ＥＲＲＯＲは、クロック信号ＣＬＫに同期してＦＦ３に保持される。ＦＦ３の出力信号ＥＲＲＯＵＴは、後段のＳＥＱ２に伝達される。このように、比較回路であるＥＸＯＲ１の出力ＥＲＲＯＲをＦＦ１,ＦＦ２に入力されるクロック信号CLKに従って取り込むＦＦ３を設けることにより、ＥＲＲＯＲにグリッジ等のノイズが発生したとしてもそのノイズは無視され、正確に比較結果ＥＲＲＯＲの情報を保持することが可能となり、上記（１）の課題を解決することが可能となる。
【００３９】
なお、図４に示される電源電圧制御回路ＣＯＮＴＶ及び記憶回路MEM1は、ＦＦ３が無くＥＲＲＯＲの信号を直接電源電圧情報を変化させるトリガとしても動作可能であるが、図１におけるＦＦ３との組合せにおいて、特に効果が大きい。即ち、ＦＦ３が存在せず、記憶回路の電源電圧情報を変化させるトリガに直接ＥＲＲＯＲを使用するとグリッジ等のノイズにより誤って電源電圧情報が変化してしまう可能性がある。そのため、ＦＦ３が保持する正確なエラー情報を得ることにより、安定した動作が可能となる。
【００４０】
また、図１に示している回路では、図示されていないが、ＬＯＧＩＣ１の前段には、クロック信号ＣＬＫで動作するフリップフロップ回路が配置されており、上記クロック信号ＣＬＫの入力により、上記ＬＯＧＩＣ１にデータが入力され、その出力が次のクロック信号ＣＬＫに同期してＦＦ１に格納されるようになっている。本回路では、ＬＯＧＩＣ１の遅延時間がクロック信号ＣＬＫで与えられる周波数よりもインバータ２段分の遅延時間以上速い速度で動作している場合には、ＦＦ３の出力信号ＥＲＲＯＵＴがローレベルとされるが、組み合わせ論理回路ＬＯＧＩＣ１の遅延時間がクロック信号ＣＬＫであたられる周波数と同等程度、またはそれより遅くなると、ＦＦ３の出力信号ＥＲＲＯＵＴからハイレベルの信号が出力される。
【００４１】
次に、上記ＳＥＱ１の動作を説明する。
【００４２】
図２には、ＬＯＧＩＣ１の遅延時間がクロック信号ＣＬＫで与えられる周波数よりもインバータ２段分の遅延時間以上速い速度で動作している場合の図１中の回路各部の動作波形が示される。
【００４３】
毎サイクルクロック信号ＣＬＫが入力されるとともに、ＬＯＧＩＣ１の出力信号Ｄ１はクロックの立ち上がりよりも早くデータが変化する。その後、ＦＦ１にクロック信号ＣＬＫが入力されるため、ＬＯＧＩＣ１の出力信号Ｄ１の値はＦＦ１に取り込まれ信号として出力され、次段のＬＯＧＩＣ２に入力される。また、ＬＯＧＩＣ１の出力信号Ｄ１をインバータ２段分遅延させた信号ＤＤ１もクロック信号ＣＬＫの立ち上がりよりも早くデータが変化する。そのため、ＤＥＬＡＹ１の出力信号ＤＤ１が入力されたＦＦ２にはクロック信号ＣＬＫの立ち上がりとともにデータが取り込まれ、ＱＤ１として出力される。この際に、ＦＦ１とＦＦ２に取り込まれたデータは同じであるため、その出力信号であるＱ１とＱＤ１は同じ値となり、そのエクスクルーシブオアをとった信号ＥＲＲＯＲはローレベルとなる。さらに、そのような信号ＥＲＲＯＲを取り込んでいるＦＦ３の出力もローレベルとなる。
【００４４】
図３には、上記ＬＯＧＩＣ１の遅延時間にインバータ２段の遅延時間を加えた時間が、クロック信号ＣＬＫの１周期の時間よりも長くなった場合、すなわちＬＯＧＩＣ１の動作速度にほとんど余裕がなくなった場合の図３中の回路各部の動作波形が示される。
【００４５】
図３に示される動作例の場合、ＬＯＧＩＣ１の遅延時間が図２の場合と比較して遅くなっているため、タイミング１１１において、上記ＬＯＧＩＣ１の出力信号Ｄ１は、その前のデータから変化しているが、ＤＥＬＡＹ１の出力信号ＤＤ１タは変化していない。よって、タイミング１１１におけるクロック信号ＣＬＫの立ち上がりでＦＦ１への入力データはローレベルとなり、従ってＦＦ１の出力信号Ｑ１もローレベルとなる。一方、ＦＦ２のデータはハイレベルとなり、ＦＦ２の出力信号ＱＤ１もハイレベルとなる。よって、信号Ｑ１と信号ＱＤ１のエクスクルーシブオアの値ＥＲＲＯＲはハイレベルとなる。さらにその次のクロック信号ＣＬＫの立ち上がりであるタイミング１１２において、ＥＸＯＲ１の出力がＦＦ３に保持され、信号ＥＲＲＯＵＴがハイレベルとなる。またその次のクロック信号ＣＬＫの立ち上がりであるタイミング１１３においては、ＦＦ１の出力信号Ｑ１とＦＦ２の出力信号ＱＤ２とが等しくなっているため、エクスクルーシブオアの値ＥＲＲＯＲはローレベルとなり、ＦＦ３に取り込まれるデータもローレベルとなる。このように、図１に示される回路を用いると、上記ＬＯＧＩＣ１の遅延時間がクロック信号ＣＬＫで与えられる周波数に近い値になったことを検出することが可能となる。
【００４６】
しかし図１におけるＳＥＱ１では、速度エラーが起きる条件で毎サイクルＥＲＲＯＵＴが出力されるわけではない。これは、図１に示されるＳＥＱ１では、データが変化した場合にＦＦ１と、ＦＦ２とでデータを比較し、データが異なっているか否かを検出するため、に入力されたデータが変化しない場合には、速度エラーが起こっていても信号ＥＲＲＯＵＴがハイレベルにされることはないことに起因する。
【００４７】
そこで、本例では、速度性能測定回路ＳＥＱ１の後段にエラー判定回路ＳＥＱ２を配置することで、数サイクルの間に、フリップフロップ回路ＦＦ３の出力ＥＲＲＯＵＴがハイレベルになるか否かのエラー判定を可能にしている。
【００４８】
図６には、上記ＳＥＱ２の構成例が示される。
【００４９】
ＳＥＱ２は、特に制限されないが、図６に示されるように、論理回路（ＯＲＡＮＤ１）、及びフリップフロップ回路（ＦＦ４）を含んで成る。ＯＲＡＮＤ１は、ＦＦ３の出力信号ＥＲＲＯＵＴとＦＦ４の出力信号ＥＲＲＥＸ１との論理和を演算するオア回路（ＯＲ１）と、このＯＲ１の出力信号とリセット信号ＲＥＳＥＴとの論理積を演算するアンド回路（ＡＮＤ１）とが結合されて成る。上記ＯＲＡＮＤ１の出力信号Ｎ１は後段のＦＦ４に伝達される。
【００５０】
図７には、図６に示される上記ＳＥＱ２における主要部の動作タイミングが示される。
【００５１】
クロック信号ＣＬＫは毎サイクル入力される。最初の状態は、一度、リセット信号がローレベルにされた後の状態を示しており、ＦＦ４の出力信号ＥＲＲＥＸ１はローレベルとなっている。時刻１２１において、ＦＦ３の出力信号ＥＲＲＯＵＴにハイレベルのデータが入力されると、ＯＲＡＮＤ１の出力信号Ｎ１がハイレベルとなり、時刻１２２においてＦＦ４にハイレベルのデータが記憶され、出力ＥＲＲＥＸ１はハイレベルとなる。時刻１２３において、ＦＦ３の出力信号ＥＲＲＯＵＴにローレベルのデータが入力されるが、ＦＦ４の出力信号ＥＲＲＥＸ１はハイレベルの状態を保ち続ける。時刻１２４において、リセット信号ＲＥＳＥＴがローレベルとなり、ＳＥＱ２がリセットされると、時刻１２５においてローレベルのデータがＦＦ４に保持され、出力ＥＲＲＥＸ１もローレベルとなる。このように図６に示される回路ＳＥＱ２が設けられることにより、ＦＦ３の出力信号ＥＲＲＯＵＴからハイレベルのデータが入力されたことを記憶することが可能となる。従って、上記のようにＳＥＱ１の後段にＳＥＱ２を配置することで、数サイクルの間に、ＦＦ３の出力ＥＲＲＯＵＴがハイレベルになるか否かのエラー判定を行うことができる。即ち、本構成により、複数クロックサイクルの間（リセット信号が入力されるまでの間)に一度でもエラー判定されるとＦＦ４にエラー判定のデータが保持される。即ち、”Ｈ””Ｌ”が交互に出力される論理回路の後でなくともエラー判定回路を設けることが可能となり、上記（３）の課題を解決することが可能となる。また、ＦＦ４は、ＦＦ３と同様の効果を有する。即ち、ＥＲＲＯＲやＥＲＲＯＵＴにグリッジ等のノイズが発生したとしても、ＦＦ１,ＦＦ２等と同じクロック信号によりＦＦ４がデータを取り込んでいるため、安定した動作が実現できる。
【００５２】
上記例によれば、以下の作用効果を得ることができる。
【００５３】
（１）クロック信号ＣＬＫに同期して入力された第１データを記憶するＦＦ１と、上記第１データを遅延させて第２データを生成するＦＦ２と、上記第クロック信号ＣＬＫに同期して入力された上記第２データを記憶するＦＦ３と、上記ＦＦ１の出力と上記ＦＦ２の出力とを比較するＥＸＯＲ１と、上記クロック信号ＣＬＫのタイミングに従って上記ＥＸＯＲ１の出力信号のデータを記憶するＦＦ３とを設けたことにより、上記組み合わせ論理回路ＬＯＧＩＣ１の遅延時間がクロック信号ＣＬＫで与えられる周波数に近い値になったことを、ノイズの影響を受けずに検出することができる。
【００５４】
（２）ＳＥＱ１の後段にＳＥＱ２を配置することで、数サイクルの間に、ＦＦ３の出力ＥＲＲＯＵＴがハイレベルになるか否かのエラー判定を行うことができる。
【００５５】
（３）上記（１）及び（２）の作用効果により、ＳＯＣ１において必要な速度性能を確保して、最低の電源電圧を設定することが可能となる。
【００５６】
＜実施形態２＞
図９には、本発明にかかる半導体装置の一例とされるＳＯＣ（System On a Chip）２が示される。図９に示されるＳＯＣ２が、図８に示されるのと大きく相違するのは、それぞれ汎用的な処理を実行可能な２個の中央処理装置（ＣＰＵ１，ＣＰＵ２）と、それらのリソースを管理するリソースマネージャ（ＲＭ）とを含む点である。ＰＥＲＩ３は特定の処理を行うアクセレレータ、ＳＲＡＭ１は主記憶装置として使用されるスタティック型のメモリブロックである。上記ＣＰＵ１，ＣＰＵ２は、それぞれ専用のＶＧＥＮ１，ＥＲＣＮＴ１とを有し、個別的に電源電圧の調整が行われる。上記ＣＰＵ１，ＣＰＵ２内のＶＧＥＮ１，ＥＲＣＮＴ１は、特に制限されないが、上記実施形態１の場合と同様に構成されるため、ここではそれらについての詳細な説明を省略する。
【００５７】
このように複数のＣＰＵが搭載されるＳＯＣにおいては、ＳＯＣ内において性能を制限する回路ブロックが複数存在し、その場合、それぞれのプロセッサのリソースを調整する回路が必要となる。本例では、ＲＭによってＣＰＵ１，ＣＰＵ２のリソース調整が行われる。このリソース調整後のＣＰＵ１，ＣＰＵ２の動作速度が専用のＥＲＣＮＴ１で測定され、その性能に応じた最低の電源電圧が専用のＶＧＥＮ１に設定されるようになっている。
【００５８】
このように実施形態２においては、リソース調整後のＣＰＵ１，ＣＰＵ２の動作速度が専用のＥＲＣＮＴ１で測定され、その性能に応じた最低の電源電圧が専用のＶＧＥＮ１に設定されるようになっているため、ＣＰＵ１，ＣＰＵ２のリソース調整に応じて適切な電源電圧設定が行われる。
【００５９】
＜実施形態３＞
通常、ＳＯＣにおいては、クリティカルパスと呼ばれる速度性能がもっとも遅くなるパスは複数存在する。そのような場合には、複数の速度性能測定回路（ＳＥＱ１）を用いて速度性能を測定すると良い。図１０には、そのように複数のＳＥＱ１が設けられる場合の主要部の構成例が示される。
【００６０】
図１０に示される例では４個のＳＥＱ１が設けられ、その出力信号が後段の速度性能測定結果出力部（ＳＥＱ３）に伝達される。上記４個のＳＥＱ１は、図１に示されるのと同様に構成されるため、ここではそれについての詳細な説明を省略する。上記ＳＥＱ３は次のように構成される。
【００６１】
ＥＲＲＯＵＴ１〜ＥＲＲＯＵＴ４は、それぞれ上記４個のＳＥＱ１の出力信号である。オア回路（ＯＲ１）が設けられ、このＯＲ１は、上記ＥＲＲＯＵＴ１〜ＥＲＲＯＵＴ４のオア論理を得る。ＯＲ１の出力信号Ｎ２は、後段のフリップフロップ回路（ＦＦ５）に伝達される。ＦＦ５は、クロック信号ＣＬＫに同期して、上記ＯＲ１の出力信号Ｎ２を保持する。ＦＦ５の出力信号ＥＲＲＥＸ２は、ＳＥＱ３の出力信号（エラー判定信号）として後段回路、例えばＣＯＮＴＶ（図４参照）などに供給される。
【００６２】
このように、図１０に示される構成によれば、ＯＲ１によってＥＲＲＯＵＴ１〜ＥＲＲＯＵＴ４のオア論理が得られる。よって、ＥＲＲＯＵＴ１〜ＥＲＲＯＵＴ４のいずれか１つでもハイレベルになると、それに応じてＯＲ１の出力信号Ｎ２がハイレベルとなる。そのような信号は、クロック信号ＣＬＫの立ち上がりによってＦＦ５に記憶され、ＥＲＲＥＸ２として出力される。つまり、本例によれば、複数の速度性能を測定する回路の出力からハイレベルの出力信号を検出することが可能となるため、この信号ＥＲＲＥＸ２を用いて回路性能を調整すれば、ＳＯＣにおいて所定の回路性能を確保し得る最低の電源電圧を設定することが可能となる。
【００６３】
＜実施形態４＞
図１１には、複数のＳＥＱ１が設けられる場合の主要部の別の構成例が示される。
【００６４】
図１１に示される例では２個のＳＥＱ１が設けられ、その出力信号が後段の速度性能測定結果出力部（ＳＥＱ３）に伝達される。上記２個のＳＥＱ１は、図１に示されるのと同様に構成されるため、ここではそれについての詳細な説明を省略する。図１１においてＳＥＱ３は次のように構成される。
【００６５】
ＭＰ１はノードＮ３をハイレベル（高電位側電源ＶＤＤレベル）にプリチャージするためのｐチャネル型ＭＯＳトランジスタ、ＭＮ２，ＭＮ３はそれぞれ上記ＥＲＲＯＵＴ１，ＥＲＲＯＵＴ２を取り込むためのｎチャネル型ＭＯＳトランジスタ、ＭＮ１は、上記ＭＮ２，ＭＮ３のソース電極をローレベル（低電位側電源ＶＳＳレベル）に引き抜くためのｎチャネル型ＭＯＳトランジスタである。また、複数のインバータにより形成される遅延回路（ＤＥＬＡＹ２）が設けられ、このＤＥＬＡＹ２によりクロック信号ＣＬＫが遅延される。そして、上記ＤＥＬＡＹ２で遅延されたクロック信号ＣＬＫＢが上記ｐチャネル型ＭＯＳトランジスタＭＰ１及びｎチャネル型ＭＯＳトランジスタＭＮ１のゲート電極に供給されるようになっている。
【００６６】
図１２には、図１１に示される構成における主要部の動作タイミングが示される。
【００６７】
図１２に示される回路には、毎サイクルクロック信号ＣＬＫが入力される。時刻１３１において、速度エラーが発生しＥＲＲＯＵＴ１がハイレベルにされる。すると、ｎチャネル型ＭＯＳトランジスタＭＮ２がオンされる。時刻１３２において、クロック信号ＣＬＫＢがハイレベルとなることにより、ｎチャネル型ＭＯＳトランジスタＭＮ１がオンされることで、ノードＮ３はローレベルにされる。時刻１３３においてＦＦ５にクロック信号ＣＬＫが入力されてこのＦＦ５にローレベルのデータが記憶され、それがＥＲＲＥＸ３として出力される。ＥＲＲＥＸ３はハイレベルの場合に速度エラーが起こっていない状態、ローレベルの場合に速度エラーが発生されている状態とされる。時刻１３４においては、入力される信号ＥＲＲＯＵＴ１１及びＥＲＲＯＵＴ１２がどちらもローレベルとなり、ノードＮ３はディスチャージされず、次のサイクルの開始時刻である時刻１３５において、ハイレベルのデータがＦＦ３に記憶され、それが出力される。
【００６８】
図１０では２個のＳＥＱ１が設けられ、その出力信号が後段の速度性能測定結果出力部（ＳＥＱ３）に伝達されるようにしたが、３個のＳＥＱ１を設け、その出力信号をＳＥＱ３に供給するように構成することができる。また、図１０及び図１１においては、ＳＥＱ１の出力信号としてＦＦ３の出力信号（ＥＲＲＯＵＴ１など）を取り込むようにしているが、ＥＸＯＲ１の出力信号を取り込むようにしても良い。この場合、複数のＳＥＱ１内のＦＦ３は不要とされる。
【００６９】
図１０，図１１に示される構成は、複数の信号の論理和をとる回路が示されており、回路中にクリティカルパスが複数存在し、図１の回路を複数搭載する場合に適している。図１０に示される回路では４つの信号程度までは使用することが可能であるが、それ以上に信号数が増加すると配線や回路規模が増大し使用することが困難となる。それに対して、図１１に示される回路では、入力される信号数が増加した場合には、ｎチャンネル型ＭＯＳトランジスタＭＮ２やＭＮ３に相当するＭＯＳトランジスタを追加するだけでよいので、回路規模の増大を抑えることができる。
【００７０】
＜実施形態５＞
近年のＳＯＣでは、クロック信号の周波数と電源電圧を変化させて、必要とする動作性能を確保すると同時に電源電圧を低下させることで消費電力を低減しようとするＦＶ制御という技術が一般に知られている。本回路技術を用いることで、特定の周波数で動作させるために必要な最低の電源電圧を測定することができるため、ＦＶ制御において、電源電圧を最低の電圧に設定することができ、ＳＯＣの低消費電力化が可能となる。図１３には、その場合の構成例が示される。
【００７１】
図１３に示されるＥＲＣＮＴ１が図４に示されるのと大きく相違するのは、動作周波数制御回路（ＣＯＮＴＦ）が設けられ、このＣＯＮＴＦによってＰＬＬ（Phase Locked Loop）の動作が制御される点である。
【００７２】
図１３において、ＶＧＥＮ１は電源電圧ジェネレータ、ＰＬＬはクロック信号ＣＬＫを発生させるクロック発生回路、ＣＯＮＴＶは電源電圧制御回路、ＣＯＮＴＦはクロック信号ＣＬＫの周波数を制御する周波数制御回路、ＭＥＭ１は電源電圧やクロック信号ＣＬＫに周波数の制御情報を記憶するための記憶回路である。ＶＤＤは高電位側電源、ＣＬＫはクロック信号、ＣＨＶは電源電圧を指定する信号、ＣＨＦは動作周波数を指定する信号、ＥＲＲＯＵＴは速度性能を測定する回路の出力信号である。
【００７３】
本回路では、ＥＲＣＫ１から出力されるＥＲＲＥＸ１によって、動作可能な最低の電源電圧を設定することが可能となるのは、図４に示される場合と同様である。さらに本回路では、クロック信号ＣＬＫの調整が加わる。
【００７４】
図１４には、図１３に示される構成の動作の流れが示される。
【００７５】
ステップ２１１では、クロック発生回路で発生するクロックの周波数を回路動作に必要な値に設定される。ステップ２１２では、所定の電源電圧を発生するよう、ＣＯＮＴＶからＶＧＥＮ１に制御信号ＣＨＶが伝達され、それによって電源電圧が設定される。ステップ２１３では、現在の電源電圧の値を図１３中のＭＥＭ１に記憶され、ステップ２１４では、上記ステップ２１３で記憶された電源電圧の値から数ｍＶ乃至数１０ｍＶ低下した電源電圧を発生するよう、ＣＯＮＴＶからＶＧＥＮ１に信号が伝達されて電源電圧の制御情報が設定される。ステップ２１５では、ＥＲＲＯＵＴから出力されるデータがハイレベルか否かの判別が行われる。この判別において、ＥＲＲＯＵＴから出力されるデータがハイレベルと判断された場合には、ステップ２１５の動作が行われる。それに対して、ＥＲＲＯＵＴから出力されるデータがローレベルと判断された場合には、上記ステップ２１３に戻される。上記ステップ２１６では、電源電圧が、ＭＥＭ２に記憶されている制御情報に従って調整される。ステップ２１１から開始してステップ２１６までの動作が実行されることで、回路が所定の動作速度で動作し得る最低の電源電圧を設定することが可能である。
【００７６】
＜実施形態６＞
図２４には、上記ＳＥＱ１の別の構成例が示される。
【００７７】
図２４に示されるＳＥＱ１は、図１に示されるのと同様に、ＬＯＧＩＣ１とＬＯＧＩＣ２との間に配置される。図２４において、ＦＦ７及びＦＦ８はスキャン機能付きフリップフロップ、Ｄ２及びＤ３はＦＦ７及びＦＦ８に入力されるデータ、Ｑ２及びＱ３はＦＦ７及びＦＦ８から出力される信号である。ＣＬＫはクロック信号である。ＥＸＯＲ２はエクスクルーシブオアをとる論理回路を示している。ＥＲＲＯＲ２は出力信号Ｑ２とＱ３のエクスクルーシブオアをとった結果を示している。ＦＦ１１は、クロック信号ＣＬＫに同期してＥＲＲＯＲ２を保持するためのフリップフロップである。ＦＦ１１の出力はＥＲＲＯＵＴ２とされる。ＩＮＳＥＬ１は入力される信号Ｄ２，Ｄ３を選択的に後段回路に伝達するための選択回路である。
【００７８】
図１５には、図２４における主要部の詳細な構成例が示される。
【００７９】
上記ＦＦ７は、インバータＩＮＶ１，ＩＮＶ２，ＩＮＶ３，ＩＮＶ４，ＩＮＶ６、クロックドインバータＩＮＶ５，ＩＮＶ７、ｎチャネル型ＭＯＳトランジスタＭＮ４，ＭＮ５、ｐチャネル型ＭＯＳトランジスタＭＰ２，ＭＰ３を含んで成る。ｎチャネル型ＭＯＳトランジスタＭＮ４とｐチャネル型ＭＯＳトランジスタＭＰ２とが互いに並列接続されることでトランスファゲートが形成される。ｎチャネル型ＭＯＳトランジスタＭＮ５とｐチャネル型ＭＯＳトランジスタＭＰ３とが互いに並列接続されることでトランスファゲートが形成される。インバータＩＮＶ４とクロックドインバータＩＮＶ５とが並列接続されることでラッチ回路が形成され、インバータＩＮＶ６とクロックドインバータＩＮＶ７とが並列接続されることでラッチ回路が形成される。Ｄ２はインバータＩＮＶ１及びＭＯＳトランジスタＭＮ４，ＭＰ２を介してインバータＩＮＶ４及びクロックドインバータＩＮＶ５によって保持され、さらに、ＭＯＳトランジスタＭＰ３，ＭＮ５を介してインバータＩＮＶ６及びクロックドインバータＩＮＶ７によって保持される。この保持値はインバータＩＮＶ８を介することによりＱ２として出力される。クロック信号ＣＬＫがインバータＩＮＶ２，ＩＮＶ３を介して、ｐチャネル型ＭＯＳトランジスタＭＰ２、クロックドインバータＩＮＶ５、ｎチャネル型ＭＯＳトランジスタＭＮ５、クロックドインバータＩＮＶ７に供給されることにより、Ｄ２は上記クロック信号ＣＬＫに同期して２サイクルでＱ２として出力される。
【００８０】
上記ＦＦ８は、クロックドインバータＩＮＶ１３，ＩＮＶ１７，ＩＮＶ１９，インバータＩＮＶ１４，ＩＮＶ１６，ＩＮＶ１８，ＩＮＶ２０、ｎチャネル型ＭＯＳトランジスタＭＮ６，ＭＮ７、ｐチャネル型ＭＯＳトランジスタＭＰ４，ＭＰ５を含み、上記ＦＦ８と同様に構成される。
【００８１】
上記ＩＮＳＥＬ１は、インバータＩＮＶ９，ＩＮＶ１０，ＩＮＶ１１、及びクロックドインバータＩＮＶ１２を含んで成る。
【００８２】
本回路は、２つのＦＦを有し、さらにＥＲＥＮをハイレベルとすることで、入力されるデータＤ２とＤ２をインバータ２段分遅延させた信号とのデータを比較することでＤ２に入力されるパスの速度エラーを検出することが可能となる。本回路を含むＳＯＣが通常動作を行っている場合には、ＦＦ７及びＦＦ８はそれぞれ回路中のパスに入っており、動作回路の一部として使われる。また、本回路を含むＳＯＣが動作性能を測定するモードに遷移された場合、ＦＦ８はＦＦ７のデータと比較するためのフリップフロップとして使用される。
【００８３】
図１６及び図１７には、図１５に示される回路における主要部の動作タイミングが示される。
【００８４】
ＥＲＥＮがローレベルとされている期間、つまり図１６及び図１７中でＣＯＭＰ１と示されていない期間には、Ｄ２から入力されたデータはクロック信号ＣＬＫの立ち上がりにおいてＦＦ７に記憶され、データ出力Ｑ２より出力される。また、Ｄ３から入力されたデータはクロック信号ＣＬＫの立ち上がりにおいてＦＦ８に記憶され、データ出力Ｑ３より出力される。
【００８５】
ＩＮＶ１０，ＩＮＶ１１は、Ｄ２をインバータ２段分遅延させる遅延回路として機能する。ＥＲＥＮがハイレベルとされた場合、図１５において、ＩＮＳＥＬ１及びＩＮＳＥＬ２の回路によってＦＦ８への入力はＤ３からＤ２をインバータ２段分遅延させた信号に切り替わる。Ｄ２に入力される信号のパスの遅延時間にインバータ２段の遅延時間を加えた遅延時間がクロック信号ＣＬＫの周期により与えられる遅延時間よりも短い場合(図１６)には、ＦＦ７とＦＦ８に同じデータが記憶される。これは図１６において、ＣＯＭＰ１に示される期間として表示されている。この期間ＥＲＥＮはハイレベルとなっており、さらにＦＦ７及びＦＦ８の出力であるＱ２とＱ３はともにＤＡＴ１３またはＤＡＴ１４となっており、同じデータが記憶されていることがわかる。よって、この２つのデータのエクスクルーシブオアをとった結果としてローレベルのデータがＥＲＲＯＲ２から出力される。
【００８６】
また、Ｄ２に入力される信号のパスの遅延時間にインバータ２段の遅延時間を加えた遅延時間がクロック信号ＣＬＫの周期により与えられる遅延時間よりも長い場合(図１７)には、ＦＦ８にはＦＦ７の１周期前のデータが記憶される。これは図１７において、ＣＯＭＰ１に示される期間として表示されている。この期間ＥＲＥＮはハイレベルとなっており、さらにＦＦ７及びＦＦ８の出力であるＱ２とＱ３がＤＡＴ１３とＤＡＴ１２及びＤＡＴ１４とＤＡＴ１３となっており、それぞれのＦＦは異なるデータを記憶している。よって、この２つのデータのエクスクルーシブオアをとった結果としてハイレベルのデータがＥＲＲＯＲ２から出力される。この出力信号ＥＲＲＯＲ２は、図１における出力信号ＥＲＲＯＲと同等の状況で出力されるため、本回路を実施形態１の場合と同様に用いることで、回路の速度エラーを検出することが可能となる。
【００８７】
図１８には、本回路を用いて動作速度を測定し、電源電圧を設定するシーケンスが示される。
【００８８】
本回路では回路が通常動作を行っている場合には、ＦＦ８が通常の演算するパスに入っているため、本回路を用いて動作速度を測定している場合にはＦＦ８において通常の動作は行えないため、通常動作時と動作を変更する必要がある。また電源電圧を設定する回路は図４に示される回路と同様の回路を使用することが可能である。
【００８９】
図１８において、ステップ２２１ではテストモードに移行される。つまり、図１５の回路においては、ＥＲＥＮにハイレベルが入力されると、ＦＦ８の入力がＤ２に切り替わりテストモードに移行される。ステップ２２２では電源電圧が設定される。つまり、所定の電源電圧を発生するよう、ＣＯＮＴＶからＶＧＥＮ１に信号を伝達することで、電源電圧が設定される。ステップ２２３では、現在の電源電圧ＶＤＤの値が、図４中のＭＥＭ１に記憶される。ステップ２２４では、電源電圧ＶＤＤが低下される。つまり、ステップ２２３で記憶した電源電圧の値から数ｍＶから数１０ｍＶ低下した電源電圧を発生するよう、ＣＯＮＴＶからＶＧＥＮ１に信号を伝達することで電源電圧ＶＤＤが設定される。ステップ２２５は、ＥＲＲＯＵＴ２から出力されるデータが比較される。この比較により、ハイレベルが出力された場合には、ステップ２２６の動作が行われる。また、ローレベルが出力された場合には、ステップ２２３の動作に移る。ステップ２２６では、電源電圧を図４のＭＥＭ１に記憶している値に設定し、設定を終了する。ステップ２２７では、テストモードから通常動作モードに移行され、図１５の回路において、ＥＲＥＮがローレベルとされることでＦＦ８の入力がＤ２からＤ３に切り替わり、テストモードから通常動作モードに移行される。ステップ２２１から開始してステップ２２７までの動作が実行されることで、回路が所定の動作速度で動作し得る最低の電源電圧を設定することができる。
【００９０】
このように、切り替え回路（ＩＮＳＥＬ１）を用いることにより、通常動作で用いるＦＦをエラー判定にも用いることが可能となるため、面積オーバーヘッドを小さくすることが可能となる。これによりＳＯＣ等のクリティカルパスが多数存在する大規模LSIであっても面積を大きくすることなく動作電圧の最適が実現でき、上記課題（４）を解決することができる。
【００９１】
＜実施形態７＞
図１９には、上記ＳＥＱ１の別の構成例が示される。
【００９２】
図１９に示されるＳＥＱ１は、図１や図１５に示されるのと同様に、ＬＯＧＩＣ１とＬＯＧＩＣ２との間に配置される。図１９に示されるＳＥＱ１が図１５に示されるのと大きく相違するのは、ＦＦ７の出力信号Ｑ３を選択的にＦＦ７に取り込むための選択回路（ＩＮＳＥＬ３）が設けられている点、及びストア信号（ＳＴＯＲＥ）とＦＦ７の出力信号とを選択的にＦＦ８に伝達するための回路がＩＮＳＥＬ１内に設けられている点である。上記ＩＮＳＥＬ３は、ＩＮＶ２６，ＩＮＶ２７，ＩＮＶ２８を含んで成る。上記ストア信号（ＳＴＯＲＥ）とＦＦ７の出力信号とを選択的にＦＦ８に伝達するための回路は、インバータＩＮＶ２２、及びクロックドインバータ２３を含んで成る。
【００９３】
図１９において、ＦＦ７はクロック信号ＣＬＫにより入力データＤ２が記憶されデータがＱ２として出力されるフリップフロップを表している。ここでＦＦ８は、バルーンラッチとして機能し、ＦＦ９に記憶されているデータをＳＴＯＲＥにより記憶することができ、リセット信号（ＲＥＳＴ）により、既に記憶しているデータをＦＦ７に書き込むことができる。通常ＦＦ７とＦＦ８は対として扱われ、本フリップフロップを含む論理回路がスタンバイ状態になった場合に、ＦＦ７を含むＰＤＡＲＥＡ１で囲まれる領域は電源が遮断され、ＦＦ８の部分のみに電源が供給される。これによって、ＰＤＡＲＥＡ１内の回路のリーク電流が低減されて論理回路のスタンバイ時の消費電力が低減できるとともに、フリップフロップにデータが記憶されているため、スタンバイ状態からの復帰時間が短くなる。ＥＲＲＯＲ２は、信号Ｑ２とＱ３のエクスクルーシブオアをとった結果である。ＩＮＳＥＬ３及びＩＮＳＥＬ１はＦＦ７及びＦＦ８に入力される信号を選択するための選択回路とされる。
【００９４】
本回路は、ＥＲＥＮ２がハイレベルとされることで、入力されるデータＤ２と、インバータ２段分遅延させた信号とのデータを比較することで、Ｄ２が入力されるパスの速度エラーを検出することが可能となる。
【００９５】
図２０及び図２１には、図１９に示される回路における主要部の動作タイミングが示される。
【００９６】
ＥＲＥＮがハイレベルにされることで、ハイレベルの信号が入力された場合、図１９において、ＩＮＳＥＬ１によってＦＦ８への入力がＤ２をインバータ２段分遅延させた信号に切り替わる。Ｄ２として入力される信号のパスの遅延時間にインバータ２段の遅延時間を加えた遅延時間がクロック信号ＣＬＫに周期して与えられる遅延時間よりも短い場合（図２０参照）には、ＦＦ９とＦＦ１０に同じデータが記憶される。これは図１６において、ＣＯＭＰ２に示される期間として表示されている。この期間ＥＲＥＮはハイレベルとなっており、さらにＦＦ７及びＦＦ８の出力であるＱ２とＱ３はともにＤＡＴ１２となっており、同じデータが記憶されていることがわかる。よって、この２つのデータのエクスクルーシブオアをとった結果としてローレベルのデータがＥＲＲＯＲ２として出力される。
【００９７】
また、Ｄ２として入力される信号のパスの遅延時間にインバータ２段の遅延時間を加えた遅延時間がクロック信号ＣＬＫの周期により与えられる遅延時間よりも長い場合（図２１参照）、ＦＦ８にはＦＦ７の１周期前のデータが記憶される。これは図２１において、ＣＯＭＰ２に示される期間として表示されている。この期間ＥＲＥＮ２は"Ｈ"となっており、さらにＦＦ９及びＦＦ１０の出力であるＱ４とＱ５がそれぞれＤＡＴ１２とＤＡＴ１１となっており、それぞれのＦＦは異なるデータを記憶している。よって、この２つのデータのエクスクルーシブオアをとった結果として、ハイレベルのデータがＥＲＲＯＲ２として出力される。この出力信号ＥＲＲＯＲ２は、図１における出力信号ＥＲＲＯＲと同等の状況で出力されるため、実施形態１の場合と同様に、回路の速度エラーを検出することができる。
【００９８】
また、本回路では、ＳＴＯＲＥ及びＲＥＳＴを用いてＦＦ７に記憶しているデータをＦＦ８に保持し、さらにそのデータをＦＦ７に戻すことが可能である。図１９において、ＳＴＯＲＥがハイレベルになると、ＦＦ９の出力であるＱ４がＦＦ１０の入力に接続され、次のクロック信号ＣＬＫの入力によりＦＦ７のデータがＦＦ８に書き込まれる。これの状態は、図２０のＳＴ１の前のサイクルのＦＦ７のデータＤＡＴ１３がＳＴ１のサイクルにおいてＦＦ８に書き込まれていることから確認できる。図２０においてＰＷＲＤＮ１の期間は、本発明の回路を含む論理回路がスタンバイ状態にあることを示しており、図１９中のＰＤＡＲＥＡ１内の領域では電源が遮断され、ＦＦ８の回路のみに電源が供給された状態となり、回路全体のリーク電流が低減され、消費電力が低い状態となる。本波形図では１サイクル分しか図示していないが、実際には１００サイクル以上電源を遮断するスタンバイ状態が続くことが多い。その後、スタンバイ状態から通常状態に復帰し、ＰＤＡＲＥＡ１内の回路に電源が供給された後には、ＲＥＳＴ信号が入力される。これにより、ＦＦ８に記憶されていたデータがＦＦ７に再び書き込まれる。
【００９９】
以上のように、本実施形態では、論理回路のスタンバイ時にはＦＦ８が低リーク状態でデータを保持する動作に使用され、通常動作状態では、ＦＦ８はＤ２までの論理パスの速度を測定することに使用されるため、フリップフロップの面積増加を抑えて、低リーク電流動作と速度調整動作を実行することが可能となる。つまり、本実施形態によれば、ＳＯＣおいて必要な速度性能を確保して、最低の電源電圧を設定することが可能となる。
【０１００】
本構成においても、切り替え回路（ＩＮＳＥＬ１）を用いることにより、別の機能（スタンバイ時のデータ保持機能）を有するＦＦをエラー判定にも用いることが可能となるため、面積オーバーヘッドを小さくすることが可能となる。これにより、ＳＯＣ等のクリティカルパスが多数存在する大規模ＬＳＩであっても面積を大きくすることなく動作電圧の最適が実現でき、上記課題（４）が解決できる。
【０１０１】
＜実施形態８＞
図２２には、上記ＳＯＣ（System On a Chip）における基板バイアス制御システムが示される。
【０１０２】
一般的に、ＭＯＳトランジスタのバックゲート電位である基板バイアスを制御すれば、トランジスタの性能を変化させることができ、ｎチャネル型ＭＯＳトランジスタの基板バイアスであるＶＢＮの値を低くすればするほど動作速度は遅くなるが、ＭＯＳトランジスタを流れるリーク電流は減少し消費電力が低減できる。またｐチャネル型ＭＯＳトランジスタの基板バイアスであるＶＢＰの値を低くすればするほど動作速度は遅くなるが、ＭＯＳトランジスタを流れるリーク電流は減少し消費電力が低減できる。この実施形態では、速度変化が測定され、所望の動作速度が得られる中で、最適な基板バイアスが決定される。
【０１０３】
図２２において、ＶＢＧＥＮ１はｎチャネル型ＭＯＳトランジスタの基板バイアスであるＶＢＮを発生する基板バイアス発生回路回路、ＶＢＧＥＮ２はｐチャネル型ＭＯＳトランジスタの基板バイアスであるＶＢＰを発生する基板バイアス発生回路、ＥＲＣＮＴ３は基板バイアスの制御を可能とする基板バイアス制御回路である。ＣＯＮＴＶＢは基板バイアス制御回路、ＭＥＭ３は基板バイアスの値を記憶するの記憶回路である。また、ＥＲＣＫ１は回路の速度性能を測定する回路であり、その構成は、図１に示されるのと同様とされる。ＣＨＶＢＮはｎチャネル型ＭＯＳトランジスタの基板バイアスであるＶＢＮを指定する信号、ＣＨＶＢＰはｐチャネル型ＭＯＳトランジスタの基板バイアスであるＶＢＰを指定する信号、ＥＲＲＯＵＴは速度性能を測定する回路の出力信号である。本回路では、速度性能を測定する回路から出力される信号ＥＲＲＯＵＴ信号によってＶＢＮの値を最低に、ＶＢＰの値を最高の値に制御し、要求される動作速度を満たしながら消費電力の低減を実現することが可能となる。
【０１０４】
図２３には、図２２に示される回路を用いて基板バイアスを設定するシーケンスが示される。
【０１０５】
図２３において、ステップ２３１では、ＶＢＮ及びＶＢＰの値を初期値に設定され、所定の基板バイアスを発生するよう、基板バイアス制御回路（ＣＯＮＴＶＢ）から基板バイアス発生回路（ＶＢＧＥＮ１，ＶＢＧＥＮ２）に制御信号ＣＨＶＢＮ及びＣＨＶＢＰが伝達されて、バイアス電圧が設定される。ステップ２３２では、現在の基板バイアスの値（制御情報）が図２２中のＭＥＭ３に記憶される。上記基板バイアス制御回路は、ＭＥＭ３内の基板バイアスの値（制御情報）に従ってバイアス電圧の制御を行う。ステップ２３３では、基板バイアスが変化される。すなわち、ＶＢＮの値を上記ステップ２３２で記憶した値から数１０ｍＶから数１００ｍＶ低下した値に設定するよう、基板バイアス制御回路（ＣＯＮＴＶＢ）から基板バイアス発生回路（ＶＢＧＥＮ１）に信号を伝達し、ＶＢＮを設定する。同時に、ＶＢＰの値を上記ステップ２３２で記憶した値から数１０ｍＶから数１００ｍＶ上昇した値に設定するよう、基板バイアス制御回路（ＣＯＮＴＶＢ）から基板バイアス発生回路（ＶＢＧＥＮ２）に信号を伝達し、ＶＢＰを設定する。ステップ２３４では、ＥＲＲＯＵＴから出力されるデータを比較する。ハイレベルが出力された場合には、ステップ２３５の動作が行われる。またローレベルが出力された場合には、ステップ２３２の動作が行われる。ステップ２３５では、基板バイアス値ＶＢＮ及びＶＢＰをＭＥＭ３に記憶している値に設定される。ステップ２３１から開始してステップ２３５までの動作を実行することで回路が所定の動作速度で動作するという条件の下、消費電力を最小にすることが可能となる。
【０１０６】
ＳＯＣでは、周波数と電源電圧を変化させて、必要とする動作性能を確保すると同時に電源電圧を低下させることで消費電力を低減しようとするＦＶ制御という技術が一般に知られている。本回路技術はＦＶ制御と組み合わせるとさらに効果があり、実施形態５の回路と組み合わせることで、さらにＳＯＣの低消費電力化が可能となる。
【０１０７】
以上のように、この実施形態によれば、ＬＳＩにおいて必要な速度性能を確保して、最低の電源電圧を設定することが可能となる。
【０１０８】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１０９】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＳＯＣに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体装置に広く適用することができる。
【図面の簡単な説明】
【０１１０】
【図１】本発明にかかる半導体装置の一例とされるＳＯＣにおける主要部の構成例回路図である。
【図２】図１に示される回路における主要部の動作タイミング図である。
【図３】図１に示される回路における主要部の動作タイミング図である。
【図４】本発明にかかる半導体装置の一例とされるＳＯＣにおける主要部の構成例ブロック図である。
【図５】図４に示される構成により電源を設定するシーケンスを示すフローチャートである。
【図６】図１に示される回路における主要部の構成例回路図である。
【図７】図６に示される回路における主要部の動作タイミング図である。
【図８】本発明にかかる半導体装置の一例とされるＳＯＣの構成例ブロック図である。
【図９】上記ＳＯＣの別の構成例ブロック図である。
【図１０】上記ＳＯＣにおける主要部の別の構成例ブロック図である。
【図１１】上記ＳＯＣにおける主要部の別の構成例ブロック図である。
【図１２】図１１に示される構成における主要部の動作タイミングである。
【図１３】本発明にかかる半導体装置の一例とされるＳＯＣにおける主要部の別の構成例ブロック図である。
【図１４】図１３に示される構成のシーケンスを示すフローチャートである。
【図１５】図２４における主要部の詳細な構成例を示す回路図である。
【図１６】図１５に示される回路における主要部の動作タイミング図である。
【図１７】図１５に示される回路における主要部の動作タイミング図である。
【図１８】図１５に示される回路において電源電圧を設定するシーケンスを示すフローチャートである。
【図１９】上記ＳＯＣにおける主要部の別の構成例回路図である。
【図２０】図１９に示される回路における主要部の動作タイミング図である。
【図２１】図１９に示される回路における主要部の動作タイミング図である。
【図２２】上記ＳＯＣにおける基板バイアス制御システムの構成例ブロック図である。
【図２３】図２２に示される回路を用いて基板バイアスを設定するシーケンスを示すフローチャートである。
【図２４】上記ＳＯＣにおける主要部の別の構成例回路図である。
【符号の説明】
【０１１１】
ＦＦ１〜ＦＦ１１  フリップフロップ
ＬＯＧＩＣ１，ＬＯＧＩＣ２  組み合わせ論理回路
ＣＬＫ  クロック信号
ＥＸＯＲ１〜ＥＸＯＲ２  エクスクルーシブオア
ＤＥＬＡＹ１，ＤＥＬＡＹ２  遅延回路
ＶＧＥＮ１  電圧発生回路
ＶＤＤ  高電位側電源
ＶＳＳ  低電位側電源
ＣＯＮＴＶ  電源制御回路
ＭＥＭ１  記憶回路
ＳＥＱ１  速度性能測定回路
ＳＥＱ２  エラー判定回路
ＳＥＱ３  速度性能測定結果出力部
ＯＲＡＮＤ１  論理回路
ＣＰＵ・ＣＰＵ１〜ＣＰＵ２  中央処理装置
ＰＥＲＩ１〜ＰＥＲＩ２  アクセラレータ
ＳＲＡＭ１  メモリブロック
ＲＭ  リソースマネージャ
ＰＬＬ  クロック発生回路
ＣＯＮＴＦ  動作周波数制御回路
ＩＮＳＥＬ１  選択回路
ＶＢＧＥＮ１〜ＶＢＧＥＮ２  基板バイアス発生回路
ＣＨＶＢＮ・ＣＨＶＢＰ  基板バイアス制御信号
ＣＯＮＴＶＢ  基板バイアス制御回路
【図１】
2009147221.tif 000003
【図２】
2009147221.tif 000004
【図３】
2009147221.tif 000005
【図４】
2009147221.tif 000006
【図５】
2009147221.tif 000007
【図６】
2009147221.tif 000008
【図７】
2009147221.tif 000009
【図８】
2009147221.tif 000010
【図９】
2009147221.tif 000011
【図１０】
2009147221.tif 000012
【図１１】
2009147221.tif 000013
【図１２】
2009147221.tif 000014
【図１３】
2009147221.tif 000015
【図１４】
2009147221.tif 000016
【図１５】
2009147221.tif 000017
【図１６】
2009147221.tif 000018
【図１７】
2009147221.tif 000019
【図１８】
2009147221.tif 000020
【図１９】
2009147221.tif 000021
【図２０】
2009147221.tif 000022
【図２１】
2009147221.tif 000023
【図２２】
2009147221.tif 000024
【図２３】
2009147221.tif 000025
【図２４】
2009147221.tif 000026