(57)【要約】【課題】パターンが不規則な信号を入力とする論理回路の設計において、動作検証にかかる工数を削減することを目的としている。【解決手段】入力イベントに依存するストローブポイントにて入力イベントの種類とストローブポイントでの出力信号の論理値とを抽出する構成のテストベンチを生成するテストベンチ生成手段と、テストベンチ生成手段により生成されたテストベンチの所定の入力信号に対し、動作検証済みのタイミングでシミュレーションを実行した結果である第一の結果と、所定の入力信号の入力タイミングを所定のタイミングでスィープさせてシミュレーションを実行した結果である第二の結果とを取得するシミュレーション手段と、第一の結果及び第二の結果における入力イベントの種類と、出力信号の論理値との比較を行い、論理回路の動作の正誤を判定する結果判定手段と、を有する。【選択図】図７
2011197722.tif 000002
【特許請求の範囲】
【請求項１】
入力信号のパターンに非同期な信号を含む論理回路の動作検証を行う論理回路検証装置であって、
入力イベントに依存するストローブポイントにて前記入力イベントの種類と前記ストローブポイントでの出力信号の論理値とを抽出する構成のテストベンチを生成するテストベンチ生成手段と、
前記テストベンチ生成手段により生成された前記テストベンチの所定の入力信号に対し、動作検証済みのタイミングでシミュレーションを実行した結果である第一の結果と、前記所定の入力信号の入力タイミングを所定のタイミングでスィープさせてシミュレーションを実行した結果である第二の結果とを取得するシミュレーション手段と、
前記第一の結果及び前記第二の結果における前記入力イベントの種類と、前記出力信号の論理値との比較を行い、前記論理回路の動作の正誤を判定する結果判定手段と、を有する論理回路検証装置。
【請求項２】
前記結果判定手段は、
前記第一の結果及び前記第二の結果において、前記入力イベントの種類の並び順が一致しており且つ前記出力信号の論理値が異なる場合に、該当する前記シミュレーションの入力タイミングによる前記論理回路の動作を誤動作と判定する請求項１記載の論理回路検証装置。
【請求項３】
前記結果判定手段は、
前記第一の結果及び前記第二の結果において、前記入力イベントの種類の並び順が異なるとき、疑似エラーと判定する請求項１又は２記載の論理回路検証装置。
【請求項４】
正常動作の確認がとれている動作検証済みの検証用テストベンチと、
前記論理回路の出力信号名と、前記出力信号の論理値を決定する前記入力イベントの条件式である入力イベント条件式と、前記入力イベント条件式を満たしたポイントから前記出力信号の論理値を観測するポイントまでの時間であるストローブ時間と、を含む非同期出力抽出指定情報と、が格納された記憶手段を有し、
前記テストベンチ生成手段は、
前記検証用テストベンチと前記非同期出力抽出指定情報とに基づき、前記テストベンチを生成する請求項１ないし３の何れか一項に記載の論理回路検証装置。
【請求項５】
前記シミュレーション手段と前記結果判定手段とを制御する制御プログラムを生成するプログラム生成手段を有し、
前記プログラム作成手段は、
前記記憶手段に格納された、前記論理回路の前記入力信号の名称と、前記入力信号の入力タイミングのスィープを開始するスィープ開始タイミングと、前記スィープを終了するスィープ終了タイミングと、前記入力タイミングをスィープさせる刻み時間と、前記検証用テストベンチにて検証済みの入力タイミングを含むシミュレーション反復指定情報に基づき、
前記シミュレーション手段に前記シミュレーションを反復して実行させるシミュレーション制御プログラムを作成する請求項１ないし４の何れか一項に記載の論理回路検証装置。
【請求項６】
前記シミュレーション手段は、
前記反復して実行される前記シミュレーションのうち、一回目の前記シミュレーションは、前記検証用テストベンチにより動作検証済みのタイミングでシミュレーションを実行して前記第一の結果を取得し、
前記反復して実行される前記シミュレーションのうち、二回目以降の前記シミュレーションは、前記所定の入力信号の入力タイミングを前記刻み時間分スィープさせたタイミングでシミュレーションを実行して前記第二の結果を取得する請求項５記載の論理回路検証装置。
【請求項７】
入力信号のパターンに非同期な信号を含む論理回路の動作検証を行う論理回路検証装置による論理回路検証方法であって、
入力イベントに依存するストローブポイントにて前記入力イベントの種類と前記ストローブポイントでの出力信号の論理値とを抽出する構成のテストベンチを生成して記憶装置に格納するテストベンチ生成手順と、
前記記憶装置から読み出した前記テストベンチの所定の入力信号に対し、動作検証済みのタイミングでシミュレーションを実行した結果である第一の結果と、前記所定の入力信号の入力タイミングを所定のタイミングでスィープさせてシミュレーションを実行した結果である第二の結果とを取得して前記記憶手段に格納するシミュレーション手順と、
前記記憶装置か読み出した前記第一の結果及び前記第二の結果において、前記入力イベントの種類と、前記出力信号の論理値との比較を行い、前記論理回路の動作の正誤を判定する結果判定手順と、を有する論理回路検証方法。
【請求項８】
入力信号のパターンに非同期な信号を含む論理回路の動作検証を行う論理回路検証装置において実行される論理回路検証プログラムであって、
前記論理回路検証装置に、
入力イベントに依存するストローブポイントにて前記入力イベントの種類と前記ストローブポイントでの出力信号の論理値とを抽出する構成のテストベンチを生成するテストベンチ生成ステップと、
前記テストベンチ生成ステップにおいて生成された前記テストベンチの所定の入力信号に対し、動作検証済みのタイミングでシミュレーションを実行した結果である第一の結果と、前記所定の入力信号の入力タイミングを所定のタイミングでスィープさせてシミュレーションを実行した結果である第二の結果とを取得するシミュレーションステップと、
前記シミュレーションステップにおいて取得した前記第一の結果及び前記第二の結果における前記入力イベントの種類と、前記出力信号の論理値との比較を行い、前記論理回路の動作の正誤を判定する結果判定ステップと、を実行させる論理回路検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
入力信号のパターンに非同期な信号を含む論理回路の動作検証を行う論理回路検証装置、論理回路検証方法及び論理回路検証プログラムに関する。
【背景技術】
【０００２】
従来から、論理回路の設計を行う場合には回路の動作検証が行われる。この動作検証は、検証対象の論理回路がアナログ回路のコンパレータ経由の信号等のパターンが不規則な信号を入力とする回路の場合には注意を要する。
【０００３】
その理由は、信号が入力されるタイミングが不規則であるため、各信号パターンを組合せたテストパターンによる検証に加え、数多くの入力タイミングを組合せたテストパターンで検証を行わなければならないからである。
【０００４】
入力タイミングが不規則であると、各信号の入力パターンの組合せや、入力パターンによって生成される回路内部の信号の組合せが想定外のものとなる場合があり、その結果回路動作に不具合が生じることがある。このような不具合は、数多くの入力タイミングによるテストパターンで十分に検証を行わないと検出できない。
【０００５】
図１を参照して入力タイミングに起因する不具合について説明する。図１は、入力タイミングに起因する不具合の例を説明する図である。図１に示すＡ〜Ｅの信号は、全て外部端子の信号であり、Ａ，Ｄは不規則な入力信号、Ｂ，Ｃは規則的な入力信号、Ｅは出力信号としている。また図１（Ａ）は回路の仕様を示し、図１（Ｂ）は回路が正常動作をしているときの波形を示し、図１（Ｃ）は回路の動作に不具合が生じたときの波形を示してする。
【０００６】
図１（Ａ）の仕様を有する回路の場合、信号Ｅは図１（Ｂ）の例のような波形となる。ここで実際の回路作成において、信号Ｂの立ち上がりイベントを記憶している素子が信号Ａがハイレベル（以下、Ｈレベル）の期間のみ有効であった場合について考える。この場合信号Ａの波形は、図１（Ｃ）の入力のタイミングの時、信号Ｅは信号Ｃの立ち上がりで反応せず、信号Ｅは図１（Ｂ）のような出力とならない。つまり、信号Ａの波形に図１（Ｃ）のような入力タイミングを考慮して初めてこの回路の不具合が検出できることになる。
【０００７】
このようにパターンが不規則な信号を入力とする論理回路の検証には、数多くの入力タイミングでのシミュレーションが必須となる。
【０００８】
この検証を効率よく実現するためには、以下の２点が重要となる。１点目は複数の入力タイミングでのシミュレーションを自動で実行することであり、２点目はシミュレーションの結果判定を自動で実行することである。
【０００９】
１点目について、従来では、例えば図２に示すように、ハードウェア記述言語でのテストベンチとプログラムを利用して、特定の信号の入力タイミングをずらしながらシミュレーションを自動反復させることで実現している。図２は、従来のシミュレーションの自動反復を説明する図である。
【００１０】
この方法では、シミュレーションの回数が多数となるため、工数を抑えるに２点目のシミュレーションの結果判定も自動で行わせることが必要となる。しかし、結果判定を自動で行う場合には、入力タイミングによって出力のタイミングが変わるために期待値選定と期待値比較が容易でない、擬似エラーの判定を行うことが困難である等の問題があり、結果判定の自動化による効率化が困難あった。
【００１１】
以下に、結果判定の自動化における問題について具体例を挙げて説明する。
【００１２】
まず一点目の問題について説明する。図３は、図１（Ａ）の仕様を有する回路における、ある入力タイミングでの入出力波形の例を示す第一の図である。図３（Ａ）は第一の入力タイミングでの入出力波形の例を示しており、図３（Ｂ）は第二の入力タイミングでの入出力波形の例を示している。
【００１３】
図３において、信号Ｄの入力タイミングによって信号Ｅの出力は、図３（Ａ）、図３（Ｂ）のように異なる。よって結果判定のストローブポイントを一定にできず、期待値選定と期待値比較が容易でない。
【００１４】
次に二点目の留意点について説明する。図４は、図１（Ａ）の仕様を有する回路における、ある入力タイミングでの入出力波形の例を示す第二の図である。図４（Ａ）は信号Ａの入力タイミングによる誤動作の波形の例を示しており、図４（Ｂ）は信号Ｄの入力タイミングに伴う波形での例を示している。図４（Ａ）における信号Ｅの波形と、図４（Ｂ）における信号Ｅの波形はほぼ同じであるが、図４（Ａ）に示す波形は誤動作によるものであり図４（Ｂ）に示す波形は誤動作ではない。図４の例からわかるように、従来では、例えば出力の波形パターンが大きく異なっていたとしても、これが誤動作によるものであるか否かはその都度確認しないと判断できず、擬似エラーの判定を行うことが困難である。
【００１５】
そこで、特許文献１では、期待値波形側と観測波形側にそれぞれ独立した比較評価の時間ポイントを指定し、結果判定の誤動作を無くすことが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら上記特許文献１記載の発明では、入力パターンが変動するような場合にはその都度比較対象信号に対する期待値用及び確定値用の確定周期比較ポイントの指定を変えなければならないため、期待値選定と期待値比較が容易でないという問題を解決できない。また特許文献１記載の発明は、独立した比較評価の時間ポイント設定による擬似エラー回避を狙いとしているため、擬似エラーの判定を行うことが困難であるという問題も解決できない。したがって特許文献１記載の発明では、パターンが不規則な信号を入力とする論理回路の設計において、動作検証にかかる工数を十分に削減することができない。
【００１７】
本発明は、上記事情を鑑みてこれを解決すべくなされたものであり、パターンが不規則な信号を入力とする論理回路の設計において、動作検証にかかる工数を削減することが可能な論理回路検証装置、論理回路検証方法及び論理回路検証プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１８】
本発明は、上記目的を達成するために、以下の如き構成を採用した。
【００１９】
本発明は、入力信号のパターンに非同期な信号を含む論理回路の動作検証を行う論理回路検証装置であって、入力イベントに依存するストローブポイントにて前記入力イベントの種類と前記ストローブポイントでの出力信号の論理値とを抽出する構成のテストベンチを生成するテストベンチ生成手段と、前記テストベンチ生成手段により生成された前記テストベンチの所定の入力信号に対し、動作検証済みのタイミングでシミュレーションを実行した結果である第一の結果と、前記所定の入力信号の入力タイミングを所定のタイミングでスィープさせてシミュレーションを実行した結果である第二の結果とを取得するシミュレーション手段と、前記第一の結果及び前記第二の結果における前記入力イベントの種類と、前記出力信号の論理値との比較を行い、前記論理回路の動作の正誤を判定する結果判定手段と、を有する。
【００２０】
本発明は、入力信号のパターンに非同期な信号を含む論理回路の動作検証を行う論理回路検証装置による論理回路検証方法であって、入力イベントに依存するストローブポイントにて前記入力イベントの種類と前記ストローブポイントでの出力信号の論理値とを抽出する構成のテストベンチを生成して記憶装置に格納するテストベンチ生成手順と、前記記憶装置から読み出した前記テストベンチの所定の入力信号に対し、動作検証済みのタイミングでシミュレーションを実行した結果である第一の結果と、前記所定の入力信号の入力タイミングを所定のタイミングでスィープさせてシミュレーションを実行した結果である第二の結果とを取得して前記記憶手段に格納するシミュレーション手順と、前記記憶装置か読み出した前記第一の結果及び前記第二の結果において、前記入力イベントの種類と、前記出力信号の論理値との比較を行い、前記論理回路の動作の正誤を判定する結果判定手順と、を有する。
【００２１】
本発明は、入力信号のパターンに非同期な信号を含む論理回路の動作検証を行う論理回路検証装置において実行される論理回路検証プログラムであって、前記論理回路検証装置に、入力イベントに依存するストローブポイントにて前記入力イベントの種類と前記ストローブポイントでの出力信号の論理値とを抽出する構成のテストベンチを生成するテストベンチ生成ステップと、前記テストベンチ生成ステップにおいて生成された前記テストベンチの所定の入力信号に対し、動作検証済みのタイミングでシミュレーションを実行した結果である第一の結果と、前記所定の入力信号の入力タイミングを所定のタイミングでスィープさせてシミュレーションを実行した結果である第二の結果とを取得するシミュレーションステップと、前記シミュレーションステップにおいて取得した前記第一の結果及び前記第二の結果における前記入力イベントの種類と、前記出力信号の論理値との比較を行い、前記論理回路の動作の正誤を判定する結果判定ステップと、を実行させる。
【発明の効果】
【００２２】
本発明によれば、パターンが不規則な信号を入力とする論理回路の設計において、動作検証にかかる工数を削減することができる。
【図面の簡単な説明】
【００２３】
【図１】入力タイミングに起因する不具合の例を説明する図である。
【図２】従来のシミュレーションの自動反復を説明する図である。
【図３】図１（Ａ）の仕様を有する回路における、ある入力タイミングでの入出力波形の例を示す第一の図である。
【図４】図１（Ａ）の仕様を有する回路における、ある入力タイミングでの入出力波形の例を示す第二の図である。
【図５】本実施形態の論理回路検証装置のハードウェア構成の一例を示す図である。
【図６】本実施形態の論理回路検証装置の機能構成を説明する図である。
【図７】本実施形態の論理回路検証装置の動作を説明するフローチャートである。
【図８】機能検証用テストベンチの構成の一例を示す図である。
【図９】非同期出力抽出指定情報の一例を示す図である。
【図１０】非同期出力抽出用テストベンチを説明する図である。
【図１１】シミュレーション反復指定情報の例を示す図である。
【図１２】シミュレーション制御用プログラムの例を示す図である。
【図１３】参照用シミュレーション結果の波形の例と検出シミュレーション結果の波形の例を示す図である。
【図１４】シミュレーション結果の例を示す図である。
【発明を実施するための形態】
【００２４】
本発明では、既に動作検証済みの入力タイミングによるシミュレーション結果と、入力タイミングを任意のタイミングにスイープさせたシミュレーション結果とを比較することで期待値比較を行い、入力タイミングのちがいによる出力正誤の判定を行う。本発明ではこの構成により、期待値比較が容易となり且つ擬似エラーの判定が可能となるため、検証効率を向上させる動作検証にかかる工数を削減することができる。
【００２５】
以下に図面を参照して本発明の実施形態について説明する。図５は、本実施形態の論理回路検証装置のハードウェア構成の一例を示す図である。
【００２６】
本実施形態の論理回路検証装置１００は、入力装置１１、出力装置１２、ドライブ装置１３、補助記憶装置１４、メモリ装置１５、演算処理装置１６、インターフェイス装置１７がバスＢを介して接続されている。
【００２７】
入力装置１１は、キーボードやマウスなどで構成され、各種信号を入力するために用いられる。出力装置１２は、ディスプレイ装置などで構成され、各種ウインドウやデータ等を表示するために用いられる。ドライブ装置１３は、記録媒体１８に記録されたプログラム等をドライブする。補助記憶装置１４は、インストールされた論理回路検証プログラムを格納すると共に、必要なファイル、データ等を格納する。
【００２８】
メモリ装置１５は、論理回路検証装置１００の起動時に補助記憶装置１４から論理回路検証プログラムを読み出して格納する。演算処理装置１６は、論理回路検証装置１００の全体の処理を制御する。また演算処理装置１６は、メモリ装置１５に格納された本発明の論理回路検証プログラムに従って、後述するような各種処理を実現する。インターフェイス装置１７は、モデム、ＬＡＮカードなどで構成されており、論理回路検証装置１００をネットワークに接続する為に用いられる。
【００２９】
本発明の論理回路検証プログラムは、論理回路検証装置１００を制御する各種プログラムの少なくとも一部である。論理回路検証プログラムは例えば記録媒体１８の配布やネットワークからのダウンロードなどによって提供される。論理回路検証プログラムを記録した記録媒体１８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ（Read Only Memory）、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３０】
また、論理回路検証プログラムを記録した記録媒体１８がドライブ装置１３にセットされると、論理回路検証プログラムは記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワークからダウンロードされた論理回路検証プログラムは、インターフェイス装置１７を介して補助記憶装置１４にインストールされる。
【００３１】
図６は、本実施形態の論理回路検証装置の機能構成を説明する図である。
【００３２】
本実施形態の論理回路検証装置１００は、非同期出力抽出用テストベンチ作成部１１０、シミュレーション反復制御部１２０、シミュレータ１３０、結果判定部１４０を有する。
【００３３】
また本実施形態の論理回路検証装置１００は、データベース２１０、２２０、２３０、２４０、２５０、２６０、２７０を有する。本実施形態の各データベースは、例えば論理回路検証装置１００の有する補助記憶装置１４内に設けられていても良い。
【００３４】
データベース２１０には、機能検証用テストベンチ２１１が格納されている。データベース２２０には、非同期出力抽出指定情報２２１が格納されている。データベース２３０には、シミュレーション反復指定情報２３１が格納されている。本実施形態において、機能検証用テストベンチ２１１、非同期出力抽出指定情報２２１、シミュレーション反復指定情報２３１は、本実施形態の論理回路検証装置１００による検証動作の実行前にデータベース２１０、２２０、２３０に予め格納される。
【００３５】
データベース２４０には、非同期出力抽出用テストベンチ作成部１１０において作成された非同期出力抽出用テストベンチ２４１が格納される。データベース２５０には、シミュレーション反復制御部１２０から出力されるシミュレーション制御プログラム２５１が格納される。データベース２６０には、シミュレータ１３０によるシミュレーション結果である参照用シミュレーション結果２６１が格納される。データベース２７０には、シミュレータ１３０によるシミュレーション結果である検出シミュレーション結果２７１が格納される。
【００３６】
非同期出力抽出用テストベンチ作成部１１０は、データベース２１０、２２０から機能検証用テストベンチ２１１、非同期出力抽出指定情報２２１をそれぞれ取得し、非同期出力抽出用テストベンチ２４１を作成してデータベース２４０へ格納する。
【００３７】
シミュレーション反復制御部１２０は、データベース２３０からシミュレーション反復指定情報２３１を取得し、シミュレーション制御プログラム２５１を作成してデータベース２５０へ格納する。
【００３８】
シミュレータ１３０は、データベース２４０、２５０から非同期出力抽出用テストベンチ２４１、シミュレーション制御プログラム２５１をそれぞれ読み出してシミュレーションを実行する。そして実行結果である参照用シミュレーション結果２６１と、検出シミュレーション結果２７１とをデータベース２６０、２７０にそれぞれ格納する。
【００３９】
判定結果部１４０は、データベース２６０、２７０から参照用シミュレーション結果２６１と、検出シミュレーション結果２７１とを読み出し、疑似エラーか否かの正誤判定を行う。
【００４０】
以下に本実施形態の論理回路検証装置１００の動作を説明する。図７は、本実施形態の論理回路検証装置の動作を説明するフローチャートである。図７のフローチャートの順番に従い、本実施形態の論理回路検証装置１００の具体的な処理について説明する。
【００４１】
本実施形態の論理回路検証装置１００は、非同期出力抽出用テストベンチ生成部１１０により、データベース２１０、２２０から図８に示す機能検証用テストベンチ２１１と、図９に示す非同期出力抽出指定情報２２１とを取り込み、非同期出力の抽出が行える非同期出力抽出テストベンチ２４１を出力する。非同期出力抽出テストベンチ２４１は、シミュレータ１３０によるシミュレーションを実行するための手順が記述されたデータである。
【００４２】
図８は、機能検証用テストベンチの構成の一例を示す図である。機能検証用テストベンチ２１１は、正常動作の確認がとれているテストベンチである。
【００４３】
本実施形態の機能検証用テストベンチ２１１は、テストパターンと論理回路検証装置１００による検証の対象論理回路ＤＵＴとがシミュレーション可能なように接続された状態を記述したデータである。尚本実施形態の対象論理回路ＤＵＴは、図１（Ａ）に示す仕様を有する論理回路であり、テストパターンは図１（Ｂ）に示す波形である。
【００４４】
図９は、非同期出力抽出指定情報の一例を示す図である。非同期出力抽出指定情報２２１とは、非同期の入力パターンにより非同期なタイミングで出力される出力値を正しく検出するためのストローブポイントを設定する際に用いられる情報である。本実施形態の非同期出力抽出指定情報２２１は、図９に示すように、出力信号名と、出力を決定するイベントの条件式であるイベント条件式と、イベント条件式に便宜的に名称を付けたイベント識別名と、イベント条件式を満たしたポイントから出力信号の論理値を観測するポイントまでの時間であるストローブ時間とが含まれる。尚出力信号の論理値を観測するポイントがストローブポイントである。また本実施形態では、イベント条件式からイベントの種類がわかる。
【００４５】
本実施形態の非同期出力抽出用テストベンチ生成部１１０は、機能検証用テストベンチ２１１を読み込むことで、対象論理回路ＤＵＴの外部端子情報を理解する。すなわち非同期出力抽出用テストベンチ生成部１１０は、外部端子Ａの信号（以下、信号Ａ）、外部端子Ｄの信号（以下、信号Ｄ）は不規則な入力信号、外部端子Ｂの信号（以下、信号Ｂ）、外部端子Ｃの信号（以下、信号Ｃ）は規則的な入力信号、外部端子Ｅの信号（以下、信号Ｅ）は出力信号であることを理解する。尚不規則な信号とは、例えば非同期の信号である。同時に非同期出力抽出用テストベンチ生成部１１０は、非同期出力抽出指定情報２２１を元に、対象論理回路ＤＵＴと同じ端子名を持つ結果抽出モジュールを生成する。
【００４６】
次に非同期出力抽出用テストベンチ生成部１１０は、結果抽出モジュールと対象論理回路ＤＵＴとの同じ端子名同士を接続し、図１０に示す非同期出力抽出用テストベンチ２４１を生成する。図１０は、非同期出力抽出用テストベンチを説明する図であり、図１０（Ａ）非同期出力抽出用テストベンチ２４１の構成の一例を示す図であり、図１０（Ｂ）は、結果抽出モジュールの一例を示す図である。
【００４７】
結果抽出モジュールは、シミュレータ１３０により実行されるシミュレーションの実行開始と同時に対象論理回路ＤＵＴへの入力信号、対象論理回路ＤＵＴからの出力信号を全て入力として利用する。結果抽出モジュールの出力は、シミュレーション中に出力されるシミュレーション結果のみとなる。
【００４８】
次にシミュレーション反復制御部１２０は、データベース２３０から図１１に示すシミュレーション反復指定情報２３１を取得し、シミュレータ１３０と結果判定部１４０の動作シーケンスを制御するシミュレーション制御プログラム２５１を生成する。シミュレーション制御プログラム２５１は、データベース２５０へ格納される。
【００４９】
図１１は、シミュレーション反復指定情報の例を示す図である。図１１（Ａ）は、検証済みで参照用シミュレーション結果となる波形を示しており、図１１（Ｂ）はシミュレーション反復指定情報２３１の例を示している。
【００５０】
シミュレーション反復指定情報２３１は、スイープさせるべき区間を考慮して予め設定される情報である。
【００５１】
例えば図１１（Ａ）に示すように、非同期な入力となる信号Ａと信号Ｄについて、スィープ区間をそれぞれタイミングＴｓ−ＡからタイミングＴｅ−Ａ、タイミングＴｓ−ＤからタイミングＴｅ−Ｄとした場合、シミュレーション反復情報２３１は図１１（Ｂ）のように設定される。
【００５２】
シミュレーション反復情報２３１では、信号名であるＡに続いて、スィープ開始時間を示すタイミングＴｓ−Ａ、スィープ終了時間を示すタイミングＴｅ−Ａ、スィープ区間内でステップさせる刻み時間を示すＴｓｔｅｐ−Ａ、検証済みの入力タイミングであるタイミングＲｅｆＴ−Ａがシーケンシャルに記述されている。検証済みの入力タイミングＲｅｆＴ−Ａは、機能検証用テストベンチ２１１において正常動作の確認がとれている入力タイミングである。信号Ｄについても同様である。
【００５３】
本実施形態では、シミュレーション反復情報２３１をシミュレーション反復制御部１２０が取り込むことで、後述する各シミュレーションのループでの信号Ａと信号Ｄの的確な信号変化タイミングを算出し、図１２に示すようなシミュレーション制御用プログラム２５１を出力する。
【００５４】
本実施形態のシミュレーション制御プログラム２５１は、シミュレータ１３０と結果判定部１４０とを制御するように作成される。
【００５５】
図１２は、シミュレーション制御用プログラムの例を示す図である。図１２に示すシミュレーション制御プログラム２５１は、シミュレーション反復情報２３１のタイミングＴｓ−Ａ、タイミングＴｅ−Ａ、刻み時間Ｔｓｔｅｐ−Ａを、それぞれ１０ｎｓｅｃ、４０ｎｓｅｃ、１０ｎｓｅｃとした場合のプログラムである。
【００５６】
本実施形態のシミュレーション反復制御部１２０は、シミュレーション制御プログラム２５１が、検証済みの入力タイミングであるタイミングＲｅｆＴ−Ａ、ＲｅｆＴ−Ｄを読み込んでシミュレータ１３０を制御するように、シミュレーション制御プログラム２５１を作成する。
【００５７】
図１２に示すシミュレーション制御プログラム２５１は、ループの１回目では、タイミングＲｅｆＴ−Ａ、ＲｅｆＴ−Ｄで示される検証済みのタイミングでシミュレータ１３０にシミュレーションを実行させる。そしてシミュレーション制御プログラム２５１は、シミュレータ１３０に、出力された結果を参照用シミュレーション結果２６１としてコピーさせ、データベース２６０へ格納させる。尚シミュレーション制御プログラム２５１は、１回のループで１回のシミュレーションをシミュレータ１３０に実行させる。
【００５８】
またシミュレーション制御プログラム２５１は、ループの２回目以降では、スィープされた入力タイミングにてシミュレータ１３０にシミュレーションを実行させる。そしてシミュレーション制御プログラム２５１は、シミュレータ１３０に、２回目以降のシミュレーションの結果を検出シミュレーション結果２７１としてデータベース２７０へ格納させる。
【００５９】
またシミュレーション制御プログラム２５１は、結果判定部１４０に、参照用シミュレーション結果２６１と検出シミュレーション結果２７１とを比較して評価する期待値比較と疑似エラーか否かの判定を実行させる。シミュレーション制御プログラム２５１において、これらのループは、シミュレーション反復情報２３１に記述される入力信号の数分、ループネストとなって繰り返されるように記述される。
【００６０】
本実施形態の論理回路検証装置１００では、図７の以上のステップＳ７１及びステップＳ７２の動作で、シミュレータ１３０によるシミュレーションに必要な環境が全て揃うことになる。したがって論理回路検証装置１００においてシミュレーション制御プログラム２５１は、シミュレータ１３０に、非同期出力抽出用テストベンチ２４１に記述された手順にしたがったシミュレーションの実行を開始させる。またシミュレーション制御プログラム２５１は、結果判定部１４０に処理の実行を開始させる（ステップＳ７３）。
【００６１】
本実施形態のシミュレーション制御プログラム２５１は、１回目のループではシミュレーション反復指定情報２３１に含まれる検証済みタイミングを用いてシミュレータ１３０のみを制御し、生成されたシミュレーション結果を参照用シミュレーション結果２６１としてコピーする（ステップＳ７４）。尚ステップＳ７４の処理は、ループ１回目の動作を示している。
【００６２】
以下に、図１３を参照して、ステップＳ７４において実行される非同期出力抽出テストベンチ２４１によるシミュレーションの動作について説明する。
【００６３】
図１３は、参照用シミュレーション結果の波形の例と検出シミュレーション結果の波形の例を示す図である。図１３（Ａ）は参照用シミュレーション結果の波形を示し、図１３（Ｂ）は正常動作時の検出シミュレーション結果の波形を示し、図１３（Ｃ）は誤動作時の検出シミュレーション結果の波形を示し、図１３（Ｄ）は正常動作時の検出シミュレーション結果の波形を示している。
【００６４】
シミュレーション波形は図１３（Ａ）のようになるが、テストベンチ中の結果抽出モジュールがシミュレーション中に、まずＡ信号がＨレベルの区間でのＢ信号の立ち上がりを検出する。このシミュレーション時間中において、Ｂ信号の立ち上がりから１０ｎｓｅｃ後にイベントが発生する。結果抽出モジュールは、このイベントの識別名をB_causedとし、この識別名と共に、イベント発生時のＥ信号の論理値を参照用シミュレーション結果２６１として出力する。尚参照用シミュレーション結果２６１は、ファイルとして出力される。
【００６５】
同様に結果抽出モジュールは、次にＡ信号がＨレベルの区間でのＣ信号の立ち上がり、また次にＡ信号がＬレベルの区間でのＤ信号の立ち上がりを検出し、それぞれの立ち上がりの検出から１０ｎｓｅｃ後に発生したイベントの識別名と共にイベント発生時のＥ信号の論理値を参照用シミュレーション結果２６１として出力する。
【００６６】
図１４は、シミュレーション結果の例を示す図であり、図１４（Ａ）は参照用シミュレーション結果の例を示し、図１４（Ｂ）は正常動作時の検出シミュレーション結果の例を示し、図１４（Ｃ）は誤動作時の検出シミュレーション結果の例を示し、図１４（Ｄ）は正常動作時の検出シミュレーション結果の例を示している。
【００６７】
図１４（Ａ）に示すファイルが、コピーされて参照用シミュレーション結果２６１となる。図１４において、Ｅは出力信号名であり、B_caused,C_caused,AD_causedはイベント識別名であり、各イベント識別名の右隣の値が各イベントでの信号Ｅの論理値である。
【００６８】
次にシミュレーション制御プログラム２５１は、シミュレーション反復指定情報２３１から算出されたスィープタイミングを用いてシミュレータ１３０と結果判定部１４０をシーケンシャルに実行させる（ステップＳ７５）。ステップＳ７５の処理は、ループの２回目以降の動作を示している。また本実施形態のシミュレータ１３０は、２回目以降のループで実行されるシミュレーションの結果を検出シミュレーション結果２７１としてデータベース２７０へ格納する。
【００６９】
本実施形態のシミュレーション制御プログラム２５１は、図１３（Ａ）の参照用シミュレーション結果２６１の波形に示すＡ信号の立ち下がりのタイミングを１０ｎｓｅｃ，２０ｎｓｅｃ，３０ｎｓｅｃ，４０ｎｓｅｃと各ループで変化させ、シミュレータ１３０にシミュレーションを実行させる。またシミュレーション制御プログラム２５１は、Ｄ信号の立ち上がりのタイミングもＡ信号とは独立して２０ｎｓｅｃ，３０ｎｓｅｃ，４０ｎｓｅｃ，５０ｎｓｅｃと変化させる。
【００７０】
この例では、Ａ信号の立ち下がりのタイミングが４パターンであり、Ｄ信号の立ち上がりのタイミングが４パターンであるから、２回目以降のループ回数は、４×４の１６回である。
【００７１】
各信号の入力タイミングが決まれば、シミュレータ１３０によるシミュレーションの動作は１回目のループのときと同様である。
【００７２】
次に、ループの過程で入力タイミングが図１３（Ｂ）に示すタイミングとなった場合について説明する。
【００７３】
図１３（Ｂ）に示される対象論理回路ＤＵＴの動作は、図１（Ａ）に示す仕様を満たすものであり、動作としては正しい正常動作である。しかし、図１３（Ａ）の参照用シミュレーション結果２６１の波形と比べると信号ＥがＨレベルとなるタイミング（出力タイミング）が異なる。
【００７４】
しかし、本実施形態では非同期出力抽出用テストベンチ２４１にてシミュレーションが実行されているため、検出シミュレーション結果２７１としては、時間情報を含まない図１４（Ｂ）のようなファイルが出力される。このファイルは、図１４（Ａ）に示す参照用シミュレーション結果２６１と全く同じ内容である。したがって図１３（Ｂ）に示す対象論理回路ＤＵＴの動作が正常動作であることがわかる。
【００７５】
次に、ループの過程で入力タイミングが図１３（Ｃ）に示すタイミングとなった場合について説明する。入力タイミングが図１３（Ｃ）のようになった場合、出力タイミングが図１３（Ａ）のようにならず、想定外の動作となる。このときの検出シミュレーション結果２７１は図１４（Ｃ）のようになる。図１４（Ｃ）に示す検出シミュレーション結果２７１は、図１４（Ａ）に示す参照用シミュレーション結果２６１と比較して、出力の要因となるシーケンスが、B_caused,C_caused,AD_causedと同じでありながら、C_causedでの出力値が異なっている。したがって図１３（Ｃ）に示す対象論理回路ＤＵＴの動作が誤動作であることがわかる。
【００７６】
次に、ループの過程で入力タイミングが図１３（Ｄ）に示すタイミングとなった場合について説明する。この場合、出力タイミングが図１３（Ａ）に示す参照用シミュレーション結果２６１と一致しない。しかしこの動作は回路動作としては正しく、Ｃ信号とＤ信号で入力タイミングが逆転したために生じた波形であり、誤動作としてカウントすべきものではない擬似エラーである。
【００７７】
この検出シミュレーション結果２７１は、図１４（Ｄ）のようになり、図１４（Ａ）に示す参照用シミュレーション結果２６１と比較して、出力の要因となるシーケンスが、B_caused,AD_caused,C_causedと出力要因である入力タイミングの逆転が生じていることが判断できる。本実施形態の結果判定部１４０は、このように出力要因である入力タイミングの逆転が生じている場合を疑似エラーと判定する。
【００７８】
２回目以降の各ループでこれら検出シミュレーション結果２７１が出力されると、結果判定部１４０は、参照用シミュレーション結果２６１検出シミュレーション結果２７１との比較を行い結果、疑似エラーを含む回路動作の正誤判定を行うことになる。
【００７９】
結果判定部１４０は、参照用シミュレーション結果２６１と検出シミュレーション結果２７１とを比較して、ファイル中のイベント識別名の並び順が両者において一致しており且つ出力値が異なる場合には、該当するシミュレーションの入力タイミングにて不具合（誤動作）が生じると判断する。
【００８０】
よって本実施形態の結果判定部１４０は、図１４の例では、図１４（Ａ）の参照用シミュレーション結果２６１に対し、検出シミュレーション結果２７１が図１４（Ｃ）の場合、誤動作として判断する。
【００８１】
ここで、入力が同期信号ばかりの回路のシミュレーションにおける期待値の比較について説明する。
【００８２】
通常のシミュレーションでは、シミュレーション結果には時間情報と信号情報が含まれる。通常のシミュレーションによるシミュレーション結果を例えば［０ｎｓｅｃ：０，７ｎｓｅｃ：１，１７ｎｓｅｃ：０，２８ｎｓｅｃ：０，...］とする。
【００８３】
一方、通常期待値としては、例えば１０ｎｓｅｃ周期で動作する回路だとして、各周期毎の期待値列を［０，１，０，０，．．］とする。そして期待値を比較するストローブポイントを毎周期の５ｎｅｃの点だとすると、上記期待値列との比較において４周期目で期待値とシミュレーション結果が異なっていることが分かる。
【００８４】
しかしながら入力に非同期の信号が含まれる回路の場合、上記のような時間ベースでの比較は困難となる。本実施形態では、時間情報がないが含まれないシミュレーション結果を出力することで、イベント識別名と出力値とを同時に比較することができる。
【００８５】
以上に説明したように、本実施形態の論理回路検証装置１００は、不規則な入力タイミングによるシミュレーション結果から、入力イベントに依存するストローブポイントでシミュレーション結果を検出できるテストベンチを対象論理回路の仕様に基づいて生成する。
【００８６】
次に本実施形態の論理回路検証装置１００は、生成したテストベンチを用いて、既に動作検証済みの入力タイミングでのシミュレーション結果である参照用シミュレーション結果と、任意のタイミングでスィープさせたシミュレーション結果である検出シミュレーション結果の２種類の結果を取得する。そして本実施形態の論理回路検証装置１００は、取得した２種類のシミュレーション結果を、タイミングの概念なく出力パターン列で比較することで期待値比較を容易にすることができる。
【００８７】
さらに本実施形態の論理回路検証装置１００は、２種類のシミュレーション結果において出力判定のタイミングを決定している入力イベントの識別名も残す仕組みとした。本実施形態の論理回路検証装置１００は、この仕組みにより、参照用シミュレーション結果と検出シミュレーション結果とを比較する際に、出力判定の入力イベントの時系列に差異があった場合には、疑似エラーであるとして正誤判定の精度を向上させることができる。
【００８８】
よって本実施形態によれば、期待値比較が容易となり且つ擬似エラーの判定が可能となるため、検証効率を向上させる動作検証にかかる工数を削減することができる。
【００８９】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【符号の説明】
【００９０】
１００  論理回路検証装置
１１０  非同期出力抽出用テストベンチ
１２０  シミュレーション反復制御部
１３０  シミュレータ
１４０  結果判定部
２１０、２２０、２３０、２４０、２５０、２６０、２７０  データベース
２１１  機能検証用テストベンチ
２２１  非同期出力抽出指定情報
２３１  シミュレーション反復指定情報
２４１  非同期出力抽出テストベンチ
２５１  シミュレーション制御プログラム
２６１  参照用シミュレーション結果
２７１  検出シミュレーション結果
【先行技術文献】
【特許文献】
【００９１】
【特許文献１】特開２００１‐１４７９４７号公報
【図１】
2011197722.tif 000003
【図２】
2011197722.tif 000004
【図３】
2011197722.tif 000005
【図４】
2011197722.tif 000006
【図５】
2011197722.tif 000007
【図６】
2011197722.tif 000008
【図７】
2011197722.tif 000009
【図８】
2011197722.tif 000010
【図９】
2011197722.tif 000011
【図１０】
2011197722.tif 000012
【図１１】
2011197722.tif 000013
【図１２】
2011197722.tif 000014
【図１３】
2011197722.tif 000015
【図１４】
2011197722.tif 000016