(57)【要約】【課題】エミュレーション装置を使った回路検証時の検証網羅率を抽出するための検証網羅性抽出回路の提供。【解決手段】ステートマシン１０１の現在のサイクルの状態１０２と次のサイクルの状態１０３をデータ結合回路１０４によって１つのデータに結合し、エンコーダ回路１０５によって状態遷移を表現するために最小限必要なデータ幅に圧縮し、エンコーダ回路１０５の出力をアドレスとして、メモリ１０６に状態遷移情報を保存し、検証対象回路２０３の機能検証時の検証網羅性情報を抽出する。【選択図】図１
2007310801.tif 000002
【特許請求の範囲】
【請求項１】
検証対象回路の検証時に、前記検証対象回路のステートマシンの現在のサイクルの状態値と次のサイクルの状態値を受け取り、前記ステートマシンの現在のサイクルの状態値と次のサイクルの状態値の対のビットデータ、又は、前記ビットデータから導出されたデータをアドレス情報として、予め定められた論理値を、メモリに書き込む手段を備え、
前記メモリには、前記検証対象回路の状態遷移情報が保存され、前記検証対象回路の検証時の検証網羅性情報を抽出自在としてなる、ことを特徴とする検証網羅性抽出回路。
【請求項２】
前記ステートマシンの現在のサイクルの状態値と次のサイクルの状態値の対のビットデータを結合するデータ結合回路と、
前記データ結合回路から出力される結合後のデータを入力とし、前記検証対象回路の動作仕様に従って、状態遷移が可能な情報を表現するために必要最小限なビット幅に圧縮して前記メモリにアドレス情報として出力するエンコーダ回路と、
を備えている、ことを特徴とする請求項１に記載の検証網羅性抽出回路。
【請求項３】
請求項１又は２記載の検証網羅性抽出回路において、
前記検証対象回路と前記検証網羅性抽出回路とが、エミュレーション装置を構成してなる、ことを特徴とする検証網羅性抽出回路。
【請求項４】
請求項１又は２記載の検証網羅性抽出回路を備えた半導体装置。
【請求項５】
評価基板上に配置される電気的に再設計可能な半導体装置の内部に配置される検証対象回路のステートマシンの現在のサイクルの状態と次のサイクルの状態を受け、前記ステートマシンの現在のサイクルの状態値と次のサイクルの状態値を結合して出力するデータ結合回路と、
前記データ結合回路から出力される結合後データをエンコードし、エンコードされたデータを出力するエンコーダ回路と、
前記エンコーダ回路でエンコードされたデータをアドレスとして、第１の論理値を保持するメモリと、
を備えている、ことを特徴とする検証網羅性抽出回路。
【請求項６】
前記検証対象回路は、前記ステートマシンを含む制御部と、前記制御部からの制御信号を受けるデータパス部を備え、前記ステートマシンの現在のサイクルの状態と次のサイクルの状態を出力する、ことを特徴とする請求項５に記載の検証網羅性抽出回路。
【請求項７】
前記データ結合回路は、前記ステートマシン内部で保持する現在のサイクルの状態と次のサイクルの状態を結合し１つのデータ表現として出力する組み合わせ回路を含む、ことを特徴とする請求項５に記載の検証網羅性抽出回路。
【請求項８】
前記エンコーダ回路は、前記データ結合回路から出力される結合後のデータを入力とし、検証対象回路の動作仕様に従って状態遷移が可能な情報を表現するために必要最小限なビット幅に圧縮する、ことを特徴とする請求項５に記載の検証網羅性抽出回路。
【請求項９】
前記メモリは、
前記エンコーダ回路から出力されるデータをアドレスとして入力し、
ライトデータには、第１の論理値に対応するレベルの信号を入力し、
前記検証対象回路と連動して駆動され、
ライトイネーブル信号は、前記検証網羅性抽出回路を含むエミュレーション装置に接続されるホストコンピュータから入力し、
前記メモリからのリードデータは、前記ホストコンピュータに転送される、ことを特徴とする請求項５に記載の検証網羅性抽出回路。
【請求項１０】
前記メモリは、リセット時、第２の論理値に書き込まれる、ことを特徴とする請求項５に記載の検証網羅性抽出回路。
【請求項１１】
検証対象回路と請求項５に記載の検証網羅性抽出回路とを再構成可能な半導体装置に搭載してなるエミュレーション装置と、前記エミュレーション装置に接続するホストコンピュータを備えたエミュレーションシステム。
【請求項１２】
検証対象回路の検証時に、前記検証対象回路のステートマシンの現在のサイクルの状態値と次のサイクルの状態値を受け取り、前記ステートマシンの現在のサイクルの状態値と次のサイクルの状態値の対のビットデータ、又は、前記ビットデータから導出されたデータをアドレス情報として、予め定められた論理値を、メモリに書き込み、
前記メモリには、前記検証対象回路の状態遷移情報が保存され、
前記検証対象回路の検証時の検証網羅性情報を抽出自在としてなる、ことを特徴とする検証網羅性抽出方法。
【請求項１３】
検証対象回路のステートマシンの現在のサイクルの状態値と次のサイクルの状態値の組を１つのデータに結合する工程と、
前記結合されたデータ、又は、前記データのビット数を圧縮したデータをアドレス情報として、メモリに第１の論理値を書き込み、前記検証対象回路の状態遷移情報を保存する工程と、
を含み、前記検証対象回路の検証時の検証網羅性情報を抽出自在としてなる、ことを特徴とする検証網羅性抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の検証技術に関し、特に、半導体装置内部に配置される回路の検証対象回路の機能検証網羅性を抽出する回路及び方法並びにエミュレーションシステムに関する。
【背景技術】
【０００２】
近年、半導体技術の向上により、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）に搭載可能なゲート規模が大きくなり、多機能かつ高機能の半導体集積回路が１チップで実現可能になっている。
【０００３】
多機能かつ高機能の回路を１チップで実現する場合、機能検証が非常に重要になる。これは、機能検証が十分でなく、システムＬＳＩ試作後に機能不具合が見つかった場合、修正を行うために高額な費用が必要となるためである。システムＬＳＩの不具合を未然に防ぐために、必要な半導体集積回路の動作検証を行うために必要なテストパターンを多く準備してＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）シミュレーションを行うが、回路規模の増大により、使用したテストパターンが半導体集積回路に存在する不良動作箇所をどれだけ検出できているのかを判断することは困難となってきた。
【０００４】
この問題を解決するために、ＨＤＬシミュレーションの実行時にカバレッジを算出し、使用したテストパターンにより、半導体集積回路をどの程度動作しているのかを評価し、所定のカバッレッジを達成するためのシミュレーション技術が提案されている（特許文献１参照）。
【０００５】
一方、ＨＤＬシミュレータは、実行速度が遅く、近年の音声処理集積回路や画像処理集積回路のように、膨大な情報を処理する場合には、製品開発までの決められた期間内に十分な検証を行うことができない、という問題がある。かかる問題に対処すべく、ＨＤＬシミュレータよりも高速実行を可能にするため、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の電気的に再設計可能なＬＳＩを用いたプロトタイプボードを用いてシステムＬＳＩの動作をエミュレーションする検証が行われるようになってきた。
【０００６】
エミュレーションシステムの典型的な構成について説明をしておく。図２は、エミュレーションシステム全体を示すシステム構成図である。エミュレーション装置２００は、ＦＰＧＡ２０２を有しており、ホストコンピュータ２０１と接続される。このＦＰＧＡ２０２は、外部のプログラムによって内部に様々な回路を実現できる。
【０００７】
エミュレーションを行う場合、ＦＰＧＡ２０２に検証対象回路２０３を実装し、ホストコンピュータ２０１からテストパターン２０４を検証対象回路２０３に対して与えて動作させ、その結果を、検証結果２０５をホストコンピュータ２０１上に受け取り、回路が正しい動作をしたか否かの判定を行う。
【０００８】
しかしながら、プロトタイプボードを用いたエミュレーションは、ＨＤＬシミュレータと同様の検証対象回路のうち半導体集積回路のカバレッジ算出を行うことは困難である。
【０００９】
半導体集積回路の動作内容を知るための技術として、例えば特許文献２には、状態遷移制御機構による状態遷移を容易に評価、解析できることができるようにした半導体装置が提案されている。この特許文献２には、状態コードを保持する状態コードレジスタと、状態コードと所望の状態を指示するコマンドが入力され、次に遷移すべき内部状態の状態コードを決定し、決定した状態コードを、状態コードレジスタに設定する状態遷移ロジック手段と、検出したい状態コードを期待値として保持する期待値レジスタと、状態コードレジスタの状態コードと期待値レジスタの期待値を比較し一致したとき一致信号を出力する比較手段を備えた半導体装置が開示されているものの、回路検証網羅性の抽出については開示も示唆もされていない。
【００１０】
【特許文献１】特開２００４−５４５４９号公報
【特許文献２】特開２００４−２３４７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記特許文献１に開示された技術は、あくまでシミュレーションを前提としたものであって、エミュレーション装置では利用することができない。すなわち、ＨＤＬシミュレータでは、検証対象回路は、ＨＤＬシミュレータ上で全て管理され、検証対象回路の動作は、全てＨＤＬシミュレータ上で管理されている。そのため、テストパターンを実行した際には、回路動作箇所を、全てＨＤＬシミュレータ内部で管理することができるため、カバレッジを容易に抽出可能であるのに対して、エミュレーション装置での回路実行では、回路の動作内容を、ホストコンピュータ上で全て管理することができない。
【００１２】
エミュレーション装置においては、検証対象は、全てチップ上で動作しているため、ホストコンピュータからは、回路の動作内容を知ることができない。
【００１３】
このため、検証対象回路に対して、検証網羅性を抽出するための追加回路を組み込むことが必要となる。
【００１４】
また、上記特許文献２では、期待する状態遷移に対する期待値判定を目的とし、状態遷移に対する期待値判定を行った場合、希望する状態遷移を行ったかどうかを知ることができるが、テストパターンにより回路内部のどれだけの機能を実行できたのかを知ることができない。
【００１５】
回路の検証網羅性を知るためには、回路内部の動作内容を全てホストコンピュータ上から観測する必要がある。
【００１６】
しかしながら、エミュレーション装置の回路実装可能な資源は有限であること、及び、ホストコンピュータとのデータ通信が膨大になってしまいエミュレーション装置を使うことの利点である高速検証ができなくなるため、現実的な実現手段ではない。そのため、検証網羅性を抽出するための追加回路を必要最低限に抑えつつ、ホストコンピュータとのデータ通信による検証速度の低化を克服可能とする、仕組みが必要とされている。
【００１７】
すなわち、エミュレーション装置における回路検証において、より少ない追加回路で済み、エミュレーション装置の検証速度を落とすことなく、検証網羅性の情報を抽出する回路の実現が望まれる。
【課題を解決するための手段】
【００１８】
本願で開示される発明は、前記課題を解決するため、概略以下の構成とされる。
【００１９】
本発明の１つのアスペクト（側面）に係る検証網羅性抽出回路は、検証対象回路の機能検証時に、前記検証対象回路のステートマシンの現在のサイクルの状態値と次のサイクルの状態値を受け取り、前記ステートマシンの現在のサイクルの状態値と次のサイクルの状態値の対のビットデータ、又は、前記ビットデータから導出されたデータをアドレス情報として、予め定められた論理値を、メモリに書き込む手段を備え、前記メモリには、前記検証対象回路の状態遷移情報が保存され、前記検証対象回路の機能検証時の検証網羅性情報を抽出自在としてなる、ことを特徴とする。
【００２０】
本発明においては、前記ステートマシンの現在のサイクルの状態値と次のサイクルの状態値の対のビットデータを結合するデータ結合回路と、前記データ結合回路から出力される結合後のデータを入力とし、前記検証対象回路の動作仕様に従って、状態遷移が可能な情報を表現するために必要最小限なビット幅に圧縮して前記メモリにアドレス情報として出力するエンコーダ回路と、を備えた構成としてもよい。
【００２１】
本発明においては、前記検証対象回路と前記検証網羅性抽出回路とが、エミュレーション装置を構成している。
【００２２】
本発明の他のアスペクト（側面）に係る検証網羅性抽出回路は、評価基板上に配置される電気的に再設計可能な半導体装置の内部に配置される検証対象回路内部のステートマシンの現在のサイクルの状態と次のサイクルの状態を結合して出力するデータ結合回路と、前記データ結合回路から出力される結合後データをエンコードし、エンコードされたデータを出力するエンコーダ回路と、前記エンコーダ回路でエンコードされたデータをアドレスとして、第１の論理値を保持するメモリと、を備えている。
【００２３】
本発明において、前記検証対象回路は、前記ステートマシンを含む制御部と、前記制御部からの制御信号を受けるデータパス部を備えている。
【００２４】
本発明において、前記データ結合回路は、前記ステートマシン内部で保持する現在のサイクルの状態と次のサイクルの状態を結合し１つのデータ表現として出力する組み合わせ回路を含む。
【００２５】
本発明において、前記エンコーダ回路は、好ましくは、前記データ結合回路から出力される結合後のデータを入力とし、検証対象回路の動作仕様に従って状態遷移が可能な情報を表現するために必要最小限なビット幅に圧縮する構成とされる。
【００２６】
本発明において、前記メモリは、前記エンコーダ回路から出力されるデータをアドレスとして入力し、ライトデータには、第１の論理値に対応するレベルの信号を入力し、前記検証対象回路と同期して駆動され、ライトイネーブル信号は、前記検証網羅性抽出回路を含むエミュレーション装置に接続されるホストコンピュータから入力し、前記メモリからのリードデータは、前記ホストコンピュータに転送される。
【００２７】
本発明において、前記メモリは、リセット時、第２の論理値に書き込まれる。
【００２８】
本発明によれば、検証対象回路と検証網羅性抽出回路とを再構成可能な半導体装置に搭載してなるエミュレーション装置と、前記エミュレーション装置に接続するホストコンピュータを備えたエミュレーションシステムが提供される。
【００２９】
本発明の他のアスペクト（側面）に係る方法は、検証対象回路の機能検証時に、前記検証対象回路のステートマシンの現在のサイクルの状態値と次のサイクルの状態値を受け取り、前記ステートマシンの現在のサイクルの状態値と次のサイクルの状態値の対のビットデータ、又は、前記ビットデータから導出されたデータをアドレス情報として、予め定められた論理値を、メモリに書き込み、
前記メモリには、前記検証対象回路の状態遷移情報が保存され、
前記検証対象回路の機能検証時の機能検証網羅性情報を抽出自在としてなる、ことを特徴とする。
【００３０】
本発明に係る方法においては、検証対象回路のステートマシンの現在のサイクルの状態値と次のサイクルの状態値の組を１つのデータに結合する工程と、
前記結合されたデータ、又は、前記データのビット数を圧縮したデータをアドレス情報として、メモリに第１の論理値を書き込み、前記検証対象回路の状態遷移情報を保存する工程と、を含む。
【発明の効果】
【００３１】
本発明によれば、検証網羅性抽出回路を検証対象回路に付加させることで、検証終了時のステートマシンの状態遷移情報を得ることができる。このため、エミュレーション装置による回路動作検証において、回路検証時の検証網羅性を計測することができる。
【００３２】
また、本発明によれば、検証対象回路の状態遷移情報を、検証網羅性抽出回路内のメモリに保存することで、検証時のホストコンピュータとの通信量を削減し、機能検証時間を短縮することができる。
【００３３】
また、本発明によれば、回路検証時間を短縮することができる。その理由は、本発明においては、使用するテストパターンの検証網羅性を知ることができるため、テストパターンを選択することが可能となり、動作が重なるテストパターンを削除することができるためである。結果的に、全体の回路検証時間が短縮する。
【００３４】
このように、本発明によれば、エミュレーション装置における回路検証において、より少ない追加回路で済み、エミュレーション装置の検証速度を落とすことなく、検証網羅性の情報を抽出することができる。
【発明を実施するための最良の形態】
【００３５】
上記した本発明についてさらに詳細に説述すべく、添付図面を参照して以下に説明する。本発明に係る検証網羅性抽出回路は、機能検証時の機能検証網羅性情報を抽出する回路であり、図２を参照して説明した、エミュレーションシステムに適用される。すなわち、本発明に係る検証網羅性抽出回路（「機能検証網羅性抽出回路」ともいう）は、エミュレーション装置（２００）のＦＰＧＡ（２０２）の検証対象回路（２０３）に付加される。
【００３６】
本発明において、検証対象回路（２０３）に付加される検証網羅性抽出回路（１００）は、図１を参照すると、検証対象回路（２０３）内部のステートマシン（１０１）からの現在サイクルの状態の状態値（１０２）と、次サイクルに遷移する状態値（１０３）の２種類の状態値を結合するデータ結合回路（１０４）と、データ結合回路（１０４）による結合後のデータを受け、回路情報をもとに必要なデータ幅に縮小させるためのエンコーダ回路（１０５）と、エンコーダ回路から出力されるデータ信号をアドレス信号として入力し、検証対象回路（２０３）を動作させるためのクロック信号に同期して１ビット信号を書き込む状態遷移情報保存用のメモリ（１０６）を有する。本発明によれば、エミュレーション装置を用いた回路動作検証時においても、検証速度を落とすことなく、状態値を結合する回路、及び、状態遷移保持メモリを有することで、回路検証時の回路の状態遷移情報を抽出することができる。これによって、用いたテストパターンが、回路のどの状態を動作させたかを知ることができ、回路の品質を示す情報を得ることが可能となる。
【００３７】
また、本発明においては、エンコーダ回路（１０５）を有することによって、エミュレーション装置における回路実装のための限られた資源をより少なくすることが可能となる。以下実施例に即して説明する。
【実施例】
【００３８】
図１は、本発明の第１の実施例に係るエミュレーション装置の構成を示す図である。図１を参照すると、エミュレーション装置のＦＰＧＡ２０２は、検証対象回路２０３と、検証網羅性抽出回路１００（「機能検証網羅性抽出回路」ともいう）とを備えている。図２のエミュレーションシステムの検証結果２０５では、回路全体の検証網羅性は分からない。そこで、本発明では、検証網羅性抽出回路１００を、検証対象回路２０３に付加した。
【００３９】
検証対象回路２０３は、内部にステートマシン１０１を備えている。
【００４０】
検証網羅性抽出回路１００は、データ結合回路１０４、エンコーダ回路１０５、メモリ１０６を備えている。
【００４１】
検証対象回路２０３内部のステートマシン１０１の現在のサイクルの状態１０２及び次のサイクルの状態１０３の情報を検証対象回路２０３の外部に引き出し、これら２つの状態を、検証網羅性抽出回路１００のデータ結合回路１０４で、１つのデータにまとめる。なお、１対の状態１０２、１０３は、供給されるテストパターンにしたがって動作する検証対象回路２０３のステートマシン１０１の状態遷移図に基づき、同一の状態であるか、又は、状態１０２から１０３へ遷移する。
【００４２】
データ結合回路１０４で生成されたデータをエンコーダ回路１０５を用いて、必要最低限のビット数で、ユニークな値を表現できるよう圧縮を行う。
【００４３】
エンコーダ回路１０５から出力されるデータをアドレス情報として、メモリ１０６に第１の論理値（値１）を書き込む回路を構成する。
【００４４】
メモリ１０６は、検証対象回路２０３と同様のクロックによって動作する。
【００４５】
ここで、検証対象回路２０３の回路構成及びステートマシンに関して、図３を参照にして詳細に説明する。
【００４６】
図３に示すように、検証対象回路２０３は、一般に、制御部３００とデータパス部３０１の２つから構成される。
【００４７】
制御部３００は、ステートマシン１０１から構成される。ステートマシン１０１は、回路動作中、現在のサイクルの状態１０２と次のサイクルの状態１０３の値を保持する。
【００４８】
次のサイクルの状態１０３は、制御部３００に入力される信号により決定される。
【００４９】
データパス部３０１は、制御部３００の現在のサイクルの状態１０２に応じて決定された制御信号を受け、組み合わせ回路３０２内部の動作を決定し出力信号を決定する。
【００５０】
次に、図１に示した、ステートマシン１０１が保持する現在のサイクルの状態１０２と次のサイクルの状態１０３の値を結合する、データ結合回路１０４について、図４を参照にして詳細に説明する。
【００５１】
データ結合回路１０４は、現在のサイクルの状態１０２と次のサイクルの状態１０３を結合して、１つのデータバスにパラレルに出力し、エンコーダ回路１０５に供給する。
【００５２】
データ結合回路１０４から出力されたデータ（ビットデータ）、及び、回路仕様に基づいた状態遷移情報を基に、エンコーダ回路１０５の回路仕様が決定される。
【００５３】
エンコーダ回路１０５は、データ結合回路１０４によって確保されたバス幅から、より少ないビット幅で状態遷移情報を表現するデータに圧縮し、検証網羅性情報を保存するメモリ１０６の容量を少なくするために使用する。
【００５４】
エンコーダ回路１０５のデータ幅圧縮に関して図５を参照して詳細に説明する。図５（Ａ）は状態遷移図、図５（Ｂ）は、状態遷移の一覧で示した表である。
【００５５】
図５では、ステートマシン１０１の状態遷移が、状態Ａ、状態Ｂ、状態Ｃ、状態Ｄの４状態を表現するものとする。
【００５６】
次に、図５（Ｂ）の状態遷移表４００について説明する。
【００５７】
ステートマシン１０１から出力されるサイクルの状態について、状態Ａはハードウェアとして２進数００（２’ｂ００）、状態Ｂはハードウェアとして２進数０１（２’ｂ０１）、状態Ｃはハードウェアとして２進数１０（２’ｂ１０）、状態Ｄはハードウェアとして２進数１１（２’ｂ１１）として表現されているものとする。
【００５８】
現在のサイクルの状態１０２と次のサイクルの状態１０３の遷移情報、及び、データ結合回路１０４により結合された後の値、エンコーダ回路１０５により回路仕様上、遷移する可能性がある遷移状態のみを表現できるデータ幅に圧縮した後のデータをまとめている。図５（Ｂ）の状態遷移表においては、現在のサイクルの状態が状態Ａ（２進数００）であり、次のサイクルの状態が状態Ｂ（２進数０１）であった場合、データ結合回路１０４での結合後のデータは、４ビット２進数０００１（４’ｂ０００１）としてデータが表現される。
【００５９】
回路の動作仕様上、回路の状態遷移は、
（ａ）状態Ａから状態Ａ、
（ｂ）状態Ａから状態Ｂ、
（ｃ）状態Ｂから状態Ａ、
（ｄ）状態Ｂから状態Ｃ、
（ｅ）状態Ｃから状態Ｄ、
（ｆ）状態Ｄから状態Ａ、
（ｇ）状態Ｄから状態Ｂ、
（ｈ）状態Ｄから状態Ｄ
の８つの状態遷移が起こり得ることから、各状態遷移を、３ビットのハードウェアで表現することが可能となる。
【００６０】
各状態遷移に、ユニークな値を割り当て、データ結合回路１０４で結合後のデータから、ユニークな値に変換するエンコーダ回路１０５を実現する。
【００６１】
すなわち、図５（Ａ）の状態遷移のステートマシン１０１においては、図５（Ｂ）の状態遷移表４００において、番号１〜１６の１６通りの状態遷移の中で、実際にあり得る状態遷移は、番号１、２、５、７、１２、１３、１４、１６の８通りであり、それ以外の遷移はあり得ない。
【００６２】
従って、この８通りの「現在のサイクルの状態１０２」２ビットと、「次のサイクルの状態１０３」２ビットの組み合わせ合計４ビット(データ結合回路１０４のビット数)を３ビットに圧縮するエンコーダ回路１０５を設けることにより、ビット数を圧縮できる。
【００６３】
次に、検証網羅性結果を保存するメモリ１０６に関して、図６を参照して詳細に説明する。メモリ１０６は、一般的なＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と同様のメモリ構成となり、検証開始時は、全てのメモリ内部の値を０にする。
【００６４】
メモリ１０６へは、検証対象回路２０３へ供給されるクロック信号と同一のクロックが供給され、メモリ１０６のライトデータには、常に１が入力され、そのアドレスには、エンコーダ回路１０５から出力される信号が入力され、メモリ１０６の書き込みを制御するライトイネーブル信号は、ホストコンピュータ（図２の２０１参照）から接続される信号で制御される構成である。
【００６５】
かかる回路構成により、エンコーダ回路１０５から出力される値により、メモリ１０６に書き込まれるアドレスが指定され、そのアドレスにデータ１が書き込まれる。
【００６６】
１が書き込まれたアドレスが、検証対象回路２０３の機能検証時に、状態遷移が移動したことを示す。
【００６７】
検証終了後に、メモリ１０６の値をホストコンピュータ（図２の２０１）上で確認することで、検証時に、移動した状態遷移を知ることができる。
【００６８】
次に、図７のタイミングチャートを参照して、検証網羅性抽出回路１００の動作を説明する。図７は、クロック信号に同期して動作する検証対象回路のステートマシン部の現在のサイクルの状態、ステートマシン部の次のサイクルの状態、データ結合後の値、エンコーダ後の値、メモリの値を示し、回路の動作に関しては、図５（Ｂ）の状態遷移表４００を例に示す。
【００６９】
サイクルＴ１（５００）においては、現在のサイクルの状態が状態Ａで次のサイクルの状態が状態Ａであることを示し、現在のサイクルの状態である状態Ａと次のサイクルの状態である状態Ａがデータ結合回路１０４により、１つのデータとして結合され、エンコーダ回路１０５によりエンコードされたデータが３’ｂ０００として表現されたことを示す。メモリ１０６の内容はサイクルＴ１においては全て０となる。
【００７０】
サイクルＴ２（５０１）においては、サイクルＴ１（５００）の次のサイクルの状態である状態ＡがサイクルＴ２（５０１）の現在のサイクルの状態となり、次のサイクルの状態が新規に決定される。データ結合回路１０４による結合後のデータ及びエンコード処理後のデータの生成は、サイクルＴ１（５００）と同様である。
【００７１】
サイクルＴ２において、サイクルＴ１（５００）のエンコード処理後のデータをアドレスとして、メモリの２進数０００番地に１を書き込む。この値は、メモリ１０６のクリアがされるまで保持し続ける。
【００７２】
サイクルＴ３（５０２）〜Ｔ９（５０８）まで実行後にメモリの値はエンコード処理の値が示したアドレスに１が書き込まれており、エンコード処理後の値が示していないアドレスには０が書き込まれている。
【００７３】
図７では、サイクルＴ９（５０８）まで進んだ場合、８つの状態遷移中６状態を遷移したことがメモリの内容で知ることができ、２状態が遷移していないことが分かる。
【００７４】
次に図８のフローチャートを用いて、検証網羅性検証フローについて説明する。図８は、検証開始から検証終了までの処理フローを示す。
【００７５】
検証対象回路２０３のリセット処理を行い、回路内部を検証開始状態とし、内部のステートマシン１０１の状態遷移をリセットする（ステップ６００）。
【００７６】
検証網羅性抽出回路１００のメモリ１０６の内容をクリアし、ステートマシン１０１の状態遷移情報を受け取る準備を行う（ステップ６０１）。
【００７７】
次に検証対象回路２０３の機能検証を行うためのテストパターンを準備する（ステップ６０２）。
【００７８】
そして検証動作を開始し（ステップ６０３）、その後、検証を終了する（ステップ６０５）。この間に、検証網羅性抽出回路１００は、ステートマシン１０１の状態遷移情報を観測・保存する（ステップ６０４）。
【００７９】
検証終了後の検証網羅性抽出回路１００のメモリ１０６の内容をホストコンピュータ（図２の２０１）上に読み込む（ステップ６０６）。
【００８０】
読み込んだデータから期待する検証網羅性を満たしているか否かを判断する（ステップ６０７)。
【００８１】
ステップ６０７の判定の結果、検証網羅性を満たしていた場合には（ステップ６０７のＹＥＳ分岐）、検証網羅性処理を終了するが、満たしていない場合には（ステップ６０７のＮＯ分岐）、新しいテストパターンを使用し再度機能検証を行う。再機能検証を行う場合、メモリ１０６の内容をクリアするか否かを判断し（ステップ６０８）、メモリ１０６の内容をクリアする場合には（ステップ６０８のＹＥＳ分岐）、検証網羅性抽出回路１００のメモリ１０６内容のクリア処理（ステップ６０１）から再度実行する。一方、メモリ１０６の内容をクリアしない場合には（ステップ６０８のＮＯ分岐）、テストパターンを選択し（ステップ６０２）、再度実行する。
【００８２】
本実施例の作用効果について説明する。
【００８３】
エミュレーション装置において、回路の機能検証を行う場合、検証網羅性抽出回路を、検証対象回路に付加させることで、回路内部のステートマシンの状態情報を抽出することができる。
【００８４】
検証網羅性抽出回路を半導体装置の内部に配置したため、機能検証の速度低下なしに機能検証網羅性を抽出することができる。
【００８５】
使用するテストパターン毎の回路内部のステートマシンの内部動作内容を知ることができるため、目的とする検証網羅率を達成するために必要なテストパターンを選択することができ、全体の検証時間を短くすることができる。
【００８６】
使用したテストパターンで網羅できない状態遷移を知ることができるため、回路動作の品質を向上させることができる。
【００８７】
なお、上記実施例では、検証網羅性抽出回路をＦＰＧＡ内に備えた構成を例に説明したが、本発明はかかる構成に限定されるものでなく、検証網羅性抽出回路を、最終製品の半導体集積回路（ＬＳＩ）内部に備えた構成としてもよい。また、上記実施例では、データ結合回路１０４の出力ビットデータ（４ビット幅）を、エンコーダ回路１０５で、３ビットに圧縮して、メモリ１０６のアドレス信号とする例を説明したが、本発明はかかる構成に制限されるものでないことは勿論である。メモリ容量の有効利用を特に図る必要がない場合等には、例えばデータ結合回路１０４の出力ビットデータ（４ビット幅）をそのままアドレス信号として用いる構成としてもよい。また、検証対象回路２０３側から出力される現在のサイクルの状態１０２と次のサイクルの状態１０３の信号出力は、図１では、パラレル出力とされるが、本発明はかかる構成に限定されるものでない。
【００８８】
以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００８９】
【図１】本発明の一実施例の構成を示す図である。
【図２】エミュレーション装置を用いた回路検証のシステム構成を示す図である。
【図３】本発明の一実施例における検証対象回路２０３の内部構成を示した図である。
【図４】本発明の一実施例のデータ結合回路の入力データ、出力データの接続関係を示す図である。
【図５】（Ａ）、（Ｂ）は本発明の一実施例における、状態遷移図及び状態遷移表の例である。
【図６】本発明の一実施例におけるメモリの接続関係を示す図である。
【図７】本発明の一実施例における検証網羅性抽出動作を説明するタイミングチャートである。
【図８】本発明の一実施例における検証網羅性抽出処理を示す流れ図である。
【符号の説明】
【００９０】
１００  検証網羅性抽出回路（機能検証網羅性抽出回路）
１０１  ステートマシン
１０２  現在のサイクルの状態
１０３  次のサイクルの状態
１０４  データ結合回路
１０５  エンコーダ回路
１０６  メモリ
２００  エミュレーション装置
２０１  ホストコンピュータ
２０２  ＦＰＧＡ
２０３  検証対象回路
２０４  テストパターン
２０５  検証結果
３００  制御部
３０１  データパス部
３０２  組み合わせ回路
４００  状態遷移表
５００〜５０８  サイクル
【図１】
2007310801.tif 000003
【図２】
2007310801.tif 000004
【図３】
2007310801.tif 000005
【図４】
2007310801.tif 000006
【図５】
2007310801.tif 000007
【図６】
2007310801.tif 000008
【図７】
2007310801.tif 000009
【図８】
2007310801.tif 000010