(57)【要約】  集積回路の機能を定義したデバイスデータを用いて集積回路の論理検証を行う論理検証方法であって、ハードウェア記述言語によって所定の機能を定義した第１回路データと、経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって第１回路データと同一機能を定義した第２回路データとを含む複数の論理モジュールデータを含んで形成されたデバイスデータを読み込むデバイスデータ読込工程と、デバイスデータに備わる論理モジュールデータにおいて、第１回路データまたは第２回路データのいずれか一方を選択する選択工程と、選択した回路データを用いたデバイスデータに基づく論理検証動作を行う検証工程と、を含むことを特徴とする論理検証方法を提供する。【特許請求の範囲】
【請求項１】
集積回路の機能を定義したデバイスデータを用いて集積回路の論理検証を行う論理検証方法であって、
ハードウェア記述言語によって所定の機能を定義した第１回路データと、経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって前記第１回路データと同一機能を定義した第２回路データとを含む複数の論理モジュールデータを含んで形成されたデバイスデータを読み込むデバイスデータ読込工程と、
前記デバイスデータに備わる論理モジュールデータにおいて、前記第１回路データまたは前記第２回路データのいずれか一方を選択する選択工程と、
選択した回路データを用いたデバイスデータに基づく論理検証動作を行う検証工程と、
を含むことを特徴とする論理検証方法。
【請求項２】
前記第１回路データは、レジスター・トランスファー・レベルで機能を定義したことを特徴とする請求項１に記載の論理検証方法。
【請求項３】
前記第２回路データは、タイミング情報として遅延時間に関する情報を含むことを特徴とする請求項１または２に記載の論理検証方法。
【請求項４】
前記セレクタ回路データは、入力される選択情報に基づき回路データを選択する機能を定義したことを特徴とする請求項１〜３のいずれか一つに記載の論理検証方法。
【請求項５】
前記選択工程と前記検証工程との間に、前記デバイスデータのうち前記選択工程において選択されなかった回路データ以外の部分を機械語に翻訳する翻訳工程をさらに含み、
前記検証工程は、前記翻訳工程によって機械語に翻訳された前記デバイスデータを用いて行われることを特徴とする請求項１に記載の論理検証方法。
【請求項６】
論理検証装置による検証の対象として少なくとも用いられるデバイスデータの一部を形成し、対応する集積回路の機能の一部または全部を定義した論理モジュールデータであって、
ハードウェア記述書語によって所定の機能を定義した第１回路データと、
経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって前記第１回路データと同一の機能を定義した第２回路データと、
前記第１回路データまたは前記第２回路データのいずれか一方を選択する機能を定義したセレクタ回路データと、
を備えたことを特徴とする論理モジュールデータ。
【請求項７】
前記第１回路データは、レジスター・トランスファー・レベルで機能を定義したことを特徴とする請求項６に記載の論理モジュールデータ。
【請求項８】
前記第２回路データは、タイミング情報として遅延時間に関する情報を含むことを特徴とする請求項６または７に記載の論理モジュールデータ。
【請求項９】
前記セレクタ回路データは、入力される選択情報に基づき回路データを選択する機能を定義したことを特徴とする請求項６〜８のいずれか一つに記載の論理モジュールデータ。
【請求項１０】
論理検証装置による検証の対象として用いられ、対応する集積回路の異なる部分における機能をそれぞれ定義する複数の論理モジュールデータを備えたデバイスデータであって、
前記論理モジュールデータは、
ハードウェア記述言語によって所定の機能を定義した第１回路データと、
経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって前記第１回路データと同一機能を定義した第２回路データと、
前記第１回路データまたは前記第２回路データのいずれか一方を選択する機能を定義したセレクタ回路データと、
を備えたことを特徴とするデバイスデータ。
【請求項１１】
前記論理モジュールデータは、前記セレクタ回路データにおいて選択されなかった回路データに関して、前記論理検証装置の取扱い言語たる機械語への翻訳が行われないよう定義されたことを特徴とする請求項１０に記載のデバイスデータ。
【請求項１２】
論理検証装置による検証の対象として用いられ、対応する集積回路の異なる部分における機能をそれぞれ定義する複数の論理モジュールデータを備えたデバイスデータであって、
ハードウェア記述言語によって所定の機能を定義した第１回路データを有する１以上の第１論理モジュールデータと、
ゲート回路の組み合わせによって前記第１論理モジュールデータと異なる機能を定義すると共にタイミング情報を含む第２回路データを有する１以上の第２論理モジュールデータと、
１以上の前記第１論理モジュールデータおよび１以上の前記第２論理モジュールデータの相互間のデータ伝達関係を定義した接続データと、
を備えたことを特徴とするデバイスデータ。
【請求項１３】
前記第１回路データは、機能をレジスター・トランスファー・レベルで定義し、
前記第２回路データは、タイミング情報として時間遅延に関する情報を含むことを特徴とする請求項１１または１２に記載のデバイスデータ。
【請求項１４】
所定のデバイスデータに関して論理検証を行う論理検証装置であって、
検証に用いられるテストパターンを記憶するテストベンチと、
ハードウェア記述言語によって所定の機能を定義した第１回路データおよび経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって前記第１回路データと同一機能を定義した第２回路データを含む複数の論理モジュールデータを含んで形成されたデバイスデータを記憶するデバイスデータ記憶手段と、
前記テストパターンを用いて前記デバイスデータの論理検証を行う検証実行手段と、
を備えたことを特徴とする論理検証装置。
【請求項１５】
前記テストパターンは、前記論理モジュールにおいて前記第１回路データおよび前記第２回路データのいずれを選択するかに関する情報である選択情報を包含し、
前記検証実行手段は、前記選択情報に基づいて前記論理モジュールデータにおける前記第１回路データおよび前記第２回路データの選択を行った上で論理検証を行うことを特徴とする請求項１４に記載の論理検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理検証装置による検証の対象として少なくとも用いられるデバイスデータの一部を形成し、対応する集積回路の機能の一部を定義した論理モジュールデータ、論理モジュールデータを用いたデバイスデータ、デバイスデータの論理検証を行う論理検証装置および論理検証方法に関するものである。本出願は、下記の日本出願に関連する。文献の参照による組み込みが認められる指定国については、下記の出願に記載された内容を参照により本出願に組み込み、本出願の一部とする。
特願２００４−２５４８７２    出願日  ２００４年９月１日
【背景技術】
【０００２】
近年、超ＬＳＩ等の集積回路を開発する工程において、一般にコンピュータ支援による設計手法（ＣＡＤ）が採用されている。かかるＣＡＤを用いた開発工程では、いわゆるハードウェア記述言語を用いて開発対象たる集積回路の機能に応じた抽象的な回路データを定義し、定義した回路データに基づいてチップ上に搭載する具体的な回路構造を生成している。【０００３】
例えば、対応する集積回路の全体をいくつかの機能ブロックに分離し、各機能ブロックをＲＴＬ（Register Transfer Level）によって記述した回路データを生成する。かかるＲＴＬ記述回路データを論理合成ツール等を用いて論理回路を生成し、集積回路上におけるレイアウト等を決定することによって、実際の集積回路の具体的な構成が決定されることとなる（例えば、特許文献１参照。）。【０００４】
【特許文献１】特開平１０−２８３３８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、現実にはすべての集積回路の設計・検証が上記のプロセスによって完了するのではない。すなわち、対応する集積回路の特性によっては、ＲＴＬ記述回路のみに基づいて設計することによっては充分な性能を有する集積回路を実現するのが困難となる場合がある。【０００６】
例えば、タイミング発生回路のように数ピコ秒のレベルで時間遅延を制御する必要がある回路の場合には、かかる遅延を含むＲＴＬ記述回路を生成することは困難であり、このことはＲＴＬ記述回路に基づいて導出される論理回路等に関しても同様である。このため、緻密な時間遅延制御を行う回路等、所定の特性を重視した集積回路の設計を行う場合には、論理回路の生成時に少なくとも集積回路の一部の回路部分に関して設計者が個別具体的に回路図エディタおよびレイアウトエディタ等を用いた設計を行う必要性が生じる。        【０００７】
そして、時間遅延等の所定の特性を重視した集積回路に関しては、上記の設計上の困難性に加え、検証に伴う問題が新たに生じる。すなわち、かかる集積回路では、設計途上で得られる論理回路に関して少なくとも一部について、設計者が個別具体的に設計することから、ＲＴＬ記述回路のみならず論理回路に関しても論理検証を行う必要がある。【０００８】
ＲＴＬ記述回路のようにハードウェア記述言語のみによって所定の機能を定義したデバイスデータを用いた論理検証については、短時間で行うことが可能である一方で、対応する集積回路が内部の構成要素間でデータホールド等の経時的な処理を行う必要がある場合に、充分な検証を行うことが困難であるという問題を有する。すなわち、ハードウェア記述言語のみによって定義したデバイスデータは、そもそも経時的な処理を充分に定義することが困難であるため、論理検証によって特に問題が生じなくとも経時的な処理に関して問題があるか否かの判断ができなかった。このため、従来の設計手法では、特にタイミング発生回路のように高速動作する集積回路の設計において、ハードウェア記述言語のみによって定義したデバイスデータに関して論理検証を行った後、特に経時的処理に関する部分について設計者がタイミング情報を付加しつつ回路図エディター等を用いて手作業で設計した部分を含む論理回路を生成し、かかる論理回路をあらたにデバイスデータとしてさらに論理検証を行う必要があった。【０００９】
しかしながら、タイミング情報を含む論理回路のみによって構成されたデバイスデータに関して論理検証を行う場合、経時的処理に関する部分についての検証が可能となる一方で、論理検証に長時間を要するという問題を有する。従って、かかる手法を用いて集積回路の設計を行った場合には、高速動作に関しても高い信頼性を有する集積回路を実現することが可能となる一方で、設計期間が長期化し、ＴＡＴ（Turn Around Time）が増加するという問題が生じることとなる。【００１０】
本発明は、上記に鑑みてなされたものであって、タイミング情報を含む集積回路の設計段階における論理検証を迅速に行うことが可能な論理検証方法、論理モジュールデータ、デバイスデータ及び論理検証装置を実現することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の第１の形態においては、集積回路の機能を定義したデバイスデータを用いて集積回路の論理検証を行う論理検証方法であって、ハードウェア記述言語によって所定の機能を定義した第１回路データと、経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって前記第１回路データと同一機能を定義した第２回路データとを含む複数の論理モジュールデータを含んで形成されたデバイスデータを読み込むデバイスデータ読込工程と、前記デバイスデータに備わる論理モジュールデータにおいて、前記第１回路データまたは前記第２回路データのいずれか一方を選択する選択工程と、選択した回路データを用いたデバイスデータに基づく論理検証動作を行う検証工程と、を含むことを特徴とする論理検証方法を提供する。【００１２】
前記第１回路データは、レジスター・トランスファー・レベルで機能を定義してよい。
前記第２回路データは、タイミング情報として遅延時間に関する情報を含んでよい。
前記セレクタ回路データは、入力される選択情報に基づき回路データを選択する機能を定義してよい。
前記選択工程と前記検証工程との間に、前記デバイスデータのうち前記選択工程において選択されなかった回路データ以外の部分を機械語に翻訳する翻訳工程をさらに含み、  前記検証工程は、前記翻訳工程によって機械語に翻訳された前記デバイスデータを用いて行われてよい。【００１３】
本発明の第２の形態においては、論理検証装置による検証の対象として少なくとも用いられるデバイスデータの一部を形成し、対応する集積回路の機能の一部または全部を定義した論理モジュールデータであって、ハードウェア記述書語によって所定の機能を定義した第１回路データと、経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって前記第１回路データと同一の機能を定義した第２回路データと、前記第１回路データまたは前記第２回路データのいずれか一方を選択する機能を定義したセレクタ回路データと、を備えたことを特徴とする論理モジュールデータを提供する。【００１４】
前記第１回路データは、レジスター・トランスファー・レベルで機能を定義してよい。
前記第２回路データは、タイミング情報として遅延時間に関する情報を含んでよい。
前記セレクタ回路データは、入力される選択情報に基づき回路データを選択する機能を定義してよい。【００１５】
本発明の第３の形態においては、論理検証装置による検証の対象として用いられ、対応する集積回路の異なる部分における機能をそれぞれ定義する複数の論理モジュールデータを備えたデバイスデータであって、前記論理モジュールデータは、ハードウェア記述言語によって所定の機能を定義した第１回路データと、経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって前記第１回路データと同一機能を定義した第２回路データと、前記第１回路データまたは前記第２回路データのいずれか一方を選択する機能を定義したセレクタ回路データと、を備えたことを特徴とするデバイスデータを提供する。【００１６】
前記論理モジュールデータは、前記セレクタ回路データにおいて選択されなかった回路データに関して、前記論理検証装置の取扱い言語たる機械語への翻訳が行われないよう定義してよい。【００１７】
本発明の第４の形態においては、論理検証装置による検証の対象として用いられ、対応する集積回路の異なる部分における機能をそれぞれ定義する複数の論理モジュールデータを備えたデバイスデータであって、ハードウェア記述言語によって所定の機能を定義した第１回路データを有する１以上の第１論理モジュールデータと、ゲート回路の組み合わせによって前記第１論理モジュールデータと異なる機能を定義すると共にタイミング情報を含む第２回路データを有する１以上の第２論理モジュールデータと、１以上の前記第１論理モジュールデータおよび１以上の前記第２論理モジュールデータの相互間のデータ伝達関係を定義した接続データと、を備えたことを特徴とするデバイスデータを提供する。【００１８】
前記第１回路データは、機能をレジスター・トランスファー・レベルで定義し、前記第２回路データは、タイミング情報として時間遅延に関する情報を含んでよい。【００１９】
本発明の第５の形態においては、所定のデバイスデータに関して論理検証を行う論理検証装置であって、検証に用いられるテストパターンを記憶するテストベンチと、ハードウェア記述言語によって所定の機能を定義した第１回路データおよび経時的な処理におけるタイミング情報を含み、ゲート回路を含む論理回路によって前記第１回路データと同一機能を定義した第２回路データを含む複数の論理モジュールデータを含んで形成されたデバイスデータを記憶するデバイスデータ記憶手段と、前記テストパターンを用いて前記デバイスデータの論理検証を行う検証実行手段と、を備えたことを特徴とする論理検証装置を提供する。【００２０】
前記テストパターンは、前記論理モジュールにおいて前記第１回路データおよび前記第２回路データのいずれを選択するかに関する情報である選択情報を包含し、前記検証実行手段は、前記選択情報に基づいて前記論理モジュールデータにおける前記第１回路データおよび前記第２回路データの選択を行った上で論理検証を行ってよい。【００２１】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００２２】
【図１】実施の形態１にかかる論理検証装置の全体構成を示すブロック図である。
【図２】論理検証装置に備わるデバイスデータ記憶部に記憶されるデバイスデータのデータ構造を模式的に示す概念図である。
【図３】論理検証装置に備わる検証実行部の動作を説明するためのフローチャートである。
【図４】実施の形態２にかかる論理検証装置の全体構成を示すブロック図である。
【図５】論理検証装置に備わるデバイスデータ記憶部に記憶されるデバイスデータのデータ構造を模式的に示す概念図である。
【図６】論理検証装置に備わる検証実行部の動作を説明するためのフローチャートである。
【図７】セレクタ回路データによる選択態様が定義された状態におけるデバイスデータのデータ構造の一例を模式的に示す概念図である。
【図８】セレクタ回路データによる選択態様が定義された状態におけるデバイスデータのデータ構造の他の例を模式的に示す概念図である。
【図９】デバイスデータに基づき生成される第１回路データおよび第２回路データを用いた論理検証動作の一例を示す模式図である。
【図１０】実施の形態３にかかる論理検証装置の全体構成を示すブロック図である。
【図１１】論理検証装置に備わるテストベンチに記憶されるテストパターンのデータ構造を模式的に示す概念図である。
【符号の説明】
【００２３】
１  ・・・論理検証装置、２  ・・・デバイスデータ記憶部、３  ・・・テストベンチ、４・・・  コンパイル部、５  ・・・検証実行部、６  ・・・出力部、７  ・・・第２デバイスデータ、８  ・・・第１論理モジュールデータ、９  ・・・第２論理モジュールデータ、１０  ・・・接続データ、１１  ・・・第１回路データ、１２  ・・・第２回路データ
【発明を実施するための最良の形態】
【００２４】
以下に、本発明にかかる論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置を実施するための最良の形態（以下、単に「実施の形態」と称する）について説明する。なお、以下に示す実施の形態によって本発明が限定されるものではないことはもちろんである。【００２５】
（実施の形態１）
まず、本実施の形態１にかかる論理検証装置について説明する。図１は、本実施の形態１にかかる論理検証装置１について示す模式図である。論理検証装置１は、具体的にはデバイスデータ等を格納するデバイスデータ記憶部２と、論理検証の際に用いられるテストパターンおよびデバイスデータから出力されるべき処理結果の期待値としての出力期待値とを記憶するテストベンチ３と、これらのデータを機械語に翻訳するコンパイル部４と、機械語に翻訳されたデータを用いて論理検証を実行する検証実行部５と、検証実行部５によって得られた検証結果を出力する出力部６とを備える。【００２６】
デバイスデータ記憶部２は、対応する集積回路の機能を記述したデバイスデータを記憶するためのものである。具体的には、デバイスデータ記憶部２は、ＲＴＬ記述回路データ等の第１回路データ（後述）のみによって形成された第１デバイスデータと、特許請求の範囲におけるデバイスデータの一例として機能する第２デバイスデータ７（後述）とを記憶する機能を有する。また、本実施の形態１において、第１デバイスデータを用いた検証が行われ、かかる検証の際に得られた応答結果に基づき第２デバイスデータ７の検証に用いられる。従って、デバイスデータ記憶部２には、第１デバイスデータを用いた検証の際に取得される応答結果も記憶されることとする。なお、デバイスデータの構造については、後に詳細に説明するためここでは省略する。【００２７】
テストベンチ３は、論理検証の際に用いられるテストパターンおよび出力期待値を記憶し、必要に応じてこれらのデータを検証実行部５に対して出力するためのものである。ここで、テストパターンは、デバイスデータ記憶部２に記憶されるデバイスデータの擬似的な処理の際に入力データとして用いられるものであって、対応する集積回路の処理内容に対応したデータによって構成される。また、出力期待値は、テストパターンが入力された場合に対応する集積回路において得られるものと予想される応答結果の期待値を示すデータである。【００２８】
コンパイル部４は、デバイスデータ記憶部２に記憶されたデータおよびテストベンチ３に保持されたテストパターン等を機械語に翻訳するためのものである。すなわち、検証実行部５は、電子計算機等によって実現される構成を有するのが通常であることから、検証実行部５に入力するデータを電子計算機等によって処理可能な形態に変換する必要があるため、本実施の形態１では検証実行部５の前段にコンパイル部４を設けることとしている。なお、コンパイル部４による翻訳の前後を通じて、データに含まれる情報そのものは同一性を維持することから、本明細書においては、デバイスデータ等に関して、翻訳の前後を通じて同一の名称を用いて説明することとする。【００２９】
検証実行部５は、デバイスデータの検証を行うためのものである。検証実行部５は、デバイスデータ記憶部２およびテストベンチ３に記憶されたデータに基づいて、デバイスデータによる擬似的な処理が、対応する集積回路によって行われるべき処理と等価であるか否かの判定を行う機能を有する。【００３０】
具体的には、上述したように本実施の形態１にかかる論理検証装置１では、デバイスデータ記憶部２に記憶した複数のデバイスデータを用いた論理検証を行う機能を有する。すなわち、論理検証装置１は、まず第１デバイスデータに対してテストパターンを使用することによって応答結果を取得し、かかる応答結果と出力期待値とを比較することによってテストパターン・期待値および第１デバイスデータにバグが含まれていないことを確認する。かかる確認を行った後、論理検証装置１は、後述する第２デバイスデータ７に対してテストパターンを使用することによって応答結果を取得し、取得した応答結果と、第１デバイスデータに関する応答結果とを比較し、比較結果を出力部６を介して出力する機能を有する。【００３１】
次に、デバイスデータ記憶部２に記憶されるデバイスデータについて説明する。デバイスデータは、対応する集積回路を擬似的に表現したデータである。具体的には、デバイスデータは、それぞれ集積回路の一部機能に対応する複数の論理モジュールデータと、論理モジュールデータ間の接続態様に対応する接続データとによって構成され、これらのデータによって集積回路を擬似的に表現している。【００３２】
図２は、デバイスデータ記憶部２に記憶されるデバイスデータのうち、特許請求の範囲におけるデバイスデータの一例として機能する第２デバイスデータ７の構造を説明するための概念図である。図２に示すように、第２デバイスデータ７は、それぞれ対応する集積回路における異なる部分の機能を記述した第１論理モジュールデータ８ａ、８ｂおよび第２論理モジュールデータ９と、論理モジュールデータ間のデータ伝達関係を記述する接続データ１０とによって構成される。なお、図２に示す概念図はデバイスデータの構造の一例を示すものであり、第１論理モジュールデータ８および第２論理モジュールデータ９の個数および接続データ１０によって記述される具体的なデータ伝達関係は、対応する集積回路の構成によって異なることはもちろんである。【００３３】
第１論理モジュールデータ８ａ、８ｂは、それぞれ第１回路データ１１ａ、１１ｂを備える。第１回路データ１１ａ、１１ｂは、第１論理モジュールデータ８ａ、８ｂの機能をハードウェア記述言語によって定義したものである。具体的には、第１回路データ１１ａ、１１ｂは、例えば所定の機能をレジスター・トランスファー・レベル（Register Transfer Level）で定義したものであり、検証実行部５による論理検証の際に、入力データに対して機能に応じた出力データを出力するよう構成されている。【００３４】
第２論理モジュールデータ９は、第２回路データ１２を備える。第２回路データ１２は、タイミング情報を含む所定の機能を定義したものであって、具体的にはＡＮＤ回路等のゲート回路を含む論理回路によって構成された回路データである。ここで、タイミング情報とは、内部の構成要素間でデータホールド等の経時的な処理を行う回路において必要となる情報であり、例えば遅延時間、セットアップタイムおよびホールドタイム等のことを言う。【００３５】
接続データ１０は、第１論理モジュールデータ８ａ、８ｂおよび第２論理モジュールデータ９の相互間のデータ伝達の態様を定義するものである。図２に示す例においては接続データ１０の定義内容によって、第２デバイスデータ７に入力されるテストパターンは、第１論理モジュールデータ８ａ、第１論理モジュールデータ８ｂ、第２論理モジュールデータ９の順に所定の処理が行われ、応答結果が生成されることとなる。【００３６】
次に、本実施の形態１にかかる論理検証装置の動作について説明する。図３は、本実施の形態１にかかる論理検証装置の動作、具体的には検証実行部５の動作について示すフローチャートである。まず、検証実行部５は、コンパイル部４を介して機械語に翻訳された第１デバイスデータを入力し、テストベンチ３から入力されたテストパターンを用いて、入力されたテストパターンに対する応答結果である第１応答結果を取得する（ステップＳ１０１）。そして、検証実行部５は、取得した第１応答結果と出力期待値とを比較し、テストパターン等に誤りが無いことの確認を行い、第１応答結果をデバイスデータ記憶部２に記憶する（ステップＳ１０２）。【００３７】
そして、検証実行部５は、第２デバイスデータ７を入力し、第２デバイスデータ７に対して、テストベンチ３から取得したテストパターンを与え、第１論理モジュールデータ８ａ、８ｂおよび第２論理モジュールデータ９を経て逐次得られる第２応答結果を取得する（ステップＳ１０３）。その後、検証実行部５は、取得した第２応答結果と、ステップＳ１０２において取得・記憶された第１応答結果との比較を行い、第２デバイスデータ７が期待通りの機能を有するか否かの検証を行う（ステップＳ１０４）。【００３８】
その後、検証実行部５は、テストデータのすべてを第２デバイスデータ７に与えたか否かの判定を行い（ステップＳ１０５）、すべてのテストデータを与えたと判定した場合（ステップＳ１０５，Ｙｅｓ）には、検証結果を出力部６に対して出力し（ステップＳ１０６）、検証動作を完了する。なお、すべてのテストデータを与えていないと判定した場合（ステップＳ１０５，Ｎｏ）には、再びステップＳ１０３に戻って上記の処理を繰り返す。【００３９】
次に、本実施の形態１にかかる論理検証装置の利点について説明する。まず、本実施の形態１にかかる論理検証装置は、異なるデータ構造によって構成された第１論理モジュールデータ８および第２論理モジュールデータ９によって第２デバイスデータ７を用いて論理検証を行うこととしたため、迅速な論理検証を行うことが可能であるという利点を有する。以下、かかる利点について説明する。【００４０】
既に述べたように、タイミング情報を含む論理回路のみによって機能を定義したデバイスデータの場合には、経時的処理に関する部分についての検証が可能となる一方で、論理検証に長時間を要するという問題を有していた。このため、従来の集積回路の設計に関しては、高い信頼性を有する集積回路を設計するためには、論理検証に長時間を要することとなるという問題を抱えていた。【００４１】
しかしながら、デバイスデータ中に経時的処理に関する部分が存在する場合であっても、論理検証を行う際にはすべての論理回路に関して検証を行う必要はない。具体的には、対応する集積回路に関して、すべての部分がセットアップタイム、ホールドタイムおよび遅延時間等のタイミング情報に関して緻密に制御した処理が行われるのではない。通常は、デバイスデータにおける大部分の機能はＲＴＬ記述回路によって充分定義することが可能な機能であり、一部においてタイミング情報に関して緻密に制御した処理が行われるよう構成されているのが通常である。【００４２】
このため、本実施の形態１にかかる論理検証装置では、第２デバイスデータ７に関して、集積回路の異なる部分における機能をそれぞれ定義した論理モジュールデータを複数備えた構成を採用している。そして、第２デバイスデータ７は、タイミング情報に関して緻密に制御した処理が行われる部分については、ゲート回路を含む論理回路によって機能を定義した第２回路データ１２を有する第２論理モジュールデータ９を用いることとし、その他の部分については、ＲＴＬ記述回路等のハードウェア記述言語によって機能を定義した第１回路データ１１を有する第１論理モジュールデータ８を用いることとしている。【００４３】
かかる構成を採用することによって、本実施の形態１にかかる論理検証装置は、迅速かつ正確な論理検証を行うことが可能である。すなわち、タイミング情報を含むべき部分、例えば設計者が手作業によって生成した部分に関しては、ゲート回路を用いてタイミング情報を含んだ第２回路データ１２を用いた論理検証が行われることとなり、ハードウェア記述言語によって定義された回路データのみを有するデバイスデータを用いた論理検証と比較して、正確な論理検証を行うことが可能であるという利点を有する。【００４４】
また、タイミング情報に関して緻密に制御した処理を行う必要のない部分に関しては、ハードウェア記述言語によって機能を定義した第１回路データ１１を用いるため、ゲート回路を用いた論理回路のみを有するデバイスデータを用いた論理検証と比較して、迅速な論理検証を行うことが可能であるという利点を有する。【００４５】
また、本実施の形態１にかかる論理検証装置は、テストベンチ３に記憶されるテストパターンおよび出力期待値について、従来のものを流用することが可能であるという利点を有する。すなわち、従来、ＲＴＬ記述回路等のハードウェア記述言語のみによって機能を定義したデバイスデータと、ゲート回路のみを用いて機能を定義したデバイスデータとは、論理検証が行われる際にいずれもイベントベースのテストパターンおよび出力期待値を用いることとしている。従って、両者が混在した本実施の形態１における第２デバイスデータ７を用いて論理検証を行う場合であっても、従来と同様にイベントベースのテストパターンおよび出力期待値を使用することが可能であって、簡易に論理検証装置を実現できるという利点を有する。【００４６】
さらに、本実施の形態１にかかる論理検証装置では、第２デバイスデータ７が第１論理モジュールデータ８および第２論理モジュールデータ９の双方を用いて形成されることとしたため、対応する集積回路全体に関する論理回路の作成が完了していない段階であっても論理検証を行うことが可能であるという利点を有する。【００４７】
一般に、例えばトップダウン形式の集積回路の設計を行う場合には、最初に集積回路の仕様を決定し、仕様に応じた機能を決定し、決定した機能をハードウェア記述言語によって定義した後に、定義に従って（必要に応じて設計者の手作業によって）ゲート回路を用いた論理回路の生成が行われる。このため、論理回路の生成段階においては、ハードウェア記述言語によって機能を定義したデータが既に生成されていることとなる。【００４８】
従って、本実施の形態１における思想を利用して、例えば集積回路の一部についてのみ論理回路の生成が完了しているような場合には、完了した部分については第２回路データを有する第２論理モジュールデータとすることが可能である。一方で、論理回路が未完成の部分についてはハードウェア記述言語によって機能を定義した第１回路データを有する第１論理モジュールデータとして用いることによって、一部の論理回路が生成された段階における論理検証を行うことが可能であるという利点を有する。【００４９】
（実施の形態２）
次に、実施の形態２にかかる論理検証装置について説明する。本実施の形態２にかかる論理検証装置は、デバイスデータを構成する論理モジュールデータが実施の形態１における第１回路データおよび第２回路データの双方を有し、論理検証を行う際に各論理モジュールデータにおいて第１回路データまたは第２回路データのいずれか一方を選択可能な構成とすることで、単一のデバイスデータを実施の形態１における第１デバイスデータおよび第２デバイスデータの双方として機能させる構成を有する。【００５０】
図４は、本実施の形態２にかかる論理検証装置１３の構成を示す模式的なブロック図である。なお、図４等において、実施の形態１と同一の符号を用いて示した構成要素は、以下で特に言及しない限り実施の形態１における構成要素と同様の構成・機能を有するものとする。【００５１】
図４に示すように、本実施の形態２にかかる論理検証装置１３は、実施の形態１にかかる論理検証装置１と同様に、テストベンチ３および出力部６を有する一方、選択情報（後述）を入力するための選択情報入力部１４と、入力されるデータを機械語に翻訳するコンパイル部１５と、第１回路データおよび第２回路データの双方を含む論理モジュールデータによって構成されたデバイスデータを記憶するデバイスデータ記憶部１６と、論理検証動作を行う検証実行部１７とを備える。【００５２】
コンパイル部１５は、入力されるデータ、例えばテストパターンを機械語に翻訳し、検証実行部１７に出力するためのものである。なお、コンパイル部１５の機能として、入力データをそのまま翻訳することとしてもよいが、本実施の形態２においては、デバイスデータ記憶部１６から入力されるデバイスデータに関して、選択情報入力部１４を介して入力される選択情報に基づき、必要なデータのみを翻訳する機能を有することとする。かかる機能に関しては後に詳細に説明する。【００５３】
検証実行部１７は、実施の形態１における検証実行部５と同様に、第１回路データと第２回路データとが混在した第２デバイスデータに関する検証動作を行うためのものである。具体的には、検証実行部１７は、後述するデバイスデータ１９に基づき生成される第１デバイスデータに関して第１応答結果を取得し、同じくデバイスデータ１９に基づき生成される第２デバイスデータに関して第２応答結果を取得する機能を有すると共に、第１応答結果と第２応答結果とを比較することによって、デバイスデータ１９の検証を行う機能を有する。【００５４】
次に、デバイスデータ記憶部１６に記憶されるデバイスデータのデータ構造について説明する。図５は、デバイスデータ記憶部１６に記憶されるデバイスデータ１９のデータ構造を示す概念図である。図５に示すように、デバイスデータ１９は、対応する集積回路の異なる部分における機能をそれぞれ定義した論理モジュールデータ２０ａ〜２０ｃと、論理モジュールデータ２０ａ〜２０ｃ相互間のデータ伝達関係を定義した接続データ２１とを備える。【００５５】
本実施の形態２において、論理モジュールデータ２０ａ〜２０ｃは、定義する機能は互いに異なるものの、データ構造としては共通の構成を有する。以下、論理モジュールデータ２０ａを例として、論理モジュールデータ２０ａ〜２０ｃの構成を説明する。図５にも示すように、論理モジュールデータ２０ａは、ハードウェア記述言語によって機能を定義した第１回路データ２３ａと、ゲート回路を含む論理回路によってタイミング情報を含む所定の機能を定義した第２回路データ２４ａと、選択情報に応じて第１回路データ２３ａまたは第２回路データ２４ａのいずれか一方の選択態様を定義するセレクタ回路データ２５ａとを備える。【００５６】
第１回路データ２３ａおよび第２回路データ２４ａは、それぞれ論理モジュールデータ２０ａに割り当てられた機能を定義するものであって、同一の機能を異なる態様で定義している。このことは論理モジュールデータ２０ｂ、２０ｃについても同様であって、第１回路データ２３ｂと第２回路データ２４ｂは同一機能を異なる態様で定義し、第１回路データ２３ｃと第２回路データ２４ｃも同一機能を異なる態様で定義している。【００５７】
セレクタ回路データ２５ａは、第１回路データ２３ａと第２回路データ２４ａのいずれを選択するかを定義するデータである。具体的には、セレクタ回路データ２５ａは、検証実行部１７による論理検証の際に所定の選択情報が与えられることによって、第１回路データ２３ａと第２回路データ２４ａのいずれを選択するかに関する情報を定義するデータである。【００５８】
次に、本実施の形態２にかかる論理検証装置１３の動作について説明する。図６は、本実施の形態２にかかる論理検証装置１３の動作について説明するためのフローチャートであり、以下、図６を参照しつつ説明を行う。【００５９】
まず、検証実行部１７は、デバイスデータ１９に基づき生成された、機械語に翻訳された状態の第１デバイスデータを入力し、テストベンチ３から入力されたテストパターンを用いて、入力されたテストパターンに対する第１応答結果を取得する（ステップＳ２０１）。そして、実施の形態１におけるステップＳ１０２と同様に第１応答結果と出力期待値とを比較し、テストパターン等に誤りがないことを確認した後に第１応答結果をデバイスデータ記憶部１６に記憶する（ステップＳ２０２）。【００６０】
その後、検証実行部１７は、デバイスデータ１９に基づき生成された、機械語に翻訳された状態の第２デバイスデータを入力し、第２デバイスデータに対してテストベンチ３から入力されたテストパターンを用いて、入力されたテストパターンに対する第２応答結果を取得する（ステップＳ２０３）。その後は、実施の形態１と同様に、第２応答結果と第１応答結果とを比較に基づく検証を行い（ステップＳ２０４）、テストパターンのすべてを入力したか否かの判定を行い（ステップＳ２０５）、検証結果を出力する（ステップＳ２０６）。【００６１】
上記の動作のうち、ステップＳ２０１およびステップＳ２０３における、デバイスデータ１９に基づく第１デバイスデータ及び第２デバイスデータの生成について説明する。図７は、ステップＳ２０１においてコンパイル部１５によって行われる処理について説明するための模式図である。既に述べたように、コンパイル部１５に対しては、デバイスデータ記憶部１６からデバイスデータ１９が入力されると共に、選択情報入力部１４を介して、デバイスデータ１９を構成するセレクト回路データ２５ａ〜２５ｃの選択態様に関する選択情報が入力される構成を有する。本実施の形態２におけるコンパイル部１５は、入力された選択情報に基づき、論理モジュールデータ２０ａ〜２０ｃのそれぞれについて第１回路データと第２回路データのいずれか一方を選択し、選択した回路データのみを機械語に翻訳することとしている。【００６２】
具体的には、ステップＳ２０１においては、第１回路データのみからなる第１デバイスデータが必要となるため、選択情報入力部１４を介して入力される選択情報は、論理モジュールデータ２０ａ〜２０ｃのいずれに関しても、第１回路データ２３ａ〜２３ｃを選択する旨の内容となる。従って、ステップＳ２０１において、コンパイル部１５は、論理モジュールデータ２０ａ〜２０ｃを構成するデータのうち、第１回路データ２３ａ〜２３ｃのみを選択し、論理モジュールデータ間の接続関係を記述する接続データ２１と共に機械語に翻訳することによって、機械語に翻訳された状態の第１デバイスデータを検証実行部１７に対して出力する。そのため、検証実行部１７に対しては、第２回路データ２４ａ〜２４ｃに関する情報は出力されず、ステップＳ２０２においては、実施の形態１と同様に第１回路データのみによって形成された第１デバイスデータに対してテストパターンが入力され、入力されたテストパターンは、図７に示す矢印の通りに伝送し、所定の第１応答結果が取得されることとなる。【００６３】
図８は、ステップＳ２０３においてコンパイル部１５によって行われる処理について説明するための模式図である。ステップＳ２０３における処理もステップＳ２０１と同様に行われ、具体的には、選択情報入力部１４を介して入力された選択情報に基づき機械語に翻訳する回路データを選択している。例えば、実施の形態１と同様の構造の第２デバイスデータを実現する場合には、セレクト回路データ２５ａ、２５ｂに関しては第１回路データ２３ａ、２３ｂを選択し、セレクト回路データ２５ｃに関しては第２回路データ２４ｃを選択する旨の選択情報が入力される。かかる選択情報に基づき、コンパイル部１５は、デバイスデータ１９に含まれる回路データのうち、第１回路データ２３ａ、２３ｂおよび第２回路データ２４ｃ（および接続データ２１）についてのみ機械語に翻訳し、翻訳したデータを第２デバイスデータとして検証実行部１７に対して出力する。この結果、検証実行部１７による論理検証が行われる際には、テストパターンは図８に示す矢印の通りに伝送し、所定の第２応答結果が取得されることとなる。【００６４】
次に、本実施の形態２にかかる論理検証装置１３の利点について説明する。まず、本実施の形態２にかかる論理検証装置１３は、実施の形態１と同様に、第１回路データと第２回路データとを混在させた第２デバイスデータを用いて論理検証を行うこととしたため、第２回路データのみによって形成されたデバイスデータを用いた場合と比較して、迅速に論理検証動作を行うことが可能である。【００６５】
また、本実施の形態２にかかる論理検証装置１３は、同一のデバイスデータ１９を用いて、タイミング情報を含む論理回路を用いた論理検証の他に、ハードウェア記述言語によって所定の機能を定義した第１回路データのみを用いた論理検証を行うことが可能であるという利点を有する。以下、かかる利点について説明する。【００６６】
実施の形態１でも簡単に説明したように、現実の集積回路の設計等においては、タイミング情報を含む論理回路を用いた論理検証のみを行うこととした場合、出力期待値に対して応答結果が異なる箇所が多数発生し、不良箇所の特定等が困難となる場合がある。従って、現実の集積回路の設計等では、あらかじめハードウェア記述言語によって機能を定義したデータのみによって構成されるデバイスデータを別途用意し、かかるデバイスデータを用いた論理検証を行う。そして、かかる検証によってテストパターン、出力期待値等に誤りが無いことを確認した上で、第２回路データを含むデバイスデータに関して論理検証を行うのが一般的である。【００６７】
本実施の形態２では、論理モジュールデータ２０は、ハードウェア記述言語によって機能を定義した第１回路データ２３と、第１回路データ２３が定義する機能と同一の機能を、タイミング情報を含んだ状態でゲート回路によって定義した第２回路データ２４の双方を備えている。そのため、本実施の形態２では、第２デバイスデータのみならず、かかる論理モジュールデータ２０を備えたデバイスデータ１９と、選択情報入力部１４を介して入力される選択情報を用いることにより、ハードウェア記述言語のみによって構成されたデバイスデータたる第１デバイスデータを生成することが可能となる。従って、本実施の形態２では、ハードウェア記述言語によって機能を定義した第１デバイスデータを別途用意する必要がないという利点を有する。【００６８】
単一のデバイスデータ１９を用いて第１デバイスデータおよび第２デバイスデータに関する検証を可能とすることによって、論理検証装置１３におけるデータ管理に関しても便宜を有することとなる。同一の集積回路に関してデバイスデータ記憶部１６に記憶された複数のデータを用いて論理検証を行う従来の論理検証装置と比較して、使用するデータ数を半分にすることが可能である。従って、本実施の形態２にかかる論理検証装置では、デバイスデータ記憶部１６に多数記憶されたデータの中から所定のデバイスデータを抽出する場合等に誤りが発生する確率を半分程度にすることが可能であり、データ管理上の問題・の発生を低減することが可能であるという利点を有する。【００６９】
さらに、本実施の形態２では、コンパイル部１５がデバイスデータ１９を構成する回路データのうち、論理検証に必要不可欠となる回路データのみを機械語に翻訳することとしている。すなわち、例えばステップＳ２０１では、第１回路データのみによって構成される第１デバイスデータが論理検証に必要となる。従って、ステップＳ２０１においては第２回路データ２４ａ〜２４ｃは必要なく、コンパイル部１５はこれらの回路データに関しては機械語への翻訳処理を行わないこととする。【００７０】
コンパイル部１５がかかる処理機能を有することによって、本実施の形態２にかかる論理検証装置１３は、論理検証動作に要する時間をさらに短縮化することが可能である。すなわち、集積回路の機能を記述するデバイスデータは、実際にはきわめて多数の論理モジュールデータによって構成されており、かかる多数の論理モジュールデータのそれぞれに関して第１回路データおよび第２回路データの双方を翻訳処理することとした場合には、機械語への翻訳に要する時間が長大化することとなる。従って、本実施の形態２では、デバイスデータ１９中に多数存在する回路データのうち、実際に論理検証に使用する回路データ（および接続データ）のみを機械語に翻訳することとし、かかる構成を採用することにより、翻訳処理に要する時間を短縮化し、全体として検証時間を短縮化できるという利点を有する。【００７１】
なお、本実施の形態２では、ステップＳ２０４にも示したように、第１デバイスデータと第２デバイスデータに関する第１応答結果及び第２応答結果を比較することによって検証を行うこととしている。しかしながら、比較対象をそれぞれの応答結果に限定する必要はない。例として、図９に示すように、デバイスデータ１９において、論理モジュールデータ２０ｂおよび論理モジュールデータ２０ｃにおいて第２回路データ２４ｂ、２４ｃを選択することによって第２デバイスデータが生成された場合を考える（第１デバイスデータに関しては、第１回路データ２３ａ〜２３ｃが選択されることとする）。【００７２】
かかる場合には、図９にも示すように、第１応答結果と第２応答結果とを比較するのみならず、第１デバイスデータの論理検証の際における第１回路データ２３ｂの出力結果（第１出力結果）と、第２デバイスデータの論理検証の際における第２回路データ２４ｂの出力結果（第２出力結果）を比較することが好ましい。すなわち、応答結果の比較において望ましい検証結果が得られない場合には、第２回路データ２４ｂ、２４ｃのいずれに不備があったのかを特定するのは容易ではない。一方で、第１回路データ２３ｂおよび第２回路データ２４ｂの出力結果をさらに比較し、かかる比較の結果に関して望ましい結果が得られない場合には、不備を有する回路データは、第２回路データ２４ｃではなく第２回路データ２４ｂであることを容易に特定することが可能である。【００７３】
また、本実施の形態２において、機能に応じて論理モジュールデータ２０をあらかじめ準備しておき、あらかじめ準備した論理モジュールデータ２０を用いてデバイスデータを生成することも有効である。すなわち、タイミング情報に関して緻密に制御した処理が行われる論理モジュールデータの生成は、設計者の手作業による設計によって行われるのが通常であり、集積回路の設計上、多大な負荷となっていた。【００７４】
一方で、かかる論理モジュールデータについては、集積回路の機能によっては、過去に生成した論理モジュールデータを流用することが可能である。このように、既に生成した論理モジュールデータをあらかじめストックしておくことにより、新たな集積回路の設計等の際に設計者の負担を軽減できるという利点を有することとなる。【００７５】
（実施の形態３）
次に、実施の形態３にかかる論理検証装置について説明する。本実施の形態３にかかる論理検証装置は、デバイスデータは実施の形態２と同様のものを用いる一方で、テストベンチに記憶されるテストパターンのデータ構造を工夫することによって、選択情報入力部を省略した構成を有する。【００７６】
図１０は、本実施の形態３にかかる論理検証装置２７の全体構成を示す模式的なブロック図である。なお、図１０において実施の形態１、２と同一の符号にて示した構成要素は、以下で特に言及しない限り実施の形態１、２と同様の構成および機能を有することとする。【００７７】
図１０に示すように、本実施の形態３にかかる論理検証装置２７は、実施の形態２にかかる論理検証装置１３と同様に検証実行部１７、デバイスデータ記憶部１６および出力部６を備える一方、新たにテストベンチ２８を備えた構成を有する。具体的には、本実施の形態３にかかる論理検証装置２７は、実施の形態２と同様のデバイスデータを記憶するデバイスデータ記憶部１６を備える一方、実施の形態２におけるテストベンチ３と異なるテストパターンを記憶するテストベンチ２８を新たに備えることによって、選択情報入力部を省略した構成を採用している。なお、テストベンチ２８に別途記憶される出力期待値に関しては、実施の形態１、２と同様のデータを用いることとする。【００７８】
図１１は、テストベンチ２８に記憶されるテストパターン２９のデータ構造について模式的に示す概念図である。図１１に示すように、テストパターン２９は、実施の形態１、２におけるテストパターンに相当するテストパターン部２９ａに加え、新たに選択情報の内容を定義した選択情報部２９ｂを備えた構成を有する。かかる構成を採用することで、コンパイル部１５は、論理検証を行う際にテストベンチ２８に記憶されたテストパターン２９を読み込むことによって、デバイスデータ１９に備わる論理モジュールデータ２０が有するセレクタ回路データ２５の選択態様を指定し、必要な回路データのみを機械語に翻訳することが可能となる。【００７９】
図１１に示すテストパターン２９を用いて論理検証を行う構成を採用することによって、論理検証装置において選択情報入力部を省略することが可能であり、ハードウェア構成としては従来の論理検証装置をそのまま用いることができるという利点を有する。また、選択情報部２９ｂをあらかじめテストパターン２９に含めておくことにより、論理検証装置の使用時にユーザが選択情報の指定を行う必要が無く、迅速な検証を行うことが可能であるという利点を有する。
【図１】
2006025412.tif 000002
【図２】
2006025412.tif 000003
【図３】
2006025412.tif 000004
【図４】
2006025412.tif 000005
【図５】
2006025412.tif 000006
【図６】
2006025412.tif 000007
【図７】
2006025412.tif 000008
【図８】
2006025412.tif 000009
【図９】
2006025412.tif 000010
【図１０】
2006025412.tif 000011
【図１１】
2006025412.tif 000012
【国際調査報告】
2006025412.tif 000013
2006025412.tif 000014
2006025412.tif 000015