(57)【要約】【課題】リテンションレジスタのサイズを容易に最小にすることができる設計装置を提供する。【解決手段】本実施の形態の設計装置は、ＣＤＦＧ生成部と、スケジューリング部と、バインディング部と、リテンションレジスタ選択部と、制御回路生成部と、ＲＴＬ記述生成部とを有する。バインディング部は、スケジューリング部でスケジューリングされたＣＤＦＧにハードウエア素子を割り付けたデータパス回路を生成する。リテンションレジスタ選択部は、スケジューリングされたＣＤＦＧからラッチのビット数が最小となる制御ステップをリテンション制御ステップとして検出するとともに、検出されたリテンション制御ステップに割り付けられたレジスタをリテンションレジスタとして選択する。制御回路生成部は、電源遮断用の信号が有効になった際に、リテンション制御ステップまで状態を遷移させる制御回路を生成する。【選択図】図２
2012103918.tif 000002
【特許請求の範囲】
【請求項１】
動作記述の記述解析結果に基づいて、コントロールデータフローグラフを生成するコントロールデータフローグラフ生成部と、
前記コントロールデータフローグラフに演算を実行する複数の制御ステップをスケジューリングするスケジューリング部と、
前記スケジューリングされたコントロールデータフローグラフにハードウエア素子を割り付けたデータパス回路を生成するバインディング部と、
前記スケジューリングされたコントロールデータフローグラフからラッチのビット数が最小となる制御ステップをリテンション制御ステップとして検出するとともに、検出された前記リテンション制御ステップに割り付けられたレジスタをリテンションレジスタとして選択するリテンションレジスタ選択部と、
電源遮断用の信号が有効になった際に、前記リテンション制御ステップまで状態を遷移させる制御回路を生成する制御回路生成部と、
前記バインディング部で生成された前記データパス回路及び前記制御回路生成部で生成された前記制御回路の情報に基づいて、ＲＴＬ記述を生成するＲＴＬ記述生成部と、
を有することを特徴とする半導体集積回路の設計装置。
【請求項２】
前記リテンションレジスタ選択部は、前記ラッチのビット数が最小となる制御ステップが複数存在した場合、ステップ番号が最も小さい制御ステップを前記リテンション制御ステップとして検出することを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項３】
動作記述の記述解析結果に基づいて、コントロールデータフローグラフを生成し、
前記コントロールデータフローグラフに演算を実行する複数の制御ステップをスケジューリングし、
前記スケジューリングされたコントロールデータフローグラフにハードウエア素子を割り付けたデータパス回路を生成し、
前記スケジューリングされたコントロールデータフローグラフからラッチのビット数が最小となる制御ステップをリテンション制御ステップとして検出するとともに、検出された前記リテンション制御ステップに割り付けられたレジスタをリテンションレジスタとして選択し、
電源遮断用の信号が有効になった際に、前記リテンション制御ステップまで状態を遷移させる制御回路を生成し、
前記生成された前記データパス回路及び前記生成された前記制御回路の情報に基づいて、ＲＴＬ記述を生成することを特徴とする半導体集積回路の設計方法。
【請求項４】
動作記述の記述解析結果に基づいて、コントロールデータフローグラフを生成するステップと、
前記コントロールデータフローグラフに演算を実行する複数の制御ステップをスケジューリングするステップと、
前記スケジューリングされたコントロールデータフローグラフにハードウエア素子を割り付けたデータパス回路を生成するステップと、
前記スケジューリングされたコントロールデータフローグラフからラッチのビット数が最小となる制御ステップをリテンション制御ステップとして検出するとともに、検出された前記リテンション制御ステップに割り付けられたレジスタをリテンションレジスタとして選択するステップと、
電源遮断用の信号が有効になった際に、前記リテンション制御ステップまで状態を遷移させる制御回路を生成するステップと、
前記生成された前記データパス回路及び前記生成された前記制御回路の情報に基づいて、ＲＴＬ記述を生成するステップと、
をコンピュータに実行させることを特徴とする半導体集積回路の設計プログラム。
【請求項５】
所定の処理を実行するデータパス回路と、
前記データパス回路の状態を遷移させるデータを出力する状態レジスタを有し、電源遮断用の信号が有効になった際に前記データパス回路の状態をリテンション状態まで遷移させるとともに、前記データパス回路の状態が前記リテンション状態まで遷移した場合、前記状態レジスタから出力されるデータを保持する制御回路と、
を有することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、半導体集積回路の設計装置、半導体集積回路の設計方法、半導体集積回路の設計プログラム及び半導体集積回路に関する。
【背景技術】
【０００２】
近年、半導体集積回路は、ＣＭＯＳトランジスタの微細化に伴い電源電圧及び閾電圧が低下するとともに、ゲート酸化膜が薄くなり、リーク電流が増加するようになっている。例えば、４０ｎｍデザインルールのＣＭＯＳトランジスタ回路では、スイッチングによる消費電力と、リーク電流による消費電力とが略同じである。ＣＭＯＳトランジスタ回路全体の消費電力を削減するには、クロックゲーティングのようにフリップフロップのクロックをゲートしてトランジスタのスイッチングを減らして消費電力を削減する方法のみでは不十分で、リーク電流による消費電力を削減する技術が重要となる。
【０００３】
リーク電流による消費電力を削減するため、待機時に動作していない回路の電源を遮断するという有力な技術がある。しかしながら、ＣＰＵ、コントローラ及びストリームデータを処理している回路等は、電源を復帰した際に、回路の状態を電源の遮断前の元の状態に戻し、処理を直ちに再開させる必要がある。このような電源の復帰に関する技術にはいくつか方法がある。
【０００４】
１つ目は、対象とする回路全体の電源を遮断し、電源の復帰時は、リセットシーケンスから再開する方法である。２つ目は、電源の遮断前にレジスタの値をスキャンチェーンを利用して電源が投入されている外部のＳＲＡＭに退避させ、電源の復帰時は、そのスキャンチェーンを用いて退避した値を元のレジスタに再ロードする方法である。３つ目は、通常のフリッププロップ及びリテンションフリップフロップを有するリテンションレジスタを用いる方法である。このリテンションレジスタを用いる方法は、電源の遮断時に通常のフリッププロップの値を１対１で対応するリテンションフリップフロップに退避し、電源の復帰時はリテンションフリップフロップから通常のフリッププロップに値を再ロードする。
【０００５】
ところが、リテンションレジスタを用いる方法は、電源の遮断時に待機時のリテンション電源を投入し、リテンションフリッププロップで通常のフリッププロップの値を保持する。このように、リテンションレジスタは、通常のフリッププロップ及びリテンションフリッププロップを有する必要があり、リテンションレジスタの回路サイズは、通常のフリップフロップのみを有する通常のレジスタに比べ、約２倍の大きさになる。そのため、全てのレジスタをリテンションレジスタに置き換えると回路サイズが大きくなるという問題があった。
【０００６】
そこで、設計者は、ハードウエア回路のブロック図またはハードウエア記述言語（ＨＤＬ）で記述されたレジスタ転送レベル（ＲＴＬ）の記述を解析し、どのレジスタをリテンションレジスタにするかを手動で選定していた。
【０００７】
しかしながら、半導体集積回路は、例えば、数千個のレジスタを有しているため、設計者がどのレジスタをリテンションレジスタにするかを手動で決定する場合、リテンションレジスタのサイズ、即ち、数量を最小にすることができないという問題があった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−１０２６１９号公報
【特許文献２】米国特許第７７３９６２９号明細書
【非特許文献】
【０００９】
【非特許文献１】M.Keating, D.Flynn, R.Aitken, A.Gibbons, K.Shi著、“Low Power Methodology Manual, For System-on-Chip Design”、Springer出版、2007年発行、ｐ.50−59
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本実施の形態では、リテンションレジスタのサイズを容易に最小にすることができる設計装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本実施の形態の設計装置は、ＣＤＦＧ生成部と、スケジューリング部と、バインディング部と、リテンションレジスタ選択部と、制御回路生成部と、ＲＴＬ記述生成部とを有する。ＣＤＦＧ生成部は、動作記述の記述解析結果に基づいて、ＣＤＦＧを生成する。スケジューリング部は、ＣＤＦＧに演算を実行する複数の制御ステップをスケジューリングする。バインディング部は、スケジューリングされたＣＤＦＧにハードウエア素子を割り付けたデータパス回路を生成する。リテンションレジスタ選択部は、スケジューリングされたＣＤＦＧからラッチのビット数が最小となる制御ステップをリテンション制御ステップとして検出するとともに、検出されたリテンション制御ステップに割り付けられたレジスタをリテンションレジスタとして選択する。制御回路生成部は、電源遮断用の信号が有効になった際に、リテンション制御ステップまで状態を遷移させる制御回路を生成する。ＲＴＬ記述生成部は、バインディング部で生成されたデータパス回路及び制御回路生成部で生成された制御回路の情報に基づいて、ＲＴＬ記述を生成する。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係る情報処理システムの構成を示す図である。
【図２】第１の実施の形態に係る設計装置の構成を示す図である。
【図３】SystemCにより記述された動作記述の例を示す図である。
【図４】ＣＤＦＧ生成部により生成されたＣＤＦＧの例を示す図である。
【図５】スケジューリング後のＣＤＦＧの例を示す図である。
【図６】バインディング部により生成されたデータパス回路の例を示す図である。
【図７】制御回路生成部により生成される制御回路の例を示す図である。
【図８】スリープ状態遷移制御回路生成部により生成される制御回路の例を示す図である。
【図９】低消費電力情報生成部で生成される低消費電力情報の例を示す図である。
【図１０】ＲＴＬ記述生成部により生成されるＲＴＬ記述の例を示す図である。
【図１１】設計装置の設計処理の流れの例を示すフローチャートである。
【図１２】第２の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図１３】データパス回路のうちレジスタ及び電源制御に関わる部分を拡大した部分拡大図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【００１４】
（第１の実施の形態）
まず、図１に基づき、第１の実施の形態に係る情報処理システムの構成について説明する。
【００１５】
図１は、第１の実施の形態に係る情報処理システムの構成を示す図である。
【００１６】
図１に示すように、情報処理システム１００は、本体装置１０１と、各種データを記憶する記憶装置１０２と、各種データを表示する表示装置１０３とを有して構成されている。本体装置１０１は、パーソナルコンピュータ等のコンピュータ装置本体であり、ＣＰＵ１０１ａ、図示しない主メモリなどを搭載している。また、本体装置１０１には、入力装置として、キーボード１０４及びマウス１０５が接続されている。本体装置１０１は、これらの入力装置からの指示に基づいて、各種プログラムを実行する。
【００１７】
記憶装置１０２には、Ｃ言語またはSystemC等により記述された動作記述１０６と、この動作記述１０６から生成される低消費電力情報１０７及びＲＴＬ記述１０８と、動作記述１０６から低消費電力情報１０７及びＲＴＬ記述１０８を生成する機能のプログラムを有する設計プログラム１０９とが記憶されている。
【００１８】
ユーザは、キーボード１０４及びマウス１０５を用い、Ｃ言語またはSystemC等により記述された動作記述１０６を入力とし、設計プログラム１０９を本体装置１０１上において実行することにより、低消費電力情報１０７及びＲＴＬ記述１０８を得ることができる。このように、設計プログラム１０９を実行可能な本体装置１０１が、後述する本実施の形態の設計装置１を構成する。なお、動作記述１０６、低消費電力情報１０７及びＲＴＬ記述１０８は、記憶装置１０２に記憶されるが、他の記憶媒体に記憶されてもよい。
【００１９】
ここで、このように構成される設計装置１の構成について説明する。
【００２０】
図２は、第１の実施の形態に係る設計装置の構成を示す図である。
【００２１】
図２に示すように、設計装置１は、動作記述解析部１１と、コントロールデータフローグラフ（以下、ＣＤＦＧという）生成部１２と、スケジューリング部１３と、バインディング部１４と、リテンションレジスタ選択部１５と、制御回路生成部１６と、低消費電力情報生成部１７と、RTL記述生成部１８とを有して構成されている。本実施の形態では、制御回路生成部１６は、スリープ状態遷移制御回路生成部１６ａを有して構成される。
【００２２】
図３は、SystemCにより記述された動作記述の例を示す図である。
【００２３】
動作記述解析部１１には、例えば、図３に示すSystemCにより記述された動作記述１０６が入力される。動作記述解析部１１は、SystemCにより記述された動作記述１０６を読み取り、SystemCの記述として誤りがないかの記述解析を行うとともに、高位合成可能かどうかを解析し、設計装置１の内部の表現形式に変換する。変換された設計装置１の内部の表現形式（以下、内部表現という）は、上述した図示しない主メモリまたは記憶装置１０２に所定のファイル形式で一時的に格納される。
【００２４】
ＣＤＦＧ生成部１２は、この内部表現からif、switch等の条件文、for、while、do-while等のループ文等の制御を読み取るともに、四則演算、比較演算、論理演算及び代入文を解析して、ＣＤＦＧを生成する。
【００２５】
図４は、ＣＤＦＧ生成部により生成されたＣＤＦＧの例を示す図である。
【００２６】
図４に示すＣＤＦＧ１１０の例では、ａ〜ｄが入力端子、ｘ〜ｚが出力端子を示している。このＣＤＦＧ１１０は、演算子をノードとし、入力端子ａ〜ｄと演算子との間、演算子と演算子の間及び演算子と出力端子ｘ〜ｙとの間の接続をエッジとするデータフローグラフである。なお、本実施の形態では説明が不要なため、図４において、コントロールグラフを省略している。このＣＤＦＧ１１０の情報は、設計装置１の内部表現として主メモリまたは記憶装置１０２に所定のファイル形式で一時的に格納される。
【００２７】
スケジューリング部１３は、ＣＤＦＧ１１０を取り込んで、ＣＤＦＧ１１０の演算をいずれのステップで実行するかをスケジューリングする。ここでは、これらのステップを制御ステップと呼ぶ。
【００２８】
図５は、スケジューリング後のＣＤＦＧの例を示す図である。図５に示すスケジューリング後のＣＤＦＧ１１１において、破線と破線との間が制御ステップを示し、ＣＤＦＧ１１１は、制御ステップＣＳｎ〜ＣＳｎ＋３を有する。
【００２９】
これらの制御ステップＣＳｎ〜ＣＳｎ＋３は、それぞれクロック信号の１サイクルの動作を示すため、制御ステップ間のデータの受け渡しにはラッチが必要となる。そのため、図５に示すように、ＣＤＦＧ１１１は、ラッチＬ１〜Ｌ１４を有する。なお、ＣＤＦＧ１１１は、ハードウエア素子の割り付けが行われていないため、ハードウエアの素子に対応するレジスタではなく、ラッチと呼んでいる。このスケジューリング後のＣＤＦＧ１１１の情報も設計装置１の内部表現として主メモリまたは記憶装置１０２に所定のファイル形式で一時的に格納される。
【００３０】
バインディング部１４は、スケジューリングされたＣＤＦＧ１１１にハードウエア素子を割り付け、加算器、減算器等の演算器、マルチプレクサ及びレジスタ等を用いたデータパス回路を生成する。
【００３１】
図６は、バインディング部により生成されたデータパス回路の例を示す図である。図６に示すように、データパス回路１１２は、複数のマルチプレクサ（以下、ＭＵＸという）１１３ａ〜１１３ｈと、レジスタＲ１〜Ｒ４と、加算器１１４と、減算器１１５とを有して構成される。
【００３２】
バインディング部１４は、スケジューリングされたＣＤＦＧ１１１にハードウエア素子を割り付けるときに、制御ステップＣＳｎ〜ＣＳｎ＋３の各ラッチＬ１〜Ｌ１４がレジスタＲ１〜Ｒ４のいずれに割り付けられているかを示す対応関係情報を保持する。これらの対応関係情報及びデータパス回路１１２の情報も設計装置１の内部表現として主メモリまたは記憶装置１０２に所定のファイル形式で一時的に格納される。
【００３３】
リテンションレジスタ選択部１５は、スケジューリング後の制御ステップ間に必要となるラッチのビット数が最小の制御ステップを検出する。
【００３４】
リテンションレジスタ選択部１５は、制御ステップＣＳｎから順に必要なラッチのビット数を計算する。なお、本実施の形態では、入力端子ａ〜ｄから入力されるデータを１６ビット、加算及び減算後のデータも１６ビットとする。制御ステップＣＳｎは、１６ビットのデータを保持するラッチがラッチＬ１〜Ｌ４の４つ必要となるため、制御ステップＣＳｎの必要なラッチのビット数は６４ビットになる。同様に、制御ステップＣＳｎ＋１の必要なラッチのビット数は６４ビット、制御ステップＣＳｎ＋２の必要なラッチのビット数は４８ビット、制御ステップＣＳｎ＋３の必要なラッチのビット数は４８ビットになる。
【００３５】
このため、制御ステップＣＳｎ＋２とＣＳｎ＋３とがラッチのビット数が最小の制御ステップとなり、制御ステップＣＳｎ＋２とＣＳｎ＋３とがリテンション候補の制御ステップとなる。
【００３６】
リテンションレジスタ選択部１５は、このようにラッチのビット数が最小の制御ステップが複数存在する場合、ステップ番号が最も小さい制御ステップをリテンション対象となるリテンション制御ステップとして検出する。そのため、本実施の形態では、リテンションレジスタ選択部１５は、制御ステップＣＳｎ＋２をリテンション制御ステップとして検出する。なお、本実施の形態では、ステップ番号が最も小さい制御ステップをリテンション制御ステップとして検出しているが、これに限定されることなく、ラッチのビット数が最小であれば、２番目以降の制御ステップをリテンション制御ステップとして検出してもよい。
【００３７】
次に、リテンションレジスタ選択部１５は、バインディング部１４で生成された対応関係情報に基づき、制御ステップＣＳｎ＋２のラッチＬ９〜Ｌ１１がデータパス回路１１２のどのレジスタに対応するかを検出する。図５及び図６の例では、制御ステップＣＳｎ＋２のラッチＬ９がデータパス回路１１２のレジスタＲ４に、ラッチＬ１０がレジスタＲ１に、ラッチＬ１１がレジスタＲ２に対応する。したがって、リテンションレジスタ選択部１５は、レジスタＲ１、Ｒ２及びＲ４をリテンションレジスタとして選択する。
【００３８】
これにより、リテンション制御ステップである制御ステップＣＳｎ＋２では、レジスタＲ１、Ｒ２、Ｒ４のみが意味ある値を保持し、Ｒ３の値は参照されないことが分かる。そのため、制御ステップＣＳｎ＋２に対応する状態（以下、リテンション状態ＲＳともいう）では、電源が遮断された際に、レジスタＲ１、Ｒ２、Ｒ４の値のみを保持すればよい。
【００３９】
制御回路生成部１６は、データパス回路１１２の演算を制御ステップのとおり実行するための制御回路を生成する。
【００４０】
図７は、制御回路生成部により生成される制御回路の例を示す図である。
【００４１】
図７に示す制御回路１２０は、有限状態機械（ＦＳＭ）であり、状態遷移論理回路１２１と、状態レジスタ１２２とを有して構成される。
【００４２】
状態遷移論理回路１２１は、ある状態から次の状態に遷移させる制御信号を状態レジスタ１２２に出力する。状態レジスタ１２２は、この制御信号をクロック信号の立ち上がりで取り込み、データパス回路１１２のマルチプレクサ１１３ａ〜１１３ｈに出力する。そして、状態レジスタ１２２からの制御信号に基づき、データパス回路１１２のマルチプレクサ１１３ａ〜１１３ｈが制御される。これにより、例えば、入力端子ａとレジスタＲ１との間及びレジスタＲ１と加算器１１４との間等で所定のデータパスが選択される。
【００４３】
スリープ状態遷移制御回路生成部１６ａは、制御回路１２０の外部から入力される電源遮断用のスリープ信号（sleep_on）が有効（本実施の形態では１とする）の間、動作中のある状態からリテンション状態ＲＳ（本実施例ではリテンション制御ステップＣＳｎ＋２を示す状態）まで状態を遷移させる回路を生成する。スリープ状態遷移制御回路生成部１６ａは、生成した回路を、制御回路生成部１６が生成した通常動作時の制御回路１２０に付加して最終的な制御回路１２０を生成する。
【００４４】
図８は、スリープ状態遷移制御回路生成部により生成される制御回路の例を示す図である。
【００４５】
制御回路１２０は、状態遷移論理回路１２１及び状態レジスタ１２２に加え、比較器１２３と、リテンション状態値１２４と、ＡＮＤ回路１２５と、ＭＵＸ１２６と有して構成される。
【００４６】
比較器１２３の一方の端子には、状態レジスタ１２２からの制御信号が供給される。比較器１２３の他方の端子には、リテンション状態ＲＳとなるリテンション状態値１２４が供給される。比較器１２３は、制御信号とリテンション状態値１２４とを比較して、一致した場合、“１”をＡＮＤ回路１２５の一方の端子に出力する。
【００４７】
また、ＡＮＤ回路１２５の他方の端子には、スリープ信号（sleep_on）が供給される。ＡＮＤ回路１２５は、スリープ信号（sleep_on）が“１”で有効、かつ、状態レジスタ１２２の値がリテンション状態値１２４と一致した、即ち、比較器１２３が“１”を出力した場合に、ＭＵＸ１２６に選択信号として“１”を出力する。一方、ＡＮＤ回路１２５は、スリープ信号（sleep_on）が“０”で無効、あるいは、状態レジスタ１２２の値がリテンション状態値１２４と一致しない、即ち、比較器１２３が“０”を出力した場合に、ＭＵＸ１２６に選択信号として“０”を出力する。
【００４８】
ＭＵＸ１２６には、状態遷移論理回路１２１からの制御信号と、状態レジスタ１２２からのフィードバック信号が入力される。ＭＵＸ１２６は、選択信号が“０”の場合、状態遷移論理回路１２１からの制御信号を選択して状態レジスタ１２２に出力し、選択信号が“１”の場合、状態レジスタ１２２からのフィードバック信号を選択して状態レジスタ１２２に出力する。
【００４９】
このように、制御回路１２０は、スリープ信号（sleep_on）が有効、かつ、リテンション状態ＲＳでない場合、状態を遷移させ、スリープ信号（sleep_on）が有効、かつ、リテンション状態ＲＳになった場合、状態レジスタ１２２から出力されるデータを保持する回路である。なお、この制御回路１２０の情報も設計装置１の内部表現として主メモリまたは記憶装置１０２に所定のファイル形式で一時的に格納される。
【００５０】
低消費電力情報生成部１７は、電源及びグランドの情報と、リテンションレジスタとして選択されたレジスタＲ１、Ｒ２及びＲ４の情報と、制御回路生成部１６が生成したリテンション状態ＲＳとなる状態レジスタ１２２の情報とをリテンション対象とする低消費電力情報１０７として生成する。
【００５１】
図９は、低消費電力情報生成部で生成される低消費電力情報の例を示す図である。図９に示すように、低消費電力情報１０７には、電源及びグランドの情報１０７ａと、リテンションレジスタとして選択されたレジスタＲ１、Ｒ２及びＲ４の情報１０７ｂと、リテンション状態ＲＳとなる状態レジスタ１２２の情報１０７ｃとが格納される。この低消費電力情報１０７は、所定のファイル形式で記憶装置１０２に記憶される。
【００５２】
ＲＴＬ記述生成部１８は、生成されたデータパス回路１１２の情報と制御回路１２０の情報と基づき、Verilog またはＶＨＤＬで記述されたＲＴＬ記述１０８を生成する。
【００５３】
図１０は、ＲＴＬ記述生成部により生成されるＲＴＬ記述の例を示す図である。このＲＴＬ記述１０８は、所定のファイル形式で記憶装置１０２に記憶される。
【００５４】
ここで、このように構成される設計装置１の設計処理について説明する。
【００５５】
図１１は、設計装置の設計処理の流れの例を示すフローチャートである。
【００５６】
まず、動作記述１０６の記述解析が行われ、ＣＤＦＧ１１０が生成される（ステップＳ１）。ＣＤＦＧ１１０の演算をどのステップで実行するかがスケジューリングされ（ステップＳ２）、スケジューリング後のＣＤＦＧ１１１を行うデータパス回路１１２が生成される（ステップＳ３）。次に、ラッチビット数が最小の制御ステップが検出され（ステップＳ４）、ラッチビット数が最小の制御ステップが複数あるか否かが判定される（ステップＳ５）。ラッチビット数が最小の制御ステップが複数ある場合、ＹＥＳとなり、ステップ番号が最も小さい制御ステップがリテンション制御ステップに選択される（ステップＳ６）。ラッチビット数が最小の制御ステップが複数ない場合、ＮＯとなり、検出した制御ステップがリテンション制御ステップに選択される（ステップＳ７）。リテンション状態まで遷移する制御回路１２０が生成され（ステップＳ８）、低消費電力情報１０７が生成される（ステップＳ９）。最後に、ＲＴＬ記述１０８が生成され（ステップＳ１０）、処理を終了する。
【００５７】
以上のように、設計装置１は、リテンションレジスタ選択部１５によりリテンションレジスタのビット数が最小となる、即ち、リテンションレジスタの個数が最小になるように、リテンション対象となるレジスタを選択している。このように、設計装置１によりリテンションレジスタのビット数が最小となるように、リテンション対象となるレジスタを自動的に選択しているため、リテンションリテンションレジスタのサイズを最小にすることができる。
【００５８】
よって、本実施の形態の設計装置によれば、リテンションレジスタのサイズを容易に最小にすることができる。
【００５９】
また、従来では、設計者がどのレジスタをリテンションレジスタにするかを手動で選定していた。また、設計者は、ＲＴＬシミュレーションを繰り返しながらリテンションレジスタの選定に間違いないか、及び、電源の遮断時及び復帰時に所望の動作をするか否かを繰り返し検証する必要があり、設計検証期間が増大していた。
【００６０】
これに対し、本実施の形態の設計装置１は、リテンションレジスタのビット数が最小となるように、リテンション対象となるレジスタを自動的に選択しているため、従来に比べ、設計検証期間を短縮させることもできる。
【００６１】
（第２の実施の形態）
次に、第２の実施の形態について説明する。
【００６２】
図１２は、第２の実施の形態に係る半導体集積回路の構成を示すブロック図である。なお、図１２において、図６及び図８と同様の構成については、同一の符号を付して説明を省略する。
【００６３】
図１２の半導体集積回路２００は、第１の実施の形態の低消費電力情報１０７とＲＴＬ記述１０８とを図示しない論理合成装置で論理合成して得られる回路であり、データパス回路１１２と、制御回路１２０とを有して構成されている。
【００６４】
データパス回路１１２及び制御回路１２０は、第１の実施の形態と同様の構成であり、制御回路１２０は、スリープ信号（sleep_on）が有効になった際に、所定の処理を実行するデータパス回路１１２の状態をリテンション状態ＲＳまで遷移させるとともに、リテンション状態ＲＳまで遷移した場合に、状態レジスタ１２２から出力されるデータを保持する回路である。
【００６５】
次に、電源の遮断及び復帰時のレジスタＲ１〜Ｒ４に対する電源の制御について説明する。
【００６６】
図１３は、データパス回路のうちレジスタ及びレジスタの電源を制御する電源制御部に関わる部分を拡大した部分拡大図である。
【００６７】
図１３に示す電源制御部は、インバータ２０１と、Ｐ型ＭＯＳトランジスタ２０２及び２０３と、リテンション時の電源であるＲＶＤＤ２０４と、通常時の電源であるＮＶＤＤ２０５と、レジスタＲ１〜Ｒ４とを有して構成されている。
【００６８】
上述したように、本実施の形態では、レジスタＲ１、Ｒ２及びＲ４がリテンションレジスタとなっている。そのため、レジスタＲ１、Ｒ２及びＲ４は、それぞれ通常時にデータ保持するフリップフロップ（以下、ＦＦという）２０６、２０８及び２１１と、リテンション時にデータを保持するリテンションＦＦ２０７、２０９及び２１２を有する。また、レジスタＲ３は、通常のレジスタであり、通常時にデータ保持するＦＦ３１０を有する。
【００６９】
通常時には、電源制御信号（pg_en）として“０”がＰ型ＭＯＳトランジスタ２０３のゲートに供給されるとともに、インバータ２０１により反転された電源制御信号（pg_en）がＰ型ＭＯＳトランジスタ２０２のゲートに供給される。これにより、Ｐ型ＭＯＳトランジスタ２０２はＯＦＦし、Ｐ型ＭＯＳトランジスタ２０３はＯＮする。この結果、通常時の電源であるＮＶＤＤ２０５からの電源がＦＦ２０６、２０８、２１０及び２１１に供給される。
【００７０】
電源の遮断時に制御回路１２０の制御によりリテンション状態ＲＳになると、ＦＦ２０６、２０８及び２１１が保持しているデータは、それぞれリテンションＦＦ２０７、２０９及び２１２にロードされる。また、電源の遮断時に制御回路１２０の制御によりリテンション状態ＲＳになると、電源制御信号（pg_en）は、“０”から“１”に切り換わる。これにより、Ｐ型ＭＯＳトランジスタ２０２はＯＮし、Ｐ型ＭＯＳトランジスタ２０３はＯＦＦする。この結果、リテンション時の電源であるＲＶＤＤ２０４からリテンションＦＦ２０７、２０９及び２１２に電源が供給される。これにより、リテンションＦＦ２０７、２０９及び２１２は、それぞれ電源の遮断時にＦＦ２０６、２０８及び２１１が保持していたデータを保持することができる。
【００７１】
電源の復帰時は、リテンションＦＦ２０７、２０９及び２１２が保持しているデータをそれぞれＦＦ２０６、２０８及び２１１に再ロードするとともに、電源制御信号（pg_en）が“１”から“０”に切り換わる。これにより、Ｐ型ＭＯＳトランジスタ２０２はＯＦＦし、Ｐ型ＭＯＳトランジスタ２０３はＯＮする。この結果、ＦＦ２０６、２０８及び２１１は、それぞれリテンションＦＦ２０７、２０９及び２１２に保持されている電源の遮断時のデータを保持することができ、電源の遮断時の状態に戻ることができる。
【００７２】
従来では、設計者がどのレジスタをリテンションレジスタにするかを手動で選定していたため、半導体集積回路のリテンションレジスタのサイズを最小にすることは困難であった。
【００７３】
これに対し、本実施の形態の半導体集積回路２００は、リテンションレジスタのサイズが最小になるように自動的に設計されたＲＴＬ記述２０８から生成されるため、従来の半導体集積回路に比べ、回路サイズを小さくすることができる。
【００７４】
また、半導体集積回路２００は、リテンションレジスタのサイズを小さくすることができるので、従来の半導体集積回路に比べ、電源遮断時のリーク電流による消費電力も削減することができる。
【００７５】
なお、以上説明した動作を実行する設計プログラムは、コンピュータプログラム製品として、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬媒体や、ハードディスク等の記憶媒体に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本実施の形態の設計装置を実現することができる。
【００７６】
また、本明細書におけるフローチャート中の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【００７７】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【００７８】
１…設計装置、１１…動作記述解析部、１２…ＣＤＦＧ生成部、１３…スケジューリング部、１４…バインディング部、１５…リテンションレジスタ選択部、１６…制御回路生成部、１６ａ…スリープ状態遷移制御回路生成部、１７…低消費電力情報生成部、１８…ＲＴＬ記述生成部、１００…情報処理システム、１０１…本体装置、１０２…記憶装置、１０３…表示装置、１０４…キーボード、１０５…マウス、１０６…動作記述、１０７…低消費電力情報、１０８…ＲＴＬ記述、１０９…設計プログラム、２００…半導体集積回路。
【図１】
2012103918.tif 000003
【図２】
2012103918.tif 000004
【図３】
2012103918.tif 000005
【図４】
2012103918.tif 000006
【図５】
2012103918.tif 000007
【図６】
2012103918.tif 000008
【図７】
2012103918.tif 000009
【図８】
2012103918.tif 000010
【図９】
2012103918.tif 000011
【図１０】
2012103918.tif 000012
【図１１】
2012103918.tif 000013
【図１２】
2012103918.tif 000014
【図１３】
2012103918.tif 000015