(57)【要約】【課題】集積回路設計において、クロックラインの再収斂箇所を検知したのち、必要なタイミング制約を出力すること。【解決手段】設計支援装置は、回路に係る所定の入力データから制約を出力し、クロック信号が再収斂しているか検出する再収斂検出部と、クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出部と、再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力部とを有する。【選択図】図５
2019175179.tif 000002
【特許請求の範囲】
【請求項１】
回路に係る所定の入力データから制約を出力する設計支援装置であって、
クロック信号が再収斂しているか検出する再収斂検出部と、
クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出部と、
再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力部とを有する設計支援装置。
【請求項２】
前記回路の一部を他の回路で置換する場合、
前記他の回路による置換を検出する置換構成検出部をさらに有する請求項１記載の設計支援装置。
【請求項３】
前記他の回路に係る端子制約を保持する置換構成制約保持部をさらに有する請求項２記載の設計支援装置。
【請求項４】
前記他の回路に係る端子制約は、前記回路から前記他の回路に入力される制御信号の端子の前段論理までの制約を含む請求項３記載の設計支援装置。
【請求項５】
前記他の回路に係る端子制約と、前記他の回路に係る入力データとを、前記所定の入力データとする請求項３記載の設計支援装置。
【請求項６】
前記他の回路に係るインスタンスを複製し、前記インスタンスを使用して前記回路及び前記他の回路を含む入力データを生成する疑似構成生成部をさらに有する請求項２記載の設計支援装置。
【請求項７】
前記回路及び前記他の回路に係る入力データを、前記所定の入力データとする請求項６記載の設計支援装置。
【請求項８】
回路に係る所定の入力データから制約を出力する設計支援方法であって、
クロック信号が再収斂しているか検出する再収斂検出手順と、
クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出手順と、
再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力手順とを実行する設計支援方法。
【請求項９】
回路に係る所定の入力データから制約を出力する設計支援装置が実行可能なプログラムであって、
クロック信号が再収斂しているか検出する再収斂検出手順と、
クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出手順と、
再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力手順とを設計支援装置に実行させるプログラム。
【請求項１０】
回路に係る所定の入力データから制約を出力する設計支援装置が実行可能なプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
クロック信号が再収斂しているか検出する再収斂検出手順と、
クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出手順と、
再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力手順とを設計支援装置に実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援方法、プログラム及び記憶媒体に関する。
【背景技術】
【０００２】
半導体集積回路設計において、クロックを分岐させた後に再収斂させてしまった場合、当該箇所を検知する技術が既に知られている（例えば特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の検知ツールは、再収斂箇所を検知することまでしかできないため、再収斂箇所が検出された場合、設計者が回路構成上問題があるか否か確認を行ったのち、問題がなければタイミング制約を検討して追加する必要があった。近年の高集積化及び大規模化による複雑な回路においては、大きな工数を要するという問題があった。
【０００４】
本発明は、上記の点に鑑みてなされたものであって、集積回路設計において、クロックラインの再収斂箇所を検知したのち、必要なタイミング制約を出力することを目的とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、設計支援装置は、回路に係る所定の入力データから制約を出力し、クロック信号が再収斂しているか検出する再収斂検出部と、クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出部と、再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力部とを有する。
【発明の効果】
【０００６】
集積回路設計において、クロックラインの再収斂箇所を検知したのち、必要なタイミング制約を出力することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例（１）を示す図である。
【図２】本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例（２）を示す図である。
【図３】本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例（３）を示す図である。
【図４】本発明の実施の形態における設計支援装置のハードウェア構成例を示す図である。
【図５】本発明の実施の形態における設計支援装置の機能構成例（１）を示す図である。
【図６】本発明の実施の形態における制約出力の処理（１）を説明するためのフローチャートである。
【図７】本発明の実施の形態におけるパーシャルリコンフィグ時の動作（１）を説明するための図である。
【図８】本発明の実施の形態における設計支援装置の機能構成例（２）を示す図である。
【図９】本発明の実施の形態における制約出力の処理（２）を説明するためのフローチャートである。
【図１０】本発明の実施の形態におけるパーシャルリコンフィグ時の動作（２）を説明するための図である。
【図１１】本発明の実施の形態における設計支援装置の機能構成例（３）を示す図である。
【図１２】本発明の実施の形態における制約出力の処理（３）を説明するためのフローチャーである。
【発明を実施するための形態】
【０００８】
以下、図面に基づいて本発明の実施の形態を説明する。
【０００９】
図１は、本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例（１）を示す図である。図１において、クロックラインが再収斂している場合であっても、それぞれのクロックラインが排他論理で構成されている場合を説明する。
【００１０】
図１に示されるクロックラインＣＬＫ＿Ａは、後段のセレクタＭＵＸ＿２の入力端子０又は１のいずれにも到達するため、従来の検知ツールはセレクタＭＵＸ＿２を再収斂ポイントして検出する。従来の検知ツールが出力したレポートに基づいて、設計者は検出された再収斂ポイントに係る信号及び回路構成を確認し、回路を修正するか否か検討する必要があった。
【００１１】
一方、図１に示されるセレクタＭＵＸ＿０及びセレクタＭＵＸ＿１は、制御信号ｓｅｌ＿０で出力が決定される。図１に示される回路の場合、セレクタＭＵＸ＿０及びセレクタＭＵＸ＿１において、ＣＬＫ＿Ａが同時に選択される条件は存在しない。すなわち、２つのＣＬＫ＿Ａは排他論理で構成されているため、後段でＣＬＫ＿Ａが再収斂される条件は存在しない。そこで、前段の２つのセレクタの出力端子にクロック定義を設定し、あわせてクロックグループの設定を行い、２つのセレクタの出力端子が互いに排他であるタイミング制約を追加する。これにより、クロックラインの再収斂が検出された場合であっても、各クロックラインが排他である場合は、再収斂ポイントとしての検討を行う必要がなくなる。
【００１２】
図２は、本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例（２）を示す図である。クロックラインが排他であると判断する条件の例を以下説明する。図１に示されるようなセレクト信号ｓｅｌ＿０が、例えば、外部端子からの信号である場合、共通のＦＦ（Flip Flop）からの信号が起点で一方の経路がインバータで反転している場合、又は図２に示される回路のようにＦＦ以外に論理回路が挿入されている場合であっても、ＡＮＤセルのような分岐最終段セル以降で論理が反転している場合、クロックラインが排他であると判断できる。
【００１３】
図３は、本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例（１）を示す図である。図３は、クロックラインのセレクタのセレクト信号がシフトレジスタ構成である場合の例を示す。
【００１４】
図３に示されるように、セレクト信号がシフトレジスタ構成で論理が排他となっている場合も想定されるため、セレクト信号が１段ＦＦに到達した場合であっても、トレースは停止させずに続行する必要がある。
【００１５】
なお、上記トレースを可能とするには、入力される回路情報が、ネットリスト又はＲＴＬ（Register Transfer Level）でセルを直接指定していることが必要である。セルの直接指定がされないＲＴＬである場合、論理合成によってセルが変化するため、制約条件を確定させることができない。したがって、入力される回路情報がセルの直接指定がされないＲＴＬである場合、本発明の実施の形態における設計支援装置は、ＲＴＬ上でのセルの直接指定を推奨するメッセージとその箇所、セレクタ優先で配置した場合の回路例を出力し、制約の例として結果を出力する。
【００１６】
図４は、本発明の実施の形態における設計支援装置のハードウェア構成例を示す図である。本発明の実施の形態における設計支援装置３００のハードウェア構成は、図４に示されるように、ＣＰＵ（Central Processing Unit）１０、メモリ１１、ハードディスク１２、キーボード１３、マウス１４及びディスプレイ１５等を有する。ハードディスク１２には必要な回路情報、ライブラリ情報等が格納されている。また、ハードディスク１２に格納されている各種情報及びプログラムはメモリ１１に読み込まれＣＰＵ１０により演算及び処理される。クロック制約等の処理の結果は、ディスプレイ１５及びハードディスク１２へ出力される。再収斂検出装置２００及び切り替え検出装置４００は、設計支援装置３００と同様のハードウェア構成を有してもよい。また、再収斂検出装置２００及び切り替え検出装置４００は、設計支援装置３００に含まれる構成であってもよい。
【００１７】
設計支援装置３００での処理を実現するプログラムは、ハードディスク１２に格納される。ハードディスク１２は、インストールされたプログラムを格納すると共に、必要なファイル及びデータ等を格納する。設計支援装置３００が実行するプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。
【００１８】
図５は、本発明の実施の形態における設計支援装置の機能構成例（１）を示す図である。再収斂検出装置２００は、再収斂検出部２１０を有する。設計支援装置３００は、排他論理検出部３１０及びクロック制約出力部３１１を有する。なお、設計支援装置３００は、再収斂検出装置２００の機能を有する構成であってもよい。
【００１９】
再収斂検出装置２００に入力される入力データは、制約情報１００、回路情報１０１及びライブラリ１０２を含む。制約情報１００は、クロック定義、クロックグループ設定等が記載された制約情報であり、例えば、ＳＤＣ（Synopsys（登録商標） Design Constraint）ファイルのような形式を有する。回路情報１０１は、ＲＴＬ又はネットリストである。ライブラリ１０２は、セルのファンクション記述を含むライブラリ又はモデルであり、必要に応じて入力される。再収斂検出部２１０は、再収斂しているクロック信号及び回路上の再収斂箇所を検出し、検出結果を設計支援装置３００の排他論理検出部３１０に出力する。また、再収斂検出部２１０は、再収斂レポート２２０を外部に出力する。再収斂レポート２２０は、再収斂箇所及び信号の検出結果に係るレポートである。
【００２０】
排他論理検出部３１０は、再収斂しているクロック信号及び回路上の再収斂箇所から、再収斂信号が排他論理となっているか否かを検出し、クロック制約出力部３１１に検出結果を出力する。例えば、排他論理検出部３１０は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、経路上の論理セルを特定する。当該論理セルのクロック信号以外のセレクト信号をバックトレースし、論理セルで再収斂しているクロック信号が選択される論理が、排他であるか組み合わせを調べる。また、排他論理検出部３１０は、排他論理レポート３２０を外部に出力する。排他論理レポート３２０は、排他論理である箇所、論理、信号の組み合わせの検出結果に係るレポートである。
【００２１】
クロック制約出力部３１１は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約をクロック制約３２１として外部に出力する。クロック制約３２１は、ファイルの形式を有してもよい。
【００２２】
図６は、本発明の実施の形態における制約出力の処理（１）を説明するためのフローチャートである。図５に示される各機能部が動作して、クロック制約を出力するフローチャートを説明する。
【００２３】
ステップＳ１０１において、再収斂検出部２１０は、図５で説明した制約情報及び回路情報等を含むデータを読み込む。続いて、再収斂検出部２１０は、再収斂しているクロック信号及び回路上の再収斂箇所を検出する（Ｓ１０２）。続いて、再収斂検出部２１０は、再収斂箇所及び信号の検出結果に係るレポートを出力する（Ｓ１０３）。
【００２４】
ステップＳ１０４において、設計支援装置３００は、追加制約適用前か否かを判定する。追加制約が適用前である場合（Ｓ１０４のＹｅｓ）、ステップＳ１０５に進み、追加制約が適用前でない場合（Ｓ１０４のＮｏ）、フローを終了する。なお、ステップＳ１０４は、必要に応じて実行されなくてもよい。
【００２５】
ステップＳ１０５において、設計支援装置３００は、再収斂が検出されたか否かを判定する。再収斂が検出された場合（Ｓ１０５のＹｅｓ）、ステップＳ１０６に進み、再収斂が検出されなかった場合（Ｓ１０５のＮｏ）、フローを終了する。
【００２６】
ステップＳ１０６において、排他論理検出部３１０は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部３１０は、排他論理検出結果に係るレポートを出力する（Ｓ１０７）。続いて、設計支援装置３００は、排他論理が検出されたか否かを判定する。排他論理が検出された場合（Ｓ１０８のＹｅｓ）、ステップＳ１０９に進み、排他論理が検出されなかった場合（Ｓ１０８のＮｏ）、フローを終了する。
【００２７】
ステップＳ１０９において、クロック制約出力部３１１は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部３１１は、排他である制約に係るレポートを出力する（Ｓ１１０）。続いて、設計支援装置３００は、出力された制約を適用するか否かを判定する（Ｓ１１１）。制約を適用する場合（Ｓ１１１のＹｅｓ）、ステップＳ１０２に戻り、制約を適用しない場合（Ｓ１１１のＮｏ）、フローを終了する。
【００２８】
図７は、本発明の実施の形態におけるパーシャルリコンフィグ時の動作（１）を説明するための図である。ＦＰＧＡのような書き換え可能な機能を有する回路に対して、回路の一部の書き換えを行うパーシャルリコンフィグという手法がある。パーシャルリコンフィグ手法は、一部のモジュールを、外部メモリ等に格納されている別モジュールで、チップとして動的に、内部モジュールとしては不活性時に書き換える手法である。例えば、図７に示されるｍｏｄｕｌｅ「Ａ，Ｂ，Ｃ，Ｘ」構成の場合と、ｍｏｄｕｌｅ「Ａ，Ｂ，Ｃ，Ｙ」構成の場合とで、図６に示されるフローチャートに示される動作を２回実行する必要がある。
【００２９】
そこで、パーシャルリコンフィグを行う場合、一般にモジュールの入出力端子が一致していなければならないため、１回目の図６に示されるフローチャートに示される動作の実行でｍｏｄｕｌｅ「Ａ，Ｂ，Ｃ，Ｘ」に関して、設計支援装置３００は、クロック信号としては端子とその起点の定義、グループの制約情報及びデータ信号は排他論理を検出するための数段の回路論理情報を保持しておく。続いて、設計支援装置３００は、回路切り替え後にｍｏｄｕｌｅ「Ａ，Ｂ，Ｃ，Ｙ」すべてを読み込んで図６に示されるフローチャートに示される動作を実行する必要はなく、ｍｏｄｕｌｅ「Ｙ」のみ追加で読み込んで図６に示されるフローチャートを実行すればよい。
【００３０】
図８は、本発明の実施の形態における設計支援装置の機能構成例（２）を示す図である。図８に示されるように、切り替え検出装置４００は、切り替え構成検出部４１０を有する。再収斂検出装置２００は、再収斂検出部２１０を有する。設計支援装置３００は、排他論理検出部３１０、クロック制約出力部３１１及び切り替え構成箇所制約保持部３１２を有する。なお、設計支援装置３００は、再収斂検出装置２００及び切り替え検出装置４００の機能を有する構成であってもよい。
【００３１】
切り替え検出装置４００は、切り替え構成があるか否かを検出する装置である。切り替え構成検出部４１０は、切り替え構成があるか否かを、入力される情報から検出する。例えば、切り替え構成検出部４１０は、Ｉｆｄｅｆ変数、共有のインスタンスに設定されているモジュール記述等で、論理等価となっていない場合、回路切り替えを行っていると判定することができる。なお、図８においては、切り替え検出装置４００は、最初にデータが入力される位置に切り替え構成検出部４１０を有するが、他の位置に切り替え構成検出部４１０は配置されてもよい。
【００３２】
図５と同様に再収斂検出部２１０は、入力される情報から再収斂しているクロック信号及び回路上の再収斂箇所を検出し、検出結果を設計支援装置３００の排他論理検出部３１０に出力する。また、再収斂検出部２１０は、再収斂レポート２２０を外部に出力する。
【００３３】
図５と同様に排他論理検出部３１０は、再収斂しているクロック信号及び回路上の再収斂箇所から、再収斂信号が排他論理となっているか否かを検出し、クロック制約出力部３１１に検出結果を出力する。また、排他論理検出部３１０は、排他論理レポート３２０を外部に出力する。
【００３４】
切り替え構成箇所制約保持部３１２は、切り替え対象回路と周辺情報及び切り替え対象回路の端子制約を保持する。クロック端子及びクロック端子の制約情報を保持すれば、切り替え後の回路のみのクロックの再収斂を検出することで、全体の回路のクロックの再収斂を検出することができる。ここで、クロック信号が選択される論理が排他であるか否か判断するためには、クロックのみでは情報が不足している。切り替え対象回路に入力される信号から制御信号が生成される可能性もあるため、切り替え対象回路の制御信号に加えて、切り替え対象回路の入力端子の前段論理の情報までが、制御信号をバックトレースするために保持される対象である。また、切り替え構成箇所制約保持部３１２は、切り替え構成箇所制約レポートを出力することができる。
【００３５】
図５と同様にクロック制約出力部３１１は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約をクロック制約３２１として外部に出力する。
【００３６】
図９は、本発明の実施の形態における制約出力の処理（２）を説明するためのフローチャートである。図８に示される各機能部が動作して、クロック制約を出力する動作に係るフローチャートを説明する。
【００３７】
ステップＳ２０１において、切り替え構成検出部４１０は、図５で説明した制約情報及び回路情報等を含むデータを読み込み、切り替え構成の検出を行う（Ｓ２０２）。切り替え構成検出部４１０が、切り替え構成を検出した場合（Ｓ２０３のＹｅｓ）、ステップＳ２０４に進み、切り替え構成を検出しなかった場合（Ｓ２０３のＮｏ）、ステップＳ２２５に進む。
【００３８】
ステップＳ２０４において、再収斂検出部２１０は、再収斂しているクロック信号及び回路上の再収斂箇所を検出する。続いて、再収斂検出部２１０は、再収斂箇所及び信号の検出結果に係るレポートを出力する（Ｓ２０５）。続いて、設計支援装置３００は、再収斂が検出されたか否かを判定する。再収斂が検出された場合（Ｓ２０６のＹｅｓ）、ステップＳ２０７に進み、再収斂が検出されなかった場合（Ｓ２０６のＮｏ）、ステップＳ２１５に進む。
【００３９】
ステップＳ２０７において、排他論理検出部３１０は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部３１０は、排他論理検出結果に係るレポートを出力する（Ｓ２０８）。続いて、設計支援装置３００は、排他論理が検出されたか否かを判定する。排他論理が検出された場合（Ｓ２０９のＹｅｓ）、ステップＳ２０９に進み、排他論理が検出されなかった場合（Ｓ２０９のＮｏ）、ステップＳ２１５に進む。
【００４０】
ステップＳ２１０において、クロック制約出力部３１１は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部３１１は、排他である制約に係るレポートを出力する（Ｓ２１１）。続いて、設計支援装置３００は、出力された制約を適用するか否かを判定する（Ｓ２１２）。制約を適用する場合（Ｓ２１２のＹｅｓ）、ステップＳ２１３に進み、制約を適用しない場合（Ｓ２１２のＮｏ）、ステップＳ２１５に進む。ステップＳ２１３において、切り替え構成箇所制約保持部３１２は、図８で説明したように切り替え構成箇所制約を保持し、切り替え構成箇所制約レポートを出力する（Ｓ２１４）。続いて、設計支援装置３００は、ステップＳ２０４に戻る。
【００４１】
ステップＳ２１５において、切り替え構成箇所制約保持部３１２が保持する切り替え対象回路と周辺情報及び制約に基づいて、切り替え後の回路設定を行う。続いて、再収斂検出部２１０は、切り替え後の回路を対象として再収斂しているクロック信号及び回路上の再収斂箇所を検出する（Ｓ２１６）。続いて、再収斂検出部２１０は、再収斂箇所及び信号の検出結果に係るレポートを出力する（Ｓ２１７）。
【００４２】
ステップＳ２１８において、設計支援装置３００は、再収斂が検出されたか否かを判定する。再収斂が検出された場合（Ｓ２１８のＹｅｓ）、ステップＳ２１９に進み、再収斂が検出されなかった場合（Ｓ２１８のＮｏ）、フローを終了する。
【００４３】
ステップＳ２１９において、排他論理検出部３１０は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部３１０は、排他論理検出結果に係るレポートを出力する（Ｓ２２０）。続いて、設計支援装置３００は、排他論理が検出されたか否かを判定する。排他論理が検出された場合（Ｓ２２１のＹｅｓ）、ステップＳ２２２に進み、排他論理が検出されなかった場合（Ｓ２２１のＮｏ）、フローを終了する。
【００４４】
ステップＳ２２２において、クロック制約出力部３１１は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部３１１は、排他である制約に係るレポートを出力する（Ｓ２２３）。続いて、設計支援装置３００は、出力された制約を適用するか否かを判定する（Ｓ２２４）。制約を適用する場合（Ｓ２２４のＹｅｓ）、ステップＳ２１６に戻り、制約を適用しない場合（Ｓ２２４のＮｏ）、フローを終了する。
【００４５】
ステップＳ２２５において、再収斂検出部２１０は、再収斂しているクロック信号及び回路上の再収斂箇所を検出する。続いて、再収斂検出部２１０は、再収斂箇所及び信号の検出結果に係るレポートを出力する（Ｓ２２６）。
【００４６】
ステップＳ２２７において、設計支援装置３００は、追加制約適用前か否かを判定する。追加制約が適用前である場合（Ｓ２２７のＹｅｓ）、ステップＳ２２８に進み、追加制約が適用前でない場合（Ｓ２２７のＮｏ）、フローを終了する。なお、ステップＳ２２７は、必要に応じて実行されなくてもよい。
【００４７】
ステップＳ２２８において、設計支援装置３００は、再収斂が検出されたか否かを判定する。再収斂が検出された場合（Ｓ２２８のＹｅｓ）、ステップＳ２２９に進み、再収斂が検出されなかった場合（Ｓ２２８のＮｏ）、フローを終了する。
【００４８】
ステップＳ２２９において、排他論理検出部３１０は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部３１０は、排他論理検出結果に係るレポートを出力する（Ｓ２３０）。続いて、設計支援装置３００は、排他論理が検出されたか否かを判定する。排他論理が検出された場合（Ｓ２３１のＹｅｓ）、ステップＳ２３２に進み、排他論理が検出されなかった場合（Ｓ２３１のＮｏ）、フローを終了する。
【００４９】
ステップＳ２３２において、クロック制約出力部３１１は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部３１１は、排他である制約に係るレポートを出力する（Ｓ２３３）。続いて、設計支援装置３００は、出力された制約を適用するか否かを判定する（Ｓ２３４）。制約を適用する場合（Ｓ２３４のＹｅｓ）、ステップＳ２２５に戻り、制約を適用しない場合（Ｓ２３４のＮｏ）、フローを終了する。
【００５０】
図１０は、本発明の実施の形態におけるパーシャルリコンフィグ時の動作（２）を説明するための図である。設計支援装置３００において、パーシャルリコンフィグをｍｏｄｕｌｅ「Ａ，Ｂ，Ｃ，Ｘ」構成に対して、ｍｏｄｕｌｅ「Ａ，Ｂ，Ｃ，Ｙ」構成で実行する場合、書き換え対象に係る共通インスタンス部を疑似的に複製し、図１０に示されるように、ｍｏｄｕｌｅ「Ａ，Ｂ，Ｃ，Ｘ，Ｙ」構成として、再収斂を検出してもよい。
【００５１】
図１１は、本発明の実施の形態における設計支援装置の機能構成例（３）を示す図である。図１１に示されるように、切り替え検出装置４００は、切り替え構成検出部４１０及び疑似構成生成部４１１を有する。再収斂検出装置２００は、再収斂検出部２１０を有する。設計支援装置３００は、排他論理検出部３１０及びクロック制約出力部３１１を有する。なお、設計支援装置３００は、再収斂検出装置２００及び切り替え検出装置４００の機能を有する構成であってもよい。
【００５２】
切り替え検出装置４００は、切り替え構成があるか否かを検出し、切り替え構成を検出した場合、切り替え対象のインスタンスを複製して切り替え前後の回路両方を搭載しているように設計支援装置３００に認識させる装置である。図８と同様に、切り替え構成検出部４１０は、切り替え構成があるか否かを、入力される情報から検出する。
【００５３】
疑似構成生成部４１１は、インスタンスを複製し、切り替え回路を搭載する。パーシャルリコンフィグにおいて、切り替え回路は同一のインスタンスに対して異なるモジュールを入れ替えるため、インスタンスを複製するだけで切り替え前後の回路両方を同時に搭載している状態を表現することができる。
【００５４】
図８と同様に再収斂検出部２１０は、入力される情報から再収斂しているクロック信号及び回路上の再収斂箇所を検出し、検出結果を設計支援装置３００の排他論理検出部３１０に出力する。また、再収斂検出部２１０は、再収斂レポート２２０を外部に出力する。
【００５５】
図８と同様に排他論理検出部３１０は、再収斂しているクロック信号及び回路上の再収斂箇所から、再収斂信号が排他論理となっているか否かを検出し、クロック制約出力部３１１に検出結果を出力する。また、排他論理検出部３１０は、排他論理レポート３２０を外部に出力する。
【００５６】
図８と同様にクロック制約出力部３１１は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約をクロック制約３２１として外部に出力する。
【００５７】
図１２は、本発明の実施の形態における制約出力の処理（３）を説明するためのフローチャーである。図１１に示される各機能部が動作して、クロック制約を出力する動作に係るフローチャートを説明する。
【００５８】
ステップＳ３０１において、切り替え構成検出部４１０は、図５で説明した制約情報及び回路情報等を含むデータを読み込み、切り替え構成の検出を。切り替え構成検出部４１０が、切り替え構成を検出した場合（Ｓ３０３のＹｅｓ）、ステップＳ３０４に進み、切り替え構成を検出しなかった場合（Ｓ３０２のＮｏ）、ステップＳ３０５に進む。
【００５９】
ステップＳ３０４において、疑似構成生成部４１１は、切り替え回路に係るインスタンスを複製して、切り替え前後の回路を同時に搭載するよう設計支援装置３００に認識させる。
【００６０】
ステップＳ３０５において、再収斂検出部２１０は、再収斂しているクロック信号及び回路上の再収斂箇所を検出する。続いて、再収斂検出部２１０は、再収斂箇所及び信号の検出結果に係るレポートを出力する（Ｓ３０６）。
【００６１】
ステップＳ３０７において、設計支援装置３００は、追加制約適用前か否かを判定する。追加制約が適用前である場合（Ｓ３０７のＹｅｓ）、ステップＳ３０８に進み、追加制約が適用前でない場合（Ｓ３０７のＮｏ）、フローを終了する。なお、ステップＳ３０７は、必要に応じて実行されなくてもよい。
【００６２】
ステップＳ３０８において、設計支援装置３００は、再収斂が検出されたか否かを判定する。再収斂が検出された場合（Ｓ３０８のＹｅｓ）、ステップＳ３０９に進み、再収斂が検出されなかった場合（Ｓ３０８のＮｏ）、フローを終了する。
【００６３】
ステップＳ３０９において、排他論理検出部３１０は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部３１０は、排他論理検出結果に係るレポートを出力する（Ｓ３１０）。続いて、設計支援装置３００は、排他論理が検出されたか否かを判定する。排他論理が検出された場合（Ｓ３１１のＹｅｓ）、ステップＳ３１２に進み、排他論理が検出されなかった場合（Ｓ２０９のＮｏ）、フローを終了する。
【００６４】
ステップＳ３１２において、クロック制約出力部３１１は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部３１１は、排他である制約に係るレポートを出力する（Ｓ３１３）。続いて、設計支援装置３００は、出力された制約を適用するか否かを判定する（Ｓ３１４）。制約を適用する場合（Ｓ３１４のＹｅｓ）、ステップＳ３０５に戻り、制約を適用しない場合（Ｓ３１４のＮｏ）、フローを終了する。
【００６５】
上述のように、本発明の実施の形態によれば、設計支援装置３００は、集積回路において再収斂しているクロック信号及び再収斂箇所を検出し、クロック経路に対してバックトレースを行い、経路上の論理セルを特定する。続いて、設計支援装置３００は、論理セルのクロック信号以外のセレクト信号をバックトレースし、論理セルで再収斂しているクロック信号が選択される論理が、排他であるか組み合わせを調べ、排他であることが検出された場合には論理セルの出力端子にクロック定義及びクロックグループとして排他である制約を追加することができる。また、設計支援装置３００は、パーシャルリコンフィグを行う場合の切り替え回路を搭載した集積回路において、切り替え構成箇所に係る制約を保持するか、又はインスタンスを複製して切り替え前後の回路を同時に搭載することで、効率よく再収斂しているクロック信号及び再収斂箇所を検出し、必要なタイミング制約を出力することができる。
【００６６】
以上のように、半導体集積回路設計において、クロックラインの再収斂箇所を検知したのち、必要なタイミング制約を出力することができる。
【００６７】
なお、本発明の実施の形態において、クロック制約出力部３１１は、制約出力部の一例である。切り替え構成検出部４１０は、置換構成検出部の一例である。切り替え構成箇所制約保持部３１２は、置換構成制約保持部の一例である。
【００６８】
以上、本発明の実施の形態又は実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６９】
１０      ＣＰＵ
１１      メモリ
１２      ハードディスク
１３      キーボード
１４      マウス
１５      ディスプレイ
２００    再収斂検出装置
３００    設計支援装置
４００    切り替え検出装置
２１０    再収斂検出部
３１０    排他論理検出部
３１１    クロック制約出力部
３１２    切り替え構成箇所制約保持部
４１０    切り替え構成検出部
４１１    疑似構成生成部
【先行技術文献】
【特許文献】
【００７０】
【特許文献１】特開２００９−１２８９７７号公報
【図１】
2019175179.tif 000003
【図２】
2019175179.tif 000004
【図３】
2019175179.tif 000005
【図４】
2019175179.tif 000006
【図５】
2019175179.tif 000007
【図６】
2019175179.tif 000008
【図７】
2019175179.tif 000009
【図８】
2019175179.tif 000010
【図９】
2019175179.tif 000011
【図１０】
2019175179.tif 000012
【図１１】
2019175179.tif 000013
【図１２】
2019175179.tif 000014