(57)【要約】【課題】  設計者が論理を把握しやすいように、クロック回路を画面に表示する。【解決手段】  クロック回路を画面に表示するときには、クロック回路から論理を変更することなくバッファおよびインバータを除去した回路を表示する。この表示用回路は、クロック回路から、論理を変更しないバッファと、クロック経路を配線の分岐点で分割した場合に、各区間のクロック経路上に存在するインバータの組とを除去する第１の方法、あるいは、クロック回路に対して複数のクロック経路上に存在する論理素子を複写して追加し、論理を変更しないバッファと、論理を変更しないバッファ以外の論理素子間に存在するインバータの組とを除去し、複数のクロック経路上に同じ論理を実現する部分回路が存在する場合に重複した部分回路を除去する第２の方法により求められる。【選択図】  図３
2005122471.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の設計データを用いて、クロック回路を表示する方法であって、
クロック経路上に存在する論理素子および配線によって構成されるクロック回路から、論理を変更することなくバッファおよびインバータを除去することにより、表示用回路を求めるステップと、
求めた前記表示用回路を表示するステップとを備えた、回路の表示方法。
【請求項２】
前記表示用回路を求めるステップは、前記クロック回路から、論理を変更しないバッファのすべてと、クロック経路を配線の分岐点で分割した場合に、各区間のクロック経路上に存在するインバータの組のすべてとを除去することを特徴とする、請求項１に記載の回路の表示方法。
【請求項３】
前記表示用回路を求めるステップは、
前記クロック回路について、各クロック経路が互いに独立した経路となるように、複数のクロック経路上に存在する論理素子を複写して追加するステップと、
論理素子を追加した後の前記クロック回路から、論理を変更しないバッファのすべてと、論理を変更しないバッファ以外の論理素子間に存在するインバータの組のすべてとを除去するステップと、
バッファおよびインバータの組を除去した後の前記クロック回路について、各クロック経路が共通した部分を持つように、複数のクロック経路上に同じ論理を実現する部分回路がある場合に重複した部分回路を除去するステップとを含む、請求項１に記載の回路の表示方法。
【請求項４】
半導体集積回路の設計データを用いて、クロック回路を表示する方法であって、
各クロック信号が伝搬する配線の表示色と、複数種類のクロック信号が伝搬する配線の表示色とを指定するステップと、
クロック経路上に存在する論理素子および配線によって構成されるクロック回路を表示するステップとを備え、
前記クロック回路を表示するステップは、各クロック信号が伝搬する配線と複数種類のクロック信号が伝搬する配線とを区別して、各配線を指定された表示色で表示することを特徴とする、回路の表示方法。
【請求項５】
半導体集積回路の設計データを用いて、クロック回路を表示する方法であって、
第１のクロック経路上に存在する論理素子と、第２のクロック経路上に存在する論理素子との対応づけを指定するステップと、
前記第１および第２のクロック経路について、クロック経路上に存在する論理素子および配線によって構成されるクロック回路を表示するステップとを備え、
前記クロック回路を表示するステップは、指定された論理素子が画面に対して水平または垂直な１本の直線上に並ぶように、前記クロック回路を表示することを特徴とする、回路の表示方法。
【請求項６】
半導体集積回路の設計データを用いて、回路を表示する方法であって、
複数の論理素子と一以上の配線とを含み、一つの要素として表示されるべき部分回路の構造を指定するステップと、
表示対象となる回路から前記部分回路を探索するステップと、
探索して得られた前記部分回路を一つの要素として表示しながら、前記表示対象となる回路を表示するステップとを備えた、回路の表示方法。
【請求項７】
前記部分回路は、論理素子のインスタンスを用いて指定されることを特徴とする、請求項６に記載の回路の表示方法。
【請求項８】
前記部分回路は、論理素子のタイプを用いて指定されることを特徴とする、請求項６に記載の回路の表示方法。
【請求項９】
半導体集積回路の設計データを用いて、回路を表示する方法であって、
表示対象となる回路のレイアウト後の設計データから、各配線の属性情報を取得するステップと、
取得した前記属性情報に対応した態様で各配線を表示しながら、前記表示対象となる回路を表示するステップとを備えた、回路の表示方法。
【請求項１０】
半導体集積回路の設計データに設計制約を設定する方法であって、
複数の論理素子と一以上の配線とを含む部分回路の構造と、前記部分回路に対して設定すべき設計制約とを指定するステップと、
処理対象となる回路から前記部分回路を探索するステップと、
探索して得られた前記部分回路に、指定された前記設計制約を設定するステップとを備えた、設計制約の設定方法。
【請求項１１】
半導体集積回路の設計データに設定された設計制約を検証する方法であって、
複数の論理素子と一以上の配線とを含む部分回路の構造と、前記部分回路に対して設定すべき設計制約とを指定するステップと、
処理対象となる回路から前記部分回路を探索するステップと、
探索して得られた前記部分回路に、指定された前記設計制約が設定されているか否かを判定するステップと、
前記判定結果を出力するステップとを備えた、設計制約の検証方法。
【請求項１２】
半導体集積回路の設計データを用いて、回路を比較する方法であって、
比較対象となる第１および第２の回路から、それぞれ、クロック経路上に存在する論理素子および配線によって構成される第１および第２のクロック回路を抽出するステップと、
前記第１および第２のクロック回路について、論理的に等価なクロック信号が供給される記憶素子の群を求めるステップと、
前記第１のクロック回路に含まれる群と、前記第２のクロック回路に含まれる群とを、各群に属する記憶素子の個数に基づき対応づけるステップと、
前記第１のクロック回路に含まれる群に属する記憶素子と、当該群に対応し前記第２のクロック回路に含まれる群に属する記憶素子とを、各記憶素子のインスタンス名に基づき対応づけるステップと、
求めた記憶素子の対応づけを制約条件として、前記第１および第２の回路の論理比較を行うステップとを備えた、回路の比較方法。
【請求項１３】
前記第１および第２のクロック回路をそれぞれ論理圧縮するステップをさらに備え、
前記群を求めるステップは、論理圧縮された前記第１および第２のクロック回路から、それぞれ、論理的に等価なクロック信号が供給される記憶素子のすべてによって構成される群を求めることを特徴とする、請求項１２に記載の回路の比較方法。
【請求項１４】
前記群を求めるステップは、前記第１および第２のクロック回路から、それぞれ、同じ論理素子から出力されたクロック信号が直接供給される記憶素子のすべてによって構成される群を求めることを特徴とする、請求項１２に記載の回路の比較方法。
【請求項１５】
半導体集積回路の設計データに基づき、クロック回路の簡略化した設計データを求める方法であって、
クロック経路上に存在する論理素子および配線によって構成されるクロック回路について、論理的に等価なクロック信号が供給される記憶素子の群を求めるステップと、
各群に属する記憶素子の全体を、各群に属する記憶素子の個数を含んだインスタンス名を有する１個の記憶素子に置換するステップとを備えた、設計データの生成方法。
【請求項１６】
前記クロック回路を論理圧縮するステップをさらに備え、
前記群を求めるステップは、論理圧縮された前記クロック回路から、論理的に等価なクロック信号が供給される記憶素子のすべてによって構成される群を求めることを特徴とする、請求項１５に記載の設計データの生成方法。
【請求項１７】
前記群を求めるステップは、前記クロック回路から、同じ論理素子から出力されたクロック信号が直接供給される記憶素子のすべてによって構成される群を求めることを特徴とする、請求項１５に記載の設計データの生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計データの処理方法に関し、より特定的には、半導体集積回路に含まれるクロック回路などの設計データの処理方法に関する。
【背景技術】
【０００２】
ロジック回路を含んだ半導体集積回路の多くは、外部から供給されたクロック信号、あるいは、外部から供給された信号に基づき内部で生成したクロック信号に同期して動作する。一般に半導体集積回路は、複数のフリップフロップと、与えられたクロック信号に基づき各フリップフロップに供給されるクロック信号を生成する回路（以下、クロック回路という）とを備えている。半導体集積回路を正しく動作させるためには、各フリップフロップにクロック信号を正しく供給することが必要である。また、半導体集積回路の消費電力を低減するためには、動作させない回路ブロックに対するクロック信号の供給を停止することが有効である。このため、クロック回路の構成やクロック信号の供給方法は、半導体集積回路の設計上の重要な課題であると認識されている。
【０００３】
クロック回路を解析するときには、クロック回路のうちで、クロック信号が流れる経路（以下、クロック経路という）とクロック経路上に存在する論理セルとに着目し、その部分をクロックツリーとして解析することが、広く行われている。このクロックツリー解析では、与えられたクロック信号が各フリップフロップに到達するまでの時間などが算出される。その後、クロックツリーの解析結果に基づき、クロックスキュー（与えられたクロック信号が各フリップフロップに到達するまでの時間の差）が所定の許容値よりも小さくなるように、クロック回路にバッファなどを追加あるいは削除する処理や、レイアウト結果を修正する処理などが行われる。
【０００４】
半導体集積回路に含まれるクロック回路の設計については、従来から、種々の技術が知られている。このうち、本発明と関連性を有する技術としては、例えば、特許文献１〜３に記載されたものがある。特許文献１には、回路の設計検証を容易化するために、言語で記述された回路をイメージ的に視覚化する検証編集装置が記載されている。特許文献２には、回路図入力段階でネットリストについて配線幅を指定できる回路図レイアウト作成装置が記載されている。特許文献３には、修正前と修正後のネットリストの異なる部分を求め、異なる部分について設計検証を行うレイアウト検証方法が記載されている。
【特許文献１】特開平１０−３１６８８号公報
【特許文献２】特開平２−１１０６７２号公報
【特許文献３】特開平９−７４１３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、設計すべき半導体集積回路が大規模かつ複雑になるに伴い、クロック回路も大規模かつ複雑になっており、クロック回路の設計に関する問題は、従来よりも深刻になっている。いくつかの問題点を示すと、まず、クロック回路が大規模かつ複雑になったために、設計者がクロック回路の構造や機能を理解するために長い時間を要するようになっている。また、複数のクロック信号を選択的に供給するクロック回路を解析することが困難になっている。また、設計対象となる回路が大規模かつ複雑になったために、クロック回路の解析結果に基づき回路に設計制約を付加するときに、誤りが生じやすくなっている。また、設計の過程で回路変更を行ったときに変更前と変更後の回路を比較する場合があるが、回路変更の際にフリップフロップの名称が変更されると、単にフリップフロップの名称を比較しただけでは論理比較を行えないという問題も生じている。
【０００６】
それ故に、本発明は、クロック回路などの設計データに対する、従来よりも優れた特徴を有する処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決する第１の発明は、クロック回路から論理を変更することなくバッファおよびインバータを除去して表示用回路を求め、求めた表示用回路を表示する方法である。表示用回路を求めるときには、クロック回路から、論理を変更しないバッファのすべてと、クロック経路を配線の分岐点で分割した場合に、各区間のクロック経路上に存在するインバータの組のすべてとを除去することとしてもよい。あるいは、表示用回路を求めるときには、クロック回路に対して、複数のクロック経路上に存在する論理素子を複写して追加し、論理を変更しないバッファのすべてと、論理を変更しないバッファ以外の論理素子間に存在するインバータの組のすべてとを除去し、複数のクロック経路上に同じ論理を実現する部分回路がある場合に重複した部分回路を除去することとしてもよい。
【０００８】
第２の発明は、各クロック信号が伝搬する配線の表示色と、複数種類のクロック信号が伝搬する配線の表示色とを指定し、各クロック信号が伝搬する配線と複数種類のクロック信号が伝搬する配線とを区別して、各配線を指定された表示色で表示しながらクロック回路を表示する方法である。
【０００９】
第３の発明は、あるクロック経路上に存在する論理素子と、他のクロック経路上に存在する論理素子との対応づけを指定し、指定された論理素子が画面に対して水平または垂直な１本の直線上に並ぶように、これら２本のクロック経路を含むクロック回路を表示する方法である。
【００１０】
第４の発明は、一つの要素として表示されるべき部分回路の構造を指定し、表示対象となる回路から指定された部分回路を探索し、探索して得られた部分回路を一つの要素として表示しながら、表示対象となる回路を表示する回路の表示方法である。この場合、部分回路を指定するときには、論理素子のインスタンスを用いてもよく、論理素子のタイプを用いてもよい。
【００１１】
第５の発明は、表示対象となる回路のレイアウト後の設計データから各配線の属性情報を取得し、取得した属性情報に対応した態様で各配線を表示しながら、表示対象となる回路を表示する回路の表示方法である。
【００１２】
第６の発明は、部分回路の構造と部分回路に対して設定すべき設計制約とを指定し、処理対象となる回路から指定された部分回路を探索し、探索して得られた部分回路に指定された設計制約を設定する設計制約の設定方法である。また、設計制約を設定することに代えて、探索して得られた部分回路に指定された設計制約が設定されているか否かを判定し、その判定結果を出力することとすれば、設計制約の検証方法を得ることもできる。
【００１３】
第７の発明は、比較対象となる２つの回路からそれぞれクロック回路を抽出し、各クロック回路について論理的に等価なクロック信号が供給される記憶素子の群を求め、一方のクロック回路に含まれる群と他方のクロック回路に含まれる群とを、各群に属する記憶素子の個数に基づき対応づけ、一方のクロック回路に属する群に属する記憶素子と、当該群に対応し他方のクロック回路に含まれる群に属する記憶素子とを、各記憶素子のインスタンス名に基づき対応づけ、求めた記憶素子の対応づけを制約条件として、２つの回路の論理比較を行う回路の比較方法である。この場合、各クロック回路をそれぞれ論理圧縮し、群を求めるときには、論理圧縮された各クロック回路から、論理的に等価なクロック信号が供給される記憶素子のすべてによって構成される群を求めてもよい。あるいは、群を求めるときには、各クロック回路から、同じ論理素子から出力されたクロック信号が直接供給される記憶素子のすべてによって構成される群を求めてもよい。
【００１４】
第８の発明は、クロック回路について論理的に等価なクロック信号が供給される記憶素子の群を求め、各群に属する記憶素子の全体を、各群に属する記憶素子の個数を含んだインスタンス名を有する１個の記憶素子に置換する、クロック回路の簡略化した設計データを求める方法である。この場合、クロック回路を論理圧縮し、群を求めるときには、論理圧縮されたクロック回路から、論理的に等価なクロック信号が供給される記憶素子のすべてによって構成される群を求めてもよい。あるいは、群を求めるときには、クロック回路から、同じ論理素子から出力されたクロック信号が直接供給される記憶素子のすべてによって構成される群を求めてもよい。
【発明の効果】
【００１５】
上記第１の発明によれば、論理を把握するために不要なバッファとインバータとを除去した回路が表示されるので、設計者は論理を容易に把握することができる。
【００１６】
上記第２の発明によれば、設計者がクロック回路を解析して回路の設計制約を設定するときに、クロック信号の流れを容易に把握することができる。
【００１７】
上記第３の発明によれば、設計者がクロック回路を解析して回路の設計制約を設定するときに、クロック回路の構造を容易に把握することができる。
【００１８】
上記第４の発明によれば、特別な意味を有する部分回路を一つの要素として表示されるべき回路として指定し、指定された回路を一つの要素として表示することにより、設計者が回路を解析して回路の設計制約を設定するときに、回路の構造を容易に把握することができる。
【００１９】
上記第５の発明によれば、各配線の属性情報に対応した態様で各配線を表示することにより、設計者は論理回路と配線情報とを容易に確認することができる。
【００２０】
上記第６の発明によれば、設計制約を設定するときのミスを削減し、設計制約の設定に要する工数を削減することができる。
【００２１】
上記第７の発明によれば、回路に含まれるフリップフロップの個数が完全に一致しない場合や、回路に含まれる一部のフリップフロップのインスタンス名が異なっている場合でも、効率的に回路を比較することができる。
【００２２】
上記第８の発明によれば、フリップフロップの個数を反映した簡略化された設計データを生成することができるので、これを用いて回路の比較などを容易に行うことができる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して、本発明の第１〜第８の実施形態に係る半導体集積回路の設計データの処理方法を説明する。各実施形態に係る方法は、典型的には、図１に示すＥＤＡ（Electronic Design Automation）システムを用いて実行される。図１に示すＥＤＡシステム１０は、入力部１１、処理部１２、データ蓄積部１３、および表示部１４を備えている。データ蓄積部１３には、半導体集積回路の設計データが蓄積される。設計者は、入力部１１を用いてコマンドなどを入力する。処理部１２は、入力部１１から入力されたコマンドに従い、データ蓄積部１３に蓄積された設計データに対して各種の処理を行う。表示部１４は、処理部１２による処理結果として、回路図などを画面に表示する。
【００２４】
（第１の実施形態）
本発明の第１の実施形態では、設計者が論理を把握しやすいように、クロック回路を表示する方法について説明する。図２は、本実施形態に係るクロック回路の表示方法（第１の方法）を示すフローチャートである。図２に示す手順は、クロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。表示対象となるクロック回路を指定するためには、例えば、クロック経路の始点を指定する方法、クロック経路の先頭にある論理素子を指定する方法、クロック経路上に存在する論理素子または配線を指定する方法などが用いられる。
【００２５】
図２に示す手順では、表示対象となるクロック回路から、まず、論理を変更しないバッファのすべてと、クロック経路を配線の分岐点で分割した場合に、各区間のクロック経路上に存在するインバータの組のすべてとを除去する（ステップＳ１０１）。次に、ステップＳ１０１で求めた回路を画面に表示する（ステップＳ１０２）。ステップＳ１０２では、バッファおよびインバータを除去した後の回路は、図１に示すＥＤＡシステム１０の表示部１４に表示される。
【００２６】
図３（ａ）に示すクロック回路を、図２に示す手順で表示する場合の詳細を説明する。図３（ａ）に示すクロック回路は、クロック経路上に存在する論理素子および配線によって構成され、クロック信号ＣＫを各フリップフロップまで伝搬させる。このクロック回路に対して図２に示す手順を実行した場合、ステップＳ１０１では、論理を変更しないバッファであるバッファＢ１〜Ｂ５はすべて除去され、バッファＢ１〜Ｂ５の入力信号線と出力信号線とはそれぞれ直接接続される。また、このクロック回路に含まれる各クロック経路を配線の分岐点で分割した場合に、配線分岐点Ｐ１からフリップフロップＦ１までのクロック経路上には、３個のインバータＡ１〜Ａ３が存在している。そこで、このうち任意のインバータの組（例えば、インバータの組｛Ａ１、Ａ２｝）が除去され、除去された各インバータの入力信号線と出力信号線とは直接接続される。これに対して、上記以外のインバータは除去されない。例えば、インバータＡ４およびＡ５は、同じクロック経路上に存在しているが、配線分岐点Ｐ１から配線分岐点Ｐ２までのクロック経路上にも、配線分岐点Ｐ２からフリップフロップＦ２までのクロック経路上にも、インバータは１個ずつしかない。このため、インバータＡ４およびＡ５は、いずれも除去されない。
【００２７】
したがって、図３（ａ）に示すクロック回路に対してステップＳ１０１を実行すると、図３（ｂ）に示す回路が得られ、ステップＳ１０２ではこの回路が画面に表示される。図３（ａ）に示す回路と図３（ｂ）に示す回路とを比較すると、後者の回路では、論理を把握するために不要なバッファとインバータとが除去されている。また、後者の回路では、回路の分岐構造は元のまま維持されている。したがって、図３（ａ）に回路に代えて、図３（ｂ）に示す回路を表示することにより、設計者は論理を容易に把握することができる。
【００２８】
以上に示すように、図２に示すクロック回路の表示方法によれば、分岐構造を維持したまま、論理を把握するために不要なバッファとインバータとを除去した回路が表示されるので、設計者は論理を容易に把握することができる。
【００２９】
図４は、本実施形態に係るクロック回路の表示方法（第２の方法）を示すフローチャートである。図４に示す手順は、図２に示す手順と同様に、クロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。図４に示す手順では、表示対象となるクロック回路に対してステップＳ１２１〜Ｓ１２３を実行することにより、表示用回路を求める。
【００３０】
より詳細には、まず、表示対象となるクロック回路について、各クロック経路が互いに独立した経路となるように、複数のクロック経路上に存在する論理素子を複写して追加する（ステップＳ１２１）。ステップＳ１２１では、最終段の論理素子までが共通するクロック経路については、１本のクロック経路とみなしてもよい。次に、論理素子を追加した後のクロック回路から、論理を変更しないバッファのすべてと、論理を変更しないバッファ以外の論理素子間に存在するインバータの組のすべてとを除去する（ステップＳ１２２）。次に、バッファおよびインバータの組を除去した後のクロック回路について、各クロック経路が共通した部分を持つように、複数のクロック経路上に同じ論理を実現する部分回路がある場合に重複した部分回路を除去する（ステップＳ１２３）。
【００３１】
次に、ステップＳ１２１〜Ｓ１２３で求めた回路を画面に表示する（ステップＳ１２４）。この表示用回路は、図１に示すＥＤＡシステム１０の表示部１４に表示される。
【００３２】
図５（ａ）に示すクロック回路を、図４に示す手順で表示する場合の詳細を説明する。図５（ａ）に示すクロック回路は、図３（ａ）に示すクロック回路と同様、クロック経路上に存在する論理素子および配線によって構成され、クロック信号ＣＫを各フリップフロップまで伝搬させる。この回路に対してステップＳ１２１を実行すると、図５（ｂ）に示す回路が得られる。例えば、図５（ａ）に示す回路では、インバータＡ８は、フリップフロップＦ３に至るクロック経路上にも、フリップフロップＦ４に至るクロック経路上にも存在しており、これら２本のクロック経路は互いに独立ではない。そこで、元の論理を維持しながら、これら２本のクロック経路が互いに独立となるように回路変更を行うために、インバータＡ８は複写され、インバータＡ８１およびＡ８２となる（図５（ｂ）を参照）。インバータＡ８１およびＡ８２は、それぞれ、フリップフロップＦ３に至るクロック経路上、およびフリップフロップＦ４に至るクロック経路上に配置される。
【００３３】
次に、図５（ｂ）に示す回路に対してステップＳ１２２を実行すると、図５（ｃ）に示す回路が得られる。例えば、図５（ｂ）に示す回路では、フリップフロップＦ３に至るクロック経路上には、２個のインバータＡ８１およびＡ９が存在している。そこで、インバータの組｛Ａ８１、Ａ９｝は除去され、除去された各インバータの入力信号線と出力信号線とは直接接続される。これに対して、フリップフロップＦ５に至るクロック経路上にも、２個のインバータＡ１０およびＡ１１が存在しているが、バッファＢ６からＡＮＤゲートＢ７までのクロック経路上にも、ＡＮＤゲートＢ７からフリップフロップＦ５までのクロック経路上にも、インバータは１個ずつしかない。このため、インバータＡ１０およびＡ１１は、いずれも除去されない。
【００３４】
次に、図５（ｃ）に示す回路に対してステップＳ１２３を実行すると、図５（ｄ）に示す回路が得られる。ステップＳ１２３では、クロック経路上の論理素子の接続関係を求めた上で、重複した部分回路を除去するために、回路の接続関係を変更すればよい。
【００３５】
図６は、ステップＳ１２３の詳細を説明するための図である。ステップＳ１２３では、図６（ａ）に示すように、ステップＳ１２２で得られた回路（図５（ｃ））の各クロック経路上に節点Ｎ１〜Ｎ９を設ける。節点Ｎ２より後段側の回路と節点Ｎ３より後段側の回路とは同じ構造を有するので、このうち一方の回路は除去され、節点Ｎ２とＮ３とは１つに併合される。また、節点Ｎ４、Ｎ５およびＮ８より後段側には回路が存在しないで、これら３つの節点は１つに併合される。また、節点Ｎ１より後段側の回路と節点Ｎ６より前段側の回路とは同じ構造を有するので、前者の回路は除去され、節点Ｎ１とＮ６とは１つに併合される。さらに、節点Ｎ７より前段側の回路と節点Ｎ９より後段側の回路とは同じ構造を有するので、後者の回路は除去され、節点Ｎ７とＮ９とは１つに併合される。このように重複した回路を除去することにより、図６（ｂ）に示す回路が得られる。この回路は、図５（ｄ）に示した回路と同じものである。
【００３６】
図５（ａ）に示す回路と図５（ｄ）に示す回路とを比較すると、後者の回路では、論理を把握するために不要なバッファとインバータが除去されている。また、図５（ｄ）に示す回路では、回路の分岐構造はそのまま維持されている訳ではないが、回路の構造を把握するための情報がある程度残されている。したがって、図５（ａ）に示す回路に代えて、図５（ｄ）に示す回路を表示することにより、設計者は論理を容易に把握することができる。
【００３７】
以上に示すように、図４に示すクロック回路の表示方法によれば、回路の構造を把握するための情報をある程度残した上で、論理を把握するために不要なバッファとインバータとを除去した回路が表示されるので、設計者は論理を容易に把握することができる。
【００３８】
（第２の実施形態）
本発明の第２の実施形態では、設計者がクロック信号の流れを把握しやすいように、クロック回路を表示する方法について説明する。図７は、本実施形態に係るクロック回路の表示方法を示すフローチャートである。図７に示す手順は、複数のクロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。表示対象となるクロック回路は、例えば、第１の実施形態で述べたような方法で指定される。
【００３９】
図７に示す手順では、まず、各クロック信号が伝搬する配線の表示色と、複数種類のクロック信号が伝搬する配線の表示色とを指定する（ステップＳ２０１）。次に、各クロック信号が伝搬する配線と複数種類のクロック信号が伝搬する配線の表示色とを区別して、ステップＳ２０１で指定された表示色を用いて各配線を表示しながら、表示対象となるクロック回路を表示する（ステップＳ２０２）。
【００４０】
図８（ａ）に示すクロック回路を、図７に示す手順で表示する場合の詳細を説明する。図８（ａ）に示す回路では、クロック入力端子ＣＫ１から供給されたクロック信号と、クロック入力端子ＣＫ２から供給されたクロック信号とが伝搬する。この回路に含まれる配線の表示色を指定する方法には、種々の方法がある。例えば、第１の方法として、図９（ａ）に示す色指定ファイルを用いて、配線の表示色を指定することができる。図９（ａ）に示す色指定ファイルには、クロック入力端子ＣＫ１から供給されたクロック信号だけが伝搬する配線は赤で、クロック入力端子ＣＫ２から供給されたクロック信号だけが伝搬する配線は青で、複数種類のクロック信号が伝搬する配線は緑で表示することが記載されている。
【００４１】
あるいは、第２の方法として、図９（ｂ）に示すように、クロック入力端子を画面上で選択することにより、配線の表示色を指定してもよい。図９（ｂ）には、表示対象となるクロック回路を画面に表示した状態で、クロック入力端子ＣＫ１を画面上で選択し、当該端子から供給されたクロック信号だけが伝搬する配線を赤で表示することを指定する様子が示されている。この場合、同様の方法で、クロック入力端子ＣＫ２から供給されたクロック信号だけが伝搬する配線の表示色も指定される。複数種類のクロック信号が伝搬する配線の表示色には、各クロック入力端子に対して色を指定するときに使用されなかった色のうちから、任意の色が選択される。
【００４２】
あるいは、第３の方法として、図９（ｃ）に示すように、画面に表示されたメニューを用いて、配線の表示色を指定してもよい。図９（ｃ）には、表示対象となるクロック回路と色指定メニューとを同時に画面に表示した状態で、色指定メニューを用いて配線の表示色を指定する様子が示されている。図９（ｃ）に示す色指定メニューに入力される情報は、図９（ａ）に示す色指定ファイルに記載される情報と同じである。
【００４３】
上記第１から第３の方法のいずれか、あるいは、他の方法を用いて配線の表示色を指定した上で、図８（ａ）に示すクロック回路を表示すると、図８（ｂ）に示すようになる。すなわち、クロック入力端子ＣＫ１からセレクタＣ１までの配線には、クロック入力端子ＣＫ１から供給されたクロック信号だけが伝搬するので、この部分の配線は画面では赤色で表示される。また、クロック入力端子ＣＫ２からセレクタＣ１までの配線には、クロック入力端子ＣＫ２から供給されたクロック信号だけが伝搬するので、この部分の配線は画面では青色で表示される。さらに、セレクタＣ１からフリップフロップＦ６〜Ｆ８までの配線には、クロック入力端子ＣＫ１およびＣＫ２から供給された２種類のクロック信号が伝搬するので、この部分の配線は画面では緑色で表示される。
【００４４】
また、クロック回路を画面に表示するときには、どのクロック入力端子から供給されたクロック信号が各フリップフロップに到達するかを、各フリップフロップの近傍に文字なで表示してもよい。図８（ｂ）に示す画面では、フリップフロップＦ６〜Ｆ８のそれぞれの近傍に「ＣＫ１、ＣＫ２より到達」と表示されている。
【００４５】
以上に示すように、本実施形態に係るクロック回路の表示方法によれば、設計者がクロック回路を解析して回路の設計制約を設定するときに、クロック信号の流れを容易に把握することができる。
【００４６】
（第３の実施形態）
本発明の第３の実施形態では、設計者が構造を把握をしやすいように、クロック回路を表示する方法について説明する。図１０は、本実施形態に係るクロック回路の表示方法を示すフローチャートである。図１０に示す手順は、複数のクロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。表示対象となるクロック回路は、例えば、第１の実施形態で述べたような方法で指定される。
【００４７】
図１０に示す手順では、まず、表示対象となるクロック回路について、あるクロック経路上に存在する論理素子と、他のクロック経路上に存在する論理素子との対応づけを指定する（ステップＳ３０１）。ステップＳ３０１では、２本のクロック経路上に存在する論理素子について複数の対応づけを指定してもよく、３本以上のクロック経路上に存在する論理素子について対応づけを指定してもよい。次に、ステップＳ３０１で指定された論理素子が画面に対して水平または垂直な１本の直線上に並ぶように、表示対象となるクロック回路を表示する（ステップＳ３０２）。指定された論理素子を１本の直線上に並べて表示するためには、指定された論理素子が各クロック経路において何段目に位置するかを求めた上で、その最大値Ｍを求め、指定されたすべての論理素子を画面ではＭ段目に表示すればよい。
【００４８】
図１１（ａ）に示すクロック回路を、図１０に示す手順で表示する場合の詳細を説明する。図１１（ａ）に示す回路には、クロック入力端子ＣＫ３からフリップフロップＤ４までの第１のクロック経路と、クロック入力端子ＣＫ４からフリップフロップＤ９までの第２のクロック経路とが含まれている。第１のクロック経路上に存在する論理素子と、第２のクロック経路上に存在する論理素子とを対応づけて指定する方法には、種々の方法がある。例えば、第１の方法として、図１２（ａ）に示すインデント指定ファイルを用いて、論理素子の対応づけを指定することができる。図１２（ａ）に示すインデント指定ファイルには、インスタンス名がＤ３である論理素子とインスタンス名がＤ６である論理素子とを対応づけること、および、インスタンス名がＤ４である論理素子とインスタンス名がＤ９である論理素子とを対応づけることが記載されている。
【００４９】
あるいは、第２の方法として、図１２（ｂ）に示すように、クロック経路上に存在する論理素子を画面上で選択することにより、論理素子の対応づけを指定してもよい。図１２（ｂ）には、表示対象となるクロック回路を画面に表示した状態で、ＡＮＤゲートＤ３とＡＮＤゲートＤ６とを画面上に表示された１つの枠（破線で示す枠）で囲むことにより、これら２つのＡＮＤゲートを対応づけることが指定されている。フリップフロップＤ４およびＤ９についても、これと同様である。
【００５０】
あるいは、第３の方法として、図１２（ｃ）に示すように、画面に表示されたメニューを用いて、論理素子の対応づけを指定してもよい。図１２（ｃ）には、表示対象となるクロック回路とインデント指定メニューとを同時に画面に表示した状態で、インデント指定メニューを用いて論路素子の対応づけを指定する様子が示されている。図１２（ｃ）に示すインデント指定メニューに入力される情報は、図１２（ａ）に示すインデント指定ファイルに記載される情報と同じである。
【００５１】
上記第１から第３の方法のいずれか、あるいは、他の方法を用いてインデントを指定した上で、図１１（ａ）に示すクロック回路を表示すると、図１１（ｂ）に示すようになる。すなわち、ＡＮＤゲートＤ３およびＤ６は、図１１（ｂ）に示すように、画面に対して垂直な１本の直線上に並べて表示され、フリップフロップＤ４およびＤ９も、これと同様に表示される。したがって、図１１（ａ）に示す回路に代えて、図１１（ｂ）に示す回路を表示することにより、設計者は回路の構造を容易に把握することができる。
【００５２】
以上に示すように、本実施形態に係るクロック回路の表示方法によれば、設計者がクロック回路を解析して回路の設計制約を設定するときに、クロック回路の構造を容易に把握することができる。
【００５３】
（第４の実施形態）
本発明の第４の実施形態では、設計者が構造を把握しやすいように、回路を表示する方法について説明する。図１３は、本実施形態に係る回路の表示方法を示すフローチャートである。図１３に示す手順は、表示対象となる回路に対して、特に、クロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。表示対象となるクロック回路を指定するときには、例えば、第１の実施形態で述べたような方法が用いられる。
【００５４】
図１３に示す手順では、まず、ブラックボックス化して表示すべき部分回路（以下、ブラックボックス化対象回路という）の構造を指定する（ステップＳ４０１）。ここで、ブラックボックス化対象回路は、複数の論理素子と一以上の接続とを含み、一つの要素として表示されるべき部分回路をいう。典型的には、ブラックボックス化対象回路には、論理的な意味を有する部分回路が指定される。例えば、クロック回路には、図１４（ａ）に示す選択回路や、図１４（ｂ）に示す遅延回路などが含まれている場合がある。そこで、図１３に示す手順でクロック回路を表示するときには、このようにクロック回路にしばしば現れる部分回路が、ブラックボックス化対象回路として指定される。
【００５５】
次に、表示対象となる回路から、ステップＳ４０２で指定したブラックボックス化対象回路を探索する（ステップＳ４０２）。このため、ステップＳ４０２では、表示対象となる回路とブラックボックス化対象回路との間で、回路のマッチングを検出する処理が行われる。次に、ステップＳ４０２で探索して得られたブラックボックス化対象回路を、一つの要素としてブラックボックス化して表示しながら、表示対象となる回路を表示する（ステップＳ４０３）。これにより、例えば、図１４（ａ）に示す選択回路は図１４（ｃ）に示すように、図１４（ｂ）に示す遅延回路は図１４（ｄ）に示すように、一つの要素としてブラックボックス化して表示される。
【００５６】
図１５および図１６を参照して、図１４（ａ）および（ｂ）に示す回路を、ブラックボックス化対象回路として指定する方法について説明する。ブラックボックス化対象回路を指定する方法には、例えば、論理素子のインスタンスを用いて指定する方法と、論理素子のタイプを用いて指定する方法とがある。前者の方法では、指定された回路だけがブラックボックス化して表示され、後者の方法では、指定された回路と同じ構造を有するすべての回路がブラックボックス化して表示される。
【００５７】
論理素子のインスタンスを用いる第１の方法として、図１５（ａ）および（ｂ）に示すブラックボックス化指定ファイルを用いて、ブラックボックス化対象回路を指定することができる。図１５（ａ）は、図１４（ａ）に示す回路のブラックボックス化指定ファイルである。このファイルには、ブラックボックス化対象回路の始点および終点が、論理素子のインスタンス名を用いて指定されている。より詳細には、このファイルには、（１）インスタンス名がＩ１である論理素子のＯＵＴ端子とインスタンス名がＩ２である論理素子のＩＮ端子とを接続すること、（２）インスタンス名がＩ２である論理素子のＯＵＴ端子とインスタンス名がＩ５である論理素子のＡ端子とを接続すること、（３）インスタンス名がＩ３である論理素子のＯＵＴ端子とインスタンス名がＩ４である論理素子のＩＮ端子とを接続すること、および、（４）インスタンス名がＩ４である論理素子のＯＵＴ端子とインスタンス名がＩ５である論理素子のＢ端子とを接続することが記載されている。これにより、インスタンス名がＩ１〜Ｉ５である論理素子を上記（１）〜（４）のように接続した回路が、ブラックボックス化対象回路として指定される。
【００５８】
図１５（ｂ）は、図１４（ｂ）に示す回路のブラックボックス化指定ファイルである。このファイルには、インスタンス名がＩ６である論理素子と、インスタンス名がＩ８である論理素子とが記載されている。また、２個の論理素子の間に記載された記号「＝＞」は、回路中のこれら２個の論理素子の間には任意の論理素子がいくつでも存在してよいことを表す。これにより、インスタンス名がＩ６である論理素子が初段に、インスタンス名がＩ８である論理素子が最終段に配置された任意の回路が、ブラックボックス化対象回路として指定される。例えば、図１４（ｂ）に示す回路では、インスタンス名がＩ６である論理素子が初段に、インスタンス名がＩ８である論理素子が最終段に配置され、これら２個の論理素子の間には、インスタンス名がＩ７である論理素子が存在している。したがって、この回路は、図１５（ｂ）に示すブラックボックス化指定ファイルによって、ブラックボックス化対象回路として指定される。また、図１４（ｂ）に示す回路においてバッファＩ７を２個以上のバッファに置換した回路も、図１５（ｂ）に示すブラックボックス化指定ファイルによって、ブラックボックス化対象回路として指定される。
【００５９】
あるいは、論理素子のインスタンスを用いる第２の方法として、図１５（ｃ）および（ｄ）に示すように、画面に表示された論理素子を枠で囲んで選択することにより、ブラックボックス化対象回路を指定してもよい。図１５（ｃ）には、表示対象となるクロック回路を画面に表示した状態で、バッファＩ１〜Ｉ４およびセレクタＩ５を画面上に表示された１つの枠（破線で示す枠）で囲む様子が示されている。これにより、これら５個の論理素子およびこれらの論理素子を接続する配線からなる回路が、ブラックボックス化対象回路として指定される。図１５（ｄ）には、表示対象となるクロック回路を画面に表示した状態で、バッファＩ６〜Ｉ８を画面上に表示された１つの枠で囲む様子が示されている。これにより、これら３個の論理素子およびこれらの論理素子を接続する配線からなる回路が、ブラックボックス化対象回路として指定される。
【００６０】
あるいは、論理素子のインスタンスを用いる第３の方法として、図１５（ｅ）および（ｆ）に示すように、ブラックボックス化対象回路の始点および終点となる論理素子を画面上で選択することにより、ブラックボックス化対象回路を指定してもよい。図１５（ｅ）には、表示対象となるクロック回路を画面に表示した状態で、マーク（チェック印）を付することによりバッファＩ１、Ｉ３、およびセレクタＩ５を選択する様子が示されている。これにより、これら３個の論理素子、これらの論理素子に挟まれた論理素子、および以上の論理素子を接続する配線からなる回路が、ブラックボックス化対象回路として指定される。図１５（ｆ）には、表示対象となるクロック回路を画面に表示した状態で、マークを付することによりバッファＩ６およびＩ８を選択する様子が示されている。これにより、これら２個の論理素子、これら２個の論理素子に挟まれた論理素子、および以上の論理素子を接続する配線からなる回路が、ブラックボックス化対象回路として指定される。
【００６１】
あるいは、論理素子のインスタンスを用いる第４の方法として、図１５（ｇ）に示すように、画面に表示されたメニューを用いて、ブラックボックス化対象回路を指定してもよい。図１５（ｇ）には、表示対象となるクロック回路とブラックボックス化指定メニューとを同時に画面に表示した状態で、ブラックボックス化指定メニューを用いてブラックボックス化対象回路を指定する様子が示されている。図１５（ｇ）に示すブラックボックス化指定メニューに入力される情報は、図１５（ａ）および（ｂ）に示すブラックボックス化指定ファイルに記載される情報と同じである。
【００６２】
論理素子のタイプを用いる第１の方法として、図１６（ａ）および（ｂ）に示すブラックボックス化指定ファイルを用いて、ブラックボックス化対象回路を指定することができる。図１６（ａ）は、図１４（ａ）に示す回路のブラックボックス化指定ファイルである。このファイルには、ブラックボックス化対象回路の始点および終点が、論理素子のタイプを用いて指定されている。より詳細には、このファイルには、（１）セルタイプがＢＵＦ（バッファ）である第１の論理素子のＯＵＴ端子とセルタイプがＢＵＦである第２の論理素子のＩＮ端子とを接続すること、（２）セルタイプがＢＵＦである第２の論理素子のＯＵＴ端子とセルタイプがＳＥＬ（セレクタ）である論理素子のＡ端子とを接続すること、（３）セルタイプがＢＵＦである第３の論理素子のＯＵＴ端子とセルタイプがＢＵＦである第４の論理素子のＩＮ端子とを接続すること、および、（４）セルタイプがＢＵＦである第４の論理素子のＯＵＴ端子とセルタイプがＳＥＬである論理素子のＢ端子とを接続することが記載されている。これにより、セルタイプがＢＵＦである第１〜第４の論理素子とセルタイプがＳＥＬである論理素子とを上記（１）〜（４）のように接続した回路が、ブラックボックス化対象回路として指定される。
【００６３】
図１６（ｂ）は、図１４（ｂ）に示す回路のブラックボックス化指定ファイルである。このファイルには、セルタイプがＢＵＦＴＯＰ（バッファ）である第１の論理素子と、セルタイプがＢＵＦＢＯＴＴＯＭ（バッファ）である第２の論理素子とが記載されている。また、２個の論理素子の間に記載された記号「＝＞」は、回路中のこれら２個の論理素子の間には任意の論理素子がいくつでも存在してよいことを表す。これにより、これにより、セルタイプがＢＵＦＴＯＰである論理素子が初段に、セルタイプがＢＵＦＢＯＴＴＯＭである論理素子が最終段に配置された任意の回路が、ブラックボックス化対象回路として指定される。
【００６４】
あるいは、論理素子のタイプを用いる第２の方法として、図１６（ｃ）および（ｄ）に示すように、画面に表示された論理素子を枠で囲んで選択することにより、ブラックボックス化対象回路を指定してもよい。あるいは、論理素子のタイプを用いる第３の方法として、図１６（ｅ）および（ｆ）に示すように、ブラックボックス化対象回路の始点および終点となる論理素子を画面上で選択することにより、ブラックボックス化対象回路を指定してもよい。なお、図１６（ｃ）〜（ｆ）は、それぞれ、図１５（ｃ）〜（ｆ）と同じ図であるが、論理素子のタイプを用いる第２および第３の方法では、ある回路が画面上でブラックボックス化対象回路として指定されると、指定された回路と同じ構造を有するすべての回路が、ブラックボックス化対象回路として指定される。
【００６５】
あるいは、論理素子のタイプを用いる第４の方法として、図１６（ｇ）に示すように、画面に表示されたメニューを用いて、ブラックボックス化対象回路を指定してもよい。図１６（ｇ）には、表示対象となるクロック回路とブラックボックス化指定メニューとを同時に画面に表示した状態で、ブラックボックス化指定メニューを用いてブラックボックス化対象回路を指定する様子が示されている。図１６（ｇ）に示すブラックボックス化指定メニューに入力される情報は、図１６（ａ）および（ｂ）に示すブラックボックス化指定ファイルに記載される情報と同じである。
【００６６】
以上に示すように、本実施形態に係る回路の表示方法によれば、特別な意味を有する部分回路をブラックボックス化対象回路として指定し、ブラックボックス化して表示することにより、設計者が回路を解析して回路の設計制約を設定するときに、回路の構造を容易に把握することができる。
【００６７】
（第５の実施形態）
本発明の第５の実施形態では、設計者が配線の属性を把握しやすいように、回路を表示する方法について説明する。図１７は、本実施形態に係る回路の表示方法を示すフローチャートである。図１７に示す手順は、表示対象となる回路に対して、特に、クロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。表示対象となるクロック回路を指定するときには、例えば、第１の実施形態で述べたような方法が用いられる。
【００６８】
図１７に示す手順では、まず、表示対象となる回路のレイアウト後の設計データから、各配線の属性情報を取得する（ステップＳ５０１）。ステップＳ５０１で取得される属性情報には、例えば、配線幅、配線ピッチ、階層情報（何層目に配線されているかを示す情報）などが含まれる。次に、ステップＳ５０１で取得した属性情報に対応した態様で各配線を表示しながら、表示対象となる回路を表示する（ステップＳ５０２）。この際、配線の属性情報を多く画面に表示するとかえって設計者の理解が妨げとなるので、配線の属性情報の全部または一部をファイルに出力してもよい。
【００６９】
図１８（ａ）に示すクロック回路を、図１７に示す手順で表示する場合の詳細を説明する。図１８（ａ）に示す回路にはバッファＥ１〜Ｅ３が含まれており、この回路については、既に図１８（ｂ）に示すレイアウト結果が得られているとする。図１８（ｂ）に示すレイアウト結果によれば、バッファＥ１からバッファＥ２までの第１の配線は、水平配線ＷＨ１と垂直配線ＷＶ１とからなり、水平配線ＷＨ１は第１配線層にシングルピッチで配線された１倍幅の配線であり、垂直配線ＷＶ１は第２配線層にシングルピッチで配線された１倍幅の配線であるとする。また、バッファＥ２からバッファＥ３までの第２の配線は、水平配線ＷＨ２のみからなり、水平配線ＷＨ２は第１配線層にダブルピッチで配線された２倍幅の配線であるとする。
【００７０】
図１８（ａ）に示すクロック回路に対して図１７に示す手順を実行すると、ステップＳ５０１では、バッファＥ１からバッファＥ２までの第１の配線と、バッファＥ２からバッファＥ３までの第２の配線について、配線幅、配線ピッチ、階層情報などの属性情報が取得される。ステップＳ５０２で回路を表示するときには、配線の属性に応じて、配線の表示態様が定められている。例えば、シングルピッチで配線された１倍幅の配線には青色の細線、ダブルピッチで配線された２倍幅の配線は赤色の太線が割り当てられる。このように配線の属性に応じて配線の表示態様を決定した上で、図１８（ａ）に示す回路を表示すると、図１８（ｃ）に示すようになる。すなわち、バッファＥ１からバッファＥ２までの第１の配線は画面では青色の細線で表示され、バッファＥ２からバッファＥ３までの第２の配線は画面では赤色の太線で表示される。なお、線幅を変更せずに、表示色のみを変更することにより、線幅を表現してもよい。
【００７１】
また、ステップＳ５０２では、配線の属性情報がファイルに出力される。これにより、例えば図１８（ａ）に示す回路については、図１８（ｄ）に示す出力結果が得られる。図１８（ｄ）に示す出力結果には、インスタンス名がＥ１である論理素子のＹ端子からインスタンス名がＥ２である論理素子のＡ端子までの配線は、第１配線層および第２配線層にシングルピッチで配線された１倍幅の配線であり、インスタンス名がＥ２である論理素子のＹ端子からインスタンス名がＥ３である論理素子のＡ端子までの配線は、第１配線層にダブルピッチで配線された２倍幅の配線であることが記載されている。
【００７２】
以上に示すように、本実施形態に係る回路の表示方法によれば、各配線の属性情報に対応した態様で各配線を表示することにより、設計者は論理回路と配線情報とを容易に確認することができる。
【００７３】
（第６の実施形態）
本発明の第６の実施形態では、回路の設計データに設計制約を設定する方法、および、回路の設計データに設定された設計制約を検証する方法について説明する。図１９は、本実施形態に係る設計制約の設定方法を示すフローチャートである。図１９に示す手順は、論理レベルの設計を行った回路に対して実行される。
【００７４】
図１９に示す手順では、まず、複数の論理素子と一以上の配線とを含む部分回路の構造と、部分回路に対して設定すべき設計制約とを指定する（ステップＳ６０１）。以下、ステップＳ６０１で指定された回路を制約設定対象回路と呼ぶ。ステップＳ６０１では、複数の制約設定対象回路を指定してもよい。次に、処理対象となる回路から、ステップＳ６０１で指定された制約設定対象回路を探索する（ステップＳ６０２）。次に、ステップＳ６０２で探索して得られた回路に、ステップＳ６０１で指定された設計制約を設定する（ステップＳ６０３）。
【００７５】
図２０（ａ）に示すクロック回路に、図１９に示す手順で設計制約を設定する場合の詳細を説明する。ステップＳ６０１では、制約設定対象回路として、図２０（ｂ）に示す回路が指定され、この回路に関する設計制約として、出力信号Ｙに対して「クロック信号の位相を変更する」というが制約が指定されたとする。ステップＳ６０２では、図２０（ａ）に示す回路から、図２０（ｂ）と同じ構造を有する部分回路が探索される。図２０（ａ）に示す回路では、バッファＧ１、フリップフロップＧ２、ＮＯＲゲートＧ３およびＧ４、並びに、これら４個の論理素子を接続する配線によって構成される部分回路が、制約設定対象回路と同じ構造を有している。このため、ステップＳ６０３では、ＮＯＲゲートＧ４の出力端子に、「クロック信号の位相を変更する」という設計制約が設定される。
【００７６】
ステップＳ６０１で複数の制約設定対象回路を指定した場合、ステップＳ６０２で１つの処理対象の回路について複数の探索結果が得られる場合がある。例えば、図２１（ａ）および（ｂ）に示す回路を両方とも制約設定対象回路として指定した上で、図２０（ａ）に示すクロック回路について回路探索を行うと、図２１（ｃ）に示すように、２とおりの探索結果が得られる。具体的には、フリップフロップＧ２およびＮＯＲゲートＧ３からなる部分回路Ｈ１が図２１（ａ）に示す回路に一致し、ＮＯＲゲートＧ３およびＧ４からなる部分回路Ｈ２が図２１（ｂ）に示す回路に一致する。
【００７７】
そこで、ステップＳ６０１で複数の制約設定対象回路を指定する場合には、ステップＳ６０２で回路探索を行うときに、以下のいずれかの手法を用いて制約設定対象回路との対応づけを行えばよい。例えば、回路探索を行ったときに最初に一致した制約設定対象回路に対応づけを行うこととしてもよい。あるいは、回路探索を行ったときに最後に一致した制約設定対象回路に対応づけを行うこととしてもよい。あるいは、回路探索を行ったときに、一致した制約設定対象回路のすべてに対応づけを行うこととしてもよい。あるいは、制約設定対象回路に予め優先順位が設定されており、一致した制約設定対象回路のうちで優先順位が最も高いものに対応づけを行うこととしてもよい。
【００７８】
以上に示すように、図１９に示す設計制約の設定方法によれば、設計制約を設定すべき部分回路を自動的に探索し、その箇所に設計制約を設定するので、設計制約を設定するときのミスを削減し、設計制約の設定に要する工数を削減することができる。
【００７９】
次に、図１９に示す設計制約の設定方法と同じ特徴を有する、設計制約の検証方法について説明する。図２２は、本実施形態に係る設計制約の設定方法を示すフローチャートである。図２２に示す手順は、論理レベルの設計を行い、さらに設計制約が設定された回路に対して実行される。
【００８０】
図２２に示す手順では、図２０に示すステップＳ６０１およびＳ６０２と同様に、制約設定対象回路の構造と設定すべき設計制約とを指定し（ステップＳ６２１）、処理対象となる回路から、指定された制約設定対象回路を探索する（ステップＳ６２２）。次に、ステップＳ６２２で探索して得られた回路に、ステップＳ６２１で指定された設計制約が設定されているか否かを判定する（ステップＳ６２３）。次に、ステップＳ６２３における判定結果をファイルあるいは画面に出力する（ステップＳ６２４）。ステップＳ６２４では、典型的には、探索して得られた回路に指定された設計制約が設定されていない場合に、当該回路を特定するために必要な情報（例えば、論理素子のインスタンス名など）が出力される。
【００８１】
以上に示すように、図２２に示す設計制約の検証方法によれば、設計制約を設定すべき部分回路を自動的に探索し、その箇所に設計制約が正しく設定されているか否かを判断するので、設計制約を設定するときのミスを削減し、設計制約の設定に要する工数を削減することができる。
【００８２】
（第７の実施形態）
本発明の第７の実施形態では、半導体集積回路の設計データを用いて回路を比較する方法について説明する。図２３は、本実施形態に係る回路の比較方法（第１の方法）を示すフローチャートである。図２３に示す手順は、ほぼ同じ論理を実現する２つの回路（以下、第１および第２の回路という）に対して実行される。例えば、第１の回路に対してわずかな設計変更を施して得られた回路が、第２の回路となる。
【００８３】
図２３に示す手順では、まず、第１および第２の回路から、それぞれ、クロック経路上に存在する論理素子および配線によって構成されるクロック回路を抽出する（ステップＳ７０１）。以下、第１および第２の回路から抽出されたクロック回路を、それぞれ、第１および第２のクロック回路という。次に、ステップＳ７０１で抽出された各クロック回路を論理圧縮する（ステップＳ７０２）。次に、論理圧縮された各クロック回路について、論理的に等価なクロック信号が供給されるフリップフロップのすべてによって構成される群を求める（ステップＳ７０３）。言い換えると、第１のクロック回路に含まれるフリップフロップを、論理的に等価なクロック信号が供給されるフリップフロップが同じ群に属するように分類し、第２のクロック回路についても同様の処理を行う。
【００８４】
次に、第１のクロック回路に含まれる群と第２のクロック回路に含まれる群とを、各群に属するフリップフロップの個数に基づき対応づける（ステップＳ７０４）。第１のクロック回路に含まれる群と第２のクロック回路に含まれる群とを対応づけるときには、各群に属するフリップフロップの個数が近い群同士を対応づける。
【００８５】
次に、第１のクロック回路に含まれる群に属するフリップフロップと、当該群に対応づけられ第２のクロック回路に含まれる群に属するフリップフロップとを、各フリップフロップのインスタンス名に基づき対応づける（ステップＳ７０５）。ステップＳ７０５では、第１のクロック回路に含まれる群に属するフリップフロップのインスタンス名と、第２のクロック回路に含まれる群に属するフリップフロップのインスタンス名とが、例えば半数以上一致したときに限り、フリップフロップの対応づけを行うこととしてもよい。
【００８６】
次に、ステップＳ７０５で求めたフリップフロップの対応づけを制約条件として、第１の回路と第２の回路とについて論理比較を行う（ステップＳ７０６）。ステップＳ７０６は、典型的には、論理比較ツールを用いて実行される。
【００８７】
なお、ステップＳ７０５でフリップフロップの対応づけを行ったときに十分な対応づけを行えなかった場合（例えば、フリップフロップのインスタンス名が半数未満しか一致しなかった場合）には、ステップＳ７０４で再度、群同士の対応づけを行うこととしてもよい。
【００８８】
図２４を参照して、図２３に示す回路の比較方法の実行例を説明する。ステップＳ７０１を実行することにより、第１の回路からは図２４（ａ）に示す第１のクロック回路が抽出され、第２の回路からは図２４（ｂ）に示す第２のクロック回路が抽出されたとする。第１のクロック回路と第２のクロック回路とはほぼ同じ構造を有するが、両者の間では一部のフリップフロップのインスタンス名が相違しているとする。例えば、あるフリップフロップ（ハッチングを施したフリップフロップ）が、第１のクロック回路ではＦＦ＿ＣＡというインスタンス名を有し、第２のクロック回路ではＦＦＣＡというインスタンス名を有するとする。
【００８９】
第１および第２のクロック回路に対してステップＳ７０２およびＳ７０３を実行すると、それぞれ、図２４（ｃ）および（ｄ）に示す結果が得られる。すなわち、論理圧縮後の第１のクロック回路に含まれるフリップフロップを、論理的に等価なクロック信号が供給されるフリップフロップが同じ群に属するように分類すると、１００個のフリップフロップを含む群ＧＲ−Ａ１と、２００個のフリップフロップを含む群ＧＲ−Ａ２とが得られ、論理圧縮後の第２のクロック回路について同じ処理を行うと、１００個のフリップフロップを含む群ＧＲ−Ｂ１と、２００個のフリップフロップを含む群ＧＲ−Ｂ２とが得られる。
【００９０】
ステップＳ７０４において群同士を対応づけるときには、各群に属するフリップフロップの個数が近い群同士が対応づけられる。図２４に示す例では、群ＧＲ−Ａ１、ＧＲ−Ａ２、ＧＲ−Ｂ１およびＧＲ−Ｂ２に属するフリップフロップの個数は、それぞれ、１００個、２００個、１００個および２００個である。このため、群ＧＲ−Ａ１と群ＧＲ−Ｂ１とが対応づけられ、群ＧＲ−Ａ２と群ＧＲ−Ｂ２とが対応づけられる。
【００９１】
次にステップＳ７０５では、各フリップフロップのインスタンス名に基づき、群ＧＲ−Ａ１に属するフリップフロップと群ＧＲ−Ｂ１に属するフリップフロップとが対応づけられ、群ＧＲ−Ａ２に属するフリップフロップと群ＧＲ−Ｂ２に属するフリップフロップとが対応づけられる。次にステップＳ７０６では、求めたフリップフロップの対応づけを制約条件として、第１の回路と第２の回路とについて論理比較が行われる。
【００９２】
図２５は、図２４と同様の図面を他の回路について描いたものである。この例では、第１のクロック回路（図２５（ａ））および第２のクロック回路（図２５（ｂ））に対してステップＳ７０２およびＳ７０３を実行すると、それぞれ、図２５（ｃ）および（ｄ）に示す結果が得られ、群ＧＲ−Ｃ１、ＧＲ−Ｃ２、ＧＲ−Ｄ１およびＧＲ−Ｄ２に属するフリップフロップの個数は、いずれも２００個であるとする。この場合、ステップＳ７０３で群同士の対応づけを行うときには、「群ＧＲ−Ｃ１と群ＧＲ−Ｄ１とを対応づけ、群ＧＲ−Ｃ２と群ＧＲ−Ｄ２とを対応づける」こと、および「群ＧＲ−Ｃ１と群ＧＲ−Ｄ２とを対応づけ、群ＧＲ−Ｃ２と群ＧＲ−Ｄ１とを対応づける」ことが可能である。このように、フリップフロップの個数が同じあるいは近い群が複数個存在するために、ステップＳ７０４において複数の対応づけが可能である場合には、各対応づけについてステップＳ７０５およびＳ７０６を実行した上で、ステップＳ７０６における論理比較結果のうちで最も良いものを最終的な回路の比較結果としてもよい。
【００９３】
図２６は、本実施形態に係る回路の比較方法（第２の方法）を示すフローチャートである。図２６に示す手順は、図２３に示す手順と同様に、ほぼ同じ論理を実現する２つの回路に対して実行される。図２６に示す手順では、図２３に示す手順と同様に、まず、第１および第２の回路から、それぞれ、クロック経路上に存在する論理素子および配線によって構成されるクロック回路を抽出する（ステップＳ７２１）。
【００９４】
次に、ステップＳ７２１で抽出された各クロック回路から、同じ論理素子から出力されたクロック信号が直接供給されるフリップフロップのすべてによって構成される群を求める（ステップＳ７２２）。言い換えると、第１のクロック回路に含まれるフリップフロップを、クロック経路の最終段に存在する論理素子が同じであるフリップフロップが同じ群に属するように分類し、第２のクロック回路についても同様の処理を行う。なお、図２６に示す手順では、ステップＳ７２２の前に各クロック回路を論理圧縮する処理は行われない。
【００９５】
その後、ステップＳ７２２で求めた群を用いて、図２３に示すステップＳ７０４〜Ｓ７０６と同じ処理を行う。すなわち、第１のクロック回路に含まれる群と第２のクロック回路に含まれる群とを、各群に属するフリップフロップの個数に基づき対応づけを行い（ステップＳ７２３）、第１のクロック回路に含まれる群に属するフリップフロップと、当該群に対応づけられ第２のクロック回路に含まれる群に属するフリップフロップとを、各フリップフロップのインスタンス名に基づき対応づけを行い（ステップＳ７２４）、求めたフリップフロップの対応づけを制約条件として、第１の回路と第２の回路とについて論理比較を行う（ステップＳ７２５）。
【００９６】
図２７を参照して、図２６に示す回路の比較方法の実行例を説明する。ステップＳ７２１で比較対象となる回路からクロック回路を抽出したときに、第１の回路からは図２７（ａ）に示す第１のクロック回路が抽出され、第２の回路からは図２７（ｂ）に示す第２のクロック回路が抽出されたとする。第１および第２のクロック回路に対してステップＳ７２２を実行すると、図２７（ｃ）および（ｄ）に示す結果が得られる。すなわち、論理圧縮後の第１のクロック回路に含まれるフリップフロップを、クロック経路の最終段に存在する論理素子が同じであるフリップフロップが同じ群に属するように分類すると、１００個のフリップフロップを含む群ＧＲ−Ｅ１と、２００個のフリップフロップを含む群ＧＲ−Ｅ２と、３００個のフリップフロップを含む群ＧＲ−Ｅ３とが得られ、論理圧縮後の第２のクロック回路について同じ処理を行うと、１００個のフリップフロップを含む群ＧＲ−Ｆ１と、２００個のフリップフロップを含む群ＧＲ−Ｆ２と、３００個のフリップフロップを含む群ＧＲ−Ｆ３とが得られたとする。なお、図２６に示す手順では、群ＧＲ−Ｅ２に属するフリップフロップと群ＧＲ−Ｅ３に属するフリップフロップとでは、最終段に存在する論理素子が異なるので、群ＧＲ−Ｅ２と群ＧＲ−Ｅ３とは別の群として扱われる。群ＧＲ−Ｆ２と群ＧＲ−Ｆ３についても同様である。
【００９７】
群ＧＲ−Ｅ１、ＧＲ−Ｅ２、ＧＲ−Ｅ３、ＧＲ−Ｆ１、ＧＲ−Ｆ２およびＧＲ−Ｆ２に属するフリップフロップの個数は、それぞれ、１００個、２００個、３００個、１００個、２００個および３００個である。このため、ステップＳ７２３では、群ＧＲ−Ｅ１と群ＧＲ−Ｆ１とが対応づけられ、群ＧＲ−Ｅ２と群ＧＲ−Ｆ２とが対応づけられ、群ＧＲ−Ｅ３と群ＧＲ−Ｆ３とが対応づけられる。次にステップＳ７２４では、各フリップフロップのインスタンス名に基づき、群ＧＲ−Ｅ１に属するフリップフロップと群ＧＲ−Ｆ１に属するフリップフロップとが対応づけられ、群ＧＲ−Ｅ２に属するフリップフロップと群ＧＲ−Ｆ２に属するフリップフロップとが対応づけられ、群ＧＲ−Ｅ３に属するフリップフロップと群ＧＲ−Ｆ３に属するフリップフロップとが対応づけられる。次にステップＳ７２５では、求めたフリップフロップの対応づけを制約条件として、第１の回路と第２の回路とについて論理比較が行われる。
【００９８】
図２８は、図２７と同様の図面を他の回路について描いたものである。この例では、第１のクロック回路（図２８（ａ））および第２のクロック回路（図２８（ｂ））に対してステップＳ７２２を実行すると、それぞれ、図２８（ｃ）および（ｄ）に示す結果が得られ、群ＧＲ−Ｇ１、ＧＲ−Ｇ２、ＧＲ−Ｇ３、ＧＲ−Ｈ１、ＧＲ−Ｈ２およびＧＲ−Ｈ３に属するフリップフロップの個数は、それぞれ１００個、１００個、３００個、１００個、１００個および３００個である。この場合、ステップＳ７２３で群同士の対応づけを行うときには、「群ＧＲ−Ｇ１と群ＧＲ−Ｈ１とを対応づけ、群ＧＲ−Ｇ２と群ＧＲ−Ｈ２とを対応づけ、群ＧＲ−Ｇ３と群ＧＲ−Ｈ３とを対応づける」こと、および「群ＧＲ−Ｇ１と群ＧＲ−Ｈ２とを対応づけ、群ＧＲ−Ｇ２と群ＧＲ−Ｈ１とを対応づけ、群ＧＲ−Ｇ３と群ＧＲ−Ｈ３とを対応づける」ことが可能である。このように、フリップフロップの個数が同じあるいは近い群が複数個存在するために、ステップＳ７２３において複数の対応づけが可能である場合には、各対応づけについてステップＳ７２４およびＳ７２５を実行した上で、ステップＳ７２５における論理比較結果のうちで最も良いものを最終的な回路の比較結果としてもよい。
【００９９】
以上に示すように、本実施形態に係る回路の比較方法によれば、回路に含まれるフリップフロップの個数が完全に一致しない場合や、回路に含まれる一部のフリップフロップのインスタンス名が異なっている場合でも、効率的に回路を比較することができる。
【０１００】
（第８の実施形態）
本発明の第８の実施形態では、クロック回路の簡略化した設計データを求める方法について説明する。図２９は、本実施形態に係るクロック回路の設計データの生成方法（第１の方法）を示すフローチャートである。図２９に示す手順は、複数のクロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。表示対象となるクロック回路は、例えば、第１の実施形態で述べたような方法で指定される。
【０１０１】
図２９に示す手順では、まず、処理対象となるクロック回路を論理圧縮する（ステップＳ８０１）。次に、論理圧縮されたクロック回路について、論理的に等価なクロック信号が供給されるフリップフロップのすべてによって構成される群を求める（ステップＳ８０２）。ステップＳ８０１およびＳ８０２は、それぞれ、図２３に示すステップＳ７０２およびＳ７０３と同じ処理である。次に、各群に属するフリップフロップの全体を、各群に属するフリップフロップの個数を含んだインスタンス名を有する１個のフリップフロップに置換する（ステップＳ８０３）。これにより、クロック回路の簡略化した設計データが生成される。
【０１０２】
図３０（ａ）に示すクロック回路について、図２９に示す方法で簡略化した設計データを求める場合の詳細を説明する。図３０（ａ）に示す回路は、図２４（ａ）に示した回路と同じものである。図３０（ａ）に示す回路に対してステップＳ８０１およびＳ８０２を実行すると、１００個のフリップフロップを含む群ＧＲ−Ａ１と、２００個のフリップフロップを含む群ＧＲ−Ａ２とが得られる。次に、ステップＳ８０３では、群ＧＲ−Ａ１に属するフリップフロップの全体を、群ＧＲ−Ａ１に属するフリップフロップの個数（１００個）を含んだインスタンス名（ここでは、ＦＦ＿Ａ１００とする）を有する１個のフリップフロップに置換し、群ＧＲ−Ａ２に属するフリップフロップの全体を、群ＧＲ−Ａ２に属するフリップフロップの個数（２００個）を含んだインスタンス名（ここでは、ＦＦ＿ＢＣ２００とする）を有する１個のフリップフロップに置換する。これにより、図３０（ａ）に示すクロック回路について簡略化した設計データが生成される。
【０１０３】
図３１は、本実施形態に係るクロック回路の設計データの生成方法（第２の方法）を示すフローチャートである。図３１に示す手順は、図２９に示す手順と同様に、複数のクロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。
【０１０４】
図３１に示す手順では、まず、処理対象となるクロック回路から、同じ論理素子から出力されたクロック信号が直接供給されるフリップフロップのすべてによって構成される群を求める（ステップＳ８２１）。次に、各群に属するフリップフロップの全体を、各群に属するフリップフロップの個数を含んだインスタンス名を有する１個のフリップフロップに置換する（ステップＳ８２２）。これにより、クロック回路の簡略化した設計データが生成される。なお、ステップＳ８２１およびＳ８２２は、それぞれ、図２３に示すステップＳ７０３および図２９に示すステップＳ８０３と同じ処理である。
【０１０５】
図３２（ａ）に示すクロック回路について、図３１に示す方法で簡略化した設計データを求める場合の詳細を説明する。図３２（ａ）に示す回路は、図２７（ａ）に示した回路と同じものである。図３２（ａ）に示す回路に対してステップＳ８２１を実行すると、１００個のフリップフロップを含む群ＧＲ−Ｅ１と、２００個のフリップフロップを含む群ＧＲ−Ｅ２と、３００個のフリップフロップを含むＧＲ−Ｅ３とが得られる。次に、ステップＳ８２２では、群ＧＲ−Ｅ１に属するフリップフロップの全体を、群ＧＲ−Ｅ１に属するフリップフロップの個数（１００個）を含んだインスタンス名（ここでは、ＦＦ＿Ａ１００とする）を有する１個のフリップフロップに置換し、群ＧＲ−Ｅ２に属するフリップフロップの全体を、群ＧＲ−Ｅ２に属するフリップフロップの個数（２００個）を含んだインスタンス名（ここでは、ＦＦ＿Ｂ２００とする）を有する１個のフリップフロップに置換し、群ＧＲ−Ｅ３に属するフリップフロップの全体を、群ＧＲ−Ｅ３に属するフリップフロップの個数（３００個）を含んだインスタンス名（ここでは、ＦＦ＿Ｃ３００とする）を有する１個のフリップフロップに置換する。これにより、図３２（ａ）に示すクロック回路について簡略化した設計データが生成される。
【０１０６】
以上に示すように、本実施形態に係る設計データの生成方法によれば、フリップフロップの個数を反映した簡略化された設計データを生成することができるので、これを用いて回路の比較などを容易に行うことができる。
【産業上の利用可能性】
【０１０７】
本発明の半導体集積回路の設計データの処理方法は、設計者にとって論理を容易に把握できるようになるなどの特徴を有しているので、半導体集積回路を設計するときに使用されるＥＤＡシステムなどに使用することができる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の各実施形態に係る方法を実行するために使用されるＥＤＡシステムの構成を示すブロック図
【図２】本発明の第１の実施形態に係るクロック回路の表示方法（第１の方法）を示すフローチャート
【図３】図２に示すクロック回路の表示方法の実行例を示す図
【図４】本発明の第１の実施形態に係るクロック回路の表示方法（第２の方法）を示すフローチャート
【図５】図４に示すクロック回路の表示方法の実行例を示す図
【図６】図４に示すクロック回路の表示方法に含まれる重複回路を除去するステップの実行例を示す図
【図７】本発明の第２の実施形態に係るクロック回路の表示方法を示すフローチャート
【図８】図７に示すクロック回路の表示方法の実行例を示す図
【図９】図７に示すクロック回路の表示方法における、配線の表示色を指定する方法を示す図
【図１０】本発明の第３の実施形態に係るクロック回路の表示方法を示すフローチャート
【図１１】図１０に示すクロック回路の表示方法の実行例を示す図
【図１２】図１０に示すクロック回路の表示方法における、論理素子の対応づけを指定する方法を示す図
【図１３】本発明の第４の実施形態に係る回路の表示方法を示すフローチャート
【図１４】図１３に示す回路の表示方法の実行例を示す図
【図１５】図１３に示す回路の表示方法における、論理素子のインスタンスを用いてブラックボックス化対象回路を指定する方法を示す図
【図１６】図１３に示す回路の表示方法における、論理素子のタイプを用いてブラックボックス化対象回路を指定する方法を示す図
【図１７】本発明の第５の実施形態に係る回路の表示方法を示すフローチャート
【図１８】図１７に示す回路の表示方法の実行例を示す図
【図１９】本発明の第６の実施形態に係る設計制約の設定方法を示すフローチャート
【図２０】図１９に示す設計制約の設定方法の実行例を示す図
【図２１】図１９に示す設計制約の設定方法において、複数とおりの探索結果が得られる場合を示す図
【図２２】本発明の第６の実施形態に係る設計制約の検証方法を示すフローチャート
【図２３】本発明の第７の実施形態に係る回路の比較方法（第１の方法）を示すフローチャート
【図２４】図２３に示す回路の比較方法の実行例を示す図
【図２５】図２３に示す回路の比較方法の他の実行例を示す図
【図２６】本発明の第７の実施形態に係る回路の比較方法（第２の方法）を示すフローチャート
【図２７】図２６に示す回路の比較方法の実行例を示す図
【図２８】図２６に示す回路の比較方法の他の実行例を示す図
【図２９】本発明の第８の実施形態に係るクロック回路の設計データを求める方法（第１の方法）を示すフローチャート
【図３０】図２９に示すクロック回路の設計データを求める方法の実行例を示す図
【図３１】本発明の第８の実施形態に係るクロック回路の設計データを求める方法（第２の方法）を示すフローチャート
【図３２】図３１に示すクロック回路の設計データを求める方法の実行例を示す図
【符号の説明】
【０１０９】
１０…ＥＤＡシステム
１１…入力部
１２…処理部
１３…データ蓄積部
１４…表示部
【図１】
2005122471.tif 000003
【図２】
2005122471.tif 000004
【図３】
2005122471.tif 000005
【図４】
2005122471.tif 000006
【図５】
2005122471.tif 000007
【図６】
2005122471.tif 000008
【図７】
2005122471.tif 000009
【図８】
2005122471.tif 000010
【図９】
2005122471.tif 000011
【図１０】
2005122471.tif 000012
【図１１】
2005122471.tif 000013
【図１２】
2005122471.tif 000014
【図１３】
2005122471.tif 000015
【図１４】
2005122471.tif 000016
【図１５】
2005122471.tif 000017
【図１６】
2005122471.tif 000018
【図１７】
2005122471.tif 000019
【図１８】
2005122471.tif 000020
【図１９】
2005122471.tif 000021
【図２０】
2005122471.tif 000022
【図２１】
2005122471.tif 000023
【図２２】
2005122471.tif 000024
【図２３】
2005122471.tif 000025
【図２４】
2005122471.tif 000026
【図２５】
2005122471.tif 000027
【図２６】
2005122471.tif 000028
【図２７】
2005122471.tif 000029
【図２８】
2005122471.tif 000030
【図２９】
2005122471.tif 000031
【図３０】
2005122471.tif 000032
【図３１】
2005122471.tif 000033
【図３２】
2005122471.tif 000034
【手続補正書】
【提出日】平成16年2月26日(2004.2.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
図６は、ステップＳ１２３の詳細を説明するための図である。ステップＳ１２３では、図６（ａ）に示すように、ステップＳ１２２で得られた回路（図５（ｃ））の各クロック経路上に節点Ｎ１〜Ｎ９を設ける。節点Ｎ２より後段側の回路と節点Ｎ３より後段側の回路とは同じ構造を有するので、このうち一方の回路は除去され、節点Ｎ２とＮ３とは１つに併合される。また、節点Ｎ４、Ｎ５およびＮ８より後段側には回路が存在しないので、これら３つの節点は１つに併合される。また、節点Ｎ１より後段側の回路と節点Ｎ６より前段側の回路とは同じ構造を有するので、前者の回路は除去され、節点Ｎ１とＮ６とは１つに併合される。さらに、節点Ｎ７より前段側の回路と節点Ｎ９より後段側の回路とは同じ構造を有するので、後者の回路は除去され、節点Ｎ７とＮ９とは１つに併合される。このように重複した回路を除去することにより、図６（ｂ）に示す回路が得られる。この回路は、図５（ｄ）に示した回路と同じものである。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
あるいは、第３の方法として、図１２（ｃ）に示すように、画面に表示されたメニューを用いて、論理素子の対応づけを指定してもよい。図１２（ｃ）には、表示対象となるクロック回路とインデント指定メニューとを同時に画面に表示した状態で、インデント指定メニューを用いて論理素子の対応づけを指定する様子が示されている。図１２（ｃ）に示すインデント指定メニューに入力される情報は、図１２（ａ）に示すインデント指定ファイルに記載される情報と同じである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
図１６（ｂ）は、図１４（ｂ）に示す回路のブラックボックス化指定ファイルである。このファイルには、セルタイプがＢＵＦＴＯＰ（バッファ）である第１の論理素子と、セルタイプがＢＵＦＢＯＴＴＯＭ（バッファ）である第２の論理素子とが記載されている。また、２個の論理素子の間に記載された記号「＝＞」は、回路中のこれら２個の論理素子の間には任意の論理素子がいくつでも存在してよいことを表す。これにより、セルタイプがＢＵＦＴＯＰである論理素子が初段に、セルタイプがＢＵＦＢＯＴＴＯＭである論理素子が最終段に配置された任意の回路が、ブラックボックス化対象回路として指定される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
図１７に示す手順では、まず、表示対象となる回路のレイアウト後の設計データから、各配線の属性情報を取得する（ステップＳ５０１）。ステップＳ５０１で取得される属性情報には、例えば、配線幅、配線ピッチ、階層情報（何層目に配線されているかを示す情報）などが含まれる。次に、ステップＳ５０１で取得した属性情報に対応した態様で各配線を表示しながら、表示対象となる回路を表示する（ステップＳ５０２）。この際、配線の属性情報を多く画面に表示するとかえって設計者の理解が妨げられるので、配線の属性情報の全部または一部をファイルに出力してもよい。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
図２７を参照して、図２６に示す回路の比較方法の実行例を説明する。ステップＳ７２１で比較対象となる回路からクロック回路を抽出したときに、第１の回路からは図２７（ａ）に示す第１のクロック回路が抽出され、第２の回路からは図２７（ｂ）に示す第２のクロック回路が抽出されたとする。第１および第２のクロック回路に対してステップＳ７２２を実行すると、図２７（ｃ）および（ｄ）に示す結果が得られる。すなわち、論理圧縮を施していない第１のクロック回路に含まれるフリップフロップを、クロック経路の最終段に存在する論理素子が同じであるフリップフロップが同じ群に属するように分類すると、１００個のフリップフロップを含む群ＧＲ−Ｅ１と、２００個のフリップフロップを含む群ＧＲ−Ｅ２と、３００個のフリップフロップを含む群ＧＲ−Ｅ３とが得られ、論理圧縮を施していない第２のクロック回路について同じ処理を行うと、１００個のフリップフロップを含む群ＧＲ−Ｆ１と、２００個のフリップフロップを含む群ＧＲ−Ｆ２と、３００個のフリップフロップを含む群ＧＲ−Ｆ３とが得られたとする。なお、図２６に示す手順では、群ＧＲ−Ｅ２に属するフリップフロップと群ＧＲ−Ｅ３に属するフリップフロップとでは、最終段に存在する論理素子が異なるので、群ＧＲ−Ｅ２と群ＧＲ−Ｅ３とは別の群として扱われる。群ＧＲ−Ｆ２と群ＧＲ−Ｆ３についても同様である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
（第８の実施形態）
本発明の第８の実施形態では、クロック回路の簡略化した設計データを求める方法について説明する。図２９は、本実施形態に係るクロック回路の設計データの生成方法（第１の方法）を示すフローチャートである。図２９に示す手順は、複数のクロック経路上に存在する論理素子および配線によって構成されるクロック回路に対して実行される。処理対象となるクロック回路は、例えば、第１の実施形態で述べたような方法で指定される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
図３０（ａ）に示すクロック回路について、図２９に示す方法で簡略化した設計データを求める場合の詳細を説明する。図３０（ａ）に示す回路は、図２４（ａ）に示した回路と同じものである。図３０（ａ）に示す回路に対してステップＳ８０１およびＳ８０２を実行すると、１００個のフリップフロップを含む群ＧＲ−Ａ１と、２００個のフリップフロップを含む群ＧＲ−Ａ２とが得られる。次に、ステップＳ８０３では、群ＧＲ−Ａ１に属するフリップフロップの全体を、群ＧＲ−Ａ１に属するフリップフロップの個数（１００個）を含んだインスタンス名（ここでは、ＦＦ＿Ａ１００とする）を有する１個のフリップフロップに置換し、群ＧＲ−Ａ２に属するフリップフロップの全体を、群ＧＲ−Ａ２に属するフリップフロップの個数（２００個）を含んだインスタンス名（ここでは、ＦＦ＿ＢＣ２００とする）を有する１個のフリップフロップに置換する。これにより、図３０（ａ）に示すクロック回路について簡略化した設計データが生成される（図３０（ｂ）を参照）。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１０５
【補正方法】変更
【補正の内容】
【０１０５】
図３２（ａ）に示すクロック回路について、図３１に示す方法で簡略化した設計データを求める場合の詳細を説明する。図３２（ａ）に示す回路は、図２７（ａ）に示した回路と同じものである。図３２（ａ）に示す回路に対してステップＳ８２１を実行すると、１００個のフリップフロップを含む群ＧＲ−Ｅ１と、２００個のフリップフロップを含む群ＧＲ−Ｅ２と、３００個のフリップフロップを含むＧＲ−Ｅ３とが得られる。次に、ステップＳ８２２では、群ＧＲ−Ｅ１に属するフリップフロップの全体を、群ＧＲ−Ｅ１に属するフリップフロップの個数（１００個）を含んだインスタンス名（ここでは、ＦＦ＿Ａ１００とする）を有する１個のフリップフロップに置換し、群ＧＲ−Ｅ２に属するフリップフロップの全体を、群ＧＲ−Ｅ２に属するフリップフロップの個数（２００個）を含んだインスタンス名（ここでは、ＦＦ＿Ｂ２００とする）を有する１個のフリップフロップに置換し、群ＧＲ−Ｅ３に属するフリップフロップの全体を、群ＧＲ−Ｅ３に属するフリップフロップの個数（３００個）を含んだインスタンス名（ここでは、ＦＦ＿Ｃ３００とする）を有する１個のフリップフロップに置換する。これにより、図３２（ａ）に示すクロック回路について簡略化した設計データが生成される（図３２（ｂ）を参照）。
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2005122471.tif 000035