(57)【要約】【課題】モデルを効率よく生成すること。【解決手段】情報処理装置１００は、複数のパスのそれぞれのパスの特徴量を記憶する。パスの特徴量は、例えば、パスの素子の座標値に関する第１の特徴量を含む。また、パスの特徴量は、第１の特徴量とは異なる第２の特徴量を含む。情報処理装置１００は、複数のパスのそれぞれのパスの第１の特徴量に基づいて、複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類する。情報処理装置１００は、複数のパスを複数の範囲に分類した結果と、それぞれのパスの第２の特徴量とに基づいて、複数のパスを複数のクラスに分類する。情報処理装置１００は、複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出する。情報処理装置１００は、抽出したパスの論理段数および特徴量を教師データとしてモデルを生成する。【選択図】図１
2020064538.tif 000002
【特許請求の範囲】
【請求項１】
複数のパスのそれぞれのパスの素子の座標値に関する第１の特徴量に基づいて、前記複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類し、
前記複数のパスを前記複数の範囲に分類した結果と、前記それぞれのパスの前記第１の特徴量以外の第２の特徴量とに基づいて、前記複数のパスを複数のクラスに分類し、
前記複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出し、
抽出した前記パスの論理段数および特徴量を教師データとして、対象のパスの特徴量に応じて、前記対象のパスの論理段数の上限値を出力するモデルを生成する、
処理をコンピュータに実行させることを特徴とする生成プログラム。
【請求項２】
パスの素子の座標値に関する第１の特徴量が増加した場合の信号遅延の増加量を、前記第１の特徴量の増加量ごとに対応付けて表す対応情報を参照して、前記第１の特徴量が増加した場合の信号遅延の増加量が、論理段数が１段増加した場合の信号遅延の増加量よりも小さくなるという条件を満たす、前記第１の特徴量の増加量に基づいて、前記所定のレンジを設定する、処理を前記コンピュータに実行させることを特徴とする請求項１に記載の生成プログラム。
【請求項３】
前記パスの前記第１の特徴量は、前記パスの素子の座標値を統計処理して得られた量である、ことを特徴とする請求項１または２に記載の生成プログラム。
【請求項４】
前記パスの前記第２の特徴量は、前記パスのレジスタの数、前記パスのルックアップテーブルの数、および、前記パスの信号の周波数のうちの少なくともいずれかを含む、ことを特徴とする請求項１〜３のいずれか一つに記載の生成プログラム。
【請求項５】
前記複数のパスは、所定のタイミング制約を満たすタイミングパスである、ことを特徴とする請求項１〜４のいずれか一つに記載の生成プログラム。
【請求項６】
前記複数のパスを前記複数のクラスに分類する処理は、前記複数のパスのうち、前記複数の範囲のうちの同じ範囲に分類され、かつ、同じ前記第２の特徴量を有するパスを、前記複数のクラスのうちの同じクラスに分類する、ことを特徴とする請求項１〜５のいずれか一つに記載の生成プログラム。
【請求項７】
前記それぞれのパスの前記第２の特徴量に基づいて、前記複数のパスを複数のグループに分類し、
前記グループごとの１以上のパスのそれぞれのパスの第１の特徴量に基づいて、前記グループごとの１以上のパスを前記複数の範囲に分類し、
前記グループごとの１以上のパスを前記複数の範囲に分類した結果に基づいて、前記グループごとの１以上のパスを前記複数のクラスに分類する、
処理を前記コンピュータに実行させることを特徴とする請求項１〜６のいずれか一つに記載の生成プログラム。
【請求項８】
複数のパスのそれぞれのパスの素子の座標値に関する第１の特徴量に基づいて、前記複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類し、
前記複数のパスを前記複数の範囲に分類した結果と、前記それぞれのパスの前記第１の特徴量以外の第２の特徴量とに基づいて、前記複数のパスを複数のクラスに分類し、
前記複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出し、
抽出した前記パスの論理段数および特徴量を教師データとして、対象のパスの特徴量に応じて、前記対象のパスの論理段数の上限値を出力するモデルを生成する、
処理をコンピュータが実行することを特徴とする生成方法。
【請求項９】
複数のパスのそれぞれのパスの素子の座標値に関する第１の特徴量に基づいて、前記複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類し、
前記複数のパスを前記複数の範囲に分類した結果と、前記それぞれのパスの前記第１の特徴量以外の第２の特徴量とに基づいて、前記複数のパスを複数のクラスに分類し、
前記複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出し、
抽出した前記パスの論理段数および特徴量を教師データとして、対象のパスの特徴量に応じて、前記対象のパスの論理段数の上限値を出力するモデルを生成する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成プログラム、生成方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）への回路の構成設定などが行われた後に、設計者の要求したクロック周波数において回路が正しく動作するか否かを確認するために、タイミング解析を行い、タイミングパス学習モデルを用いたタイミングエラー要因解析が行われる。ＦＰＧＡは、例えば、製造後に購入者や設計者が内部に所望の回路構成を設定可能な集積回路の一種である。
【０００３】
タイミングパス学習モデルは、対象のタイミングパスの論理段数が何段までであれば、対象のタイミングパスがタイミング制約を満たすと推定されるのかを示し、タイミング制約上許容される対象のタイミングパスの論理段数を出力するためのモデルである。タイミングパス学習モデルは、例えば、タイミング制約を満たすタイミングパスに関する教師データに基づき、機械学習により生成される。
【０００４】
先行技術としては、例えば、予め設定された教師データに対し、別の教師データを追加する際、所定の距離関数に基づく距離が小さい教師データ同士を合成し、新たな教師データを再構成することにより、教師データの数の低減化を図るものがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−１８４６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、機械学習により、精度のよいタイミングパス学習モデルを効率よく生成することが難しい。例えば、教師データの数を多くすると、タイミングパス学習モデルを生成する際にかかる処理量および処理時間の増大化を招いてしまう。さらに、教師データの数を多くしても、タイミングパス学習モデルの精度が向上するとは限らない。
【０００７】
１つの側面では、本発明は、モデルを効率よく生成することを目的とする。
【課題を解決するための手段】
【０００８】
１つの実施態様によれば、複数のパスのそれぞれのパスの素子の座標値に関する第１の特徴量に基づいて、前記複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類し、前記複数のパスを前記複数の範囲に分類した結果と、前記それぞれのパスの前記第１の特徴量以外の第２の特徴量とに基づいて、前記複数のパスを複数のクラスに分類し、前記複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出し、抽出した前記パスの論理段数および特徴量を教師データとして、対象のパスの特徴量に応じて、前記対象のパスの論理段数の上限値を出力するモデルを生成する生成プログラムが提案される。
【発明の効果】
【０００９】
一態様によれば、モデルを効率よく生成することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態にかかる生成方法の一実施例を示す説明図である。
【図２】図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、パス情報テーブル３００の記憶内容の一例を示す説明図である。
【図４】図４は、遅延情報テーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、閾値情報テーブル５００の記憶内容の一例を示す説明図である。
【図６】図６は、情報処理装置１００の機能的構成例を示すブロック図である。
【図７】図７は、モデルを生成する一例を示す説明図（その１）である。
【図８】図８は、モデルを生成する一例を示す説明図（その２）である。
【図９】図９は、モデルを生成する一例を示す説明図（その３）である。
【図１０】図１０は、モデルをタイミング解析に利用する一例を示す説明図である。
【図１１】図１１は、所定のレンジを設定する一例を示す説明図（その１）である。
【図１２】図１２は、所定のレンジを設定する一例を示す説明図（その２）である。
【図１３】図１３は、所定のレンジを設定する一例を示す説明図（その３）である。
【図１４】図１４は、全体処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、図面を参照して、本発明にかかる生成プログラム、生成方法、および情報処理装置の実施の形態を詳細に説明する。
【００１２】
（実施の形態にかかる生成方法の一実施例）
図１は、実施の形態にかかる生成方法の一実施例を示す説明図である。情報処理装置１００は、ＦＰＧＡを利用して実現された対象の回路に対するタイミング解析を支援するためのコンピュータである。情報処理装置１００は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００１３】
従来、対象の回路に対するタイミング解析は、人手で実施される場合がある。この場合、回路規模の増大化に伴い、タイミング解析を実施する解析者にかかる作業負担および作業時間の増大化を招く。また、解析者は、タイミング解析の習熟度によっては、タイミング解析を精度よく実施することができない。
【００１４】
このため、機械学習を利用して、タイミング解析を支援することが望まれる。例えば、機械学習を利用して、タイミングパス学習モデルを生成し、タイミングパス学習モデルによりタイミング解析を支援する技術が考えられる。タイミングパス学習モデルは、対象のタイミングパスの論理段数が何段までであれば、対象のタイミングパスがタイミング制約を満たすと推定されるのかを示し、タイミング制約上許容される対象のタイミングパスの論理段数を出力するためのモデルである。タイミング制約は、タイミングパスの信号の遅延量が許容される範囲であり、タイミングパスを含む回路が正しく動作可能であることを示す条件である。
【００１５】
しかしながら、精度のよいタイミングパス学習モデルを効率よく生成することは難しい。例えば、機械学習に用いる、タイミング制約を満たすタイミングパスに関する教師データの数が少なすぎると、生成されるタイミングパス学習モデルの精度が悪くなる。具体的には、タイミング制約を満たさない論理段数を、タイミング制約上許容される論理段数として学習して、タイミングパス学習モデルを生成してしまうことがある。結果として、タイミングパス学習モデルを利用したタイミング解析において、実際にはタイミング制約を満たさないタイミングパスを、タイミング制約を満たすタイミングパスであると判断する可能性があり、タイミング解析の精度の低下を招いてしまうことがある。
【００１６】
これに対し、機械学習に用いる、タイミング制約を満たすタイミングパスに関する教師データの数を多くすることが考えられるが、教師データの数を多くするほど、タイミングパス学習モデルを生成する際にかかる処理量および処理時間の増大化を招いてしまう。具体的には、教師データの数が１〜３万程度になると、タイミングパス学習モデルを生成する際にかかる処理時間が７〜１０日程度になる。近年はＴｉｍｅ  ｔｏ  Ｍａｒｋｅｔが短くなる傾向があり、タイミングパス学習モデルを生成する際にかかる処理量および処理時間の増大化を招くことは好ましくない。
【００１７】
さらに、教師データの数を多くしても、タイミングパス学習モデルの精度が向上するとは限らない。具体的には、機械学習に、ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）を用いる場合が考えられる。この場合、タイミング制約を満たす論理段数の最大値ではなく、２乗誤差最小化により得られたタイミング制約を満たす論理段数の代表値を、タイミング制約上許容される論理段数として学習して、タイミングパス学習モデルを生成することになる。結果として、タイミングパス学習モデルを利用したタイミング解析において、実際にはタイミング制約を満たすタイミングパスを、タイミング制約を満たさないタイミングパスであると判断する可能性があり、タイミング解析の精度の低下を招いてしまうことがある。
【００１８】
そこで、本実施の形態では、対象のタイミングパスの特徴量に応じて、対象のタイミングパスの論理段数の最大値を出力することができるモデルの生成に用いられる教師データの数の低減化を図ることができる生成方法について説明する。以下の説明では、タイミングパスを、単に「パス」と表記する場合がある。
【００１９】
図１の例では、情報処理装置１００は、複数のパスのそれぞれのパスの特徴量を記憶する。複数のパスは、タイミング制約を満たす。パスは、信号が流れる経路である。パスは、例えば、レジスタ間の経路１２０などである。パスは、例えば、ＦＰＧＡ１１０に実装される。パスは、具体的には、ＦＰＧＡ１１０の素子を用いて実装される。
【００２０】
パスの特徴量は、例えば、パスの素子の座標値に関する第１の特徴量を含む。第１の特徴量は、例えば、パスの素子の座標値を統計処理して得られた量である。第１の特徴量は、具体的には、パスの素子の座標値の平均値である。座標値は、例えば、ＦＰＧＡ１１０上の位置を示す値である。また、パスの特徴量は、第１の特徴量とは異なる第２の特徴量を含む。第２の特徴量は、パスの素子の座標値に関さない。第２の特徴量は、例えば、パスのレジスタの数、パスのルックアップテーブルの数、および、パスの信号の周波数のうちの少なくともいずれかを含む。
【００２１】
また、情報処理装置１００は、所定のレンジ単位で分割された、座標値に関する複数の範囲を記憶する。複数の範囲は、それぞれ、第１の特徴量に基づくパスの分類先として用いられる。複数の範囲は、それぞれ、タイミング解析にかかる信号遅延の観点からは、同じ範囲に分類されたパス間の第１の特徴量の差異を無視可能になる範囲である。複数の範囲は、それぞれ、第１の特徴量の差異が信号遅延に与える影響が、論理段数が１段増加した場合に信号遅延に与える影響よりも小さいと推定される範囲である。所定のレンジは、例えば、座標値に関する所定の幅である。所定のレンジは、例えば、複数の範囲を規定するために、人手または自動で設定される。
【００２２】
（１−１）情報処理装置１００は、複数のパスのそれぞれのパスの第１の特徴量に基づいて、複数のパスを、座標値に関する複数の範囲に分類する。情報処理装置１００は、例えば、パス１〜４の第１の特徴量が同じ範囲に含まれる場合、パス１〜４を同じ範囲に分類する。
【００２３】
（１−２）情報処理装置１００は、複数のパスを複数の範囲に分類した結果と、それぞれのパスの第２の特徴量とに基づいて、複数のパスを複数のクラスに分類する。情報処理装置１００は、例えば、パス１，２の第２の特徴量が同じである場合、パス１，２を同じクラスＡに分類する。また、情報処理装置１００は、例えば、パス３，４の第２の特徴量が同じである場合、パス３，４を同じクラスＢに分類する。
【００２４】
（１−３）情報処理装置１００は、複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出する。情報処理装置１００は、クラスＡにおいて論理段数が最大のパス１を抽出する。また、情報処理装置１００は、クラスＢにおいて論理段数が最大のパス４を抽出する。
【００２５】
（１−４）情報処理装置１００は、抽出したパスの論理段数および特徴量を教師データとしてモデルを生成する。教師データは、入力データと、入力データに応じた正解データとを含む。教師データは、例えば、抽出したパスの特徴量を入力データとして含み、抽出したパスの論理段数を正解データとして含む。モデルは、対象のパスの特徴量に応じて、対象のパスの論理段数の上限値を出力する。情報処理装置１００は、例えば、抽出したパス１，４などの論理段数および特徴量を教師データとしてモデルを生成する。
【００２６】
これにより、情報処理装置１００は、対象のパスの特徴量に応じて対象のパスの論理段数の上限値を精度よく出力可能なモデルを、効率よく生成することができる。
【００２７】
情報処理装置１００は、例えば、複数のパスを分類した複数のクラスのそれぞれのクラスから抽出したパスの論理段数および特徴量を教師データとし、複数のパスのすべてのパスの論理段数および特徴量を教師データとせずに済むようにすることができる。このため、情報処理装置１００は、例えば、モデルの生成に用いる教師データの数の低減化を図ることができ、モデルの生成にかかる処理量および処理時間の低減化を図ることができる。また、情報処理装置１００は、モデルの生成にかかる消費電力の低減化も図ることができる。
【００２８】
また、情報処理装置１００は、複数のパスを複数のクラスに分類する際、タイミング解析にかかる信号遅延の観点から第１の特徴量の差異を無視可能であり、かつ、同じ第２の特徴量を有するパスを、同じクラスにまとめることができる。このため、情報処理装置１００は、複数のクラスのそれぞれのクラスから、少なくとも論理段数が最大のパスを抽出して、抽出したパスの論理段数および特徴量を教師データとすれば、モデルの精度を担保可能にすることができる。
【００２９】
そして、情報処理装置１００は、生成したモデルを、タイミング解析に利用可能にすることができる。情報処理装置１００は、例えば、生成したモデルを、タイミングエラー要因解析に利用可能にすることができる。結果として、情報処理装置１００は、精度のよいモデルにより、タイミング解析の精度向上を図ることができる。また、情報処理装置１００は、解析者のタイミング解析の習熟度に関わらず、タイミング解析の精度向上を図ることができる。また、情報処理装置１００は、解析者にかかる作業負担の低減化を図ることができる。また、情報処理装置１００は、回路の物理設計にかかる所要時間を削減することができる。
【００３０】
ここでは、情報処理装置１００が、パスの特徴量として、第１の特徴量を記憶する場合について説明したが、これに限らない。例えば、情報処理装置１００が、パスの特徴量として、パスの素子の座標値を記憶し、第１の特徴量を算出する場合があってもよい。また、ここでは、情報処理装置１００が、複数の範囲を記憶する場合について説明したが、これに限らない。例えば、情報処理装置１００が、所定のレンジを記憶し、複数の範囲を自動で設定する場合があってもよい。
【００３１】
（情報処理装置１００のハードウェア構成例）
次に、図２を用いて、情報処理装置１００のハードウェア構成例について説明する。
【００３２】
図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。図２において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００３３】
ここで、ＣＰＵ２０１は、情報処理装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。メモリ２０２は、例えば、図３〜図５に後述する各種テーブルを記憶する。
【００３４】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３は、例えば、モデムやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどである。
【００３５】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、情報処理装置１００から着脱可能であってもよい。記録媒体２０５は、例えば、図３〜図５に後述する各種テーブルを記憶してもよい。
【００３６】
情報処理装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を複数有していてもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００３７】
（パス情報テーブル３００の記憶内容）
次に、図３を用いて、パス情報テーブル３００の記憶内容の一例について説明する。パス情報テーブル３００は、例えば、図２に示した情報処理装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００３８】
図３は、パス情報テーブル３００の記憶内容の一例を示す説明図である。図３に示すように、パス情報テーブル３００は、タイミングパスと、期待値と、周波数と、素子種別と、素子平均座標とのフィールドを有する。パス情報テーブル３００は、パスごとに各フィールドに情報を設定することにより、パス情報がレコードとして記憶される。
【００３９】
タイミングパスのフィールドには、タイミング制約を満たすパスを識別する情報が設定される。期待値のフィールドには、パスの論理段数が設定される。周波数のフィールドには、パスの信号の周波数が設定される。周波数の単位は、例えば、ＭＨｚである。
【００４０】
素子種別のフィールドは、さらに、ＦＦ（ＦｌｉｐＦｌｏｐ）数と、ＬＵＴ（ＬｏｏｋＵｐＴａｂｌｅ）数とのフィールドを有する。ＦＦ数のフィールドには、パスのレジスタの数が設定される。ＬＵＴ数のフィールドには、パスのルックアップテーブルの数が設定される。素子平均座標のフィールドは、さらに、Ｘと、Ｙとのフィールドを有する。Ｘのフィールドには、パスの素子のＸ座標値の平均値が設定される。Ｙのフィールドには、パスの素子のＹ座標値の平均値が設定される。
【００４１】
（遅延情報テーブル４００の記憶内容）
次に、図４を用いて、遅延情報テーブル４００の記憶内容の一例について説明する。遅延情報テーブル４００は、例えば、図２に示した情報処理装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４２】
図４は、遅延情報テーブル４００の記憶内容の一例を示す説明図である。図４に示すように、遅延情報テーブル４００は、座標変動量と、遅延量とのフィールドを有する。遅延情報テーブル４００は、座標変動量ごとに各フィールドに情報を設定することにより、遅延情報がレコードとして記憶される。
【００４３】
座標変動量のフィールドには、座標値に関する第１の特徴量の変動量の範囲が設定される。座標変動量のフィールドには、例えば、素子平均座標の変動量の範囲が設定される。遅延量のフィールドには、第１の特徴量を変動させた場合の遅延量の変動量の範囲が設定される。遅延量の単位は、ｐｓである。
【００４４】
（閾値情報テーブル５００の記憶内容）
次に、図５を用いて、閾値情報テーブル５００の記憶内容の一例について説明する。閾値情報テーブル５００は、例えば、図２に示した情報処理装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４５】
図５は、閾値情報テーブル５００の記憶内容の一例を示す説明図である。図５に示すように、閾値情報テーブル５００は、遅延量のフィールドを有する。閾値情報テーブル５００は、フィールドに情報を設定することにより、閾値情報がレコードとして記憶される。遅延量のフィールドには、論理段数が１段増加した場合の遅延量の変動量の範囲が設定される。遅延量の単位は、ｐｓである。
【００４６】
（情報処理装置１００の機能的構成例）
次に、図６を用いて、情報処理装置１００の機能的構成例について説明する。
【００４７】
図６は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、記憶部６００と、取得部６０１と、設定部６０２と、分類部６０３と、抽出部６０４と、生成部６０５と、出力部６０６とを含む。
【００４８】
記憶部６００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。以下では、記憶部６００が、情報処理装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部６００が、情報処理装置１００とは異なる装置に含まれ、記憶部６００の記憶内容が情報処理装置１００から参照可能である場合があってもよい。
【００４９】
取得部６０１〜出力部６０６は、制御部の一例として機能する。取得部６０１〜出力部６０６は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００５０】
記憶部６００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部６００は、例えば、複数のパスのそれぞれのパスの特徴量を記憶する。複数のパスは、所定のタイミング制約を満たすタイミングパスである。パスは、回路上のレジスタ間の経路、回路上の入力端子からレジスタまでの経路、および、回路上のレジスタから出力端子までの経路などのうちのいずれかである。パスは、例えば、ＦＰＧＡの素子を用いて実装される。
【００５１】
パスの特徴量は、例えば、パスの素子の座標値に関する第１の特徴量を含む。第１の特徴量は、例えば、パスの素子の座標値を統計処理して得られた量である。第１の特徴量は、具体的には、パスの素子の座標値の平均値である。座標値は、例えば、ＦＰＧＡ上の位置を示す値である。パスの素子の座標値は、平面座標系の２軸のそれぞれの軸の座標値を含む。第１の特徴量は、パスの素子の座標値を軸ごとに統計処理して得られた量を含む。
【００５２】
また、パスの特徴量は、第１の特徴量とは異なる第２の特徴量を含む。第２の特徴量は、パスの素子の座標値に関さない特徴量である。第２の特徴量は、例えば、パスのレジスタの数、パスのルックアップテーブルの数、および、パスの信号の周波数のうちの少なくともいずれかを含む。
【００５３】
記憶部６００は、例えば、所定のレンジ単位で分割された、座標値に関する複数の範囲を記憶する。複数の範囲は、それぞれ、第１の特徴量に基づくパスの分類先として用いられる。複数の範囲は、それぞれ、タイミング解析にかかる信号遅延の観点からは、同じ範囲に分類されたパス間の第１の特徴量の差異を無視可能になる範囲である。複数の範囲は、それぞれ、第１の特徴量の差異が信号遅延に与える影響が、論理段数が１段増加した場合に信号遅延に与える影響よりも小さいと推定される範囲である。複数の範囲は、平面座標系の２軸のそれぞれの軸を所定のレンジ単位で分割して得られた、平面座標系における範囲を含む。
【００５４】
所定のレンジは、パスの素子の座標値に関する第１の特徴量が増加した場合の信号遅延の増加量が、論理段数が１段増加した場合の信号遅延の増加量よりも小さくなるという条件を満たす、第１の特徴量の増加量に基づいて設定される。所定のレンジは、例えば、上記条件を満たす第１の特徴量の増加量よりも小さい範囲の中から設定される。所定のレンジは、例えば、上記条件を満たす第１の特徴量の増加量よりも小さい範囲の中で、相対的に大きい値であることが好ましい場合がある。
【００５５】
記憶部６００は、例えば、対応情報を記憶する。対応情報は、パスの素子の座標値に関する第１の特徴量が増加した場合の信号遅延の増加量を、第１の特徴量の増加量ごとに対応付けて表す情報である。記憶部６００は、例えば、論理段数が１段増加した場合の信号遅延の増加量を記憶する。
【００５６】
記憶部６００は、例えば、モデルを記憶する。モデルは、対象のパスの特徴量が入力されると、対象のパスの論理段数の上限値を出力する。モデルに入力される特徴量は、例えば、第１の特徴量および第２の特徴量を含む。モデルに入力される特徴量は、第１の特徴量の代わりに、複数の範囲のうち対象のパスに対応する範囲を含んでもよい。記憶部６００は、具体的には、図３〜図５に示した各種テーブルを記憶する。
【００５７】
取得部６０１は、各機能部の処理に用いられる各種情報を取得する。取得部６０１は、取得した各種情報を、記憶部６００に記憶し、または、各機能部に出力する。また、取得部６０１は、記憶部６００に記憶しておいた各種情報を、各機能部に出力してもよい。取得部６０１は、例えば、ユーザの操作入力に基づき、各種情報を取得する。取得部６０１は、例えば、情報処理装置１００とは異なる装置から、各種情報を受信してもよい。
【００５８】
取得部６０１は、具体的には、ユーザの操作入力に基づき、複数のパスのそれぞれのパスの特徴量を取得し、記憶部６００に記憶してもよい。取得部６０１は、より具体的には、取得した複数のパスのそれぞれのパスの特徴量を、パス情報テーブル３００を用いて記憶する。取得部６０１は、具体的には、ユーザの操作入力に基づき、所定のレンジ単位で分割された、座標値に関する複数の範囲を取得し、記憶部６００に記憶してもよい。取得部６０１は、具体的には、ユーザの操作入力に基づき、所定のレンジを取得し、記憶部６００に記憶してもよい。
【００５９】
取得部６０１は、具体的には、ユーザの操作入力に基づき、対応情報を取得し、記憶部６００に記憶してもよい。取得部６０１は、より具体的には、取得した対応情報を、遅延情報テーブル４００を用いて記憶する。取得部６０１は、具体的には、ユーザの操作入力に基づき、論理段数が１段増加した場合の信号遅延の増加量を取得し、記憶部６００に記憶してもよい。取得部６０１は、より具体的には、取得した信号遅延の増加量を、閾値情報テーブル５００を用いて記憶する。
【００６０】
設定部６０２は、所定のレンジを設定する。設定部６０２は、例えば、対応情報を参照して、第１の特徴量が増加した場合の信号遅延の増加量が、論理段数が１段増加した場合の信号遅延の増加量よりも小さくなるという条件を満たす、第１の特徴量の増加量に基づいて、所定のレンジを設定する。設定部６０２は、具体的には、第１の特徴量の増加量より小さい所定のレンジを設定する。所定のレンジを設定する一例は、具体的には、図１１〜図１３を用いて後述する。これにより、設定部６０２は、複数の範囲を特定可能にすることができる。
【００６１】
設定部６０２は、所定のレンジに基づいて、複数の範囲を設定し、記憶部６００に記憶してもよい。設定部６０２は、例えば、座標値を所定のレンジ単位で分割した複数の範囲を設定する。設定部６０２は、具体的には、それぞれの軸を所定のレンジ単位で分割して得られた、平面座標系における複数の範囲を設定する。これにより、設定部６０２は、複数のパスの分類先となる範囲を利用可能にすることができる。
【００６２】
分類部６０３は、複数のパスを複数のクラスに分類する。分類部６０３は、例えば、複数のパスのそれぞれのパスの第１の特徴量に基づいて、複数のパスを、複数の範囲に分類する。そして、分類部６０３は、例えば、複数のパスを複数の範囲に分類した結果と、それぞれのパスの第２の特徴量とに基づいて、複数のパスを複数のクラスに分類する。
【００６３】
分類部６０３は、具体的には、素子の座標値の平均値が、複数の範囲のいずれかの範囲に含まれるパスを、当該範囲に分類する。そして、分類部６０３は、具体的には、複数のパスのうち、複数の範囲のうちの同じ範囲に分類され、かつ、同じ第２の特徴量を有するパスを、複数のクラスのうちの同じクラスに分類する。
【００６４】
分類部６０３は、より具体的には、複数のパスのうち、Ｘ座標値がＸ軸の原点から１レンジ目、かつ、Ｙ座標値がＹ軸の原点から２レンジ目であるパスｐ１１〜ｐ１６がある場合、パスｐ１１〜ｐ１６を、範囲（１，２）に分類する。そして、分類部６０３は、より具体的には、範囲（１，２）に分類したパスｐ１１〜ｐ１６のうち、パスｐ１１〜ｐ１３が同じ第２の特徴量ｆ１を有する場合、パスｐ１１〜ｐ１３を、クラス｛ｆ１，範囲（１，２）｝に分類する。複数のパスを複数のクラスに分類する一例は、具体的には、図７〜図９を用いて後述する。
【００６５】
これにより、分類部６０３は、タイミング解析にかかる信号遅延の観点から、第１の特徴量の差異を無視可能であり、かつ、同じ第２の特徴量を有するパスを、同じクラスにまとめることができる。このため、分類部６０３は、複数のクラスのそれぞれのクラスから、少なくとも論理段数が最大のパスを抽出して、抽出したパスの論理段数および特徴量を教師データとすれば、モデルの精度を担保可能にすることができる。
【００６６】
また、分類部６０３は、例えば、それぞれのパスの第２の特徴量に基づいて、複数のパスを複数のグループに分類してもよい。次に、分類部６０３は、例えば、グループごとの１以上のパスのそれぞれのパスの第１の特徴量に基づいて、グループごとの１以上のパスを複数の範囲に分類してもよい。そして、分類部６０３は、例えば、グループごとの１以上のパスを複数の範囲に分類した結果に基づいて、グループごとの１以上のパスを複数のクラスに分類してもよい。
【００６７】
分類部６０３は、具体的には、同じ第２の特徴量を有する１以上のパスを同じグループに分類する。次に、分類部６０３は、具体的には、グループごとに、素子の座標値の平均値が、複数の範囲のいずれかの範囲に含まれるパスを、当該範囲に分類する。そして、分類部６０３は、具体的には、グループごとの１以上のパスを複数の範囲に分類した結果を、グループごとの１以上のパスを複数のクラスに分類した結果として設定する。
【００６８】
分類部６０３は、より具体的には、複数のパスのうち、パスｐ２１〜ｐ２６が同じ第２の特徴量ｆ２を有する場合、パスｐ２１〜ｐ２６を、グループ（ｆ２）に分類する。ここで、例えば、グループ（ｆ２）に分類したパスｐ２１〜ｐ２６のうち、Ｘ座標値がＸ軸の原点から１レンジ目、かつ、Ｙ座標値がＹ軸の原点から２レンジ目という共通点を有するパスｐ２１〜ｐ２３が存在する場合がある。この場合、分類部６０３は、パスｐ２１〜ｐ２３を、クラス｛ｆ２，範囲（１，２）｝に分類する。
【００６９】
これにより、分類部６０３は、タイミング解析にかかる信号遅延の観点から、第１の特徴量の差異を無視可能であり、かつ、同じ第２の特徴量を有するパスを、同じクラスにまとめることができる。このため、分類部６０３は、複数のクラスのそれぞれのクラスから、少なくとも論理段数が最大のパスを抽出して、抽出したパスの論理段数および特徴量を教師データとすれば、モデルの精度を担保可能にすることができる。
【００７０】
抽出部６０４は、複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出する。抽出部６０４は、例えば、クラスにおいて論理段数が最大のパスが複数ある場合、論理段数が最大のいずれか一つのパスを抽出すればよい。これにより、抽出部６０４は、論理段数および特徴量を教師データとして採用するパスを、モデルの精度を担保する観点から過不足なく抽出することができる。
【００７１】
生成部６０５は、抽出したパスの論理段数および特徴量を教師データとして、モデルを生成する。モデルは、対象のパスの特徴量に応じて、対象のパスの論理段数の上限値を出力する。特徴量は、例えば、第１の特徴量および第２の特徴量を含む。生成部６０５は、例えば、ＳＶＭにより、抽出したパスの特徴量を入力データとし、抽出したパスの論理段数を正解データとし、モデルを生成する。これにより、生成部６０５は、対象のパスの特徴量に応じて、対象のパスの論理段数の上限値を精度よく出力可能なモデルを生成することができる。
【００７２】
出力部６０６は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶である。出力部６０６は、例えば、生成したモデルを出力する。これにより、出力部６０６は、モデルをタイミング解析に利用可能にすることができる。
【００７３】
（情報処理装置１００の動作例）
次に、図７〜図１３を用いて、情報処理装置１００の動作例について説明する。具体的には、まず、図７〜図９を用いて、モデルを生成する一例について説明する。次に、図１０を用いて、モデルをタイミング解析に利用する一例について説明する。そして、図１１〜図１３を用いて、モデルを生成する際に用いられる所定のレンジを設定する一例について説明する。ここで、図７〜図９の説明に移行する。
【００７４】
図７〜図９は、モデルを生成する一例を示す説明図である。図７において、情報処理装置１００は、モデルを生成する際に用いられる所定のレンジ＝５に設定する。所定のレンジは、Ｘ軸とＹ軸とに個別に設定されてもよい。所定のレンジを設定する一例については、具体的には、図１１〜図１３を用いて後述する。
【００７５】
情報処理装置１００は、パス情報テーブル３００を読み出す。ここで、パス情報テーブル３００に記憶されたパスＡ〜Ｄが、タイミング制約を満たすため、パスＡ〜Ｄの論理段数および特徴量は、モデルを生成するための教師データとして利用可能である。
【００７６】
プロセスの微細化により、ＦＰＧＡの内部構造や内部配線が、信号遅延に与える影響が大きくなる傾向がある。このため、同じ周波数かつ同じ素子種別のパスＡ〜Ｄであっても、素子の座標値の平均値が異なると信号遅延が異なり、タイミング制約上許容される論理段数も異なる場合がある。従って、単に、同じ周波数かつ同じ素子種別のパスＡ〜Ｄのうち、いずれか一つのパスの論理段数および特徴量を教師データとして利用するだけでは、精度のよいモデルを生成することができるとは限らない。
【００７７】
一方で、パスＡ〜Ｄの論理段数および特徴量を、すべて、教師データとして利用すると、モデルを生成する際にかかる処理量および処理時間の増大化を招く。さらに、教師データは、タイミング制約上許容される論理段数の最大値を含むとは限らず、タイミング制約上許容される論理段数の一例を含む。このため、タイミング制約上許容される論理段数の最大値ではなく、タイミング制約上許容される論理段数の代表値を学習して、モデルを生成することになるため、モデルの精度の低下を招く。
【００７８】
そこで、情報処理装置１００は、パスＡ〜Ｄを、タイミング解析にかかる信号遅延の観点からは、パス間の素子の座標値の平均値の差異を無視可能になる範囲に分類する。これにより、情報処理装置１００は、パス間の素子の座標値の平均値の観点から、教師データとして利用せずに済む可能性がある、パスの論理段数および特徴量を特定するための指標を得ることができる。
【００７９】
図７の例では、情報処理装置１００は、パスＡ〜ＤのＸ座標値の平均値およびＹ座標値の平均値を、所定のレンジ＝５の間隔でＸ軸およびＹ軸に関する０以上の整数の番号に変換し、変換した結果に基づいて、パスＡ〜Ｄを素子平均座標に関するクラスに分類する。例えば、Ｘ軸に関する番号ｎは、Ｘ軸を所定のレンジ＝５の間隔で分割した場合の５ｎ以上かつ５ｎ＋１未満の範囲に対応する。同様に、Ｙ軸に関する番号ｍは、Ｙ軸を所定のレンジ＝５の間隔で分割した場合の５ｍ以上かつ５ｍ＋１未満の範囲に対応する。
【００８０】
情報処理装置１００は、具体的には、パスＡのＸ座標値の平均値「５２．６」が、番号１０の範囲に含まれるため、パスＡのＸ座標値の平均値「５２．６」を番号１０に変換する。同様に、情報処理装置１００は、パスＡのＹ座標値の平均値「１５．２」を、番号３に変換する。そして、情報処理装置１００は、パスＡを、変換した番号を組み合わせた名称「１０−３」で識別される素子平均座標クラスに分類する。情報処理装置１００は、名称「１０−３」を、パスＡの新特徴量として、表７００に記憶し、パスＡを分類した結果を記憶しておく。
【００８１】
情報処理装置１００は、同様に、パスＢを、名称「１０−３」で識別される素子平均座標クラスに分類する。情報処理装置１００は、名称「１０−３」を、パスＢの新特徴量として、表７００に記憶し、パスＢを分類した結果を記憶しておく。情報処理装置１００は、同様に、パスＣを、名称「１１−８」で識別される素子平均座標クラスに分類する。情報処理装置１００は、名称「１１−８」を、パスＣの新特徴量として、表７００に記憶し、パスＣを分類した結果を記憶しておく。情報処理装置１００は、同様に、パスＤを、名称「１１−６」で識別される素子平均座標クラスに分類する。情報処理装置１００は、名称「１１−６」を、パスＤの新特徴量として、表７００に記憶し、パスＤを分類した結果を記憶しておく。ここで、図８の説明に移行する。
【００８２】
図８において、情報処理装置１００は、パスＡ〜Ｄを分類した素子平均座標クラスと、パスＡ〜Ｄの特徴量に基づいて、パスＡ〜Ｄをさらにクラスタリングする。図８の例では、情報処理装置１００は、例えば、表７００において、名称「１０−３」と、周波数「１００」と、ＦＦ数「２」と、ＬＵＴ数「２」との組み合わせが対応付けられたパスの分類先を、クラスαと設定する。
【００８３】
また、情報処理装置１００は、例えば、表７００において、名称「１１−８」と、周波数「１００」と、ＦＦ数「２」と、ＬＵＴ数「２」との組み合わせが対応付けられたパスの分類先を、クラスβと設定する。また、情報処理装置１００は、例えば、表７００において、名称「１１−６」と、周波数「１００」と、ＦＦ数「２」と、ＬＵＴ数「２」との組み合わせが対応付けられたパスの分類先を、クラスγと設定する。
【００８４】
そして、情報処理装置１００は、同じ名称「１０−３」で識別される素子平均座標クラスに分類され、かつ、同じ特徴量を有するパスＡ，Ｂを、クラスαに分類する。同様に、情報処理装置１００は、パスＣを、クラスβに分類する。同様に、情報処理装置１００は、パスＤを、クラスγに分類する。これにより、情報処理装置１００は、教師データとして利用せずに済む可能性がある、パスの論理段数および特徴量を特定するための指標を得ることができる。ここで、図９の説明に移行する。
【００８５】
図９において、情報処理装置１００は、クラスごとに論理段数が最大になるパスを抽出する。ここで、例えば、クラスは、タイミング解析にかかる信号遅延の観点から、パス間の素子の座標値の平均値の差異を無視可能であり、かつ、特徴量が同一であるパスが分類されている。このため、クラスにおいて論理段数が最大ではないパスの論理段数および特徴量は、教師データとして設定しなくても、モデルの精度の低下を招くことはない。むしろ、クラスαにおいて論理段数が最大ではないパスの論理段数および特徴量は、教師データとして設定してしまうと、モデルの精度の低下を招く可能性がある。
【００８６】
従って、情報処理装置１００は、例えば、クラスαから論理段数が最大になるパスを１つ抽出し、抽出したパスの論理段数および特徴量を、教師データとして設定する。ここで、情報処理装置１００は、抽出しなかったパスの論理段数および特徴量については教師データとして設定しない。同様に、情報処理装置１００は、例えば、クラスβから論理段数が最大になるパスを１つ抽出し、抽出したパスの論理段数および特徴量を、教師データとして設定する。同様に、情報処理装置１００は、例えば、クラスγから論理段数が最大になるパスを１つ抽出し、抽出したパスの論理段数および特徴量を、教師データとして設定する。
【００８７】
これにより、情報処理装置１００は、対象のパスの特徴量に応じて対象のパスの論理段数の上限値を精度よく出力可能なモデルを、効率よく生成することができる。情報処理装置１００は、例えば、モデルの生成に用いる教師データの数の低減化を図ることができ、モデルの生成にかかる処理量および処理時間の低減化を図ることができる。また、情報処理装置１００は、モデルの生成にかかる消費電力の低減化も図ることができる。ここで、図１０の説明に移行する。
【００８８】
図１０は、モデルをタイミング解析に利用する一例を示す説明図である。図１０において、グラフ１０００は、従来の装置が、ＳＶＭにより、複数のパスのそれぞれのパスの論理段数および特徴量を、教師データとして設定して生成したモデル１００１を示している。図中の●は、教師データを示す。この場合、従来の装置は、いずれかの特徴量に対して、タイミング制約上許容される論理段数の最大値ではなく、タイミング制約上許容される論理段数の代表値を学習して、モデルを生成してしまう。
【００８９】
このため、グラフ１０００に示すように、モデル１００１は、いずれかの特徴量に応じて、タイミング制約上許容される論理段数の最大値を出力することができない。結果として、モデル１００１を、タイミング解析に利用する場合、実際にはタイミング制約を満たすパスについて、タイミング制約を満たさないと判断してしまう可能性が生じることになる。
【００９０】
従って、従来の装置は、モデルの生成にかかる処理量および処理時間を低減することができない上に、タイミング解析の精度の低下を招くことがある。従来の装置は、例えば、実際にはタイミング制約を満たすパスに対して、解析者に検討を要求してしまい、解析者の作業負担および作業時間の増大化を招くことがある。
【００９１】
これに対し、情報処理装置１００は、複数のパスから一部のパスを抽出し、ＳＶＭにより、抽出したパスの論理段数および特徴量を、教師データとして設定してモデルを生成することができる。グラフ１０１０は、情報処理装置１００が生成したモデル１０１１を示している。図中の●は、教師データを示す。この場合、情報処理装置１００は、いずれかの特徴量に対して、タイミング制約上許容される論理段数の最大値を学習して、モデルを生成することができる。
【００９２】
このため、グラフ１０１０に示すように、モデル１０１１は、いずれかの特徴量に応じて、タイミング制約上許容される論理段数の最大値を出力可能な、精度のよいモデルになる。結果として、モデル１０１１を、タイミング解析に利用する場合、パスがタイミング制約を満たすか否かについて精度よく判断することができる。その上、情報処理装置１００は、モデルの生成にかかる処理量および処理時間を低減することができる。
【００９３】
図１１〜図１３は、所定のレンジを設定する一例を示す説明図である。図１１において、表１１００に、パス情報テーブル３００の一部のレコードを一例として示す。パスＡ，Ｂは、周波数や素子種別などが同一であるが、素子平均座標に差異がある２つのパスである。
【００９４】
上述したように、同じ周波数かつ同じ素子種別のパスであっても、素子の座標値の平均値が異なると信号遅延が異なり、タイミング制約上許容される論理段数も異なる場合がある。一方で、上述したように、パス間の素子の座標値の平均値の差異が、ある程度の範囲に収まるのであれば、タイミング解析にかかる信号遅延の観点からは、パス間の素子の座標値の平均値の差異を無視可能になる場合もある。
【００９５】
このため、パスＡ，Ｂの素子の座標値の平均値の差異が、タイミング解析にかかる信号遅延の観点から無視可能な大きさであるのか、または、タイミング制約上許容される論理段数に影響を与える大きさであるのかを、正確に規定することが望まれる。情報処理装置１００は、具体的には、タイミング解析にかかる信号遅延の観点から、パス間の素子の座標値の平均値の差異を無視可能になる範囲を、所定のレンジにより規定することになる。ここで、図１２の説明に移行する。
【００９６】
図１２において、情報処理装置１００は、遅延情報テーブル４００および閾値情報テーブル５００を参照して、所定のレンジを設定する。閾値情報テーブル５００は、論理段数が１段増加した場合、遅延量が、３０〜１５０［ｐｓ］の範囲で増加することを示し、最小で３０［ｐｓ］増加することを示している。また、遅延情報テーブル４００は、素子の座標値の平均値が、６〜１０の範囲で増加した場合、遅延量が、６〜２５［ｐｓ］増加することを示し、最大で２５［ｐｓ］だけ増加することを示している。
【００９７】
ここで、素子の座標値の平均値が６〜１０の範囲で増加し、遅延量が２５［ｐｓ］増加したとしても、論理段数１段分の遅延量の増加量３０［ｐｓ］より小さくなる。換言すれば、素子の座標値の平均値が６〜１０の範囲で増加したとしても、論理段数には影響しないことになる。従って、素子の座標値の平均値の差異が、１０以下である場合、タイミング解析にかかる信号遅延の観点からは、素子の座標値の平均値の差異を無視可能であると判断される。
【００９８】
このため、図１２の例では、情報処理装置１００は、所定のレンジ＝１０を設定する。情報処理装置１００は、具体的には、下記式（１）を満たす素子の座標値の平均値の増加量の最大値よりも小さい範囲で、所定のレンジを設定すればよい。また、所定のレンジは、下記式（１）を満たす素子の座標値の平均値の増加量の最大値よりも小さい範囲で、相対的に大きい値であることが好ましい。相対的に大きい値が好ましい理由については、図１３を用いて後述する。
【００９９】
［素子の座標値の平均値の増加量に応じた遅延量の増加量の最大値］≦［論理段数１段分の遅延量の増加量の最小値］                                        ・・・（１）
【０１００】
以下の説明では、所定のレンジ＝１０を「正しいレンジ」と表記する場合がある。情報処理装置１００が、正しいレンジを用いて生成したモデル１２０１を、グラフ１２００に示す。図中の●は、教師データを示す。この場合、情報処理装置１００は、正しいレンジを設定したため、教師データの数を削減した上に、精度のよいモデルを生成することができている。
【０１０１】
ここで、所定のレンジに、上記式（１）を満たす素子の座標値の平均値の増加量の最大値よりも大きい、間違ったレンジを設定してしまった場合についても説明する。遅延情報テーブル４００は、素子の座標値の平均値が、１１〜の範囲で増加した場合、遅延量が、３０〜２００［ｐｓ］増加することを示し、最大で２００［ｐｓ］増加することを示している。
【０１０２】
ここで、素子の座標値の平均値が１１〜の範囲で増加し、遅延量が３０〜２００［ｐｓ］増加すると、論理段数１段分の遅延量の増加量３０［ｐｓ］より大きくなる。換言すれば、素子の座標値の平均値が１１〜の範囲で増加すると、論理段数に影響する場合がある。従って、素子の座標値の平均値の差異が、１１以上である場合には、タイミング解析にかかる信号遅延の観点から、素子の座標値の平均値の差異を無視することはできない。このため、１１以上のレンジは、間違ったレンジであると判断される。
【０１０３】
例えば、間違ったレンジ１１を用いると、グラフ１２１０に示すモデル１２１１が生成される。図中の●は、教師データを示す。この場合、間違ったレンジを設定したため、利用することが好ましい教師データを削減してしまうことになり、精度の悪いモデルが生成されてしまう。
【０１０４】
例えば、正しいレンジに基づくモデル１２０１では、符号１２２０に示す位置で、パスの特徴量に対して、タイミング制約上許容される論理段数の最大値を精度よく出力することができる。これに対し、間違ったレンジに基づくモデル１２１１では、符号１２３０に示す位置で、パスの特徴量に対して、タイミング制約上許容されない論理段数を出力してしまう可能性がある。次に、図１３の説明に移行する。
【０１０５】
図１３において、情報処理装置１００が、正しいレンジを用いて生成したモデル１２０１を、グラフ１２００に示す。図中の●は、教師データを示す。グラフ１２００は、図１２と同様である。この場合、情報処理装置１００は、正しいレンジを設定したため、教師データの数を削減した上に、精度のよいモデルを生成することができている。
【０１０６】
ここで、所定のレンジに、上記式（１）を満たす素子の座標値の平均値の増加量の最大値よりも小さい範囲で、相対的に小さい値を設定してしまった場合についても説明する。遅延情報テーブル４００は、素子の座標値の平均値が、０〜５の範囲で増加した場合、遅延量が、０〜５［ｐｓ］増加することを示し、最大で５［ｐｓ］増加することを示している。
【０１０７】
ここで、素子の座標値の平均値が０〜５の範囲で増加し、遅延量が０〜５［ｐｓ］増加したとしても、論理段数１段分の遅延量の増加量３０［ｐｓ］より小さくなる。換言すれば、素子の座標値の平均値が０〜５の範囲で増加したとしても、論理段数には影響しないことになる。従って、素子の座標値の平均値の差異が、５以下である場合、タイミング解析にかかる信号遅延の観点からは、素子の座標値の平均値の差異を無視可能であると判断される。
【０１０８】
このため、情報処理装置１００が、所定のレンジ＝５を設定する場合も考えられる。しかしながら、この場合では、素子の座標値の平均値の差異が６〜１０であると、素子の座標値の平均値の差異を無視可能ではないと判断されてしまう。結果として、情報処理装置１００は、所定のレンジ＝５に基づき、実際には利用しなくてもモデルの精度を担保可能である教師データを、モデルの生成に利用してしまうことがある。
【０１０９】
例えば、レンジ５を用いると、グラフ１３００に示すモデル１３０１が生成される。図中の●は、教師データを示す。この場合、レンジ５を設定したため、実際には利用しなくてもモデルの精度を担保可能である教師データを、モデルの生成に利用してしまうことがある。結果として、モデルの生成にかかる処理量および処理時間の低減化の度合いは、正しいレンジを設定した場合に比べて小さくなる。このことから、所定のレンジは、上記式（１）を満たす素子の座標値の平均値の増加量の最大値よりも小さい範囲で、相対的に大きい値であることが好ましい。
【０１１０】
（全体処理手順）
次に、図１４を用いて、情報処理装置１００が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１１１】
図１４は、全体処理手順の一例を示すフローチャートである。図１４において、情報処理装置１００は、パスを規定するＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）データを取得する（ステップＳ１４０１）。次に、情報処理装置１００は、ＣＡＤデータに基づいて、パスごとの特徴量を抽出し、パス情報テーブル３００に記憶する（ステップＳ１４０２）。そして、情報処理装置１００は、パス情報テーブル３００に基づいて、パスごとの特徴量のうちの素子平均座標を、所定のレンジ単位で再定義し、新特徴量に変換する（ステップＳ１４０３）。
【０１１２】
次に、情報処理装置１００は、パス情報テーブル３００の特徴量、および、変換した新特徴量に基づいて、複数のパスをクラス分けする（ステップＳ１４０４）。そして、情報処理装置１００は、クラスごとに論理段数が最大のパスを抽出する（ステップＳ１４０５）。次に、情報処理装置１００は、抽出したパスの論理段数および特徴量を、教師データとして設定する（ステップＳ１４０６）。そして、情報処理装置１００は、教師データを利用してタイミングパス学習モデルを生成する（ステップＳ１４０７）。
【０１１３】
次に、情報処理装置１００は、タイミングパス学習モデルを記憶する（ステップＳ１４０８）。そして、情報処理装置１００は、全体処理を終了する。これにより、情報処理装置１００は、タイミングパス学習モデルを、効率よく生成することができる。そして、情報処理装置１００は、タイミングパス学習モデルを、タイミング解析に利用可能にすることができる。結果として、情報処理装置１００は、タイミング解析の精度向上を図ることができる。
【０１１４】
以上説明したように、情報処理装置によれば、複数のパスのそれぞれのパスの第１の特徴量に基づいて、複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類することができる。情報処理装置によれば、複数のパスを複数の範囲に分類した結果と、それぞれのパスの第２の特徴量とに基づいて、複数のパスを複数のクラスに分類することができる。情報処理装置によれば、複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出することができる。情報処理装置によれば、抽出したパスの論理段数および特徴量を教師データとして、対象のパスの特徴量に応じて、対象のパスの論理段数の上限値を出力するモデルを生成することができる。これにより、情報処理装置は、対象のパスの特徴量に応じて対象のパスの論理段数の上限値を精度よく出力可能なモデルを、効率よく生成することができる。
【０１１５】
情報処理装置によれば、第１の特徴量が増加した場合の信号遅延の増加量が、論理段数が１段増加した場合の信号遅延の増加量よりも小さくなるという条件を満たす、第１の特徴量の増加量に基づいて、所定のレンジを設定することができる。これにより、情報処理装置は、モデルの精度を担保可能な範囲で、教師データの数の低減化を可能にすることができる。
【０１１６】
情報処理装置によれば、パスの第１の特徴量として、パスの素子の座標値を統計処理して得られた量を用いることができる。これにより、情報処理装置は、パスの素子の座標値に、外れ値があっても、パスの素子の座標値の変動による遅延量への影響を考慮しやすくすることができる。
【０１１７】
情報処理装置によれば、パスの素子の座標値に、平面座標系の２軸のそれぞれの軸の座標値を含むことができる。情報処理装置によれば、パスの第１の特徴量に、パスの素子の座標値を軸ごとに統計処理して得られた量を含むことができる。情報処理装置によれば、複数の範囲に、それぞれの軸を所定のレンジ単位で分割して得られた、平面座標系における範囲を含むことができる。これにより、情報処理装置は、平面座標系の座標値に対して適用可能にすることができる。
【０１１８】
情報処理装置によれば、パスの第２の特徴量に、パスのレジスタの数、パスのルックアップテーブルの数、および、パスの信号の周波数のうちの少なくともいずれかを含むことができる。これにより、情報処理装置は、遅延に影響する、パスのレジスタの数、パスのルックアップテーブルの数、および、パスの信号の周波数などの特徴量を考慮可能にすることができる。
【０１１９】
情報処理装置によれば、複数のパスとして、所定のタイミング制約を満たすパスを用いることができる。これにより、情報処理装置は、所定のタイミング制約を満たさないパスを用いず、複数のパスのそれぞれのパスの論理段数および特徴量を、教師データとして好ましい情報にすることができる。
【０１２０】
情報処理装置によれば、複数のパスを複数のクラスに分類する処理は、複数のパスのうち、複数の範囲のうちの同じ範囲に分類され、かつ、同じ第２の特徴量を有するパスを、複数のクラスのうちの同じクラスに分類することができる。これにより、情報処理装置は、利用しなくてよい教師データを特定しやすくなるように、複数のパスを複数のクラスに分類することができる。
【０１２１】
情報処理装置によれば、それぞれのパスの第２の特徴量に基づいて、複数のパスを複数のグループに分類することができる。情報処理装置によれば、グループごとの１以上のパスのそれぞれのパスの第１の特徴量に基づいて、グループごとの１以上のパスを複数の範囲に分類することができる。情報処理装置によれば、グループごとの１以上のパスを複数の範囲に分類した結果に基づいて、グループごとの１以上のパスを複数のクラスに分類することができる。これにより、情報処理装置は、対象のパスの特徴量に応じて対象のパスの論理段数の上限値を精度よく出力可能なモデルを、効率よく生成することができる。
【０１２２】
情報処理装置によれば、パスとして、回路上のレジスタ間の経路、回路上の入力端子からレジスタまでの経路、および、回路上のレジスタから出力端子までの経路などのうちのいずれかを用いることができる。これにより、情報処理装置は、回路上のレジスタ間の経路、回路上の入力端子からレジスタまでの経路、および、回路上のレジスタから出力端子までの経路を利用して、モデルを生成することができる。
【０１２３】
なお、本実施の形態で説明した生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した生成プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した生成プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１２４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１２５】
（付記１）複数のパスのそれぞれのパスの素子の座標値に関する第１の特徴量に基づいて、前記複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類し、
前記複数のパスを前記複数の範囲に分類した結果と、前記それぞれのパスの前記第１の特徴量以外の第２の特徴量とに基づいて、前記複数のパスを複数のクラスに分類し、
前記複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出し、
抽出した前記パスの論理段数および特徴量を教師データとして、対象のパスの特徴量に応じて、前記対象のパスの論理段数の上限値を出力するモデルを生成する、
処理をコンピュータに実行させることを特徴とする生成プログラム。
【０１２６】
（付記２）パスの素子の座標値に関する第１の特徴量が増加した場合の信号遅延の増加量を、前記第１の特徴量の増加量ごとに対応付けて表す対応情報を参照して、前記第１の特徴量が増加した場合の信号遅延の増加量が、論理段数が１段増加した場合の信号遅延の増加量よりも小さくなるという条件を満たす、前記第１の特徴量の増加量に基づいて、前記所定のレンジを設定する、処理を前記コンピュータに実行させることを特徴とする付記１に記載の生成プログラム。
【０１２７】
（付記３）前記パスの前記第１の特徴量は、前記パスの素子の座標値を統計処理して得られた量である、ことを特徴とする付記１または２に記載の生成プログラム。
【０１２８】
（付記４）前記パスの素子の座標値は、平面座標系の２軸のそれぞれの軸の座標値を含み、
前記パスの前記第１の特徴量は、前記パスの素子の座標値を前記軸ごとに統計処理して得られた量を含み、
前記複数の範囲は、前記それぞれの軸を前記所定のレンジ単位で分割して得られた、前記平面座標系における範囲を含む、ことを特徴とする付記３に記載の生成プログラム。
【０１２９】
（付記５）前記パスの前記第２の特徴量は、前記パスのレジスタの数、前記パスのルックアップテーブルの数、および、前記パスの信号の周波数のうちの少なくともいずれかを含む、ことを特徴とする付記１〜４のいずれか一つに記載の生成プログラム。
【０１３０】
（付記６）前記複数のパスは、所定のタイミング制約を満たすタイミングパスである、ことを特徴とする付記１〜５のいずれか一つに記載の生成プログラム。
【０１３１】
（付記７）前記複数のパスを前記複数のクラスに分類する処理は、前記複数のパスのうち、前記複数の範囲のうちの同じ範囲に分類され、かつ、同じ前記第２の特徴量を有するパスを、前記複数のクラスのうちの同じクラスに分類する、ことを特徴とする付記１〜６のいずれか一つに記載の生成プログラム。
【０１３２】
（付記８）前記それぞれのパスの前記第２の特徴量に基づいて、前記複数のパスを複数のグループに分類し、
前記グループごとの１以上のパスのそれぞれのパスの第１の特徴量に基づいて、前記グループごとの１以上のパスを前記複数の範囲に分類し、
前記グループごとの１以上のパスを前記複数の範囲に分類した結果に基づいて、前記グループごとの１以上のパスを前記複数のクラスに分類する、
処理を前記コンピュータに実行させることを特徴とする付記１〜７のいずれか一つに記載の生成プログラム。
【０１３３】
（付記９）前記パスは、回路上のレジスタ間の経路、回路上の入力端子からレジスタまでの経路、および、回路上のレジスタから出力端子までの経路のうちのいずれかである、ことを特徴とする付記１〜８のいずれか一つに記載の生成プログラム。
【０１３４】
（付記１０）前記所定のレンジは、パスの素子の座標値に関する第１の特徴量が増加した場合の信号遅延の増加量が、論理段数が１段増加した場合の信号遅延の増加量よりも小さくなるという条件を満たす、前記第１の特徴量の増加量に基づいて設定される、ことを特徴とする付記１に記載の生成プログラム。
【０１３５】
（付記１１）複数のパスのそれぞれのパスの素子の座標値に関する第１の特徴量に基づいて、前記複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類し、
前記複数のパスを前記複数の範囲に分類した結果と、前記それぞれのパスの前記第１の特徴量以外の第２の特徴量とに基づいて、前記複数のパスを複数のクラスに分類し、
前記複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出し、
抽出した前記パスの論理段数および特徴量を教師データとして、対象のパスの特徴量に応じて、前記対象のパスの論理段数の上限値を出力するモデルを生成する、
処理をコンピュータが実行することを特徴とする生成方法。
【０１３６】
（付記１２）複数のパスのそれぞれのパスの素子の座標値に関する第１の特徴量に基づいて、前記複数のパスを、所定のレンジ単位で分割された、座標値に関する複数の範囲に分類し、
前記複数のパスを前記複数の範囲に分類した結果と、前記それぞれのパスの前記第１の特徴量以外の第２の特徴量とに基づいて、前記複数のパスを複数のクラスに分類し、
前記複数のクラスのそれぞれのクラスにおいて論理段数が最大のパスを抽出し、
抽出した前記パスの論理段数および特徴量を教師データとして、対象のパスの特徴量に応じて、前記対象のパスの論理段数の上限値を出力するモデルを生成する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【０１３７】
１０  番号
１１  レンジ
１００  情報処理装置
１１０  ＦＰＧＡ
１２０  経路
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
３００  パス情報テーブル
４００  遅延情報テーブル
５００  閾値情報テーブル
６００  記憶部
６０１  取得部
６０２  設定部
６０３  分類部
６０４  抽出部
６０５  生成部
６０６  出力部
７００，１１００  表
１０００，１０１０，１２００，１２１０，１３００  グラフ
１００１，１０１１，１２０１，１２１１，１３０１  モデル
【図１】
2020064538.tif 000003
【図２】
2020064538.tif 000004
【図３】
2020064538.tif 000005
【図４】
2020064538.tif 000006
【図５】
2020064538.tif 000007
【図６】
2020064538.tif 000008
【図７】
2020064538.tif 000009
【図８】
2020064538.tif 000010
【図９】
2020064538.tif 000011
【図１０】
2020064538.tif 000012
【図１１】
2020064538.tif 000013
【図１２】
2020064538.tif 000014
【図１３】
2020064538.tif 000015
【図１４】
2020064538.tif 000016