(57)【特許請求の範囲】
【請求項１】
コンピュータが，記録媒体に格納された，集積回路の複数の回路要素とそれを接続するネット情報とを記述したハードウエア記述ファイルと，前記集積回路内のそれぞれの電源の供給が制御される電源ドメインと所定条件で電源が遮断される電源遮断ドメインとを定義した電源仕様ファイルとを入力する工程と，
前記コンピュータが，前記ハードウエア記述ファイルに対して，前記電源遮断ドメインの入力端子から前記ネット情報と回路要素とをバックトレースして当該バックトレースが到達するラッチ回路または集積回路の入力ポートを第１のノードとして抽出し，さらに，前記電源遮断ドメインの出力端子に接続される第１のアイソレーションセルの出力端子から前記ネット情報と回路要素とをフォワードトレースして当該フォワードトレースが到達するラッチ回路または集積回路の出力ポートを第２のノードとして抽出する第１の抽出工程と，
前記コンピュータが，前記ハードウエア記述ファイルに対して，前記第１のノードからフォワードトレースして当該フォワードトレースが到達するラッチ回路または出力ポートを第３のノードとして抽出し，さらに，前記第２のノードからバックトレースして当該バックトレースが到達するラッチ回路または入力ポートを第４のノードとして抽出する第２の抽出工程と，
前記コンピュータが，前記ハードウエア記述ファイルに対して，前記電源遮断ドメインの入力端子と前記第１のノードとの間にある第１の組み合わせ回路のうち前記第１のノードと第３のノードとの間にある第２の組み合わせ回路を除外した第３の組み合わせ回路を抽出し，さらに，前記電源遮断ドメインの出力端子に接続される第１のアイソレーションセルの出力端子と前記第２のノードとの間にある第４の組み合わせ回路のうち前記第２のノードと第４のノードとの間にある第５の組み合わせ回路を除外した第６の組み合わせ回路を抽出する第３の抽出工程と，
前記コンピュータが，前記ハードウエア記述ファイルと前記電源仕様ファイルについて，前記電源遮断ドメインに前記第３及び第６の組み合わせ回路を追加するとともに，前記第６の組み合わせ回路の入力側に接続されている第１のアイソレーションセルを削除し当該第６の組み合わせ回路の出力側に新たな第２のアイソレーションセルを生成する拡張工程とを有するＬＳＩの電源遮断領域拡張方法。
【請求項２】
請求項１において，
前記集積回路には電源制御ユニットが含まれ，当該電源制御ユニットは電源遮断時に，前記電源遮断ドメインへの電源供給を遮断する遮断信号と，前記アイソレーションセルをアイソレーション状態にするアイソレーションイネーブル信号とを出力し，
前記アイソレーションセルには，前記アイソレーションイネーブル信号に応じて出力を固定論理値に固定する出力固定アイソレーションセルと，前記アイソレーションイネーブル信号に応じて前記電源遮断ドメインの出力端子の論理値をラッチするラッチ型アイソレーションセルとを有し，
前記第１のアイソレーションセルの出力端子は，前記ラッチ型アイソレーションセルを除く出力固定アイソレーションセルの出力端子であるＬＳＩの電源遮断領域拡張方法。
【請求項３】
請求項２において，
前記拡張工程では，前記新たに生成される第２のアイソレーションセルとして，電源遮断時において前記第１のアイソレーションセルの出力の固定論理値に基づいて前記第６の組み合わせ回路の出力が生成する論理値と同じ論理値を固定論理値として出力する出力固定アイソレーションセルを選択するＬＳＩの電源遮断領域拡張方法。
【請求項４】
請求項１乃至３のいずれかにおいて，
前記ハードウエア記述ファイルは，前記集積回路をレジスタトランスファレベルで記述するファイル，前記回路要素の入出力端子とそれに接続されるネット情報とを有するネットリストのいずれかであるＬＳＩの電源遮断領域拡張方法。
【請求項５】
記録媒体に格納された，集積回路の複数の回路要素とそれを接続するネット情報とを記述したハードウエア記述ファイルと，前記集積回路内のそれぞれの電源の供給が制御される電源ドメインと所定条件で電源が遮断される電源遮断ドメインとを定義した電源仕様ファイルとを入力する工程と，
前記ハードウエア記述ファイルに対して，前記電源遮断ドメインの入力端子から前記ネット情報と回路要素とをバックトレースして当該バックトレースが到達するラッチ回路または集積回路の入力ポートを第１のノードとして抽出し，さらに，前記電源遮断ドメインの出力端子に接続される第１のアイソレーションセルの出力端子から前記ネット情報と回路要素とをフォワードトレースして当該フォワードトレースが到達するラッチ回路または集積回路の出力ポートを第２のノードとして抽出する第１の抽出工程と，
前記ハードウエア記述ファイルに対して，前記第１のノードからフォワードトレースして当該フォワードトレースが到達するラッチ回路または出力ポートを第３のノードとして抽出し，さらに，前記第２のノードからバックトレースして当該バックトレースが到達するラッチ回路または入力ポートを第４のノードとして抽出する第２の抽出工程と，
前記ハードウエア記述ファイルに対して，前記電源遮断ドメインの入力端子と前記第１のノードとの間にある第１の組み合わせ回路のうち前記第１のノードと第３のノードとの間にある第２の組み合わせ回路を除外した第３の組み合わせ回路を抽出し，さらに，前記電源遮断ドメインの出力端子に接続される第１のアイソレーションセルの出力端子と前記第２のノードとの間にある第４の組み合わせ回路のうち前記第２のノードと第４のノードとの間にある第５の組み合わせ回路を除外した第６の組み合わせ回路を抽出する第３の抽出工程と，
前記ハードウエア記述ファイルと前記電源仕様ファイルについて，前記電源遮断ドメインに前記第３及び第６の組み合わせ回路を追加するとともに，前記第６の組み合わせ回路の入力側に接続されている第１のアイソレーションセルを削除し当該第６の組み合わせ回路の出力側に新たな第２のアイソレーションセルを生成する拡張工程とをコンピュータに実行させるコンピュータ読み取り可能なＬＳＩの電源遮断領域拡張プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＬＳＩの電源遮断領域拡張方法及びそのプログラムに関する。
【背景技術】
【０００２】
半導体集積回路（ＬＳＩ）は，近年の微細化と回路の大規模化に伴って，リーク電流による電力消費の増大が問題視されている。この問題に対する解決方法として，非動作状態の回路ブロックの電源を遮断するパワーゲーティング方法が用いられる。電源が遮断される回路ブロックは例えば機能ブロック単位で選択され，非動作状態ではその回路ブロックには電源が遮断される。
【０００３】
ＬＳＩに内蔵される電源制御ユニットは，電源遮断条件に応じて，電源遮断領域のパワーゲートを遮断し，消費電力を抑制する。このようなＬＳＩの設計を可能にするために，ＬＳＩ設計段階では，ＨＤＬ（Hardware Description Language）によるハードウエア記述ファイルであるＲＴＬやネットリストに加えて，電源遮断領域や電源遮断条件などを定義した電源仕様ファイルが生成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１８６２２９号公報
【特許文献２】特開２００９−５３９８９号公報
【特許文献３】特開２００３−２８１２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電源遮断領域は，機能ブロック単位で定義されるため，電源遮断領域の前後に電源遮断領域と共に電源を遮断してもＬＳＩの動作に何ら支障をきたさない領域が存在する場合がある。このような領域は，電源遮断領域の外にあるため，電源遮断時においても電源が供給されリーク電力消費が発生する。
【０００６】
そこで，本発明の目的は，ＬＳＩにおける電源遮断領域を拡張する方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
電源遮断領域拡張方法の第１の側面は，コンピュータが，記録媒体に格納された，集積回路の複数の回路要素とそれを接続するネット情報とを記述したハードウエア記述ファイルと，前記集積回路内のそれぞれの電源の供給が制御される電源ドメインと所定条件で電源が遮断される電源遮断ドメインとを定義した電源仕様ファイルとを入力する工程と，
前記コンピュータが，前記ハードウエア記述ファイルに対して，前記電源遮断ドメインの入力端子（Ａ）から前記ネット情報と回路要素とをバックトレースして当該バックトレースが到達するラッチ回路または集積回路の入力ポートを第１のノード（Ｂ）として抽出し，さらに，前記電源遮断ドメインの出力端子に接続される第１のアイソレーションセルの出力端子（Ａ’）から前記ネット情報と回路要素とをフォワードトレースして当該フォワードトレースが到達するラッチ回路または集積回路の出力ポートを第２のノード（Ｂ’）として抽出する第１の抽出工程と，
前記コンピュータが，前記ハードウエア記述ファイルに対して，前記第１のノード（Ｂ）からフォワードトレースして当該フォワードトレースが到達するラッチ回路または出力ポートを第３のノード（Ｃ）として抽出し，さらに，前記第２のノード（Ｂ’）からバックトレースして当該バックトレースが到達するラッチ回路または入力ポートを第４のノード（Ｃ’）として抽出する第２の抽出工程と，
前記コンピュータが，前記ハードウエア記述ファイルに対して，前記電源遮断ドメインの入力端子（Ａ）と前記第１のノード（Ｂ）との間にある第１の組み合わせ回路のうち前記第１のノード（Ｂ）と第３のノード（Ｃ）との間にある第２の組み合わせ回路（Ｄ）を除外した第３の組み合わせ回路を抽出し，さらに，前記電源遮断ドメインの出力端子に接続される第１のアイソレーションセルの出力端子（Ａ’）と前記第２のノード（Ｂ’）との間にある第４の組み合わせ回路のうち前記第２のノード（Ｂ’）と第４のノード（Ｃ’）との間にある第５の組み合わせ回路（Ｄ’）を除外した第６の組み合わせ回路を抽出する第３の抽出工程と，
前記コンピュータが，前記ハードウエア記述ファイルと前記電源仕様ファイルについて，前記電源遮断ドメインに前記第３及び第６の組み合わせ回路を追加するとともに，前記第６の組み合わせ回路の入力側に接続されている第１のアイソレーションセルを削除し当該第６の組み合わせ回路の出力側に新たな第２のアイソレーションセルを生成する拡張工程とを有する。
【発明の効果】
【０００８】
第１の側面によれば，電源遮断領域を自動的に拡張することができ，省電力化されたＬＳＩのハードウエア記述ファイルと電源仕様ファイルとを生成することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態に関するパワーゲーティング方法による電源遮断を示す図である。
【図２】本実施の形態における電源遮断領域の拡張を説明するＬＳＩの構成図である。
【図３】本実施の形態における電源遮断領域が拡張されたＬＳＩの構成図である。
【図４】本実施の形態における半導体設計装置の構成図である。
【図５】本実施の形態の電源遮断領域拡張プログラムのフローチャート図である。
【図６】図５における電源遮断領域の拡張処理工程Ｓ１のより詳細なフローチャート図である。
【図７】電源遮断領域にかかわるパス・回路の抽出工程Ｓ１１を説明する図である。
【図８】電源を遮断できないパス・回路の抽出工程Ｓ１２を説明する図である
【図９】電源を遮断できないパス・回路の抽出工程Ｓ１２を説明する図である
【図１０】拡張電源遮断部の抽出工程Ｓ１３を説明する図である。
【図１１】アイソレーションセル削除・再挿入工程Ｓ２を説明する図である。
【図１２】アイソレーションセル削除・再挿入工程Ｓ２を説明する図である。
【図１３】電源遮断領域の拡張処理をする前のオリジナルの回路図である。
【図１４】図１３の集積回路のネットリストの例を示す図である。
【図１５】図１３の集積回路の電源仕様ファイルの例を示す図である。
【図１６】図１３の集積回路に電源遮断領域拡張処理を実行した後のインデックスを示す図である。
【図１７】図１６のインデックスが付加されたネットリストを示す図である。
【図１８】図１３の集積回路へのアイソレーションセル削除・再挿入処理を示す図である。
【図１９】図１３の集積回路に電源遮断領域拡張処理が行われた後の集積回路を示す図である。
【図２０】図１９の拡張処理後の集積回路のネットリストを示す図である。
【図２１】図１９の拡張処理後の集積回路の電源仕様ファイルを示す図である。
【発明を実施するための形態】
【００１０】
図１は，本実施の形態に関するパワーゲーティング方法による電源遮断を示す図である。図１には，ＬＳＩに内蔵される一部の回路が示されている。図中，ＬＳＩは，電源ＶＤＤの供給が制御される電源ドメインＰＤ２と，電源ドメインＰＤ２に入力信号を供給するフリップフロップからなるラッチ回路ＦＦ１と，電源ドメインＰＤ２の出力信号をラッチするラッチ回路ＦＦ２とを有する。そして，電源ドメインＰＤ２は，内部に複数の組み合わせ回路と順序回路とを有し，電源ＶＤＤとはＰチャネルの電源スイッチトランジスタＰｐｗを介して接続される。
【００１１】
ＬＳＩには，さらに，ＣＰＵと，電源制御ユニットＰＭＵとが設けられ，ＣＰＵからの制御に応答して電源制御ユニットＰＭＵが電源遮断信号ＰＳ１を電源スイッチトランジスタＰｐｗのゲートに供給し，電源遮断信号ＰＳ１がＬレベルになるとトランジスタＰｐｗが導通して電源ドメインＰＤ２は電源供給状態になり，ＨレベルになるとトランジスタＰｐｗが非導通になり電源ドメインＰＤ２は電源遮断状態になる。
【００１２】
電源遮断を行う電源スイッチトランジスタは，トランジスタＰｐｗに代えて，電源ドメインＰＤ２とグランドＶｓｓとの間に設けられたＮチャネルの電源スイッチトランジスタＮｐｗでもよい。その場合は，電源制御ユニットＰＭＵからの電源遮断信号ＰＳ１がＨレベルになるとトランジスタＮｐｗが導通して電源ドメインＰＤ２は電源供給状態になり，ＬレベルになるとトランジスタＮｐｗが非導通になり電源ドメインＰＤ２は電源遮断状態になる。
【００１３】
図２は，本実施の形態における電源遮断領域の拡張を説明するＬＳＩの構成図である。図２のＬＳＩは，電源ドメインＰＤ１，ＰＤ２を有する。電源ドメインＰＤ１内には，複数の組み合わせ回路ＣＭＢと，複数の順序回路，例えばフリップフロップＦＦ１〜ＦＦ７を有する。そして，電源制御ユニットＰＭＵは，前述の電源遮断信号ＰＳ１により電源ドメインＰＤ２の電源スイッチトランジスタのオン・オフを制御する。
【００１４】
図２に示したＬＳＩでは，電源ドメインＰＤ２の入力端子ＩＮ１に電源ドメインＰＤ１内の組み合わせ回路ＣＭＢ１からの入力信号を供給され，電源ドメインＰＤ２の出力端子ＯＵＴ１は別の組み合わせ回路ＣＭＢ２に出力信号を供給する。入力側の組み合わせ回路ＣＭＢ１にはフリップフロップＦＦ１〜ＦＦ４が接続され，そして，出力側の組み合わせ回路ＣＭＢ２にはフリップフロップＦＦ５〜ＦＦ７が接続されている。
【００１５】
一方，電源ドメインＰＤ２が電源遮断状態にされたとき，出力端子ＯＵＴ１がハイインピーダンス状態になると，後段のＣＭＯＳ回路に貫通リーク電流が発生する。それを回避するために，出力端子ＯＵＴ１にはアイソレーションセルＩＳＯ１が設けられる。このアイソレーションセルＩＳＯ１は，電源遮断時に，電源制御ユニットＰＭＵが生成するアイソレーションイネーブル信号ＩＳＯＥＮに応答して，その出力電圧である論理値をＨレベルまたはＬレベルに固定する出力固定アイソレーションセルである。アイソレーションセルには，後述するとおり，アイソレーションイネーブル信号に応じて出力をＨまたはＬの論理値に固定する出力固定アイソレーションセルと，アイソレーションイネーブル信号に応じて電源遮断ドメインの出力端子の論理値をラッチするラッチ型アイソレーションセルとがある。
【００１６】
図２において，入力側の組み合わせ回路ＣＭＢ１は，電源ドメインＰＤ２が電源遮断されているときは，電源ドメインＰＤ２に無駄に信号を供給するだけで無駄に電力を消費している回路が存在するはずである。同様に，出力側の組み合わせ回路ＣＭＢ２も，電源ドメインＰＤ２が電源遮断されているときは，アイソレーションセルＩＳＯ１の出力は固定されているので，動作が停止し無駄にリーク電力を消費している回路が存在するはずである。
【００１７】
図３は，本実施の形態における電源遮断領域が拡張されたＬＳＩの構成図である。本実施の形態における電源遮断領域拡張方法は，ＬＳＩ内の回路を自動解析して電源ドメインＰＤ２が電源遮断されたときに無駄に動作する回路ＣＭＢ１−１，ＣＭＢ２−１を抽出して電源遮断領域とする工程Ｓ１と，回路ＣＭＢ２−１を電源遮断領域ＰＤ２に合体させたことに伴い，電源ドメインＰＤ２の出力端子に接続されるアイソレーションセルを移動させる工程Ｓ２とを有する。
【００１８】
図３に示されるとおり，まず，図２の組み合わせ回路ＣＭＢ１を自動解析し，電源ドメインＰＤ２が電源遮断されたときに無駄に動作をする組み合わせ回路ＣＭＢ１−１と，必要な動作をする回路ＣＭＢ１−２とを区別して抽出し，無駄な動作をする組み合わせ回路ＣＭＢ１−１を電源遮断される電源ドメインＰＤ２に合体して電源遮断領域を拡張する。組み合わせ回路ＣＭＢ１−２は，その出力がフリップフロップＦＦ４に出力されているので，その動作は無駄ではなく必要な動作である。したがって，組み合わせ回路ＣＭＢ１−２は，拡張領域として抽出されない。
【００１９】
同様に，図２の組み合わせ回路ＣＭＢ２を自動解析し，電源ドメインＰＤ２が電源遮断されたときに無駄に動作をする組み合わせ回路ＣＭＢ２−１と，必要な動作をする回路ＣＭＢ２−２とを区別して抽出し，無駄な動作をする組み合わせ回路ＣＭＢ２−１を電源遮断される電源ドメインＰＤ２に合体して電源遮断領域を拡張する。組み合わせ回路ＣＭＢ２−２は，その入力にフリップフロップＦＦ５の出力が入力されているので，その動作は無駄ではなく必要な動作である。したがって，組み合わせ回路ＣＭＢ２−２は，拡張領域として抽出されない。
【００２０】
それに伴い，図２のアイソレーションセルＩＳＯ１は削除され，図３において拡張された組み合わせ回路ＣＭＢ２−１の出力側に新たなアイソレーションセルＩＳＯ１−２，ＩＳＯ１−２が生成される。つまり，図２のアイソレーションセルＩＳＯ１は，図３においてアイソレーションセルＩＳＯ１−２，ＩＳＯ１−２として移動されたとも言うことができる。
【００２１】
図４は，本実施の形態における半導体設計装置の構成図である。図４の半導体設計装置は，ＣＰＵ，メモリＲＡＭ，入力インターフェース，通信インターフェース，グラフィック処理部１０，大容量記録媒体であるハードディスク装置ＨＤＤとが，バスを介して接続されている。グラフィック処理部１０にはモニタ装置が接続される。
【００２２】
記録媒体ＨＤＤには，本実施の形態の電源遮断領域拡張プログラムが格納され，ＣＰＵがこのプログラムを実行することにより，本実施の形態の電源遮断領域拡張方法が実行される。記録媒体ＨＤＤには，さらに，ＬＳＩの複数の回路要素とそれを接続するネット情報とを記述したハードウエア記述ファイルＨＤＬと，ＬＳＩ内のそれぞれの電源の供給が制御される複数の電源ドメインと所定条件で電源が遮断される電源遮断ドメインとアイソレーションセル挿入情報などを定義した電源仕様ファイルと，セルライブラリやアイソレーションセル情報が含まれるライブラリとが格納される。これらのファイルにより，電源遮断領域拡張処理が行われるＬＳＩの回路構成が特定される。そして，これらのファイルに対して，電源遮断領域拡張プログラムが前述の電源遮断領域拡張処理を実行し，電源遮断領域が拡張された新たなＬＳＩを特定するファイルに変更する。
【００２３】
半導体設計装置は，図示していないが，通常のＬＳＩ設計ツールをプログラムとして記録媒体ＨＤＤに格納し，若しくは，通信インターフェースを介してネットワーク上に格納されているＬＳＩ設計ツールにアクセスしてＬＳＩ設計処理を実行する。ＬＳＩの設計ツールとしては，たとえば，ＲＴＬレベルのＨＤＬをネットリストに変換する論理合成ツール，ネットリストで記述されたＬＳＩの論理動作を確認する論理ベリファイツール，自動レイアウトツール，タイミング検証ツールなどが含まれる。
【００２４】
図５は，本実施の形態の電源遮断領域拡張プログラムのフローチャート図である。電源遮断領域拡張プログラムは，図４で説明したハードウエア記述ファイル１２と，ライブラリ１４と，電源仕様ファイル１６のデータを入力するデータ入力工程Ｓ０を行う。そして，電源遮断領域拡張プログラムは，次に，電源遮断領域拡張処理Ｓ１を実行する。この処理Ｓ１では，ハードウエア記述ファイル１２と，ライブラリ１４と，電源仕様ファイル１６で特定されるＬＳＩの回路構成について自動解析して，図２で説明した電源ドメインＰＤ２が電源遮断されたときに無駄に動作している組み合わせ回路ＣＭＢ１−１，ＣＭＢ２−１を抽出し，それらを合体して電源ドメインＰＤ２の電源遮断領域を拡張する。
【００２５】
次に，電源遮断領域拡張プログラムは，電源遮断領域拡張処理Ｓ１と，拡張処理に伴って必要なアイソレーションセルの削除と再挿入を行うアイソレーションセル削除・再挿入処理Ｓ２とを実行する。そして，プログラムは，上記処理Ｓ１，Ｓ２による集積回路構成の変更を，ハードウエア記述ファイル１２Ｘ，電源仕様ファイル１６Ｘに反映し，それらのデータを出力する（Ｓ３）。
【００２６】
図３に示されたＬＳＩの構成が，この変更されたハードウエア記述ファイル１２Ｘ，電源仕様ファイル１６Ｘにより特定される。すなわち，ネットリストやＲＴＬのハードウエア記述ファイル１２Ｘでは，アイソレーションセルの削除と再挿入により各回路要素を接続するネット情報が変更され，また新たにアイソレーションセルが定義されそのネット情報も定義される。また，電源仕様ファイル１６Ｘでは，電源遮断領域として拡張された組み合わせ回路ＣＭＢ１−１，ＣＭＢ２−１が新たに電源遮断制御される電源遮断ドメインに加えられ，アイソレーションセルの情報も変更される。これらのハードウエア記述ファイル１２Ｘ，電源仕様ファイル１６Ｘについては，後に具体的に説明する。
【００２７】
図６は，図５における電源遮断領域の拡張処理工程Ｓ１のより詳細なフローチャート図である。ここに示されるとおり，電源遮断領域の拡張処理Ｓ１は，電源遮断領域に規定されている電源ドメインの入力端子からのバックトレースと，出力端子からのフォワードトレースなどにより，電源遮断領域が電源遮断したときにその入力端子と出力端子に係わるパスや回路を抽出する（Ｓ１１）。さらに，その抽出したパスや回路のうち，電源遮断領域と共に電源遮断できないパスや回路を抽出する（Ｓ１２）。そして，工程Ｓ１１で抽出したパスや回路から，工程Ｓ１２で抽出したパスや回路を除去したパスや回路を，拡張される電源遮断領域として抽出する（Ｓ１３）。
【００２８】
以下，本実施の形態における電源遮断領域拡張処理Ｓ１と，アイソレーションセルの削除・再挿入処理Ｓ２について具体的に説明する。ハードウエア記述ファイル１２は，ＲＴＬまたはネットリストであり，このファイルについてライブラリを参照することにより，回路要素とそれらを接続するネット情報とを得ることができ，集積回路の回路構成を特定することができる。また，電源仕様ファイル１６は，それぞれ電源が制御される電源ドメインと電源遮断領域の情報と，アイソレーションセル挿入情報などを有する。したがって，半導体設計装置であるコンピュータがこれらのデータを入力することで，集積回路内のどのインスタンス，マクロのピン，ポートが，どの電源ドメインに属しているか，アイソレーションセルがどの位置に挿入されているかの情報を得ることができる。また，アイソレーションセルの情報については，電源仕様ファイルやライブラリに含まれる。
【００２９】
図７は，電源遮断領域にかかわるパス・回路の抽出工程Ｓ１１を説明する図である。図７では，電源ドメインＰＤ２が電源遮断領域に規定されている。本抽出工程Ｓ１１では，電源遮断領域ＰＤ２の入力端子にインデックスＡを付けて，入力端子Ａからネットと回路要素のセルをバックトレースし，フリップフロップやポートに達したらそこにインデックスＢを付ける（Ｓ１１−１）。
【００３０】
同様に，電源遮断領域の出力端子に接続されているアイソレーションセルの出力端子にインデックスＡ’を付ける。この場合，アイソレーションセルは図中右上のＡＮＤとＯＲゲートの出力固定アイソレーションセルに限定され，電源遮断領域ＰＤ２の出力端子の論理値をラッチするラッチ型アイソレーションセルは除外される。ラッチ型アイソレーションセルは，電源遮断領域ＰＤ２の電源が遮断されたときでもその電源を遮断されることなくそのラッチした論理値を記憶し続けることが必要だからである。そして，出力端子Ａ’からネットとセルをフォワードトレースし，フリップフロップやポートに達したらそこにインデックスＢ’を付ける。
【００３１】
このインデックスＡ−Ｂ間にある組み合わせ回路ＣＭＢ１−１，ＣＭＢ１−２と，インデックスＡ’−Ｂ’の間にある組み合わせ回路ＣＭＢ２−１，ＣＭＢ２−２とが電源遮断領域ＰＤ２と共に電源遮断される候補である。
【００３２】
図７中右上に示した３種類のアイソレーションセルのうち，ＡＮＤゲートのアイソレーションセルは，電源遮断ドメインＰＤ２の出力とアイソレーションイネーブル信号ＩＳＯＥＮとが入力され，アイソレーションイネーブル信号ＩＳＯＥＮがＬレベルのときにその出力はＬレベルに固定される。ＯＲゲートのアイソレーションセルも，電源遮断ドメインＰＤ２の出力とアイソレーションイネーブル信号ＩＳＯＥＮとが入力され，アイソレーションイネーブル信号ＩＳＯＥＮがＬレベルのときにその出力はＨレベルに固定される。いずれのアイソレーションセルが挿入されるかは，電源遮断ドメインＰＤ２が電源遮断されたときのＬＳＩの仕様に基づいて決定される。
【００３３】
また，図７中右上に示したラッチ型アイソレーションセルも，電源遮断ドメインＰＤ２の出力とアイソレーションイネーブル信号ＩＳＯＥＮとが入力され，イネーブル信号ＩＳＯＥＮがＨレベルになるタイミングで電源遮断ドメインＰＤ２の出力端子の論理値をラッチする。
【００３４】
図８，図９は，電源を遮断できないパス・回路の抽出工程Ｓ１２を説明する図である。図７の抽出工程Ｓ１１で抽出された組み合わせ回路において，その出力が電源遮断領域ＰＤ２以外に供給される回路や，電源遮断領域ＰＤ２以外の回路から入力が供給される回路は，電源遮断領域ＰＤ２とともに電源遮断されるべきではない。
【００３５】
そこで，電源を遮断できないパス・回路の抽出工程Ｓ１２では，インデックスＢからフォワードトレースして，電源遮断領域ＰＤ２以外のフリップフロップやポートに達したらそこにインデックスＣを付ける（Ｓ１２−１）。さらに，インデックスＢ’からバックトレースし，アイソレーションセル以外のフリップフロップやポートに達したらそこにインデックスＣ’を付ける。この場合，ラッチ型アイソレーションセルに達した場合もインデックスＣ’の対象になる。
【００３６】
つまり，図８中において，組み合わせ回路ＣＭＢ１−２の出力がラッチ回路Ｃや出力ポートＣに供給され，組み合わせ回路ＣＭＢ２−２の入力にラッチ回路Ｃ’の出力信号や入力ポートＣ’の信号が供給されることが判明した。
【００３７】
図９において，インデックスＣは組み合わせ回路ＣＭＢ１−２から出力信号を入力する必要があるフリップフロップや出力ポートであり，インデックスＣ’は組み合わせ回路ＣＭＢ２−２に信号を供給するフリップフロップや入力ポートである。したがって，インデックスＢからＣへのパスＢ−Ｃ上及びインデックスＢ’からＣ’のパスＢ’−Ｃ’上にある組み合わせ回路ＣＭＢ１−２，ＣＭＢ２−２は電源遮断できないので，それらのセルにはインデックスＤ，Ｄ’を付ける（Ｓ１２−３）。
【００３８】
図１０は，拡張電源遮断部の抽出工程Ｓ１３を説明する図である。工程Ｓ１１で抽出したＡ−Ｂ間とＡ’−Ｂ’間のパス上の組み合わせ回路のうち，Ｂ−Ｃ間とＢ’−Ｃ’間のパス上の組み合わせ回路Ｄ，Ｄ’を除いた回路が電源遮断領域ＰＤ２と共に電源遮断可能になるので，その部分の回路だけを抽出する。したがって，図１０中の，組み合わせ回路ＣＭＢ１−１，ＣＭＢ２−１が抽出される。なお，Ｂ−Ａ間とＢ’−Ａ’間のパスがネット（接続配線）のみの場合は，電源が供給されないので，上記の抽出される回路から除外される。
【００３９】
図１１は，アイソレーションセル削除・再挿入工程Ｓ２を説明する図である。図１１の左側がアイソレーションセルを移動する前の回路例であり，右側が移動後の回路例である。アイソレーションセルは，電源遮断領域である電源ドメインＰＤ２の出力端子側に設けられる。図１１では，組み合わせ回路ＣＭＢ２−１（１），ＣＭＢ２−１（２）が電源遮断される拡張領域として抽出されているものとする。
【００４０】
図１１の左側の移動前の回路例において，電源遮断領域ＰＤ２として合体される組み合わせ回路ＣＭＢ２−１（１），ＣＭＢ２−１（２）と電源遮断領域ＰＤ２との間にあるアイソレーションセルＩＳＯ−１は，右側の移動後の回路例において，拡張領域の組み合わせ回路ＣＭＢ２−１（１），ＣＭＢ２−１（２）の出力側のアイソレーションセルＩＳＯ−２に変更される（Ｓ２−１）。その場合，新たに挿入するアイソレーションセルＩＳＯ−２のタイプは，左側の移動前の回路でアイソレーションセルＩＳＯ−１の固定出力論理値１，０に基づいて拡張領域の組み合わせ回路ＣＭＢ２−１（１），ＣＭＢ２−１（２）が生成する論理値１，０に対応させて，選択される。つまり，電源遮断されたときに，移動前のアイソレーションセルＩＳＯ−１の固定出力論理値に基づいて回路ＣＭＢ２−１（１），２−１（２）が生成する出力の論理値を，新たなアイソレーションセルＩＳＯ−２が生成するように，出力Ｌタイプの出力固定アイソレーションセルか出力Ｈタイプの出力固定アイソレーションセルかのいずれかのタイプが選択される。
【００４１】
図１１の例では，組み合わせ回路ＣＭＢ２−１（１）の出力論理値はすべて「０」であるので，新たに挿入されるアイソレーションセルＩＳＯ−２は全て出力Ｌタイプになる。また，組み合わせ回路ＣＭＢ２０−１（２）の出力論理値は全て「１」であるので，そこに挿入されるアイソレーションセルＩＳＯ−２は出力Ｈタイプになる。
【００４２】
また，合体される組み合わせ回路ＣＭＢ２−１（２）内の一方のインバータの出力は同じ電源遮断領域ＰＤ２に入力される。したがって，そのインバータの出力にはアイソレーションセルは不要であり，削除される（Ｓ２−２）。
【００４３】
図１２は，アイソレーションセル削除・再挿入工程Ｓ２を説明する図である。図１２は，工程Ｓ２の結果得られたＬＳＩの回路を示している。元々の電源遮断領域ＰＤ２の入力側に組み合わせ回路ＣＭＢ１−２が，出力側に組み合わせ回路ＣＭＢ２−１が，それぞれ電源遮断領域として追加されている。つまり電源遮断領域ＰＤ２が拡張されている。さらに，出力側の組み合わせ回路ＣＭＢ２−１の出力端子に新たなアイソレーションセルが挿入されている。
【００４４】
以上のように，本実施の形態の電源遮断領域拡張方法及びそのプログラムによれば，ネットリストなどのハードウエア記述ファイルとライブラリと電源仕様ファイルに基づいて特定されるＬＳＩの回路構成と，電源ドメイン，電源遮断領域，アイソレーションセルの情報とに基づき，電源遮断領域の入力側と出力側に同時に電源遮断可能な領域を抽出し，それに伴ってアイソレーションセルを移動することできる。これにより，自動的に電源遮断領域を拡張したハードウエア記述ファイルと電源仕様ファイルを生成することができる。その結果，生成されるＬＳＩの電力消費をより抑制することができる。
【実施例】
【００４５】
次に，具体例を示しながら，上記の電源遮断領域拡張方法について説明する。図１３は，電源遮断領域の拡張処理をする前のオリジナルの回路図であり，回路の一例を示す。この回路図を例にして，ネットリストと電源仕様ファイルの記述例を示し，上記の電源遮断領域拡張方法を適用した場合にこの回路図がどのように解析され，どのように変更されるのかについて説明する。
【００４６】
図１３の集積回路ＬＳＩは，電源ドメインＰＤ１とＰＤ２とを有し，電源ドメインＰＤ２は電源遮断領域でもある。図中，各セルやモジュールにはそのインスタンス（固有な名称）が付記されている。例えば，フリップフロップＦＦＡ１は，インスタンス名はuFFA1(uはμの省略形)であるが，簡単のために単に「FFA1」と付記されている。他のセルやモジュールも同様である。また，ポートにはIN1,OUT1などが付記され，モジュールMOD2の入力端子にはIN_Aなどが，出力端子にはOUT_Aなどが付記されている。さらに，図中，各セルを接続するネット（配線）名，例えばｎ１〜ｎ４２も付記されている。
【００４７】
図１４は，図１３の集積回路のネットリストの例を示す図である。このネットリストでは，「module Top (IN1, IN2, OUT1, OUT2)」により，集積回路LSIの入力端子と出力端子が定義され，図中２０では，入力端子inputと，出力端子outputと，ネットwireとについて，それぞれのインスタンスIN1,IN2,OUT1,OUT2,n1〜n42が定義されている。
【００４８】
さらに，このネットリストには，図中２１で，図１３の集積回路の左側にある電源ドメインPD2の入力側の回路のセルが定義されている。たとえば，３行目のインバータINVAとして，インスタンス名uINVA1と，そのインバータの入力にネットn1が接続されること「.A(n1)」と，出力に出力ポートOUT1が接続されること「.Y(OUT1)」とが規定されている。インバータINVAの定義は，ライブラリ１４に規定され，例えばライブラリ１４には，インバータINVAは入力.Aと出力.Yを有すること，入力を反転して出力する論理機能を有することなどが定義されている。
【００４９】
また，図中２２では，電源ドメインPD2がモジュールMOD2として，インスタンス名uMOD2であり，入力端子.IN_A等がネットn6などに接続されていることが定義されている。そして，図中２３では，図１３の集積回路LSIの右側の電源ドメインPD2の出力端子に接続されているセル等が規定されている。このうち，１行目には，アイソレーションセルISOLAとして，インスタンス名uISOLA1と，その入力にネットn15が接続されていること「.A(n15)」，イネーブル端子にネットISOENが接続されていること「.EN(ISOEN)」，出力にネットn17が接続されていること「.Y(n17)」が規定されている。他のセルも同様であり，図１３と照合すれば明らかである。
【００５０】
集積回路のハードウエア記述ファイルの一種である図１４のネットリストと，ライブラリ１４のセルやアイソレーションセルの定義とを参照すれば，図１３の集積回路のセルやマクロとそれらを接続するネットの構成が特定される。
【００５１】
図１５は，図１３の集積回路の電源仕様ファイルの例を示す図である。この電源仕様ファイルには，図中３０にて電源ドメインPD1が定義され，図中３１にて電源ドメインPD2が定義されている。電源ドメインPD2については，インスタンス名がuMOD2であること，電源遮断条件（shutoff_condition）が電源制御モードuPMUの出力信号ISOが出力されたときであることなどが規定されている。つまり，電源ドメインPD2は電源遮断ドメインでもある。また，図中３２にて電源状態名VDD1は電圧が1.2Vであることが規定されている。
【００５２】
次に，電源仕様ファイルでは，図中３３にて，電源モードPM1では電源ドメインPD1,PD2の両方がオン状態（電源供給状態）であり，電源モードPM2では電源ドメインPD1のみがオン状態（電源供給状態）であることが規定されている。また，図中３４にて，アイソレーションセルのルールが規定され，例えば，アイソレーションルールISO_PD1_Lの場合は，電源ドメインPD2の出力端子からに対して，そのアイソレーションセルの出力はLに固定され，それは電源制御ユニットPMUの出力信号ISOが出力されたときの条件であり，電源ドメインPD2であるモジュールuMOD2の出力OUT_A, OUT_B, OUT_F, OUT_H, OUT_Iに挿入されることが規定されている。
【００５３】
同様に，図中３４には，Hレベルの固定出力アイソレーションとしてのアイソレーションルールISO_PD1_Hと，出力を保持するラッチ型のアイソレーションとしてのアイソレーションルールISO_PD1_KPとが規定されている。
【００５４】
図１５の電源仕様ファイルを参照することで，図１４のネットリストとライブラリとで特定される集積回路において，電源ドメインと，それぞれの電源ドメインの電源遮断条件と，電源電圧と，電源モードと，アイソレーションセルの挿入位置とその種類を特定することができる。
【００５５】
図１６は，図１３の集積回路に電源遮断領域拡張処理を実行した後のインデックスを示す図である。すなわち，図１６は，図１３の集積回路に対して電源遮断領域拡張処理S1を実行して，各ノードにインデックスA〜Dを付加した状態を示す。すなわち，電源ドメインPD2の入力端子にインデックスAが，それからバックトレースして到達したフリップフロップと入力ポートにインデックスBが，電源ドメインPD2の出力端子にインデックスA'が，それからフォワードトレースして到達したフリップフロップと出力ポートにインデックスB'が付加されている。また，インデックスBからフォワードトレースして到達したフリップフロップと出力ポートにはインデックスCが，インデックスB-Cの間のセルにはインデックスDが，インデックスB'からバックトレースして到達したフリップフロップと入力ポートにはインデックスC'が，インデックスB'-C'の間のセルにはインデックスD'がそれぞれ付加されている。さらに，上記のインデックスが付加された間のセルやネット（接続配線）にはA-B,B-C,A'-B',B'-C'などが付加されている。
【００５６】
そして，インデックスA-B，A'-B'が付加されたセルであって，インデックスB-C,B'-C'が付加されていないセル等が，拡張される電源遮断領域CMB1-1(1)，CMB1-1(2)，CMB2-1(1)，CMB2-1(2)として抽出される。
【００５７】
図１７は，図１６のインデックスが付加されたネットリストを示す図である。図１４と同じ記述であるが，そのうち下線が付されたセルや端子，ネットには，データ構造上，図１６に示したインデックスA〜D, A-B, B-C, A'-B', B'-C'が付されている。ただし，図１７には，それらのインデックスを区別する表示は行っていないが，図１６と併せてみることで，いずれのインデックスが付されたかを理解することができる。
【００５８】
図１７のネットリストにおいて，一点鎖線で囲まれたセルにはインデックスDが付されている。そして，実線で囲まれたセルは新たに拡張された電源遮断領域CMB1-1(1)，CMB1-1(2)，CMB2-1(1)，CMB2-1(2)のセルである。これらの領域は，図１７のネットリストにおいて付加されたインデックスを解析することにより，容易に抽出することができる。
【００５９】
図１８は，図１３の集積回路へのアイソレーションセル削除・再挿入処理を示す図である。図１１と同等であるが，図１８には，新たに挿入されるアイソレーションセルＩＳＯ−２のタイプの選択方法S2-3が示されている。すなわち，左側の回路における削除されるアイソレーションセルISO-1の出力論理値を入力した組み合わせ回路CMB2-1(1),CMB2-1(2)が出力する論理値に応じて，右側の回路における新たに挿入されるアイソレーションISO-2のタイプ，Hレベルの出力固定アイソレーションセル（ANDゲート）か，Lレベルの出力固定アイソレーションセル（ORゲート）か，が選択される。図中，工程S2-1, S2-2は図１１で説明したとおりである。
【００６０】
図１９は，図１３の集積回路に電源遮断領域拡張処理が行われた後の集積回路を示す図である。図１３の集積回路と比較すると明らかなとおり，まず，組み合わせ回路CMB1-1(1), CMB1-1(2)，CMB2-1(1), CMB2-1(2)が新たな電源遮断領域として電源ドメインPD2と同じ電源遮断領域に加えられる。そして，電源ドメインPD2の出力側において，図１３のアイソレーションセルISOLA1，ISOLA2，ISOHA1，ISOHA2，ISOLA4，ISOLA5が削除され，図１９において，新たにアイソレーションセルISOLA1，ISOLA6，ISOLA7，ISOHA4が挿入されている。また，新たにネット（接続配線）n50〜n54が生成され，ネットn17,n18,n25〜n27が削除されている。
【００６１】
図２０は，図１９の拡張処理後の集積回路のネットリストを示す図である。図中下線部分が，図１３のオリジナルの集積回路に対する図１４のネットリストから変更された部分である。図中，拡張される電源遮断領域の組み合わせ回路CMB1-1(1), CMB1-1(2)，CMB2-1(1), CMB2-1(2)に対応するセルが示され，それらのセルに接続されるネットが変更されている。さらに，新たなアイソレーションセルISOLA1，ISOLA6，ISOLA7，ISOHA4が追加されている。
【００６２】
図２１は，図１９の拡張処理後の集積回路の電源仕様ファイルを示す図である。この電源仕様ファイルには，図１５のオリジナルの電源仕様ファイルと比較すると明らかなとおり，電源遮断される電源ドメインPD2に，インスタンスuINVA3, uOR2A1，uOR2A2，uINVA4, uAND2A3, uAND2A4, uAND3A5, uINVA6, uINVA9, uINVA10が追加されている。つまり，一緒に電源遮断される電源ドメインPD2に，これらのインスタンスのセルらが追加され拡張されている。
【００６３】
また，図２１の電源仕様ファイルには，新たなアイソレーションセルISOLA1，ISOLA6，ISOLA7，ISOHA4の挿入位置とセルタイプとして，Lレベル出力固定アイソレーションセルISO_PD1_Lとしてセルの出力端子uAND2A3/Y, uAND2A5/Y, uINVA6/Yに設けられることと，Hレベル出力固定アイソレーションセルISO_PD1_Hとしてセルの出力端子uINVA9/Yに設けられることとが規定されている。
【００６４】
図１３〜図２１によれば，具体的な集積回路について，ネットリストと電源仕様ファイルの記述例，電源遮断領域を拡張する処理の結果変更されるネットリストと電源仕様ファイルの記述例，変更後の集積回路の例を理解することができる。
【００６５】
なお，上記の具体例ではハードウエア記述ファイルとしてネットリストを例にして説明したが，ＲＴＬの記述ファイルにおいても，同様に回路構成を特定でき上記の電源遮断領域拡張処理を行うことができるのは当業者に自明である。
【００６６】
以上，本実施の形態によれば，電源遮断ドメインを有する集積回路において同時に電源遮断できる領域を拡張することができるので，リーク電力を抑制した集積回路を設計することができる。
【符号の説明】
【００６７】
ＬＳＩ：集積回路                      ＰＤ２：電源ドメイン，電源遮断領域
Ａ：入力                              Ａ’：出力
ＣＭＢ１−１，ＣＭＢ２−１：電源遮断領域として拡張される組み合わせ回路
【図１】
0005445346.tif 000002
【図２】
0005445346.tif 000003
【図３】
0005445346.tif 000004
【図４】
0005445346.tif 000005
【図５】
0005445346.tif 000006
【図６】
0005445346.tif 000007
【図７】
0005445346.tif 000008
【図８】
0005445346.tif 000009
【図９】
0005445346.tif 000010
【図１０】
0005445346.tif 000011
【図１１】
0005445346.tif 000012
【図１２】
0005445346.tif 000013
【図１３】
0005445346.tif 000014
【図１４】
0005445346.tif 000015
【図１５】
0005445346.tif 000016
【図１６】
0005445346.tif 000017
【図１７】
0005445346.tif 000018
【図１８】
0005445346.tif 000019
【図１９】
0005445346.tif 000020
【図２０】
0005445346.tif 000021
【図２１】
0005445346.tif 000022