(57)【要約】【課題】膨大な数の例外シナリオを効率的に絞り込んで効果的な論理検証をおこなうことにより、検証者の負担軽減および検証期間の短縮化を図る。【解決手段】検証対象回路の実装記述情報Ｄの入力を受け付け、その実装記述情報Ｄに基づいて、検証対象回路内の機能ブロックのうち検証対象回路の外部から入力信号を取り込む外部入力端子を有する機能ブロックを検出し、その検出結果に基づいて、検証対象回路の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定する。【選択図】図４
2008269082.tif 000002
【特許請求の範囲】
【請求項１】
検証対象回路の実装記述情報の入力を受け付けさせる入力工程と、
前記入力工程によって入力された実装記述情報に基づいて、前記検証対象回路内の機能ブロックのうち前記検証対象回路の外部から入力信号を取り込む入力端子（以下「外部入力端子」という）を有する機能ブロックを検出させる検出工程と、
前記検出工程によって検出された検出結果に基づいて、前記検証対象回路の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定させる決定工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項２】
前記実装記述情報を参照することにより、前記検証対象回路の中から任意の機能ブロックを抽出させる抽出工程を前記コンピュータに実行させ、
前記検出工程は、
前記抽出工程によって抽出された任意の機能ブロックの中から前記外部入力端子を検出させ、
前記決定工程は、
前記検出工程によって前記外部入力端子が検出された場合、前記任意の機能ブロックを前記異常系の動作を検証する機能ブロックに決定させることを特徴とする請求項１に記載の検証支援プログラム。
【請求項３】
前記検証対象回路内の各機能ブロックの異常系の動作を検証する例外シナリオ情報の集合の中から、前記決定工程によって決定された機能ブロックに応じた例外シナリオ情報を抽出させるシナリオ抽出工程と、
前記シナリオ抽出工程によって抽出された例外シナリオ情報を出力させる出力工程と、
を前記コンピュータに実行させることを特徴とする請求項１または２に記載の検証支援プログラム。
【請求項４】
前記シナリオ抽出工程は、
前記例外シナリオ情報の集合の中から前記決定工程によって決定された機能ブロックが有する外部入力端子に応じた例外シナリオ情報を抽出させることを特徴とする請求項３に記載の検証支援プログラム。
【請求項５】
請求項１〜４のいずれか一つに記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項６】
検証対象回路の実装記述情報の入力を受け付ける入力手段と、
前記入力手段によって入力された実装記述情報に基づいて、前記検証対象回路内の機能ブロックのうち前記検証対象回路の外部から入力信号を取り込む入力端子（以下「外部入力端子」という）を有する機能ブロックを検出する検出手段と、
前記検出手段によって検出された検出結果に基づいて、前記検証対象回路の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定する決定手段と、
を備えることを特徴とする検証支援装置。
【請求項７】
検証対象回路の実装記述情報の入力を受け付ける入力工程と、
前記入力工程によって入力された実装記述情報に基づいて、前記検証対象回路内の機能ブロックのうち前記検証対象回路の外部から入力信号を取り込む入力端子（以下「外部入力端子」という）を有する機能ブロックを検出する検出工程と、
前記検出工程によって検出された検出結果に基づいて、前記検証対象回路の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定する決定工程と、
を含んだことを特徴とする検証支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、検証対象回路の論理検証を支援する検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法に関する。
【背景技術】
【０００２】
ＬＳＩ設計では、ＬＳＩが正常に動作するか否かを検証する論理検証作業によって動作確認をおこなうことが必要不可欠である。特に、大規模化、高機能化、高速化および低消費電力化が要求されているＬＳＩについては、高品質を維持するためにもこの論理検証作業は重要である一方、従来から設計期間の短縮による作業効率化が要求されている。
【０００３】
一般に、ＬＳＩを論理検証するテスト系列には、正常系の動作確認をおこなうテストと、異常系の動作確認をおこなうテストとがある。正常系のテストは、ＬＳＩの機能を実現する正常シナリオを用いてＬＳＩの基本動作を確認するテストである。また、異常系のテストは、ＬＳＩの例外処理を実現する例外シナリオを用いてＬＳＩの例外動作を確認するテストである。
【０００４】
近年、ＬＳＩの論理検証作業の効率化を図る様々な技術が開示されている。たとえば、検証対象回路に関するビヘイビアレベルの仕様記述と、その仕様記述に対応したＲＴＬレベルの記述とから、仕様記述とＲＴＬレベルとの対応をとり、仕様記述を検証するためのテスト系列データをもとに、ＲＴＬレベルのテスト系列データを生成する技術が開示されている（たとえば、下記特許文献１参照。）。
【０００５】
これによれば、仕様変更の生じたＲＴＬのテスト系列と期待値系列とを自動生成するため、人手で作成していたテスト系列の作成時間を削減することができる。
【０００６】
【特許文献１】特開平７−２５４００８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した特許文献１の従来技術では、ＬＳＩの異常系の動作確認をおこなうテストについては何ら検討されていない。通常、ＬＳＩの論理検証では、正常系の動作確認をおこなうテストに比べて、異常系の動作確認をおこなうテストにおけるバグの発生率が高くなっている。
【０００８】
なぜなら、正常系の動作確認をおこなうテストは、ＬＳＩの基本動作の確認のため、バグの発生が少ないからである。一方、異常系の動作確認をおこなうテストは、検証対象とするユニット、ポートおよびその組み合わせの数が膨大となるため、どの程度までの動作確認をおこなえばよいのか判断が難しく、予期しないバグが発生しやすい。
【０００９】
このため、異常系の動作を確認する例外シナリオ検証を検証者の試行錯誤によっておこなうこととなり、結果的に論理検証の手戻りが生じてしまい、検証者の負担が増大するとともに、検証作業の長期化を招くという問題があった。
【００１０】
この発明は、上述した従来技術による問題点を解消するため、膨大な数の例外シナリオを効率的に絞り込んで効果的な論理検証をおこなうことにより、検証者の負担軽減および検証期間の短縮化を図ることができる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、この発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、検証対象回路の実装記述情報の入力を受け付け、その実装記述情報に基づいて、前記検証対象回路内の機能ブロックのうち前記検証対象回路の外部から入力信号を取り込む入力端子（以下「外部入力端子」という）を有する機能ブロックを検出し、その検出結果に基づいて、前記検証対象回路の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定することを特徴とする。
【００１２】
また、上記発明において、前記実装記述情報を参照することにより、前記検証対象回路の中から任意の機能ブロックを抽出し、その任意の機能ブロックの中から前記外部入力端子を検出し、前記外部入力端子が検出された場合、前記任意の機能ブロックを前記異常系の動作を検証する機能ブロックに決定することとしてもよい。
【００１３】
これらの発明によれば、異常系の動作を確認する例外シナリオ検証でバグが発生しやすい機能ブロックを自動的に特定することができる。
【００１４】
また、上記発明において、前記検証対象回路内の各機能ブロックの異常系の動作を検証する例外シナリオ情報の集合の中から、異常系の動作を検証する機能ブロックに決定された機能ブロックに応じた例外シナリオ情報を抽出し、その例外シナリオ情報を出力することとしてもよい。
【００１５】
この発明によれば、例外シナリオ情報の集合の中から例外シナリオ検証を実行すべき機能ブロックに応じた例外シナリオ情報を自動的に抽出することができる。
【００１６】
また、上記発明において、前記例外シナリオ情報の集合の中から異常系の動作を検証する機能ブロックに決定された機能ブロックが有する外部入力端子に応じた例外シナリオ情報を抽出することとしてもよい。
【００１７】
この発明によれば、例外シナリオ情報の集合の中から例外シナリオ検証を実行すべき機能ブロックが有する外部入力端子に応じた例外シナリオ情報を自動的に抽出することができる。
【発明の効果】
【００１８】
本発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、膨大な数の例外シナリオを効率的に絞り込んで効果的な論理検証をおこなうことにより、検証者の負担軽減および検証期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、この発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法の好適な実施の形態を詳細に説明する。
【００２０】
（検証支援装置のハードウェア構成）
まず、この発明の実施の形態にかかる検証支援装置１００のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる検証支援装置１００のハードウェア構成を示す説明図である。図１において、検証支援装置１００は、コンピュータ本体１１０と、入力装置１２０と、出力装置１３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ、ＷＡＮやインターネットなどのネットワーク１４０に接続可能である。
【００２１】
コンピュータ本体１１０は、ＣＰＵ、メモリ、インタフェースを有する。ＣＰＵは、検証支援装置１００のハードウェア構成の全体の制御を司る。メモリは、ＲＯＭ、ＲＡＭ、ＨＤ、光ディスク１１１、フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００２２】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク１１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク１１１およびフラッシュメモリはコンピュータ本体１１０に対し着脱自在である。インタフェースは、入力装置１２０からの入力、出力装置１３０への出力、ネットワーク１４０に対する送受信の制御をおこなう。
【００２３】
また、入力装置１２０としては、キーボード１２１、マウス１２２、スキャナ１２３などがある。キーボード１２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス１２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ１２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体１１０内のメモリに格納される。なお、スキャナ１２３にＯＣＲ機能を持たせてもよい。
【００２４】
また、出力装置１３０としては、ディスプレイ１３１、スピーカ１３２、プリンタ１３３などがある。ディスプレイ１３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ１３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ１３３は、画像データや文書データを印刷する。
【００２５】
（検証対象回路の一例）
つぎに、検証対象回路の一例について説明する。図２は、検証対象回路２００の一例を示す説明図である。検証対象回路２００は、複数のインターフェースレジスタからなるレジスタ群２０１，２０２と、機能ブロックＡ，ＢおよびＣからなる内部論理２０３とを備えるディジタル回路である。
【００２６】
レジスタ群２０１には、正常シナリオに応じた値がセットされる。また、レジスタ群２０２には、正常シナリオが実行されたときの機能ブロックＡ，ＢおよびＣの動作により、値が書き込まれたり、保持された値が読み出されたりする。
【００２７】
（例外シナリオ情報ＤＢ３００の記憶内容）
つぎに、例外シナリオ情報ＤＢ３００について説明する。図３は、例外シナリオ情報ＤＢ３００の記憶内容を示す説明図である。図３において、例外シナリオ情報ＤＢ３００は、検証対象となる機能ブロックＡ〜Ｃに応じた例外シナリオ情報３００−１〜３００−７を格納している。
【００２８】
具体的には、例外シナリオ情報３００−１〜３００−７は、各機能ブロックＡ〜Ｃと各機能ブロックＡ〜Ｃが有する各入力端子１〜５との組み合わせごとに、異常系の動作を検証する例外シナリオを有している。たとえば、例外シナリオ情報３００−１は、機能ブロックＡと機能ブロックＡが有する入力端子１との組み合わせに応じた例外シナリオ「機能ブロックＡ例外シナリオ１」を有している。
【００２９】
また、例外シナリオ情報３００−２は、機能ブロックＢと機能ブロックＢが有する入力端子２との組み合わせに応じた例外シナリオ「機能ブロックＢ例外シナリオ１」を有している。また、例外シナリオ情報３００−３は、機能ブロックＣと機能ブロックＣが有する入力端子３との組み合わせに応じた例外シナリオ「機能ブロックＣ例外シナリオ１」を有している。
【００３０】
（検証支援装置１００の機能的構成）
つぎに、この発明の実施の形態にかかる検証支援装置１００の機能的構成について説明する。図４は、この発明の実施の形態にかかる検証支援装置１００の機能的構成を示すブロック図である。図４において、検証支援装置１００は、例外シナリオ情報ＤＢ３００と、入力部４０１と、検出部４０２と、決定部４０３と、抽出部４０４と、シナリオ抽出部４０５と、出力部４０６と、から構成されている。
【００３１】
これら各機能４０１〜４０６は、メモリに格納された当該機能に関するプログラムをＣＰＵに実行させることにより、当該機能を実現することができる。また、各機能４０１〜４０６からの出力データはメモリに保持される。また、図４中矢印で示した接続先の機能的構成は、接続元の機能からの出力データをメモリから読み込んで、当該機能に関するプログラムをＣＰＵに実行させる。
【００３２】
一般に、検証対象回路２００の異常系の動作を確認する例外シナリオ検証に用いる例外シナリオは、検証対象とする機能ブロック、入力端子、およびその組み合わせの数が膨大（たとえば、１００万個程度）となるため、例外シナリオを効率的に絞り込むことが難しい。そこで、本実施の形態にかかる検証支援装置１００は、膨大な数の例外シナリオを効率的に絞り込むことにより、効果的な論理検証を実現する。
【００３３】
まず、入力部４０１は、検証対象回路２００の実装記述情報Ｄの入力を受け付ける機能を有する。実装記述情報Ｄとは、検証対象回路２００のＲＴＬのＨＤＬ記述情報や、その論理合成結果であるネットリストが含まれる。たとえば、図１に示したキーボード１２１やマウス１２２などの入力装置１２０をユーザが操作することで実装記述情報Ｄを入力する。入力部４０１によって入力された実装記述情報Ｄはメモリに保持される。
【００３４】
検出部４０２は、入力部４０１によって入力された実装記述情報Ｄに基づいて、検証対象回路２００内の機能ブロックＡ〜Ｃのうち検証対象回路２００の外部から入力信号を取り込む入力端子（以下「外部入力端子」という）を有する機能ブロックを検出する機能を有する。
【００３５】
具体的には、入力部４０１によって入力された実装記述情報Ｄをメモリから読み出して、その実装記述情報Ｄを読み込むことにより、検証対象回路２００内の各機能ブロックＡ〜Ｃの接続状況を判断し、外部入力端子を有する機能ブロックを検出してメモリに保持する。
【００３６】
より具体的には、抽出部４０４は、メモリから読み出した実装記述情報Ｄを参照することにより、検証対象回路２００の中から任意の機能ブロックを抽出する。そして、検出部４０２は、抽出部４０４によって抽出された任意の機能ブロックの中から外部入力端子を検出する。たとえば、実装記述情報Ｄにおける任意の機能ブロックＡ〜Ｃに関する記述内容を読み込むことにより、外部入力端子をあらわす記述を検出する。
【００３７】
ここで、検証対象回路２００内の各機能ブロックＡ〜Ｃの接続状況について説明する。図５は、検証対象回路２００内の各機能ブロックＡ〜Ｃの接続状況を示す説明図である。図５において、検証対象回路２００内の機能ブロックＡは入力端子１を、機能ブロックＢは入力端子２を、機能ブロックＣは入力端子３，４および５を有している。
【００３８】
これら入力端子１〜５のうち入力端子１および入力端子３は、検証対象回路２００の外部から入力信号を取り込む外部入力端子である。また、入力端子２、入力端子４および入力端子５は、検証対象回路２００内部の機能ブロックから入力信号を取り込む内部入力端子である。
【００３９】
たとえば、機能ブロックＣの入力端子３〜５を例に挙げると、入力端子３は検証対象回路２００の外部から入力信号を取り込む外部入力端子であり、入力端子４は機能ブロックＡから入力信号を取り込む内部入力端子であり、入力端子５は機能ブロックＢから入力信号を取り込む内部入力端子である。
【００４０】
図５において、検出部４０２は、外部入力端子である入力端子１を有する機能ブロックＡと、外部入力端子である入力端子３を有する機能ブロックＣとを検出することとなる。より具体的には、抽出部４０４により、機能ブロックＡ〜Ｃを順に抽出して、検出部４０２により、その機能ブロックＡ〜Ｃの中から外部入力端子を検出する。
【００４１】
図４の説明に戻り、決定部４０３は、検出部４０２によって検出された検出結果に基づいて、検証対象回路２００の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定する機能を有する。異常系の動作とは、たとえば、誤った入力信号が機能ブロックに入力された場合に、その機能ブロックが実行する例外処理（例外動作）である。
【００４２】
この異常系の動作の検証は、検証対象回路２００の例外動作を実現する例外シナリオを用いておこなう。一方で、検証対象回路２００の機能を実現する正常系の動作の検証は、検証対象回路２００の機能を実現する正常シナリオを用いておこなう。この例外シナリオ情報は、図３に示した例外シナリオ情報ＤＢ３００に格納されている。
【００４３】
具体的には、たとえば、決定部４０３は、検出部４０２によって検出された検出結果をメモリから読み出して、その検出結果から外部入力端子を有する機能ブロックを特定することにより、異常系の動作を検証する機能ブロックを決定し、その決定結果をメモリに保持する。
【００４４】
より具体的には、決定部４０３は、抽出部４０４によって抽出された任意の機能ブロックの中から外部入力端子が検出された場合、その任意の機能ブロックを異常系の動作を検証する機能ブロックに決定する。図５において、決定部４０３は、外部入力端子を有する機能ブロックＡおよび機能ブロックＣを異常系の動作を検証する機能ブロックに決定することとなる。
【００４５】
なお、例外シナリオ検証に用いる例外シナリオの内容（例外動作）は、たとえば、検証者によって予め任意に設定されている。しかし、上述したように、検証対象回路２００に適用する例外シナリオは膨大な数（図３に示す例では７個）となってしまうため、検証優先度に応じて例外シナリオを効率的に絞り込む必要がある。
【００４６】
ここでは、検証対象回路２００内の機能ブロックＡ〜Ｃのうち外部からの入力信号を取り込む外部入力端子を有する機能ブロックについての検証優先度を高く設定し、それらの機能ブロックについてのみ例外シナリオ検証をおこなう。なぜなら、外部入力端子に比べて内部入力端子に誤った入力信号が入力される可能性が低いからである。
【００４７】
たとえば、図２に示した機能ブロックＡが有する入力端子１に誤った入力信号が入力されなければ、機能ブロックＢが有する入力端子２に誤った入力信号が入力される可能性は低い。このため、例外シナリオ検証を実行する箇所を、最もバグの発生可能性が高い外部入力端子を有する機能ブロックに絞り込むことで無駄な例外シナリオ検証を低減させる。
【００４８】
なお、本実施の形態にかかる検証支援手法によって検証対象回路２００の論理検証をおこなう場合、検証対象回路２００の機能が正常に実現されることが前提となる。このため、検証対象回路２００の正常系の動作を検証する正常シナリオ検証を予め実行し、検証対象回路２００の機能が正常に実現されることを確認したあとに、例外シナリオ検証を実行することが望ましい。
【００４９】
ここで、決定部４０３によって決定された決定結果について説明する。図６は、決定結果の一例を示す説明図である。図６において、決定結果６００は、検証対象回路２００内の機能ブロックＡ〜Ｃごとに、異常系の動作を検証する例外シナリオ検証の要否が示されている。
【００５０】
具体的には、検証対象回路２００内の各機能ブロックＡ〜Ｃと各機能ブロックＡ〜Ｃが有する入力端子との組み合わせごとに、異常系の動作を検証する例外シナリオ検証の要否が示されている。機能ブロックＡについて、例外シナリオ検証の必要あり、また、その組み合わせは機能ブロックＡと入力端子１（外部入力端子）との組み合わせである。
【００５１】
機能ブロックＢについて、外部入力端子を有していないため、例外シナリオ検証は不要となっている。機能ブロックＣについて、例外シナリオ検証の必要あり、また、その組み合わせは機能ブロックＣと入力端子３（外部入力端子）との組み合わせである。
【００５２】
この決定結果６００は、後述する出力部４０６によって出力することとしてもよい。検証者は、この決定結果６００の内容を確認することにより、検証対象回路２００内の機能ブロックＡ〜Ｃのうち、例外シナリオ検証の必要がある機能ブロックと入力端子との組み合わせを判断することができる。
【００５３】
シナリオ抽出部４０５は、検証対象回路２００内の各機能ブロックＡ〜Ｃの異常系の動作を検証する例外シナリオ情報の集合の中から、決定部４０３によって決定された機能ブロックに応じた例外シナリオ情報Ｓを抽出する機能を有する。この例外シナリオ情報の集合は、たとえば、図３に示したシナリオ情報ＤＢ３００に相当する。
【００５４】
具体的には、たとえば、シナリオ抽出部４０５は、決定結果６００をメモリから読み出して、その決定結果６００を参照することにより、決定部４０３によって決定された機能ブロックＡに応じた例外シナリオ情報３００−１および機能ブロックＣに応じた例外シナリオ情報３００−３〜３００−７をシナリオ情報ＤＢ３００の中から抽出してメモリに保持する。
【００５５】
このように、例外シナリオ検証を実行する箇所をバグの発生可能性が高い外部入力端子を有する機能ブロックに限定することにより、検証対象回路２００に関する例外シナリオを図３に示した７個から５個（例外シナリオ情報３００−３〜３００−７）に絞り込むことができる。
【００５６】
また、シナリオ抽出部４０５は、例外シナリオ情報の集合の中から決定部４０３によって決定された機能ブロックが有する外部入力端子に応じた例外シナリオ情報Ｓを抽出する機能を有する。具体的には、たとえば、シナリオ抽出部４０５は、決定結果６００をメモリから読み出して、例外シナリオ検証が必要な機能ブロックと入力端子との組み合わせを参照することにより、例外シナリオ情報３００−１，３００−３および３００−５をシナリオ情報ＤＢ３００の中から抽出してメモリに保持する。
【００５７】
このように、外部入力端子を有する機能ブロックに限定するだけでなく、さらに、その外部入力端子に限定することにより、検証対象回路２００に関する例外シナリオを５個（例外シナリオ情報３００−３〜３００−７）から３個（例外シナリオ情報３００−１，３００−３および３００−５）に絞り込むことができる。
【００５８】
なお、本実施の形態では、例外シナリオ情報３００−１〜３００−７は、例外シナリオ情報ＤＢ３００に予め格納されていることとしたが、検証支援装置１００に直接入力することとしてもよく、また、ネットワーク１４０を介して外部のコンピュータ装置から取得することとしてもよい。具体的には、たとえば、検証対象回路２００の動作仕様を記述したユースケースシナリオを検証支援装置１００に入力することにより、そのユースケースシナリオに定義されている例外シナリオ情報を取得する。
【００５９】
出力部４０６は、シナリオ抽出部４０５によって抽出された例外シナリオ情報Ｓを出力する機能を有する。具体的には、出力部４０６は、シナリオ抽出部４０５によって抽出された例外シナリオ情報Ｓをメモリから読み出して、その例外シナリオ情報Ｓを出力する。
【００６０】
出力部４０６による出力形式は、ディスプレイ１３１での画面表示、プリンタ１３３での印刷出力、メモリへのデータ出力（保存）、外部のコンピュータ装置への送信のいずれであってもよい。ここで、出力部４０６によって出力される例外シナリオ情報Ｓについて説明する。
【００６１】
図７は、例外シナリオ情報Ｓの一例を示す説明図である。図７において、例外シナリオ情報Ｓは、検証対象回路２００における異常系の動作を検証する検証対象ごとに、その例外シナリオ検証に用いる例外シナリオを有している。具体的には、機能ブロックＡの例外シナリオ「機能ブロックＡ例外シナリオ１」と、機能ブロックＣの例外シナリオ「機能ブロックＣ例外シナリオ１」と、機能ブロックＣの例外シナリオ「機能ブロックＣ例外シナリオ２」と、を有している。
【００６２】
この例外シナリオ情報Ｓを用いて検証対象回路２００の例外シナリオ検証をおこなうことにより、実行すべき例外シナリオを漏らすことなく無駄な例外シナリオを削除して、例外シナリオの数を効率的に絞りこむことができるため、効果的な論理検証をおこなうことができる。
【００６３】
また、本実施の形態では、外部入力端子を有する機能ブロックを異常系の動作を確認する検証対象として決定したが、さらに、汎用的なサブセットを異常系の動作を確認する検証対象として決定することとしてもよい。図８は、サブセットの一例を示す説明図である。
【００６４】
図８において、サブセット８００は、ＤＵＴ８１０（Ｄｅｖｉｃｅ  Ｕｎｄｅｒ  Ｔｅｓｔ）とＶＲＡＭ８２０（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）とがバス８３０を介して接続されている。
【００６５】
ここで、サブセット８００の正常系の動作を検証する正常シナリオは、ＨＲｅａｄｙ（信号名）の信号が「ＨＲｅａｄｙ＝１」となると、ＤＵＴ８１０からＶＲＡＭ８２０にアクセス可能となり、ＶＲＡＭ８２０に対してデータをリード／ライト可能とする。
【００６６】
また、異常系の動作を検証する例外シナリオは、ＤＵＴ８１０からのアクセス先が複数存在する場合には、意図しない動作を想定して、「ＨＲｅａｄｙ＝０」となると、ＤＵＴ８１０からＶＲＡＭ８２０にアクセス不能にする必要がある。
【００６７】
しかし、このサブセット８００ではＤＵＴ８１０からのアクセス先がＶＲＡＭ８２０しか存在しないため、「ＨＲｅａｄｙ＝０」となっても、ＤＵＴ８１０からＶＲＡＭ８２０にアクセス可能とし、ＶＲＡＭ８２０に対してデータをリード／ライト可能とする例外シナリオを用意する。すなわち、本実施の形態における外部入力端子を有する機能ブロックと同様にサブセット８００のように様々な仕様で利用可能なサブセット（機能ブロック）を異常系の動作を確認する検証対象として決定する。
【００６８】
これにより、検証対象回路内にサブセット８００のような汎用的な機能ブロックが含まれる場合であっても、必要となる例外シナリオを漏らすことなく膨大な数の例外シナリオを効率的に絞り込むことができ、効果的な論理検証をおこなうことができる。
【００６９】
（検証支援装置１００の検証支援処理手順）
つぎに、この発明の実施の形態にかかる検証支援装置１００の検証支援処理手順について説明する。図９は、この発明の実施の形態にかかる検証支援装置１００の検証支援処理手順を示すフローチャートである。
【００７０】
図９のフローチャートにおいて、まず、入力部４０１により、検証対象回路２００の実装記述情報Ｄの入力を受け付けたか否かを判断する（ステップＳ９０１）。ここで、実装記述情報Ｄが入力されるのを待って（ステップＳ９０１：Ｎｏ）、入力された場合（ステップＳ９０１：Ｙｅｓ）、この実装記述情報Ｄに基づいて、検証対象回路２００内の機能ブロックＡ〜Ｃのうち検証対象回路２００の外部から入力信号を取り込む外部入力端子を有する機能ブロックを検出する検出処理を実行する（ステップＳ９０２）。
【００７１】
このあと、決定部４０３により、ステップＳ９０２において検出された検出結果に基づいて、検証対象回路２００の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定する（ステップＳ９０３）。つぎに、シナリオ抽出部４０５により、例外シナリオ情報ＤＢ３００の中から、ステップＳ９０３において決定された機能ブロックに応じた例外シナリオ情報を抽出する（ステップＳ９０４）。
【００７２】
最後に、出力部４０６により、その例外シナリオ情報を出力して（ステップＳ９０５）、本フローチャートによる一連の処理を終了する。また、ステップＳ９０４において、シナリオ抽出部４０５により、シナリオ情報ＤＢ３００の中からステップＳ９０３において決定された機能ブロックが有する外部入力端子に応じた例外シナリオ情報を抽出することとしてもよい。
【００７３】
つぎに、図９に示したステップＳ９０２における検出処理の処理手順について説明する。図１０は、検出処理の処理手順を示すフローチャートである。図１０のフローチャートにおいて、まず、抽出部４０４により、ステップＳ９０１において入力された実装記述情報Ｄを参照することによって、検証対象回路２００の中から任意の機能ブロックを抽出する（ステップＳ１００１）。
【００７４】
このあと、検出部４０２により、ステップＳ１００１において抽出された任意の機能ブロックの中から外部入力端子を検出する（ステップＳ１００２）。つぎに、検証対象回路２００内のすべての機能ブロックＡ〜Ｃを抽出したか否かを判断し（ステップＳ１００３）、抽出していない場合（ステップＳ１００３：Ｎｏ）、ステップＳ１００１に戻る。また、すべての機能ブロックＡ〜Ｃを抽出した場合（ステップＳ１００３：Ｙｅｓ）、図９に示したステップＳ９０３に移行する。
【００７５】
このように、本実施の形態によれば、検証対象回路２００の異常系の動作を確認する例外シナリオ検証でバグが発生しやすい機能ブロックＡおよびＣを自動的に特定することができる。これにより、例外シナリオ検証に用いる例外シナリオをバグが発生しやすい機能ブロックＡおよびＣに応じた例外シナリオに限定することができ、必要となる例外シナリオを効率的に絞り込むことができる。
【００７６】
さらに、機能ブロックＡおよびＣが有する外部入力端子に応じた例外シナリオに限定することにより、必要となる例外シナリオをより効率的に絞りこむことができる。また、絞り込まれた例外シナリオを用いて検証対象回路２００の例外シナリオ検証を実行することにより、効果的な論理検証をおこなうことができる。
【００７７】
以上説明したように、検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、膨大な数の例外シナリオを効率的に絞り込んで効果的な論理検証をおこなうことにより、検証者の負担軽減および検証期間の短縮化を図ることができる。
【００７８】
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【００７９】
また、上述した検証支援装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した検証支援装置１００の機能的構成４０１〜４０６をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、検証支援装置１００を製造することができる。
【００８０】
（付記１）検証対象回路の実装記述情報の入力を受け付けさせる入力工程と、
前記入力工程によって入力された実装記述情報に基づいて、前記検証対象回路内の機能ブロックのうち前記検証対象回路の外部から入力信号を取り込む入力端子（以下「外部入力端子」という）を有する機能ブロックを検出させる検出工程と、
前記検出工程によって検出された検出結果に基づいて、前記検証対象回路の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定させる決定工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【００８１】
（付記２）前記実装記述情報を参照することにより、前記検証対象回路の中から任意の機能ブロックを抽出させる抽出工程を前記コンピュータに実行させ、
前記検出工程は、
前記抽出工程によって抽出された任意の機能ブロックの中から前記外部入力端子を検出させ、
前記決定工程は、
前記検出工程によって前記外部入力端子が検出された場合、前記任意の機能ブロックを前記異常系の動作を検証する機能ブロックに決定させることを特徴とする付記１に記載の検証支援プログラム。
【００８２】
（付記３）前記検証対象回路内の各機能ブロックの異常系の動作を検証する例外シナリオ情報の集合の中から、前記決定工程によって決定された機能ブロックに応じた例外シナリオ情報を抽出させるシナリオ抽出工程と、
前記シナリオ抽出工程によって抽出された例外シナリオ情報を出力させる出力工程と、
を前記コンピュータに実行させることを特徴とする付記１または２に記載の検証支援プログラム。
【００８３】
（付記４）前記シナリオ抽出工程は、
前記例外シナリオ情報の集合の中から前記決定工程によって決定された機能ブロックが有する外部入力端子に応じた例外シナリオ情報を抽出させることを特徴とする付記３に記載の検証支援プログラム。
【００８４】
（付記５）付記１〜４のいずれか一つに記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【００８５】
（付記６）検証対象回路の実装記述情報の入力を受け付ける入力手段と、
前記入力手段によって入力された実装記述情報に基づいて、前記検証対象回路内の機能ブロックのうち前記検証対象回路の外部から入力信号を取り込む入力端子（以下「外部入力端子」という）を有する機能ブロックを検出する検出手段と、
前記検出手段によって検出された検出結果に基づいて、前記検証対象回路の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定する決定手段と、
を備えることを特徴とする検証支援装置。
【００８６】
（付記７）前記実装記述情報を参照することにより、前記検証対象回路の中から任意の機能ブロックを抽出する抽出手段を備え、
前記検出手段は、
前記抽出手段によって抽出された任意の機能ブロックの中から前記外部入力端子を検出し、
前記決定手段は、
前記検出手段によって前記外部入力端子が検出された場合、前記任意の機能ブロックを前記異常系の動作を検証する機能ブロックに決定することを特徴とする付記６に記載の検証支援装置。
【００８７】
（付記８）前記検証対象回路内の各機能ブロックの異常系の動作を検証する例外シナリオ情報の集合の中から、前記決定手段によって決定された機能ブロックに応じた例外シナリオ情報を抽出するシナリオ抽出手段と、
前記シナリオ抽出手段によって抽出された例外シナリオ情報を出力する出力手段と、
を備えることを特徴とする付記６または７に記載の検証支援装置。
【００８８】
（付記９）前記シナリオ抽出手段は、
前記例外シナリオ情報の集合の中から前記決定手段によって決定された機能ブロックが有する外部入力端子に応じた例外シナリオ情報を抽出することを特徴とする付記８に記載の検証支援装置。
【００８９】
（付記１０）検証対象回路の実装記述情報の入力を受け付ける入力工程と、
前記入力工程によって入力された実装記述情報に基づいて、前記検証対象回路内の機能ブロックのうち前記検証対象回路の外部から入力信号を取り込む入力端子（以下「外部入力端子」という）を有する機能ブロックを検出する検出工程と、
前記検出工程によって検出された検出結果に基づいて、前記検証対象回路の機能を実現する動作とは異なる異常系の動作を検証する機能ブロックを決定する決定工程と、
を含んだことを特徴とする検証支援方法。
【００９０】
（付記１１）前記実装記述情報を参照することにより、前記検証対象回路の中から任意の機能ブロックを抽出する抽出工程を含み、
前記検出工程は、
前記抽出工程によって抽出された任意の機能ブロックの中から前記外部入力端子を検出し、
前記決定工程は、
前記検出工程によって前記外部入力端子が検出された場合、前記任意の機能ブロックを前記異常系の動作を検証する機能ブロックに決定することを特徴とする付記１０に記載の検証支援方法。
【００９１】
（付記１２）前記検証対象回路内の各機能ブロックの異常系の動作を検証する例外シナリオ情報の集合の中から、前記決定工程によって決定された機能ブロックに応じた例外シナリオ情報を抽出するシナリオ抽出工程と、
前記シナリオ抽出工程によって抽出された例外シナリオ情報を出力する出力工程と、
を含んだことを特徴とする付記１０または１１に記載の検証支援方法。
【００９２】
（付記１３）前記シナリオ抽出工程は、
前記例外シナリオ情報の集合の中から前記決定工程によって決定された機能ブロックが有する外部入力端子に応じた例外シナリオ情報を抽出することを特徴とする付記１２に記載の検証支援方法。
【産業上の利用可能性】
【００９３】
以上のように、本発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、ＬＳＩの異常系の動作を確認する例外シナリオ検証に有用である。
【図面の簡単な説明】
【００９４】
【図１】この発明の実施の形態にかかる検証支援装置のハードウェア構成を示す説明図である。
【図２】検証対象回路の一例を示す説明図である。
【図３】例外シナリオ情報ＤＢの記憶内容を示す説明図である。
【図４】この発明の実施の形態にかかる検証支援装置の機能的構成を示すブロック図である。
【図５】検証対象回路内の各機能ブロックの接続状況を示す説明図である。
【図６】決定結果の一例を示す説明図である。
【図７】例外シナリオ情報の一例を示す説明図である。
【図８】サブセットの一例を示す説明図である。
【図９】この発明の実施の形態にかかる検証支援装置の検証支援処理手順を示すフローチャートである。
【図１０】検出処理の処理手順を示すフローチャートである。
【符号の説明】
【００９５】
１００  検証支援装置
２００  検証対象回路
３００  例外シナリオ情報ＤＢ
４０１  入力部
４０２  検出部
４０３  決定部
４０４  抽出部
４０５  シナリオ抽出部
４０６  出力部
６００  決定結果
８００  サブセット
Ｄ  実装記述情報
Ｓ  例外シナリオ情報
【図１】
2008269082.tif 000003
【図２】
2008269082.tif 000004
【図３】
2008269082.tif 000005
【図４】
2008269082.tif 000006
【図５】
2008269082.tif 000007
【図６】
2008269082.tif 000008
【図７】
2008269082.tif 000009
【図８】
2008269082.tif 000010
【図９】
2008269082.tif 000011
【図１０】
2008269082.tif 000012