(57)【要約】【課題】異なるスタイルチェックツールのチェック結果から適切に差分を抽出して、ハードウェア記述言語の設計を容易にすることを課題とする。【解決手段】論理設計支援装置１は、修正後の論理記述の記述箇所のうちの未修整箇所の記述位置と、修正前の論理記述の記述箇所の記述位置との位置関係を特定する。そして、論理設計支援装置１は、特定された位置関係を用いて、修正前チェック結果と修正後チェック結果とが対応する位置を特定し、特定した位置に所在する修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換する。そして、論理設計支援装置１は、メッセージのフォーマットが置換された修正前チェック結果と修正後チェック結果との差分を抽出する。【選択図】図１
2011258092.tif 000002
【特許請求の範囲】
【請求項１】
第１のスタイルチェックツールを修正前の論理記述に適用した修正前チェック結果と、前記第１のスタイルチェックツールとメッセージフォーマットが異なる第２のスタイルチェックツールを修正後の論理記述に適用した修正後チェック結果との差分を抽出する論理記述差分抽出方法であって、
前記修正後の論理記述の記述箇所のうちの未修整箇所の記述位置と、前記修正前の論理記述の記述箇所の記述位置との位置関係を特定する記述位置特定ステップと、
前記記述位置特定ステップによって特定された位置関係を用いて、前記修正前チェック結果と前記修正後チェック結果とが対応する位置を特定し、特定した位置に所在する修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換するメッセージ置換ステップと、
前記メッセージ置換ステップによってメッセージのフォーマットが置換された前記修正前チェック結果と前記修正後チェック結果との差分を抽出する差分抽出ステップと
を含んだことを特徴とする論理記述差分抽出方法。
【請求項２】
前記メッセージ置換ステップは、前記修正前チェック結果のメッセージと前記修正後チェック結果のメッセージとを対応付けて記憶するメッセージ辞書を用いて、修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換することを特徴とする請求項１に記載の論理記述差分抽出方法。
【請求項３】
同一の論理記述に対して第１のスタイルチェックツールと第２のスタイルチェックツールとをそれぞれ適用してチェック結果を取得し、前記第１のスタイルチェックツールのチェック結果のメッセージと、該メッセージと同一の位置にある第２のスタイルチェックツールのチェック結果のメッセージとを対応付けて前記メッセージ辞書に格納するメッセージ辞書格納ステップをさらに含んだことを特徴とする論理記述差分抽出方法。
【請求項４】
第１のスタイルチェックツールを修正前の論理記述に適用した修正前チェック結果と、前記第１のスタイルチェックツールとメッセージフォーマットが異なる第２のスタイルチェックツールを修正後の論理記述に適用した修正後チェック結果との差分を抽出する論理設計支援装置であって、
前記修正後の論理記述の記述箇所のうちの未修整箇所の記述位置と、前記修正前の論理記述の記述箇所の記述位置との位置関係を特定する記述位置特定部と、
前記記述位置特定部によって特定された位置関係を用いて、前記修正前チェック結果と前記修正後チェック結果とが対応する位置を特定し、特定した位置に所在する修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換するメッセージ置換部と、
前記メッセージ置換部によってメッセージのフォーマットが置換された前記修正前チェック結果と前記修正後チェック結果との差分を抽出する差分抽出部と
を備えたことを特徴とする論理設計支援装置。
【請求項５】
第１のスタイルチェックツールを修正前の論理記述に適用した修正前チェック結果と、前記第１のスタイルチェックツールとメッセージフォーマットが異なる第２のスタイルチェックツールを修正後の論理記述に適用した修正後チェック結果との差分を抽出する論理記述差分抽出プログラムであって、
前記修正後の論理記述の記述箇所のうちの未修整箇所の記述位置と、前記修正前の論理記述の記述箇所の記述位置との位置関係を特定する記述位置特定手順と、
前記記述位置特定手順によって特定された位置関係を用いて、前記修正前チェック結果と前記修正後チェック結果とが対応する位置を特定し、特定した位置に所在する修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換するメッセージ置換手順と、
前記メッセージ置換手順によってメッセージのフォーマットが置換された前記修正前チェック結果と前記修正後チェック結果との差分を抽出する差分抽出手順と
をコンピュータに実行させることを特徴とする論理記述差分抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理記述差分抽出方法、論理設計支援装置および論理記述差分抽出プログラムに関する。
【背景技術】
【０００２】
近年、論理回路を設計する場合に、ＲＴＬ（Register  Transfer  Level）と呼ばれるスタイルでハードウェア記述を行うことが多い。かかるＲＴＬのハードウェア記述は、通常は人手によって行われるため、その記述内容に誤りが存在する可能性がある。
【０００３】
このような記述内容の誤りを防止するため、論理回路の設計を支援する論理設計支援装置では、ハードウェア記述の妥当性をチェックしてチェック結果を出力している。具体的には、この論理設計支援装置は、スタイルチェックツールを用いてハードウェア記述の妥当性をチェックし、チェック結果として警告メッセージなどを出力する。
【０００４】
このため、ユーザは、論理設計支援装置のチェック結果を参照して、ハードウェア記述言語の修正を行うことができる。ただし、ユーザによる修正によって、新たな誤りが発生する可能性があるため、修正後のハードウェア記述に対して再度スタイルチェックツールを適用し、ハードウェア記述の妥当性を再チェックすることになる。
【０００５】
このように、論理設計支援装置では、修正前のハードウェア記述並びに修正後のハードウェア記述の両方に対してスタイルチェックツールを適用して、それぞれのハードウェア記述の妥当性をチェックしている。
【０００６】
ここで、論理設計支援装置のスタイルチェックツールが厳しい妥当性チェックを行う場合には、ハードウェア記述毎に膨大な警告メッセージが出力されてしまい、どの警告メッセージが重要であるかをユーザが判断しずらくなってしまう。
【０００７】
このため、修正前後のハードウェア記述に対するチェック結果の差分を抽出し、ハードウェア記述の修正に伴って新たに発生したチェック結果のみを出力してユーザの判断を容易にする技術が知られている。未修正部分については、重要な警告ではないとみなして除外したのである。例えば、ハードウェア記述の修正位置を行数に依存しない定義位置で特定し、チェック結果を新規、修正済み、未修正、確認済みに分類して差分を自動で抽出することになる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−４４０２３号公報
【特許文献２】特開平５−３３４０６２号公報
【特許文献３】特開２０００−２０７４４０号公報
【特許文献４】特開２００４−１２６８６６号公報
【特許文献５】特開２００７−３４５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来技術は、修正前後のソフトウエア記述に適用するスタイルチェックツールが同一である場合を大前提としており、両者に適用するスタイルチェックツールが異なる場合には適用できないという問題がある。修正前後のソフトウエア記述に適用するスタイルチェックツールが異なる場合には、単純にチェック結果の差分を取る事ができないからである。なお、修正前後のソフトウエア記述に適用するスタイルチェックツールが同一であっても、出力フォーマットの設定が異なる場合にも同様の問題が生ずる。
【００１０】
この発明は、上述した従来技術の課題を解決するためになされたものであり、修正前後のソフトウエア記述にスタイルチェックツールを適用したチェック結果の差分を抽出する場合に、修正前後のソフトウエア記述に適用されるスタイルチェックツールが異なる場合であっても適正にチェック結果の差分を抽出することができる論理記述差分抽出方法、論理設計支援装置および論理記述差分抽出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する論理記述差分抽出方法は、一つの態様において、修正後の論理記述の記述箇所のうちの未修整箇所の記述位置と、修正前の論理記述の記述箇所の記述位置との位置関係を特定する。そして、論理記述差分抽出方法では、特定された位置関係を用いて、修正前チェック結果と修正後チェック結果とが対応する位置を特定し、特定した位置に所在する修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換する。そして、メッセージのフォーマットが置換された修正前チェック結果と修正後チェック結果との差分を抽出する。
【発明の効果】
【００１２】
本願の開示する論理記述差分抽出方法の一つの態様によれば、異なるスタイルチェックツールのチェック結果から適切に差分を抽出して、ハードウェア記述言語の設計を容易にするという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る論理設計支援装置の構成を示すブロック図である。
【図２】図２は、実施例２に係る論理設計支援装置の構成を示すブロック図である。
【図３】図３は、スタイルチェック結果例を示す図である。
【図４】図４は、メッセージ対応辞書作成処理を説明する図である。
【図５】図５は、メッセージ対応辞書１のフォーマットを示す図である。
【図６】図６は、メッセージ対応辞書２のフォーマットを示す図である。
【図７】図７は、メッセージ対応辞書３のフォーマットを示す図である。
【図８】図８は、フォーマットファイル記述例を示す図である。
【図９】図９は、スタイルチェック結果差分抽出処理を説明する図である。
【図１０】図１０は、メッセージの分類を説明する図である。
【図１１】図１１は、スタイルチェック結果の差分を抽出する例を説明する図である。
【図１２】図１２は、実施例２に係る論理設計支援装置による処理の流れを示すシーケンス図である。
【図１３】図１３は、実施例２に係る論理設計支援装置による処理の流れを示すシーケンス図である。
【図１４】図１４は、実施例２に係る論理設計支援装置による処理の流れを示すシーケンス図である。
【図１５】図１５は、論理記述差分抽出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明に係る論理記述差分抽出方法、論理設計支援装置および論理記述差分抽出プログラムの実施例を詳細に説明する。
【実施例１】
【００１５】
以下の実施例では、実施例１に係る論理設計支援装置の構成および処理を説明する。実施例１に係る論理設計支援装置１は、第１のスタイルチェックツールを修正前の論理記述に適用した修正前チェック結果を取得する。そして、論理設計支援装置１は、第１のスタイルチェックツールとメッセージフォーマットが異なる第２のスタイルチェックツールを修正後の論理記述に適用した修正後チェック結果を取得する。その後、論理設計支援装置１は、修正前チェック結果と修正後チェック結果との差分を抽出する。
【００１６】
図１に示すように、論理設計支援装置１は、記述位置特定部２、メッセージ置換部３、差分抽出部４を有する。図１は、実施例１に係る論理設計支援装置の構成を示すブロック図である。記述位置特定部２は、修正後の論理記述の記述箇所のうちの未修整箇所の記述位置と、修正前の論理記述の記述箇所の記述位置との位置関係を特定する。
【００１７】
メッセージ置換部３は、記述位置特定部２によって特定された位置関係を用いて、修正前チェック結果と修正後チェック結果とが対応する位置を特定する。そして、メッセージ置換部３は、特定した位置に所在する修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換する。
【００１８】
差分抽出部４は、メッセージ置換部３によってメッセージのフォーマットが置換された修正前チェック結果と修正後チェック結果との差分を抽出する。
【００１９】
このように、修正前のハードウェア記述に用いられたスタイルチェックツールと修正後のハードウェア記述に用いられたスタイルチェックツールとが異なる場合でも、チェック結果の差分を適切に抽出する。
【実施例２】
【００２０】
以下の実施例では、実施例２に係る論理設計支援装置の構成および処理の流れを順に説明し、最後に実施例２による効果を説明する。なお、以下では、修正前のハードウェア記述のスタイルチェックに使用されるスタイルチェックツールの種類と、修正後のハードウェア記述のスタイルチェックに使用されるスタイルチェックツールの種類とが異なる例について説明する。
【００２１】
［論理設計装置の構成］
まず最初に、図２を用いて、論理設計支援装置１０の構成を説明する。図２は、実施例２に係る論理設計支援装置１０の構成を示すブロック図である。同図に示すように、この論理設計支援装置１０は、入力部１１、出力部１２、制御部１３、記憶部１４を有する。以下にこれらの各部の処理を説明する。
【００２２】
入力部１１は、修正前のＲＴＬハードウェア記述の内容（以下、ＲＴＬ１という）、修正後のＲＴＬハードウェア記述の内容（以下、ＲＴＬ２という）、ハードウェア記述に対するスタイルチェックツールのチェック結果などを入力する。
【００２３】
ここで、スタイルチェックツールのチェック結果の例について、図３を用いて説明する。図３は、スタイルチェック結果例を示す図である。図３の例では、修正前のハードウェア記述に対するスタイルチェックツールＡのチェック結果である結果リストＡと、修正後のハードウェア記述に対するスタイルチェックツールＢのチェック結果である結果リストＢを示す。図３に例示するように、スタイルチェックツールＡとスタイルチェックツールＢとでは、メッセージのフォーマットが異なる。
【００２４】
出力部１２は、修正前のハードウェア記述に対するスタイルチェックツールＡのチェック結果Ａと、修正後のハードウェア記述に対するスタイルチェックツールＢのチェック結果Ｂとの差分を出力する。
【００２５】
記憶部１４は、制御部１３による各種処理に必要なデータおよびプログラムを格納するが、特に、ＲＴＬ記述一致情報記憶部１４ａおよびメッセージ対応辞書記憶部１４ｂを有する。このＲＴＬ記述一致情報記憶部１４ａは、ＲＴＬ１とＲＴＬ２との間で一致する記述内容を記憶するとともに、記述内容が同一である箇所のＲＴＬ１の行番号とＲＴＬ２の行番号とを付けて記憶する。
【００２６】
メッセージ対応辞書記憶部１４ｂは、修正前のハードウェア記述のスタイルチェックに使用されるスタイルチェックツールＡのメッセージと、修正後のハードウェア記述のスタイルチェックに使用されるスタイルチェックツールＢとのメッセージとを対応付けて記憶する。
【００２７】
具体的には、メッセージ対応辞書記憶部１４ｂは、スタイルチェックツールＡのメッセージとスタイルチェックツールＢとのメッセージとを一対一で対応付けて記憶するメッセージ辞書１を有する。また、メッセージ対応辞書記憶部１４ｂは、スタイルチェックツールＡとスタイルチェックツールＢとの間で対応しないメッセージを記憶するメッセージ辞書２を有する。
【００２８】
また、メッセージ対応辞書記憶部１４ｂは、スタイルチェックツールＡのメッセージとスタイルチェックツールＢとのメッセージとを多対多で対応付けて記憶するメッセージ辞書３を有する。なお、メッセージ辞書の詳しい説明については、後に図６〜図８を用いて詳述する。
【００２９】
制御部１３は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。特に、ＲＴＬ記述一致情報作成部１３ａ、メッセージ対応辞書作成部１３ｂ、スタイルチェック結果入力部１３ｃ、スタイルチェック差分抽出部１３ｄを有する。
【００３０】
ＲＴＬ記述一致情報作成部１３ａは、修正前のハードウェア記述における記述内容と修正後のハードウェア記述における記述内容とで一致する記載箇所がある場合には、ファイル名、行番号、記述内容をＲＴＬ記述一致情報記憶部１４ａに記憶する。
【００３１】
また、ＲＴＬ記述一致情報作成部１３ａは、修正後のハードウェア記述の記述箇所のうちの未修整箇所の記述位置と、修正前のハードウェア記述の記述箇所の記述位置との位置関係を特定する。
【００３２】
具体的には、ＲＴＬ記述一致情報作成部１３ａは、修正前のＲＴＬ１と修正後のＲＴＬ２が入力部１１から入力されると、入力したＲＴＬ１およびＲＴＬ２から同じ名称のモジュールを検索する。ここで、モジュールとは、ＲＴＬの構成単位のことをいう。
【００３３】
例えば、Ｖｅｒｉｌｏｇ―ＨＤＬ言語では、ｍｏｄｕｌｅ名称からｅｎｄｍｏｄｕｌｅの間に記述されたものが一つの単位となる。また、ＶＨＤＬ言語では、ｅｎｔｉｔｙ名称からｅｎｄ名称と、ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ名ｏｆ  ｅｎｔｉｔｙ名からｅｎｄアーキテクチャ名の間に記述されものが一つの単位となる。
【００３４】
そして、ＲＴＬ記述一致情報作成部１３ａは、ＲＴＬ１およびＲＴＬ２から同じ名称のモジュールが検索された場合に、修正前のハードウェア記述における記述内容と修正後のハードウェア記述における記述内容とで一致する記載箇所があるか判定する。
【００３５】
この結果、ＲＴＬ記述一致情報作成部１３ａは、一致する記載箇所がある場合には、ＲＴＬ１およびＲＴＬ２から記載箇所のファイル名、行番号、記述内容をＲＴＬ記述一致情報記憶部１４ａにそれぞれ対応付けて記憶する。このように、記載内容が一致する記載箇所を対応付けて記憶しているので、記載内容が一致するメッセージのＲＴＬ１における位置とＲＴＬ２における位置との対応関係を把握することができる。
【００３６】
メッセージ対応辞書作成部１３ｂは、スタイルチェックツールＡのメッセージとスタイルチェックツールＢとのメッセージとを一対一で対応付けて記憶するメッセージ対応辞書を作成する。具体的には、メッセージ対応辞書作成部１３ｂは、図４に示すように、同じＲＴＬハードウェア記述に対してスタイルチェックツールＡおよびスタイルチェックツールＢでチェックを行う。図４は、メッセージ対応辞書作成処理を説明する図である。
【００３７】
そして、メッセージ対応辞書作成部１３ｂは、同じＲＴＬハードウェア記述に対してスタイルチェックツールＡのチェック結果リストＡと、スタイルチェックツールＢのチェック結果リストＢを取得する。続いて、メッセージ対応辞書作成部１３ｂは、チェック結果リストＡおよびチェック結果リストＢから行番号とメッセージ本体をそれぞれ抽出し、対応表Ａおよび対応表Ｂを作成する。
【００３８】
そして、メッセージ対応辞書作成部１３ｂは、メッセージ対応辞書を作成する処理（後に、図１３を用いて詳述）を行って、スタイルチェックツールＡのメッセージとスタイルチェックツールＢとのメッセージとで一対一で対応するものがあるか判定する。
【００３９】
その結果、メッセージ対応辞書作成部１３ｂは、スタイルチェックツールＡのメッセージとスタイルチェックツールＢとのメッセージとで一対一で対応するものがあると判定した場合には、対応するメッセージ同士を対応付けてメッセージ対応辞書１に記憶させる。
【００４０】
図５に示すように、メッセージ対応辞書１では、スタイルチェックツールＡおよびスタイルチェックツールＢが出力した一対一で対応する「メッセージ」、そのメッセージが位置する行の番号を示す「行番号」、ファイルの名称を示す「ファイル名」が対応付けて記憶されている。図５は、メッセージ対応辞書１のフォーマットを示す図である。
【００４１】
また、メッセージ対応辞書作成部１３ｂは、スタイルチェックツールＡのメッセージとスタイルチェックツールＢとのメッセージとで一対一で対応するものがあると判定した場合には、対応しないメッセージをメッセージ対応辞書２に記憶させる。
【００４２】
図６に示すように、メッセージ対応辞書２では、スタイルチェックツールＡまたはスタイルチェックツールＢのいずれかで出力されたメッセージ、そのメッセージの位置を示す行番号、ファイル名、スタイルチェックツール名がそれぞれ対応付けて記憶されている。図６は、メッセージ対応辞書２のフォーマットを示す図である。
【００４３】
また、メッセージ対応辞書作成部１３ｂは、同一行に複数メッセージが存在し、スタイルチェックツールＡのメッセージとスタイルチェックツールＢとのメッセージとで多対多で対応するものがあると判定した場合には、メッセージ対応辞書３に記憶させる。
【００４４】
図７に示すように、メッセージ対応辞書３では、スタイルチェックツールＡおよびスタイルチェックツールＢにおける同一行の複数のメッセージを対応付けて記憶する。図７は、メッセージ対応辞書３のフォーマットを示す図である。図７の例では、メッセージ対応辞書３は、辞書中のメッセージアドレスを（１）の項目に記憶し、辞書から削除されたことを示す無効化フラグ（１が存在、０が削除を示す）を（２）の項目に記憶する。
【００４５】
また、メッセージ対応辞書３は、対応するスタイルチェックツールのメッセージアドレスの先頭を（３）の項目に記憶し、対応するスタイルチェックツールのメッセージアドレスの末尾を（４）の項目に記憶する。
【００４６】
スタイルチェック結果入力部１３ｃは、修正前のチェック結果リストと修正後のチェック結果リストをフォーマットに従って読み出す。具体的には、スタイルチェック結果入力部１３ｃは、スタイルチェックツールごとにフォーマットファイルを保持している。
【００４７】
例えば、図８に例示するように、スタイルチェック結果入力部１３ｃは、スタイルチェックツールＡに対応するチェック結果リストＡ用フォーマットファイルと、スタイルチェックツールＢに対応するチェック結果リストＢ用フォーマットファイルを有する。
【００４８】
つまり、ＲＴＬ１をスタイルチェックツールＡで記述チェックした結果リスト１Ａと、ＲＴＬ２をスタイルチェックツールＢで記述チェックした結果リスト２Ｂが存在するものとする。スタイルチェック結果入力部１３ｃは、この２つのリストの記載された情報のフォーマットがそれぞれ異なるので、同一の方法で読み込むことができない。このため、スタイルチェック結果入力部１３ｃは、スタイルチェックツールに対応するフォーマットに従い、スタイルチェック結果リストの読み込みをおこなう。
【００４９】
メッセージ置換部１３ｄは、ＲＴＬ記述一致情報作成部１３ａによって特定された位置関係を用いて、修正前チェック結果と修正後チェック結果とが対応する位置を特定する。そして、メッセージ置換部１３ｄは、特定した位置に所在する修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換する。
【００５０】
具体的には、メッセージ置換部１３ｄは、スタイルチェック結果入力部１３ｃによって読み出された修正前チェック結果のメッセージをキーとして、メッセージ対応辞書１を検索する。そして、メッセージ置換部１３ｄは、メッセージの内容が一致するメッセージが見つかった場合には、スタイルチェックツールＢのメッセージに置換する。
【００５１】
スタイルチェック差分抽出部１３ｅは、メッセージ置換部１３ｄによってメッセージのフォーマットが置換された修正前チェック結果と修正後チェック結果との差分を抽出する。具体的には、スタイルチェック差分抽出部１３ｅは、図９に示すように、スタイルチェック結果入力部１３ｃによって読み出された修正前チェック結果、修正後チェック結果、ＲＴＬ記述一致情報およびメッセージ対応辞書１を取得する。図９は、スタイルチェック結果差分抽出処理を説明する図である。
【００５２】
そして、スタイルチェック差分抽出部１３ｅは、チェック結果、ＲＴＬ記述一致情報およびメッセージ対応辞書１を用いて、スタイルチェックツールＡの結果およびスタイルチェックツールＢの結果の差分を抽出する処理（後に図１４を用いて詳述）を行う。
【００５３】
ここで、スタイルチェックツールＡの結果およびスタイルチェックツールＢの結果の差分を抽出するために、チェック結果の各メッセージを分類する処理を行う。ここで、チェック結果の各メッセージを分類する処理について図１０を用いて説明する。図１０は、メッセージの分類を説明する図である。
【００５４】
同図に示すように、スタイルチェック差分抽出部１３ｅは、各メッセージが所定の検出条件に該当するか判定し、メッセージ分類（１）〜（４）のいずれかに分類する。そして、メッセージ分類（１）および（２）をスタイルチェックツールＡの結果およびスタイルチェックツールＢの結果の差分として抽出する。
【００５５】
メッセージ分類（１）は、ＲＴＬ記述一致情報にないことが検出条件である。つまり、修正行に発生した新たなメッセージであり、スタイルチェックツールＡの結果およびスタイルチェックツールＢの結果の差分として抽出される。
【００５６】
また、メッセージ分類（２）は、このメッセージデータは、ＲＴＬ記述一致情報にあって修正前チェック結果にない、または、ＲＴＬ記述一致情報にあってかつメッセージ対応辞書にないメッセージである。
【００５７】
メッセージ分類（２）に分類されるメッセージは、修正の影響で新たに未修正行に発生したメッセージもしくは修正前のチェックツールでの過剰チェックメッセージである。メッセージ分類（２）も同様に、スタイルチェックツールＡの結果およびスタイルチェックツールＢの結果の差分として抽出される。
【００５８】
例えば、メッセージ分類（２）に分類されるメッセージの例として、図１１を用いて説明する。図１１は、スタイルチェック結果の差分を抽出する例を説明する図である。図１１に示すように、エラー行の前にある修正行「ＩＦ（Ｘ＝Ｙ）ＴＨＥＮ」を追加したことで、「ＩＦ（Ｅ＝Ｆ）ＴＨＥＮ」の行が影響を受けている。「ＩＦ（Ｅ＝Ｆ）ＴＨＥＮ」の行については、未修正であるが、差分として抽出する。
【００５９】
つまり、図１１の例では、「ＩＦ（Ｅ＝Ｆ）ＴＨＥＮ」の内容について未修正であっても、ＩＦ文である「ＩＦ（Ｘ＝Ｙ）ＴＨＥＮ」が追加されたことで、ＩＦ文の深さの規定値をオーバーしている可能性がある。このため、修正の影響で新たに未修正行に発生したメッセージも差分として抽出するとともに、追加行の影響（例えば、ＩＦ文の深さが規定値以上となった旨）やエラー行の前にあるＩＦ文を通知するようにしてもよい。
【００６０】
このように、ＲＴＬスタイルチェック自身がＲＴＬ／ハードウェアを意識したチェックを行うとともに、差分抽出として、純粋に修正前後の差を抽出することで、ユーザのＲＴＬ記述の品質向上を助け、品質向上や工数短縮に寄与することできる。
【００６１】
メッセージ分類（３）は、ＲＴＬ記述一致情報にある、かつ、修正前チェック結果にあるメッセージである。つまり、メッセージ分類（３）に分類されるメッセージは、未修正行に対する同一メッセージである。このため、メッセージ分類（３）に分類されるメッセージは、スタイルチェックツールＡの結果およびスタイルチェックツールＢの結果と同一であるので、差分として抽出されない。
【００６２】
メッセージ分類（４）は、修正後チェック結果にないメッセージである。つまり、メッセージ分類（４）に分類されるメッセージは、修正によりなくなったメッセージであり、差分として出力する必要が無く、差分として抽出されない。
【００６３】
このように、メッセージ分類（１）および（２）に分類されたメッセージをスタイルチェックツールＡの結果およびスタイルチェックツールＢの結果の差分として抽出し、出力部１２を介して出力する。
【００６４】
［論理設計支援装置による処理］
次に、図１２〜図１４を用いて、実施例２に係る論理設計支援装置１０による処理を説明する。図１２〜図１４は、実施例２に係る論理設計支援装置による処理の流れを示すシーケンス図である。
【００６５】
図１２に示すように、論理設計支援装置１０のＲＴＬ記述一致情報作成部１３ａは、修正前のＲＴＬと修正後のＲＴＬとで一致する記述内容をＲＴＬ記述一致情報として作成する（ステップＳ１０１）。そして、論理設計支援装置１０のメッセージ対応辞書作成部１３ｂは、メッセージ対応辞書作成処理（後に図１３を用いて詳述）を行う（ステップＳ１０２）。
【００６６】
その後、論理設計支援装置１０のスタイルチェック結果入出力部１３ｃは、修正前のチェック結果リストと修正後のチェック結果リストをフォーマットに従って読み出す（ステップＳ１０３）。そして、論理設計支援装置１０のスタイルチェック差分抽出部１３ｅは、スタイルチェック結果の差分を抽出する処理（後に図１４を用いて詳述）を行う（ステップＳ１０４）。
【００６７】
ここで、図１３を用いて、実施例２に係る論理設計支援装置１０によるメッセージ対応辞書作成処理の流れを説明する。同図に示すように、論理設計支援装置１０のメッセージ対応辞書作成部１３ｂは、同一ＲＴＬに対してスタイルチェックツールＡおよびスタイルチェックツールＢでスタイルチェックを実行する。
【００６８】
そして、メッセージ対応辞書作成部１３ｂは、スタイルチェックを実行した結果である結果ファイルから行番号とメッセージ本体を分離して抽出し、行番号とメッセージ本体とを対応付けて記憶する対応表Ａおよび対応表Ｂを作成する（ステップＳ２０１）。
【００６９】
そして、メッセージ対応辞書作成部１３ｂは、対応表Ａと対応表Ｂとを比較し、どちらか一方のメッセージを抽出する（ステップＳ２０２）。そして、メッセージ対応辞書作成部１３ｂは、抽出されたメッセージがメッセージ対応辞書２に登録済みであるか判定する（ステップＳ２０３）。
【００７０】
その結果、メッセージ対応辞書作成部１３ｂは、抽出されたメッセージが登録済みでない場合には（ステップＳ２０３否定）、メッセージ対応辞書２にメッセージとともに、ＡまたはＢのいずれのチェックツールかを示す識別子を登録する（ステップＳ２０４）。
【００７１】
そして、メッセージ対応辞書作成部１３ｂは、対応表Ａと対応表Ｂを比較し、同一行のメッセージが一対一で対応するものを抽出し（ステップＳ２０５）、メッセージ対応辞書２に登録済みであるか判定する（ステップＳ２０６）。
【００７２】
この結果、抽出されたメッセージがメッセージ対応辞書２に登録済みでない場合には（ステップＳ２０６否定）、メッセージ対応辞書１にＡまたはＢのいずれのチェックツールかを示す識別子を登録する（ステップＳ２０７）。
【００７３】
続いて、メッセージ対応辞書作成部１３ｂは、対応表Ａと対応表Ｂを比較し、同一行のメッセージが複数行存在するものを抽出し、マッチング候補とする（ステップＳ２０８）。そして、メッセージ対応辞書作成部１３ｂは、抽出されたメッセージＡおよびＢがメッセージ対応辞書２に登録済みであるか判定する（ステップＳ２０９）。
【００７４】
この結果、メッセージ対応辞書作成部１３ｂは、抽出されたメッセージＡおよびＢがメッセージ対応辞書２に登録済みである場合には（ステップＳ２０９肯定）、該当するメッセージをマッチング候補から削除する（ステップＳ２１０）。
【００７５】
そして、メッセージ対応辞書作成部１３ｂは、抽出されたメッセージＡがメッセージ対応辞書１に登録済みであるか判定し（ステップＳ２１１）、登録済みであると判定された場合には、メッセージＢがメッセージ辞書１に登録済みであるか判定する（ステップＳ２１２）。
【００７６】
この結果、メッセージ対応辞書作成部１３ｂは、メッセージＢがメッセージ対応辞書１に登録済みであると判定された場合には（ステップＳ２１２肯定）、マッチング候補から削除する（ステップＳ２１３）。一方、メッセージ対応辞書作成部１３ｂは、メッセージＢがメッセージ対応辞書１に登録済みでないと判定された場合には（ステップＳ２１２否定）、該当メッセージをメッセージ対応辞書１から削除し、メッセージ対応辞書２に登録する（ステップＳ２１４）。
【００７７】
その後、メッセージ対応辞書作成部１３ｂは、メッセージＢがメッセージ対応辞書１に登録済みであるか判定する（ステップＳ２１５）。この結果、登録済みであると判定された場合には（ステップＳ２１５肯定）、該当メッセージをメッセージ対応辞書１から削除し、メッセージ対応辞書２に登録する（ステップＳ２１６）。
【００７８】
そして、メッセージ対応辞書作成部１３ｂは、残ったメッセージが一対一であるか判定し（ステップＳ２１７）、一対一であると判定した場合には（ステップＳ２１７肯定）、メッセージ対応辞書１に登録する（ステップＳ２１８）。また、メッセージ対応辞書作成部１３ｂは、一対一でないと判定した場合には（ステップＳ２１７否定）、メッセージ対応辞書３に登録する（ステップＳ２１９）。
【００７９】
その後、メッセージ対応辞書作成部１３ｂは、全てのメッセージについて処理が終了したか判定し（ステップＳ２２０）、終了していない場合には（ステップＳ２２０否定）、ステップＳ２０８の処理に戻る。また、全てのメッセージについて処理が終了したと判定した場合には（ステップＳ２２０肯定）、メッセージ対応辞書作成処理を終了する。
【００８０】
ここで、図１４を用いて、実施例２に係る論理設計支援装置１０によるスタイルチェック結果差分抽出処理の流れを説明する。同図に示すように、論理設計支援装置１０のスタイルチェック結果入力部１３ｃは、修正前チェック結果から一つ前のメッセージを読む（ステップＳ３０１）。
【００８１】
そして、論理設計支援装置１０のスタイルチェック結果入力部１３ｃは、エンドオブファイルであるか判定し（ステップＳ３０２）する。この結果、スタイルチェック結果入力部１３ｃは、エンドオブファイルでない場合には（ステップＳ３０２否定）、メッセージフォーマットとマッチングファイル名と行番号を取得する（ステップＳ３０３）。
【００８２】
そして、スタイルチェック差分抽出部１３ｅは、取得された修正前チェック結果のファイル名と行番号をキーにして、ＲＴＬ記述一致情報を検索する（ステップＳ３０４）。検索の結果、スタイルチェック差分抽出部１３ｅは、ＲＴＬ記述一致情報からファイル名と行番号とが一致するメッセージデータが見つかった場合には（ステップＳ３０５肯定）、メッセージデータのファイル名、行番号を修正後の値に置換する（ステップＳ３０６）。
【００８３】
ここで、メッセージ置換部１３ｄは、メッセージをキーとして、メッセージ対応辞書１を検索する。そして、メッセージの内容が一致するメッセージが見つかった場合には、スタイルチェックツールＢのメッセージに置換して検索データ（Ａ）に登録する。また、メッセージの内容が一致するメッセージが見つからなかった場合には、置換せずにメッセージをそのまま検索データ（Ａ）に登録する。
【００８４】
その後、ステップＳ３０１の処理に戻って、ステップＳ３０１〜Ｓ３０６の処理を繰り返す。そして、ステップＳ３０２の処理において、エンドオブファイルであると判定された場合には（ステップＳ３０２肯定）、スタイルチェック結果入力部１３ｃは、修正後チェック結果から一つのデータを読み出す（ステップＳ３０７）。
【００８５】
そして、スタイルチェック結果入力部１３ｃは、エンドオブファイルであるか判定し（ステップＳ３０８）する。この結果、スタイルチェック結果入力部１３ｃは、エンドオブファイルでない場合には（ステップＳ３０８否定）、メッセージフォーマットとマッチングファイル名と行番号を取得する（ステップＳ３０９）。
【００８６】
そして、スタイルチェック差分抽出部１３ｅは、取得された修正前チェック結果のファイル名と行番号をキーにして、ＲＴＬ記述一致情報を検索する（ステップＳ３１０）。検索の結果、スタイルチェック差分抽出部１３ｅは、ＲＴＬ記述一致情報からファイル名と行番号が一致するメッセージデータが見つかった場合には（ステップＳ３１１肯定）、メッセージデータをキーとして、検索データ（Ａ）内を検索する（ステップＳ３１２）。
【００８７】
検索の結果、スタイルチェック差分抽出部１３ｅは、検索データ（Ａ）から一致するメッセージデータが見つかった場合には（ステップＳ３１３肯定）、メッセージデータをチェック結果の差分として出力せずに、Ｓ３０７の処理に戻る。つまり、このメッセージデータは、ＲＴＬ記述一致情報にある、かつ、修正前チェック結果にある「メッセージ分類（３）」のメッセージに該当し、メッセージデータをチェック結果の差分として出力しない。
【００８８】
また、スタイルチェック差分抽出部１３ｅは、検索データ（Ａ）から一致するメッセージデータが見つからない場合には（ステップＳ３１３否定）、当メッセージデータをチェック結果の差分情報として出力する（ステップＳ３１４）。つまり、このメッセージデータは、ＲＴＬ記述一致情報にあって修正前チェック結果にない、または、ＲＴＬ記述一致情報にあってかつメッセージ対応辞書にない「メッセージ分類（２）」のメッセージに該当し、チェック結果の差分として出力する。
【００８９】
ステップＳ３１１の説明に戻って、スタイルチェック差分抽出部１３ｅは、検索の結果、ファイル名と行番号が一致するメッセージデータが見つからなかった場合には（ステップＳ３１１否定）、当メッセージデータをチェック結果の差分情報として出力する（ステップＳ３１４）。つまり、このメッセージデータは、ＲＴＬ記述一致情報にない「メッセージ分類（１）」のメッセージに該当し、チェック結果の差分として出力する。
【００９０】
ステップＳ３０８の説明に戻って、スタイルチェック結果入力部１３ｃは、エンドオブファイルであると判定した場合には（ステップＳ３０８肯定）、スタイルチェック結果差分抽出処理を終了する。
【００９１】
[実施例２の効果]
上述してきたように、論理設計支援装置１０は、修正後の論理記述の記述箇所のうちの未修整箇所の記述位置と、修正前の論理記述の記述箇所の記述位置との位置関係を特定する。そして、論理記述差分抽出方法では、特定された位置関係を用いて、修正前チェック結果と修正後チェック結果とが対応する位置を特定し、特定した位置に所在する修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換する。そして、メッセージのフォーマットが置換された修正前チェック結果と修正後チェック結果との差分を抽出する。このため、異なるスタイルチェックツールのチェック結果から適切に差分を抽出して、ハードウェア記述言語の設計を容易にすることが可能である。
【００９２】
また、実施例２によれば、論理設計支援装置１０は、修正前チェック結果のメッセージと修正後チェック結果のメッセージとを対応付けて記憶するメッセージ辞書を有する。そして、論理設計支援装置１０は、メッセージ辞書を用いて、修正前チェック結果のメッセージのフォーマットを修正後チェック結果のメッセージのフォーマットに一致するようにメッセージを置換する。このため、異なるスタイルチェックツール間のフォーマットの違いをメッセージ辞書で簡易に統一することができる結果、異なるスタイルチェックツールからも適切に差分を抽出して、ハードウェア記述言語の設計を容易にすることが可能である。
【００９３】
また、実施例２によれば、論理設計支援装置１０は、同一の論理記述に対して第１のスタイルチェックツールと第２のスタイルチェックツールとをそれぞれ適用してチェック結果を取得する。そして、第１のスタイルチェックツールのチェック結果のメッセージと、メッセージと同一の位置にある第２のスタイルチェックツールのチェック結果のメッセージとを対応付けてメッセージ辞書に格納する。このため、第１のスタイルチェックツールと第２のスタイルチェックツールのフォーマットを置換するためのメッセージ辞書を作成して、異なるスタイルチェックツールからも適切に差分を抽出して、ハードウェア記述言語の設計を容易にすることが可能である。
【実施例３】
【００９４】
さて、これまで本発明の実施例について説明したが、本実施例は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例３として本発明に含まれる他の実施例を説明する。
【００９５】
（１）メッセージ対応辞書
上記の実施例２では、メッセージ対応辞書を作成する場合を説明したが、本実施例はこれに限定されるものではなく、メッセージ対応辞書を事前に作成しておき、メッセージ対応辞書に記憶させるようにしてもよい。
【００９６】
（２）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、メッセージ置換部１３ｄとスタイルチェック差分抽出部を統合してもよい。
【００９７】
（３）プログラム
また、上記の実施例１、２で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、図１５を用いて、上記の実施例１、２と同様の機能を有する風量制御プログラムを実行するコンピュータの一例を説明する。図１５は、論理記述差分抽出プログラムを実行するコンピュータを示す図である。
【００９８】
同図に示すように、論理設計支援装置としてのコンピュータ５００は、ＲＡＭ５１０、ＣＰＵ５２０、ＨＤＤ５３０および入出力インタフェース５４０をバスなどで接続して構成される。
【００９９】
ここで、入出力インタフェース５４０は、修正前のＲＴＬハードウェア記述の内容（以下、ＲＴＬ１という）、修正後のＲＴＬハードウェア記述の内容（以下、ＲＴＬ２という）、ハードウェア記述に対するスタイルチェックツールのチェック結果などを入力する。
【０１００】
また、入出力インタフェース５４０は、修正前のハードウェア記述に対するスタイルチェックツールのチェック結果と、修正後のハードウェア記述に対するスタイルチェックツールのチェック結果との差分を出力する。ＨＤＤ５３０は、ＣＰＵ５２０による各種処理の実行に必要な情報を記憶する。ＲＡＭ５１０は、各種情報を一時的に記憶する。ＣＰＵ５２０は、各種演算処理を実行する。
【０１０１】
そして、ＨＤＤ５３０には、図１５に示すように、上記の実施例１、２に示した、割込みコントローラの各処理部と同様の機能を発揮するＲＴＬ差分抽出プログラム５１１があらかじめ記憶されている。なお、この風量制御プログラム５１１を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【０１０２】
そして、ＣＰＵ５２０が、この風量制御プログラム５１１をＨＤＤ５３０から読み出してＲＡＭ５１０に展開する。そして、風量制御プログラム５１１は、各種データをＨＤＤ５３０から読み出して、ＲＡＭ５１０において自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種処理を実行する。
【０１０３】
なお、上記した風量制御プログラム５１１については、必ずしも最初からＨＤＤ５３０に記憶させておく必要はなく、例えば、コンピュータ５００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ５００に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ５００がこれらから各プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１０４】
１、１０  論理設計支援装置
１１  入力部
１２  出力部
１３  制御部
１３ａ  ＲＴＬ記述一致情報作成部
１３ｂ  メッセージ対応辞書作成部
１３ｃ  スタイルチェック結果入力部
１３ｄ  スタイルチェック差分抽出部
１４  記憶部
１４ａ  ＲＴＬ記述一致情報記憶部
１４ｂ  メッセージ対応辞書記憶部
【図１】
2011258092.tif 000003
【図２】
2011258092.tif 000004
【図３】
2011258092.tif 000005
【図４】
2011258092.tif 000006
【図５】
2011258092.tif 000007
【図６】
2011258092.tif 000008
【図７】
2011258092.tif 000009
【図８】
2011258092.tif 000010
【図９】
2011258092.tif 000011
【図１０】
2011258092.tif 000012
【図１１】
2011258092.tif 000013
【図１２】
2011258092.tif 000014
【図１３】
2011258092.tif 000015
【図１４】
2011258092.tif 000016
【図１５】
2011258092.tif 000017