(57)【要約】【課題】セットアップタイミングの制約に違反しているデータパス内のセルを含むＲＯＷ領域の消費電力値が低くなるようにセルを再配置して電圧降下の抑制化を図ること。【解決手段】設計支援装置５００は、セットアップタイミングの制約に違反しているデータパス内のセルを抽出部５０４により抽出し、データパス内のセルを含むＲＯＷ領域を第１の特定部５０５により第１のＲＯＷ領域に特定し、第１のＲＯＷ領域内のセルから、データパス内のセルを除くセルを第１の決定部５０６により第１のセルに決定し、データパス内のセルを含まない第２のＲＯＷ領域を第２の特定部５０９により特定し、第２のＲＯＷ領域内のセルを第２の決定部５０９により第２のセルに決定し、第２のセルの消費電力値が第１のセルの消費電力値未満の場合、第１のセルと第２のセルの配置位置を置換部５１１により置換する。【選択図】図５
2010231631.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
電圧降下の遅延解析と静的タイミング解析が実行済みの設計対象回路のレイアウトデータの中から前記電圧降下によりセットアップタイミングの制約に違反しているデータパス内のセルを抽出する抽出手段、
前記レイアウトデータ内の複数のＲＯＷ領域の中から、前記抽出手段により抽出されたデータパス内のセルを含む第１のＲＯＷ領域を特定する第１の特定手段、
前記第１の特定手段により特定された第１のＲＯＷ領域内のセルの中から、前記データパス内のセルを除く前記第１のＲＯＷ領域内のセルを第１のセルに決定する第１の決定手段、
前記複数のＲＯＷ領域の中から前記データパス内のセルを含まない第２のＲＯＷ領域を特定する第２の特定手段、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルを第２のセルに決定する第２の決定手段、
前記第１の決定手段により決定された第１のセルの消費電力値と第２の決定手段により決定された第２のセルの消費電力値を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項２】
前記第１の決定手段は、
前記第１の特定手段により特定された第１のＲＯＷ領域内のセルの中から、最も消費電力値が高いセルを第１のセルに決定することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記コンピュータを、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルごとに、前記第１の決定手段により決定された第１のセルとの距離を算出する算出手段、として機能させ、
前記第２の決定手段は、
前記算出手段により前記第２のＲＯＷ領域内のセルごとに算出された第１のセルとの距離が最も短い前記第２のＲＯＷ領域内のセルを第２のセルに決定することを特徴とする請求項１または２に記載の設計支援プログラム。
【請求項４】
前記第２の決定手段は、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルの中から、最も消費電力値が低いセルを第２のセルに決定することを特徴とする請求項１〜３のいずれか１つに記載の設計支援プログラム。
【請求項５】
前記コンピュータを、
前記第２の決定手段により決定された第２のセルの消費電力値が、前記第１の決定手段により決定された第１のセルの消費電力値未満であるかを判断する判断手段、
前記判断手段により前記第２のセルの消費電力値が、前記第１のセルの消費電力値未満であると判断された場合、前記第１のセルと前記第２のセルの配置位置を置換する置換手段、として機能させ、
前記出力手段は、
前記置換手段により置換された置換結果を出力することを特徴とする請求項１〜４のいずれか１つに記載の設計支援プログラム。
【請求項６】
前記第２の特定手段は、
前記判断手段により第２のセルの消費電力値が、第１のセルの消費電力値未満でないと判断された場合、前記複数のＲＯＷ領域の内、前記すでに第２のＲＯＷ領域として特定されたＲＯＷ領域を除き、かつ前記データパス内のセルを含まないＲＯＷ領域を新たに第２のＲＯＷ領域に特定することを特徴とする請求項１〜５のいずれか１つに記載の設計支援プログラム。
【請求項７】
電圧降下の遅延解析と静的タイミング解析が実行済みの設計対象回路のレイアウトデータの中から前記電圧降下によりセットアップタイミングの制約に違反しているデータパス内のセルを抽出する抽出手段と、
前記レイアウトデータ内の複数のＲＯＷ領域の中から、前記抽出手段により抽出されたデータパス内のセルを含む第１のＲＯＷ領域を特定する第１の特定手段と、
前記第１の特定手段により特定された第１のＲＯＷ領域内のセルの中から、前記データパス内のセルを除く前記第１のＲＯＷ領域内のセルを第１のセルに決定する第１の決定手段と、
前記複数のＲＯＷ領域の中から前記データパス内のセルを含まない第２のＲＯＷ領域を特定する第２の特定手段と、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルを第２のセルに決定する第２の決定手段と、
前記第１の決定手段により決定された第１のセルの消費電力値と第２の決定手段により決定された第２のセルの消費電力値を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項８】
コンピュータが、
電圧降下の遅延解析と静的タイミング解析が実行済みの設計対象回路のレイアウトデータの中から前記電圧降下によりセットアップタイミングの制約に違反しているデータパス内のセルを抽出する抽出工程、
前記レイアウトデータ内の複数のＲＯＷ領域の中から、前記抽出工程により抽出されたデータパス内のセルを含む第１のＲＯＷ領域を特定する第１の特定工程、
前記第１の特定工程により特定された第１のＲＯＷ領域内のセルの中から、前記データパス内のセルを除く前記第１のＲＯＷ領域内のセルを第１のセルに決定する第１の決定工程、
前記複数のＲＯＷ領域の中から前記データパス内のセルを含まない第２のＲＯＷ領域を特定する第２の特定工程、
前記第２の特定工程により特定された第２のＲＯＷ領域内のセルを第２のセルに決定する第２の決定工程、
前記第１の決定工程により決定された第１のセルの消費電力値と第２の決定工程により決定された第２のセルの消費電力値を出力する出力工程、
を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、半導体集積回路のレイアウト設計を支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
従来より、論理回路のタイミングを解析する技術として静的タイミング解析が用いられている。そして、レイアウトデータの検証技術として、消費電力値を解析するツールや電源配線の抵抗値を解析する電源網解析ツール（たとえば、下記特許文献１を参照）が用いられている。
【０００３】
そして、電源網解析ツールを用いることにより、ＩＲドロップを解析することができる。ＩＲドロップとは、電源配線上に生じるＩＲ積（電流Ｉと配線抵抗Ｒの積）の電圧降下である。半導体集積回路へ供給した電源電圧が電圧降下により下がると各素子の遅延が大きくなり半導体集積回路が誤動作する可能性がある。
【０００４】
近年では、静的タイミング解析と電圧降下の遅延解析を組み合わせたタイミング解析ツールを用いて、電圧降下により生じる論理回路のタイミングが検証されている。組み合わせたタイミング解析ツールを用いることにより、レイアウトデータ内のパスのタイミング制約に対する余裕度（以下、Ｓｌａｃｋと称す。）を得ることができる。
【０００５】
これにより、利用者（設計者または検証者）は、各セルに入力されるパス（または、各セルから出力されるパス）のタイミングがタイミングの制約に違反しているか否かが分かる。たとえば、Ｓｌａｃｋがマイナス値（以下、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋと称す。）のパスは、タイミングの制約に違反している。また、たとえば、Ｓｌａｃｋがプラス値（以下、Ｐｏｓｉｔｉｖｅ  Ｓｌａｃｋと称す。）のパスは、タイミングの制約に遵守している。
【０００６】
さらに、電圧降下により発生するタイミングの制約違反を改善するための技術が知られている。たとえば、下記特許文献２では、セルの初期配置後、配線がされていないレイアウトデータで配線経路を仮定して電圧降下を算出する。つぎに、電圧降下により発生する遅延時間を算出してタイミングの制約に違反しているパスがあるか否かを判断する。そして、違反しているパスがあると判断された場合、当該パスの入力先であるセルの配置位置をタイミングの制約に遵守できる配置位置に変更する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１４５７３８号公報
【特許文献２】特開２０００−９９５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献２の技術では、配線がされているレイアウトデータの場合、他のセルの配置位置がすべて決定されてレイアウトデータ内に空き領域が少ないため、配置位置を変更することが困難であるという問題点があった。さらに、設計者が配置位置を探さなければならないため、配置位置を変更することが困難であり、再度、初期配置から設計し直すといった手戻りが生じる問題点があった。
【０００９】
そして、セルの配置位置が変更されてもタイミング制約に違反しているデータパスのタイミングが改善されない場合、データパス内の論理回路の構成を変更するといった手戻りが生じる問題点があった。
【００１０】
本開示技術は、上述した従来技術による問題点を解消するため、容易かつ効率的に電圧降下の抑制化を図ることができる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本開示技術は、電圧降下の遅延解析と静的タイミング解析が実行済みの設計対象回路のレイアウトデータの中から電圧降下によりセットアップタイミングの制約に違反しているデータパス内のセルを抽出する抽出手段と、レイアウトデータ内の複数のＲＯＷ領域の中から、抽出されたデータパス内のセルを含む第１のＲＯＷ領域を特定する第１の特定手段と、特定された第１のＲＯＷ領域内のセルの中から、データパス内のセルを除く第１のＲＯＷ領域内のセルを第１のセルに決定する第１の決定手段と、複数のＲＯＷ領域の中からデータパス内のセルを含まない第２のＲＯＷ領域を特定する第２の特定手段と、特定された第２のＲＯＷ領域内のセルを第２のセルに決定する第２の決定手段と、決定された第１のセルの消費電力値と決定された第２のセルの消費電力値を出力する出力手段を備えることを特徴とする。
【００１２】
本開示技術によれば、セットアップタイミングの制約に違反しているデータパス内のセルを含むＲＯＷ領域の消費電力値が低くなるように当該ＲＯＷ領域内のセルの再配置をおこなうことができる。したがって、電圧降下により発生するセットアップタイミングの制約違反の抑制化を図ることができる。
【発明の効果】
【００１３】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、容易かつ効率的に、電圧降下により発生するセットアップタイミングの制約違反の抑制化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】セルの配置位置が置換されたレイアウトデータの一例を示す説明図である。
【図２】設計対象回路のレイアウトデータの一例を示す説明図である。
【図３−１】ＲＯＷ領域の配置位置を示す設計対象回路のレイアウトデータの説明図である。
【図３−２】各ＲＯＷ領域を識別するための一例を示す説明図である。
【図３−３】ＲＯＷ領域の電源配線を示すレイアウトデータの説明図である。
【図４】実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図５】設計支援装置の機能的構成を示すブロック図である。
【図６】設計対象回路内の各セルの消費電力および電圧降下を示す説明図である。
【図７】各ＲＯＷ領域の消費電力値と電圧降下の最大値を示す説明図である。
【図８】タイミング解析の解析結果を示す説明図である。
【図９】第１のＲＯＷ領域に隣接しているＲＯＷ領域を示す説明図である。
【図１０】第１のセルと第２のセルの配置位置を示す説明図である。
【図１１】設計支援装置５００の設計支援処理手順を示すフローチャートである。
【図１２】消費電力値の算出処理の処理手順を示すフローチャートである。
【図１３】第１のＲＯＷ領域の特定処理の処理手順を示すフローチャートである。
【図１４】第１のセルの決定処理の処理手順を示すフローチャートである。
【図１５】置換処理の処理手順を示すフローチャートである。
【図１６】第２のＲＯＷ領域の特定処理の処理手順を示すフローチャートである。
【図１７】第２のセルの決定処理の処理手順を示すフローチャートである。
【図１８】セルの並び替え処理の処理手順を示すフローチャートである。
【図１９】補助電源配線の接続処理の接続手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【００１６】
（実施の形態）
本実施の形態では、セットアップタイミングの制約に違反しているデータパス内のセルを含む第１のＲＯＷ領域の中から当該データパス内のセルを除くセルを第１のセルに決定する。そして、セットアップタイミングの制約に違反しているデータパス内のセルを含まない第２のＲＯＷ領域内のセルを第２のセルに決定する。そして、第２のセルの消費電力値が、第１のセルの消費電力値未満の場合、第１のセルと第２のセルの配置位置を置換することで、第１のＲＯＷ領域の消費電力値を低くする。これにより、電圧降下によるセットアップタイミングの制約違反を抑制することができる。
【００１７】
図１は、セルの配置位置が置換されたレイアウトデータの一例を示す説明図である。置換済レイアウトデータ１００では、ＩＮＳＴ００Ｂ４とＩＮＳＴ００Ａ４の配置位置が置換された置換結果を示している。置換済レイアウトデータ１００は複数のＲＯＷ領域を有している。各ＲＯＷ領域にはセルが配置されている。データパス１０１が、セットアップタイミングを違反しているデータパスである。
【００１８】
データパス１０１内のセルであるＩＮＳＴ００Ｃ３を含むｒｏｗＸ０００３Ｙ０００３が第１のＲＯＷ領域に特定され、ＩＮＳＴ００Ｂ４が第１のセルに決定されている。そして、データパス１０１内のセルを含まないｒｏｗＸ０００３Ｙ０００２内のＩＮＳＴ００Ｂ４が第２のセルに決定されている。ＩＮＳＴ００Ａ４の消費電力値は、ＩＮＳＴ００Ｂ４の消費電力値未満である。
【００１９】
したがって、ＩＮＳＴ００Ａ４とＩＮＳＴ００Ｂ４の配置位置が置換されることで、第１のＲＯＷ領域の消費電力値の合計値を下げることができる。これにより、置換前と比較して電圧降下を抑制することができ、セットアップタイミングの制約違反を抑制することができる。
【００２０】
（設計対象回路のレイアウトデータ）
図２は、設計対象回路のレイアウトデータの一例を示す説明図である。レイアウトデータ２００は、設計対象回路の一部のレイアウトデータを示している。レイアウトデータ２００は、置換済レイアウトデータ１００と同様のＲＯＷ領域を有している。
【００２１】
単一の半導体集積回路内で複数のＲＯＷ領域を有する説明と各ＲＯＷ領域に付されている番号に関する説明は、後述する。ｒｏｗＸ０００１Ｙ０００２〜ｒｏｗＸ０００４Ｙ０００２と、ｒｏｗＸ０００１Ｙ０００３〜ｒｏｗＸ０００４Ｙ０００３と、ｒｏｗＸ０００１Ｙ０００４〜ｒｏｗＸ０００４Ｙ０００４とが、ＲＯＷ領域である。
【００２２】
ＩＮＳＴ００Ａ１〜ＩＮＳＴ００Ａ４と、ＩＮＳＴ００Ｂ１〜ＩＮＳＴ００Ｂ４と、ＩＮＳＴ００Ｃ１〜ＩＮＳＴ００Ｃ４と、ＩＮＳＴ００Ｄ１〜ＩＮＳＴ００Ｄ４とが、セルである。セルは、理解の容易さのために回路記号で表現されているが、実際には、トランジスタや、ビアや、配線層などが具体的に分かるように表現されている。なお、以下、本実施の形態の説明で用いる図面では、セルを回路記号で表現する。
【００２３】
ｒｏｗＸ０００１Ｙ０００２には、ＩＮＳＴ００Ａ１が配置されている。ｒｏｗＸ０００２Ｙ０００２には、ＩＮＳＴ００Ａ２が配置されている。ｒｏｗＸ０００３Ｙ０００２には、ＩＮＳＴ００Ａ３とＩＮＳＴ００Ａ４が配置されている。ｒｏｗＸ０００４Ｙ０００２には、ＩＮＳＴ００Ａ５が配置されている。
【００２４】
ｒｏｗＸ０００１Ｙ０００３には、ＩＮＳＴ００Ｂ１とＩＮＳＴ００Ｃ１が配置されている。ｒｏｗＸ０００２Ｙ０００３には、ＩＮＳＴ００Ｂ２とＩＮＳＴ００Ｃ２が配置されている。ｒｏｗＸ０００３Ｙ０００３には、ＩＮＳＴ００Ｂ３と、ＩＮＳＴ００Ｂ４と、ＩＮＳＴ００Ｃ３と、ＩＮＳＴ００Ｃ４が配置されている。ｒｏｗＸ０００４Ｙ０００３には、ＩＮＳＴ００Ｂ５と、ＩＮＳＴ００Ｃ５が配置されている。
【００２５】
ｒｏｗＸ０００１Ｙ０００４には、ＩＮＳＴ００Ｄ１が配置されている。ｒｏｗＸ０００２Ｙ０００４には、ＩＮＳＴ００Ｄ２が配置されている。ｒｏｗＸ０００３Ｙ０００４には、ＩＮＳＴ００Ｄ３とＩＮＳＴ００Ｄ４が配置されている。ｒｏｗＸ０００４Ｙ０００４には、ＩＮＳＴ００Ｄ５が配置されている。
【００２６】
ＩＮＳＴ００Ｃ１〜ＩＮＳＴ００Ｃ５のデータパス１０１が、セットアップタイミングを違反しているデータパスである。本実施の形態によりＩＮＳＴ００Ａ４とＩＮＳＴ００Ｂ４の配置位置が置換された置換結果を示している。セルの置換により、Ｎｅｇａｔｉｖｅ  ＳｌａｃｋであるＩＮＳＴ００Ｃ３を含むｒｏｗＸ０００３Ｙ０００３の消費電力値の合計値を低くすることができる。これにより、置換前と比較して電圧降下を抑制することができ、セットアップタイミングの違反を抑制することができる。
【００２７】
データパス２０１は、ＩＮＳＴ００Ａ１〜ＩＮＳＴ００Ａ５により構成されている。データパス２０２は、ＩＮＳＴ００Ｂ１〜ＩＮＳＴ００Ｂ５により構成されている。データパス１０３は、ＩＮＳＴ００Ｃ１〜ＩＮＳＴ００Ｃ５により構成されている。データパス２０３は、ＩＮＳＴ００Ｄ１〜ＩＮＳＴ００Ｄ５により構成されている。
【００２８】
上述したようにデータパス１０１が、セットアップタイミングの制約に違反しているデータパスである。そして、データパス２０１と、データパス２０２と、データパス２０３は、セットアップタイミングの制約に違反していないデータパスである。したがって、セットアップタイミングの制約に違反しているデータパス内のセルとは、ＩＮＳＴ００Ｃ１〜ＩＮＳＴ００Ｃ５である。
【００２９】
さらに、レイアウトデータ２００は、各セルの配置位置情報を有している。具体的には、たとえば、配置位置情報とは、レイアウトデータ２００内の座標値である。したがって、各セルの座標値が変更されることにより、セルが置換される。
【００３０】
図３−１は、ＲＯＷ領域の配置位置を示す設計対象回路のレイアウトデータの説明図である。レイアウトデータ３００では、設計対象回路の中でＲＯＷ領域の配置位置を示している。レイアウトデータ３００には、ＲＯＷ領域３０１と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）回路３０２と、マクロが配置されている。ＲＯＷ領域３０１には、たとえば、論理回路のなどのスタンダードセルが配置されている。そして、実際には、ＲＯＷ領域３０１は、複数のＲＯＷ領域により形成されている。図３−２にて領域３０３を用いて各ＲＯＷ領域を識別するための一例を示す。
【００３１】
図３−２は、各ＲＯＷ領域を識別するための一例を示す説明図である。領域３０３には、Ｉ／Ｏ回路３０２の一部と、ＲＯＷ領域３０１の一部を有している。ＲＯＷ領域３０１は、具体的に、複数のＲＯＷ領域により形成されている。ｒｏｗＸ０００１Ｙ０００１を基準として、各ＲＯＷ領域に番号が付されている。ｒｏｗＸ０００１Ｙ０００１のＸ００１は、Ｘ方向に１番目であることを示している。ｒｏｗＸ０００１Ｙ０００１のＹ０００１は、Ｙ方向に１番目であることを示している。したがって、ｒｏｗＸ０００３Ｙ０００３は、Ｘ方向に３番目であり、Ｙ方向に３番目であるＲＯＷ領域である。つぎに、図３−３を用いてＲＯＷ領域３０１が電源配線により区切られている例を示す。
【００３２】
図３−３は、ＲＯＷ領域の電源配線を示すレイアウトデータの説明図である。レイアウトデータ３０４は、最下層ＶＤＤ配線３０５と、最下層ＶＳＳ配線３０６と、上層ＶＤＤ配線３０７と、上層ＶＳＳ配線３０８と、ビア３０９と、上層ＶＤＤ配線３１０と、上層ＶＳＳ配線３１１により形成されている。最下層ＶＤＤ配線３０５は、コンタクトを介してセルと接続されてセルに電源電圧を供給する電源配線である。最下層ＶＳＳ配線３０６は、コンタクトを介してセルと接続されてセルに接地電圧を供給する電源配線である。なお、電源電圧は、設計対象回路の外部からＩ／Ｏ回路３０２のＶＤＤおよびＩ／Ｏ回路３０２のＶＳＳへ入力されて供給される。
【００３３】
そして、上層ＶＤＤ配線３０７と最下層ＶＤＤ配線３０５とが、ビア３０９を介して接続されている。上層ＶＳＳ配線３０８と最下層ＶＳＳ配線３０６とが、ビア３０９を介して接続されている。
【００３４】
ｒｏｗＸ０００１Ｙ０００１に配置されている最下層ＶＤＤ配線３０５とｒｏｗＸ０００２Ｙ０００１に配置されている最下層ＶＤＤ配線３０５は、つながっていない（点線の○の囲い）。本実施の形態では、最下層ＶＤＤ配線３０５が独立して配置されている領域ごとに単一のＲＯＷ領域としている。
【００３５】
したがって、ＲＯＷ領域ごとに電源配線の経路が異なるため、ＲＯＷ領域ごとに電圧降下は異なる。さらに、セルごとに電源配線の経路が異なるため、セルごとに電圧降下は異なる。そして、電圧降下は消費電力値により影響されるため、各ＲＯＷ領域に含まれているセルの消費電力値により各ＲＯＷ領域の電圧降下は異なる。さらに、セルごとに消費電力値が異なるため、各セルの電圧降下は異なる。
【００３６】
そして、たとえば、ＲＯＷ領域の面積および形状は、少なくとも設計対象回路に含まれる最大の面積および形状のセルを配置することができる面積および形状である。セルサイズは、たとえば、Ｘ軸方向のセルの長さである。セルの種類によらずセルの１方向の長さはすべて同一の長さである。これにより、どのＲＯＷ領域にどのセルが配置されても最下層ＶＤＤ配線３０５と最下層ＶＳＳ配線３０６に接続させることができる。したがって、ＲＯＷ領域のＸ軸方向の最少の長さは、下記式（１）により決定されている。
【００３７】
ＲＯＷ領域のＸ軸方向の長さ＞＝最大セルサイズ×２＋（電源配線幅）
・・・（１）
【００３８】
式（１）の電源配線幅とは、上層ＶＤＤ配線３０７の配線幅と、上層ＶＳＳ配線３０８の配線幅と、上層ＶＤＤ配線３０７と上層ＶＳＳ配線３０８の配線間隔の合計値である。式（１）内の電源配線幅は、レイアウトデータ３０４内のＷである。そして、たとえば、上層ＶＤＤ配線３０７の補助配線が配線されている場合、さらに補助配線の配線幅と、上層ＶＳＳ配線３０８と補助配線の配線間隔が加算された合計値が、式（１）内の電源配線幅である。
【００３９】
式（１）のＲＯＷ領域のＸ軸方向の長さとは、レイアウトデータ３０４内のｄ１とｄ２とＷの合計値である。レイアウトデータ３０４では、ｄ１がｄ２よりも長くなっているが、実際には、ｄ１とｄ２は同一の長さである。したがって、ＲＯＷ領域内に電源電圧を均一に供給させるために、上層ＶＤＤ配線３０７と上層ＶＳＳ配線３０８はＲＯＷ領域内のＸ方向の中心に配線されている。
【００４０】
（設計支援装置のハードウェア構成）
図４は、実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図４において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３と、磁気ディスクドライブ４０４と、磁気ディスク４０５と、光ディスクドライブ４０６と、光ディスク４０７と、ディスプレイ４０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）４０９と、キーボード４１０と、マウス４１１と、スキャナ４１２と、プリンタ４１３と、を備えている。また、各構成部はバス４００によってそれぞれ接続されている。
【００４１】
ここで、ＣＰＵ４０１は、設計支援装置の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される。磁気ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがって磁気ディスク４０５に対するデータのリード／ライトを制御する。磁気ディスク４０５は、磁気ディスクドライブ４０４の制御で書き込まれたデータを記憶する。
【００４２】
光ディスクドライブ４０６は、ＣＰＵ４０１の制御にしたがって光ディスク４０７に対するデータのリード／ライトを制御する。光ディスク４０７は、光ディスクドライブ４０６の制御で書き込まれたデータを記憶したり、光ディスク４０７に記憶されたデータをコンピュータに読み取らせたりする。
【００４３】
ディスプレイ４０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ４０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４４】
Ｉ／Ｆ４０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク４１４に接続され、このネットワーク４１４を介して他の装置に接続される。そして、Ｉ／Ｆ４０９は、ネットワーク４１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ４０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４５】
キーボード４１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４６】
スキャナ４１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ４１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ４１３は、画像データや文書データを印刷する。プリンタ４１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００４７】
（設計支援装置の機能的構成）
つぎに、設計支援装置の機能的構成について説明する。図５は、設計支援装置の機能的構成を示すブロック図である。設計支援装置５００は、消費電力解析部５０１と、電源網解析部５０２と、タイミング解析部５０３と、抽出部５０４と、第１の特定部５０５と、第１の決定部５０６と、第２の特定部５０７と、算出部５０８と、第２の決定部５０９と、判断部５１０と、置換部５１１と、出力部５１２と、を含む構成である。この制御部となる機能（消費電力解析部５０１〜出力部５１２）は、具体的には、たとえば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、Ｉ／Ｆ４０９により、その機能を実現する。
【００４８】
まず、消費電力解析部５０１は、セルの消費電力値を解析する。具体的には、たとえば、消費電力値を解析するツールを用いることで各セルの消費電力値が算出される。なお、算出結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００４９】
つぎに、電源網解析部５０２は、電源配線の抵抗網を生成して電圧降下を解析する。具体的には、たとえば、ＣＰＵ４０１が、上述した特許文献１のような電源網解析方法を実行することにより各セルの電圧降下を算出する。なお、解析結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。図６にて電源網解析の結果と消費電力値の算出結果を示す。
【００５０】
図６は、設計対象回路内の各セルの消費電力および電圧降下を示す説明図である。各セルの情報６００は、インスタンス名６０１と、セル名６０２と、セルサイズ６０３と、消費電力値６０４と、電圧降下６０５と、ＲＯＷ領域の番号６０６を有している。インスタンス名６０１とは、設計対象回路内の各セルの固有の名称である。上述したＩＮＳＴ００Ａ１などが、インスタンス名６０１である。
【００５１】
セル名６０２とは、ライブラリ内に登録されているセルの種類を識別するための情報である。たとえば、ＦＩＦＯ０１と、ＦＩＦＯ０２と、ＦＩＦＯ０３はＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）を示している。そして、ＢＵＦ００１は、バッファを示している。ＩＮＶ００１とＩＮＶ００２は、インバータを示している。
【００５２】
たとえば、ＩＮＳＴ００Ａ１のセル名６０２は、ＦＩＦＯ０３である。そして、ＩＮＳＴ００Ｄ１のセル名６０２は、ＦＩＦＯ０３である。したがって、ＩＮＳＴ００Ａ１とＩＮＳＴ００Ｄ１はセルの種類が同一である。
【００５３】
つぎに、上述したようにセルサイズ６０３とは、たとえば、Ｘ軸方向のセルの長さである。スタンダードセルの種類によらずセルの１方向の長さはすべて同一の長さである。これにより、どのＲＯＷ領域にどのセルが配置されても最下層ＶＤＤ配線３０５と最下層ＶＳＳ配線３０６に接続させることができる。セルサイズ６０３の単位は［ｇｒｉｄ］である。たとえば、利用者が、具体的に、１ｇｒｉｄの長さを設定することができる。消費電力値は、消費電力解析部５０１により算出された算出結果である。そして、電圧降下６０５は、電源網解析部５０２により解析された結果である。
【００５４】
また、図５に戻って、消費電力解析部５０１は、ＲＯＷ領域ごとに、ＲＯＷ領域に含まれているセルの消費電力値の合計値を算出する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスしてレイアウトデータ２００を読み出す。そして、ＲＯＷ領域の番号順にＲＯＷ領域を選択してＲＯＷ領域に含まれているセルを抽出する。つぎに、記憶装置にアクセスして各セルの情報６００を読み出し、抽出されたセルのインスタンス名６０１に基づいて消費電力値を読み出す。そして、読み出された消費電力値を加算してＲＯＷ領域ごとの消費電力値の合計値を算出する。
【００５５】
たとえば、ｒｏｗＸ０００３Ｙ０００２内のセルの消費電力値の合計値を例に説明する。ｒｏｗＸ０００３Ｙ０００２には、ＩＮＳＴ００Ａ３とＩＮＳＴ００Ａ４が含まれている。たとえば、ＣＰＵ４０１が、各セルの情報６００にアクセスしてＩＮＳＴ００Ａ３の消費電力値である４［μＷ］を読み出す。つぎに、ＩＮＳＴ００Ａ４の消費電力値である３［μＷ］を読み出す。そして、読み出された消費電力値を加算する。したがって、ｒｏｗＸ０００３Ｙ０００２内のセルの消費電力値の合計値は、７［μＷ］である。
【００５６】
なお、算出結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。図７にてＲＯＷ領域ごとの消費電力値の合計を示す。
【００５７】
図７は、各ＲＯＷ領域の消費電力値と電圧降下の最大値を示す説明図である。各ＲＯＷ領域の情報７００は、ＲＯＷ領域の番号６０６と、消費電力値の合計値７０１と、電圧降下の最大値７０２を含んでいる。たとえば、ｒｏｗＸ０００３Ｙ０００２の消費電力値を読み出す場合、ＣＰＵ４０１が、記憶装置にアクセスして各ＲＯＷ領域の情報７００を読み出す。つぎに、ＲＯＷ領域の番号６０６の中からｒｏｗＸ０００３Ｙ０００２を検索する。そして、検索されたｒｏｗＸ０００３Ｙ０００２の消費電力値の合計値７０１を読み出す。
【００５８】
電圧降下の最大値７０２は、各ＲＯＷ領域内のセルの電圧降下の最大値である。各セルの情報６００の中からＲＯＷ領域ごとにＲＯＷ領域の番号６０６に基づいて電圧降下６０５が読み出され、最大の電圧降下６０５が電圧降下の最大値７０２に記述されている。
【００５９】
つぎに、図５に戻って、タイミング解析部５０３は、静的タイミング解析と電圧降下の遅延解析を組み合わせた解析によりタイミングの制約に違反しているパスがあるか否かを解析する。具体的には、たとえば、ＣＰＵ４０１が、既存の静的タイミング解析と電圧降下の遅延解析を組み合わせた解析ツールを実行することにより解析することができる。なお、解析結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００６０】
本実施の形態の説明で用いるレイアウトデータ２００は、静的タイミング解析と電圧降下の遅延解析を組み合わせた解析によりセットアップタイミングの制約に違反しているデータパスを含むレイアウトデータである。たとえば、静的タイミング解析のみでセットアップタイミングの制約に違反しているデータパスを含むレイアウトデータの場合、再度、利用者が初期配置や配線を修正することによりセットアップタイミングの制約違反を解消することとする。
【００６１】
したがって、利用者が、電圧降下の遅延解析を組み合わせない静的タイミング解析をあらかじめ実行してタイミングエラーを含んでいないレイアウトデータであることを確認する。そして、静的タイミング解析のみの解析結果がタイミングエラーを含んでいない場合、本設計支援装置５００により静的タイミング解析と電圧降下の遅延解析を組み合わせた解析をレイアウトデータに実施することで本実施の形態の効果を得ることができる。そして、図８にて静的タイミング解析と電圧降下の遅延解析を組み合わせた解析の解析結果を示す。
【００６２】
図８は、タイミング解析の解析結果を示す説明図である。タイミング解析結果８００は、インスタンス名６０１と、入出力名８０１と、Ｓｌａｃｋ８０２を含んでいる。入出力名８０１とは、セルのどの入力部または出力部５１２であるかを識別する情報である。上述したようにＳｌａｃｋとは、タイミングの余裕度である。本実施の形態では、Ｓｌａｃｋ８０２は、セットアップタイミングの制約に対する余裕度を示している。
【００６３】
たとえば、インスタンス名６０１がＩＮＳＴ００Ａ５の場合、入出力名８０１がＰｉｎのＳｌａｃｋ８０２は６０［ｐｓ］である。ＩＮＳＴ００Ａ５のＰｉｎとは、ＩＮＳＴ００Ａ５のデータ入力部である。したがって、ＩＮＳＴ００Ａ５に入力されるデータパスは、セットアップタイミングの制約に遵守している。タイミング解析結果８００のＳｌａｃｋ８０２によりレイアウトデータ２００に含まれているデータパスがセットアップタイミングの制約に遵守しているか否かが判別される。
【００６４】
つぎに、図５に戻って、抽出部５０４は、レイアウトデータの中から電圧降下によりセットアップタイミングの制約に違反しているデータパス内のセルを抽出する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスしてタイミング解析結果８００から、記述されているインスタンス名６０１の順にＳｌａｃｋ８０２を読み出す。そして、Ｓｌａｃｋ８０２がＮｅｇａｔｉｖｅ  Ｓｌａｃｋであるインスタンス名６０１を抽出する。なお、抽出結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００６５】
下記に抽出されたＮｅｇａｔｉｖｅ  Ｓｌａｃｋのセルを示す。Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリストには、インスタンス名６０１が記述されている。
Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト１：ＩＮＳＴ００Ｃ１、ＩＮＳＴ００Ｃ２、ＩＮＳＴ００Ｃ３、ＩＮＳＴ００Ｃ４、ＩＮＳＴ００Ｃ５
【００６６】
つぎに、第１の特定部５０５は、レイアウトデータ内の複数のＲＯＷ領域の中から、抽出部５０４により抽出されたデータパス内のセルを含む第１のＲＯＷ領域を特定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスしてＮｅｇａｔｉｖｅ  Ｓｌａｃｋリスト１を読み出す。そして、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト１内のセルを選択する。
【００６７】
つぎに、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして各セルの情報６００を読み出す。そして、インスタンス名６０１に基づいてＲＯＷ領域の番号６０６を読み出し、選択されたセルのＲＯＷ領域の番号６０６を特定する。なお、特定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００６８】
また、第１の特定部５０５は、抽出部５０４により抽出されたデータパス内の複数のセルのタイミングの余裕度の絶対値に基づいて第１のＲＯＷ領域を特定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスしてＮｅｇａｔｉｖｅ  Ｓｌａｃｋリストを読み出す。そして、記憶装置にアクセスしてタイミング解析結果８００を読み出す。Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト内のインスタンス名６０１に基づいてタイミング解析結果８００内のＳｌａｃｋ８０２を読み出す。
【００６９】
そして、たとえば、ＣＰＵ４０１が、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト内のセルをＳｌａｃｋ８０２の絶対値が大きい順に並び替える。本実施の形態では、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト１内のセルのＳｌａｃｋ８０２がすべて同一のため、並び替える処理が実行されない。
【００７０】
これにより、タイミングの制約に違反しているセルの中で最もタイミングの制約に遵守することが困難なセルを含む第１のＲＯＷ領域の消費電力値の低減化を図ることができる。したがって、電圧降下により発生するセットアップタイミング違反を抑制することができる。
【００７１】
また、第１の特定部５０５は、抽出部５０４により抽出された複数のセルのタイミングの余裕度の絶対値が同一の場合、電圧降下が大きいセル順に第１のＲＯＷ領域を特定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして各セルの情報６００を読み出す。そして、各セルの情報６００からＳｌａｃｋ８０２の絶対値が同一であるセルの電圧降下６０５を読み出す。つぎに、読み出された電圧降下６０５を比較して電圧降下６０５の値が大きいセル順に並び替える。
【００７２】
Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト内のセルをＳｌａｃｋ８０２が同一の場合、電圧降下６０５順に並び替えた結果を下記に示す。上述したようにセルのＳｌａｃｋ８０２は、すべて同一であったため、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト１内のセルはすべて電圧降下６０５順に並び替えられた。なお、電圧降下６０５が同一の場合、セルはＮｅｇａｔｉｖｅ  Ｓｌａｃｋリスト１内の順に記述されている。
Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト２：ＩＮＳＴ００Ｃ１、ＩＮＳＴ００Ｃ３、ＩＮＳＴ００Ｃ５、ＩＮＳＴ００Ｃ２、ＩＮＳＴ００Ｃ４
【００７３】
つぎに、たとえば、ＣＰＵ４０１が、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト２内の１番目のセルを選択する。そして、各セルの情報６００から選択されたセルのＲＯＷ領域の番号６０６を読み出す。そして、読み出されたＲＯＷ領域の番号６０６が、第１のＲＯＷ領域に特定される。
【００７４】
たとえば、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト２内の１番目のセルは、ＩＮＳＴ００Ｃ１である。ＩＮＳＴ００Ｃ１を有しているＲＯＷ領域の番号６０６は、ｒｏｗＸ０００１Ｙ０００３である。したがって、ｒｏｗＸ０００１Ｙ０００３が第１のＲＯＷ領域に特定される。
【００７５】
これにより、電圧降下の大きいセルを含むＲＯＷ領域内のセルを置換対象のセルに自動で特定することができる。したがって、電圧降下により発生するセットアップタイミング違反を抑制することができる。
【００７６】
つぎに、第１の決定部５０６は、第１の特定部５０５により特定された第１のＲＯＷ領域内のセルの内、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋのセルを除く第１のＲＯＷ領域内のセルを第１のセルに決定する。
【００７７】
具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスしてレイアウトデータ２００を読み出す。そして、第１のＲＯＷ領域内のセルを抽出する。つぎに、記憶装置にアクセスしてタイミング解析結果８００を読み出す。そして、タイミング解析結果８００から抽出されたセルのＳｌａｃｋ８０２を読み出す。つぎに、読み出されたＳｌａｃｋがＮｅｇａｔｉｖｅ  ＳｌａｃｋであるかＰｏｓｉｔｉｖｅ  Ｓｌａｃｋであるかを判断する。そして、読み出されたＳｌａｃｋ８０２がＰｏｓｉｔｉｖｅ  Ｓｌａｃｋであるセルを第１のセルに決定する。
【００７８】
また、第１の決定部５０６は、第１の特定部５０５により特定された第１のＲＯＷ領域内のセルの中から、さらにクロックバッファセルおよびデータ保持素子のセルを除くセルを第１のセルに決定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして各セルの情報６００を読み出す。そして、第１のＲＯＷ領域内のＰｏｓｉｔｉｖｅ  Ｓｌａｃｋであるセルのセル名６０２を読み出す。つぎに、読み出されたセル名６０２がクロックバッファのセル名６０２またはデータ保持素子のセル名６０２でないセルを抽出する。そして、抽出されたセルを第１のセルに決定する。
【００７９】
これにより、タイミングに影響の少ないセルを置換対象とすることができる。したがって、セルの置換により他のデータパスにタイミングエラーが発生するのを抑制することができる。
【００８０】
本実施の形態では、データ保持素子とは、ＦＦやラッチの様な順序回路に用いられる素子を示している。さらに、クロックバッファまたはデータ保持素子を少なくとも１つを含む構成のセルは、第１のセルに決定されない。
【００８１】
たとえば、第１のＲＯＷ領域に決定されたｒｏｗＸ０００１Ｙ０００３内のセルは、ＩＮＳＴ００Ｃ１とＩＮＳＴ００Ｂ１である。ＩＮＳＴ００Ｃ１は、Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋであるため第１のセルに決定されない。ＩＮＳＴ００Ｂ１は、Ｐｏｓｉｔｉｖｅ  Ｓｌａｃｋである。しかしながら、ＩＮＳＴ００Ｂ１のセル名６０２はＦＩＦＯ０２である。ＦＩＦＯ０２は、ＦＦを示している。したがって、ｒｏｗＸ０００１Ｙ０００３の中から第１のセルは決定されない。
【００８２】
したがって、上述したＮｅｇａｔｉｖｅ  Ｓｌａｃｋリスト２の２番目のセルを含む第１のＲＯＷ領域に特定される。Ｎｅｇａｔｉｖｅ  Ｓｌａｃｋリスト２の２番目のセルは、ＩＮＳＴ００Ｃ３である。ＩＮＳＴ００Ｃ３を有しているＲＯＷ領域は、ｒｏｗＸ０００３Ｙ０００３である。よって、ｒｏｗＸ０００３Ｙ０００３が第１のＲＯＷ領域に特定される。
【００８３】
そして、たとえば、ＣＰＵ４０１が、レイアウトデータ２００からｒｏｗＸ０００３Ｙ０００３内のセルを抽出する。ｒｏｗＸ０００３Ｙ０００３内のセルは、ＩＮＳＴ００Ｃ３と、ＩＮＳＴ００Ｃ４と、ＩＮＳＴ００Ｂ３と、ＩＮＳＴ００Ｂ４である。そして、たとえば、ＣＰＵ４０１が、タイミング解析結果８００からｒｏｗＸ０００３Ｙ０００３内のセルのＳｌａｃｋ８０２を読み出す。つぎに、読み出されたＳｌａｃｋ８０２によりｒｏｗＸ０００３Ｙ０００３内のセルからＰｏｓｉｔｉｖｅ  Ｓｌａｃｋのセルを抽出する。ＩＮＳＴ００Ｂ３およびＩＮＳＴ００Ｂ４のＳｌａｃｋ８０２は、Ｐｏｓｉｔｉｖｅ  Ｓｌａｃｋである。したがって、ＩＮＳＴ００Ｂ３とＩＮＳＴ００Ｂ４が抽出される。
【００８４】
そして、たとえば、ＣＰＵ４０１が、各セルの情報６００から抽出されたセルのセル名６０２を読み出す。そして、読み出されたセル名６０２の中からクロックバッファセルのセル名６０２またはデータ保持素子のセル名６０２を除くセルを抽出する。ＩＮＳＴ００Ｂ３のセル名６０２は、ＩＮＶ００１である。ＩＮＶ００１とは、インバータを示している。そして、ＩＮＳＴ００Ｂ４のセル名６０２は、ＩＮＶ００２である。ＩＮＶ００２とは、インバータを示している。したがって、ＩＮＳＴ００Ｂ３とＩＮＳＴ００Ｂ４が第１のセルに決定される。なお、決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００８５】
ｒｏｗＸ０００３Ｙ０００３が第１のＲＯＷ領域の場合の第１のセルの決定結果を下記に示す。
第１のＲＯＷ領域：ｒｏｗＸ０００３Ｙ０００３
第１のセルのリスト１：ＩＮＳＴ００Ｂ３、ＩＮＳＴ００Ｂ４
【００８６】
また、第１の決定部５０６は、第１の特定部５０５により特定された第１のＲＯＷ領域内のセルの中から、最も消費電力値が高いセルを第１のセルに決定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして第１のセルのリスト１および各セルの情報６００を読み出す。そして、第１のセルのリスト１内のセルの消費電力値を各セルの情報６００から読み出す。
【００８７】
つぎに、たとえば、ＣＰＵ４０１が、読み出された第１のセルのリスト１内のセルの消費電力値６０４を比較して消費電力値６０４が高い順に並び替える。そして、１番目のセル（消費電力値６０４が最も高いセル）を第１のセルに決定する。なお、決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００８８】
消費電力値６０４が高い順に並び替えられた結果を下記に示す。
第１のＲＯＷ領域：ｒｏｗＸ０００３Ｙ０００３
第１のセルのリスト２：ＩＮＳＴ００Ｂ４、ＩＮＳＴ００Ｂ３
【００８９】
したがって、第１のセルのリスト２の中から１番目のセルであるＩＮＳＴ００Ｂ４が第１のセルに決定される。これにより、置換後に第１のＲＯＷ領域内の消費電力値を最も低くすることが可能な置換対象のセルを自動で特定することができる。したがって、第１のＲＯＷ領域の消費電力値を容易に低くでき、電圧降下により発生するセットアップタイミング違反を効率的に抑制することができる。
【００９０】
つぎに、第２の特定部５０７は、レイアウトデータ内の複数のＲＯＷ領域の中から抽出部５０４により抽出されたセルを含まない第２のＲＯＷ領域を特定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスしてＮｅｇａｔｉｖｅ  Ｓｌａｃｋリスト２を読み出す。そして、記憶装置にアクセスしてレイアウトデータ２００を読み出す。つぎに、レイアウトデータ２００の中からＮｅｇａｔｉｖｅ  Ｓｌａｃｋリスト内のセルを含まないＲＯＷ領域を抽出する。そして、抽出されたＲＯＷ領域を第２のＲＯＷ領域に特定する。なお、特定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００９１】
第２のＲＯＷ領域に特定されたＲＯＷ領域を下記第２のＲＯＷ領域リスト１に示す。
第２のＲＯＷ領域のリスト１：ｒｏｗＸ０００１Ｙ０００２、ｒｏｗＸ０００２Ｙ０００２、ｒｏｗＸ０００３Ｙ０００２、ｒｏｗＸ０００４Ｙ０００２、ｒｏｗＸ０００１Ｙ０００４、ｒｏｗＸ０００２Ｙ０００４、ｒｏｗＸ０００３Ｙ０００４、ｒｏｗＸ０００４Ｙ０００４
【００９２】
また、第２の特定部５０７は、第１の特定部５０５により特定された第１のＲＯＷ領域に隣接しているＲＯＷ領域の中から、第２のＲＯＷ領域を特定する。図９にて隣接しているＲＯＷ領域の例を示す。
【００９３】
図９は、第１のＲＯＷ領域に隣接しているＲＯＷ領域を示す説明図である。レイアウトデータ９００では、第１のＲＯＷ領域に隣接しているＲＯＷ領域を示している。ｒｏｗＸ０００３Ｙ０００３が第１のＲＯＷ領域である。第２の特定部５０７は、１の矢印（実線の矢印）の内側のＲＯＷ領域の中から消費電力値の合計値が最も低い第２のＲＯＷ領域を特定する。
【００９４】
具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスしてタイミング解析結果８００と、レイアウトデータ９００を読み出す。つぎに、レイアウトデータ９００の中に１が付されているｒｏｗＸ０００２Ｙ０００２から１の矢印の順にＲＯＷ領域を選択する。そして、選択されたＲＯＷ領域内のインスタンス名に基づいてタイミング解析結果８００内のインスタンス名６０１にアクセスし、Ｓｌａｃｋ８０２を読み出す。そして、選択されたＲＯＷ領域内のすべてのＳｌａｃｋ８０２が、Ｐｏｓｉｔｉｖｅ  Ｓｌａｃｋの場合、選択されたＲＯＷ領域を第２のＲＯＷ領域に特定する。なお、特定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００９５】
第２のＲＯＷ領域に特定されたＲＯＷ領域を下記第２のＲＯＷ領域リスト２に示す。
第２のＲＯＷ領域のリスト２：ｒｏｗＸ０００２Ｙ０００２、ｒｏｗＸ０００２Ｙ０００４、ｒｏｗＸ０００３Ｙ０００４、ｒｏｗＸ０００４Ｙ０００４、ｒｏｗＸ０００４Ｙ０００２、ｒｏｗＸ０００３Ｙ０００２
【００９６】
図５に戻って、また、たとえば、第２の特定部５０７は、１の矢印の内側のＲＯＷ領域の中から第２のＲＯＷ領域を特定できなかった場合、１の矢印の外側でかつ２の矢印（点線の矢印）の内側であるＲＯＷ領域の中から第２のＲＯＷ領域を特定する。
【００９７】
そして、１の矢印の外側でかつ２の矢印（点線の矢印）の内側であるＲＯＷ領域の中から第２のＲＯＷ領域が特定されなかった場合、第２のＲＯＷ領域が特定されなかった情報を出力する。これにより、第１のＲＯＷ領域内の第１のセルの近傍のＲＯＷ領域の中から第２のＲＯＷ領域を特定することができる。
【００９８】
これにより、第１のセルの配置位置が、置換前の配置位置から離間しにくくすることができ、置換することにより新たにタイミングエラーが発生するのを防止することができる。なお、本実施の形態では、２の矢印の順に基づいて第２のＲＯＷ領域が特定される説明は省略する。
【００９９】
また、第２のＲＯＷ領域は複数特定されているが、たとえば、第２のＲＯＷ領域リスト２内の複数のＲＯＷ領域から任意のＲＯＷ領域が第２のＲＯＷ領域に特定されることとしてもよい。たとえば、各ＲＯＷ領域７００内の消費電力値の合計値７０１に基づいて、第２のＲＯＷ領域リスト２内の複数のＲＯＷ領域から消費電力値の合計値７０１が最も低いＲＯＷ領域が第２のＲＯＷ領域に特定されることとしてもよい。
【０１００】
また、たとえば、各ＲＯＷ領域７００内の電圧降下の最大値７０２に基づいて、第２のＲＯＷ領域リスト２内の複数のＲＯＷ領域から最も電圧降下の低いＲＯＷ領域が第２のＲＯＷ領域に特定されることとしてもよい。なお、本実施の形態では、消費電力値の合計値７０１および電圧降下の最大値７０２に基づいて第２のＲＯＷ領域が決定される説明を省略する。そして、第２の決定部５０９は、任意の第２のＲＯＷ領域から第２のセルを決定する。
【０１０１】
任意のＲＯＷ領域が第２のＲＯＷ領域に決定されている場合、第２の特定部５０７は、すでに第２のＲＯＷ領域として特定されたＲＯＷ領域内から第２の決定部５０９により第２のセルが決定されなかった場合、新たにＲＯＷ領域を第２のＲＯＷ領域に特定する。
【０１０２】
具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして第２のＲＯＷ領域リスト２を読み出す。そして、すでに第２のＲＯＷ領域に特定されたＲＯＷ領域の次に記述されているＲＯＷ領域を第２のＲＯＷ領域に特定する。なお、第２の特定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。本実施の形態では、複数のＲＯＷ領域から任意のＲＯＷ領域が第２のＲＯＷ領域に特定される説明を省略する。そして、本実施の形態では、第２のＲＯＷ領域リスト２内の複数のＲＯＷ領域から第２のセルを決定する例を説明する。
【０１０３】
つぎに、第２の決定部５０９は、第２の特定部５０７により特定された第２のＲＯＷ領域内のセルを第２のセルに決定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして第２の特定結果（第２のＲＯＷ領域リスト２）を読み出す。そして、記憶装置にアクセスしてレイアウトデータ２００の中から第２のＲＯＷ領域内のセルを抽出する。つぎに、抽出されたセルを第２のセル候補に決定する。
【０１０４】
第２のセル候補とは、セルが複数抽出された場合、第２のセル候補からいずれか１つのセルが第２のセルに決定される。たとえば、第２のセル候補が単一の場合、第２のセル候補が第２のセルに決定される。なお、第２の決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【０１０５】
第２の決定結果を下記第２のセル候補リスト１に示す。なお、第２のセル候補リスト１には、インスタンス名６０１が含まれている。
第２のセル候補リスト１：ＩＮＳＴ００Ａ２、ＩＮＳＴ００Ｄ２、ＩＮＳＴ００Ｄ３、ＩＮＳＴ００Ｄ４、ＩＮＳＴ００Ｄ５、ＩＮＳＴ００Ａ５、ＩＮＳＴ００Ａ３、ＩＮＳＴ００Ａ４
【０１０６】
また、第２の決定部５０９は、第２の特定部５０７により特定された第２のＲＯＷ領域内のセルの中から、第１のセルと同一面積かつ同一形状であるセルを第２のセルに決定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして第２の特定結果を読み出す。そして、記憶装置にアクセスしてレイアウトデータ２００から特定された第２のＲＯＷ内のセルを抽出する。
【０１０７】
そして、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして各セルの情報６００から第１のセルと抽出されたセルのセルサイズ６０３を読み出す。そして、抽出されたセルの中から読み出された第１のセルのセルサイズ６０３と同一のセルサイズ６０３であるセルを第２のセル候補に決定する。第２のセル候補が単一の場合、第２のセル候補が第２のセルに決定される。なお、第２の決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【０１０８】
これにより、他のセルを再配置することなく第１のセルと第２のセルを自動で置換することができる。したがって、設計期間の短縮化を図ることができる。
【０１０９】
第２の決定結果を下記第２のセル候補リスト２に示す。なお、第２のセル候補リスト２には、インスタンス名６０１が含まれている。
第２のセル候補リスト２：ＩＮＳＴ００Ｄ３、ＩＮＳＴ００Ｄ４、ＩＮＳＴ００Ａ３、ＩＮＳＴ００Ａ４
【０１１０】
さらに、第２の決定部５０９は、第２の特定部５０７により特定された第２のＲＯＷ領域内のセルの中から、第１のセルと同一面積かつ同一形状となる複数セルを第２のセルに決定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして第２の特定結果を読み出す。そして、記憶装置にアクセスしてレイアウトデータ２００から特定された第２のＲＯＷ内のセルを抽出する。
【０１１１】
そして、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして各セルの情報６００から第１のセルと抽出されたセルのセルサイズ６０３を読み出す。そして、抽出されたセルの中から複数のセルのセルサイズ６０３を足し合わせたセルサイズ６０３と第１のセルのセルサイズ６０３とが同一となる複数のセルを第２のセル候補に特定する。なお、第２の決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。本実施の形態では、第１のセルと同一形状および同一面積である複数のセルが第２のセルに決定される例の説明を省略する。
【０１１２】
また、第２の決定部５０９は、第２の特定部５０７により特定された第２のＲＯＷ領域内のセルの中から、クロックバッファとデータ保持素子を除くセルを第２のセル候補に決定する。さらに、クロックバッファおよびデータ保持素子を少なくとも１つ含む構成のセルは、第２のセル候補に決定されない。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして第２の特定結果を読み出す。そして、記憶装置にアクセスしてレイアウトデータ２００の中から第２のＲＯＷ領域内のセルを抽出する。つぎに、抽出されたセルのインスタンス名６０１に基づいて記憶装置にアクセスして各セルの情報６００からセル名６０２を読み出す。
【０１１３】
そして、たとえば、ＣＰＵ４０１が、抽出されたセルごとに、読み出されたセル名６０２により抽出されたセルがクロックバッファまたはデータ保持素子のセルであるか否かを判断する。つぎに、クロックバッファまたはデータ保持素子でないと判断された場合、抽出されたセルを第２のセル候補に決定する。第２のセル候補が単一の場合、第２のセル候補が第２のセルに決定される。なお、第２の決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【０１１４】
たとえば、第２のＲＯＷ領域のリスト２内のｒｏｗＸ０００２Ｙ０００２に配置されているＩＮＳＴ００Ａ２は、セル名６０２がＢＵＦ００１である。したがって、ＩＮＳＴ００Ａ２は、バッファのセルであるため、第２のセル候補に決定される。第２のＲＯＷ領域のリスト２内のｒｏｗＸ０００４Ｙ０００２内のＩＮＳＴ００Ａ５は、セル名６０２がＦＩＦＯ０３である。したがって、ＩＮＳＴ００Ａ５は、データ保持素子のセルであるため、第２のセル候補に決定されない。
【０１１５】
また、具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして上述した第２のセル候補リスト２を読み出す。そして、第２のセル候補リスト２内のセルのインスタンス名６０１に基づいて各セルの情報６００からセル名６０２を読み出す。読み出されたセル名６０２により抽出されたセルがクロックバッファまたはデータ保持素子のセルであるか否かを判断する。
【０１１６】
つぎに、具体的には、たとえば、ＣＰＵ４０１が、クロックバッファまたはデータ保持素子でないと判断された場合、抽出されたセルを第２のセル候補に決定する。なお、第２のセル候補が単一の場合、第２のセル候補が第２のセルに決定される。なお、第２の決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【０１１７】
これにより、クロックバッファおよびデータ保持素子のセルを除くセル候補に決定することで、タイミングに影響の少ないセルを置換対象とすることができる。したがって、セルの置換により他のデータパスにタイミングエラーが発生するのを抑制することができる。
【０１１８】
なお、第２のセル候補リスト２内のセルは、クロックバッファおよびデータ保持素子のセルでない。本実施の形態では、第２のセル候補リスト２内のセルからクロックバッファおよびデータ保持素子のセルを除くセルが、第２のセル候補に決定される例の説明を省略する。
【０１１９】
図５に戻って、また、第２の決定部５０９は、第２の特定部５０７により特定された第２のＲＯＷ領域内のセルの中から、最も消費電力値が低いセルを第２のセルに決定する。本実施の形態では、特定された第２のＲＯＷ領域内から上述した第２の決定部５０９により決定された第２のセル候補リスト２の中で最も消費電力値の低いセルが第２のセル候補に決定される例を説明する。なお、第２のセル候補が単一の場合、第２のセル候補が第２のセルに決定される。
【０１２０】
具体的には、たとえば、記憶装置にアクセスして第２のセル候補リスト２内のインスタンス名６０１を読み出す。そして、記憶装置にアクセスして各セルの情報６００からインスタンス名６０１に基づいてセルの消費電力値６０４を読み出す。つぎに、読み出された消費電力値６０４を比較して消費電力値６０４が低いセル順に並び替える。そして、最も消費電力値の低いセルを第２のセル候補に決定する。なお、第２の決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【０１２１】
第２の決定結果を下記第２のセル候補リスト３に示す。なお、第２のセル候補リスト３には、インスタンス名６０１が含まれている。
第２のセル候補リスト３：ＩＮＳＴ００Ｄ４、ＩＮＳＴ００Ａ４
【０１２２】
これにより、最も消費電力値が低いセルを第２のセルに決定することにより、第１のセルを、第１のＲＯＷ領域の消費電力値を最も低くすることができる第２のＲＯＷ領域内のセルと置換することができる。したがって、第１のＲＯＷ領域の消費電力値を容易に低くすることができ、電圧降下により発生するセットアップタイミング違反を効率的に抑制することができる。
【０１２３】
また、第２の決定部５０９は、第２の特定部５０７により特定された第２のＲＯＷ領域内の複数のセルの消費電力値が同一の場合、Ｓｌａｃｋの絶対値に基づいて第２のセルを決定する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして第２のセル候補リスト３を読み出す。
【０１２４】
そして、たとえば、ＣＰＵ４０１が、第２のセル候補リスト３内のインスタンス名６０１に基づいて、記憶装置にアクセスして各セルの情報６００から電圧降下６０５を読み出す。そして、電圧降下６０５が最も低いインスタンス名６０１を、第２のセル候補に決定する。なお、第２の決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。本実施の形態では、第２のセル候補リスト３内のＩＮＳＴ００Ａ４とＩＮＳＴ００Ｄ４は、同一の電圧降下である。
【０１２５】
第２の決定結果を下記第２のセル候補リスト４に示す。なお、第２のセル候補リスト４には、インスタンス名６０１が含まれている。
第２のセル候補リスト４：ＩＮＳＴ００Ｄ４、ＩＮＳＴ００Ａ４
【０１２６】
つぎに、算出部５０８は、第２の特定部５０７により特定された第２のＲＯＷ領域内のセルごとに第１の決定部５０６により決定された第１のセルとの距離を算出する。なお、本実施の形態では、第２のセル候補リスト４内のセルごとに、第１のセルとの距離が算出される例を説明する。
【０１２７】
具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして第２のセル候補リスト４を読み出す。そして、記憶装置にアクセスしてレイアウトデータ２００のから第２のセル候補リスト４内のセルと第１のセルが配置されている座標値を読み出す。そして、第２のセル候補リスト４内のセルごとに、読み出された座標値により第１のセルから第２のセル候補リスト４内のセルとの距離を算出する。なお、算出結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【０１２８】
算出結果を下記算出結果リストに示す。算出結果リストには、（インスタンス名６０１、距離［ｇｒｉｄ］）が含まれている。
算出結果リスト：（ＩＮＳＴ００Ａ４、５）、（ＩＮＳＴＴ００Ｄ４、６）
【０１２９】
また、第２の決定部５０９は、算出部５０８により第２のＲＯＷ領域内のセルごとに算出された第１のセルとの距離が最も短い第２のＲＯＷ領域内のセルを第２のセルに決定する。具体的には、たとえば、記憶装置にアクセスして算出結果リストを読み出す。そして、距離が、最も短い値であるインスタンス名６０１を、第２のセル候補に決定する。なお、第２のセル候補が単一の場合、第２のセル候補が決定される。また、第２のセル候補が複数ある場合、第２のセル候補の中から任意のセルが第２のセルに決定される。なお、決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【０１３０】
これにより、第１のセルとの距離を算出し、算出された第１のセルとの距離が最も短い第２のＲＯＷ領域内のセルを第２のセルに決定することにより、置換処理による第１のセルを含むデータパスと第２のセルを含むデータパスの配線経路の変更を最小限に抑制することができる。本実施の形態では、算出結果リストに基づいてＩＮＳＴ００Ａ４が第２のセルに決定される。図１０に第１のセルと第２のセルの配置位置を示す。
【０１３１】
図１０は、第１のセルと第２のセルの配置位置を示す説明図である。レイアウトデータ１０００では、第１のセルと第２のセルの配置位置を示している。ＩＮＳＴ００Ｂ４が第１のセルである。そして、ＩＮＳＴ００Ａ４が第２のセルである。レイアウトデータ１０００内の矢印は、第１のセルと第２のセルの配置位置が置換されることを示している。
【０１３２】
つぎに、出力部５１２は、第１の決定部５０６により決定された第１のセルの消費電力値と第２の決定部５０９により決定された第２のセルの消費電力値を出力する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして各セルの情報６００の中から第１のセルおよび第２のセルの消費電力値６０４を読み出す。そして、読み出された第１のセルおよび第２のセルの消費電力値６０４を出力する。
【０１３３】
出力形式としては、たとえば、ディスプレイ４０８への表示、プリンタ４１３への印刷出力、Ｉ／Ｆ４０９による外部装置への送信がある。また、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶することとしてもよい。
【０１３４】
たとえば、出力結果を下記に示す。下記は（インスタンス名６０１、消費電力値６０４）である。
第１のセル：（ＩＮＳＴ００Ｂ４、６）
第２のセル：（ＩＮＳＴ００Ａ４、３）
【０１３５】
これにより、第１のＲＯＷ領域の消費電力値を低くするための置換対象のセルを自動で特定することができる。利用者が、出力された置換対象のセルの消費電力値を参照するだけで、セルの置換可否を容易に決定することができる。したがって、セルを置換することにより、タイミングの制約に遵守させるためにデータパス内へ新たにセルを追加させることなく、電圧降下により発生するセットアップタイミングの制約違反を効率的に抑制することができる。
【０１３６】
つぎに、判断部５１０は、第２の決定部５０９により決定された第２のセルの消費電力値が、第１の決定部５０６により決定された第１のセルの消費電力値未満であるかを判断する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして各セルの情報６００の中から第１のセルおよび第２のセルの消費電力値６０４を読み出す。つぎに、読み出された第２のセルの消費電力値６０４が、第１のセルの消費電力値６０４未満であるかを判断する。なお、判断結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【０１３７】
たとえば、第１のセルであるＩＮＳＴ００Ｂ４の消費電力値６０４は、６である。そして、第２のセルであるＩＮＳＴ００Ａ４の消費電力値６０４は、３である。したがって、第２のセルの消費電力値６０４は、第１のセルの消費電力値６０４未満であると判断される。
【０１３８】
また、第２の特定部５０７は、判断部５１０により第２のセルの消費電力値が、第１のセルの消費電力値未満でないと判断された場合、レイアウトデータ内の複数のＲＯＷ領域の内、すでに第２のＲＯＷ領域として特定されたＲＯＷ領域を除き、かつＮｅｇａｔｉｖｅ  Ｓｌａｃｋを含まないＲＯＷ領域を新たに第２のＲＯＷ領域に特定する。本実施の形態では、複数の第２のＲＯＷ領域から第２のセルが決定されているため、あらたに第２のＲＯＷ領域が特定されない。
【０１３９】
たとえば、上述したように複数のＲＯＷ領域から任意のＲＯＷ領域が第２のＲＯＷ領域に特定される場合、あらたに第２のＲＯＷ領域が特定されることで第１のセルを、消費電力値が低くかつ電圧降下の影響が少ないＲＯＷ領域内のセルと置換することができる。したがって、セルの置換により第２のＲＯＷ領域にタイミングエラーを発生するのを抑制することができる。
【０１４０】
具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして判断結果を読み出す。そして、第２のセルの消費電力値が、第１のセルの消費電力値未満でないと判断された場合、記憶装置にアクセスして第２のＲＯＷ領域リスト２を読み出す。そして、第２のＲＯＷ領域リスト２からすでに第２のＲＯＷ領域に特定されたＲＯＷ領域の次に記述されているＲＯＷ領域を第２のＲＯＷ領域に特定する。そして、再度、第２の決定部５０９により第２のセルが実行される。なお、本実施の形態では、複数のＲＯＷ領域からあらたに任意の第２のＲＯＷ領域が特定される説明を省略する。
【０１４１】
つぎに、置換部５１１は、判断部５１０により第２のセルの消費電力値が、第１のセルの消費電力値未満であると判断された場合、第１のセルと第２のセルの配置位置を置換する。具体的には、たとえば、ＣＰＵ４０１が、記憶装置にアクセスして判断結果を読み出す。そして、第２のセルの消費電力値６０４が第１のセルの消費電力値６０４未満であると判断されている場合、記憶装置にアクセスしてレイアウトデータ２００内の第１のセルと第２のセルの座標値を置換する。
【０１４２】
また、出力部５１２は、置換部５１１により置換された置換結果を出力する。具体的には、たとえば、第１のセルと第２のセルの配置位置が置換されたレイアウトデータを置換済レイアウトデータとして出力する。
【０１４３】
出力形式としては、たとえば、ディスプレイ４０８への表示、プリンタ４１３への印刷出力、Ｉ／Ｆ４０９による外部装置への送信がある。また、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶することとしてもよい。なお、第１のセルと第２のセルが置換された置換結果は、置換済レイアウトデータ１００に示す。
【０１４４】
これにより、第１のＲＯＷ領域の消費電力値が置換前よりも低くなるように第１のＲＯＷ領域内のセルを再配置することができる。したがって、タイミングの制約に遵守させるためにデータパスにセルを追加させることなく電圧降下により発生するセットアップタイミング違反を抑制することができる。
【０１４５】
つぎに、たとえば、第１のセルと第２のセルの置換後に配線が行われる。そして、置換済レイアウトデータ１００が、上述した電源網解析部５０２により電源配線の抵抗網を生成して電圧降下が解析される。つぎに、上述したタイミング解析部５０３によりタイミングの制約に違反しているパスがあるか否かが解析される。
【０１４６】
つづいて、タイミング制約に違反しているパスがあると判断された場合、置換済レイアウトデータ１００へ上述した上層ＶＤＤ配線３０７と同一の層により補助電源配線が配線される。たとえば、ＲＯＷ領域ごとに、上層ＶＳＳ配線３０８が上層ＶＤＤ配線３０７と補助電源配線により挟まれるようなレイアウトデータとなる。そして、タイミング制約に違反しているパスのセルを含むＲＯＷ領域に、当該ＲＯＷ領域内の補助電源配線と最下層ＶＤＤ配線３０５とを接続させるためのビア３０９が挿入される。これにより、タイミング制約に違反しているパス内のセルの電圧降下が改善され、タイミング違反を抑制することができる。
【０１４７】
（設計支援装置５００の設計支援処理手順）
実施の形態にかかる設計支援装置５００の設計支援処理手順について説明する。図１１は、設計支援装置５００の設計支援処理手順を示すフローチャートである。まず、レイアウトデータを取得する（ステップＳ１１０１）。なお、取得されるレイアウトデータは、あらかじめ補助電源配線が配置されていることとする。つぎに、ＳＴＡ（Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ（静的タイミング解析））を実施し（ステップＳ１１０２）、セットアップタイムに違反しているか否かを判断する（ステップＳ１１０３）。
【０１４８】
つぎに、セットアップタイムに違反していないと判断された場合（ステップＳ１１０３：Ｎｏ）、電源網解析部５０２により、電源網解析を実施する（ステップＳ１１０４）。たとえば、ステップＳ１１０４の処理結果が各セルの情報６００内の電圧降下６０５に記述されている。
【０１４９】
つぎに、タイミング解析部５０３により、電圧降下の遅延解析とＳＴＡを組み合わせてタイミング解析を実施する（ステップＳ１１０５）。ステップＳ１１０５の処理結果がタイミング解析結果８００内のＳｌａｃｋ８０２に記述されている。そして、セットアップタイムに違反しているか否かを判断する（ステップＳ１１０６）。
【０１５０】
セットアップタイムに違反していると判断された場合（ステップＳ１１０６：Ｙｅｓ）、消費電力解析部５０１により、消費電力値の算出処理を実行する（ステップＳ１１０７）。たとえば、各セルの消費電力値の算出結果が、各セルの情報６００内の消費電力値６０４に記述されている。さらに、各ＲＯＷ領域の消費電力値の合計値の算出結果が、各ＲＯＷ領域の情報７００内の消費電力値の合計値７０１に記述されている。
【０１５１】
つぎに、第１の特定部５０５と第１の決定部５０６により、第１のＲＯＷ領域の特定処理を実行し（ステップＳ１１０８）、第１のＲＯＷ領域が特定されたか否かを判断する（ステップＳ１１０９）。第１のＲＯＷ領域が特定されたと判断された場合（ステップＳ１１０９：Ｙｅｓ）、第２の特定部５０７と、算出部５０８と、第２の決定部５０９と、判断部５１０と、置換部５１１と、出力部５１２により置換処理を実行する（ステップＳ１１１０）。つづいて、配線を実施し（ステップＳ１１１１）、再度、電圧降下の遅延解析とＳＴＡを組合せタイミング解析し（ステップＳ１１１２）、補助電源配線の接続処理を実行し（ステップＳ１１１３）、一連の処理を終了する。
【０１５２】
一方、第１のＲＯＷ領域が特定されなかったと判断された場合（ステップＳ１１０９：Ｎｏ）、ステップＳ１１１１へ移行する。一方、セットアップタイムに違反していないと判断された場合（ステップＳ１１０６：Ｎｏ）、ステップＳ１１１３へ移行する。そして、一方、セットアップタイムに違反していると判断された場合（ステップＳ１１０３：Ｙｅｓ）、一連の処理を終了する。
【０１５３】
つぎに、上述した消費電力値の算出処理（ステップＳ１１０７）について説明する。図１２は、消費電力値の算出処理の処理手順を示すフローチャートである。まず、消費電力解析部５０１により、消費電力値を算出し（ステップＳ１２０１）、セルごとにＲＯＷ領域と、消費電力値と、電圧降下とを関連づけて保存する（ステップＳ１２０２）。保存された保存結果が、各セルの情報６００である。つぎに、選択されていないＲＯＷ領域はあるか否かを判断する（ステップＳ１２０３）。
【０１５４】
選択されていないＲＯＷ領域はあると判断された場合（ステップＳ１２０３：Ｙｅｓ）、ＲＯＷ領域を選択し（ステップＳ１２０４）、ＲＯＷ領域内のセルの消費電力値の合計を算出し（ステップＳ１２０５）、ＲＯＷ領域と消費電力値の合計とを関連づけて保存し（ステップＳ１２０６）、ステップＳ１２０３へ戻る。保存された情報が、各ＲＯＷ領域の情報７００である。一方、選択されていないＲＯＷ領域はないと判断された場合（ステップＳ１２０３：Ｎｏ）、ステップＳ１１０８へ移行する。
【０１５５】
つぎに、上述した第１のＲＯＷ領域の特定処理（ステップＳ１１０８）について説明する。図１３は、第１のＲＯＷ領域の特定処理の処理手順を示すフローチャートである。まず、Ｓｌａｃｋがマイナス値のセルを抽出し（ステップＳ１３０１）、電圧降下の大きい順に並び替えて保存し（ステップＳ１３０２）、ｊ＝１とし（ステップＳ１３０３）、ｊ＜＝抽出されたセルの総数であるか否かを判断する（ステップＳ１３０４）。
【０１５６】
ｊ＜＝抽出されたセルの総数であると判断された場合（ステップＳ１３０４：Ｙｅｓ）、ｊ番目のセルを含むＲＯＷ領域を抽出（ステップＳ１３０５）、クロックバッファとデータ保持素子を除くＳｌａｃｋがプラス値のセルがあるか否かを判断する（ステップＳ１３０６）。クロックバッファとデータ保持素子を除くＳｌａｃｋがプラス値のセルがあると判断された場合（ステップＳ１３０６：Ｙｅｓ）、第１のＲＯＷ領域として決定し（ステップＳ１３０７）、第１の特定部５０５により、第１のセルの決定処理を実行する（ステップＳ１３０８）。
【０１５７】
そして、第１のＲＯＷ領域と第１のセルとを関連づけて保存し（ステップＳ１３０９）、ｊ＝ｊ＋１とし（ステップＳ１３１０）、ステップＳ１３０４へ移行する。一方、クロックバッファとデータ保持素子を除くＳｌａｃｋがプラス値のセルがないと判断された場合（ステップＳ１３０６：Ｎｏ）、ステップＳ１３１０へ移行する。一方、ｊ＜＝抽出されたセルの総数でないと判断された場合（ステップＳ１３０４：Ｎｏ）、ステップＳ１１０９へ移行する。
【０１５８】
つぎに、上述した第１のセルの決定処理（ステップＳ１３０８）について説明する。図１４は、第１のセルの決定処理の処理手順を示すフローチャートである。まず、クロックバッファとデータ保持素子を除くＳｌａｃｋがプラス値のセルを抽出し（ステップＳ１４０１）、抽出されたセルを第１のセルに決定し（ステップＳ１４０２）、抽出されたセルを消費電力値の高い順に並び替え（ステップＳ１４０３）、消費電力値が同一のセルはあるか否かを判断する（ステップＳ１４０４）。
【０１５９】
そして、消費電力値が同一のセルはあると判断された場合（ステップＳ１４０４：Ｙｅｓ）、消費電力値が同一のセルのみＳｌａｃｋの絶対値が大きいセル順に並び替え（ステップＳ１４０５）、ステップＳ１３０９へ移行する。一方、消費電力値が同一のセルはないと判断された場合（ステップＳ１４０４：Ｎｏ）、ステップＳ１３０９へ移行する。
【０１６０】
つぎに、上述した置換処理（ステップＳ１１１０）について説明する。図１５は、置換処理の処理手順を示すフローチャートである。まず、ｉ＝１とし（ステップＳ１５０１）、ｉ＜＝特定された第１のＲＯＷ領域の総数であるか否かを判断する（ステップＳ１５０２）。ｉ＜＝特定された第１のＲＯＷ領域の総数であると判断された場合（ステップＳ１５０２：Ｙｅｓ）、ｒ＝１とし（ステップＳ１５０３）、ｒ＜＝第１のセルの総数であるか否かを判断する（ステップＳ１５０４）。
【０１６１】
そして、ｒ＜＝第１のセルの総数であると判断された場合（ステップＳ１５０４：Ｙｅｓ）、第２の特定部５０７により、第２のＲＯＷ領域の特定処理を実行し（ステップＳ１５０５）、第２のＲＯＷ領域は特定されたか否かを判断する（ステップＳ１５０６）。第２のＲＯＷ領域は特定されたと判断された場合（ステップＳ１５０６：Ｙｅｓ）、第２の決定部５０９により、第２のセルの決定処理を実行し（ステップＳ１５０７）、ｒ番目の第１のセルと置換される第２のセルは決定されたか否かを判断する（ステップＳ１５０８）。
【０１６２】
そして、ｒ番目の第１のセルと置換する第２のセルは決定されたと判断された場合（ステップＳ１５０８：Ｙｅｓ）、置換部５１１により、第１のセルと第２のセルを置換し（ステップＳ１５０９）、ｒ＝ｒ＋１とし（ステップＳ１５１０）、ステップＳ１５０４に戻る。一方、第２のＲＯＷ領域は特定されなかったと判断された場合（ステップＳ１５０６：Ｎｏ）、またはｒ番目の第１のセルと置換する第２のセルは決定されなかったと判断された場合（ステップＳ１５０８：Ｎｏ）、ステップＳ１５１０へ移行する。
【０１６３】
一方、ｒ＜＝第１のセルの総数でないと判断された場合（ステップＳ１５０４：Ｎｏ）、ｉ＝ｉ＋１とし（ステップＳ１５１１）、ステップＳ１５０２へ戻る。そして、一方、ｉ＜＝特定された第１のＲＯＷ領域の総数でないと判断された場合（ステップＳ１５０２：Ｎｏ）、ステップＳ１１１１へ移行する。
【０１６４】
つぎに、上述した第２のＲＯＷ領域の特定処理（ステップＳ１５０５）を説明する。図１６は、第２のＲＯＷ領域の特定処理の処理手順を示すフローチャートである。まず、第１のＲＯＷ領域に隣接しているＲＯＷ領域を検索し（ステップＳ１６０１）、すべてのセルのＳｌａｃｋがプラス値であるＲＯＷ領域を抽出し（ステップＳ１６０２）、抽出されたＲＯＷ領域を第２のＲＯＷ領域に特定し（ステップＳ１６０３）、ステップＳ１５０６へ移行する。たとえば、特定された第２のＲＯＷ領域の情報は、上述した第２のＲＯＷ領域リスト１または２である。
【０１６５】
つぎに、上述した第２のセルの決定処理（ステップＳ１５０７）を説明する。図１７は、第２のセルの決定処理の処理手順を示すフローチャートである。まず、ｎ＝１とし（ステップＳ１７０１）、ｎ＜＝特定された第２のＲＯＷ領域の総数であるか否かを判断する（ステップＳ１７０２）。ｎ＜＝特定された第２のＲＯＷ領域の総数であると判断された場合（ステップＳ１７０２：Ｙｅｓ）、ｎ番目の第２のＲＯＷ領域内からクロックバッファとデータ保持素子を除くセルを抽出し（ステップＳ１７０３）、抽出されたセルはあるか否かを判断する（ステップＳ１７０４）。
【０１６６】
そして、抽出されたセルはあると判断された場合（ステップＳ１７０４：Ｙｅｓ）、セルの並び替え処理を実行し（ステップＳ１７０５）、ｍ＝１とし（ステップＳ１７０６）、ｍ＜＝抽出されたセルの総数であるか否かを判断する（ステップＳ１７０７）。ｍ＜＝抽出されたセルの総数であると判断された場合（ステップＳ１７０７：Ｙｅｓ）、判断部５１０により、ｍ番目のセルの消費電力値＞＝第１のセルの消費電力値であるか否かを判断する（ステップＳ１７０８）。
【０１６７】
そして、ｍ番目のセルの消費電力値＞＝第１のセルの消費電力値であると判断された場合（ステップＳ１７０８：Ｙｅｓ）、ｍ＝ｍ＋１とし（ステップＳ１７０９）、ステップＳ１７０７へ戻る（Ａで示された箇所）。一方、抽出されたセルはないと判断された場合（ステップＳ１７０４：Ｎｏ）、またはｍ＜＝抽出されたセルの総数でないと判断された場合（ステップＳ１７０７：Ｎｏ）、ｎ＝ｎ＋１とし（ステップＳ１７１０）、ステップＳ１７０２へ戻る。
【０１６８】
一方、ｍ番目のセルの消費電力値＞＝第１のセルの消費電力値でないと判断された場合（ステップＳ１７０８：Ｎｏ）、ｎ番目のＲＯＷ領域のｍ番目のセルを第２のセルに特定し（ステップＳ１７１１）、ステップＳ１５０８へ移行する。そして、一方、ｎ＜＝特定された第２のＲＯＷ領域の総数でないと判断された場合（ステップＳ１７０２：Ｎｏ）、第２のセルが特定されなかった情報を付して保存し（ステップＳ１７１２）、ステップＳ１５０８へ移行する。
【０１６９】
つぎに、上述したセルの並び替え処理（ステップＳ１７０５）について説明する。図１８は、セルの並び替え処理の処理手順を示すフローチャートである。消費電力値の低い順に並び替えし（ステップＳ１８０１）、消費電力値が同じセルはあるか否かを判断する。（ステップＳ１８０２）、消費電力値が同じセルはあると判断された場合（ステップＳ１８０２：Ｙｅｓ）、消費電力値が同じセルのみＳｌａｃｋが最も大きいセル順に並び替え（ステップＳ１８０３）。そして、消費電力値およびＳｌａｃｋが同じセルはあるか否かを判断する（ステップＳ１８０４）。
【０１７０】
消費電力値およびＳｌａｃｋが同じセルはあると判断された場合（ステップＳ１８０４：Ｙｅｓ）、算出部５０８により、消費電力値およびＳｌａｃｋが同じセルのみ第１のセルとの距離を算出し（ステップＳ１８０５）、距離が短い順に並び替えし（ステップＳ１８０６）、ステップＳ１７０６へ移行する。一方、消費電力値が同じセルはないと判断された場合（ステップＳ１８０２：Ｎｏ）、または、消費電力値およびＳｌａｃｋが同じセルはないと判断された場合（ステップＳ１８０４：Ｎｏ）、ステップＳ１７０６へ移行する。
【０１７１】
つぎに、上述した補助電源配線の接続処理（ステップＳ１１１３）について説明する。図１９は、補助電源配線の接続処理の接続手順を示すフローチャートである。まず、セットアップタイムに違反しているか否かが判断される（ステップＳ１９０１）。セットアップタイムに違反していると判断された場合（ステップＳ１９０１：Ｙｅｓ）、Ｓｌａｃｋがマイナス値のセルを抽出し（ステップＳ１９０２）、抽出したセルを含むＲＯＷ領域を特定する（ステップＳ１９０３）。
【０１７２】
つぎに、特定されたＲＯＷ領域に配置されている最下層ＶＤＤ配線３０５と補助電源配線をビアで接続し（ステップＳ１９０４）、ビア接続されていない補助電源配線を検索する（ステップＳ１９０５）。一方、セットアップタイムに違反していないと判断された場合（ステップＳ１９０１：Ｎｏ）、ステップＳ１９０５へ移行する。
【０１７３】
ステップＳ１９０５につづいて、ビア接続されていない補助電源配線があるか否かを判断する（ステップＳ１９０６）。まず、ビア接続されていない補助電源配線があると判断された場合（ステップＳ１９０６：Ｙｅｓ）、検索された補助電源配線を削除し（ステップＳ１９０７）、レイアウトデータを保存し（ステップＳ１９０８）、一連の処理を終了する。一方、ビア接続されていない補助電源配線がないと判断された場合（ステップＳ１９０６：Ｎｏ）、ステップＳ１９０８へ移行する。
【０１７４】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、セットアップタイミングの制約に違反しているデータパス内のセルを含む第１のＲＯＷ領域の中から違反していないデータパス内の第１のセルを自動で特定する。そして、違反しているデータパス内のセルを含まない第２のＲＯＷ領域内の第２のセルを自動で特定することができる。
【０１７５】
これにより、利用者が、出力された置換対象のセルの消費電力値を参照するだけで、セルの置換可否を容易に決定することができる。したがって、セルを置換することにより、タイミングの制約に遵守させるためにデータパス内へ新たにセルを追加させることなく、電圧降下により発生するセットアップタイミングの制約違反を効率的に抑制することができる。
【０１７６】
また、セットアップタイミングの制約に違反しているデータパス内の複数のセルのタイミングの余裕度の絶対値に基づいて第１のＲＯＷ領域を特定することにより、タイミングの制約に違反しているセルの中で最もタイミングの制約に遵守することが困難なセルを含む第１のＲＯＷ領域の消費電力値の低減化を図ることができる。したがって、電圧降下により発生するセットアップタイミング違反を抑制することができる。
【０１７７】
また、セットアップタイミングの制約に違反しているデータパス内の複数のセルのタイミングの余裕度の絶対値が同一の場合、電圧降下が大きいセル順に第１のＲＯＷ領域を特定する。これにより、電圧降下の大きいセルを含むＲＯＷ領域内のセルを置換対象のセルに自動で特定することができる。したがって、電圧降下により発生するセットアップタイミング違反を抑制することができる。
【０１７８】
また、第１のＲＯＷ領域内のセルの中から、最も消費電力値が高いセルを第１のセルに決定することで、置換後に第１のＲＯＷ領域内の消費電力値を最も低くすることが可能な置換対象のセルを自動で特定することができる。したがって、第１のＲＯＷ領域の消費電力値を容易に低くでき、電圧降下により発生するセットアップタイミング違反を効率的に抑制することができる。
【０１７９】
また、第１および２のセルを、クロックバッファセルおよびデータ保持素子を除くセルに決定することで、タイミングに影響の少ないセルを置換対象とすることができる。したがって、セルの置換により他のデータパスにタイミングエラーが発生するのを容易かつ効率的に抑制することができる。
【０１８０】
また、第１のセルとの距離を算出し、算出された第１のセルとの距離が最も短い第２のＲＯＷ領域内のセルを第２のセルに決定することにより、置換処理による第１のセルを含むデータパスと第２のセルを含むデータパスの配線経路の変更を最小限に抑制することができる。
【０１８１】
また、第２のＲＯＷ領域内のセルの中から、最も消費電力値が低いセルを第２のセルに決定することにより、第１のセルを、第１のＲＯＷ領域の消費電力値を最も低くすることができる第２のＲＯＷ領域内のセルと置換することができる。したがって、第１のＲＯＷ領域の消費電力値を容易に低くすることができ、電圧降下により発生するセットアップタイミング違反を効率的に抑制することができる。
【０１８２】
また、第２のセルの消費電力値が、第１のセルの消費電力値未満であるかを判断し、第１のセルの消費電力値未満であると判断された場合、第１のセルと第２のセルの配置位置を置換する。これにより、第１のＲＯＷ領域の消費電力値の合計値が置換前よりも低くなるように第１のＲＯＷ領域内のセルを再配置することができる。したがって、タイミングの制約に遵守させるためにデータパスにセルを追加させることなく電圧降下により発生するセットアップタイミング違反を抑制することができる。
【０１８３】
また、第２のセルの消費電力値が、第１のセルの消費電力値未満でないと判断された場合、複数のＲＯＷ領域の内、すでに第２のＲＯＷ領域として特定されたＲＯＷ領域を除き、かつＮｅｇａｔｉｖｅ  Ｓｌａｃｋのセルを含まないＲＯＷ領域を新たに第２のＲＯＷ領域に特定する。
【０１８４】
これにより、第１のセルを、消費電力値が低くかつ電圧降下の影響が少ないＲＯＷ領域内のセルと置換することができる。したがって、セルの置換により第２のＲＯＷ領域にタイミングエラーを発生するのを抑制することができる。
【０１８５】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１８６】
また、本実施の形態で説明した設計支援装置５００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した設計支援装置５００の機能（消費電力解析部５０１〜出力部５１２）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、設計支援装置５００を製造することができる。
【０１８７】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１８８】
（付記１）コンピュータを、
電圧降下の遅延解析と静的タイミング解析が実行済みの設計対象回路のレイアウトデータの中から前記電圧降下によりセットアップタイミングの制約に違反しているデータパス内のセルを抽出する抽出手段、
前記レイアウトデータ内の複数のＲＯＷ領域の中から、前記抽出手段により抽出されたデータパス内のセルを含む第１のＲＯＷ領域を特定する第１の特定手段、
前記第１の特定手段により特定された第１のＲＯＷ領域内のセルの中から、前記データパス内のセルを除く前記第１のＲＯＷ領域内のセルを第１のセルに決定する第１の決定手段、
前記複数のＲＯＷ領域の中から前記データパス内のセルを含まない第２のＲＯＷ領域を特定する第２の特定手段、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルを第２のセルに決定する第２の決定手段、
前記第１の決定手段により決定された第１のセルの消費電力値と第２の決定手段により決定された第２のセルの消費電力値を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【０１８９】
（付記２）前記第１の特定手段は、
前記抽出手段により抽出されたデータパス内のセルのタイミングの余裕度の絶対値に基づいて第１のＲＯＷ領域を特定することを特徴とする付記１に記載の設計支援プログラム。
【０１９０】
（付記３）前記第１の特定手段は、
前記データパス内のセルの前記余裕度の絶対値が同一の場合、電圧降下が大きいセル順に第１のＲＯＷ領域を特定することを特徴とする付記１または２に記載の設計支援プログラム。
【０１９１】
（付記４）前記第１の決定手段は、
前記第１の特定手段により特定された第１のＲＯＷ領域内のセルの中から、最も消費電力値が高いセルを第１のセルに決定することを特徴とする付記１〜３のいずれか１つに記載の設計支援プログラム。
【０１９２】
（付記５）前記第１の決定手段は、
前記第１の特定手段により特定された第１のＲＯＷ領域内のセルの中から、クロックバッファのセルおよびデータ保持素子のセルを除く前記第１のＲＯＷ領域内のセルを第１のセルに決定し、
前記第２の決定手段は、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルの中から、クロックバッファのセルおよびデータ保持素子のセルを除く前記第２のＲＯＷ領域内のセルを第２のセルに決定することを特徴とする付記１〜４のいずれか１つに記載の設計支援プログラム。
【０１９３】
（付記６）前記コンピュータを、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルごとに、前記第１の決定手段により決定された第１のセルとの距離を算出する算出手段、として機能させ、
前記第２の決定手段は、
前記算出手段により前記第２のＲＯＷ領域内のセルごとに算出された第１のセルとの距離が最も短い前記第２のＲＯＷ領域内のセルを第２のセルに決定することを特徴とする付記１〜５のいずれか１つに記載の設計支援プログラム。
【０１９４】
（付記７）前記第２の決定手段は、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルの中から、最も消費電力値が低いセルを第２のセルに決定することを特徴とする付記１〜６のいずれか１つに記載の設計支援プログラム。
【０１９５】
（付記８）前記コンピュータを、
前記第２の決定手段により決定された第２のセルの消費電力値が、前記第１の決定手段により決定された第１のセルの消費電力値未満であるかを判断する判断手段、
前記判断手段により前記第２のセルの消費電力値が、前記第１のセルの消費電力値未満であると判断された場合、前記第１のセルと前記第２のセルの配置位置を置換する置換手段、として機能させ、
前記出力手段は、
前記置換手段により置換された置換結果を出力することを特徴とする付記１〜７のいずれか１つに記載の設計支援プログラム。
【０１９６】
（付記９）前記第２の特定手段は、
前記判断手段により第２のセルの消費電力値が、第１のセルの消費電力値未満でないと判断された場合、前記複数のＲＯＷ領域の内、前記すでに第２のＲＯＷ領域として特定されたＲＯＷ領域を除き、かつ前記データパス内のセルを含まないＲＯＷ領域を新たに第２のＲＯＷ領域に特定することを特徴とする付記１〜８のいずれか１つに記載の設計支援プログラム。
【０１９７】
（付記１０）電圧降下の遅延解析と静的タイミング解析が実行済みの設計対象回路のレイアウトデータの中から前記電圧降下によりセットアップタイミングの制約に違反しているデータパス内のセルを抽出する抽出手段と、
前記レイアウトデータ内の複数のＲＯＷ領域の中から、前記抽出手段により抽出されたデータパス内のセルを含む第１のＲＯＷ領域を特定する第１の特定手段と、
前記第１の特定手段により特定された第１のＲＯＷ領域内のセルの中から、前記データパス内のセルを除く前記第１のＲＯＷ領域内のセルを第１のセルに決定する第１の決定手段と、
前記複数のＲＯＷ領域の中から前記データパス内のセルを含まない第２のＲＯＷ領域を特定する第２の特定手段と、
前記第２の特定手段により特定された第２のＲＯＷ領域内のセルを第２のセルに決定する第２の決定手段と、
前記第１の決定手段により決定された第１のセルの消費電力値と第２の決定手段により決定された第２のセルの消費電力値を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【０１９８】
（付記１１）コンピュータが、
電圧降下の遅延解析と静的タイミング解析が実行済みの設計対象回路のレイアウトデータの中から前記電圧降下によりセットアップタイミングの制約に違反しているデータパス内のセルを抽出する抽出工程、
前記レイアウトデータ内の複数のＲＯＷ領域の中から、前記抽出工程により抽出されたデータパス内のセルを含む第１のＲＯＷ領域を特定する第１の特定工程、
前記第１の特定工程により特定された第１のＲＯＷ領域内のセルの中から、前記データパス内のセルを除く前記第１のＲＯＷ領域内のセルを第１のセルに決定する第１の決定工程、
前記複数のＲＯＷ領域の中から前記データパス内のセルを含まない第２のＲＯＷ領域を特定する第２の特定工程、
前記第２の特定工程により特定された第２のＲＯＷ領域内のセルを第２のセルに決定する第２の決定工程、
前記第１の決定工程により決定された第１のセルの消費電力値と第２の決定工程により決定された第２のセルの消費電力値を出力する出力工程、
を実行することを特徴とする設計支援方法。
【符号の説明】
【０１９９】
２００  レイアウトデータ
５０４  抽出部
５０５  第１の特定部
５０６  第１の決定部
５０７  第２の特定部
５０８  算出部
５０９  第２の決定部
５１０  判断部
５１１  置換部
５１２  出力部
６０４  消費電力値
８０２  Ｓｌａｃｋ
【図１】
2010231631.tif 000003
【図２】
2010231631.tif 000004
【図３−１】
2010231631.tif 000005
【図３−２】
2010231631.tif 000006
【図３−３】
2010231631.tif 000007
【図４】
2010231631.tif 000008
【図５】
2010231631.tif 000009
【図６】
2010231631.tif 000010
【図７】
2010231631.tif 000011
【図８】
2010231631.tif 000012
【図９】
2010231631.tif 000013
【図１０】
2010231631.tif 000014
【図１１】
2010231631.tif 000015
【図１２】
2010231631.tif 000016
【図１３】
2010231631.tif 000017
【図１４】
2010231631.tif 000018
【図１５】
2010231631.tif 000019
【図１６】
2010231631.tif 000020
【図１７】
2010231631.tif 000021
【図１８】
2010231631.tif 000022
【図１９】
2010231631.tif 000023