(57)【要約】【課題】設計工程の手戻りの抑制を図ること。【解決手段】情報処理装置１００は、検証の対象回路に含まれる検証の対象パスに関する特徴情報１１１と、対象パス上の各セルの位置を示す位置情報１１２と、を取得する。情報処理装置１００は、記憶部１０１を参照して、対象パスの送信セルおよび対象パスの受信セルの各位置を基準に、取得した特徴情報１１１についてのサイズ情報に基づく大きさの検出枠１３０を設ける。情報処理装置１００は、位置情報１１２に基づいて、検出枠１３０内に各セルが含まれているか否かを判定する。情報処理装置１００は、対象パス上の各セルが枠内に含まれないと判定した場合、対象パス上の各セル間を繋ぐ配線が迂回の可能性があることを出力する。【選択図】図１
2018112995.tif 000002
【特許請求の範囲】
【請求項１】
回路内のパスに関する各々の特徴情報について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさに関するサイズ情報を記憶する記憶部にアクセス可能なコンピュータに、
検証の対象回路に含まれる検証の対象パスに関する特徴情報と、前記対象パス上の各セルの位置を示す位置情報と、を取得し、
前記記憶部と、取得した前記位置情報とに基づいて、前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準に設けられた、取得した前記特徴情報についての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定し、
前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルのうち少なくとも一つのセルが前記枠内に含まれないと判定した場合、前記対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを出力する、
処理を実行させることを特徴とする迂回配線チェックプログラム。
【請求項２】
前記パスに関する各々の特徴情報は、前記パス上のゲート段数を示す情報と、前記パス上の受信セルと前記パス上の終点セルとの間の距離を示す情報と、前記パスを動作させるクロックの周波数を示す情報との少なくともいずれかを含むことを特徴とする請求項１に記載の迂回配線チェックプログラム。
【請求項３】
前記記憶部には、前記回路内のパスに関する各々の特徴情報および前記回路の仕様に関する各々の特徴情報の組み合わせの各々について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさを示すサイズ情報を記憶し、
前記取得する処理では、
さらに、前記対象回路の仕様に関する特徴情報を取得し、
前記判定する処理では、
前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準にした、取得した前記対象パスに関する前記特徴情報および前記仕様に関する前記特徴情報の組み合わせについての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定する、
ことを特徴とする請求項１または２に記載の迂回配線チェックプログラム。
【請求項４】
前記回路の仕様に関する各々の特徴情報は、前記回路を内部に構成可能な集積回路の識別情報を含むことを特徴とする請求項３に記載の迂回配線チェックプログラム。
【請求項５】
回路内のパスに関する各々の特徴情報について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさを示すサイズ情報を記憶する記憶部にアクセス可能なコンピュータが、
検証の対象回路に含まれる検証の対象パスに関する特徴情報と、前記対象パス上の各セルの位置を示す位置情報と、を取得し、
前記記憶部と、取得した前記位置情報とに基づいて、前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準に設けられた、取得した前記特徴情報についての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定し、
前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルのうち少なくとも一つのセルが前記枠内に含まれないと判定した場合、前記対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを出力する、
処理を実行することを特徴とする迂回配線チェック方法。
【請求項６】
回路内のパスに関する各々の特徴情報について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさを示すサイズ情報を記憶する記憶部と、
検証の対象回路に含まれる検証の対象パスに関する特徴情報と、前記対象パス上の各セルの位置を示す位置情報と、を取得し、前記記憶部と取得した前記位置情報とに基づいて、前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準に設けられた、取得した前記特徴情報についての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定し、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルのうち少なくとも一つのセルが前記枠内に含まれないと判定した場合、前記対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを出力する制御部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、半導体集積回路の設計では、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）設計やレイアウト設計などが行われる。ＲＴＬ設計では、ユーザ仕様がレジスタ転送レベルの記述に変換される。ＲＴＬ設計では、ハードウェア記述言語などによって、半導体集積回路の各部がクロックサイクルごとにどのように動作するかがネットリストなどに記述される。レイアウト設計では、ＲＴＬのネットリストを論理合成することにより得られたゲートレベルのネットリストに基づいてレイアウトが行われる。また、レイアウト設計では、素子を配置する配置処理が行われた後に、素子間を繋ぐ配線処理が行われる。
【０００３】
先行技術としては、例えば、半導体集積回路の設計において、レイアウトデータから素子間距離を抽出してばらつき値を計算し、素子配置の許容範囲を設定する技術がある（例えば、以下特許文献１参照。）。
【０００４】
また、先行技術としては、例えば、半導体集積回路のレイアウト検証において、仮配線情報を取得して配置情報を特定し、迂回配線があるか否かを判定する技術がある（例えば、以下特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−９３６３１号公報
【特許文献２】特開２０１４−１８６７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来、パス上のセルの配置が悪いために生じた迂回配線によってタイミングエラーが発生する場合、設計工程の手戻りが生じる場合がある。例えば、配線処理後などのようにレイアウト設計の工程の終盤に迂回配線が発見された場合、ＲＴＬ設計、論理合成、配置処理などの工程に戻って迂回配線が修正される場合がある。
【０００７】
１つの側面では、本発明は、設計工程の手戻りの抑制を図ることができる迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、回路内のパスに関する各々の特徴情報について、前記パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさに関するサイズ情報を記憶する記憶部にアクセス可能なコンピュータに、検証の対象回路に含まれる検証の対象パスに関する特徴情報と、前記対象パス上の各セルの位置を示す位置情報と、を取得し、前記記憶部と、取得した前記位置情報とに基づいて、前記対象パスの送信セルおよび前記対象パスの受信セルの各位置を基準に設けられた、取得した前記特徴情報についての前記サイズ情報に基づく大きさの枠に、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルが含まれるか否かを判定し、前記対象パスの送信セルと前記対象パスの受信セルとの間の各セルのうち少なくとも一つのセルが前記枠内に含まれないと判定した場合、前記対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを出力する迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、設計工程の手戻りの抑制を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明にかかる情報処理装置の一動作例を示す説明図である。
【図２】図２は、迂回配線例を示す説明図である。
【図３】図３は、機械学習ＤＢを用いた全体の設計フローを示す説明図である。
【図４】図４は、情報処理装置のハードウェア構成例を示すブロック図である。
【図５】図５は、機械学習ＤＢの記憶例を示す説明図である。
【図６】図６は、タイミングレポートの一記憶例を示す説明図である。
【図７】図７は、情報処理装置の機能的構成例を示すブロック図である。
【図８】図８は、矩形形状の検出枠の生成例を示す説明図である。
【図９】図９は、円形形状の検出枠の生成例を示す説明図である。
【図１０】図１０は、仮検出枠よりも検出枠が小さくなる一例を示す説明図である。
【図１１】図１１は、判定例を示す説明図である。
【図１２】図１２は、チェック結果出力例を示す説明図である。
【図１３】図１３は、情報処理装置が行う処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置の実施の形態を詳細に説明する。
【００１２】
図１は、本発明にかかる情報処理装置の一動作例を示す説明図である。情報処理装置１００は、例えば、半導体集積回路のレイアウト設計における迂回配線をチェックする機能を有するコンピュータである。
【００１３】
従来、半導体集積回路の設計では、ＲＴＬ設計、論理合成、レイアウト設計などが行われる。ＲＴＬのネットリストを論理合成することによりゲートレベルのネットリストが得られる。レイアウト設計では、ゲートレベルのネットリストに基づいてセルを配置する配置処理が行われる。つぎに、レイアウト設計では、セル間を繋ぐ配線処理が行われる。
【００１４】
しかし、従来、パス上のセルの配置が悪いために生じた迂回配線によってタイミングエラーが発生する場合、設計工程の手戻りが生じる場合がある。例えば、配線処理後などのようにレイアウト設計の工程の終盤に迂回配線が発見された場合に、ＲＴＬ設計、論理合成、配置処理などの工程に戻って迂回配線が修正される場合がある。例えば、論理合成や配置処理は数時間かかるのに対して、配線処理や配線処理後のタイミング検証は数十時間かかる。このため、迂回配線のために工程に手戻りが生じると、配線処理のやり直しも発生し、論理回路設計およびレイアウト設計全体に要する時間が長くなる。また、迂回配線によってタイミングエラーが発生しているか否かを判断するのは、設計者が目視などで評価することになる。このため、設計者に応じてその評価基準が異なるなど、パス上のセルの配置が悪いために生じた迂回配線であるか否かを判別することは、困難である。迂回配線例については、図２を用いて後述する。
【００１５】
そこで、本実施の形態では、情報処理装置１００は、パスの特徴情報別の検出枠の大きさ情報を参照して、対象パスの特徴情報に応じた大きさの枠内に対象パス上の各セルが含まれるか否かにより該各セル間の配線が迂回する可能性があるかを判定する。これにより、情報処理装置１００は、配線処理前に、セルの配置によって生じうる迂回配線をチェックすることができる。したがって、情報処理装置１００は、設計の手戻りを抑制することができる。ひいては、設計時間の短縮化を図ることができる。また、情報処理装置１００は、パスの特徴に応じて検出枠のサイズを変更することができ、検出精度の向上を図ることができる。
【００１６】
ここで、パスとは、例えば、データ保持素子間の経路、入力端子からデータ保持素子までの経路、データ保持素子から出力端子までの経路である。データ保持素子としては、例えば、ＦＦなどが挙げられる。パスの始点となるＦＦや入力端子は、例えば、送信セルとも称する。パスの終点となるＦＦや入力端子は、例えば、受信セルとも称する。また、受信セルと送信セルとの間の各セルを中間セルとも称する。
【００１７】
記憶部１０１は、例えば、過去に設計された回路内のパスに関する各々の特徴情報について、パス上の各セル間を繋ぐ配線が迂回する可能性があるか否かの判定に用いる枠の大きさに関するサイズ情報を記憶する。特徴情報としては、例えば、送受信間距離、論理段数、周波数などの少なくともいずれかである。送受信間距離とは、受信セルと送信セルとの間の距離である。論理段数とは、受信セルと送信セルとの間のパス上のゲートの段数である。ここでのゲートとは、論理回路に含まれるトランジスタを含む（マクロ）セルである。ゲートとしては、ＮＯＲゲート、ＯＲゲート、インバータゲート、バッファゲートなどが挙げられる。周波数は、パスを動作させる最大周波数が設定される。
【００１８】
図１の例では、大きさに関するサイズ情報は、例えば、マージン量によって表される。マージン量は、送信セルと受信セルとを含む最小の形状の仮の枠の面積を何倍にするかの比率である。ここで、枠は、検出枠とも称する。検出枠１３０の形状は、例えば、図１のように矩形形状であってもよいし、円形形状であってもよく、特に限定しない。
【００１９】
情報処理装置１００は、検証の対象回路に含まれる検証の対象パスに関する特徴情報１１１と、対象パス上の各セルの位置を示す位置情報１１２と、を取得する。特徴情報１１１には、送受信間距離と、ゲート段数と、クロック周波数とを示す情報を含む。位置情報１１２は、送信セル１２１と、受信セル１２２と、中間セル１２３と、中間セル１２４と、の位置を示す。
【００２０】
情報処理装置１００は、記憶部１０１と、位置情報１１２とに基づいて、対象パスの送信セルおよび対象パスの受信セルの各位置を基準に設けられた、特徴情報１１１についてのサイズ情報に基づく大きさの検出枠１３０に、対象パス上の各セルが含まれるか否かを判定する。具体的には、情報処理装置１００は、例えば、対象パスの送信セルおよび対象パスの受信セルの各位置を基準に、取得した特徴情報１１１についてのサイズ情報が示す大きさの検出枠１３０を設ける。より詳細に説明すると、情報処理装置１００は、例えば、対象パスの送信セルおよび対象パスの受信セルの各位置を基準に、対象パスの送信セルおよび対象パスの受信セルを包含する最小の矩形形状の仮の検出枠１３０を設ける。情報処理装置１００は、記憶部１０１から、特徴情報１１１についてのサイズ情報に関する大きさを抽出する。ここでは、「×１．２」が抽出される。そして、情報処理装置１００は、仮の検出枠１３０に対して取得した特徴情報１１１についてのサイズ情報に関する大きさを乗算した大きさの検出枠１３０を設ける。このようにして、取得した特徴情報１１１についてのサイズ情報に基づく大きさの検出枠１３０が設定される。
【００２１】
そして、情報処理装置１００は、位置情報１１２に基づいて、検出枠１３０内に各セルが含まれているか否かを判定する。ここで、各セルのパターンサイズは、予ライブラリ化されてあることとしてもよい。情報処理装置１００は、例えば、セルの少なくとも一部が検出枠１３０内に含まれていなければ、セルは検出枠１３０内に含まれていないと判定する。
【００２２】
情報処理装置１００は、対象パス上の各セルのうち少なくとも一つのセルが枠内に含まれないと判定した場合、対象パス上の各セル間を繋ぐ配線が迂回の可能性があることを出力する。情報処理装置１００は、例えば、レポートを作成して記憶部１０１などに格納してもよいし、対象パス上の各セル間を繋ぐ配線が迂回する可能性があることをディスプレイなどの画面に出力してもよい。
【００２３】
図１の例では、中間セル１２３が検出枠１３０内に含まれていない。送信セル１２５から受信セル１２６までのパス上のセルは中間セル１２３と中間セル１２７である。このように、中間セル１２３は、送信セル１２１から受信セル１２２までのパス上のセルだけでなく、送信セル１２５から受信セル１２６までのパス上のセルでもある。このため、中間セル１２３は、送信セル１２５の近くに配置されてある。情報処理装置１００は、対象パス上の中間セル１２３を繋ぐ配線が迂回する可能性があることを出力する。
【００２４】
このようにして、情報処理装置１００は、セルの配置に起因してタイミングエラーとなりうる迂回配線を配線処理前にチェックすることができる。したがって、情報処理装置１００は、設計の手戻りを防ぐことができる。また、パスの特徴情報に基づいて検出枠の大きさが決まるため、迂回配線の検出精度の向上を図ることができる。
【００２５】
図２は、迂回配線例を示す説明図である。送信セルから受信セルまでのパス２００上には、例えば、素子Ａと素子Ｂとがある。パス２００において、例えば、素子Ａが、パス２００以外の他のパス上の素子でもある場合がある。このような場合、他のパスの配置結果の影響によって、素子Ａは、送信セルや素子Ｂから遠くに配置される場合がある。
【００２６】
図３は、機械学習ＤＢを用いた全体の設計フローを示す説明図である。過去設計情報３００などや経験値に基づいて機械学習ＤＢ３０１が作成される（ステップＳ３１１）。過去設計情報３００は、例えば、過去の回路のレイアウト設計後のレイアウトデータやレイアウトデータに対するタイミング検証のタイミングレポートなどである。また、ステップＳ３１１において、例えば、開発者や過去の回路の設計者などが機械学習ＤＢ３０１を作成する。
【００２７】
また、ユーザ仕様がレジスタ転送レベルの記述にされたＲＴＬのネットリスト３０２やタイミング制約情報３０３に基づいて、論理合成が行われる（ステップＳ３０１）。ＲＴＬのネットリスト３０２は、ハードウェア記述言語などによって、半導体集積回路の各部がクロックサイクルごとにどのように動作するかが記述されてある。また、ステップＳ３０１において、ＲＴＬのネットリスト３０２が論理合成されることによりゲートレベルのネットリスト３０４が得られる。
【００２８】
そして、論理合成後のネットリスト３０４に応じた配置処理が行われる（ステップＳ３０２）。つぎに、配置後のレイアウトデータ３０５および論理合成後のネットリスト３０４に基づいてタイミング検証が行われる（ステップＳ３０３）。これにより、タイミングレポート３０６が得られる。
【００２９】
つぎに、情報処理装置１００は、機械学習ＤＢ３０１とタイミングレポート３０６とに基づいて迂回配線チェックを行う（ステップＳ３０４）。これにより、チェック結果３０８などが得られる。ステップＳ３０４において迂回配線ありと判定された場合、チェック結果３０８に基づいて、ステップＳ３０１、ステップＳ３０２、ステップＳ３０３などが再度行われる。ステップＳ３０４において迂回配線なしと判定された場合、配線処理が行われる（ステップＳ３０５）。そして、タイミング検証が行われる（ステップＳ３０６）。これにより、タイミングレポート３０７が得られる。
【００３０】
（情報処理装置１００のハードウェア構成例）
図４は、情報処理装置のハードウェア構成例を示すブロック図である。図４において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、ディスクドライブ４０４と、ディスク４０５と、を有する。情報処理装置１００は、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）４０６と、キーボード４０７と、マウス４０８と、ディスプレイ４０９と、を有する。また、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、ディスクドライブ４０４と、Ｉ／Ｆ４０６と、キーボード４０７と、マウス４０８と、ディスプレイ４０９とは、バス４００によってそれぞれ接続される。
【００３１】
ここで、ＣＰＵ４０１は、情報処理装置１００の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される。ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがってディスク４０５に対するデータのリード／ライトを制御する。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する。ディスク４０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００３２】
Ｉ／Ｆ４０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク４１０に接続され、このネットワーク４１０を介して他の装置に接続される。そして、Ｉ／Ｆ４０６は、ネットワーク４１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ４０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００３３】
キーボード４０７やマウス４０８は、利用者の操作により、各種データの入力を受け付けるインターフェースである。ディスプレイ４０９は、ＣＰＵ４０１の指示により、データを出力するインターフェースである。
【００３４】
また、図示を省略するが、情報処理装置１００には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、情報処理装置１００には、プリンタなどの出力装置が設けられていてもよい。
【００３５】
また、本実施の形態では、情報処理装置１００のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。情報処理装置１００がサーバである場合、情報処理装置１００と、利用者が操作可能な装置やディスプレイ４０９などと、がネットワーク４１０を介して接続されてもよい。
【００３６】
（各種ＤＢ等の記憶内容）
つぎに、情報処理装置１００が有する各種ＤＢ（Ｄａｔａｂａｓｅ）等の記憶内容について説明する。各種ＤＢ等は、例えば、情報処理装置１００が有するＲＯＭ４０２、ＲＡＭ４０３、ディスク４０５、フラッシュメモリ等の不揮発性の半導体メモリ（図示省略）などの記憶部により実現される。
【００３７】
図５は、機械学習ＤＢの記憶例を示す説明図である。機械学習ＤＢ３０１は、例えば、メーカやデバイス、周波数などの特徴情報に、タイミングエラーの要因別に複数の領域の各々における最大値又は最小値などが対応付けられた情報である。
【００３８】
機械学習ＤＢ３０１は、特徴、マージン量のフィールドを有する。特徴のフィールドは、デバイス、送受信間距離、論理段数、周波数のフィールドを有する。デバイスのフィールドに設定される情報は、設計の対象回路の使用に関する特徴情報である。送受信間距離、論理段数、周波数のフィールドに設定される情報は、設計の対象回路に含まれる各パスの特徴情報である。
【００３９】
デバイスのフィールドには、ターゲットのＦＰＧＡの識別情報としてデバイス名が設定される。送受信間距離のフィールドには、例えば、パスの始点となるＦＦや入力端子と、パスの終点となるＦＦや出力端子との間の距離が設定される。送受信間距離が長すぎると、配線遅延の増大によりタイミングエラーが発生する場合がある。送受信間距離は、レイアウト用のＣＡＤで用いるコンピュータ空間上の長さの単位によって表される。
【００４０】
論理段数のフィールドには、パス上のゲートの段数である。ここでのゲートとは、論理回路に含まれるトランジスタを含む（マクロ）セルである。ゲートとしては、ＮＯＲゲート、ＯＲゲート、インバータゲート、バッファゲートなどが挙げられる。周波数のフィールドには、設計の対象回路を動作させる最大周波数が設定される。
【００４１】
マージン量のフィールドには、基準となる検出枠に対するマージン量が設定される。基準となる検出枠は、対象パスの送信セルと受信セルとを包含する最小の検出枠である。マージン量は、例えば、送受信間距離が大きいほど、小さくなるように設定される。また、マージン量は、例えば、論理段数が多いほど、小さくなるように設定される。また、マージン量は、周波数が大きいほど、小さくなるように設定される。ここでは、マージン量は、「×数値」によって表される。「×数値」とは、仮検出枠の面積を何倍にするかの比率を示す。
【００４２】
例えば、デバイスが「ＡＢ」であり、送受信間距離が「１〜１０」であり、論理段数が「５以下」であり、周波数が「１００［ＭＨｚ］」である場合に、マージン量は、「×４」が設定されてある。このような場合、レイアウト用のＣＡＤで用いるコンピュータ空間上に定義されたｘ軸とｙ軸のそれぞれの仮検出枠の長さを「×４×１／２」だけ大きくした検出枠が生成される。仮検出枠は、検出枠を作成するための仮の枠である。これにより、仮検出枠の４倍の面積の検出枠が生成される。仮検出枠や検出枠については、図８や図９を用いて後述する。
【００４３】
図６は、タイミングレポートの一記憶例を示す説明図である。タイミングレポート３０６は、図３におけるステップＳ３０３によるタイミング検証により得られるレポートである。
【００４４】
タイミングレポート３０６には、サマリ欄とデータ到着時間の欄とがある。サマリ欄には、パスの送信セルと受信セルとの識別情報が設定される。また、サマリ欄には、パスが動作するクロックの周期の情報が設定される。なお、周期はクロックの周波数の逆数である。情報処理装置１００は、タイミングレポート３０６から周期の情報を取得して周期の逆数の周波数情報を求めることができる。
【００４５】
また、データ到着時間の欄には、合計遅延、遅延増加量、タイプ種別、座標、要素情報の欄を有する。合計遅延の欄には、パス上の各要素までの合計の遅延量が設定される。遅延増加量の欄には、パス上の各要素の遅延が設定される。タイプ種別の欄には、パス上の各要素の種別が設定される。要素の種別としては、例えば、セルを表す「ＣＥＬＬ」が挙げられる。座標の欄には、パス上の各要素の位置を示す位置情報として各要素の座標値が設定される。要素情報の欄には、パス上の各要素に関する要素情報が設定される。要素情報としては、要素の識別情報と、要素が送信セルであるか受信セルであるか中間セルであるかを示す情報が設定される。情報処理装置１００は、送信セルの座標値と、受信セルの座標値と、各中間セルの座標値を取得することによりパス上の各セルの位置を示す位置情報を得る。情報処理装置１００は、送信セルの座標値と、受信セルの座標値とを取得することにより送受信間距離を得ることができる。また、情報処理装置１００は、中間セルの個数をカウントすることにより論理段数を得ることができる。
【００４６】
（情報処理装置１００の機能的構成例）
図７は、情報処理装置の機能的構成例を示すブロック図である。情報処理装置１００は、制御部７００と、記憶部１０１とを有する。制御部７００の処理は、例えば、図４に示すＣＰＵ４０１がアクセス可能なＲＯＭ４０２、ＲＡＭ４０３、ディスク４０５などの記憶装置に記憶されたプログラムにコーディングされている。そして、ＣＰＵ４０１が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部７００の処理が実現される。また、制御部７００の処理結果は、例えば、ＲＡＭ４０３、ＲＯＭ４０２、ディスク４０５などの記憶装置に記憶される。
【００４７】
記憶部１０１は、例えば、機械学習ＤＢ３０１と、ＲＴＬのネットリスト３０２と、ゲートレベルのネットリスト３０４と、レイアウトデータ３０５と、タイミングレポート３０６と、を有する。
【００４８】
制御部７００は、検証の対象回路に含まれる検証の対象パスに関する特徴情報を取得する。制御部７００は、対象パス上の各セルの位置を示す位置情報を取得する。
【００４９】
具体的には、制御部７００は、タイミングレポート３０６を取得する。つぎに、制御部７００は、タイミングレポート３０６から、対象パスの特徴情報を取得する。制御部７００は、例えば、対象パスの特徴情報として、送受信間距離、対象パスの論理段数、対象パスで用いられる周波数を取得する。また、制御部７００は、例えば、タイミングレポート３０６から、対象パス上の送信セルと対象パス上の受信セルとの間の中間セルの位置を示す位置情報を取得する。また、制御部７００は、例えば、タイミングレポート３０６から、対象パス上の送信セルおよび受信セルの位置を示す位置情報を取得する。
【００５０】
つぎに、制御部７００は、記憶部１０１を参照して、取得した位置情報に基づいて、対象パスの送信セルおよび対象パスの受信セルの各位置を基準にして設けられ、取得した特徴情報についての大きさを示す情報に応じた大きさの枠を示す枠情報を生成する。枠は、例えば、レイアウト設計用のＣＡＤのコンピュータ空間上に生成される。枠情報は、レイアウト設計用のＣＡＤのコンピュータ空間上に枠が生成されるような枠の情報である。枠の形状は、矩形形状や円形形状などが挙げられる。
【００５１】
より具体的には、制御部７００は、例えば、送信セルおよび受信セルの位置情報に基づいて、送信セルおよび受信セルを囲う最大外形の仮検出枠を示す仮枠情報を生成する。制御部７００は、取得した特徴情報についての大きさに関する情報を取得する。制御部７００は、例えば、取得した特徴情報に対応するマージン量を取得する。制御部７００は、仮検出枠にマージン量を含めた検出枠を示す枠情報を生成する。なお、検出枠の生成例については、図８から図１０を用いて後述する。
【００５２】
制御部７００は、対象パス上の各セルの位置情報に基づいて、対象パス上の各セルが、枠情報が示す枠に含まれるか否かを判定する。なお、判定例については、図１１を用いて後述する。
【００５３】
制御部７００は、対象パス上のいずれかのセルが、枠情報が示す検出枠に含まれないと判定された場合、対象パス上の各セル間を繋ぐ配線が迂回する可能性があることを示す情報を出力する。出力例については、図１２を用いて後述する。
【００５４】
制御部７００は、対象パス上のすべてのセルが、検出枠に含まれると判定した場合、対象回路に含まれる別のパスを新たに対象パスとして、タイミングレポート３０６から新たに各種情報を取得する。検出枠の大きさはパス別に異なるため、パス別に生成される。対象回路に含まれるすべてのパスについて、検出枠に含まれると判定された場合、図３に示すように、配線処理の工程が行われる。
【００５５】
図８は、矩形形状の検出枠の生成例を示す説明図である。制御部７００は、例えば、矩形形状の仮検出枠８０１を示す仮枠情報を生成する。仮検出枠８０１は、例えば、送信セルと受信セルを囲う最大外形の矩形形状の枠である。制御部７００は、例えば、仮枠情報が示す仮検出枠８０１にマージン量を加味した検出枠８０２を示す枠情報を生成する。図８の例では、マージン量が「×２」である。
【００５６】
ｘ軸のプラス方向およびマイナス方向と、ｙ軸のプラス方向およびマイナス方向と、の両方に、仮検出枠８０１×１／２×１／２の長さ大きくした検出枠８０２が生成される。図８において、「ｄ０／２＝ｄ１×２」である。検出枠８０２は、ｙ軸にプラス方向およびマイナス方向との合計で１倍になる。これにより、仮検出枠８０１の２倍の面積の検出枠８０２が得られる。
【００５７】
図８の例では、制御部７００は、ｘ軸のプラス方向とマイナス方向に均等に仮検出枠８０１を大きくし、ｘ軸とｙ軸とを均等に仮検出枠８０１を大きくしているが、これに限らない。例えば、ｘ軸のプラス方向およびマイナス方向との比率やｘ軸とｙ軸との比率などが、利用者の操作入力によって異なるようにしてもよい。
【００５８】
図９は、円形形状の検出枠の生成例を示す説明図である。制御部７００は、例えば、受信セルおよび送信セルを示す位置情報に基づいて、受信セルと送信セルとの中間位置を算出する。つぎに、制御部７００は、例えば、中間位置を中心に、送信セルおよび受信セルの最大外形を囲う最小の円形形状の検出枠を示す仮枠情報を生成する。仮検出枠９０１は、例えば、送信セルと受信セルを囲う最大外形の円形形状の枠である。
【００５９】
制御部７００は、例えば、仮枠情報が示す仮検出枠９０１にマージン量を加味した検出枠９０２を示す枠情報を生成する。図９には、図８と同様に、マージン量が「×２」の場合を例に挙げてある。
【００６０】
図１０は、仮検出枠よりも検出枠が小さくなる一例を示す説明図である。例えば、パスの送受信間距離が遠すぎる場合、論理段数が多すぎる場合、周波数が高すぎる場合などには、例えば、仮検出枠１００１よりも検出枠１００２が小さくなることがある。図１０の例では、送受信間距離が遠すぎるため、検出枠１００２が小さくなる。
【００６１】
図１１は、判定例を示す説明図である。制御部７００は、例えば、検出枠に素子が含まれているか否かを判定する。図１１（１）および図１１（２）に示すように、制御部７００は、例えば、検出枠に素子の一部が含まれていない場合、検出枠に素子が含まれていないと判定する。また、制御部７００は、検出枠に素子のすべてが含まれている場合、検出枠に素子が含まれていると判定する。
【００６２】
図１１（１）に示すように、矩形形状の検出枠１１０１の場合に、制御部７００は、素子Ａおよび素子Ｂが検出枠１１０１内に含まれていると判定する。制御部７００は、素子Ｃは検出枠１１０１内に含まれていないと判定する。
【００６３】
図１１（２）に示すように円形形状の検出枠１１０２の場合に、制御部７００は、素子Ａおよび素子Ｂが検出枠１１０２内に含まれていると判定する。制御部７００は、素子Ｃは検出枠１１０２内に含まれていないと判定する。
【００６４】
図１２は、チェック結果出力例を示す説明図である。制御部７００は、検出枠１１０１内に含まれていないと判定された素子Ｃは配線処理終了後に迂回配線またはタイミングエラーの可能性があることを示す情報を出力する。図１２の例では、素子Ｃが検出枠１１０１の範囲外であるため、制御部７００は、配線処理後に、迂回配線によるタイミングエラーの可能性があり、素子Ｃを検出枠内に配置することを指示するチェック結果３０８を出力する。制御部７００は、例えば、チェック結果３０８を記憶部１０１などに記憶させてもよいし、チェック結果３０８の内容をディスプレイ４０９などの画面に出力してもよい。
【００６５】
（情報処理装置１００が行う処理手順例を示すフローチャート）
図１３は、情報処理装置が行う処理手順例を示すフローチャートである。情報処理装置１００は、配置処理後のタイミング検証によって得られるタイミングレポート３０６を取得する（ステップＳ１３０１）。
【００６６】
つぎに、情報処理装置１００は、タイミングレポート３０６から、対象パスの中間セルの位置情報、送信セルおよび受信セルの位置情報、対象パスの特徴情報を取得する（ステップＳ１３０２）。そして、情報処理装置１００は、機械学習ＤＢ３０１からマージン量を抽出する（ステップＳ１３０３）。つぎに、情報処理装置１００は、送信セルおよび受信セルの位置情報に基づいて仮検出枠を生成する（ステップＳ１３０４）。
【００６７】
情報処理装置１００は、マージン量を加味した検出枠を生成する（ステップＳ１３０５）。つぎに、情報処理装置１００は、迂回配線チェックを行う（ステップＳ１３０６）。情報処理装置１００は、チェック結果を生成して出力し（ステップＳ１３０７）、一連の処理を終了する。
【００６８】
以上説明したように、情報処理装置１００は、パスの特徴別の枠の大きさ情報を参照して、対象パスの特徴に応じた大きさの枠内にパス上の各セルが含まれるかにより該各セル間の配線が迂回する可能性があるかを判定する。これにより、情報処理装置１００は、配線処理前に、セルの配置によって生じうる迂回配線をチェックする。したがって、情報処理装置１００は、設計の手戻りを抑制することができる。ひいては、設計時間の短縮化を図ることができる。また、情報処理装置１００は、パスの特徴情報に応じて検出枠の大きさを決定するため、迂回配線の検出精度の向上を図ることができる。
【００６９】
特徴情報は、パスを動作させるクロックの周波数を示す情報と、パス上の受信セルとパス上の終点セルとの間の距離を示す情報と、パス上のゲート段数を示す情報との少なくともいずれかを含む。例えば、クロックの周波数が大きいほど、検出枠が小さくなるようにする。また、パス上の受信セルとパス上の終点セルとの間の距離が遠いほど、検出枠が小さくなるようにする。ゲート段数が大きいほど、検出枠が小さくなるようにする。
【００７０】
また、情報処理装置１００は、対象パスの特徴情報および対象回路の仕様に関する特徴情報の組み合わせについてのサイズ情報に基づく大きさの検出枠に、対象パスの各セルが含まれるか否かを判定する。これにより、情報処理装置１００は、パスの特徴と、回路の仕様に応じて検出枠のサイズを決定することができる。また、仕様に関する特徴情報は、例えば、ターゲットＦＰＧＡの識別情報である。ＦＰＧＡの種類によってＦＰＧＡの内部構成が異なる。例えば、迂回配線が発生し易いようなＦＰＧＡの内部構成の場合に、検出枠が小さすぎると、ＦＰＧＡに回路を構成させることができないことがある。また、例えば、迂回配線が発生しにくいようなＦＰＧＡの内部構成の場合に、検出枠が大きすぎると、タイミングエラーとなる迂回配線が検出できなくなる。このように、パスの特徴情報だけでなく、ＦＰＧＡの種類によって検出枠のサイズ情報を変更することにより、迂回配線の検出精度の向上を図ることができる。
【００７１】
なお、本実施の形態で説明した迂回配線チェック方法は、予め用意された迂回配線チェックプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本迂回配線チェックプログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、迂回配線チェックプログラムは、インターネット等のネットワークを介して配布してもよい。
【００７２】
また、本実施の形態で説明した情報処理装置は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した情報処理装置の機能をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、情報処理装置を製造することができる。
【符号の説明】
【００７３】
１００  情報処理装置
１０１  記憶部
１１１  特徴情報
１１２  位置情報
１２１，１２５  送信セル
１２２，１２６  受信セル
１２３，１２４  中間セル
１３０，８０２，９０２，１００２，１１０１，１１０２  検出枠
２００  パス
３００  過去設計情報
３０１  機械学習ＤＢ
３０２，３０４  ネットリスト
３０３  タイミング制約情報
３０５  レイアウトデータ
３０６，３０７  タイミングレポート
３０８  チェック結果
７００  制御部
８０１，９０１，１００１  仮検出枠
【図１】
2018112995.tif 000003
【図２】
2018112995.tif 000004
【図３】
2018112995.tif 000005
【図４】
2018112995.tif 000006
【図５】
2018112995.tif 000007
【図６】
2018112995.tif 000008
【図７】
2018112995.tif 000009
【図８】
2018112995.tif 000010
【図９】
2018112995.tif 000011
【図１０】
2018112995.tif 000012
【図１１】
2018112995.tif 000013
【図１２】
2018112995.tif 000014
【図１３】
2018112995.tif 000015