(57)【特許請求の範囲】
【請求項１】
半導体集積装置内のパワードメインにおける回路配置を適正化するための半導体設計方法において、
ノードモデル生成部が、前記パワードメインの回路設計情報に基づき、前記パワードメインの出力側境界から数えてＮ段目（ただし、Ｎは２以上の整数）のフリップフロップ回路と、（Ｎ−１）段目のフリップフロップ回路との間の信号経路において、出力の分岐点をノードとして定義したノードモデルを生成するノードモデル生成ステップと、
ノード数調整部が、生成された前記ノードモデルにおいて、Ｎ段目の各フリップフロップ回路から（Ｎ−１）段目の各フリップフロップ回路までのすべての信号経路上の前記ノードの数が同じになるように、前記ノードを追加して前記ノードモデルを更新するノード数調整ステップと、
回路挿入位置抽出部が、更新された前記ノードモデルにおいて、Ｎ段目または（Ｎ−１）段目の各フリップフロップ回路から見て同じノード段数となる位置に配置された前記ノードをカウントし、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの出力側を、前記パワードメインの電源遮断時にその直前の入力データをラッチするデータラッチ回路を挿入する位置として抽出する回路挿入位置抽出ステップと、
を含むことを特徴とする半導体設計方法。
【請求項２】
前記回路挿入位置抽出ステップでは、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの中に、前記ノード数調整ステップで追加された前記ノードが含まれていた場合には、当該ノードの出力側に配置された次の前記ノードの出力側を、前記データラッチ回路の挿入位置として抽出することを特徴とする請求項１記載の半導体設計方法。
【請求項３】
前記ノードモデル生成ステップでは、前記パワードメインにおいて、Ｎ段目のフリップフロップ回路の出力端子から続く信号経路とは別に、前記半導体集積装置の外部ポートから入力された信号を受ける回路要素が存在する場合には、当該外部ポートからの信号経路を無視して前記ノードモデルを生成することを特徴とする請求項１または２に記載の半導体設計方法。
【請求項４】
前記ノードモデル生成ステップでは、前記パワードメインにおいて、その出力側の信号経路の一部からフィードバックされた信号の入力を受ける回路要素が存在する場合には、当該回路にフィードバックされる信号の経路が分岐される分岐点に対して前記ノードを定義しないことを特徴とする請求項１〜３のいずれか１項に記載の半導体設計方法。
【請求項５】
回路設計情報生成部が、前記パワードメイン内の前記回路挿入位置抽出ステップで抽出された位置に前記データラッチ回路を挿入した半導体集積装置の回路設計情報を生成する回路設計情報生成ステップをさらに含み、
前記回路設計情報生成ステップで挿入される前記データラッチ回路は、
入力データを選択的に遮断する入力遮断回路と、
前記入力遮断回路の出力側に直列に接続された第１および第２のインバータ回路と、
前記第１のインバータ回路から信号の入力を受けて、出力データを前記第１のインバータ回路の入力端子に供給する第３のインバータ回路と、
を有することを特徴とする請求項１〜４のいずれか１項に記載の半導体設計方法。
【請求項６】
半導体集積装置内のパワードメインにおける回路配置を適正化する半導体設計装置において、
前記パワードメインの回路設計情報に基づき、前記パワードメインの出力側境界から数えてＮ段目（ただし、Ｎは２以上の整数）のフリップフロップ回路と、（Ｎ−１）段目のフリップフロップ回路との間の信号経路において、出力の分岐点をノードとして定義したノードモデルを生成するノードモデル生成部と、
前記ノードモデル生成部により生成された前記ノードモデルにおいて、Ｎ段目の各フリップフロップ回路から（Ｎ−１）段目の各フリップフロップ回路までのすべての信号経路上の前記ノードの数が同じになるように、前記ノードを追加して前記ノードモデルを更新するノード数調整部と、
前記ノード数調整部により更新された前記ノードモデルにおいて、Ｎ段目または（Ｎ−１）段目の各フリップフロップ回路から見て同じノード段数となる位置に配置された前記ノードをカウントし、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの出力側を、前記パワードメインの電源遮断時にその直前の入力データをラッチするデータラッチ回路を挿入する位置として抽出する回路挿入位置抽出部と、
を有することを特徴とする半導体設計装置。
【請求項７】
半導体集積装置内のパワードメインにおける回路配置を適正化するための半導体設計プログラムにおいて、
コンピュータを、
前記パワードメインの回路設計情報に基づき、前記パワードメインの出力側境界から数えてＮ段目（ただし、Ｎは２以上の整数）のフリップフロップ回路と、（Ｎ−１）段目のフリップフロップ回路との間の信号経路において、出力の分岐点をノードとして定義したノードモデルを生成するノードモデル生成部、
前記ノードモデル生成部により生成された前記ノードモデルにおいて、Ｎ段目の各フリップフロップ回路から（Ｎ−１）段目の各フリップフロップ回路までのすべての信号経路上の前記ノードの数が同じになるように、前記ノードを追加して前記ノードモデルを更新するノード数調整部、
前記ノード数調整部により更新された前記ノードモデルにおいて、Ｎ段目または（Ｎ−１）段目の各フリップフロップ回路から見て同じノード段数となる位置に配置された前記ノードをカウントし、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの出力側を、前記パワードメインの電源遮断時にその直前の入力データをラッチするデータラッチ回路を挿入する位置として抽出する回路挿入位置抽出部、
として機能させることを特徴とする半導体設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積装置の回路配置を設計するための半導体設計方法、装置、およびプログラムに関し、特に、半導体集積装置内のパワードメインにおける回路配置を適正化することが可能な半導体設計方法、装置、およびプログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）などの半導体装置においては、回路内の特定のグループごとに電源のオン／オフを制御できることが求められており、このようなグループはパワードメインと呼ばれている。電源を遮断したパワードメインに対して電源を再投入すると、このパワードメイン内のフリップフロップ回路（以下、“ＦＦ”と略称する）は、あらためて安定したデータをキャプチャするまで、あるいはリセットがかかるまでは、安定していない信号（以下、“信号Ｘ”と称する）を出力してしまう。そこで、パワードメインでは、電源を再投入してから出力が安定しない期間では、アイソレーションセルを用いることで、アクティブな回路群に対する信号Ｘの伝播をマスクし、出力が安定してからアイソレーションを解除するようにしている。
【０００３】
さらに、パワードメインでは、上記のような性質を持つノーマルＦＦの他に、ステートリテンションＦＦが用いられることも多い。ステートリテンションＦＦは、電源遮断の直前のデータを保持することで、電源が再投入された際に安定した信号を出力する。従って、ステートリテンションＦＦが設けられた場合、電源の再投入からパワードメインの出力が安定するまでの時間、すなわち回路の復帰時間は、パワードメイン内のステートリテンションＦＦからの安定した信号が、パワードメインの出力段に達する時間に相当する。
【０００４】
なお、上記に関連する技術の例として、常時一定電圧の電源により動作するＯＮブロックと、電圧変化／遮断電源により動作して電源遮断可能なＯＦＦブロックとの間にケア回路を挿入し、電源遮断時には常時一定電圧の電源をＯＦＦブロックに供給するとともに、ＯＦＦブロックへの出力信号を固定化するようにしたものがあった（例えば、特許文献１参照）。また、ＭＴＣＭＯＳ（Multi-Threshold Complementary Metal Oxide Semiconductor）を用いたＦＦにおいて、２つのラッチ部を備え、第１のラッチ部に入力されたデータを第２のラッチ部が保存することでリテンション動作を行い、第２のラッチ部からのデータを用いて第１のラッチ部がスキャン動作を行うようにしたものがあった（例えば、特許文献２参照）。
【特許文献１】特開２００５−３３６３７号公報
【特許文献２】特開２００６−２４６４８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記のステートリテンションＦＦには、ノーマルＦＦと比較して回路規模が大きく、また、電源遮断時（スリープ時）でもデータ保持のために電源が必要であるという特徴がある。ここで、例えば、パワードメインの出力段から１段目以降のＦＦにすべてステートリテンションＦＦが使用されていれば、回路の復帰時間は最小となるが、その反面、ステートリテンションＦＦの数は最大となり、回路規模が大きくなる。また、パワードメインの出力段から１段目のＦＦをノーマルＦＦとし、２段目以降のＦＦをステートリテンションＦＦとした場合には、復帰時間として１サイクルを要するが、回路規模や消費電力は抑制される。すなわち、ステートリテンションＦＦの数を削減しようとすると、電源の再投入からアイソレーションの解除までのサイクル数が大きくなり、回路が機能的に復帰するまでの時間が遅くなってしまう。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、電源遮断からの復帰時間が短く、かつ回路規模が抑制されたパワードメインを設計することが可能な半導体設計方法、装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、半導体集積装置内のパワードメインにおける回路配置を適正化するための半導体設計方法が提供される。この半導体設計方法の手順には、ノードモデル生成部が、前記パワードメインの回路設計情報に基づき、前記パワードメインの出力側境界から数えてＮ段目（ただし、Ｎは２以上の整数）のフリップフロップ回路と、（Ｎ−１）段目のフリップフロップ回路との間の信号経路において、出力の分岐点をノードとして定義したノードモデルを生成するノードモデル生成ステップと、ノード数調整部が、生成された前記ノードモデルにおいて、Ｎ段目の各フリップフロップ回路から（Ｎ−１）段目の各フリップフロップ回路までのすべての信号経路上の前記ノードの数が同じになるように、前記ノードを追加して前記ノードモデルを更新するノード数調整ステップと、回路挿入位置抽出部が、更新された前記ノードモデルにおいて、Ｎ段目または（Ｎ−１）段目の各フリップフロップ回路から見て同じノード段数となる位置に配置された前記ノードをカウントし、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの出力側を、前記パワードメインの電源遮断時にその直前の入力データをラッチするデータラッチ回路を挿入する位置として抽出する回路挿入位置抽出ステップと、が含まれる。
【０００８】
ここで、ノードモデル生成ステップでは、パワードメインの回路設計情報に基づいて、ノードモデルが生成される。このノードモデルは、パワードメインの出力側境界から数えてＮ段目のフリップフロップ回路と、（Ｎ−１）段目のフリップフロップ回路との間の信号経路において、出力の分岐点をノードとして定義したものである。ノード数調整ステップでは、生成されたノードモデルにおいて、Ｎ段目の各フリップフロップ回路から（Ｎ−１）段目の各フリップフロップ回路までのすべての信号経路上のノードの数が同じになるように、信号経路上の必要な位置にノードがさらに追加されて、ノードモデルが更新される。回路挿入位置抽出ステップでは、ノード数調整ステップにおいて更新されたノードモデルにおいて、Ｎ段目または（Ｎ−１）段目の各フリップフロップ回路から見て同じノード段数となる位置に配置されたノードがカウントされる。そして、ノードの数が最も少ないノード段数に対応するノードの出力側を、データラッチ回路を挿入する位置として抽出する。このデータラッチ回路は、パワードメインの電源遮断時にその直前の入力データをラッチする回路であり、電源が再投入されたときに出力データの値が不定になることを防止するものである。
【発明の効果】
【０００９】
上記の半導体設計方法では、Ｎ段目のフリップフロップ回路をすべて、電源遮断時に入力信号値を保持する機能を備えたフリップフロップ回路とした場合と比較して、電源遮断からの復帰時間を変えることなく、回路規模を抑制することができる。
【発明を実施するための最良の形態】
【００１０】
以下、実施の形態について図面を参照して詳細に説明する。
図１は、実施の形態に係る半導体設計装置の機能を示すブロック図である。
図１に示す半導体設計装置は、ＬＳＩなどの半導体装置の設計情報を基に、その回路内の適切な位置に、電源再投入時における不定な信号Ｘの伝播を防止するためのＸ伝播対策回路を挿入する処理を行う装置である。この半導体設計装置は、回路データ入力部１１、ＦＦ置換処理部１２、回路挿入位置抽出部１３、回路挿入処理部１４、および出力判定部１５を備えている。
【００１１】
回路データ入力部１１は、半導体装置の設計情報の入力を受け付ける。例えば、ＨＤＬ（Hardware Description Language）で記述されたネットリストや、パワードメイン定義ファイルの入力を受けて、処理対象の半導体装置におけるパワードメインを認識するとともに、回路接続情報を作成する。
【００１２】
ＦＦ置換処理部１２は、回路データ入力部１１からの情報を基に、処理対象の回路ネットワーク上のステートリテンションＦＦをノーマルＦＦに置換し、回路接続情報を更新する。回路挿入位置抽出部１３は、ＦＦの置換が行われた回路ネットワークにおいて、Ｘ伝播対策回路を挿入すべき最適な位置を抽出する。回路挿入処理部１４は、抽出された位置にＸ伝播対策回路を挿入し、回路接続情報を更新する。
【００１３】
出力判定部１５は、Ｘ伝播対策回路が挿入された半導体装置と、回路データ入力部１１に入力された設計情報に基づく元の半導体装置のそれぞれの特性を評価して比較し、Ｘ伝播対策回路が挿入された半導体装置の方がよりよい特性が得られる場合に、その半導体装置についての設計情報（ＨＤＬデータなど）を作成して出力する。例えば、Ｘ伝播対策回路が挿入された半導体装置に、回路規模や消費電力などの抑制効果があるか否かを判定し、効果を奏する場合に、その半導体装置についての設計情報を出力する。
【００１４】
図２は、半導体設計装置のハードウェア構成例を示すブロック図である。
図１に示した半導体設計装置の各機能は、例えば、パーソナルコンピュータ（ＰＣ）などのコンピュータ装置によって、上記各機能の処理手順を記述したプログラムが実行されることで実現される。このようなコンピュータ装置は、例えば、図２に示すように、ＣＰＵ（Central Processing Unit）２１、ＲＡＭ（Random Access Memory）２２、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理部２４、入力Ｉ／Ｆ（インタフェース）２５、および通信Ｉ／Ｆ２６を備え、これらはバス２７を介して相互に接続されている。
【００１５】
ＣＰＵ２１は、コンピュータ装置全体に対する制御をつかさどる。ＲＡＭ２２は、ＣＰＵ２１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。ＨＤＤ２３には、ＯＳ（Operating System）やアプリケーションプログラム、各種データが格納される。特に、本実施の形態では、図１に示した各機能の処理手順を記述した半導体設計プログラムが、ＨＤＤ２３に記憶される。そして、この半導体設計プログラムがＣＰＵ２１で実行されることで、上記の半導体設計装置の機能が実現される。
【００１６】
グラフィック処理部２４には、モニタ２４ａが接続されている。このグラフィック処理部２４は、ＣＰＵ２１からの命令に従って、モニタ２４ａの画面上に画像を表示させる。入力Ｉ／Ｆ２５には、例えばキーボード２５ａやマウス２５ｂなどの入力デバイスが接続されている。この入力Ｉ／Ｆ２５は、入力デバイスからの信号を、バス２７を介してＣＰＵ２１に送信する。通信Ｉ／Ｆ２６は、図示しない通信ケーブルなどを介して外部機器と接続され、その外部機器との間でデータの送受信を行う。
【００１７】
次に、上記の半導体設計装置における処理について、具体的に説明する。まず、図３は、ＦＦ置換処理部の処理について説明するための図である。
図３に示す半導体装置の回路構成例において、変数ｎは、パワードメインの出力段から（すなわち、このパワードメインの出力側の境界から）数えたＦＦの段数を示している。この半導体装置では、パワードメインの出力段から１段目にはＦＦ１０１が配置され、（ｎ−１）段目にはＦＦ１０２が配置されている。ｎ段目には４つのＦＦ１１１〜１１４が配置され、（ｎ＋１）段目にも４つのＦＦ１２１〜１２４が配置されている。
【００１８】
また、ＦＦ１１１，１１２の出力信号はゲート回路１３１に入力され、ＦＦ１１３，１１４の出力信号はゲート回路１３２に入力されている。そして、ゲート回路１３１，１３２の出力信号はゲート回路１３３に入力され、ゲート回路１３３の出力信号は（ｎ−１）段目のＦＦ１０２のデータ端子に入力されている。さらに、パワードメインの出力段には、アイソレーションセル１３４が配置されている。
【００１９】
ところで、半導体装置のパワードメインにおいては、パワードメインの出力段からＮ段目以降（ただし、Ｎは２以上の整数）のＦＦとしてステートリテンションＦＦを用いることにより、電源供給が遮断された後に電源を再投入したときに（Ｎ−１）サイクルで動作が復帰するように設計することができる。図３の回路では例として、ｎ＝Ｎとし、Ｎ段目のＦＦであるＦＦ１１１〜１１４と、それより入力側のＦＦ（図ではＦＦ１２１〜１２４）をそれぞれステートリテンションＦＦとしている。
【００２０】
本実施の形態の半導体設計装置では、基本的に、Ｎ段目のＦＦを、電源遮断時のデータラッチ機能を持たないノーマルＦＦとするとともに、そのノーマルＦＦと出力側に配置されたＦＦとの間の区間に、電源遮断時のデータラッチ機能を備えたＸ伝播対策回路を、それらの設置数ができるだけ少なくなるように挿入する。これによって、電源遮断状態からの復帰に要する時間を変えることなく、Ｎ段目のＦＦをステートリテンションＦＦとした場合よりも回路規模や消費電力を抑制する。
【００２１】
また、本実施の形態では、図３のようにあらかじめステートリテンションＦＦが挿入された状態の半導体装置の設計情報を基に、Ｘ伝播対策回路の適切な挿入位置を選定する。すなわち、ＦＦ置換処理部１２は、Ｎ段目に配置されたステートリテンションＦＦをノーマルＦＦに置換して、回路接続情報を更新する。図３の例では、ステートリテンションＦＦであるＦＦ１１１〜１１４がノーマルＦＦに置換される。そして、次の回路挿入位置抽出部１３の処理によって、置換されたノーマルＦＦとその出力側のＦＦ（図３の例ではＦＦ１０２）との間に、Ｘ伝播対策回路の挿入位置が選定される。
【００２２】
ただし、上記の半導体設計装置に入力される設計情報は、必ずしもステートリテンションＦＦが配置された半導体装置のものである必要はない。ステートリテンションＦＦが配置されていない半導体装置の設計情報が入力された場合には、パワードメインの出力段から所望の段数（Ｎ段目）のノーマルＦＦと、その出力側（（Ｎ−１）段目）のＦＦとの間の区間を、次の回路挿入位置抽出部１３でのＸ伝播対策回路の挿入対象とすればよい。ただし、このとき、（Ｎ＋１）段目以降のＦＦについてはステートリテンションＦＦに変換する必要がある。
【００２３】
次に、図４は、回路挿入位置抽出部の処理手順を示すフローチャートである。
回路挿入位置抽出部１３は、ＦＦ置換処理部１２によって更新された回路接続情報に基づく回路ネットワークを、ノードモデルによって簡略化する（ステップＳ１１）。後述するように、ノードは、多出力となっているセルまたはネットに対して割り当てられ、Ｘ伝播対策回路を挿入する場所の候補となる。
【００２４】
次に、生成されたノードモデルにおいて、ノードのレベライズを行う（ステップＳ１２）。このレベライズは、Ｎ段目のＦＦから（Ｎ−１）段目のＦＦまでのすべての経路において、ノードの数が同じになるようにノードの段数（レベル数）を合わせる処理である。
【００２５】
次に、レベライズされたノードモデルにおいて、ノードの合計数が最小のレベルを判定する（ステップＳ１３）。このステップＳ１３の判定処理の結果、ノード数が最小であったレベルに含まれるノードがＸ伝播対策回路の挿入位置として選定され、回路挿入処理部１４により、選定された位置にＸ伝播対策回路が挿入されるように回路接続情報が更新される。
【００２６】
以下、上記の各処理ステップでの処理について、詳しく説明する。まず、図５は、ノードモデルの生成について説明するための図である。
図５の左側に示した回路構成例は、回路挿入位置抽出部１３に入力された回路接続情報に基づくものである。この回路において、ＦＦ１４１〜１４４は、パワードメインの出力段からＮ段目のＦＦであって、ＦＦ置換処理部１２によって、ステートリテンションＦＦからノーマルＦＦに置換されたものである。また、ＦＦ１４１，１４２の出力はゲート回路１５１に入力され、ＦＦ１４３，１４４の出力はゲート回路１５２に入力され、ゲート回路１５１，１５２の出力はゲート回路１５３に入力される。そして、ゲート回路１５３の出力はゲート回路１５４の一方の入力端子に入力され、ゲート回路１５４の出力は、３つの経路に分岐される。
【００２７】
図４のステップＳ１１では、回路挿入位置抽出部１３は、入力された回路ネットワーク上の、ＦＦ置換処理部１２によって置換されたノーマルＦＦと、そのノーマルＦＦの出力側のＦＦとの間の領域において、多出力となっているセルまたはネットを抽出し、その位置をノードとすることで、ノードモデルを生成する。このノードは、伝播する信号が集約され、かつ発散する点であることから、このような点にＸ伝播対策回路を挿入することで、Ｘ伝播対策回路の数を最小限にできる可能性のある位置と言える。図５の例では、ゲート回路１５４の出力が複数に分岐していることから、ゲート回路１５４をノードＮ１に置換して、その他のセルやネットを省略する。このような処理によって生成されたノードモデルを、図５の右側に示している。
【００２８】
図６は、ノードのレベライズについて説明するための図である。
図４のステップＳ１２では、回路挿入位置抽出部１３は、ノードモデル上のＮ段目のＦＦから（Ｎ−１）段目のＦＦまでの経路上の必要な位置にダミーノードを挿入することで、ノードをレベライズする。図６の左側の例では、ＦＦ１７１がＮ段目のＦＦ（ノーマルＦＦ）である。そして、ノードＮ１１からノードＮ１３に至る経路として、ノードＮ１２を経由する経路と、ノードＮ１２を経由せずに直接ノードＮ１３に至る経路とが存在する。そこで、図６の右側に示すように、ノードＮ１１から直接ノードＮ１３に至る経路上にダミーノードＮ１４を挿入して、ノードＮ１１からノードＮ１３への経路上のノード数を合わせる。
【００２９】
このような処理を繰り返すことで、Ｎ段目のＦＦから（Ｎ−１）段目のＦＦまでの間のすべての経路において、ノードの数が一致するようにダミーノードが挿入されて、ノードモデルが更新される。そして、更新されたノードモデルにおいて、Ｎ段目のＦＦ（または、（Ｎ−１）段目のＦＦでもよい）に近い方から順にノードレベルが割り当てられる。図６の例では、ノードＮ１１はノードレベル１に、ノードＮ１２とダミーノードＮ１４はノードレベル２に、ノードＮ１３はノードレベル３に、それぞれ割り当てられる。
【００３０】
なお、ダミーノードも、通常のノードと同様に、Ｘ伝播対策回路の挿入位置の候補となる。また、ノードレベルｍに含まれるノードの入力値は、必ずノードレベル（ｍ−１）に含まれるノードの出力値によって決定されることになる。
【００３１】
図７は、レベライズされたノードモデルの例を示す図である。
図７のノードモデルにおいて、ノードＮ１１１〜Ｎ１１３，Ｎ１２１〜Ｎ１２４，Ｎ１３１〜Ｎ１３３，Ｎ１４１〜Ｎ１４４は、ステップＳ１１の処理により生成されたノードである。また、ステップＳ１２の処理により、Ｎ段目の２つのＦＦ１８１，１８２からノードＮ１２１への２つの経路上にはそれぞれダミーノードＮ１５１，Ｎ１５２が挿入され、ノードＮ１１３からノードＮ１３３への経路上にはダミーノードＮ１５３が挿入され、ノードＮ１３１，Ｎ１３２から（Ｎ−１）段目の１つのＦＦ１８３への経路上にはダミーノードＮ１５４が挿入されている。
【００３２】
この結果、図７のノードモデルには４段階のノードレベルが付与され、ノードＮ１１１〜Ｎ１１３とダミーノードＮ１５１，Ｎ１５２とがノードレベル１に割り当てられ、ノードＮ１２１〜Ｎ１２４とダミーノードＮ１５３とがノードレベル２に割り当てられ、ノードＮ１３１〜Ｎ１３３がノードレベル３に割り当てられ、ノードＮ１４１〜Ｎ１４４とダミーノードＮ１５４とがノードレベル４に割り当てられる。
【００３３】
このように生成されたノードモデルでは、Ｎ段目のＦＦからの出力信号は、必ず４つのノードレベルのノードを順に経由して、（Ｎ−１）段目のＦＦに伝播することになる。このため、いずれか１つのノードレベルに含まれる全ノードの出力側にのみ、Ｘ伝播対策回路を挿入すれば、Ｎ段目のＦＦをステートリテンションＦＦとした場合と同様に、電源の再投入時の回路の復帰時間を（Ｎ−１）サイクルとすることができる。従って、各ノードレベルのうち、ノード数が最小となるノードレベルに含まれるノードの出力側に、Ｘ伝播対策回路を挿入することで、Ｘ伝播対策回路の挿入数を最小に留めることができる。
【００３４】
図８は、回路挿入処理部の処理手順を示すフローチャートである。
回路挿入処理部１４は、以下の処理により、回路接続情報に基づく回路ネットワークに対してＸ伝播対策回路を挿入して、その回路接続情報を更新する。図４のステップＳ１３の処理により、レベライズされたノードモデルにおいて、ノード数が最小であるノードレベルが判定されると、回路挿入処理部１４は、判定されたノードレベルからノードを１つ抽出する（ステップＳ２１）。そして、そのノードの出力側に、Ｘ伝播対策回路を挿入する（ステップＳ２２）。次に、判定されたノードレベルに含まれるすべてのノードに対する処理が終了したか否かを判定し（ステップＳ２３）、終了していない場合には、ステップＳ２１に戻って、次のノードを抽出してＸ伝播対策回路の挿入処理を行う。以後、判定されたノードレベルに含まれるすべてのノードの出力側にＸ伝播対策回路が挿入するまで、ステップＳ２１〜Ｓ２３の処理ループが繰り返される。
【００３５】
なお、ステップＳ２１では、通常のノードだけでなく、ダミーノードも抽出される。このダミーノードは実際には存在しないノードであるため、ステップＳ２１でダミーノードが抽出された場合には、ステップＳ２２では、そのダミーノードの出力側に隣接する通常のノードの出力側に、Ｘ伝播対策回路を挿入する。
【００３６】
図９は、図７のノードモデルに対するＸ伝播対策回路の挿入位置を示す図である。
図７に示したノードモデルでは、ノードレベル３に含まれるノード数が最小となる。従って、図９に示すように、ノードレベル３に含まれるノードＮ１３１〜Ｎ１３３の出力側に、Ｘ伝播対策回路１９１〜１９３がそれぞれ挿入される。
【００３７】
ここで、Ｎ段目のＦＦをステートリテンションＦＦとした場合には、７個のステートリテンションＦＦが必要となるが、上記の処理により、Ｎ段目のＦＦを回路規模や消費電力の小さいノーマルＦＦとしながらも、Ｘ伝播対策回路を３つだけ挿入することで、電源再投入からの復帰時間を同等とすることができる。Ｘ伝播対策回路としては、電源遮断時にその直前の入力データをラッチする機能を備えていればよいが、仮にＸ伝播対策回路をステートリテンションＦＦとした場合であっても、全体の回路規模や消費電力が抑制されることを期待できる。
【００３８】
図１０は、Ｘ伝播対策回路の構成例を示す図である。
図１０に示すＸ伝播対策回路２１０は、スイッチ２１１、およびインバータ２１２〜２１４を備えている。スイッチ２１１は、外部からのコントロール信号に応じて、Ｘ伝播対策回路への入力信号を受け入れるか否かを切り替える。このコントロール信号は、例えば、パワードメイン２００が搭載された半導体装置の外部に設置された電源制御装置（ＰＭＵ：Power Management Unit）などから供給される。インバータ２１２の入力端子は、スイッチ２１１およびインバータ２１３の各出力端子に接続され、インバータ２１２からの出力信号は、インバータ２１３，２１４にそれぞれ出力される。また、インバータ２１４の出力端子は、Ｘ伝播対策回路２１０の出力端子となっている。
【００３９】
このＸ伝播対策回路２１０では、図１０（Ａ）に示すように、パワードメイン２００に対する電源供給がオンである場合には、入力信号はスイッチ２１１、インバータ２１２，２１４を介して、そのまま出力される。また、パワードメイン２００に対する電源供給がオフされると、半導体装置は、パワードメイン２００内のＸ伝播対策回路２１０にのみ電源が供給されるスリープモードに遷移する。このとき、図１０（Ｂ）に示すように、コントロール信号に応じてスイッチ２１１が切断状態とされて、信号の入力が遮断される。これとともに、インバータ２１２，２１３からなるループ回路によって、遮断直前の入力信号の値が保持される。そして、この後に再度電源が投入され、スイッチ２１１が導通状態とされると、最初に、保持されていた値がインバータ２１４を介して出力される。
【００４０】
以上の構成のＸ伝播対策回路２１０では、電源遮断状態での入力データの保持をインバータ２１２，２１３からなる単純なラッチ回路によって実現したことにより、回路規模や、スリープモードでの消費電力を最小限に留めている。これにより、例えばステートリテンションＦＦなどと比較した場合でも、回路規模が小さく、かつ消費電力も小さい回路を実現できる。
【００４１】
なお、上記の半導体設計装置によって挿入されるＸ伝播対策回路は、上記構成の回路に限るものではないが、できるだけ単純な回路構成によって、電源遮断時のデータラッチ機能が実現されることが望ましい。
【００４２】
次に、図１１は、出力判定部の処理手順を示すフローチャートである。
上記の処理によって回路ネットワーク内にＸ伝播対策回路が挿入されると、出力判定部１５は、その回路ネットワークの回路接続情報を基に、回路規模や消費電力などの抑制効果があるか否かを判定し、効果を奏する場合にのみ、Ｘ伝播対策回路が挿入された回路についての設計情報を作成して出力する。
【００４３】
まず、出力判定部１５は、Ｘ伝播対策回路が挿入される前の回路接続情報（すなわち、回路データ入力部１１に入力された情報に基づく回路接続情報）を基に、パワードメインの出力段からＮ段目のすべてのＦＦがステートリテンションＦＦである場合の、パワードメイン内の回路の回路規模や、消費電力を計算する（ステップＳ３１）。次に、回路挿入処理部１４から出力された、Ｘ伝播対策回路が挿入された回路接続情報を基に、パワードメイン内の回路の回路規模や、消費電力を計算する（ステップＳ３２）。なお、回路規模や消費電力については、既知の手法により計算されればよい。
【００４４】
次に、ステップＳ３１での演算結果とステップＳ３２での演算結果とを比較し（ステップＳ３３）、回路規模および消費電力の双方について（また、いずれか一方であってもよい）、抑制効果があった場合には、Ｘ伝播対策回路が挿入された回路接続情報を基に、回路の設計情報（ＨＤＬデータ）を生成して出力する（ステップＳ３４）。なお、抑制効果がなかった場合には、例えば、画面表示などによってその旨がユーザに通知される。
【００４５】
以上説明した半導体設計装置によれば、パワードメインの出力段から所望の段数ＮのＦＦと段数（Ｎ−１）のＦＦとの間の領域でノードモデル化処理を行い、そのノードモデル上のノードレベルを基にＸ伝播対策回路の挿入数を最小限にすることが可能な挿入位置を判定するようにしたことで、Ｎ段目のＦＦをステートリテンションＦＦなどのデータラッチ機能付きのＦＦとした場合と比較して、電源の再投入時の回路の復帰時間を増大させることなく、回路規模や製造コスト、消費電力が抑制されるように、回路構成を最適化することが可能となる。
【００４６】
次に、図１２〜図１４を用いて、前述した回路挿入位置抽出部１３によるノードモデル化処理（図４のステップＳ１１）について、補足説明する。まず、図１２は、ＦＦとその次段のＦＦとの間に多出力のセルまたはネットが存在しない場合のノードモデル化処理について説明するための図である。
【００４７】
図１２に示した回路構成例では、パワードメインの出力段からＮ段目のＦＦ３０１，３０２からの出力信号が、ゲート回路３０３の各入力端子に入力され、ゲート回路３０３からの出力信号が、（Ｎ−１）段目のＦＦ３０４のデータ入力端子に入力されている。すなわち、Ｎ段目のＦＦ３０１，３０２からの（Ｎ−１）段目のＦＦ３０４への信号経路上に、多出力のセルおよびネットが存在していない。
【００４８】
このような回路構成の場合、図４のステップＳ１１では、図１２の下段に示すように、Ｎ段目のＦＦ３０１，３０２と（Ｎ−１）段目のＦＦ３０４との間にノードを生成しない。また、この状態のままで、ノードレベルごとのノード数を基にＸ伝播対策回路を挿入する場合には、（Ｎ−１）段目のＦＦ３０４の出力側にＸ伝播対策回路を挿入すればよい。
【００４９】
図１３は、外部ポートからのセレクト信号が入力されるセレクタが存在している場合のノードモデル化処理について説明するための図である。
図１３に示した回路構成例では、パワードメインの出力段からＮ段目のＦＦ３１１，３１２からの出力信号が、セレクタ回路３１３の各入力端子に入力され、セレクタ回路３１３からの出力信号は分岐して、（Ｎ−１）段目のＦＦ３１４，３１５の各データ入力端子に入力されている。また、セレクタ回路３１３の制御端子には、図１３の回路が形成された半導体装置の外部ポートからセレクト信号が入力されて、このセレクト信号に応じてセレクタ回路３１３の選択出力動作が制御される。
【００５０】
このように、Ｎ段目のＦＦの出力端子から続く信号経路とは別に、外部ポートから入力された信号を受ける回路要素が存在する場合には、図４のステップＳ１１では、外部ポートからの信号経路を無視してノードを生成すればよい。図１３の回路構成では、図中下段に示すように、外部ポートからのセレクト信号を無視して、ＦＦ３１１，３１２とＦＦ３１４，３１５との間の信号経路上の分岐点、すなわちセレクタ回路３１３の出力側に、ノードＮ２０１を生成する。
【００５１】
図１４は、次段のＦＦからのフィードバックループが存在する場合のノードモデル化処理について説明するための図である。
図１４に示した回路構成例では、パワードメインの出力段からＮ段目のＦＦ３２１からの出力信号が、セレクタ回路３２２の一方の入力端子に入力され、セレクタ回路３２３からの出力信号は分岐して、その一方がセレクタ回路３２２の他方の入力端子に入力されている。
【００５２】
このように、信号経路上にフィードバックループが存在している場合、図４のステップＳ１１では、ループのための信号経路を出力の分岐と見なさずに無視して、ノードを生成する。図１４の例では、図中下段に示すように、セレクタ回路３２２へのフィードバックループを取り去った状態と考えて、ノードを生成する。この例では、図４のステップＳ１１の処理では、ＦＦ３２１とＦＦ３２３との間の信号経路にノードは生成されない。
【００５３】
最後に、２通りの回路構成例を挙げて、前述の処理手順を適用してＸ伝播対策回路を挿入する場合の具体的な処理例について説明する。
まず、処理例１について、図１５〜図１７を用いて説明する。図１５は、処理例１において適用する回路構成例を示す図である。
【００５４】
図１５に示した回路構成例では、パワードメインの出力段からＮ段目のＦＦとして、８つのＦＦ４０１〜４０８が設けられている。ＦＦ４０１〜４０４の各出力信号の経路は、ゲート回路４１１〜４１３を介して、ゲート回路４１４の一方の入力端子に接続している。また、ＦＦ４０５〜４０８の各出力信号の経路は、ゲート回路４１５〜４１７を介して、ゲート回路４１４の他方の入力端子に接続している。そして、ゲート回路４１４の出力信号の経路は３方向に分岐し、それぞれ（Ｎ−１）段目の３つのＦＦ４２１〜４２３のデータ入力端子に接続している。
【００５５】
図１６は、図１５の回路構成例に基づくノードモデルを示す図である。
図１５のような構成の回路に対して、図４のステップＳ１１におけるノードモデル化処理を適用すると、Ｎ段目のＦＦ４０１〜４０８と（Ｎ−１）段目のＦＦ４２１〜４２３との間においては、ゲート回路４１４の出力側に信号経路の分岐点が１つのみ存在することから、図１６に示すように、この分岐点に１つのノードＮ３０１が生成される。
【００５６】
図１７は、図１６のノードモデルに基づくＸ伝播対策回路の挿入位置を示す図である。
図１６のノードモデルではノードが１つであることから、図４のステップＳ１２においてダミーノードは生成されず、図４のステップＳ１３では、ノードＮ３０１に対応するノードレベルが選定される。従って、図１７に示すように、ノードＮ３０１の出力側に、Ｘ伝播対策回路４３０が挿入される。
【００５７】
次に、処理例２について、図１８〜図２１を用いて説明する。この処理例２は、ノードのレベライズが必要となる場合の例である。図１８は、処理例２において適用する回路構成例を示す図である。
【００５８】
図１８に示した回路構成例では、パワードメインの出力段からＮ段目のＦＦとして、２０個のＦＦ５０１〜５２０が設けられている。また、（Ｎ−１）段目のＦＦとして、８個のＦＦ５２１〜５２８が設けられている。
【００５９】
ＦＦ５０１〜５０４の各出力信号の経路は、ゲート回路５３１〜５３３を介して、ゲート回路５３４の一方の入力端子に接続している。ＦＦ５０５〜５０８の各出力信号の経路は、ゲート回路５３５〜５３７を介して、ゲート回路５３４の他方の入力端子に接続しているとともに、ゲート回路５３７の出力側で分岐して、ゲート回路５３８の一方の入力端子にも接続している。
【００６０】
ＦＦ５０９〜５１２の各出力信号の経路は、ゲート回路５３９〜５４１およびインバータ回路５４２を介して、ゲート回路５３８の他方の入力端子に接続している。ＦＦ５１３〜５１６の各出力信号の経路は、ゲート回路５４３〜５４５を介して、ゲート回路５４６の一方の入力端子に接続している。ＦＦ５１７〜５２０の各出力信号の経路は、ゲート回路５４７〜５４９を介して、ゲート回路５４６の他方の入力端子に接続しているとともに、ゲート回路５４９の出力側で分岐して、ＦＦ５２８のデータ入力端子にも接続している。
【００６１】
ゲート回路５３４の出力信号の経路は、インバータ回路５５０を介して２方向に分岐し、ＦＦ５２１，５２２の各データ入力端子に接続している。ゲート回路５３８の出力信号の経路は３方向に分岐し、ＦＦ５２３のデータ入力端子、ＦＦ５２４のデータ入力端子、ゲート回路５５１の一方の入力端子にそれぞれ接続している。ゲート回路５４６の出力信号の経路は２方向に分岐し、ゲート回路５５１の他方の入力端子とＦＦ５２７のデータ入力端子にそれぞれ接続している。ゲート回路５５１の出力信号の経路は２方向に分岐し、ＦＦ５２５，５２６の各データ入力端子に接続している。
【００６２】
図１９は、図１８の回路構成例に基づくノードモデルを示す図である。
図１８のような構成の回路に対して、図４のステップＳ１１におけるノードモデル化処理を適用すると、図１９のようなノードモデルが生成される。なお、この図１９（後の図２０、図２１も同様）では、Ｎ段目のＦＦからの出力信号の経路について、４つのＦＦを単位としてまとめて示している。
【００６３】
図１９において、ノードＮ３１１は、インバータ回路５５０の出力側の分岐点に対応し、ノードＮ３１２は、ゲート回路５３７の出力側の分岐点に対応し、ノードＮ３１３は、ゲート回路５４９の出力側の分岐点に対応している。また、ノードＮ３１４は、ゲート回路５４６の出力側の分岐点に対応し、ノードＮ３１５は、ゲート回路５５１の出力側の分岐点に対応している。
【００６４】
図２０は、図１９のノードモデルをレベライズした後のノードモデルを示す図である。
図１９に示したノードモデルでは、Ｎ段目のＦＦから（Ｎ−１）段目のＦＦまでの信号経路のうち、最大で３つのノード（ノードＮ３１３，Ｎ３１４，Ｎ３１５）を通過する経路が存在する。このため、図４のステップＳ１２におけるレベライズ処理では、Ｎ段目のＦＦから（Ｎ−１）段目のＦＦまでのすべての信号経路が３つのノードを通過するように、図１９のノードモデル上にダミーノードを挿入する。この結果、図２０に示すように、９個のダミーノードＮ３２１〜Ｎ３２９が挿入される。
【００６５】
図２１は、図２０のノードモデルに基づくＸ伝播対策回路の挿入位置を示す図である。
図２０に示したレベライズ処理後のノードモデルでは、ノードＮ３１１〜Ｎ３１３およびダミーノードＮ３２１がノードレベル１に属しており、図４のステップＳ１３のレベル判定処理では、このノードレベル１のノード数が他のノードレベルと比較して最も小さいと判定される。従って、Ｘ伝播対策回路は、基本的に、ノードレベル１に属するノードＮ３１１〜Ｎ３１３およびダミーノードＮ３２１の各出力側の位置に挿入されればよい。図２１において、Ｘ伝播対策回路５６１〜５６３は、このような基本原則に従って、それぞれノードＮ５１〜Ｎ５３の出力側に挿入されている。
【００６６】
ただし、ノードレベル１のノードのうちダミーノードＮ３２１は、実際には信号経路が分岐していないノードであるため、ダミーノードＮ３２１の出力側にのみＸ伝播対策回路を挿入すると、次のノードＮ３１４には、電源再投入後にＦＦ５１７〜５２０からの不定な信号が入力されてしまう可能性がある。このため、ノードＮ３１３およびダミーノードＮ３２１の各出力信号を受けるノードＮ３１４の出力側にも、Ｘ伝播対策回路を挿入する必要が生じる。この場合、ダミーノードＮ３２１の出力側にＸ伝播対策回路を挿入しなくても不定な信号の伝播を阻止する効果は同等であるため、ノードＮ３１４の出力側にのみ、Ｘ伝播対策回路５６４が挿入される。すなわち、ノード数が最小のノードレベルの属するノードのうち、ダミーノードでは、そのさらに出力側に存在するノード（ダミーノードを除く）の出力側にＸ伝播対策回路を挿入すればよい。
【００６７】
なお、前述のように、上記の半導体設計装置の処理機能は、コンピュータによって実現することができる。その場合には、上記の半導体設計装置が有すべき処理機能の処理内容を記述したプログラムが提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【００６８】
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
【００６９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、そのプログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７０】
（付記１）  半導体集積装置内のパワードメインにおける回路配置を適正化するための半導体設計方法において、
ノードモデル生成部が、前記パワードメインの回路設計情報に基づき、前記パワードメインの出力側境界から数えてＮ段目（ただし、Ｎは２以上の整数）のフリップフロップ回路と、（Ｎ−１）段目のフリップフロップ回路との間の信号経路において、出力の分岐点をノードとして定義したノードモデルを生成するノードモデル生成ステップと、
ノード数調整部が、生成された前記ノードモデルにおいて、Ｎ段目の各フリップフロップ回路から（Ｎ−１）段目の各フリップフロップ回路までのすべての信号経路上の前記ノードの数が同じになるように、前記ノードを追加して前記ノードモデルを更新するノード数調整ステップと、
回路挿入位置抽出部が、更新された前記ノードモデルにおいて、Ｎ段目または（Ｎ−１）段目の各フリップフロップ回路から見て同じノード段数となる位置に配置された前記ノードをカウントし、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの出力側を、前記パワードメインの電源遮断時にその直前の入力データをラッチするデータラッチ回路を挿入する位置として抽出する回路挿入位置抽出ステップと、
を含むことを特徴とする半導体設計方法。
【００７１】
（付記２）  前記回路挿入位置抽出ステップでは、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの中に、前記ノード数調整ステップで追加された前記ノードが含まれていた場合には、当該ノードの出力側に配置された次の前記ノードの出力側を、前記データラッチ回路の挿入位置として抽出することを特徴とする付記１記載の半導体設計方法。
【００７２】
（付記３）  前記ノードモデル生成ステップでは、前記パワードメインにおいて、Ｎ段目のフリップフロップ回路の出力端子から続く信号経路とは別に、前記半導体集積装置の外部ポートから入力された信号を受ける回路要素が存在する場合には、当該外部ポートからの信号経路を無視して前記ノードモデルを生成することを特徴とする付記１または２に記載の半導体設計方法。
【００７３】
（付記４）  前記ノードモデル生成ステップでは、前記パワードメインにおいて、その出力側の信号経路の一部からフィードバックされた信号の入力を受ける回路要素が存在する場合には、当該回路にフィードバックされる信号の経路が分岐される分岐点に対して前記ノードを定義しないことを特徴とする付記１〜３のいずれか１つに記載の半導体設計方法。
【００７４】
（付記５）  回路設計情報生成部が、前記パワードメイン内の前記回路挿入位置抽出ステップで抽出された位置に前記データラッチ回路を挿入した半導体集積装置の回路設計情報を生成する回路設計情報生成ステップをさらに含み、
前記回路設計情報生成ステップで挿入される前記データラッチ回路は、
入力データを選択的に遮断する入力遮断回路と、
前記入力遮断回路の出力側に直列に接続された第１および第２のインバータ回路と、
前記第１のインバータ回路から信号の入力を受けて、出力データを前記第１のインバータ回路の入力端子に供給する第３のインバータ回路と、
を有することを特徴とする付記１〜４のいずれか１つに記載の半導体設計方法。
【００７５】
（付記６）  出力判定部が、前記パワードメインに対して、前記回路挿入位置抽出ステップで抽出された位置に前記データラッチ回路を挿入した場合の回路特性と、元の前記パワードメインにおけるＮ段目のフリップフロップ回路を、前記パワードメインの電源遮断時にその直前の入力データをラッチする機能を備えたものとした場合の回路特性とを比較する特性比較ステップと、
前記出力判定部が、前記データラッチ回路を挿入した回路の方が好適な回路特性である場合にのみ、当該データラッチ回路が挿入された半導体集積装置の回路設計情報を出力する出力ステップと、
をさらに含むことを特徴とする付記１〜５のいずれか１つに記載の半導体設計方法。
【００７６】
（付記７）  前記特性比較ステップでは、回路特性として、回路規模または消費電力の少なくとも一方を比較することを特徴とする付記６記載の半導体設計方法。
（付記８）  回路置換処理部が、前記パワードメイン内のＮ段目のフリップフロップ回路が、前記パワードメインの電源遮断時にその直前の入力データをラッチする機能を備えたフリップフロップ回路とされた半導体集積装置の回路設計情報の入力を受けて、当該パワードメインにおけるＮ段目のフリップフロップ回路を電源遮断時の入力データのラッチ機能を持たないフリップフロップ回路に置換する回路置換処理ステップをさらに含み、
前記ノードモデル生成ステップでは、前記回路置換処理ステップにおいてフリップフロップ回路の置換が行われた半導体集積回路の回路設計情報に基づき、前記ノードモデルを生成することを特徴とする付記１〜６のいずれか１つに記載の半導体設計方法。
【００７７】
（付記９）  半導体集積装置内のパワードメインにおける回路配置を適正化する半導体設計装置において、
前記パワードメインの回路設計情報に基づき、前記パワードメインの出力側境界から数えてＮ段目（ただし、Ｎは２以上の整数）のフリップフロップ回路と、（Ｎ−１）段目のフリップフロップ回路との間の信号経路において、出力の分岐点をノードとして定義したノードモデルを生成するノードモデル生成部と、
前記ノードモデル生成部により生成された前記ノードモデルにおいて、Ｎ段目の各フリップフロップ回路から（Ｎ−１）段目の各フリップフロップ回路までのすべての信号経路上の前記ノードの数が同じになるように、前記ノードを追加して前記ノードモデルを更新するノード数調整部と、
前記ノード数調整部により更新された前記ノードモデルにおいて、Ｎ段目または（Ｎ−１）段目の各フリップフロップ回路から見て同じノード段数となる位置に配置された前記ノードをカウントし、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの出力側を、前記パワードメインの電源遮断時にその直前の入力データをラッチするデータラッチ回路を挿入する位置として抽出する回路挿入位置抽出部と、
を有することを特徴とする半導体設計装置。
【００７８】
（付記１０）  半導体集積装置内のパワードメインにおける回路配置を適正化するための半導体設計プログラムにおいて、
コンピュータを、
前記パワードメインの回路設計情報に基づき、前記パワードメインの出力側境界から数えてＮ段目（ただし、Ｎは２以上の整数）のフリップフロップ回路と、（Ｎ−１）段目のフリップフロップ回路との間の信号経路において、出力の分岐点をノードとして定義したノードモデルを生成するノードモデル生成部、
前記ノードモデル生成部により生成された前記ノードモデルにおいて、Ｎ段目の各フリップフロップ回路から（Ｎ−１）段目の各フリップフロップ回路までのすべての信号経路上の前記ノードの数が同じになるように、前記ノードを追加して前記ノードモデルを更新するノード数調整部、
前記ノード数調整部により更新された前記ノードモデルにおいて、Ｎ段目または（Ｎ−１）段目の各フリップフロップ回路から見て同じノード段数となる位置に配置された前記ノードをカウントし、前記ノードの数が最も少ない前記ノード段数に対応する前記ノードの出力側を、前記パワードメインの電源遮断時にその直前の入力データをラッチするデータラッチ回路を挿入する位置として抽出する回路挿入位置抽出部、
として機能させることを特徴とする半導体設計プログラム。
【図面の簡単な説明】
【００７９】
【図１】実施の形態に係る半導体設計装置の機能を示すブロック図である。
【図２】半導体設計装置のハードウェア構成例を示すブロック図である。
【図３】ＦＦ置換処理部の処理について説明するための図である。
【図４】回路挿入位置抽出部の処理手順を示すフローチャートである。
【図５】ノードモデルの生成について説明するための図である。
【図６】ノードのレベライズについて説明するための図である。
【図７】レベライズされたノードモデルの例を示す図である。
【図８】回路挿入処理部の処理手順を示すフローチャートである。
【図９】図７のノードモデルに対するＸ伝播対策回路の挿入位置を示す図である。
【図１０】Ｘ伝播対策回路の構成例を示す図である。
【図１１】出力判定部の処理手順を示すフローチャートである。
【図１２】ＦＦとその次段のＦＦとの間に多出力のセルまたはネットが存在しない場合のノードモデル化処理について説明するための図である。
【図１３】外部ポートからのセレクト信号が入力されるセレクタが存在している場合のノードモデル化処理について説明するための図である。
【図１４】次段のＦＦからのフィードバックループが存在する場合のノードモデル化処理について説明するための図である。
【図１５】処理例１において適用する回路構成例を示す図である。
【図１６】図１５の回路構成例に基づくノードモデルを示す図である。
【図１７】図１６のノードモデルに基づくＸ伝播対策回路の挿入位置を示す図である。
【図１８】処理例２において適用する回路構成例を示す図である。
【図１９】図１８の回路構成例に基づくノードモデルを示す図である。
【図２０】図１９のノードモデルをレベライズした後のノードモデルを示す図である。
【図２１】図２０のノードモデルに基づくＸ伝播対策回路の挿入位置を示す図である。
【符号の説明】
【００８０】
１１  回路データ入力部
１２  ＦＦ置換処理部
１３  回路挿入位置抽出部
１４  回路挿入処理部
１５  出力判定部
【図１】
0004983609.tif 000002
【図２】
0004983609.tif 000003
【図３】
0004983609.tif 000004
【図４】
0004983609.tif 000005
【図５】
0004983609.tif 000006
【図６】
0004983609.tif 000007
【図７】
0004983609.tif 000008
【図８】
0004983609.tif 000009
【図９】
0004983609.tif 000010
【図１０】
0004983609.tif 000011
【図１１】
0004983609.tif 000012
【図１２】
0004983609.tif 000013
【図１３】
0004983609.tif 000014
【図１４】
0004983609.tif 000015
【図１５】
0004983609.tif 000016
【図１６】
0004983609.tif 000017
【図１７】
0004983609.tif 000018
【図１８】
0004983609.tif 000019
【図１９】
0004983609.tif 000020
【図２０】
0004983609.tif 000021
【図２１】
0004983609.tif 000022