(57)【要約】      （修正有）【課題】設計者の弱点を補完する教育講座を提供することが可能な設計者教育講座検索プログラムを提供する。【解決手段】設計者教育講座検索装置は、各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルＭを用いて、設計者によって設計された第１の回路内のパスのタイミングエラーの要因を特定する。設計者教育講座検索装置は、第１の回路内のパスのうち、特定した要因のタイミングエラーが発生したパスの数に基づいて、第１の回路の設計者のスキルランクを決定する。設計者教育講座検索装置は、回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部を参照して、決定したスキルランクと第１の回路の設計難易度とに対応する教育講座を検索する。設計者教育講座検索装置は、検索した結果を出力する。【選択図】図１
2019152735.tif 000002
【特許請求の範囲】
【請求項１】
各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルを用いて、設計者によって設計された第１の回路内のパスのタイミングエラーの要因を特定し、
前記第１の回路内のパスのうち、特定した前記要因のタイミングエラーが発生したパスの数に基づいて、前記第１の回路の設計者のスキルランクを決定し、
回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部を参照して、決定した前記スキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索し、
検索した結果を出力する、
処理をコンピュータに実行させることを特徴とする設計者教育講座検索プログラム。
【請求項２】
前記機械学習モデルは、回路内のパスの特徴量と前記パスに含まれる素子の遅延量を合計した素子総遅延量との関係を学習した第１の機械学習モデルであり、
前記記憶部は、回路の設計難易度と、設計者の論理設計に関するスキルランクと、教育講座との対応関係を記憶しており、
前記特定する処理は、前記第１の機械学習モデルを用いて、前記第１の回路内のパスのタイミングエラーが、素子総遅延量に関するタイミングエラーであるか否かを特定し、
前記決定する処理は、前記第１の回路内の全パスの数に対する、素子総遅延量に関するタイミングエラーが発生したパスの数の割合に基づいて、前記第１の回路の設計者の論理設計に関するスキルランクを決定し、
前記検索する処理は、前記記憶部を参照して、決定した前記論理設計に関するスキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索する、
ことを特徴とする請求項１に記載の設計者教育講座検索プログラム。
【請求項３】
前記機械学習モデルは、回路内のパスの特徴量と前記パスに含まれる配線の遅延量を合計した配線総遅延量との関係を学習した第２の機械学習モデルであり、
前記記憶部は、回路の設計難易度と、設計者の物理設計に関するスキルランクと、教育講座との対応関係を記憶しており、
前記特定する処理は、前記第２の機械学習モデルを用いて、前記第１の回路内のパスのタイミングエラーが、配線総遅延量に関するタイミングエラーであるか否かを特定し、
前記決定する処理は、前記第１の回路内の全パスの数に対する、配線総遅延量に関するタイミングエラーが発生したパスの数の割合に基づいて、前記第１の回路の設計者の物理設計に関するスキルランクを決定し、
前記検索する処理は、前記記憶部を参照して、決定した前記物理設計に関するスキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索する、
ことを特徴とする請求項１または２に記載の設計者教育講座検索プログラム。
【請求項４】
前記第１の回路の設計難易度は、前記第１の回路の回路使用率または動作周波数の少なくともいずれかに応じて特定される、ことを特徴とする請求項１〜３のいずれか一つに記載の設計者教育講座検索プログラム。
【請求項５】
各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルを用いて、設計者によって設計された第１の回路内のパスのタイミングエラーの要因を特定し、
前記第１の回路内のパスのうち、特定した前記要因のタイミングエラーが発生したパスの数に基づいて、前記第１の回路の設計者のスキルランクを決定し、
回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部を参照して、決定した前記スキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索し、
検索した結果を出力する、
処理をコンピュータが実行することを特徴とする設計者教育講座検索方法。
【請求項６】
各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルを用いて、設計者によって設計された第１の回路内のパスのタイミングエラーの要因を特定し、
前記第１の回路内のパスのうち、特定した前記要因のタイミングエラーが発生したパスの数に基づいて、前記第１の回路の設計者のスキルランクを決定し、
回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部を参照して、決定した前記スキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索し、
検索した結果を出力する、
制御部を有することを特徴とする設計者教育講座を検索する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計者教育講座検索プログラム、設計者教育講座検索方法および設計者教育講座を検索する装置に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の半導体集積回路の設計には、デジタル回路設計のスキルが求められる。デジタル回路設計のスキルは、論理設計に関するスキルと物理設計に関するスキルとに分けられる。論理設計では、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、ＶＨＤＬ等を用いて回路の動きが記述される。物理設計では、セルの配置配線が行われる。
【０００３】
先行技術としては、例えば、３次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）装置の操作方法を操作者に習熟させるための３次元ＣＡＤ教育システムがある。３次元ＣＡＤ教育システムは、習熟度測定用問題に対する回答となる操作を受け付けて、操作に対応する３次元ＣＡＤモデルデータを作成し、３次元モデルデータから設計手法手順およびコマンド操作組み合わせ手順を抽出する。３次元ＣＡＤ教育システムは、抽出された設計手法手順を、標準設計手法手順と比較して不一致を検出し、抽出されたコマンド操作組み合わせ手順を、標準コマンド操作組み合わせ手順と比較して不一致を検出する。３次元ＣＡＤ教育システムは、検出された両不一致に基づいて操作における非習熟点を判断し、非習熟点に基づいて、複数の補強用教材のうちから操作を行った者に提示すべき補強用教材を選択して出力する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１７９８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、設計者に適した教育講座を提供することが難しい。例えば、設計者がどのスキルをどの程度保有しているのかを把握できなければ、設計者の弱点を補完する教育プランニングを行うことは困難である。
【０００６】
一つの側面では、本発明は、設計者の弱点を補完する教育講座を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルを用いて、設計者によって設計された第１の回路内のパスのタイミングエラーの要因を特定し、前記第１の回路内のパスのうち、特定した前記要因のタイミングエラーが発生したパスの数に基づいて、前記第１の回路の設計者のスキルランクを決定し、回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部を参照して、決定した前記スキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索し、検索した結果を出力する、設計者教育講座検索プログラムが提供される。
【発明の効果】
【０００８】
本発明の一側面によれば、設計者の弱点を補完する教育講座を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる設計者教育講座検索方法の一実施例を示す説明図である。
【図２】図２は、エラー情報の具体例を示す説明図である。
【図３】図３は、素子総遅延量の改善策の一例を示す説明図である。
【図４】図４は、配線総遅延量の改善策の一例を示す説明図である。
【図５】図５は、設計者教育講座検索システム５００のシステム構成例を示す説明図である。
【図６】図６は、設計者教育講座検索装置１０１のハードウェア構成例を示すブロック図である。
【図７】図７は、設計難易度テーブル５２０の記憶内容の一例を示す説明図である。
【図８】図８は、教育講座テーブル５３０の記憶内容の一例を示す説明図である。
【図９】図９は、設計者教育講座検索装置１０１の機能的構成例を示すブロック図である。
【図１０】図１０は、素子総遅延量学習モデルに関する説明図である。
【図１１】図１１は、配線総遅延量学習モデルに関する説明図である。
【図１２】図１２は、エラー要因リスト１２００の記憶内容の一例を示す説明図である。
【図１３】図１３は、設計者教育講座検索結果画面１３００の画面例を示す説明図である。
【図１４】図１４は、設計者教育講座検索装置１０１の設計者教育講座検索手順の一例を示すフローチャート（その１）である。
【図１５】図１５は、設計者教育講座検索装置１０１の設計者教育講座検索手順の一例を示すフローチャート（その２）である。
【図１６】図１６は、素子総遅延量比較処理の具体的処理手順の一例を示すフローチャートである。
【図１７】図１７は、配線総遅延量比較処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかる設計者教育講座検索プログラム、設計者教育講座検索方法および設計者教育講座を検索する装置の実施の形態を詳細に説明する。以下の説明では、設計者教育講座を検索する装置を「設計者教育講座検索装置」と表記する場合がある。
【００１１】
（実施の形態）
図１は、実施の形態にかかる設計者教育講座検索方法の一実施例を示す説明図である。図１において、設計者教育講座検索装置１０１は、設計者に提供する教育講座を検索するコンピュータである。設計者とは、ＦＰＧＡ等の半導体集積回路の設計者である。教育講座とは、回路の設計に要するスキルを学ぶための講座である。回路の設計に要するスキルは、例えば、デジタル回路設計のスキルである。デジタル回路設計は、論理設計に関するスキルと、物理設計に関するスキルとに分けられる。なお、設計者にはロボットを含み、ロボットが設計を行い、教育講座にはロボットに学習させる学習内容を含む。
【００１２】
ここで、ＦＰＧＡの回路設計では、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ等の計算機において、設計者により設計されたＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）データの論理検証を行い、ＲＴＬデータとタイミング制約情報とに基づいて論理合成を行って、ネットリストを生成する。タイミング制約情報は、クロック周波数等の使用するＦＰＧＡのタイミング制約を示す。
【００１３】
つぎに、計算機において、生成したネットリストに対応する回路をＦＰＧＡ上に配置配線する処理を実行して配置配線データを生成する。そして、計算機において、生成した配置配線データに基づくタイミング検証を実行して、タイミング検証結果を出力する。タイミング検証結果は、例えば、タイミングエラーが発生したパスのエラー情報を含む。
【００１４】
設計者は、タイミング検証結果を参照して、タイミングエラーが発生しているパスについて、タイミングエラーを解消するための修正を行う。パスとは、回路内のセルから他のセルに辿り着くまでの経路である。セルとは、回路に含まれるＮＯＴゲート、ＡＮＤゲート、バッファ、ＩＮＶ（インバータ）、ＦＦ（フリップフロップ）、配線などの回路素子である。
【００１５】
ここで、タイミングエラーが発生したパスのエラー情報について説明する。
【００１６】
図２は、エラー情報の具体例を示す説明図である。図２において、エラー情報２００は、タイミングエラーが発生したパスを示す。タイミングエラーが発生したパスの識別子は「パス１」である。「パス１」の初段、すなわち、送信端の素子の識別子は「ＡＡＡ」である。「パス１」の最終段、すなわち、受信端の素子の識別子は「ＢＢＢ」である。また、「パス１」を通過する信号のクロック周期は８［ｎｓ］であり、タイミングエラーの大きさを示す「違反量」は−１．２［ｎｓ］である。
【００１７】
設計者は、エラー情報２００を参照して、「パス１」のタイミングエラーが発生した要因を解析する。例えば、設計者は、送信端の素子「ＡＡＡ」と受信端の素子「ＢＢＢ」との間にある中間素子である「素子Ａ」における遅延増加量が大きいことを把握する。つぎに、設計者は、素子「ＡＡＡ」と素子「ＢＢＢ」と「素子Ａ」との間の位置関係に注目する。
【００１８】
素子「ＡＡＡ」のＸ座標は「９」であり、素子「ＢＢＢ」のＸ座標が「１７」であるのに対し、「素子Ａ」のＸ座標は「１００」である。設計者は、「素子Ａ」が素子「ＡＡＡ」および「ＢＢＢ」と離隔して配置されるために、「素子Ａ」における遅延増加量が大きくなり、「パス１」にタイミングエラーが発生したと判断して、「素子Ａ」の配置を変更するように設計変更する。
【００１９】
このように、設計者は、タイミングエラーが発生したパスごとに解析／対策を行う。このため、例えば、管理者が、設計者のスキルレベルを評価するにあたり、設計者が設計した回路内で発生したタイミングエラーの全体傾向を把握することは難しい。タイミングエラーの全体傾向を把握できなければ、設計者がどのスキルをどの程度保有しているのかを把握することは難しい。
【００２０】
ここで、パスの遅延量は、素子総遅延量と配線総遅延量とに分離することができる。素子総遅延量は、パスに含まれる素子の遅延量を合計したものである。配線総遅延量は、パスに含まれる配線による遅延量を合計したものである。パスのタイミングエラーを解消するためには、素子総遅延量および／または配線総遅延量を改善する必要がある。
【００２１】
図３は、素子総遅延量の改善策の一例を示す説明図である。図３に示すように、パスに含まれる素子の段数が多くなると、素子総遅延量は大きくなる。この場合、設計者は、例えば、回路の機能を満足しつつ回路構成を変更して段数を減らすことで、素子総遅延量を改善することができる。
【００２２】
図４は、配線総遅延量の改善策の一例を示す説明図である。図４に示すように、パスに含まれる素子が離隔して配置されると、素子間が遠くなるため、配線総遅延量は大きくなる。この場合、設計者は、例えば、素子間が近くなるように、素子の配置位置を変更することで、配線総遅延量を改善することができる。
【００２３】
図３に示したような、素子総遅延量の改善には、論理設計に関するスキルが求められる。一方で、図４に示したような、配線総遅延量の改善には、物理設計に関するスキルが求められる。したがって、素子総遅延量、配線総遅延量のいずれを要因とするタイミングエラーが発生しているのかをパスごとに特定できれば、回路全体としてのタイミングエラーの傾向を把握可能となる。
【００２４】
回路全体としてのタイミングエラーの傾向を把握できれば、設計者がどのスキルをどの程度保有しているのかを判断することが可能となり、ひいては、設計者の弱点を補完する教育プランニングを行うことができる。教育プランニングとは、設計者の弱点を補完するために、どのような教育講座を提供すれば効果的であるかといったプランニングを行うことである。
【００２５】
しかしながら、ＦＰＧＡ等の半導体装置の微細化、高機能化にともなって、半導体装置に搭載される回路規模が増大し、回路設計時に発生するタイミングエラーの数が増加している。タイミングエラーの数が多くなると、エラー情報に示されるパスそれぞれについて、人手によりタイミングエラーの要因を特定することは困難である。
【００２６】
そこで、本実施の形態では、回路内のパスの特徴量と遅延量との関係を学習した機械学習モデルを用いて、設計者が設計した回路内のパスのタイミングエラーの要因を特定し、特定した結果に基づき設計者のスキルランクを推定することで、設計者の弱点を補完する教育講座を提供可能にする設計者教育講座検索方法について説明する。以下、設計者に提供する教育講座を検索するまでの一連の流れについて説明する。
【００２７】
（１）管理者は、テストデザインを選定する。管理者とは、設計者を管理する者であり、例えば、設計者の教育プランニングを行う者である。テストデザインとは、設計者のスキルレベルを判定するために、設計者に設計させる対象回路である。テストデザインは、テスト専用の回路であってもよく、製品となる回路であってもよい。
【００２８】
（２）管理者は、設計期間を設定する。設計期間とは、設計者に対して与えられるテストデザイン（対象回路）を設計するための期間である。設計期間は、任意に設定可能であり、例えば、数週間〜数ヶ月程度の期間が設定される。
【００２９】
（３）設計者は、テストデザインの設計を行う。テストデザインの設計は、論理設計と物理設計とに分けられる。論理設計と物理設計は、求められるスキルが異なるため、それぞれ異なる設計者により行われることが多い。論理設計を行う設計者は、１人であっても複数人であってもよい。同様に、物理設計を行う設計者は、１人であっても複数人であってもよい。
【００３０】
（４）設計者教育講座検索装置１０１は、機械学習モデルＭを用いて、第１の回路内のパスのタイミングエラーの要因を解析する。第１の回路は、設計者により設計された回路（対象回路）である。機械学習モデルＭは、回路内のパスの特徴量と遅延量との関係を学習したモデルである。具体的には、例えば、機械学習モデルＭは、各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習したモデルである。パスの遅延量は、例えば、パスの素子総遅延量または配線総遅延量である。
【００３１】
機械学習モデルＭは、過去に設計された各種回路の情報（例えば、配置配線データ）から抽出される教師データをもとに回帰分析等により生成される。ただし、機械学習アルゴリズムとして、既存のいかなるアルゴリズムを適用することにしてもよい。教師データは、例えば、タイミングエラーが起きていないパスの特徴量と遅延量との関係を示す。
【００３２】
特徴量は、例えば、周波数（クロック周期）、電圧、バルクサイズなどである。特徴量は、パスの初段の送信素子、パスの中間に含まれる中間素子およびパスの最終段の受信素子のＦＰＧＡ上のそれぞれの配置位置を示す情報をさらに含んでもよい。また、特徴量は、動作温度等のＦＰＧＡの動作条件を示す情報をさらに含んでもよい。
【００３３】
機械学習モデルＭによれば、第１の回路内のパスの特徴量に対する遅延量（例えば、素子総遅延量または配線総遅延量）の正解予想値を推定することができる。なお、機械学習モデルＭについての詳細な説明は、図９〜図１１を用いて後述する。
【００３４】
具体的には、例えば、設計者教育講座検索装置１０１は、第１の回路のタイミング検証結果に基づいて、第１の回路内のタイミングエラーが発生したパスの特徴量と機械学習モデルＭとから、遅延量（素子総遅延量または配線総遅延量）の正解予想値を推定する。そして、設計者教育講座検索装置１０１は、推定した正解予想値と、パスの遅延量に関する設計値とを比較した結果に基づいて、パスのタイミングエラーの要因を特定する。
【００３５】
パスの遅延量に関する設計値とは、タイミング検証結果のエラー情報から特定されるパスの遅延量である。例えば、エラー情報から特定されるパスの素子総遅延量（設計値）が正解予想値よりも大きければ、設計者教育講座検索装置１０１は、当該パスのタイミングエラーの要因として、素子総遅延量の増加にともなうタイミングエラーを特定する。すなわち、設計者教育講座検索装置１０１は、パスの素子総遅延量が大きくなってタイミングエラーが発生したと判断する。
【００３６】
なお、第１の回路のタイミング検証は、設計者教育講座検索装置１０１において実行されてもよく、また、設計者教育講座検索装置１０１とは異なる他のコンピュータにおいて実行されてもよい。
【００３７】
（５）設計者は、設計期間が終了するまで、上記（３）に戻って、タイミング検証結果をもとに、第１の回路の修正を行う。一方、設計期間が終了したら、設計者は、第１の回路の設計を終了する。
【００３８】
なお、設計者教育講座検索装置１０１は、設計者による設計が終了した第１の回路についてのみ、第１の回路内のパスのタイミングエラーの要因を解析することにしてもよい。すなわち、第１の回路内のパスのタイミングエラーの要因を解析する処理は、設計期間終了後に１回実施されることにしてもよい。
【００３９】
（６）設計者教育講座検索装置１０１は、設計者に提供する教育講座を検索する。具体的には、例えば、設計者教育講座検索装置１０１は、上記（４）において特定した結果に基づいて、第１の回路の設計者のスキルランクを決定する。設計者のスキルランクとは、設計者がどのスキルをどの程度保有しているのかを示す指標である。具体的には、例えば、設計者教育講座検索装置１０１は、第１の回路内のパスのうち、特定した要因のタイミングエラーが発生したパスの数に基づいて、第１の回路の設計者のスキルランクを決定する。
【００４０】
つぎに、設計者教育講座検索装置１０１は、記憶部１１０を参照して、決定したスキルランクと第１の回路の設計難易度とに対応する教育講座を検索する。記憶部１１０は、回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を示す情報を記憶する。第１の回路の設計難易度は、例えば、回路使用率、動作周波数、クロック本数などによって決まる。そして、設計者教育講座検索装置１０１は、検索した結果を出力する。
【００４１】
このように、設計者教育講座検索装置１０１によれば、設計者が設計した回路内のパスごとのタイミングエラーの要因特定を自動化して、回路全体としてのタイミングエラーの傾向を容易に把握することができる。また、回路全体としてのタイミングエラーの傾向から設計者のスキルランクを判断して、設計者の弱点を補完するために適した教育講座を提供可能となる。
【００４２】
（設計者教育講座検索システム５００のシステム構成例）
つぎに、図１に示した設計者教育講座検索装置１０１を含む設計者教育講座検索システム５００のシステム構成例について説明する。
【００４３】
図５は、設計者教育講座検索システム５００のシステム構成例を示す説明図である。図５において、設計者教育講座検索システム５００は、設計者教育講座検索装置１０１と、設計者端末５０１と、管理者端末５０２と、を含む。設計者教育講座検索システム５００において、設計者教育講座検索装置１０１、設計者端末５０１および管理者端末５０２は、有線または無線のネットワーク５１０を介して接続される。ネットワーク５１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００４４】
設計者教育講座検索装置１０１は、設計難易度テーブル５２０および教育講座テーブル５３０を有する。図１に示した記憶部１１０は、例えば、教育講座テーブル５３０に対応する。設計難易度テーブル５２０および教育講座テーブル５３０の記憶内容については、図７および図８を用いて後述する。設計者教育講座検索装置１０１は、例えば、サーバである。
【００４５】
設計者端末５０１は、設計者が使用するコンピュータである。管理者端末５０２は、管理者が使用するコンピュータである。管理者は、例えば、設計者の教育プランニングを行う者である。設計者端末５０１および管理者端末５０２は、例えば、ＰＣである。
【００４６】
（設計者教育講座検索装置１０１のハードウェア構成例）
図６は、設計者教育講座検索装置１０１のハードウェア構成例を示すブロック図である。図６において、設計者教育講座検索装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０１と、メモリ６０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）６０３と、ディスクドライブ６０４と、ディスク６０５と、を有する。また、各構成部は、バス６００によってそれぞれ接続される。
【００４７】
ここで、ＣＰＵ６０１は、設計者教育講座検索装置１０１の全体の制御を司る。ＣＰＵ６０１は、複数のコアを有していてもよい。メモリ６０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ６０１のワークエリアとして使用される。メモリ６０２に記憶されるプログラムは、ＣＰＵ６０１にロードされることで、コーディングされている処理をＣＰＵ６０１に実行させる。
【００４８】
Ｉ／Ｆ６０３は、通信回線を通じてネットワーク５１０に接続され、ネットワーク５１０を介して他の装置（例えば、図５に示した設計者端末５０１、管理者端末５０２）に接続される。そして、Ｉ／Ｆ６０３は、ネットワーク５１０と自装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。Ｉ／Ｆ６０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４９】
ディスクドライブ６０４は、ＣＰＵ６０１の制御に従ってディスク６０５に対するデータのリード／ライトを制御する。ディスク６０５は、ディスクドライブ６０４の制御で書き込まれたデータを記憶する。ディスク６０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００５０】
なお、設計者教育講座検索装置１０１は、上述した構成部のほかに、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、入力装置、ディスプレイなどを有することにしてもよい。また、図５に示した設計者端末５０１、管理者端末５０２についても、設計者教育講座検索装置１０１と同様のハードウェア構成により実現することができる。
【００５１】
（設計難易度テーブル５２０の記憶内容）
つぎに、設計者教育講座検索装置１０１が有する設計難易度テーブル５２０の記憶内容について説明する。設計難易度テーブル５２０は、例えば、図６に示したメモリ６０２、ディスク６０５などの記憶装置に記憶される。
【００５２】
図７は、設計難易度テーブル５２０の記憶内容の一例を示す説明図である。図７において、設計難易度テーブル５２０は、回路使用率と最高動作周波数との組合せに対応する設計難易度を記憶する。ここで、回路使用率は、ＦＰＧＡで用意された素子（セル）の総数に対して、どれだけの素子を使用して設計するのかを表す指標である。最高動作周波数は、回路の最高動作周波数である。設計難易度は、回路の設計の難しさを表す指標である。ここでは、設計難易度は、１〜５のいずれかの値によって表される。設計難易度「１」が最も難易度が低く、設計難易度「５」が最も難易度が高い。
【００５３】
例えば、回路使用率が５０［％］未満で、かつ、最高動作周波数が２００［ＭＨｚ］未満の場合、設計難易度は「１」となる。また、回路使用率が５０［％］以上７０［％］以下で、かつ、最高動作周波数が２００［ＭＨｚ］以上３００［ＭＨｚ］以下の場合、設計難易度は「３」となる。また、回路使用率が７０［％］より大きく、かつ、最高動作周波数が３００［ＭＨｚ］より大きい場合、設計難易度は「５」となる。
【００５４】
（教育講座テーブル５３０の記憶内容）
つぎに、設計者教育講座検索装置１０１が有する教育講座テーブル５３０の記憶内容について説明する。教育講座テーブル５３０は、例えば、メモリ６０２、ディスク６０５などの記憶装置に記憶される。
【００５５】
図８は、教育講座テーブル５３０の記憶内容の一例を示す説明図である。図８において、教育講座テーブル５３０は、設計難易度とスキル種別とスキルランクと教育講座名との対応関係を記憶する。ここで、設計難易度は、回路の設計の難しさを表す指標である。設計難易度は、１〜５のいずれかの値によって表される。
【００５６】
スキル種別は、回路の設計に要するスキルの種別である。ここでは、スキル種別は、論理系または物理系である。論理系は、論理設計に関するスキルを示す。物理系は、物理設計に関するスキルを示す。スキルランクは、スキル種別で示されるスキルをどの程度保有しているのかを示す指標である。ここでは、スキルランクは、初級、中級、上級のいずれかによって表される。スキルランク「初級」が最もランクが低く、スキルランク「上級」が最もランクが高い。教育講座名は、設計者の弱点を補完するのに適した教育講座の名称である。
【００５７】
（設計者教育講座検索装置１０１の機能的構成例）
図９は、設計者教育講座検索装置１０１の機能的構成例を示すブロック図である。図９において、設計者教育講座検索装置１０１は、取得部９０１と、特定部９０２と、決定部９０３と、検索部９０４と、出力部９０５と、記憶部９１０と、を含む。取得部９０１〜出力部９０５は制御部となる機能であり、具体的には、例えば、図６に示したメモリ６０２、ディスク６０５などの記憶装置に記憶されたプログラムをＣＰＵ６０１に実行させることにより、または、Ｉ／Ｆ６０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ６０２、ディスク６０５などの記憶装置に記憶される。
【００５８】
記憶部９１０は、例えば、メモリ６０２、ディスク６０５などの記憶装置により実現される。具体的には、例えば、記憶部９１０は、図５に示した設計難易度テーブル５２０、教育講座テーブル５３０や、機械学習モデルＭ（例えば、素子総遅延量学習モデルＭ１、配線総遅延量学習モデルＭ２）を記憶する。機械学習モデルＭは、教師あり学習が実行された学習器である。機械学習モデルＭは、例えば、回帰型のサポートベクタマシン等で実現される。具体的には、例えば、機械学習モデルＭは、各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習したモデルである。
【００５９】
取得部９０１は、第１の回路内のタイミングエラーが発生したパスのエラー情報を取得する。第１の回路は、設計者により設計された回路である。エラー情報は、第１の回路のタイミング検証により得られる。エラー情報は、例えば、タイミングエラーが発生したパスの遅延量や、パスに含まれる素子の配置配線情報を含む。
【００６０】
具体的には、例えば、設計者教育講座検索装置１０１は、図５に示した設計者端末５０１から、設計者により設計されたＲＴＬデータを取得する。つぎに、設計者教育講座検索装置１０１は、設計者等の指示に応じて、取得したＲＴＬデータの論理検証を実行する。そして、設計者教育講座検索装置１０１は、論理検証が実行されたＲＴＬデータと、タイミング制約情報とに基づいて、論理合成を実行して論理合成データを生成する。タイミング制約情報は、クロック周波数等のＦＰＧＡのタイミング制約を示す情報であり、例えば、記憶部９１０に記憶されている。
【００６１】
つぎに、設計者教育講座検索装置１０１は、生成した論理合成データに対応する回路をＦＰＧＡ上に配置配線する処理を実行して配置配線データを生成する。配置配線データは、複数の素子をＦＰＧＡに配置配線したときの各素子の配置位置および素子間の配線に関する情報を示す。そして、設計者教育講座検索装置１０１は、生成した配置配線データに基づくタイミング検証を実行して、タイミング検証結果を記憶部９１０に記憶する。タイミング検証結果は、タイミングエラーが発生したパスを示すエラー情報を含む。
【００６２】
この場合、取得部９０１は、記憶部９１０に記憶されたタイミング検証結果から、第１の回路内のタイミングエラーが発生したパスごとのエラー情報を取得する。これにより、第１の回路内のタイミングエラーが発生した全てのパスについてのエラー情報を取得することができる。
【００６３】
ただし、第１の回路のタイミング検証は、設計者教育講座検索装置１０１とは異なる他のコンピュータにおいて実行されてもよい。この場合、取得部９０１は、例えば、不図示の入力装置を用いたユーザの操作入力により、または、他のコンピュータから受信することにより、第１の回路内のタイミングエラーが発生したパスのエラー情報を取得する。
【００６４】
特定部９０２は、機械学習モデルＭを用いて、第１の回路内のパスのタイミングエラーの要因を特定する。具体的には、例えば、特定部９０２は、取得されたパスごとのエラー情報に基づいて、素子総遅延量学習モデルＭ１および配線総遅延量学習モデルＭ２を用いて、各パスのタイミングエラーの要因を特定する。
【００６５】
ここで、素子総遅延量学習モデルＭ１、配線総遅延量学習モデルＭ２は、過去に設計されたＦＰＧＡの配置配線データに基づいて教師あり学習されている。素子総遅延量学習モデルＭ１が教師あり学習されるときのラベルは、例えば、送信素子の素子遅延量、および、パスに含まれるＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）の素子総遅延量である。
【００６６】
ＬＵＴは、論理素子とも称され、多入力−１出力のテーブルであり、入力数に応じた規模のメモリで形成される。例えば、ＬＵＴは、５入力−１出力の場合には、３２ビットのメモリにより形成される。ＬＵＴは、配置配線処理時に外部から入力される設定に応じて、所望の組み合わせ回路を実現する。
【００６７】
素子総遅延量学習モデルＭ１は、過去に設計されたＦＰＧＡの配置配線データから抽出された特徴量およびラベルを使用して教師あり学習されることで、所定の評価関数を生成する。ここで、図１０を用いて、素子総遅延量学習モデルＭ１の一例について説明する。
【００６８】
図１０は、素子総遅延量学習モデルに関する説明図である。図１０に示すように、素子総遅延量学習モデルＭ１は、パスの特徴量に応じた素子総遅延量を、評価関数に基づいて出力する。図１０に示す例では、素子総遅延量学習モデルＭ１は、ｎ個の特徴量Ｃ１1〜Ｃ１nに応じた素子総遅延量Ｌ１を、評価関数ｆ１に基づいて出力する。
【００６９】
また、配線総遅延量学習モデルＭ２が教師あり学習されるときのラベルは、送信素子と受信素子との間に配置される配線の遅延量を示す配線総遅延量である。配線総遅延量学習モデルＭ２は、過去に設計されたＦＰＧＡの配置配線データから抽出された特徴量およびラベルを使用して教師あり学習されることで、所定の評価関数を生成する。ここで、図１１を用いて、配線総遅延量学習モデルＭ２の一例について説明する。
【００７０】
図１１は、配線総遅延量学習モデルに関する説明図である。図１１に示すように、配線総遅延量学習モデルＭ２は、パスの特徴量に応じた配線総遅延量を、評価関数に基づいて出力する。図１１に示す例では、配線総遅延量学習モデルＭ２は、ｍ個の特徴量Ｃ２1〜Ｃ２mに応じた配線総遅延量Ｌ２を、評価関数ｆ２に基づいて出力する。
【００７１】
より詳細に説明すると、例えば、特定部９０２は、取得されたエラー情報から、パスの遅延量に関する設計値（素子総遅延量）と、素子総遅延量を出力として素子総遅延量学習モデルＭ１が学習するときの入力である特徴量とを抽出する。つぎに、特定部９０２は、抽出した特徴量を素子総遅延量学習モデルＭ１に入力して、当該パスの素子総遅延量の正解値を推定する。
【００７２】
そして、特定部９０２は、抽出した設計値（素子総遅延量）と、推定した正解値とを比較することで、パスのタイミングエラーが、素子総遅延量に関するタイミングエラーであるか否かを特定する。ここで、設計値（素子総遅延量）が正解値以下の場合、特定部９０２は、素子総遅延量の設計値がエラーでないことを示す「ＯＫ」を比較結果として記憶する。
【００７３】
一方、設計値（素子総遅延量）が正解値より大きい場合、特定部９０２は、素子総遅延量の設計値がエラーであることを示す「ＮＧ」を比較結果として記憶する。また、比較結果「ＮＧ」を記憶する場合、特定部９０２は、パスの識別子と対応付けて、素子総遅延量が大きいことがタイミングエラーの原因であることを示す情報を記憶する。特定部９０２は、取得された全てのエラー情報について、上述した処理を繰り返し行う。
【００７４】
また、特定部９０２は、取得されたエラー情報から、パスの遅延量に関する設計値（配線総遅延量）と、配線総遅延量を出力として配線総遅延量学習モデルＭ２が学習するときの入力である特徴量とを抽出する。つぎに、特定部９０２は、抽出した特徴量を配線総遅延量学習モデルＭ２に入力して、当該パスの配線総遅延量の正解値を推定する。
【００７５】
そして、特定部９０２は、抽出した設計値（配線総遅延量）と、推定した正解値とを比較する。ここで、設計値（配線総遅延量）が正解値以下の場合、特定部９０２は、配線総遅延量の設計値がエラーでないことを示す「ＯＫ」を比較結果として記憶する。一方、設計値（配線総遅延量）が正解値より大きい場合、特定部９０２は、配線総遅延量の設計値がエラーであることを示す「ＮＧ」を比較結果として記憶する。
【００７６】
また、比較結果「ＮＧ」を記憶する場合、特定部９０２は、パスの識別子と対応付けて、配線総遅延量が大きいことがタイミングエラーの原因であることを示す情報を記憶する。特定部９０２は、取得された全てのエラー情報について、上述した処理を繰り返し行う。
【００７７】
特定部９０２によって特定された結果は、例えば、図１２に示すエラー要因リスト１２００に記憶される。エラー要因リスト１２００は、例えば、メモリ６０２、ディスク６０５などの記憶装置に記憶される。ここで、エラー要因リスト１２００の記憶内容について説明する。
【００７８】
図１２は、エラー要因リスト１２００の記憶内容の一例を示す説明図である。図１２において、エラー要因リスト１２００は、パスの識別子と、送信素子の識別子と、受信素子の識別子と、比較結果と、を含む。エラー要因リスト１２００は、例えば、ＣＳＶ（Ｃｏｍｍａ−Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）形式のファイルである。
【００７９】
パスは、タイミングエラーが発生したパスである。送信素子は、パスの初段の素子である。受信素子は、パスの最終段の素子である。素子総遅延量の比較結果「ＯＫ」は、素子総遅延量の設計値がエラーでないことを示す。素子総遅延量の比較結果「ＮＧ」は、素子総遅延量の設計値がエラーであり、素子総遅延量が大きいことがタイミングエラーの原因であることを示す。
【００８０】
配線総遅延量の比較結果「ＯＫ」は、配線総遅延量の設計値がエラーでないことを示す。配線総遅延量の比較結果「ＮＧ」は、配線総遅延量の設計値がエラーであり、配線総遅延量が大きいことがタイミングエラーの原因であることを示す。あるパスについて、素子総遅延量および配線総遅延量の両方とも比較結果が「ＮＧ」の場合もある。
【００８１】
エラー要因リスト１２００によれば、例えば、「パス１」は、送信素子「Ａ／ＦＦ０［３１］」から受信素子「Ａ／ＦＦ１［０］」までの信号パスであり、素子総遅延量が大きいことがタイミングエラーの原因であることを特定することができる。
【００８２】
図９の説明に戻り、決定部９０３は、特定部９０２によって特定された要因のタイミングエラーが発生したパスの数に基づいて、第１の回路の設計者のスキルランクを決定する。具体的には、例えば、決定部９０３は、第１の回路内の全パスの数に対する、特定された結果に基づく素子総遅延量に関するタイミングエラーが発生したパスの数の割合に基づいて、第１の回路の設計者の論理設計に関するスキルランクを決定する。
【００８３】
また、例えば、決定部９０３は、第１の回路内の全パスの数に対する、特定した結果に基づく配線総遅延量に関するタイミングエラーが発生したパスの数の割合に基づいて、第１の回路の設計者の物理設計に関するスキルランクを決定する。第１の回路内の全パスの数は、タイミング検証対象のパスの総数であり、例えば、第１の回路の配置配線データから特定される。
【００８４】
より詳細に説明すると、例えば、決定部９０３は、図１２に示したエラー要因リスト１２００を参照して、素子総遅延量に関するタイミングエラーが発生したパスの数を算出する。すなわち、決定部９０３は、エラー要因リスト１２００を参照して、素子総遅延量の比較結果が「ＮＧ」のパスの数を算出する。
【００８５】
また、決定部９０３は、エラー要因リスト１２００を参照して、配線総遅延量に関するタイミングエラーが発生したパスの数を算出する。すなわち、決定部９０３は、エラー要因リスト１２００を参照して、配線総遅延量の比較結果が「ＮＧ」のパスの数を算出する。
【００８６】
以下の説明では、素子総遅延量に関するタイミングエラーが発生したパスの数を「素子総遅延量の残エラー数Ｅ１」と表記する場合がある。また、配線総遅延量に関するタイミングエラーが発生したパスの数を「配線総遅延量の残エラー数Ｅ２」と表記する場合がある。また、第１の回路内の全パスの数（タイミング検証対象のパスの総数）を「全パス数Ｎ」と表記する場合がある。
【００８７】
つぎに、決定部９０３は、下記式（１）を用いて、算出した素子総遅延量の残エラー数Ｅ１と、全パス数Ｎとに基づいて、残エラー割合Ｒ１を算出する。残エラー割合Ｒ１は、第１の回路内の全パスのうち、素子総遅延量に関するタイミングエラーが発生しているパスがどの程度残っているのかを表す指標である（単位：％）。
【００８８】
Ｒ１＝Ｅ１÷Ｎ×１００      ・・・（１）
【００８９】
そして、決定部９０３は、算出した残エラー割合Ｒ１に基づいて、第１の回路の設計者の論理設計に関するスキルランクを決定する。例えば、決定部９０３は、残エラー割合Ｒ１が１０［％］未満であれば、論理設計に関するスキルランクを「上級」に決定する。また、決定部９０３は、残エラー割合Ｒ１が１０［％］以上３０［％］以下であれば、論理設計に関するスキルランクを「中級」に決定する。また、決定部９０３は、残エラー割合Ｒ１が３０［％］より大きければ、論理設計に関するスキルランクを「初級」に決定する。
【００９０】
一例として、全パス数Ｎを「Ｎ＝１０，０００」とし、素子総遅延量の残エラー数Ｅ１を「Ｅ１＝４００」とすると、残エラー割合Ｒ１は「Ｒ１＝４［％］」となる。この場合、残エラー割合Ｒ１が１０［％］未満のため、論理設計に関するスキルランクは「上級」に決定される。
【００９１】
なお、残エラー割合Ｒ１に応じて、論理設計に関するスキルランクをどのように決定するかは任意に設定可能である。
【００９２】
また、決定部９０３は、下記式（２）を用いて、算出した配線総遅延量の残エラー数Ｅ２と、全パス数Ｎとに基づいて、残エラー割合Ｒ２を算出する。残エラー割合Ｒ２は、第１の回路内の全パスのうち、配線総遅延量に関するタイミングエラーが発生しているパスがどの程度残っているのかを表す指標である（単位：％）。
【００９３】
Ｒ２＝Ｅ２÷Ｎ×１００      ・・・（２）
【００９４】
そして、決定部９０３は、算出した残エラー割合Ｒ２に基づいて、第１の回路の設計者の物理設計に関するスキルランクを決定する。例えば、決定部９０３は、残エラー割合Ｒ２が１０［％］未満であれば、物理設計に関するスキルランクを「上級」に決定する。また、決定部９０３は、残エラー割合Ｒ２が１０［％］以上３０［％］以下であれば、物理設計に関するスキルランクを「中級」に決定する。また、決定部９０３は、残エラー割合Ｒ２が３０［％］より大きければ、物理設計に関するスキルランクを「初級」に決定する。
【００９５】
一例として、全パス数Ｎを「Ｎ＝１０，０００」とし、配線総遅延量の残エラー数Ｅ２を「Ｅ１＝１，３５０」とすると、残エラー割合Ｒ２は「Ｒ２＝１３．５［％］」となる。この場合、残エラー割合Ｒ２が１０［％］以上３０［％］以下のため、物理設計に関するスキルランクは「中級」に決定される。
【００９６】
なお、残エラー割合Ｒ２に応じて、物理設計に関するスキルランクをどのように決定するかは任意に設定可能である。
【００９７】
検索部９０４は、回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部９１０を参照して、決定したスキルランクと第１の回路の設計難易度とに対応する教育講座を検索する。
【００９８】
具体的には、例えば、まず、検索部９０４は、図７に示した設計難易度テーブル５２０を参照して、第１の回路の設計難易度を特定する。例えば、第１の回路の回路使用率が３０［％］で、最高動作周波数が１００［ＭＨｚ］の場合、第１の回路の設計難易度は「１」となる。なお、第１の回路の回路使用率と最高動作周波数は、例えば、管理者がテストデザインを選定する際に定義されて、記憶部９１０に記憶される。
【００９９】
つぎに、検索部９０４は、図８に示した教育講座テーブル５３０を参照して、決定された論理設計に関するスキルランクと、特定した第１の回路の設計難易度とに対応する教育講座を検索する。また、決定部９０３は、教育講座テーブル５３０を参照して、決定された物理設計に関するスキルランクと、特定した第１の回路の設計難易度とに対応する教育講座を検索する。
【０１００】
一例として、第１の回路の設計難易度を「１」とし、論理設計に関するスキルランクを「上級」とする。この場合、設計難易度「１」、スキル種別「論理系」およびスキルランク「上級」の組合せに対応する教育講座「高速信号処理」が検索される。また、第１の回路の設計難易度を「１」とし、物理設計に関するスキルランクを「中級」とする。この場合、設計難易度「１」、スキル種別「物理系」およびスキルランク「中級」の組合せに対応する教育講座「デバイス構造」、「電気的特性」が検索される。
【０１０１】
出力部９０５は、検索された結果を出力する。出力部９０５の出力形式としては、例えば、メモリ６０２、ディスク６０５などの記憶装置への記憶、Ｉ／Ｆ６０３による他のコンピュータへの送信、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
【０１０２】
具体的には、例えば、出力部９０５は、第１の回路の設計者と対応付けて、検索された教育講座を示す情報を出力することにしてもよい。第１の回路の設計者を特定する情報は、例えば、設計者端末５０１から取得されるＲＴＬデータに付与されていてもよく、また、記憶部９１０に記憶されていてもよい。
【０１０３】
より詳細に説明すると、例えば、出力部９０５は、図５に示した管理者端末５０２に設計者教育講座検索結果情報を送信することにしてもよい。設計者教育講座検索結果情報は、第１の回路を特定する情報、または、第１の回路の設計者を特定する情報と対応付けて、検索された教育講座を示す情報である。
【０１０４】
この結果、管理者端末５０２において、図１３に示すような設計者教育講座検索結果画面１３００が表示される。なお、出力部９０５は、設計者教育講座検索結果情報を、設計者端末５０１に送信することにしてもよい。この場合、設計者端末５０１において、図１３に示すような設計者教育講座検索結果画面１３００が表示される。
【０１０５】
（設計者教育講座検索結果画面１３００の画面例）
つぎに、図１３を用いて、管理者端末５０２に表示される設計者教育講座検索結果画面１３００の画面例について説明する。
【０１０６】
図１３は、設計者教育講座検索結果画面１３００の画面例を示す説明図である。図１３において、設計者教育講座検索結果画面１３００は、回路の設計者と対応付けて、設計者の弱点を補完するための教育講座を示す画面である。設計者教育講座検索結果画面１３００において、「回路ＸＸＸ」は、第１の回路の識別子である。また、「富士太郎」は、第１の回路の論理設計を行った設計者である。また、「川崎花子」は、第１の回路の物理設計を行った設計者である。
【０１０７】
設計者教育講座検索結果画面１３００によれば、管理者は、設計者「富士太郎」の論理設計に関する弱点を補完するために教育講座「高速信号処理」を受講することが望ましいことがわかる。また、管理者は、設計者「川崎花子」の物理設計に関する弱点を補完するために教育講座「デバイス構造」、「電気的特性」を受講することが望ましいことがわかる。
【０１０８】
管理者は、例えば、設計者「富士太郎」に教育講座「高速信号処理」を提供することで、設計者「富士太郎」にとって弱点である分野の学習をさせることができる。また、管理者は、設計者「川崎花子」に教育講座「デバイス構造」、「電気的特性」を提供することで、設計者「川崎花子」にとって弱点である分野の学習をさせることができる。
【０１０９】
（設計者教育講座検索装置１０１の設計者教育講座検索手順）
図１４および図１５は、設計者教育講座検索装置１０１の設計者教育講座検索手順の一例を示すフローチャートである。図１４において、設計者教育講座検索装置１０１は、設計者により設計された対象回路のＲＴＬデータを取得する（ステップＳ１４０１）。つぎに、設計者教育講座検索装置１０１は、設計者等の指示に応じて、取得したＲＴＬデータの論理検証を実行する（ステップＳ１４０２）。
【０１１０】
そして、設計者教育講座検索装置１０１は、論理検証が実行されたＲＴＬデータと、タイミング制約情報とに基づいて、論理合成を実行して論理合成データを生成する（ステップＳ１４０３）。つぎに、設計者教育講座検索装置１０１は、生成した論理合成データに対応する回路をＦＰＧＡ上に配置配線する処理を実行して配置配線データを生成する（ステップＳ１４０４）。
【０１１１】
そして、設計者教育講座検索装置１０１は、生成した配置配線データに基づくタイミング検証を実行する（ステップＳ１４０５）。タイミング検証結果は、記憶部９１０に記憶される。つぎに、設計者教育講座検索装置１０１は、記憶部９１０に記憶されたタイミング検証結果から、タイミングエラーが発生したパスの遅延量およびパスに含まれる素子の配置配線情報を含むエラー情報を取得する（ステップＳ１４０６）。
【０１１２】
そして、設計者教育講座検索装置１０１は、素子総遅延量比較処理を実行する（ステップＳ１４０７）。素子総遅延量比較処理は、素子総遅延量の設計値と正解値とを比較する処理である。素子総遅延量比較処理の具体的な処理手順については、図１６を用いて後述する。
【０１１３】
つぎに、設計者教育講座検索装置１０１は、配線総遅延量比較処理を実行して（ステップＳ１４０８）、図１５に示すステップＳ１５０１に移行する。配線総遅延量比較処理は、配線総遅延量の設計値と正解値とを比較する処理である。配線総遅延量比較処理の具体的な処理手順については、図１７を用いて後述する。
【０１１４】
図１５のフローチャートにおいて、まず、設計者教育講座検索装置１０１は、エラー要因リスト１２００を参照して、素子総遅延量の比較結果が「ＮＧ」のパスの数を計数して、素子総遅延量の残エラー数Ｅ１を算出する（ステップＳ１５０１）。そして、設計者教育講座検索装置１０１は、上記式（１）を用いて、算出した素子総遅延量の残エラー数Ｅ１と、対象回路の全パス数Ｎとに基づいて、残エラー割合Ｒ１を算出する（ステップＳ１５０２）。
【０１１５】
つぎに、設計者教育講座検索装置１０１は、エラー要因リスト１２００を参照して、配線総遅延量の比較結果が「ＮＧ」のパスの数を計数して、配線総遅延量の残エラー数Ｅ２を算出する（ステップＳ１５０３）。そして、設計者教育講座検索装置１０１は、上記式（２）を用いて、算出した配線総遅延量の残エラー数Ｅ２と、対象回路の全パス数Ｎとに基づいて、残エラー割合Ｒ２を算出する（ステップＳ１５０４）。
【０１１６】
つぎに、設計者教育講座検索装置１０１は、算出した残エラー割合Ｒ１に基づいて、対象回路の設計者の論理設計に関するスキルランクを決定する（ステップＳ１５０５）。そして、設計者教育講座検索装置１０１は、算出した残エラー割合Ｒ２に基づいて、対象回路の設計者の物理設計に関するスキルランクを決定する（ステップＳ１５０６）。
【０１１７】
つぎに、設計者教育講座検索装置１０１は、設計難易度テーブル５２０を参照して、対象回路の設計難易度を特定する（ステップＳ１５０７）。そして、設計者教育講座検索装置１０１は、教育講座テーブル５３０を参照して、決定した論理設計に関するスキルランクと、特定した対象回路の設計難易度とに対応する教育講座を検索する（ステップＳ１５０８）。
【０１１８】
つぎに、設計者教育講座検索装置１０１は、教育講座テーブル５３０を参照して、決定した物理設計に関するスキルランクと、特定した対象回路の設計難易度とに対応する教育講座を検索する（ステップＳ１５０９）。そして、設計者教育講座検索装置１０１は、対象回路を特定する情報と対応付けて、検索した教育講座を示す設計者教育講座検索結果情報を出力して（ステップＳ１５１０）、本フローチャートによる一連の処理を終了する。
【０１１９】
これにより、素子総遅延量の残エラー割合Ｒ１から、論理設計に関するスキルランクを判断して、論理設計を行った設計者の弱点を補完する教育講座を検索することができる。また、配線総遅延量の残エラー割合Ｒ２から、物理設計に関するスキルランクを判断して、物理設計を行った設計者の弱点を補完する教育講座を検索することができる。
【０１２０】
図１６は、素子総遅延量比較処理の具体的処理手順の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、設計者教育講座検索装置１０１は、取得したエラー情報から、パスの遅延量に関する設計値（素子総遅延量）と、素子総遅延量学習モデルＭ１が学習するときの入力である特徴量とを抽出する（ステップＳ１６０１）。
【０１２１】
つぎに、設計者教育講座検索装置１０１は、抽出した特徴量を素子総遅延量学習モデルＭ１に入力して、当該パスの素子総遅延量の正解値を推定する（ステップＳ１６０２）。そして、設計者教育講座検索装置１０１は、抽出した設計値（素子総遅延量）が、推定した正解値以下であるか否かを判断する（ステップＳ１６０３）。
【０１２２】
ここで、設計値（素子総遅延量）が正解値以下の場合（ステップＳ１６０３：Ｙｅｓ）、設計者教育講座検索装置１０１は、素子総遅延量の設計値がエラーでないことを示す「ＯＫ」を比較結果としてエラー要因リスト１２００に記憶して（ステップＳ１６０４）、ステップＳ１６０６に移行する。
【０１２３】
一方、設計値（素子総遅延量）が正解値より大きい場合（ステップＳ１６０３：Ｎｏ）、設計者教育講座検索装置１０１は、素子総遅延量の設計値がエラーであることを示す「ＮＧ」を比較結果としてエラー要因リスト１２００に記憶する（ステップＳ１６０５）。そして、設計者教育講座検索装置１０１は、ステップＳ１４０６において取得された全てのエラー情報から、設計値（素子総遅延量）と特徴量とを抽出したか否かを判断する（ステップＳ１６０６）。
【０１２４】
ここで、未抽出のエラー情報がある場合（ステップＳ１６０６：Ｎｏ）、設計者教育講座検索装置１０１は、ステップＳ１６０１に戻って、未抽出のエラー情報から、設計値（素子総遅延量）と特徴量とを抽出する。一方、全てのエラー情報から抽出した場合（ステップＳ１６０６：Ｙｅｓ）、設計者教育講座検索装置１０１は、素子総遅延量比較処理を呼び出したステップに戻る。
【０１２５】
これにより、対象回路（第１の回路）内のタイミングエラーが発生したパスのうち、素子総遅延量が大きいことがタイミングエラーの原因であるパスを特定することができる。なお、設計者教育講座検索装置１０１は、パスに含まれるＬＵＴのみの遅延量を素子総遅延量として推定することにしてもよい。
【０１２６】
図１７は、配線総遅延量比較処理の具体的処理手順の一例を示すフローチャートである。図１７のフローチャートにおいて、まず、設計者教育講座検索装置１０１は、取得したエラー情報から、パスの遅延量に関する設計値（配線総遅延量）と、配線総遅延量学習モデルＭ２が学習するときの入力である特徴量とを抽出する（ステップＳ１７０１）。
【０１２７】
つぎに、設計者教育講座検索装置１０１は、抽出した特徴量を配線総遅延量学習モデルＭ２に入力して、当該パスの配線総遅延量の正解値を推定する（ステップＳ１７０２）。そして、設計者教育講座検索装置１０１は、抽出した設計値（配線総遅延量）が、推定した正解値以下であるか否かを判断する（ステップＳ１７０３）。
【０１２８】
ここで、設計値（配線総遅延量）が正解値以下の場合（ステップＳ１７０３：Ｙｅｓ）、設計者教育講座検索装置１０１は、配線総遅延量の設計値がエラーでないことを示す「ＯＫ」を比較結果としてエラー要因リスト１２００に記憶して（ステップＳ１７０４）、ステップＳ１７０６に移行する。
【０１２９】
一方、設計値（配線総遅延量）が正解値より大きい場合（ステップＳ１７０３：Ｎｏ）、設計者教育講座検索装置１０１は、配線総遅延量の設計値がエラーであることを示す「ＮＧ」を比較結果としてエラー要因リスト１２００に記憶する（ステップＳ１７０５）。そして、設計者教育講座検索装置１０１は、ステップＳ１４０６において取得された全てのエラー情報から、設計値（配線総遅延量）と特徴量とを抽出したか否かを判断する（ステップＳ１７０６）。
【０１３０】
ここで、未抽出のエラー情報がある場合（ステップＳ１７０６：Ｎｏ）、設計者教育講座検索装置１０１は、ステップＳ１７０１に戻って、未抽出のエラー情報から、設計値（配線総遅延量）と特徴量とを抽出する。一方、全てのエラー情報から抽出した場合（ステップＳ１７０６：Ｙｅｓ）、設計者教育講座検索装置１０１は、配線総遅延量比較処理を呼び出したステップに戻る。
【０１３１】
これにより、対象回路（第１の回路）内のタイミングエラーが発生したパスのうち、配線総遅延量が大きいことがタイミングエラーの原因であるパスを特定することができる。
【０１３２】
以上説明したように、実施の形態にかかる設計者教育講座検索装置１０１によれば、各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルＭを用いて、第１の回路内のパスのタイミングエラーの要因を特定することができる。また、設計者教育講座検索装置１０１によれば、第１の回路内のパスのうち、特定した要因のタイミングエラーが発生したパスの数に基づいて、第１の回路の設計者のスキルランクを決定することができる。そして、設計者教育講座検索装置１０１によれば、回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部９１０を参照して、決定したスキルランクと第１の回路の設計難易度とに対応する教育講座を検索し、検索した結果を出力することができる。
【０１３３】
これにより、設計者が設計した対象回路内のパスごとのタイミングエラーの要因特定を自動化して、タイミングエラー解析にかかる工数を削減することができる。このため、回路全体としてのタイミングエラーの傾向を容易に把握することができ、設計者のスキルランクを適切に判断して、設計者の弱点を補完する教育講座を提供可能となる。
【０１３４】
また、設計者教育講座検索装置１０１によれば、回路内のパスの特徴量と素子総遅延量との関係を学習した機械学習モデルＭ１を用いて、第１の回路内のパスのタイミングエラーが、素子総遅延量に関するタイミングエラーであるか否かを特定することができる。さらに、設計者教育講座検索装置１０１によれば、第１の回路内の全パスの数（全パス数Ｎ）に対する、素子総遅延量に関するタイミングエラーが発生したパスの数（残エラー数Ｅ１）の割合（残エラー割合Ｒ１）に基づいて、第１の回路の設計者の論理設計に関するスキルランクを決定することができる。そして、設計者教育講座検索装置１０１によれば、決定した論理設計に関するスキルランクと第１の回路の設計難易度とに対応する教育講座を検索することができる。
【０１３５】
これにより、タイミングエラーを解消するために論理設計に関するスキルが求められるエラーの多さから、論理設計を行った設計者のスキルランクを判断して、設計者の弱点を補完する教育講座を提供可能となる。
【０１３６】
また、設計者教育講座検索装置１０１によれば、回路内のパスの特徴量と配線総遅延量との関係を学習した機械学習モデルＭ２を用いて、第１の回路内のパスのタイミングエラーが、配線総遅延量に関するタイミングエラーであるか否かを特定することができる。さらに、設計者教育講座検索装置１０１によれば、第１の回路内の全パスの数（全パス数Ｎ）に対する、配線総遅延量に関するタイミングエラーが発生したパスの数（残エラー数Ｅ２）の割合（残エラー割合Ｒ２）に基づいて、第１の回路の設計者の物理設計に関するスキルランクを決定することができる。そして、設計者教育講座検索装置１０１によれば、決定した物理設計に関するスキルランクと第１の回路の設計難易度とに対応する教育講座を検索することができる。
【０１３７】
これにより、タイミングエラーを解消するために物理設計に関するスキルが求められるエラーの多さから、物理設計を行った設計者のスキルランクを判断して、設計者の弱点を補完する教育講座を提供可能となる。
【０１３８】
また、設計者教育講座検索装置１０１によれば、第１の回路の回路使用率または動作周波数の少なくともいずれかに応じて、第１の回路の設計難易度を特定することができる。これにより、対象回路（テストデザイン）の回路使用率や動作周波数などによって変わる設計の難しさを考慮して、設計者の弱点を補完するための教育講座を検索することができる。
【０１３９】
これらのことから、設計者教育講座検索装置１０１によれば、設計者がどのスキルをどの程度保有しているのかを判断することが可能となり、設計者の弱点を補完するための効果的な教育プランニングを行うことができる。
【０１４０】
なお、本実施の形態で説明した設計者教育講座検索方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計者教育講座検索プログラムは、ハードディスク、フレキシブルディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本設計者教育講座検索プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１４１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１４２】
（付記１）各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルを用いて、設計者によって設計された第１の回路内のパスのタイミングエラーの要因を特定し、
前記第１の回路内のパスのうち、特定した前記要因のタイミングエラーが発生したパスの数に基づいて、前記第１の回路の設計者のスキルランクを決定し、
回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部を参照して、決定した前記スキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索し、
検索した結果を出力する、
処理をコンピュータに実行させることを特徴とする設計者教育講座検索プログラム。
【０１４３】
（付記２）前記機械学習モデルは、回路内のパスの特徴量と前記パスに含まれる素子の遅延量を合計した素子総遅延量との関係を学習した第１の機械学習モデルであり、
前記記憶部は、回路の設計難易度と、設計者の論理設計に関するスキルランクと、教育講座との対応関係を記憶しており、
前記特定する処理は、前記第１の機械学習モデルを用いて、前記第１の回路内のパスのタイミングエラーが、素子総遅延量に関するタイミングエラーであるか否かを特定し、
前記決定する処理は、前記第１の回路内の全パスの数に対する、素子総遅延量に関するタイミングエラーが発生したパスの数の割合に基づいて、前記第１の回路の設計者の論理設計に関するスキルランクを決定し、
前記検索する処理は、前記記憶部を参照して、決定した前記論理設計に関するスキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索する、
ことを特徴とする付記１に記載の設計者教育講座検索プログラム。
【０１４４】
（付記３）前記機械学習モデルは、回路内のパスの特徴量と前記パスに含まれる配線の遅延量を合計した配線総遅延量との関係を学習した第２の機械学習モデルであり、
前記記憶部は、回路の設計難易度と、設計者の物理設計に関するスキルランクと、教育講座との対応関係を記憶しており、
前記特定する処理は、前記第２の機械学習モデルを用いて、前記第１の回路内のパスのタイミングエラーが、配線総遅延量に関するタイミングエラーであるか否かを特定し、
前記決定する処理は、前記第１の回路内の全パスの数に対する、配線総遅延量に関するタイミングエラーが発生したパスの数の割合に基づいて、前記第１の回路の設計者の物理設計に関するスキルランクを決定し、
前記検索する処理は、前記記憶部を参照して、決定した前記物理設計に関するスキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索する、
ことを特徴とする付記１または２に記載の設計者教育講座検索プログラム。
【０１４５】
（付記４）前記第１の回路の設計難易度は、前記第１の回路の回路使用率または動作周波数の少なくともいずれかに応じて特定される、ことを特徴とする付記１〜３のいずれか一つに記載の設計者教育講座検索プログラム。
【０１４６】
（付記５）前記特定する処理は、
前記第１の回路のタイミング検証結果に含まれるパスのエラー情報から、当該パスの特徴量と遅延量に関する設計値とを抽出し、
抽出した前記パスの特徴量と前記機械学習モデルとから、前記パスの遅延量に関する正解値を推定し、
推定した前記正解値と、抽出した前記パスの遅延量に関する設計値とを比較した結果に基づいて、前記パスのタイミングエラーの要因を特定する、ことを特徴とする付記１〜４のいずれか一つに記載の設計者教育講座検索プログラム。
【０１４７】
（付記６）各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルを用いて、設計者によって設計された第１の回路内のパスのタイミングエラーの要因を特定し、
前記第１の回路内のパスのうち、特定した前記要因のタイミングエラーが発生したパスの数に基づいて、前記第１の回路の設計者のスキルランクを決定し、
回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部を参照して、決定した前記スキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索し、
検索した結果を出力する、
処理をコンピュータが実行することを特徴とする設計者教育講座検索方法。
【０１４８】
（付記７）各種回路内のタイミングエラーが発生していないパスの特徴量と遅延量との関係を学習した機械学習モデルを用いて、設計者によって設計された第１の回路内のパスのタイミングエラーの要因を特定し、
前記第１の回路内のパスのうち、特定した前記要因のタイミングエラーが発生したパスの数に基づいて、前記第１の回路の設計者のスキルランクを決定し、
回路の設計難易度と、設計者のスキルランクと、教育講座との対応関係を記憶する記憶部を参照して、決定した前記スキルランクと前記第１の回路の設計難易度とに対応する教育講座を検索し、
検索した結果を出力する、
制御部を有することを特徴とする設計者教育講座を検索する装置。
【符号の説明】
【０１４９】
１０１  設計者教育講座検索装置
１１０，９１０  記憶部
２００  エラー情報
５００  設計者教育講座検索システム
５０１  設計者端末
５０２  管理者端末
５１０  ネットワーク
５２０  設計難易度テーブル
５３０  教育講座テーブル
６００  バス
６０１  ＣＰＵ
６０２  メモリ
６０３  Ｉ／Ｆ
６０４  ディスクドライブ
６０５  ディスク
９０１  取得部
９０２  特定部
９０３  決定部
９０４  検索部
９０５  出力部
１２００  エラー要因リスト
１３００  設計者教育講座検索結果画面
【図１】
2019152735.tif 000003
【図２】
2019152735.tif 000004
【図３】
2019152735.tif 000005
【図４】
2019152735.tif 000006
【図５】
2019152735.tif 000007
【図６】
2019152735.tif 000008
【図７】
2019152735.tif 000009
【図８】
2019152735.tif 000010
【図９】
2019152735.tif 000011
【図１０】
2019152735.tif 000012
【図１１】
2019152735.tif 000013
【図１２】
2019152735.tif 000014
【図１３】
2019152735.tif 000015
【図１４】
2019152735.tif 000016
【図１５】
2019152735.tif 000017
【図１６】
2019152735.tif 000018
【図１７】
2019152735.tif 000019