(57)【要約】【課題】不要変数や未変化変数を確認するときの時間を短縮すること。【解決手段】本発明では、ＲＴＬソース・コード２に対する論理シミュレーションを実行し、その実行結果により、ＲＴＬソース・コード２に含まれる変数のうちの、信号の変化がない未変化変数を選択し、未変化変数の中から、インスタンス間信号リスト３が表す変数に一致する候補未変化変数と、インスタンス間信号リスト３が表す変数に一致しない不要変数とを選択する。これにより、設計者が不要変数を確認する時間を短縮できる。更に、インスタンス間信号リスト３から、候補未変化変数に対応する候補出力ノードを選択し、重複する候補出力ノードのうちの１つの候補出力ノードと、重複しない候補出力ノードとを選択出力ノードとして選択する。未変化変数に対して選択出力ノードに集約することにより、設計者が未変化変数を確認する時間を短縮できる。【選択図】図２
2011227803.tif 000002
【特許請求の範囲】
【請求項１】
制御部を備えたコンピュータが実行する方法であって、
前記制御部が、テストパターンに従って、予め生成されたＲＴＬソース・コードに対する論理シミュレーションを実行する工程と、前記ＲＴＬソース・コードは、半導体集積回路の設計仕様に対して、ハードウェア記述言語を用いてＲＴＬ（Ｒｅｇｉｓｔｏｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）で記述され、且つ、信号を表す変数を含むソース・コードであり、
前記制御部が、前記論理シミュレーションの実行結果により、前記ＲＴＬソース・コードに含まれる変数のうちの、信号の変化がない未変化変数を選択する工程と、
前記制御部が、前記未変化変数の中から、予め生成されたインスタンス間信号リストが表す変数に一致する候補未変化変数と、前記インスタンス間信号リストが表す変数に一致しない不要変数とを選択する工程と、前記インスタンス間信号リストは、出力インスタンスのノードである出力ノードと、入力インスタンスのノードである入力ノードと、前記出力ノードと前記入力ノード間に階層的に接続された信号線とを対応付け、前記ＲＴＬソース・コードに含まれる変数を用いて表され、
前記制御部が、前記インスタンス間信号リストから、前記候補未変化変数に対応する前記出力ノードを候補出力ノードとして選択する工程と、
前記制御部が、重複する前記候補出力ノードのうちの１つの候補出力ノードと、重複しない前記候補出力ノードとを選択出力ノードとして選択する工程と
を具備する半導体集積回路の論理設計検証方法。
【請求項２】
前記制御部が、前記未変化変数を表す未変化変数レポートを生成する工程
を更に具備し、
前記候補未変化変数と前記不要変数とを選択する工程は、
前記制御部が、前記未変化変数レポートが表す前記未変化変数の中から、前記候補未変化変数と前記不要変数とを選択する
請求項１に記載の半導体集積回路の論理設計検証方法。
【請求項３】
前記制御部が、前記候補出力ノードを表す候補未変化変数レポートを生成する工程
を更に具備し、
前記選択出力ノードを選択する工程は、
前記制御部が、前記候補未変化変数レポートから、重複する前記候補出力ノードのうちの前記１つの候補出力ノードと、重複しない前記候補出力ノードとを前記選択出力ノードとして選択する
請求項１又は２に記載の半導体集積回路の論理設計検証方法。
【請求項４】
前記制御部が、前記不要変数を表す不要変数レポートを生成し、出力装置に出力する工程と、
前記制御部が、前記選択出力ノードを表す選択未変化変数レポートを生成し、前記出力装置に出力する工程と
を更に具備する請求項１〜３のいずれかに記載の半導体集積回路の論理設計検証方法。
【請求項５】
前記制御部が、前記選択出力ノードを反映したテストパターンである反映テストパターンを生成し、次の検証に使用するために前記反映テストパターンを前記テストパターンに追加する工程
を更に具備する請求項１〜４のいずれかに記載の半導体集積回路の論理設計検証方法。
【請求項６】
前記選択出力ノードは複数存在し、
前記複数の選択出力ノードは、それぞれ、複数の前記信号線に接続され、
前記複数の信号線のうちの少なくとも１つの信号線は、ビット番号により表される束線である
請求項１〜５のいずれかに記載の半導体集積回路の論理設計検証方法。
【請求項７】
予め生成され、半導体集積回路の設計仕様に対して、ハードウェア記述言語を用いてＲＴＬ（Ｒｅｇｉｓｔｏｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）で記述され、且つ、信号を表す変数を含むソース・コードであるＲＴＬソース・コードと、
予め生成され、出力インスタンスのノードである出力ノードと、入力インスタンスのノードである入力ノードと、前記出力ノードと前記入力ノード間に階層的に接続された信号線とを対応付け、前記ＲＴＬソース・コードに含まれる変数を用いて表されたインスタンス間信号リストと、
テストパターンに従って、前記ＲＴＬソース・コードに対する論理シミュレーションを実行し、前記論理シミュレーションの実行結果により、前記ＲＴＬソース・コードに含まれる変数のうちの、信号の変化がない未変化変数を選択する論理検証・カバレッジ抽出部と、
前記未変化変数の中から、予め生成されたインスタンス間信号リストが表す変数に一致する候補未変化変数と、前記インスタンス間信号リストが表す変数に一致しない不要変数とを選択する未変化変数処理部と
を具備し、
前記未変化変数処理部は、
前記インスタンス間信号リストから、前記候補未変化変数に対応する前記出力ノードを候補出力ノードとして選択し、
重複する前記候補出力ノードのうちの１つの候補出力ノードと、重複しない前記候補出力ノードとを選択出力ノードとして選択する
半導体集積回路の論理設計検証装置。
【請求項８】
前記論理検証・カバレッジ抽出部は、
前記未変化変数を表す未変化変数レポートを生成し、
前記未変化変数処理部は、
前記未変化変数レポートが表す前記未変化変数の中から、前記候補未変化変数と前記不要変数とを選択する
請求項７に記載の半導体集積回路の論理設計検証装置。
【請求項９】
前記未変化変数処理部は、
前記候補出力ノードを表す候補未変化変数レポートを生成し、
前記候補未変化変数レポートから、重複する前記候補出力ノードのうちの前記１つの候補出力ノードと、重複しない前記候補出力ノードとを前記選択出力ノードとして選択する
請求項７又は８に記載の半導体集積回路の論理設計検証装置。
【請求項１０】
前記未変化変数処理部は、
前記不要変数を表す不要変数レポートを生成し、出力装置に出力し、
前記選択出力ノードを表す選択未変化変数レポートを生成し、前記出力装置に出力する
請求項７〜９のいずれかに記載の半導体集積回路の論理設計検証装置。
【請求項１１】
前記選択出力ノードを反映したテストパターンである反映テストパターンを生成し、次の検証に使用するために前記反映テストパターンを前記テストパターンに追加する追加テストパターン生成部
を更に具備する請求項７〜１０のいずれかに記載の半導体集積回路の論理設計検証装置。
【請求項１２】
前記選択出力ノードは複数存在し、
前記複数の選択出力ノードは、それぞれ、複数の前記信号線に接続され、
前記複数の信号線のうちの少なくとも１つの信号線は、ビット番号により表される束線である
請求項７〜１１のいずれかに記載の半導体集積回路の論理設計検証装置。
【請求項１３】
請求項１〜６のいずれかに記載の半導体集積回路の論理設計検証方法の各ステップをコンピュータに実行させるコンピュータプログラムであるコード・カバレッジ・ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の論理設計を検証するときの方法、それに用いる装置、及び、コード・カバレッジ・ツールに関する。
【背景技術】
【０００２】
コード・カバレッジ・ツールは、論理シミュレーションで用いたテストパターンがどれだけ網羅したか（カバレッジ）を検証するものである。このようなコード・カバレッジ・ツールがｈｔｔｐ：／／ｔｅｃｈｏｎ．ｎｉｋｋｅｉｂｐ．ｃｏ．ｊｐ／ａｒｔｉｃｌｅ／ＷＯＲＤ／２００５１１２５／１１１０２５／ＥＤＡ用語辞典  コード・カバレッジ・ツール  ２００９／９／７に記載されている。
【０００３】
コード・カバレッジ・ツールは、複数のカバレッジを扱うことでき、次のように分類される。
１）  ライン・カバレッジ：ソース・コード一行ごとの実行回数をカウントする。
２）  ブランチ・カバレッジ：分岐条件の「ｔｒｕｅ」または「ｆａｌｓｅ」をカウントする。
３）  ブロック・カバレッジ：ｂｅｇｉｎ〜ｅｎｄを１つのまとまりとしてカウントする。
４）  パス・カバレッジ：ブロックからブロックへ遷移した経路をトレースしてカウントする。
５）  コンディション・カバレッジ：条件式の取りうる状態を抽出しカウントする。
６）  トグル・カバレッジ：変数（信号）の「０」→「１」および「１」→「０」への変化をカウントする。
７）  ＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）カバレッジ：状態の遷移をカウントする。
【０００４】
コード・カバレッジ・ツールのうちの、トグル・カバレッジを実施するものを従来のコード・カバレッジ・ツールとして説明する。
【０００５】
図１は、従来のコード・カバレッジ・ツール２０００を示している。コード・カバレッジ・ツール２０００は、ＲＴＬ解析部２００１と、シミュレータ部２００２と、カバレッジ抽出部２００３と、カバレッジ出力部２００４とを具備している。
【０００６】
まず、半導体集積回路の設計仕様に対して、ハードウェア記述言語を用いてＲＴＬ（Ｒｅｇｉｓｔｏｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）で記述され、且つ、信号を表す変数を含むソース・コードである第１のＲＴＬソース・コード２０１１を予め生成しておく。
【０００７】
ＲＴＬ解析部２００１は、第１のＲＴＬソース・コード２０１１に、カバレッジ・モニタ用のコードであるカバレッジ・モニタ・コードを埋め込み、第２のＲＴＬソース・コード２０１２を生成する。
【０００８】
シミュレータ部２００２は、テストパターン２００７に従って、第２のＲＴＬソース・コード２０１２に対する論理シミュレーションを実行する。
【０００９】
カバレッジ抽出部２００３は、論理シミュレーションの実行結果により、第２のＲＴＬソース・コード２０１２に含まれる変数の中から、信号の変化がない未変化変数を抽出し、その未変化変数を表すカバレッジ・データ２００９を生成する。
【００１０】
カバレッジ出力部２００４は、カバレッジ・データ２００９をＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）２００５やテキスト２００６により出力する。
【００１１】
ここで、設計者は、カバレッジ・データ２００９が表す未変化変数の中から、どの信号線にも接続されない信号線又はノードとして不要変数が存在するか否かを判断する。
【００１２】
設計者は、未変化変数のうちの不要変数以外の変数を選択未変化変数として選択し、選択未変化変数を反映したテストパターンである反映テストパターンを作成し、次の検証に使用するために反映テストパターンをテストパターン２００７に追加する。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】ｈｔｔｐ：／／ｔｅｃｈｏｎ．ｎｉｋｋｅｉｂｐ．ｃｏ．ｊｐ／ａｒｔｉｃｌｅ／ＷＯＲＤ／２００５１１２５／１１１０２５／ＥＤＡ用語辞典  コード・カバレッジ・ツール  ２００９／９／７
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかし、従来のコード・カバレッジ・ツール２０００では、トグル・カバレッジを実施する際、未変化変数には、出力元のノードである出力ノードが重複しない未変化変数や、出力ノードが重複する未変化変数が存在する。この場合、設計者は、出力ノードが重複する未変化変数のうちの１つの未変化変数を選び、その１つの未変化変数と重複しない未変化変数とを選択未変化変数として選択することになる。このため、設計者が未変化変数を確認するときに多くの時間を要してしまう。
【００１５】
また、従来のコード・カバレッジ・ツール２０００では、出力ノードが重複する未変化変数が存在する場合、設計者は、多くの未変化変数の中から、不要変数が存在するか否かを判断しなければならない。このため、設計者が不要変数を確認するときに多くの時間を要してしまう。
【００１６】
このように、不要変数や未変化変数を確認するときの時間を短縮することが望まれる。
【課題を解決するための手段】
【００１７】
以下に、発明を実施するための形態で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１８】
本発明の半導体集積回路の論理設計検証方法は、コンピュータにより実行される。コンピュータは、コンピュータプログラム（１００）が格納された記憶部と、コンピュータプログラムを実行する制御部（６、８、１１）とを備えている。ここで、ＲＴＬソース・コード（２）とインスタンス間信号リスト（３）とが予め生成されている。ＲＴＬソース・コード（２）は、半導体集積回路の設計仕様に対して、ハードウェア記述言語を用いてＲＴＬ（Ｒｅｇｉｓｔｏｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）で記述され、且つ、信号を表す変数を含むソース・コードである。インスタンス間信号リスト（３）は、出力インスタンス（Ｉ４、Ｉ５）のノードである出力ノード（ｐ１〜ｐ７、ｐ８〜ｐ１４）と、入力インスタンス（Ｉ６、Ｉ７）のノードである入力ノード（ｐ１５〜ｐ２１、ｐ２２〜ｐ２８）と、出力ノード（ｐ１〜ｐ７、ｐ８〜ｐ１４）と入力ノード（ｐ１５〜ｐ２１、ｐ２２〜ｐ２８）間に階層的に接続された信号線（ｎ１〜ｎ７、ｎ８〜ｎ１４）（ｎ１５〜ｎ２１、ｎ２２〜ｎ２８）（ｎ２９〜ｎ３５、ｎ３６〜ｎ４２）とを対応付け、ＲＴＬソース・コード（２）に含まれる変数を用いて表されている。まず、制御部（６）が、テストパターン（５）に従って、ＲＴＬソース・コード（２）に対する論理シミュレーションを実行する（Ｓ２）。制御部（６）が、論理シミュレーションの実行結果により、ＲＴＬソース・コード（２）に含まれる変数のうちの、信号の変化がない未変化変数（ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２）を選択する（Ｓ３）。制御部（８）が、未変化変数（ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２）の中から、インスタンス間信号リスト（３）が表す変数に一致する候補未変化変数（ｎ１５、ｎ１９、ｎ２２、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２）と、インスタンス間信号リスト（３）が表す変数に一致しない不要変数（ｎ９９）とを選択する（Ｓ４〜Ｓ６）。制御部（８）が、インスタンス間信号リスト（３）から、候補未変化変数（ｎ１５、ｎ１９、ｎ２２、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２）に対応する出力ノード（ｐ１、ｐ５、ｐ８、ｐ１、ｐ５、ｐ８、ｐ１、ｐ５、ｐ８、ｐ１、ｐ５、ｐ８、ｐ１、ｐ５、ｐ８）を候補出力ノードとして選択する（Ｓ６）。制御部（８）が、重複する候補出力ノード（ｐ１、ｐ５、ｐ８）のうちの１つの候補出力ノードと、重複しない候補出力ノードとを選択出力ノード（ｐ１、ｐ５、ｐ８）として選択する（Ｓ７）。
【発明の効果】
【００１９】
本発明の半導体集積回路の論理設計検証方法では、ＲＴＬソース・コード（２）の他にインスタンス間信号リスト（３）を予め用意することにより、インスタンス間信号リスト（３）に存在しない変数として、どの信号線にも接続されない信号線又はノードを表す不要変数（ｎ９９）を検索することができるため、ＲＴＬ設計の品質が向上する。
【００２０】
更に、本発明の半導体集積回路の論理設計検証方法では、ＲＴＬソース・コード（２）とインスタンス間信号リスト（３）とを予め用意することにより、未変化変数（ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２）を検索することができる。この場合、未変化変数（ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２）に対して出力元のノードである選択出力ノード（ｐ１、ｐ５、ｐ８）に集約することにより、設計者が未変化変数を確認するときの時間を短縮することができる。
【００２１】
このように、本発明の半導体集積回路の論理設計検証方法によれば、不要変数や未変化変数を確認するときの時間を短縮することができ、ＲＴＬ設計の品質が向上する。
【図面の簡単な説明】
【００２２】
【図１】図１は、従来のコード・カバレッジ・ツール２０００を示している。
【図２】図２は、本発明の実施形態による半導体集積回路の論理設計検証方法が適用される論理設計検証装置（コード・カバレッジ・ツール１００）の構成を示すブロック図である。
【図３】図３は、本発明の実施形態による半導体集積回路の論理設計検証方法を示すフローチャートである。
【図４】図４は、インスタンス間信号リスト３を示している。
【図５】図５は、未変化変数レポート７を示している。
【図６】図６は、不要変数レポート１０を示している。
【図７】図７は、候補未変化変数レポート７’を示している。
【図８】図８は、選択未変化変数レポート９を示している。
【図９】図９は、コード・カバレッジ・ツール１００により検証される半導体集積回路を示している。
【図１０】図１０は、信号線が束線である場合の半導体集積回路を示している（他の実施形態）。
【図１１】図１１は、ＶｅｒｉｌｏｇやＶＨＤＬなどのハードウェア記述言語で束線が記述される場合の信号線を表す変数である（他の実施形態）。
【図１２】図１２は、選択未変化変数レポート９を示している（他の実施形態）。
【発明を実施するための形態】
【００２３】
以下に添付図面を参照して、本発明の実施形態による半導体集積回路の論理設計検証方法について詳細に説明する。
【００２４】
図２は、本発明の実施形態による半導体集積回路の論理設計検証方法が適用される論理設計検証装置の構成を示すブロック図である。
【００２５】
その論理設計検証装置は、コンピュータであり、図示しない制御部、記憶部、表示部を具備している。
【００２６】
制御部としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が例示され、記憶部としては、記録媒体であるメモリが例示される。記憶部には、コンピュータに実行させるためのコンピュータプログラム（ソフトウェア）としてコード・カバレッジ・ツール１００が記憶されている（インストールされている）。制御部は、起動時などに記憶部からコード・カバレッジ・ツール１００を読み取って実行し、その実行結果を表示部に表示する。
【００２７】
コード・カバレッジ・ツール１００は、トグル・カバレッジを実施する構成として、論理検証・カバレッジ抽出部６と、未変化変数処理部８と、追加テストパターン生成部１１とを具備している。
【００２８】
図３は、本発明の実施形態による半導体集積回路の論理設計検証方法を示すフローチャートである。
【００２９】
（ステップＳ１；事前処理）
まず、設計者は、半導体集積回路であるＬＳＩ（Ｌａｒｇｅ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）をテストするためのテストパターン５を予め生成しておき、記憶部に格納しておく。
【００３０】
また、設計者は、半導体集積回路の設計仕様（ＬＳＩ製品仕様書１）に対して、ハードウェア記述言語を用いてＲＴＬ（Ｒｅｇｉｓｔｏｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）で記述され、且つ、信号を表す変数を含むソース・コードであるＲＴＬソース・コード２を予め生成しておく。そして、このＲＴＬソース・コード２を記憶部に格納しておく。
【００３１】
また、設計者は、半導体集積回路の設計仕様（ＬＳＩ製品仕様書１）に対して、出力インスタンスと入力インスタンス間（出力モジュールと入力モジュール間）の信号の流れを表すインスタンス間信号リスト３を予め生成しておく。このインスタンス間信号リスト３は、出力インスタンスのノードである出力ノードと、入力インスタンスのノードである入力ノードと、出力ノードと入力ノード間に階層的に接続された信号線とを対応付け、ＲＴＬソース・コード２に含まれる変数を用いて表されている。そして、このインスタンス間信号リスト３を記憶部に格納しておく。
【００３２】
例えば、図４に示されるように、インスタンス間信号リスト３には、出力インスタンスＩ４、Ｉ５（出力モジュールＭ１、Ｍ２）に設けられる出力ノードｐ１〜ｐ７、ｐ８〜ｐ１４と、その出力ノードｐ１〜ｐ７、ｐ８〜ｐ１４から次のインスタンス（図示しないが、インスタンスＩ２とする）に設けられる信号線ｎ１〜ｎ７、ｎ８〜ｎ１４と、その信号線ｎ１〜ｎ７、ｎ８〜ｎ１４から次のインスタンス（図示しないが、インスタンスＩ１とする）に設けられる信号線ｎ１５〜ｎ２１、ｎ２２〜ｎ２８と、その信号線ｎ１５〜ｎ２１、ｎ２２〜ｎ２８から次のインスタンス（図示しないが、インスタンスＩ３とする）に設けられる信号線ｎ２９〜ｎ３５、ｎ３６〜ｎ４２と、その信号線ｎ２９〜ｎ３５、ｎ３６〜ｎ４２から入力インスタンスＩ６、Ｉ７（入力モジュールＭ３、Ｍ４）に設けられる入力ノードｐ１５〜ｐ２１、ｐ２２〜ｐ２８とが変数により対応付けられている。
【００３３】
（ステップＳ２；論理検証処理）
論理検証・カバレッジ抽出部６は、設計者の指示により、テストパターン５とＲＴＬソース・コード２とを記憶部から読み出す。このとき、論理検証・カバレッジ抽出部６は、テストパターン５に従って、ＲＴＬソース・コード２に対する論理シミュレーションを実行する。
【００３４】
（ステップＳ３；カバレッジ抽出処理）
このとき、論理検証・カバレッジ抽出部６は、論理シミュレーションの実行結果により、ＲＴＬソース・コード２に含まれる変数の中から、信号の変化がない未変化変数を抽出（選択）し、その未変化変数を表す未変化変数レポート７を生成する。論理検証・カバレッジ抽出部６は、この未変化変数レポート７を記憶部に格納する。
【００３５】
例えば、図５に示されるように、未変化変数レポート７が表す未変化変数は、ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２であるものとする。
【００３６】
（ステップＳ４；変数検索処理）
未変化変数処理部８は、設計者の指示により、インスタンス間信号リスト３と未変化変数レポート７とを記憶部から読み出す。このとき、未変化変数処理部８は、未変化変数レポート７が表す未変化変数ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２の中から、インスタンス間信号リスト３が表す変数に一致するか否かを検索する。
【００３７】
（ステップＳ５；不要変数レポート生成処理）
次に、未変化変数処理部８は、未変化変数レポート７が表す未変化変数ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２の中から、インスタンス間信号リスト３が表す変数に一致しない不要変数を選択する。
【００３８】
例えば、未変化変数ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２のうちの、不要変数は、ｎ９９であるものとする。
【００３９】
そこで、図６に示されるように、未変化変数処理部８は、不要変数ｎ９９を表す不要変数レポート１０を生成し、出力装置に出力する。又は、未変化変数処理部８は、不要変数レポート１０を記憶部に格納し、設計者の指示に応じて、出力装置に出力する。
【００４０】
（ステップＳ６；候補未変化変数レポート生成処理）
次に、未変化変数処理部８は、未変化変数レポート７が表す未変化変数ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２の中から、インスタンス間信号リスト３が表す変数に一致する候補未変化変数を選択する。
【００４１】
例えば、未変化変数ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２のうちの、候補未変化変数は、ｎ１５、ｎ１９、ｎ２２、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２であるものとする。即ち、ｎ９９以外であるものとする。
【００４２】
また、未変化変数処理部８は、インスタンス間信号リスト３から、候補未変化変数ｎ１５、ｎ１９、ｎ２２、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２に対応する出力モジュール、出力インスタンス、出力ノードをそれぞれ候補出力モジュール、候補出力インスタンス、候補出力ノードとして読み出す（選択する）。未変化変数処理部８は、候補出力モジュールと候補出力インスタンスと候補出力ノードとを対応付ける候補未変化変数レポートを生成する。
【００４３】
例えば、図７に示されるように、候補未変化変数レポート７’は、候補未変化変数ｎ１５に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ１を表し、候補未変化変数ｎ１９に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ５を表し、候補未変化変数ｎ２２に対応する候補出力モジュールＭ２、候補出力インスタンスＩ５、候補出力ノードｐ８を表している。
【００４４】
候補未変化変数レポート７’は、更に、候補未変化変数ｎ１に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ１を表し、候補未変化変数ｎ５に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ５を表し、候補未変化変数ｎ８に対応する候補出力モジュールＭ２、候補出力インスタンスＩ５、候補出力ノードｐ８を表している。
【００４５】
候補未変化変数レポート７’は、更に、候補未変化変数ｐ１に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ１を表し、候補未変化変数ｐ５に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ５を表し、候補未変化変数ｐ８に対応する候補出力モジュールＭ２、候補出力インスタンスＩ５、候補出力ノードｐ８を表している。
【００４６】
候補未変化変数レポート７’は、更に、候補未変化変数ｎ２９に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ１を表し、候補未変化変数ｎ３３に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ５を表し、候補未変化変数ｎ３６に対応する候補出力モジュールＭ２、候補出力インスタンスＩ５、候補出力ノードｐ８を表している。
【００４７】
候補未変化変数レポート７’は、更に、候補未変化変数ｐ１５に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ１を表し、候補未変化変数ｐ１９に対応する候補出力モジュールＭ１、候補出力インスタンスＩ４、候補出力ノードｐ５を表し、候補未変化変数ｐ２２に対応する候補出力モジュールＭ２、候補出力インスタンスＩ５、候補出力ノードｐ８を表している。
【００４８】
ここで、候補未変化変数レポート７’が表す候補出力モジュール、候補出力インスタンス、候補出力ノードは、（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）、（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）、（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）、（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）、（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）により表されるものとする。
【００４９】
（ステップＳ７；未変化変数選択処理）
次に、未変化変数処理部８は、候補未変化変数レポート７’から、重複する候補出力モジュール、候補出力インスタンス、候補出力ノード（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）のうちの、１つの候補出力モジュール、候補出力インスタンス、候補出力ノードだけ残して、残りの候補出力モジュール、候補出力インスタンス、候補出力ノードを削除する。次に、未変化変数処理部８は、候補未変化変数レポート７’から、上記１つの候補出力モジュール、候補出力インスタンス、候補出力ノード（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）と、重複しない候補出力モジュール、候補出力インスタンス、候補出力ノード（この場合は存在していない）とを選択出力モジュール、選択出力インスタンス、選択出力ノード（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）として読み出す（選択する）。
【００５０】
（ステップＳ８；選択未変化変数レポート生成処理）
次に、図８に示されるように、未変化変数処理部８は、選択出力モジュール、選択出力インスタンス、選択出力ノード（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）を対応付ける選択未変化変数レポート９を生成し、出力装置に出力する。又は、未変化変数処理部８は、選択未変化変数レポート９を記憶部に格納し、設計者の指示に応じて、出力装置に出力する。
【００５１】
（ステップＳ９；追加テストパターン生成処理）
追加テストパターン生成部１１は、選択未変化変数レポート９が生成されたとき、選択未変化変数レポート９が表す選択出力モジュール、選択出力インスタンス、選択出力ノード（Ｍ１、Ｉ４、ｐ１）、（Ｍ１、Ｉ４、ｐ５）、（Ｍ２、Ｉ５、ｐ８）を反映したテストパターンである反映テストパターンを生成し、次の検証に使用するために反映テストパターンをテストパターン５に追加する。
【００５２】
このように、本発明の実施形態による半導体集積回路の論理設計検証方法では、コード・カバレッジ・ツール１００により、図９に示されるような半導体集積回路が検証される。
【００５３】
この場合、インスタンスＩ１は、トップモジュールインスタンスであり、インスタンスＩ１には、信号線ｎ１５〜ｎ２１、ｎ２２〜ｎ２８が設けられている。
【００５４】
インスタンスＩ２は、インスタンスＩ１内にインスタンスされたモジュールインスタンスである。インスタンスＩ２には、インスタンスＩ１の信号線ｎ１５〜ｎ２１、ｎ２２〜ｎ２８にそれぞれ接続された信号線ｎ１〜ｎ７、ｎ８〜ｎ１４が設けられている。
【００５５】
インスタンスＩ３は、インスタンスＩ１内にインスタンスされたモジュールインスタンスである。インスタンスＩ３には、インスタンスＩ１の信号線ｎ１５〜ｎ２１、ｎ２２〜ｎ２８にそれぞれ接続された信号線ｎ２９〜ｎ３５、ｎ３６〜ｎ４２が設けられている。
【００５６】
出力インスタンスＩ４、Ｉ５は、インスタンスＩ２内にインスタンスされたモジュールインスタンスであり、そのモジュール名をＭ１、Ｍ２としている。出力インスタンスＩ４には、インスタンスＩ２の信号線ｎ１〜ｎ７にそれぞれ接続された出力ノードｐ１〜ｐ７が設けられ、出力インスタンスＩ５には、インスタンスＩ２の信号線ｎ８〜ｎ１４にそれぞれ接続された出力ノードｐ８〜ｐ１４が設けられている。
【００５７】
入力インスタンスＩ６、Ｉ７は、インスタンスＩ３内にインスタンスされたモジュールインスタンスであり、そのモジュール名をＭ３、Ｍ４としている。出力インスタンスＩ６には、インスタンスＩ３の信号線ｎ２９〜ｎ３５にそれぞれ接続された出力ノードｐ１５〜ｐ２１が設けられ、出力インスタンスＩ７には、インスタンスＩ３の信号線ｎ３６〜ｎ４２にそれぞれ接続された出力ノードｐ２２〜ｐ２８が設けられている。
【００５８】
また、インスタンスＩ１〜Ｉ７において、どの信号線にも接続されない信号線又はノードがｎ９９により表される。
【００５９】
以上の説明により、本発明の実施形態による半導体集積回路の論理設計検証方法では、トグル・カバレッジを実施する際、ＲＴＬソース・コード２の他にインスタンス間信号リスト３を予め用意することにより、インスタンス間信号リスト３に存在しない変数として、どの信号線にも接続されない信号線又はノードを表す不要変数ｎ９９を検索することができるため、ＲＴＬ設計の品質が向上する。
【００６０】
更に、本発明の実施形態による半導体集積回路の論理設計検証方法では、ＲＴＬソース・コード２とインスタンス間信号リスト３とを予め用意することにより、未変化変数ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２を検索することができる。この場合、未変化変数ｎ１５、ｎ１９、ｎ２２、ｎ９９、ｎ１、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２に対して出力元のノードである選択出力ノードｐ１、ｐ５、ｐ８に集約することにより、設計者が未変化変数を確認するときの時間を短縮することができる。
【００６１】
このように、本発明の実施形態による半導体集積回路の論理設計検証方法によれば、不要変数や未変化変数を確認するときの時間を短縮することができ、ＲＴＬ設計の品質が向上する。
【００６２】
（他の実施形態）
なお、選択出力ノードが複数存在し、複数の選択出力ノードがそれぞれ複数の信号線に接続される場合、複数の信号線のうちの少なくとも１つの信号線は、単線ではなく、束線であることも想定されるが、本発明の実施形態による半導体集積回路の論理設計検証方法では、この場合でも対応可能である。
【００６３】
例えば、図１０に示されるように、信号線ｎ１、ｎ１５、ｎ２９が、８ビットで構成される束線［０：７］であり、更に、インスタンスＩ３には、入力ノードｐ１２９が設けられたインスタンスＩ１０８（モジュールＭ１０５）と、信号線ｎ２９と入力ノードｐ１２９とに接続された信号線とが設けられ、その信号線は、４ビットで構成される束線［４：７］であるものとする。この場合、図１１に示されるように、ＶｅｒｉｌｏｇやＶＨＤＬなどのハードウェア記述言語では、束線は“［］”や“（）”で記述され、“［］”や“（）”内にはビット番号である束線ビット番号が表記される。インスタンス間信号リスト３において、該当の束線ビット番号が［］で記述されているものとする。
【００６４】
いま、上述のカバレッジ抽出処理（ステップＳ３）において、未変化変数レポート７が表す未変化変数は、ｎ１５［０］、ｎ１５［１］、ｎ１５［２］、ｎ１５［３］、ｎ１５［４］、ｎ１５［５］、ｎ１５［６］、ｎ１５［７］、ｎ１９、ｎ２２、ｎ９９、ｎ１［０］、ｎ１［１］、ｎ１［２］、ｎ１［３］、ｎ１［４］、ｎ１［５］、ｎ１［６］、ｎ１［７］、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９［０］、ｎ２９［１］、ｎ２９［２］、ｎ２９［３］、ｎ２９［４］、ｎ２９［５］、ｎ２９［６］、ｎ２９［７］、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２、ｎ１４３［０］、ｎ１４３［１］、ｎ１４３［２］、ｎ１４３［３］であるものとする。
【００６５】
この場合、上述の変数検索処理（ステップＳ４）において、未変化変数処理部８は、未変化変数レポート７が表す未変化変数の中から、インスタンス間信号リスト３が表す変数に一致するか否かを検索する。
【００６６】
上述の不要変数レポート生成処理（ステップＳ５）において、未変化変数処理部８は、未変化変数レポート７が表す未変化変数の中から、インスタンス間信号リスト３が表す変数に一致しない不要変数ｎ９９を選択する。未変化変数処理部８は、不要変数ｎ９９を表す不要変数レポート１０を生成し、出力装置に出力する。又は、未変化変数処理部８は、不要変数レポート１０を記憶部に格納し、設計者の指示に応じて、出力装置に出力する。
【００６７】
上述の候補未変化変数レポート生成処理（ステップＳ６）において、未変化変数処理部８は、未変化変数レポート７が表す未変化変数の中から、インスタンス間信号リスト３が表す変数に一致する候補未変化変数（不要変数ｎ９９以外の未変化変数を選択する。
【００６８】
また、未変化変数処理部８は、インスタンス間信号リスト３から、候補未変化変数ｎ１５［０］、ｎ１５［１］、ｎ１５［２］、ｎ１５［３］、ｎ１５［４］、ｎ１５［５］、ｎ１５［６］、ｎ１５［７］、ｎ１９、ｎ２２、ｎ１［０］、ｎ１［１］、ｎ１［２］、ｎ１［３］、ｎ１［４］、ｎ１［５］、ｎ１［６］、ｎ１［７］、ｎ５、ｎ８、ｐ１、ｐ５、ｐ８、ｎ２９［０］、ｎ２９［１］、ｎ２９［２］、ｎ２９［３］、ｎ２９［４］、ｎ２９［５］、ｎ２９［６］、ｎ２９［７］、ｎ３３、ｎ３６、ｐ１５、ｐ１９、ｐ２２、ｎ１４３［０］、ｎ１４３［１］、ｎ１４３［２］、ｎ１４３［３］に対応する出力モジュール、出力ノード、出力インスタンス、束線ビット番号を候補出力モジュール、候補出力ノード、候補出力インスタンス、候補束線ビット番号として読み出す。ここで、未変化変数処理部８は、入力モジュール、入力ノード、入力インスタンス、束線ビット番号についても候補入力モジュール、候補入力ノード、候補入力インスタンス、候補束線ビット番号として読み出しているものとする。未変化変数処理部８は、候補出力モジュール、候補出力ノード、候補出力インスタンス、候補束線ビット番号、候補入力モジュール、候補入力ノード、候補入力インスタンス、候補束線ビット番号を対応付ける候補未変化変数レポート７’を生成する。
【００６９】
上述の未変化変数選択処理（ステップＳ７）において、未変化変数処理部８は、候補未変化変数レポート７’から、重複する候補出力モジュール、候補出力ノード、候補出力インスタンス、候補束線ビット番号のうちの、１つの候補出力モジュール、候補出力ノード、候補出力インスタンス、候補束線ビット番号だけ残して、残りの候補出力モジュール、候補出力ノード、候補出力インスタンス、候補束線ビット番号を削除する。未変化変数処理部８は、候補未変化変数レポート７’から、重複する候補入力モジュール、候補入力ノード、候補入力インスタンス、候補束線ビット番号のうちの、１つの候補入力モジュール、候補入力ノード、候補入力インスタンス、候補束線ビット番号だけ残して、残りの候補入力モジュール、候補入力ノード、候補入力インスタンス、候補束線ビット番号を削除する。次に、未変化変数処理部８は、候補未変化変数レポート７’から、上記１つの候補出力モジュール、候補出力ノード、候補出力インスタンス、候補束線ビット番号と、上記１つの候補入力モジュール、候補入力ノード、候補入力インスタンス、候補束線ビット番号と、重複しない候補出力モジュール、候補出力ノード、候補出力インスタンス、候補束線ビット番号、候補入力モジュール、候補入力ノード、候補入力インスタンス、候補束線ビット番号とを選択出力モジュール、選択出力ノード、選択出力インスタンス、選択束線ビット番号、選択入力モジュール、選択入力ノード、選択入力インスタンス、選択束線ビット番号として読み出す（選択する）。
【００７０】
上述の選択未変化変数レポート生成処理（ステップＳ８）において、図１２に示されるように、未変化変数処理部８は、選択出力モジュール、選択出力ノード、選択出力インスタンス、選択束線ビット番号、選択入力モジュール、選択入力ノード、選択入力インスタンス、選択束線ビット番号を表す選択未変化変数レポート９を生成し、出力装置に出力する。又は、未変化変数処理部８は、選択未変化変数レポート９を記憶部に格納し、設計者の指示に応じて、出力装置に出力する。
【００７１】
例えば、図１２に示されるように、未変化変数レポート９が表す選択出力モジュール、選択出力ノード、選択出力インスタンス、選択束線ビット番号、選択入力モジュール、選択入力ノード、選択入力インスタンス、選択束線ビット番号（、未動作束線）は、（Ｍ１、ｐ１、Ｉ４、［４、５、６、７］、Ｍ１０５、ｐ１２９、Ｉ１０８、［４、５、６、７］、“１”）、（Ｍ１、ｐ１、Ｉ４、［０、１、２、３、４、５、６、７］、Ｍ３、ｐ１５、Ｉ６、［０、１、２、３、４、５、６、７］、“０”）、（Ｍ１、ｐ５、Ｉ４、［なし］、Ｍ３、ｐ１９、Ｉ６、［なし］、“なし”）、（Ｍ２、ｐ８、Ｉ５、［なし］、Ｍ４、ｐ２２、Ｉ７、［なし］、“なし”）により表されるものとする。
【００７２】
その後、上述の追加テストパターン生成処理（ステップＳ９）において、追加テストパターン生成部１１は、選択未変化変数レポート９が表す選択出力モジュール、選択出力ノード、選択出力インスタンス、選択束線ビット番号、選択入力モジュール、選択入力ノード、選択入力インスタンス、選択束線ビット番号、未動作束線を反映したテストパターンである反映テストパターンを生成し、次の検証に使用するために反映テストパターンをテストパターン５に追加する。
【００７３】
このように、本発明の他の実施形態による半導体集積回路の論理設計検証方法でも、上述の効果を実現する。
【符号の説明】
【００７４】
１    ＬＳＩ製品仕様書、
２    ＲＴＬソース・コード、
３    インスタンス間信号リスト、
５    テストパターン、
６    論理検証・カバレッジ抽出部、
７    未変化変数レポート、
７’    候補未変化変数レポート、
８    未変化変数処理部、
９    選択未変化変数レポート、
１０    不要変数レポート、
１１    追加テストパターン生成部、
１００、２０００    コード・カバレッジ・ツール、
２００１    ＲＴＬ解析部、
２００２    シミュレータ部、
２００３    カバレッジ抽出部、
２００４    カバレッジ出力部、
２００５    ＧＵＩ、
２００６    テキスト、
２００７    テストパターン、
２００９    カバレッジ・データ、
２０１１    第１のＲＴＬソース・コード、
２０１２    第２のＲＴＬソース・コード、
Ｉ１〜Ｉ３、Ｉ１０８    インスタンス、
Ｉ４、Ｉ５    出力インスタンス、
Ｉ６、Ｉ７    入力インスタンス、
Ｍ１、Ｍ２    出力モジュール、
Ｍ３、Ｍ４、Ｍ１０５    入力モジュール、
ｐ１〜ｐ７、ｐ８〜ｐ１４    出力ノード（変数）、
ｐ１５〜ｐ２１、ｐ２２〜ｐ２８、ｐ１２９    入力ノード（変数）、
ｎ１〜ｎ７、ｎ８〜ｎ１４、ｎ１５〜ｎ２１、ｎ２２〜ｎ２８、ｎ２９〜ｎ３５、ｎ３６〜ｎ４２    信号線（変数）
【図１】
2011227803.tif 000003
【図２】
2011227803.tif 000004
【図３】
2011227803.tif 000005
【図４】
2011227803.tif 000006
【図５】
2011227803.tif 000007
【図６】
2011227803.tif 000008
【図７】
2011227803.tif 000009
【図８】
2011227803.tif 000010
【図９】
2011227803.tif 000011
【図１０】
2011227803.tif 000012
【図１１】
2011227803.tif 000013
【図１２】
2011227803.tif 000014