(57)【要約】【課題】設計対象回路に含まれるモジュール間の関連性を適切に抽出する。【解決手段】生成部３１１は、設計対象回路に含まれる複数のモジュールのうち２つのモジュールの組み合わせについて、それらのモジュールの間の関連性を示す関連性情報を生成する。これらの２つのモジュールは、設計対象回路の設計工程において、設計対象回路の情報を記憶する記憶部に対して所定期間内にコミットされたモジュールである。変更部３１２は、複数の組み合わせに対する複数の関連性情報のうち、一方のモジュールの信号が他方のモジュールの信号に影響を与える組み合わせの関連性情報が示す関連性が小さくなるように、その組み合わせの関連性情報を変更する。出力部３１３は、変更された関連性情報を含む複数の関連性情報を出力する。【選択図】図３
2018112948.tif 000002
【特許請求の範囲】
【請求項１】
設計対象回路に含まれる複数のモジュールのうち、前記設計対象回路の設計工程において、前記設計対象回路の情報を記憶する記憶部に対して所定期間内にコミットされた２つのモジュールの組み合わせについて、前記２つのモジュールの間の関連性を示す関連性情報を生成する生成部と、
複数の組み合わせに対する複数の関連性情報のうち、一方のモジュールの信号が他方のモジュールの信号に影響を与える組み合わせの関連性情報が示す関連性が小さくなるように、前記一方のモジュールの信号が前記他方のモジュールの信号に影響を与える前記組み合わせの前記関連性情報を変更する変更部と、
変更された前記関連性情報を含む前記複数の関連性情報を出力する出力部と、
を備えることを特徴とする設計支援装置。
【請求項２】
前記２つのモジュールの間の関連性は、前記設計工程に含まれる複数の前記所定期間のうち、前記２つのモジュールがコミットされた前記所定期間の個数を示し、
前記変更部は、前記一方のモジュールの信号が前記他方のモジュールの信号に影響を与える前記組み合わせの前記関連性情報が示す前記所定期間の個数を削減することを特徴とする請求項１記載の設計支援装置。
【請求項３】
前記一方のモジュールの信号は、前記設計工程において変更された信号であることを特徴とする請求項１又は２記載の設計支援装置。
【請求項４】
前記複数の組み合わせは、前記複数のモジュールから生成される組み合わせのうち、ユーザによって指定された所定の組み合わせを除いた残りの組み合わせであることを特徴とする請求項１乃至３のいずれか１項に記載の設計支援装置。
【請求項５】
コンピュータが、
設計対象回路に含まれる複数のモジュールのうち、前記設計対象回路の設計工程において、前記設計対象回路の情報を記憶する記憶部に対して所定期間内にコミットされた２つのモジュールの組み合わせについて、前記２つのモジュールの間の関連性を示す関連性情報を生成し、
複数の組み合わせに対する複数の関連性情報のうち、一方のモジュールの信号が他方のモジュールの信号に影響を与える組み合わせの関連性情報が示す関連性が小さくなるように、前記一方のモジュールの信号が前記他方のモジュールの信号に影響を与える前記組み合わせの前記関連性情報を変更し、
変更された前記関連性情報を含む前記複数の関連性情報を出力する、
ことを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置及び設計支援方法に関する。
【背景技術】
【０００２】
レジスタ転送レベル（ＲＴＬ）等の論理コードを用いた大規模集積回路（ＬＳＩ）の論理設計において、回路の形式的検証を行う技術が知られている（例えば、特許文献１〜特許文献３を参照）。
【０００３】
ソースコード上のバグを予測する技術、及びソフトウェアモジュール間におけるロジカルカップリング（logical coupling）を検出する技術も知られている（例えば、特許文献４及び非特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１８１２１０号公報
【特許文献２】米国特許出願公開第２００７／００２２３９４号明細書
【特許文献３】米国特許出願公開第２００３／０２３３５０４号明細書
【特許文献４】特開２０１６−２４７８４号公報
【非特許文献】
【０００５】
【非特許文献１】H. Gall et al., “CVS Release History Data for Detecting Logical Couplings”, Proceedings of the Sixth International Workshop on Principles of Software Evolution, IEEE, 2003.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
回路の設計工程において、設計者が回路に含まれる２つのモジュールの間の関連性に気付かずに、一方のモジュールの回路情報を変更した場合、他方のモジュールの回路情報の変更漏れが発生することがある。
【０００７】
１つの側面において、本発明は、設計対象回路に含まれるモジュール間の関連性を適切に抽出することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、設計支援装置は、生成部、変更部、及び出力部を含む。生成部は、設計対象回路に含まれる複数のモジュールのうち２つのモジュールの組み合わせについて、それらのモジュールの間の関連性を示す関連性情報を生成する。これらの２つのモジュールは、設計対象回路の設計工程において、設計対象回路の情報を記憶する記憶部に対して所定期間内にコミットされたモジュールである。
【０００９】
変更部は、複数の組み合わせに対する複数の関連性情報のうち、一方のモジュールの信号が他方のモジュールの信号に影響を与える組み合わせの関連性情報が示す関連性が小さくなるように、その組み合わせの関連性情報を変更する。出力部は、変更された関連性情報を含む複数の関連性情報を出力する。
【発明の効果】
【００１０】
実施形態によれば、設計対象回路に含まれるモジュール間の関連性を適切に抽出することができる。
【図面の簡単な説明】
【００１１】
【図１】ＬＳＩの設計工程を示す図である。
【図２】ロジカルカップリングを示す図である。
【図３】設計支援装置の機能的構成図である。
【図４】設計支援処理のフローチャートである。
【図５】設計支援装置の具体例を示す機能的構成図である。
【図６】設計対象回路を示す図である。
【図７】回路情報を示す図である。
【図８】グラフ形式の検証結果を示す図である。
【図９】グラフ形式のカップリング情報を示す図である。
【図１０】変更されたカップリング情報を示す図である。
【図１１】設計支援処理の具体例を示すフローチャートである。
【図１２】組み合わせリストを示す図である。
【図１３】コミットリストを示す図である。
【図１４】テーブル形式のカップリング情報を示す図である。
【図１５】組み合わせリストを用いて変更されたカップリング情報を示す図である。
【図１６】変更リストを示す図である。
【図１７】テーブル形式の検証結果を示す図である。
【図１８】検証結果を用いて変更されたカップリング情報を示す図である。
【図１９】所定期間内にコミットされた複数のモジュールを示す図である。
【図２０】情報処理装置の構成図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、実施形態を詳細に説明する。
ＬＳＩの論理設計で用いられる論理コードは、ソフトウェアのコードと同様にバージョン管理システムによって管理されている。したがって、非特許文献１の技術を論理コードに対して適用することで、ＬＳＩに含まれるモジュールの間の論理的な関連性を示すロジカルカップリングを検出することが可能である。
【００１３】
図１は、ＬＳＩの設計工程の例を示している。ＬＳＩに含まれるモジュールＡ〜モジュールＥの回路情報は、論理コードによって記述されており、時間の経過に伴って一部のモジュールの回路情報が１人又は複数の設計者によって変更される。各モジュールは、１つ以上の回路素子を含む。各回路素子は、トランジスタ、ダイオード、抵抗器、キャパシタ、インダクタ等であってもよい。
【００１４】
ＬＳＩの回路情報は、データベース等のレポジトリに格納されており、各設計者は、レポジトリから変更対象のモジュールの回路情報を読み出し、ローカルな記憶領域上で読み出した回路情報を変更する。そして、各設計者は、変更した回路情報をレポジトリに対してコミットすることで、変更内容をＬＳＩの回路情報に反映させる。
【００１５】
複数のモジュールの回路情報が変更された場合、それらのモジュールの回路情報が同時にコミットされることもある。例えば、時刻ｔにおいては、モジュールＡ、モジュールＢ、及びモジュールＤの回路情報が同時にコミットされている。
【００１６】
図２は、図１の設計工程から検出されるロジカルカップリングの例を示している。モジュール間の線分は、設計工程において線分の両端の２つのモジュールが同時にコミットされたことを示し、線分に付された数字は、同時にコミットされた回数を示している。この数字が大きいほど、同時にコミットされた回数が多いため、２つのモジュールの間の論理的な関連性が大きいと言える。ただし、同時にコミットされた２つのモジュールの間で、必ずしも直接的な信号の入出力関係が存在するとは限らない。
【００１７】
例えば、モジュールＢとモジュールＡが同時にコミットされた回数は２回であり、モジュールＢとモジュールＤが同時にコミットされた回数は５回である。したがって、モジュールＢとモジュールＤの関連性は、モジュールＢとモジュールＡの関連性よりも大きい。一方、モジュールＥは常に単独でコミットされているため、他のモジュールとの関連性は小さい。このように、同時にコミットされた２つのモジュールの間には何らかの依存関係があることが推測され、逆に、単独でコミットされたモジュールは独立性が高いことが推測される。
【００１８】
したがって、ロジカルカップリングを検出することで、回路情報が互いに関連している可能性が高いモジュールを、設計者に対して提示することが可能になる。例えば、同時にコミットされた回数が多いモジュールＢ及びモジュールＤのうち、モジュールＢの回路情報を変更した場合は、モジュールＤの回路情報も同時に変更することが望ましいと考えられる。この場合、モジュールＢ及びモジュールＤの関連性を設計者に対して提示することで、モジュールＤの変更漏れを防止できる。
【００１９】
しかし、設計者は、形式的検証を行うことで、回路内の多くのモジュール間の関連性を把握することができるため、ロジカルカップリングの検出結果をそのまま提示しても、意図した効果が得られないことがある。
【００２０】
モジュール間の関連性としては複数の要因が考えられるが、そのうちいくつかの要因は設計者にとって自明であるため、それらの要因に基づく関連性を示す情報は、有益な情報とは言えない。ロジカルカップリングの検出結果に自明な関連性を示す情報が多く含まれていると、設計者が気付きにくい非自明な関連性を示す情報が埋もれてしまい、非自明な関連性を見つけることが困難になる。その結果、非自明な関連性を有するモジュールの変更漏れが発生する。
【００２１】
例えば、同じプロトコルを用いる受信バッファと送信バッファのように、モジュール同士が共通の概念で繋がっている場合、それらのモジュールの関連性は回路の仕様によって規定されることが多く、設計者にとって自明である。また、一方のモジュールの出力信号が他方のモジュールの入力信号として用いられる回路のように、モジュール同士が論理的に繋がっている場合、それらのモジュールの関連性は形式的検証によって検出することができるため、設計者にとって自明である。
【００２２】
一方、モジュールの論理コードのコピー及びペーストによって、そのモジュールの回路情報が再利用される場合、コピー元のモジュールとコピー先のモジュールとの関連性は、設計者にとって自明ではない。
【００２３】
設計工程において先に生成されたモジュールと動作が類似するモジュールの論理コードを生成する場合、先に生成されたモジュールの論理コードをコピーして、その一部を書き換えることが多い。この場合、コピー元の論理コードに改変が起きても、コピー先の論理コードの対応部分が改変されず、設計者にとって気付きにくいバグの原因となることが多い。
【００２４】
なお、かかる問題は、ＬＳＩの設計工程に限らず、プリント基板に実装された回路等の設計工程においても生ずるものである。
【００２５】
図３は、設計支援装置の機能的構成例を示している。図３の設計支援装置３０１は、生成部３１１、変更部３１２、及び出力部３１３を含む。
【００２６】
図４は、図３の設計支援装置３０１が行う設計支援処理の例を示すフローチャートである。まず、生成部３１１は、設計対象回路に含まれる複数のモジュールのうち２つのモジュールの組み合わせについて、それらのモジュールの間の関連性を示す関連性情報を生成する（ステップ４０１）。これらの２つのモジュールは、設計対象回路の設計工程において、設計対象回路の情報を記憶する記憶部に対して所定期間内にコミットされたモジュールである。
【００２７】
次に、変更部３１２は、複数の組み合わせに対する複数の関連性情報のうち、特定の組み合わせの関連性情報が示す関連性が小さくなるように、その組み合わせの関連性情報を変更する（ステップ４０２）。特定の組み合わせは、一方のモジュールの信号が他方のモジュールの信号に影響を与える組み合わせである。そして、出力部３１３は、変更された関連性情報を含む複数の関連性情報を出力する（ステップ４０３）。
【００２８】
このような設計支援装置３０１によれば、設計対象回路に含まれるモジュール間の関連性を適切に抽出することができる。
【００２９】
図５は、図３の設計支援装置３０１の具体例を示している。図５の設計支援装置３０１は、生成部３１１、変更部３１２、出力部３１３、設計変更部５０１、記憶部５０２、及び記憶部５０３を含む。記憶部５０２は、レポジトリとして使用され、設計対象回路の回路情報５１１を記憶する。記憶部５０３は、組み合わせリスト５２１、コミットリスト５２２、変更リスト５２３、カップリング情報５２４、及び検証結果５２５を記憶する。
【００３０】
回路情報５１１は、例えば、バージョン管理システムによって管理されている論理コードである。設計変更部５０１は、設計工程における設計者の変更指示に従って、回路情報５１１の一部を変更する。
【００３１】
組み合わせリスト５２１は、ユーザによって指定されたモジュールの組み合わせを示す。例えば、ユーザは、共通の概念で繋がっている複数のモジュールを組み合わせリスト５２１に登録することができる。
【００３２】
生成部３１１は、回路情報５１１の論理コードから、同時にコミットされた複数のモジュールを示すコミットリスト５２２を生成して、記憶部５０３に格納する。同時にコミットされた複数のモジュールは、所定期間内にコミットされた複数のモジュールの一例である。そして、生成部３１１は、組み合わせリスト５２１及びコミットリスト５２２に基づいて、回路情報５１１の論理コードのうち、設計変更部５０１によって変更された部分を示す変更リスト５２３を生成し、記憶部５０３に格納する。
【００３３】
さらに、生成部３１１は、回路情報５１１の論理コードからロジカルカップリングを検出し、検出したロジカルカップリングを示すカップリング情報５２４を生成して、記憶部５０３に格納する。カップリング情報５２４は、設計対象回路に含まれる２つのモジュールの組み合わせ毎に、モジュール間の関連性を示す関連性情報を含む。各組み合わせの２つのモジュールは、記憶部５０２の回路情報５１１に対して同時にコミットされたモジュールである。例えば、生成部３１１は、非特許文献１の技術を論理コードに対して適用することで、カップリング情報５２４を生成することができる。
【００３４】
変更部３１２は、回路情報５１１及び変更リスト５２３を用いて設計対象回路の形式的検証を行うことで、検証結果５２５を生成し、記憶部５０３に格納する。検証結果５２５は、設計対象回路に含まれる複数のモジュールのうち、一方のモジュールの信号が他方のモジュールの信号に影響を与える関係を有する２つのモジュールの組み合わせを示す。
【００３５】
次に、変更部３１２は、カップリング情報５２４に含まれる複数の関連性情報のうち、検証結果５２５が示す組み合わせの関連性情報が示す関連性が小さくなるように、その組み合わせの関連性情報を変更することで、カップリング情報５２４を更新する。そして、出力部３１３は、更新後のカップリング情報５２４を出力する。
【００３６】
図６は、設計対象回路の例を示している。図６の設計対象回路６０１は、モジュールＡ〜モジュールＥを含み、外部から信号ＩＮ１及び信号ＩＮ２を受信して、信号ＯＵＴ１及び信号ＯＵＴ２を外部へ出力する。
【００３７】
モジュールＣは、信号ＩＮ１を受信して、信号ＳＣをモジュールＢへ出力する。モジュールＥは、信号ＩＮ２を受信して、信号ＳＥをモジュールＡへ出力する。モジュールＡは、信号ＳＥを受信して、信号ＳＡをモジュールＢへ出力するとともに、信号ＯＵＴ１を外部へ出力する。モジュールＢは、信号ＳＡ及び信号ＳＣを受信して、信号ＳＢをモジュールＤへ出力する。モジュールＤは、信号ＳＢを受信して、信号ＯＵＴ２を外部へ出力する。
【００３８】
モジュールＤは、送信バッファであり、モジュールＥは、モジュールＤと同じプロトコルを用いる受信バッファである。したがって、モジュールＤとモジュールＥは、共通の概念で繋がっている。この場合、モジュールＤとモジュールＥの組み合わせが、組み合わせリスト５２１に登録される。
【００３９】
図７は、図６の設計対象回路６０１に対する回路情報５１１の例を示している。図７の回路情報５１１は、設計者によって変更された情報が時系列に記録されているログファイル７０１〜ログファイル７０３を含む。
【００４０】
例えば、ログファイル７０１（Ｆｉｌｅ１）には、モジュールＡにおいて、図６の信号ＳＥに対応する信号ＩＮ＿ＳＥＴＴＩＮＧＳを、信号ｓｅｔｔｉｎｇ１に対して割り当てる論理コードが記述されている。この例では、信号ＩＮ＿ＳＥＴＴＩＮＧＳ及び信号ｓｅｔｔｉｎｇ１のビット幅が、９ビットから１０ビットに変更されている。ログファイル７０１〜ログファイル７０３には、信号のビット幅に対する変更以外に、信号名、信号線の接続関係、回路素子の種類及び個数等に対する変更が記録されることもある。
【００４１】
図８は、図６の設計対象回路６０１に対するグラフ形式の検証結果５２５の例を示している。図８の検証結果５２５は、モジュールＡの影響円すい（cone of influence：ＣＯＩ）８０１がモジュールＢ及びモジュールＤを含むことを示している。モジュールＡのＣＯＩ８０１は、モジュールＡが生成する信号が影響を与える範囲を表し、ＣＯＩ８０１に含まれるモジュールの信号は、モジュールＡが生成する信号の影響を受けることになる。
【００４２】
図９は、図６の設計対象回路６０１に対するグラフ形式のカップリング情報５２４の例を示している。モジュール間の線分は、線分の両端の２つのモジュールの組み合わせを示し、設計工程においてそれらのモジュールが同時にコミットされたことを表す。線分に付された数字は、関連性情報に対応し、同時にコミットされた回数を示している。コミット回数が多いほど、モジュール間の関連性は大きくなり、コミット回数が少ないほど、モジュール間の関連性は小さくなる。
【００４３】
例えば、モジュールＡとモジュールＤが同時にコミットされた回数は１回であり、モジュールＡとモジュールＢが同時にコミットされた回数は２回である。モジュールＢとモジュールＤが同時にコミットされた回数は５回であり、モジュールＢとモジュールＣが同時にコミットされた回数は３回である。モジュールＤとモジュールＥが同時にコミットされた回数は１回である。
【００４４】
図１０は、図８の検証結果５２５に基づいて変更されたカップリング情報５２４の例を示している。生成部３１１は、図９のカップリング情報５２４に含まれるコミット回数のうち、組み合わせリスト５２１に登録されているモジュール間のコミット回数を１だけデクリメントする。この例では、モジュールＤとモジュールＥの組み合わせが組み合わせリスト５２１に登録されているため、これらのモジュール間のコミット回数が１回から０回に変更され、モジュール間の線分が削除されている。
【００４５】
変更部３１２は、図９のカップリング情報５２４に含まれるコミット回数のうち、モジュールＡとＣＯＩ８０１に含まれるモジュールとの間のコミット回数を、１だけデクリメントする。この例では、モジュールＡとモジュールＢの間のコミット回数が２回から１回に変更され、モジュールＡとモジュールＤの間のコミット回数が１回から０回に変更される。これにより、モジュールＡとモジュールＤの間の線分が削除されている。
【００４６】
このように、共通の概念で繋がっているモジュール間の関連性と、論理的に繋がっているモジュール間の関連性とが、小さくなるか又は削除されるため、結果的に、それ以外の要因による関連性が強調される。したがって、設計者が気付きにくい非自明な関連性を強調して提示することが可能になり、モジュールの変更漏れが防止される。
【００４７】
例えば、論理コードのコピー及びペーストが行われ、コピー元のモジュールとコピー先のモジュールの論理コードが同時にコミットされている場合、それらのモジュール間の関連性が強調されて設計者に提示される。これにより、設計者は、一方のモジュールの論理コードを変更した場合、他方のモジュールの論理コードも漏れなく変更することが可能になる。これにより、回路検証の全体的なコストが削減される。
【００４８】
ロジカルカップリングの多くが設計者にとって自明な関連性である場合、それらの関連性を小さくすることで、設計者が変更漏れを確認する作業が容易になる。例えば、ロジカルカップリングの半数が自明である場合、変更漏れを確認する作業コストを最大５０％削減することが可能である。
【００４９】
図１１は、図５の設計支援装置３０１が行う設計支援処理の具体例を示すフローチャートである。まず、生成部３１１は、回路情報５１１の論理コードからロジカルカップリングを検出し、コミットリスト５２２及びカップリング情報５２４を生成する（ステップ１１０１）。そして、生成部３１１は、コミットリスト５２２のエントリに含まれているモジュールの組み合わせが、組み合わせリスト５２１に登録されているか否かをチェックする（ステップ１１０２）。
【００５０】
図１２は、図６の設計対象回路６０１に対する組み合わせリスト５２１の例を示している。図１２の組み合わせリスト５２１は、モジュールＤとモジュールＥの組み合わせを示すエントリ｛Ｄ；Ｅ｝を含む。
【００５１】
図１３は、図６の設計対象回路６０１に対するコミットリスト５２２の例を示している。図１３のコミットリスト５２２は、モジュールＥ及びモジュールＤが同時にコミットされたことを示すエントリ｛Ｅ；Ｄ｝と、モジュールＡ、モジュールＢ、及びモジュールＣが同時にコミットされたことを示すエントリ｛Ａ；Ｂ；Ｃ｝とを含む。
【００５２】
図１４は、図６の設計対象回路６０１に対するテーブル形式のカップリング情報５２４の例を示している。テーブルの各行及び各列は、１つのモジュールに対応し、行及び列によって指定されるセルに記載された数字は、行に対応するモジュールと列に対応するモジュールが同時にコミットされた回数を示している。図１４のカップリング情報５２４は、図９に示したカップリング情報５２４と等価である。
【００５３】
モジュールの組み合わせが組み合わせリスト５２１に登録されている場合（ステップ１１０２，ＹＥＳ）、生成部３１１は、カップリング情報５２４に含まれるコミット回数を１だけデクリメントする（ステップ１１０３）。例えば、図１３のモジュールＥとモジュールＤの組み合わせは、図１２の組み合わせリスト５２１に登録されているため、図１４のモジュールＤ及びモジュールＥに対応するセルのコミット回数が１回から０回に変更される。これにより、図１４のカップリング情報５２４は、図１５に示すように変更される。
【００５４】
一方、モジュールの組み合わせが組み合わせリスト５２１に登録されていない場合（ステップ１１０２，ＮＯ）、生成部３１１は、ステップ１１０４の処理を行う。ステップ１１０４において、生成部３１１は、ログファイルを参照して各モジュールの変更前後の論理コードを比較することで、設計変更部５０１によって変更された変数を特定し、その変数を変更リスト５２３に登録する。
【００５５】
次に、生成部３１１は、コミットリスト５２２の最後のエントリを処理したか否かをチェックし（ステップ１１０５）、未処理のエントリが残っている場合（ステップ１１０５，ＮＯ）、次のエントリについてステップ１１０２以降の処理を行う。
【００５６】
図１６は、図６の設計対象回路６０１に対する変更リスト５２３の例を示している。図１６の変更リスト５２３は、モジュールＡの信号ｓｅｔｔｉｎｇ１を含む。
【００５７】
コミットリスト５２２の最後のエントリを処理した場合（ステップ１１０５，ＹＥＳ）、変更部３１２は、回路情報５１１及び変更リスト５２３を用いて設計対象回路の形式的検証を行うことで、検証結果５２５を生成する（ステップ１１０６）。
【００５８】
図１７は、図６の設計対象回路６０１に対するテーブル形式の検証結果５２５の例を示している。変更された変数は、図１６の変更リスト５２３に含まれる変数を表し、ＣＯＩは、その変数に対応する信号のＣＯＩを表す。ＣＯＩに含まれる複数の要素のうち、１番目の要素は、信号を生成するモジュールを示し、２番目以降の要素は、１番目の要素が示すモジュールによって生成された信号の影響を受けるモジュールを示す。
【００５９】
図１７の検証結果５２５は、図８に示した信号ｓｅｔｔｉｎｇ１のＣＯＩ８０１を示すエントリを含む。この場合、ＣＯＩ８０１に対応する｛Ａ：Ｂ；Ｄ｝の１番目の要素が示すモジュールＡによって生成される信号ｓｅｔｔｉｎｇ１は、２番目の要素が示すモジュールＢと３番目の要素が示すモジュールＤの信号に影響を与える。
【００６０】
次に、変更部３１２は、検証結果５２５のエントリに登録されたＣＯＩの１番目の要素と２番目以降の要素の組み合わせに対応する、カップリング情報５２４のコミット回数を１だけデクリメントする（ステップ１１０７）。
【００６１】
次に、変更部３１２は、ＣＯＩの最後の要素を処理したか否かをチェックし（ステップ１１０８）、未処理の要素が残っている場合（ステップ１１０８，ＮＯ）、次の要素についてステップ１１０７以降の処理を行う。
【００６２】
そして、ＣＯＩの最後の要素を処理した場合（ステップ１１０８，ＹＥＳ）、変更部３１２は、検証結果５２５の最後のエントリを処理したか否かをチェックする（ステップ１１０９）。未処理のエントリが残っている場合（ステップ１１０９，ＮＯ）、変更部３１２は、次のエントリについてステップ１１０７以降の処理を行う。そして、検証結果５２５の最後のエントリを処理した場合（ステップ１１０９，ＹＥＳ）、出力部３１３は、カップリング情報５２４を出力する（ステップ１１１０）。
【００６３】
例えば、図１７の｛Ａ：Ｂ；Ｄ｝において、１番目の要素と２番目の要素の組み合わせは、モジュールＡ及びモジュールＢを示すため、図１５のモジュールＡ及びモジュールＢに対応するセルのコミット回数が２回から１回に変更される。また、１番目の要素と３番目の要素の組み合わせは、モジュールＡ及びモジュールＤを示すため、図１５のモジュールＡ及びモジュールＤに対応するセルのコミット回数が１回から０回に変更される。これにより、図１５のカップリング情報５２４は、図１８に示すように変更される。
【００６４】
ステップ１１０１において生成されるコミットリスト５２２及びカップリング情報５２４において、複数のモジュールが必ずしも同時にコミットされている必要はなく、所定期間内にコミットされていてもよい。この場合、カップリング情報５２４のコミット回数は、設計工程に含まれる複数の所定期間のうち、２つのモジュールがコミットされた所定期間の個数を表す。
【００６５】
図１９は、設計工程において、所定期間内にコミットされた複数のモジュールの例を示している。例えば、期間Ｔ１において、モジュールＡの回路情報が２回コミットされており、モジュールＢ及びモジュールＤの回路情報がそれぞれ１回ずつコミットされている。この場合、コミットリスト５２２には、これらのモジュールの組み合わせを示すエントリ｛Ａ；Ｂ；Ｄ｝が登録される。
【００６６】
また、期間Ｔ２において、モジュールＢの回路情報が３回コミットされており、モジュールＡ及びモジュールＣの回路情報がそれぞれ１回ずつコミットされている。この場合、コミットリスト５２２には、これらのモジュールの組み合わせを示すエントリ｛Ａ；Ｂ；Ｃ｝が登録される。
【００６７】
カップリング情報５２４において、モジュールＡ及びモジュールＢに対応するコミット回数は２回になり、モジュールＡ及びモジュールＣに対応するコミット回数と、モジュールＡ及びモジュールＤに対応するコミット回数は、１回になる。
【００６８】
期間Ｔ１及び期間Ｔ２は所定期間であり、設計対象回路の用途又は仕様に応じて決定することができる。この所定期間は、１時間〜１日であってもよく、２日以上であってもよい。期間が短いほど、１エントリに含まれるモジュールのうち、同時にコミットされたモジュールの割合が大きくなり、期間が長いほど、同時にコミットされたモジュールの割合が小さくなる。
【００６９】
このように、所定期間内にコミットされた複数のモジュールからコミットリスト５２２及びカップリング情報５２４が生成される場合であっても、設計支援装置３０１は、図１１と同様の設計支援処理を行うことができ、モジュールの変更漏れが防止される。
【００７０】
図３及び図５の設計支援装置３０１の構成は一例に過ぎず、設計支援装置３０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図５の設計支援装置３０１において、記憶部５０２が設計支援装置３０１の外部の装置に設けられる場合は、記憶部５０２を省略することができる。
【００７１】
図４及び図１１のフローチャートは一例に過ぎず、設計支援装置３０１の構成又は条件に応じて、一部の処理を省略又は変更してもよい。例えば、設計対象回路に対する組み合わせリスト５２１が用意されていない場合は、生成部３１１は、図１１のステップ１１０１においてコミットリスト５２２を生成する必要はなく、ステップ１１０２〜ステップ１１０５の処理も省略することができる。
【００７２】
ステップ１１０３において、生成部３１１は、コミット回数を１だけデクリメントする代わりに、コミット回数をＮ（Ｎは２以上の整数）だけデクリメントしてもよい。生成部３１１は、コミット回数をデクリメントする代わりに、コミット回数を０回に変更してもよい。
【００７３】
ステップ１１０７において、生成部３１１は、コミット回数を１だけデクリメントする代わりに、コミット回数をＮだけデクリメントしてもよい。生成部３１１は、コミット回数をデクリメントする代わりに、コミット回数を０回に変更してもよい。
【００７４】
図６の設計対象回路６０１は一例に過ぎず、設計支援装置３０１は、様々な設計対象回路に対して設計支援処理を行うことができる。図１及び図１９の設計工程と図７の回路情報５１１は一例に過ぎず、回路情報５１１及び設計工程は、設計対象回路及び設計者に応じて変化する。
【００７５】
図２のロジカルカップリング、図８及び図１７の検証結果５２５、図９、図１０、図１４、図１５、及び図１８のカップリング情報５２４、図１２の組み合わせリスト５２１、図１３のコミットリスト５２２、及び図１６の変更リスト５２３は一例に過ぎない。これらの情報は、回路情報５１１及び設計工程に応じて変化する。
【００７６】
図２０は、図３及び図５の設計支援装置３０１として用いられる情報処理装置（コンピュータ）の構成例を示している。図２０の情報処理装置は、Central Processing Unit（ＣＰＵ）２００１、メモリ２００２、入力装置２００３、出力装置２００４、補助記憶装置２００５、媒体駆動装置２００６、及びネットワーク接続装置２００７を備える。これらの構成要素はバス２００８により互いに接続されている。
【００７７】
メモリ２００２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ２００２は、記憶部５０３として用いることができる。
【００７８】
ＣＰＵ２００１（プロセッサ）は、例えば、メモリ２００２を利用してプログラムを実行することにより、生成部３１１、変更部３１２、及び設計変更部５０１として動作する。
【００７９】
入力装置２００３は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。入力される情報は、組み合わせリスト５２１であってもよい。
【００８０】
出力装置２００４は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は処理結果の出力に用いられる。出力装置２００４は、出力部３１３として用いることができる。処理結果は、変更部３１２によって変更されたカップリング情報５２４であってもよい。
【００８１】
補助記憶装置２００５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置２００５は、フラッシュメモリ又はハードディスクドライブであってもよい。情報処理装置は、補助記憶装置２００５にプログラム及びデータを格納しておき、それらをメモリ２００２にロードして使用することができる。補助記憶装置２００５は、記憶部５０２として用いることができる。
【００８２】
媒体駆動装置２００６は、可搬型記録媒体２００９を駆動し、その記録内容にアクセスする。可搬型記録媒体２００９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体２００９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体２００９にプログラム及びデータを格納しておき、それらをメモリ２００２にロードして使用することができる。
【００８３】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ２００２、補助記憶装置２００５、又は可搬型記録媒体２００９のような、物理的な（非一時的な）記録媒体である。
【００８４】
ネットワーク接続装置２００７は、Local Area Network、Wide Area Network等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置２００７を介して受信し、それらをメモリ２００２にロードして使用することができる。記憶部５０２が設計支援装置３０１の外部の装置に設けられる場合、情報処理装置は、回路情報５１１を外部の装置からネットワーク接続装置２００７を介して受信することができる。
【００８５】
なお、情報処理装置が図２０のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、オペレータ又はユーザからの指示又は情報を入力する必要がない場合は、入力装置２００３を省略してもよい。可搬型記録媒体２００９又は通信ネットワークを利用しない場合は、媒体駆動装置２００６又はネットワーク接続装置２００７を省略してもよい。
【００８６】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【００８７】
図１乃至図２０を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
設計対象回路に含まれる複数のモジュールのうち、前記設計対象回路の設計工程において、前記設計対象回路の情報を記憶する記憶部に対して所定期間内にコミットされた２つのモジュールの組み合わせについて、前記２つのモジュールの間の関連性を示す関連性情報を生成する生成部と、
複数の組み合わせに対する複数の関連性情報のうち、一方のモジュールの信号が他方のモジュールの信号に影響を与える組み合わせの関連性情報が示す関連性が小さくなるように、前記一方のモジュールの信号が前記他方のモジュールの信号に影響を与える前記組み合わせの前記関連性情報を変更する変更部と、
変更された前記関連性情報を含む前記複数の関連性情報を出力する出力部と、
を備えることを特徴とする設計支援装置。
（付記２）
前記２つのモジュールの間の関連性は、前記設計工程に含まれる複数の前記所定期間のうち、前記２つのモジュールがコミットされた前記所定期間の個数を示し、
前記変更部は、前記一方のモジュールの信号が前記他方のモジュールの信号に影響を与える前記組み合わせの前記関連性情報が示す前記所定期間の個数を削減することを特徴とする付記１記載の設計支援装置。
（付記３）
前記一方のモジュールの信号は、前記設計工程において変更された信号であることを特徴とする付記１又は２記載の設計支援装置。
（付記４）
前記生成部は、前記複数の組み合わせに対する前記複数の関連性情報のうち、ユーザによって指定された所定の組み合わせの関連性情報が示す関連性が小さくなるように、前記所定の組み合わせの前記関連性情報を変更することを特徴とする付記１乃至３のいずれか１項に記載の設計支援装置。
（付記５）
コンピュータが、
設計対象回路に含まれる複数のモジュールのうち、前記設計対象回路の設計工程において、前記設計対象回路の情報を記憶する記憶部に対して所定期間内にコミットされた２つのモジュールの組み合わせについて、前記２つのモジュールの間の関連性を示す関連性情報を生成し、
複数の組み合わせに対する複数の関連性情報のうち、一方のモジュールの信号が他方のモジュールの信号に影響を与える組み合わせの関連性情報が示す関連性が小さくなるように、前記一方のモジュールの信号が前記他方のモジュールの信号に影響を与える前記組み合わせの前記関連性情報を変更し、
変更された前記関連性情報を含む前記複数の関連性情報を出力する、
ことを特徴とする設計支援方法。
（付記６）
前記２つのモジュールの間の関連性は、前記設計工程に含まれる複数の前記所定期間のうち、前記２つのモジュールがコミットされた前記所定期間の個数を示し、
前記コンピュータは、前記一方のモジュールの信号が前記他方のモジュールの信号に影響を与える前記組み合わせの前記関連性情報が示す前記所定期間の個数を削減することを特徴とする付記５記載の設計支援方法。
（付記７）
前記一方のモジュールの信号は、前記設計工程において変更された信号であることを特徴とする付記５又は６記載の設計支援方法。
（付記８）
前記コンピュータは、前記複数の組み合わせに対する前記複数の関連性情報のうち、ユーザによって指定された所定の組み合わせの関連性情報が示す関連性が小さくなるように、前記所定の組み合わせの前記関連性情報を変更することを特徴とする付記５乃至７のいずれか１項に記載の設計支援方法。
【符号の説明】
【００８８】
３０１  設計支援装置
３１１  生成部
３１２  変更部
３１３  出力部
５０１  設計変更部
５０２、５０３  記憶部
５１１  回路情報
５２１  組み合わせリスト
５２２  コミットリスト
５２３  変更リスト
５２４  カップリング情報
５２５  検証結果
６０１  設計対象回路
７０１〜７０３  ログファイル
８０１  ＣＯＩ
２００１  ＣＰＵ
２００２  メモリ
２００３  入力装置
２００４  出力装置
２００５  補助記憶装置
２００６  媒体駆動装置
２００７  ネットワーク接続装置
２００８  バス
２００９  可搬型記録媒体
【図１】
2018112948.tif 000003
【図２】
2018112948.tif 000004
【図３】
2018112948.tif 000005
【図４】
2018112948.tif 000006
【図５】
2018112948.tif 000007
【図６】
2018112948.tif 000008
【図７】
2018112948.tif 000009
【図８】
2018112948.tif 000010
【図９】
2018112948.tif 000011
【図１０】
2018112948.tif 000012
【図１１】
2018112948.tif 000013
【図１２】
2018112948.tif 000014
【図１３】
2018112948.tif 000015
【図１４】
2018112948.tif 000016
【図１５】
2018112948.tif 000017
【図１６】
2018112948.tif 000018
【図１７】
2018112948.tif 000019
【図１８】
2018112948.tif 000020
【図１９】
2018112948.tif 000021
【図２０】
2018112948.tif 000022