(57)【要約】【課題】回路記述を解析するとき、設計工数を低減し、設計コストを削減する。【解決手段】半導体集積回路の論理設計検証システムは、リントチェック結果変換部１１と、シミュレーション実行部１２、１３とを具備する。リントチェック結果変換部１１は、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、回路記述に対するリントのチェック結果２２を参照し、回路記述における非活性箇所を抽出して、機能シミュレーション用のフォーマットを有する非活性リスト２３に変換する。シミュレーション実行部１２、１３は、回路記述のうち非活性リスト２３に記載のある回路をカバレッジ対象外として機能シミュレーションを行い、非活性箇所が省かれたカバレッジ結果２４を取得する。【選択図】図４
2012155482.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の論理設計検証システムであって、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、
前記回路記述に対するリントのチェック結果を参照し、前記回路記述における非活性箇所を抽出して、前記機能シミュレーション用のフォーマットを有する非活性リストに変換するリントチェック結果変換部と、
前記回路記述のうち前記非活性リストに記載のある回路をカバレッジ対象外として前記機能シミュレーションを行い、前記非活性箇所が省かれたカバレッジ結果を取得するシミュレーション実行部と
を具備する
論理設計検証システム。
【請求項２】
請求項１に記載の論理設計検証システムにおいて、
前記回路記述のうち前記非活性リストに記載のある回路をカバレッジ対象外にした変換後回路記述を生成する回路記述変換部を更に具備し、
前記シミュレーション実行部は、前記変換後回路記述について前記機能シミュレーションを行い、前記非活性箇所が省かれたカバレッジ結果を取得する
論理設計検証システム。
【請求項３】
半導体集積回路の論理設計検証システムであって、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、
前記回路記述に対するリントのチェック結果を参照し、前記回路記述における非活性箇所を抽出して、前記機能シミュレーション用のフォーマットを有する非活性リストに変換するリントチェック結果変換部と、
前記回路記述について前記機能シミュレーションを行い、カバレッジ結果を取得するシミュレーション実行部と、
前記カバレッジ結果のうち前記非活性リストに記載のある回路をカバレッジ対象外として、前記非活性箇所が省かれたカバレッジ結果を取得するカバレッジデータ変換部と
を具備する
論理設計検証システム。
【請求項４】
請求項１乃至３のいずれか一項に記載の論理設計検証システムにおいて、
前記リントチェック結果変換部は、
リントのルールのうち非活性であっても問題ないルールを示すルール表を備え、
前記回路記述に対するリントのチェック結果を参照して、前記ルール表に従って、前記非活性箇所を抽出して、前記非活性リストに変換する
論理設計検証システム。
【請求項５】
請求項４に記載の論理設計検証システムにおいて、
前記非活性であっても問題ないルールは、前記リントのチェック結果のエラー及びワーニングのうち固定値及び浮き信号に関するルールを含む
論理設計検証システム。
【請求項６】
請求項１乃至５のいずれか一項に記載の論理設計検証システムにおいて、
前記シミュレーション実行部は、前記非活性箇所が省かれたカバレッジ結果を再度シミュレーションする
論理設計検証システム。
【請求項７】
半導体集積回路の論理設計検証方法であって、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、
前記回路記述に対するリントのチェック結果を参照して、リントのルールのうち非活性であっても問題ないルールを示すルール表に従って、前記回路記述における非活性箇所を抽出して、前記機能シミュレーション用のフォーマットを有する非活性リストに変換するステップと、
前記回路記述のうち前記非活性リストに記載のある回路をカバレッジ対象外として前記機能シミュレーションを行い、前記非活性箇所が省かれたカバレッジ結果を取得するステップと
を具備する
論理設計検証方法。
【請求項８】
請求項７に記載の論理設計検証方法において、
前記回路記述のうち前記非活性リストに記載のある回路をカバレッジ対象外にした変換後回路記述を生成するステップを更に具備し、
前記カバレッジ結果を取得するステップは、前記変換後回路記述について前記機能シミュレーションを行い、前記非活性箇所が省かれたカバレッジ結果を取得するステップを備える
論理設計検証方法。
【請求項９】
半導体集積回路の論理設計検証方法であって、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、
前記回路記述に対するリントのチェック結果を参照して、リントのルールのうち非活性であっても問題ないルールを示すルール表に従って、前記回路記述における非活性箇所を抽出して、前記機能シミュレーション用のフォーマットを有する非活性リストに変換するステップと、
前記回路記述について前記機能シミュレーションを行い、カバレッジ結果を取得するステップと、
前記カバレッジ結果のうち前記非活性リストに記載のある回路をカバレッジ対象外として、前記非活性箇所が省かれたカバレッジ結果を取得するステップと
を具備する
論理設計検証方法。
【請求項１０】
請求項７乃至９のいずれか一項に記載の論理設計検証方法において、
前記非活性であっても問題ないルールは、前記リントのチェック結果のエラー及びワーニングのうち固定値及び浮き信号に関するルールである
論理設計検証方法。
【請求項１１】
請求項７乃至１０のいずれか一項に記載の論理設計検証方法において、
前記非活性箇所が省かれたカバレッジ結果を再度シミュレーションするステップを更に具備する
論理設計検証方法。
【請求項１２】
半導体集積回路の論理設計検証方法をコンピュータに実行させるプログラムであって、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、
前記回路記述に対するリントのチェック結果を参照して、リントのルールのうち非活性であっても問題ないルールを示すルール表に従って、前記回路記述における非活性箇所を抽出して、前記機能シミュレーション用のフォーマットを有する非活性リストに変換するステップと、
前記回路記述のうち前記非活性リストに記載のある回路をカバレッジ対象外として前記機能シミュレーションを行い、前記非活性箇所が省かれたカバレッジ結果を取得するステップと
を具備する
論理設計検証方法をコンピュータに実行させるプログラム。
【請求項１３】
請求項１２に記載のプログラムにおいて、
前記回路記述のうち前記非活性リストに記載のある回路をカバレッジ対象外にした変換後回路記述を生成するステップを更に具備し、
前記カバレッジ結果を取得するステップは、前記変換後回路記述について前記機能シミュレーションを行い、前記非活性箇所が省かれたカバレッジ結果を取得するステップを備える
プログラム。
【請求項１４】
半導体集積回路の論理設計検証方法をコンピュータに実行させるプログラムであって、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、
前記回路記述に対するリントのチェック結果を参照して、リントのルールのうち非活性であっても問題ないルールを示すルール表に従って、前記回路記述における非活性箇所を抽出して、前記機能シミュレーション用のフォーマットを有する非活性リストに変換するステップと、
前記回路記述について前記機能シミュレーションを行い、カバレッジ結果を取得するステップと、
前記カバレッジ結果のうち前記非活性リストに記載のある回路をカバレッジ対象外として、前記非活性箇所が省かれたカバレッジ結果を取得するステップと
を具備する
論理設計検証方法をコンピュータに実行させるプログラム。
【請求項１５】
請求項１２乃至１４のいずれか一項に記載のプログラムにおいて、
前記非活性であっても問題ないルールは、前記リントのチェック結果のエラー及びワーニングのうち固定値及び浮き信号に関するルールである
プログラム。
【請求項１６】
請求項１２乃至１５のいずれか一項に記載のプログラムにおいて、
前記非活性箇所が省かれたカバレッジ結果を再度シミュレーションするステップを更に具備する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理設計検証システム及び論理設計検証方法に関し、特に半導体集積回路の機能検証に用いる論理設計検証システム及び論理設計検証方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路（例示：システムＬＳＩ）の設計における論理回路の機能検証において、半導体集積回路の大規模化や複雑化に伴い、回路動作の網羅度（以降、カバレッジと称す）を調べることが重要になってきている。しかし、設計者がカバレッジの結果を解析する回路記述の量が増加しているため、修正箇所の増加や目視確認でのミス混入等により設計工数が増加してしまう。設計者が回路記述を解析する場合に、設計工数を低減し、設計コストを削減可能な技術が望まれる。設計者が回路記述を解析する場合に、活性化されていない（非活性な）回路及びその原因の特定が容易にできる技術が望まれている。
【０００３】
図１は、非特許文献１（ｈｔｔｐ：／／ｔｅｃｈｏｎ．ｎｉｋｋｅｉｂｐ．ｃｏ．ｊｐ／ａｒｔｉｃｌｅ／ＷＯＲＤ／２００５１１２５／１１１０２５ＥＤＡ用語辞典、“コード・カバレッジ・ツール”（２００９／９／７））に記載された一般的なコード・カバレッジ・ツールの構成を示すブロック図である。このコード・カバレッジ・ツール２０００では、まず、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）解析カバレッジ・モニタ・コード埋め込み部２００１が、検証対象回路のＲＴＬソース・コード２０１１（ＲＴＬのハードウェア記述言語で記述される論理回路等の回路記述）を受け取り、そのＲＴＬソース・コード２０１１にカバレッジ・モニタ用のコードを埋め込み、そのカバレッジ・モニタ用コードを含んだＲＴＬソース・コード２０１２を出力する。次に、シミュレータ２００２が、ＲＴＬソース・コード２０１２とテスト・パターンＡ２００７とを受け取り、機能シミュレーションを行なう。そのとき、カバレッジ取得部２００３が、そのシミュレーション中にカバレッジ・データを抽出して、カバレッジ・データＡ２００９として出力する。そして、カバレッジ結果表示２００４が、カバレッジ・データＡ２００９を受け取り、カバレッジ結果としてＧＵＩ出力２００５及びテキスト出力２００６に表示する。
【０００４】
ここで、設計者は、表示されたカバレッジ結果の解析に基づいて、必要に応じてテスト・パターンＢ２００８を追加する。続いて、シミュレータ２００２が、ＲＴＬソース・コード２０１２とテスト・パターンＡ２００７とテスト・パターンＢ２００８とを受け取り、再度、機能シミュレーションを行なう。そのとき、カバレッジ取得部２００３が、そのシミュレーション中にカバレッジ・データを抽出して、カバレッジ・データＡ２００９及びカバレッジ・データＢ２０１０として出力する。そして、カバレッジ結果表示２００４が、カバレッジ・データＡ２００９とカバレッジ・データＢ２０１０とを受け取り、改めてカバレッジ結果としてＧＵＩ出力２００５及びテキスト出力２００６に表示する。
【０００５】
一般的なコードカバレッジツールは、カバレッジデータとして、動作していないソースコードを出力する。設計者は、出力されたソースコードが不要コードである場合は削除し、未検証コードの場合は検証項目（テストパターン）を追加する。それにより、テストパターンの品質向上及び回路規模縮小を行うことがコードカバレッジを用いた論理検証の大きな目的である。このような技術は、ＲＴＬの機能シミュレーションに伴って得られるカバレッジ結果の解析処理結果の妥当性を確認することを目的としており、設計者がカバレッジ結果を解析し、解析処理結果を画面上に表示できる機能を有し、解析結果の妥当性を設計者以外の許可された人間が確認できる。
【０００６】
図２は、特許文献１（特許第３９７４０４８号公報（対応米国特許ＵＳ７０９３２１６（Ｂ２）））に記載された設計検証システムの設計検証主要サブシステムの構成を示すブロック図である。設計検証主要サブシステム１００１は、クライアントコンピュータのシミュレータ及びカバレッジ取得部（例示：図１の２００２及び２００３）からカバレッジデータ（例示：図１の２００９及び２０１０）を受け取る。そして、設計検証主要サブシステム１００１は、コードカバレッジに関する情報を表示可能とし、検証評価中における解析状況を的確に把握できるようにしている。設計検証主要サブシステム１００１は、演算処理部（ＣＰＵ）１００２、ＣＰＵ１００２に接続された表示装置２００３、入力装置１００４、出力装置１００５、主記憶装置１００６、（解析前／解析後）表示ファイル記憶装置１００７、２次記憶装置１００８から構成されている。ＣＰＵ１００２は、シミュレーション結果データ取得部１０１０、データ変換・登録部１０１１、解析情報取得部１０１２、解析情報処理部１０１３、データ表示部１０１４を備えている。入力装置１００４から入力操作が行われると対応する情報（データ）がＣＰＵ１００２に伝達される。表示ファイル記憶装置１００７は、機能シミュレーション結果データを編集処理した解析前表示ファイル、および（または）、解析処理結果を編集処理した解析後表示ファイルを保存している。２次記憶装置１００８は、ハードディスク装置のような磁気記憶装置等で構成され、入力装置１００４から入力された設計検証プログラム等のプログラムやデータ等が格納されたり、プログラムの処理結果が格納されたりするようになっている。
【０００７】
図３は、特許文献１に記載された設計検証システムの表示画面の一例である。この表示画面は、ＲＴＬコードカバレッジの結果等及びその解析処理結果を表示している。この表示画面の各項目には、該当するＲＴＬ記述と、数種類の冗長記述である理由（除外できるもの：未使用機能、仕様上・ツール対応の冗長、見易さ向上のための意図的冗長）のいずれに属するかを指定する欄と、検証パターン不足による未活性（除外できないもの）を指定する欄と、詳細な内容を自由記述する欄とが設けられている。更に、解析の結果、いずれにも判定できない（除外できない）場合を指定する欄も設けてあるが、チェックを入れずに自由記述だけで済ませるようにすることもできる。この図３の表示により、ユーザは最終結果に至った経緯を詳細かつ明確に把握することができる。
【０００８】
関連する技術として、特開２００６−２２１４７３号公報（特許文献２）に、論理検証装置、論理検証方法および論理検証プログラムが開示されている。この論理システムの検証装置は、ハードウェア記述言語で記述された論理システムの検証装置である。この論理システムの検証装置は、検出手段と、抽出手段と、論理関数導出手段と、機能特定手段と、出力手段とを含む。検出手段は、論理システム内の非活性コードを検出する。抽出手段は、論理システムにおける、検出された前記非活性コードを含む論理機能ブロックを抽出する。論理関数導出手段は、論理機能ブロックにおいて前記非活性コードに至る論理関数を導出する。機能特定手段は、非活性コードを含む論理機能ブロックの機能を特定する。出力手段は、導出された前記論理関数と特定された前記機能の内容とを出力する。この論理システムの検証装置は、非活性動作仕様記述の生成に関するアルゴニズムであり、非活性動作仕様記述を出力するものである。
【０００９】
関連する技術として、特開２００９−６９９２２号公報（特許文献３）にカバレッジ測定方法、コンピュータ読み取り可能な記録媒体、及びデータ処理システムが開示されている。このカバレッジ測定方法は、ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードをコンパイル用コンピュータ装置に入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成し、シミュレーション用コンピュータ装置にテストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積し、前記蓄積したカバレッジ情報に基づいてカバレッジ生成用コンピュータ装置によりテストパターンについてのカバレッジを算出する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第３９７４０４８号公報（対応米国特許ＵＳ７０９３２１６（Ｂ２））
【特許文献２】特開２００６−２２１４７３号公報
【特許文献３】特開２００９−６９９２２号公報
【非特許文献】
【００１１】
【非特許文献１】ｈｔｔｐ：／／ｔｅｃｈｏｎ．ｎｉｋｋｅｉｂｐ．ｃｏ．ｊｐ／ａｒｔｉｃｌｅ／ＷＯＲＤ／２００５１１２５／１１１０２５／ＥＤＡ用語辞典、“コード・カバレッジ・ツール”（２００９／９／７）
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上記特許文献１の技術は、カバレッジ結果からソースコードの何処がどういう理由で未検証であるかを表示するものである。そのため、未使用機能の回路、仕様上の冗長回路及びＲＴＬ記述の見易さのための冗長な回路等のカバレッジ結果が膨大に出力（表示）されてくる。したがって、カバレッジの結果を解析して検証を不要とするコードと検証を必要とするコードとを、コード仕様と照合しながら確認する作業が膨大となり、検証作業に時間が掛かり、コストも増大するという問題がある。
【課題を解決するための手段】
【００１３】
以下に、発明を実施するための形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１４】
本発明の論理設計検証システムは、半導体集積回路の論理設計検証システムであって、リントチェック結果変換部（１１）と、シミュレーション実行部（１２、１３）とを具備している。リントチェック結果変換部（１１）は、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、回路記述に対するリントのチェック結果（２２）を参照し、回路記述における非活性箇所を抽出して、機能シミュレーション用のフォーマットを有する非活性リスト（２３）に変換する。シミュレーション実行部（１２、１３）は、回路記述のうち非活性リスト（２３）に記載のある回路をカバレッジ対象外として機能シミュレーションを行い、非活性箇所が省かれたカバレッジ結果（２４）を取得する。
【００１５】
本発明の論理設計検証方法は、半導体集積回路の論理設計検証方法であって、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、回路記述に対するリントのチェック結果（２２）を参照して、リントのルールのうち非活性であっても問題ないルールを示すルール表（１８）に従って、回路記述における非活性箇所を抽出して、機能シミュレーション用のフォーマットを有する非活性リスト（２３）に変換するステップと、回路記述のうち非活性リスト（２３）に記載のある回路をカバレッジ対象外として機能シミュレーションを行い、非活性箇所が省かれたカバレッジ結果（２４）を取得するステップとを具備している。
【００１６】
本発明のプログラムは、半導体集積回路の論理設計検証方法をコンピュータに実行させるプログラムであって、ハードウェア記述言語で記述された回路記述の機能シミュレーションにおけるカバレッジ検証において、回路記述に対するリントのチェック結果（２２）を参照して、リントのルールのうち非活性であっても問題ないルールを示すルール表（１８）に従って、回路記述における非活性箇所を抽出して、機能シミュレーション用のフォーマットを有する非活性リスト（２３）に変換するステップと、回路記述のうち非活性リスト（２３）に記載のある回路をカバレッジ対象外として機能シミュレーションを行い、非活性箇所が省かれたカバレッジ結果（２４）を取得するステップとを具備している。
【発明の効果】
【００１７】
本発明により、回路記述を解析する場合、設計工数を低減し、設計コストを削減することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】図１は、非特許文献１に記載された一般的なコード・カバレッジ・ツールの構成を示すブロック図である。
【図２】図２は、特許文献１に記載された設計検証システムの設計検証主要サブシステムの構成を示すブロック図である。
【図３】図３は、特許文献１に記載された設計検証システムの表示画面の一例である。
【図４】図４は、本発明の実施の形態に係る論理設計検証システムの構成を示すブロック図である。
【図５】図５は、リントチェック結果の一例を示す表である。
【図６】図６は、文字列比較ルール表の一例を示す表である。
【図７】図７は、非活性リストの一例を示す表である。
【図８】図８は、本発明の実施の形態に係る論理設計検証方法を示すフローチャートである。
【図９】図９は、図８のステップＳ０２の詳細を示すフローチャートである。
【図１０】図１０は、表示装置でのカバレッジ結果の表示画面の一例である。
【図１１】図１１は、本発明の実施の形態に係る論理設計検証システムの第１の変形例の構成を示すブロック図である。
【図１２】図１２は、本発明の実施の形態に係る論理設計検証システムの第２の変形例の構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態に係る論理設計検証システム及び論理設計検証方法について、添付図面を参照して説明する。
【００２０】
まず、本発明の実施の形態に係る論理設計検証システムの構成について説明する。図４は、本発明の実施の形態に係る論理設計検証システムの構成を示すブロック図である。論理設計検証システム１は、ハードウェア記述言語で記述された回路記述（例示：ＲＴＬソースコード２１）について機能検証（例示：カバレッジ検証を含む機能シミュレーション）を行い、カバレッジ検証の結果（例示：カバレッジデータ２４）等を出力する。
【００２１】
論理設計検証システム１は、コンピュータに例示される情報処理装置であり、図示されていないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、記憶装置と、入力装置と、インターフェースと、図示された表示装置１４とを備えている。ＣＰＵ、記憶装置、入力装置、表示装置１４、及びインターフェースは、バスやケーブルにより互いに情報の送受信が可能に接続されている。記憶装置は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及びＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）に例示される。入力装置は、キーボード、及びマウスに例示される。出力装置として、表示装置１４の他にプリンタを備えていてもよい。インターフェースは、外部のコンピュータや記憶装置や記憶媒体読取装置などと双方向通信可能に接続されている。
【００２２】
ＣＰＵは、例えば記憶媒体からインターフェースを介してＨＤＤにインストールされたコンピュータプログラムをＲＡＭに展開する。そして、展開されたコンピュータプログラムを実行して、必要に応じて記憶装置や入力装置や出力装置のようなハードウェアを制御しながら、当該コンピュータプログラムの情報処理を実現する。記憶装置は、コンピュータプログラムを記憶し、ＣＰＵが利用する情報や生成する情報を記憶する。入力装置は、ユーザに操作されることにより生成される情報をＣＰＵや記憶装置に出力する。表示装置１４は、ＣＰＵにより生成された情報や記憶装置の情報をユーザに認識可能に出力する。
【００２３】
論理設計検証システム１は、コンピュータプログラムであるリントチェックツール１０とリントチェック結果変換部１１とシミュレータ１２とカバレッジ取得部１３とを備えている。ただし、シミュレータ１２とカバレッジ取得部１３とを併せてシミュレーション実行部ともいう。
【００２４】
論理設計検証システム１の検証対象であるＲＴＬソースコード２１は、内部又は外部の記憶装置に格納されており、リントチェックツール１０に入力される。なお、ＲＴＬソースコード２１としては、文法上又は設計上の予め設定された規則に違反していないかについて既に検証されているものとする。また、カバレッジ・モニタ用コードが既に埋め込まれていても良い。
【００２５】
リントチェックツール１０は、入力されたＲＴＬソースコード２１のリントチェックを行ない、その結果をリントチェック結果２２として出力する。リントチェックツール１０は、リントチェックが可能であれば特に限定されるものではない。
【００２６】
リントチェック結果変換部１１は、リントのルールのうち非活性であっても問題ないルールを示す文字列比較ルール表１８（後述）を有している。リントチェック結果変換部１１は、リントチェック結果２２を入力とし、文字列比較ルール表１８を参照しながら、リントチェック結果２２で指摘された箇所のうち、非活性であっても問題ないルールに対応する箇所を非活性箇所（非活性回路）として抽出する。そして、抽出された非活性箇所をシミュレータ１２が読めるフォーマットに変換して、非活性リスト２３として出力する。
【００２７】
シミュレータ１２は、生成された非活性リスト２３及びＲＴＬソースコード２１を入力とし、非活性リスト２３に記載のある非活性箇所（非活性回路）をカバレッジ対象外と設定して機能シミュレーションを行なう。
【００２８】
カバレッジ取得部１３は、機能シミュレーション結果を入力とし、カバレッジ結果としてのカバレッジデータ２４を抽出する。カバレッジデータ２４は、機能シミュレーション時にＲＴＬソースコード２１で記述された回路記述においてどの記述が実行され、どの記述が実行されなかったかを示すデータである。カバレッジデータ２４では、非活性リスト２３に記載のある非活性箇所が、カバレッジ対象外であるため省かれている。
【００２９】
表示装置１４は、カバレッジ取得部１３から出力されたカバレッジデータ２４をカバレッジ結果として表示する。このとき、非活性リスト２３に記載のある非活性箇所（コード）が省かれているため、検証を不要とするコードと検証を必要とするコードとを、コード仕様と照合しながら確認する作業を減少させることができる。すなわち、活性化されていない（非活性な）回路及びその原因の特定が容易にできる。それにより、検証作業にかかる時間が削減され、設計コストも低減することができる。
【００３０】
次に、リントチェックツール１０が出力するリントチェック結果２２について説明する。図５は、リントチェック結果２２の一例を示している。図５はあるＲＴＬソースコード２１に対してリントチェックを行った結果２２であり、本発明はこの例に限定されるものではない。
【００３１】
リントチェック結果２２は、「ルール」と、「メッセージ」と、「ファイル名」と、「行数」と、「ＲＴＬ記述」とを互いに関連付けており、複数行で構成されている。
「ルール」は、リントチェックにおいて検出されたエラー／ワーニングの種類を記号で表したものである。この図５においては、例えば、仮に、“ＡＡＡ”、“ＢＢＢＢ”、“ＣＣＣ”、…、のような記号で示している。
「メッセージ」は、エラー／ワーニングのメッセージであり、エラー／ワーニングの種類を表したものである。この図５においては、例えば、３行目に示される“ＦｉｘｅｄＩｎｐｕｔＦＦ”は、入力固定のＦＦ（Ｆｌｉｐ−Ｆｌｏｐ）であることを示し、ワーニングメッセージを意味している。
「ファイル名」は、エラー／ワーニングの発生したＲＴＬを含むファイルのファイル名であり、複数のファイルがある場合、どのファイルにエラー／ワーニングが発生したのかを表したものである。この図５においては、例えば、３行目に示されるワーニング“ＦｉｘｅｄＩｎｐｕｔＦＦ”は、ファイル“ｂｒｄ．ｖ”で発生したことを示している。
「行数」は、ファイル中のエラー／ワーニングの発生したＲＴＬの行数（行番号）である。この図５においては、例えば、３行目に示されるワーニング“ＦｉｘｅｄＩｎｐｕｔＦＦ”は、ファイル“ｂｒｄ．ｖ”の“１３９”行目で発生したことを示している。
「ＲＴＬ記述」は、エラー／ワーニングの発生したＲＴＬの階層を含めた記述を表したものである。この図５においては、例えば、３行目に示されるワーニング“ＦｉｘｅｄＩｎｐｕｔＦＦ”は、ＲＴＬ記述“Ｆｌｉｐ−ｆｌｏｐ‘○○□□＿ｉｎｐｕｔ．ＳＣＡＴＲＣＮＴ［１５：１４］ｓｔａｒｔ＿ｄｅｔ’ｈａｓ  ｆｉｘｅｄ  ｉｎｐｕｔ  ｖａｌｕｅ‘０’”に発生したことを示している。
【００３２】
次に、リントチェック結果変更部１１の有する文字列比較ルール表１８について説明する。図６は、文字列比較ルール表１８の一例を示している。図６は有るリントチェックツール１０に対応して設定される文字列比較ルール表１８であり、本発明はこの例に限定されるものではない。
【００３３】
文字列比較ルール表１８は、リントチェックにおいて検出されたエラー／ワーニングの種類（ルール）のうち非活性であっても問題ないルールを判断するためのものである。ルール２００と非活性理由２０１とを互いに関連付けており、複数行で構成されている。ルール２００は、リントチェックツール１０によるリントチェックの結果が出力するエラーやワーニングのうち、固定値や浮き信号のものであり、種類を記号で表した文字列で構成される。これらを有する回路は、非活性であっても問題が無い回路であり、例えば、回路の流用による未使用機能の回路や、仕様上・ツール対応の冗長な回路、及び、ＲＴＬ記述の見易さのための意図的冗長な回路である。非活性理由２０１は、非活性であっても問題の無い理由を説明するものであり、文字列で構成される。これらは、リントチェックツール１０の構成や機能に対応して設定される。この図６においては、例えば、２行目に示されるルール“ＤＤＤＤ”は、非活性であっても問題ないルールであり、その理由は“（Ａ）固定値”であることを示している。また、４行目に示されるルール“ＡＡＡ”は、非活性であっても問題ないルールであり、その理由は“（Ｂ）浮き信号”であることを示している。
【００３４】
次に、リントチェック結果変更部１１が生成する非活性リスト２３について説明する。図７は、非活性リスト２３の一例を示している。図７は図５のリントチェック結果２２から図６の文字列比較ルール表１８に則って作成した非活性リスト２３であり、本発明はこの例に限定されるものではない。
【００３５】
非活性リスト２３は、回路部分を示すＲＴＬ記述とコメントとで構成される。ＲＴＬ記述は、リントチェック結果２２（図５）から、文字列比較ルール表１８（図６）のルールに則って非活性であっても問題が無いと判断されて抽出された、ＲＴＬの階層を含めた記述である。コメントは、非活性である理由であり、特にフォーマットに規則はない。例えば、図５のリントチェック結果２２において、２行目に示されるルール“ＢＢＢＢ”は、図６の文字列比較ルール表１８において、“（Ｂ）浮き信号”という非活性理由２０１を有するルール２００に含まれている。したがって、図７の非活性リスト２３において、図５の２行目のＲＴＬ記述のうち、回路部分を示す“○○□□＿ｉｎｐｕｔ．ＳＣＡＴＲＣＮＴ［１５：１４］ｓｔａｒｔ＿ｄｅｔ”が“ＲＴＬ記述”として抽出され、非活性理由の“（Ｂ）浮き信号”が“コメント”として抽出され、互いに関連付けられている。
【００３６】
次に、本発明の実施の形態に係る論理設計検証方法（論理設計検証システムの動作）について説明する。図８は、本発明の実施の形態に係る論理設計検証方法（論理設計検証システムの動作）を示すフローチャートである。
【００３７】
内部又は外部の記憶装置に格納された検証対象であるＲＴＬソースコード２１がリントチェックツール１０に入力される。ＲＴＬソースコード２１は、文法上又は設計上の予め設定された規則に違反していないかについて既に検証されている。リントチェックツール１０は、入力されたＲＴＬソースコード２１のリントチェックを実行し、その結果をリントチェック結果２２（例示：図５）として出力する（ステップＳ０１）。
【００３８】
リントチェック結果変換部１１は、リントチェック結果２２（例示：図５）を入力とし、文字列比較ルール表１８（例示：図６）を参照しながら、リントチェック結果２２で指摘された箇所のうち、非活性であっても問題ないルールに対応する箇所を非活性箇所（非活性回路）として抽出する。そして、シミュレータ１２が読めるフォーマットに変換した非活性リスト２３（例示：図７）を生成して出力する（ステップＳ０２）。
【００３９】
シミュレータ１２は、生成された非活性リスト２３（例示：図７）及びＲＴＬソースコード２１を入力とし、非活性リスト２３に記載のある非活性箇所（非活性回路）をカバレッジ対象外と設定して、機能シミュレーションを実行する（ステップＳ０３）。
【００４０】
カバレッジ取得部１３は、機能シミュレーション結果を入力とし、動作していないソースコードを抽出してカバレッジデータ２４として出力する（ステップＳ０４）。このとき、カバレッジデータ２４では、非活性リスト２３（例示：図７）に記載のある非活性箇所が省かれている。
【００４１】
表示装置１４は、カバレッジ取得部１３から出力されたカバレッジデータ２４をカバレッジ結果として表示する（ステップＳ０５）。後述されるように、その表示には、非活性であるが、検証パターン不足なため除外できない回路や原因解析不足のため除外できない回路に対応するＲＴＬ記述が表示される。非活性であるが問題が無い回路（非活性箇所／回路）は表示されない。
【００４２】
カバレッジデータ２４に、非活性であるが、検証パターン不足なため除外できない回路や原因解析不足のため除外できない回路に対応するＲＴＬ記述が無くなれば、カバレッジが１００％となり、検証は終了となる（ステップＳ０６：Ｙｅｓ）。しかし、非活性であるが、検証パターン不足なため除外できない回路や原因解析不足のため除外できない回路に対応するＲＴＬ記述（ソースコード）が残っている場合、設計者は、表示装置１４に表示されたカバレッジデータ２４を解析する。そして、例えば、出力されたソースコードが不要コードである場合には、非活性リスト２３に追加して、次回の機能シミュレーションにおいてカバレッジ対象外となるようにする。また、例えば、出力されたソースコードが未検証コードの場合には検証項目（テストパターン）を追加する（ステップＳ０７）。そして、ステップＳ０３に戻る。
【００４３】
以上のようにして、本実施の形態における論理設計検証方法（論理設計検証システムの動作）が実行される。
【００４４】
次に、非活性リスト２３の作成方法、すなわち、本実施の形態のリントチェック結果変換部１１の処理手順（ステップＳ０２）について説明する。図９は、図８のステップＳ０２の詳細を示すフローチャートである。
【００４５】
リントチェック結果変換部１１は、まず、リントチェックツール１０が出力したリントチェック結果２２（図５）を一行読み込む（ステップＳ１００）。
次に、リントチェック結果変換部１１は、読み込んだリントチェック結果２２の文字列をスペースで分割し、非活性リスト２３を生成するためのデータとして配列に代入する（ステップＳ１０１）。
続いて、リントチェック結果変換部１１は、ステップＳ１０１で生成したデータの配列を順番に解析するために、配列の変数ｉに１を入力する（ステップＳ１０２）。
その後、リントチェック結果変換部１１は、文字列比較ルール表１８（図６）にあるルール２００の文字列と読み込んだリントチェック結果２２の文字列とを比較する（ステップＳ１０３）。読み込んだリントチェック結果２２の文字列が、文字列比較ルール表１８にあるルール２００の文字列のいずれかと一致致した場合、ステップＳ１０４に進む。一致しない場合、ステップＳ１０７に進む。
次に、リントチェック結果変換部１１は、データの配列の変数ｉをインクリメントする（ステップＳ１０４）。
続いて、リントチェック結果変換部１１は、読み込んだリントチェック結果２２の文字列から、ＲＴＬの階層を含む記述を、フルパスで記述している文字列（図５のリストの‘ ’で囲まれた文字列）を抽出し、データの配列に代入する（ステップＳ１０５）。
その後、リントチェック結果変換部１１は、データの配列に格納されている内容を非活性化リスト２３（図７）に書き込む（ステップＳ１０６）。この時、非活性理由２０１の文字列（図６）などをコメントとして書き込んでもよい。
次に、リントチェック結果変換部１１は、リントチェック結果２２のリストの全行の処理が終了したかを判断する（ステップＳ１０７）。リントチェック結果変換部１１は、全行を終了していなければステップＳ１００に戻り、次の行に対して処理を実行する。全行を終了していれば、処理を終了する。
【００４６】
上記図９のステップＳ０２の処理（ステップＳ１００〜Ｓ１０６）の一例を、図５のリントチェック結果２２の１行目の浮き信号を示すルール‘ＡＡＡ’を一例として説明する。
ステップＳ１００において、リントチェック結果変換部１１は、このリントチェック結果２２の１行目を読み込む。このリントチェック結果２２において、ルール‘ＡＡＡ’では、ＲＴＬのファイル名を示す「ｂｒｄ．ｖ」の７１４行目に記載されている出力端子‘ｆｆｆ０＿ｐｓｅｌ’が浮き端子であることを示すワーニングメッセージが出力されている。
次に、ステップＳ１０３において、リントチェック結果変換部１１は、図６の文字列比較ルール表１８のルール２００の文字列のいずれかと、ルール‘ＡＡＡ’とが一致するかを判断する。その結果、図６の非活性理由２０１である（Ｂ）浮き信号における、ルール２００の１番目に示される‘ＡＡＡ’と、ルール‘ＡＡＡ’とが一致すると判断する。
そして、ステップＳ１０６において、リントチェック結果変換部１１は、図７の非活性リスト２３において、１行目に‘ＡＡＡ’の出力端子名である‘ｆｆｆ０＿ｐｓｅｌ’（図５）をＲＴＬ記述として、及び、非活性理由の文字列である‘（Ｂ）浮き信号’（図６）をコメントとしてそれぞれ書き込む。
【００４７】
上記図９のステップＳ０２の処理（ステップＳ１００〜Ｓ１０６）の一例を、図５のリントチェック結果２２の４行目の固定値を示すルール‘ＤＤＤＤ’を一例として説明する。
ステップＳ１００において、リントチェック結果変換部１１は、このリントチェック結果２２の４行目を読み込む。このリントチェック結果２２において、ルール‘ＤＤＤＤ’では、ＲＴＬのファイル名を示す「ｂｒｄ．ｖ」の８５６行目に記載されている端子‘○○．××．ＣＨ０．□．××ＷＷ．ＷＩ１５［１４］’が固定値であることを示すワーニングのメッセージが出力されている。
次に、ステップＳ１０３において、リントチェック結果変換部１１は、図６の文字列比較ルール表１８のルール２００の文字列のいずれかと、ルール‘ＤＤＤＤ’とが一致するかを判断する。その結果、図６の非活性理由２０１である（Ａ）固定値における、ルール２００の１番目に示される‘ＤＤＤＤ’と、ルール‘ＤＤＤＤ’とが一致すると判断する。
そして、ステップＳ１０６において、リントチェック結果変換部１１は、図７の非活性リスト２３において、４行目に‘ＤＤＤＤ’の端子名である‘○○．××．ＣＨ０．□．××ＷＷ．ＷＩ１５［１４］’（図５）をＲＴＬ記述として、及び、非活性理由の文字列である‘（Ａ）固定値’（図６）をコメントとしてそれぞれ書き込む。
【００４８】
以上の例のようにステップＳ１００〜Ｓ１０６を実行した後、ステップＳ１０７において、リントチェック結果２２のリストが終了したかを判断し、リストの全行の変換処理を行なうことにより、図７に示す非活性リスト２３を完成させる。
【００４９】
本実施の形態において、シミュレータ１２は、作成された非活性リスト２３に記載された回路をカバレッジ対象外としてシミュレーションを行う。そのため、浮き信号や固定値の非活性回路が省かれたカバレッジ結果を出力することができる。
【００５０】
図１０は、表示装置１４でのカバレッジ結果の表示画面の一例である。この図は、図３の特許文献１に記載された設計検証システムの表示画面との対比がしやすいように記載している。図１０の表示画面は、図３の表示画面と比較して、回路の流用による未使用機能の回路や、仕様上・ツール対応の冗長な回路、及び、ＲＴＬ記述の見易さのための意図的冗長な回路などが、非活性であっても問題の無い非活性回路として省かれる。ため、カバレッジ結果の表示を削減してより見やすくすることができる。
【００５１】
以上、説明したとおり、本実施の形態ではリントチェック結果２２から生成した非活性リスト２３を非活性箇所の情報としてシミュレータ１２に入力してカバレッジ対象外として機能シミュレーションを実行することにより、非活性箇所をカバレッジ結果に出力しないようにしている。そのため、カバレッジ結果が減少してイタレーションループが減るため、カバレッジ解析が容易となり解析時間が短縮されて検証ＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）が削減される効果がある。
【００５２】
（第１の変形例）
次に、本発明の実施の形態に係る論理設計検証システムの第１の変形例の構成について説明する。図１１は、本発明の実施の形態に係る論理設計検証システムの第１の変形例の構成を示すブロック図である。論理設計検証システム１ａは、ＲＴＬソースコード変換部１５を更に具備している点で、図４の構成と異なっている。
【００５３】
ＲＴＬソースコード変換部１５は、ＲＴＬソースコード２１と非活性リスト２３（図７）を入力とし、ＲＴＬソースコード２１を、非活性リスト２３（図７）に記載のある回路がカバレッジ対象外になるように変換する。そして、ＲＴＬソースコード変換部１５は、変換後のＲＴＬソースコード２１をシミュレータ１２に入力する。すなわち、ＲＴＬソースコード２１は、シミュレータ１２において非活性リスト２３（図７）をカバレッジ対象外とされるのではなく、シミュレータ１２に入力される前にＲＴＬソースコード変換部１５において非活性リスト２３（図７）がカバレッジ対象外とされることになる。
【００５４】
このとき、シミュレータ１２は、その変換後のＲＴＬソースコード２１について機能シミュレーションを実行する（図８：ステップＳ０３）。
【００５５】
この場合においても、図４の構成を用いた場合と同様の作用・効果を得ることができる。また、シミュレータ１２に、非活性リスト２３（図７）をカバレッジ対象外として受け付けるような機能が無い場合、本変形例が特に有効である。
【００５６】
（第２の変形例）
次に、本発明の実施の形態に係る論理設計検証システムの第２の変形例の構成について説明する。図１２は、本発明の実施の形態に係る論理設計検証システムの第２の変形例の構成を示すブロック図である。論理設計検証システム１ｂは、カバレッジデータ変換部１６を更に具備している点で、図４の構成と異なっている。
【００５７】
カバレッジデータ変換部１６は、シミュレータ１２が非活性リスト２３を用いずにＲＴＬソースコード２１を機能シミュレーションしたときのカバレッジ取得部１３からのカバレッジ結果を取得し、非活性リスト２３に記載のある回路（非活性箇所）をカバレッジ対象外としてカバレッジ結果から除いて、カバレッジデータ２４として出力する。すなわち、シミュレータ１２による機能シュミレーション及びカバレッジ取得部１３でのカバレッジ結果は通常通りとし、そのカバレッジ結果に対して非活性リスト２３に記載のある回路（非活性箇所）の削除を行うものである。
【００５８】
このとき、シミュレータ１２は、元のＲＴＬソースコード２１について機能シミュレーションを実行する（図８：ステップＳ０３）。カバレッジ取得部１３は、機能シミュレーション結果を入力とし、動作していないソースコードを抽出してカバレッジ結果として出力する（図８：ステップＳ０４）。その後、カバレッジデータ変換部１６が、カバレッジ結果から非活性リスト２３に記載のある回路（非活性箇所）を除いて、カバレッジデータ２４として出力する。表示装置１４は、カバレッジデータ変換部１６から出力されたカバレッジデータ２４をカバレッジ結果として表示する（ステップＳ０５）。
【００５９】
この場合においても、図４の構成を用いた場合と同様の作用・効果を得ることができる。また、シミュレータ１２に、非活性リスト２３（図７）をカバレッジ対象外として受け付けるような機能が無い場合、本変形例が特に有効である。
【００６０】
なお、論理設計検証システム１、１ａ、１ｂの各構成（例示：リントチェックツール１０、リントチェック結果変換部１１、シミュレータ１２、カバレッジ取得部１３、ＲＴＬソースコード変換部１５、カバレッジデータ変換部１６）は、ソフトウェアで実現されていても良いし、ハードウェアで実現されていても良いし、ハードウェアとソフトウェアとの組合せで実現されていても良い。
【００６１】
本発明のプログラム及びデータは、コンピュータ読取可能な記憶媒体に記録され、その記憶媒体から情報処理装置に読み込まれても良い。
【００６２】
本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。
【符号の説明】
【００６３】
１    論理検証システム
１０    リントチェックツール
１１    リントチェック結果変換部
１２    シミュレータ
１３    カバレッジ取得部
１４    表示装置
１５    ＲＴＬソースコード変換部
１６    カバレッジデータ変換部
１８    文字列比較ルール表
２１    ＲＴＬソースコード
２２    リントチェック結果
２３    非活性リスト
２４    カバレッジデータ
２００    ルール
２０１    非活性理由
１００１    論理検証サブシステム
１００２    演算処理部（ＣＰＵ）
１００３    表示装置
１００４    入力装置
１００５    出力装置
１００６    主記憶装置
１００７    （解析前／解析後）表示ファイル記憶装置
１００８    ２次記憶装置
１０１０    シミュレーション結果データ取得部
１０１１    データ変換・登録部
１０１２    解析情報取得部
１０１３    解析情報処理部
１０１４    データ表示部
２０００    コード・カバレッジ・ツール
２００１    ＲＴＬ解析カバレッジ・モニタ・コード埋め込み
２００２    シミュレータ
２００３    カバレッジ取得
２００４    表示装置
２００５    ＧＵＩ出力
２００６    テキスト出力
２００７    テスト・パターンＡ
２００８    テスト・パターンＢ
２００９    カバレッジ・データＡ
２０１０    カバレッジ・データＢ
２０１１    ＲＴＬソース・コード
２０１２    ＲＴＬソース・コード（カバレッジ・モニタ用コードを含む）
【図１】
2012155482.tif 000003
【図２】
2012155482.tif 000004
【図３】
2012155482.tif 000005
【図４】
2012155482.tif 000006
【図５】
2012155482.tif 000007
【図６】
2012155482.tif 000008
【図７】
2012155482.tif 000009
【図８】
2012155482.tif 000010
【図９】
2012155482.tif 000011
【図１０】
2012155482.tif 000012
【図１１】
2012155482.tif 000013
【図１２】
2012155482.tif 000014