(57)【要約】【課題】圧縮後のデータの記憶容量を削減すること。【解決手段】本発明にかかる論理回路検証装置は、検証対象の論理回路を動作させるクロックよりも遅い所定のクロックの周期ごとに、当該論理回路についての検証対象信号の遷移が１回以上あった場合には、当該検証対象信号に遷移があったことを示す第１信号を出力し、当該遷移がなかった場合には、当該検証対象信号に遷移がなかったことを示す第２信号を出力する信号圧縮部を備える。【選択図】図１
2013164709.tif 000002
【特許請求の範囲】
【請求項１】
検証対象の論理回路を動作させるクロックよりも遅い所定のクロックの周期ごとに、当該論理回路についての検証対象信号の遷移が１回以上あった場合には、当該検証対象信号に遷移があったことを示す第１信号を出力し、当該遷移がなかった場合には、当該検証対象信号に遷移がなかったことを示す第２信号を出力する信号圧縮部
を備える論理回路検証装置。
【請求項２】
前記信号圧縮部は、
前記所定のクロックの周期に基づく第１の期間で前記検証対象信号の遷移が１回以上あった場合に、当該第１の期間の直前である第２の期間において出力された信号を反転させて前記第１信号として出力する
請求項１に記載の論理回路検証装置。
【請求項３】
前記信号圧縮部は、
前記検証対象信号の立ち上がり又は立ち下がりの少なくともいずれかが検出された場合に、前記第１信号を出力し、前記検証対象信号の立ち上がり又は立ち下がりのいずれも検出されなかった場合に前記第２信号を出力する信号遷移検出部
を有する請求項１又は２に記載の論理回路検証装置。
【請求項４】
前記信号圧縮部は、
前記第１の期間において前記信号遷移検出部から出力される信号と、前記第２の期間において出力された信号との排他的論理和を出力する信号出力部
を有する請求項３に記載の論理回路検証装置。
【請求項５】
前記信号圧縮部は、
前記所定のクロックの周期ごとに、複数の前記検証対象信号のいずれかの遷移が１回以上あった場合に、前記第１信号を出力する
請求項１乃至４のいずれか１項に記載の論理回路検証装置。
【請求項６】
前記信号圧縮部は、
複数の前記検証対象信号のうち、前記所定のクロックの周期に基づく所定の期間内で１回以上遷移した信号数を示す信号値を前記第１信号とする
請求項１に記載の論理回路検証装置。
【請求項７】
前記信号圧縮部は、
前記所定のクロックの周期に基づく所定の期間内で前記検証対象信号が遷移した回数を示す信号値を前記第１信号とする
請求項１に記載の論理回路検証装置。
【請求項８】
前記信号圧縮部は、
前記所定の期間内で、複数の前記検証対象信号が遷移した合計回数を示す信号値を前記第１信号とする
請求項７に記載の論理回路検証装置。
【請求項９】
前記論理回路検証装置は、複数の前記信号圧縮部を備え、
各信号圧縮部のそれぞれは、異なる検証対象信号を受け付け、前記第１信号又は前記第２信号のいずれかを出力する
請求項１乃至８のいずれか１項に記載の論理回路検証装置。
【請求項１０】
前記複数の信号圧縮部のそれぞれは、異なるクロックの周期に応じて動作する請求項９に記載の論理回路検証装置。
【請求項１１】
検証対象の論理回路についての検証対象信号を受け付ける受付ステップと、
当該論理回路を動作させる第１クロックより遅い所定のクロックの周期ごとに、前記検証対象信号の遷移が１回以上あった場合には、当該検証対象信号に遷移があったことを示す第１信号を出力し、当該遷移がなかった場合には、当該検証対象信号に遷移がなかったことを示す第２信号を出力する信号圧縮ステップと、
を含む信号圧縮方法。
【請求項１２】
前記信号圧縮ステップは、
前記所定のクロックの周期に基づく第１の期間で前記検証対象信号の遷移が１回以上あった場合に、当該第１の期間の直前である第２の期間において出力された信号を反転させて前記第１信号として出力する
請求項１１に記載の信号圧縮方法。
【請求項１３】
前記信号圧縮ステップは、
前記検証対象信号の立ち上がりを検出するステップと、
前記検証対象信号の立ち下がりを検出するステップと、
前記所定のクロックの周期ごとに、前記検証対象信号の立ち上がり又は立ち下がりの少なくともいずれかが検出された場合に、前記第１信号を出力し、前記検証対象信号の立ち上がり又は立ち下がりのいずれも検出されなかった場合に前記第２信号を出力するステップと、
を含む請求項１１又は１２に記載の信号圧縮方法。
【請求項１４】
前記信号圧縮ステップは、
前記第１の期間において出力される信号と、前記第２の期間において出力された信号との排他的論理和を出力する
請求項１３に記載の信号圧縮方法。
【請求項１５】
前記信号圧縮ステップは、
前記所定のクロックの周期ごとに、複数の前記検証対象信号のいずれかの遷移が１回以上あった場合に、前記第１信号を出力する
請求項１１乃至１４のいずれか１項に記載の信号圧縮方法。
【請求項１６】
前記信号圧縮ステップは、
複数の前記検証対象信号のうち、前記所定のクロックの周期に基づく所定の期間内で１回以上遷移した信号数を示す信号値を前記第１信号とする
請求項１１に記載の信号圧縮方法。
【請求項１７】
前記信号圧縮ステップは、
前記所定のクロックの周期に基づく所定の期間内で前記検証対象信号が遷移した回数を示す信号値を前記第１信号とする
請求項１１に記載の信号圧縮方法。
【請求項１８】
前記信号圧縮ステップは、
前記所定の期間内で、複数の前記検証対象信号が遷移した合計回数を示す信号値を前記第１信号とする
請求項１７に記載の信号圧縮方法。
【請求項１９】
前記受付ステップは、
異なる複数の前記検証対象信号を受け付け、
前記信号圧縮ステップは、
各検証対象信号ごとに前記第１信号又は前記第２信号のいずれかを出力する
請求項１１乃至１８のいずれか１項に記載の信号圧縮方法。
【請求項２０】
検証対象の論理回路についての検証対象信号を受け付ける受付処理と、
当該論理回路を動作させる第１クロックより遅い所定のクロックの周期ごとに、前記検証対象信号の遷移が１回以上あった場合には、当該検証対象信号に遷移があったことを示す第１信号を出力し、当該遷移がなかった場合には、当該検証対象信号に遷移がなかったことを示す第２信号を出力する信号圧縮処理と、
をコンピュータに実行させる論理回路検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路検証装置、信号圧縮方法及び論理回路検証プログラムに関し、例えば、論理回路を検証するための信号を圧縮する論理回路検証装置、信号圧縮方法及び論理回路検証プログラムに関する。
【背景技術】
【０００２】
近年、設計した論理回路が設計仕様を満たしているか否かを検証するために、論理回路シミュレーションを行うためのエミュレータが用いられることが多い。そして、当該検証結果の妥当性の（目視）確認やデバッグの手段として、当該エミュレータの実行結果を信号波形として表示することが一般的である。一方で、当該実行結果として記録される波形データは大量となるため、大きな記憶容量を必要とする。
【０００３】
特許文献１には、論理シミュレーションの結果である波形データを圧縮するための技術が開示されている。特許文献１にかかる論理シミュレーションの結果データについて、シミュレーション開始時刻の全信号値の中で最も数の多い信号値をシミュレーション開始時刻のデフォルト初期値データとして記録する。これにより、信号値データを圧縮する。また、波形データを出力する時に、任意のシミュレーション時刻の周期毎または任意の信号変化回数毎に分割して記録する。これにより、分割された各期間の開始時刻について上記デフォルト初期値データに圧縮されるため、より信号値データを圧縮することができる。
【０００４】
尚、特許文献２には、所定のクロックサイクルで波形データをサンプリングして保存する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２５６２７３号公報
【特許文献２】特開平１０−２５４９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、圧縮できるデータ量が圧縮対象の信号値データの変化の傾向に依存するため、変化量が多い場合、圧縮量が小さくなる。それ故、圧縮量のワーストケースを加味した上で記憶容量を確保する必要があり、削減が不十分であるという問題点がある。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、論理回路検証装置は、所定のクロックの周期ごとに、検証対象の論理回路についての検証対象信号についての遷移が１回以上あったか否かを示す信号を出力する信号圧縮部を備える。
【０００９】
また、他の実施の形態によれば、信号圧縮方法は、所定のクロックの周期ごとに、検証対象の論理回路についての検証対象信号についての遷移が１回以上あったか否かを示す信号を出力する。
【００１０】
さらに、他の実施の形態によれば、論理回路検証プログラムは、所定のクロックの周期ごとに、検証対象の論理回路についての検証対象信号についての遷移が１回以上あったか否かを示す信号を出力する信号圧縮処理をコンピュータに実行させる。
【発明の効果】
【００１１】
前記一実施の形態によれば、圧縮後のデータの記憶容量を削減することができる。
【図面の簡単な説明】
【００１２】
【図１】は、本実施の形態１にかかる論理回路検証装置の構成を示すブロック図である。
【図２】は、本実施の形態１にかかる信号圧縮処理の流れを示すフローチャートである。
【図３】は、本実施の形態１にかかる論理回路検証装置のハードウェア構成を示すブロック図である。
【図４】は、本実施の形態２にかかる論理回路シミュレーションシステムのハードウェア構成を示すブロック図である。
【図５】は、本実施の形態２にかかる論理回路検証装置の構成を含むブロック図である。
【図６】は、本実施の形態２にかかる信号圧縮部の構成を示すブロック図である。
【図７】は、本実施の形態２にかかる信号圧縮処理の流れを示すフローチャートである。
【図８】は、関連技術にかかる波形データのサンプリングの例を示す図である。
【図９】は、本実施の形態２にかかる波形データのサンプリング及び出力結果の例を示す図である。
【図１０】は、本実施の形態２にかかる信号圧縮部の具体例を示すブロック図である。
【図１１】は、本実施の形態３にかかる信号圧縮部の構成を示すブロック図である。
【図１２】は、本実施の形態４にかかる論理回路検証装置の構成を含むブロック図である。
【図１３】は、本実施の形態４にかかる信号圧縮部の構成を示すブロック図である。
【図１４】は、本実施の形態５にかかる論理回路検証装置の構成を含むブロック図である。
【図１５】は、本実施の形態５にかかる信号圧縮部の構成を示すブロック図である。
【図１６】は、本実施の形態５にかかる波形データのサンプリング及び出力結果の例を示す図である。
【図１７】は、本実施の形態６にかかる信号圧縮部の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下では、上述した課題を解決するための手段を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１４】
＜実施の形態１＞
図１は、本実施の形態１にかかる論理回路検証装置の構成を示すブロック図である。図１は、検証対象の論理回路１１と、論理回路１１への検証を行う論理回路検証装置１２とを示す。論理回路１１は、クロック信号ＣＬＫ１により動作する。論理回路１１は、電子回路、特に半導体集積回路に相当するが、物理的な回路ではなく、素子や素子間の接続関係等が定義された設計情報により電子的に実現される回路である。例えば、エミュレータ内でネットリスト等に基づいてメモリ上に実現される回路である。また、クロック信号ＣＬＫ１は、検証用のクロック信号である。論理回路１１が半導体製品であれば、クロック信号ＣＬＫ１は、製品本来のマスタクロックといえる。
【００１５】
論理回路検証装置１２は、論理回路１１についての検証対象信号１２１を圧縮して出力する。検証対象信号１２１は、論理回路１１に対する入力信号又は出力信号いずれか又は両方である。例えば、検証対象信号１２１は、論理回路１１の動作を検証するためのテストパターンを示すデータ列であってもよい。尚、検証対象信号１２１には、クロック信号ＣＬＫ１を含めて構わない。
【００１６】
論理回路検証装置１２は、信号圧縮部１２２を備える。信号圧縮部１２２は、サンプリングクロック信号ＣＬＫ２により動作する。サンプリングクロック信号ＣＬＫ２の周期は、クロック信号ＣＬＫ１よりもよりも遅い所定のクロックの周期である。信号圧縮部１２２は、サンプリングクロック信号ＣＬＫ２の周期ごとに、検証対象信号１２１の遷移が１回以上あった場合には、検証対象信号１２１に遷移があったことを示す第１信号１２３を出力し、当該遷移がなかった場合には、検証対象信号１２１に遷移がなかったことを示す第２信号１２４を出力する。ここで、遷移とは、検証対象信号１２１の信号の立ち上がり又は立ち下がりのいずれかであるものとする。また、信号圧縮部１２２から出力される第１信号１２３又は第２信号１２４を記憶装置等に記録することで、後に、波形データ等に用いることができ、ユーザが検証することができる。
【００１７】
また、第１信号１２３及び第２信号１２４は、１ビットデータで遷移の有無を表現してもよい。例えば、第１信号１２３を"１"、第２信号１２４を"０"とするか、その逆であってもよい。また、第１信号１２３は、サンプリングクロック信号ＣＬＫ２の周期ごとの検証対象信号１２１の遷移の回数等の度合いを示す信号値であってもよい。
【００１８】
ここで、検証対象信号１２１は、クロック信号ＣＬＫ１の周期で遷移する可能性があるため、クロック信号ＣＬＫ１より遅いサンプリングクロック信号ＣＬＫ２の周期では検証対象信号１２１が複数回遷移する可能性がある。つまり、所定の期間で複数種類の信号値を取り得る。しかし、信号圧縮部１２２は、サンプリングクロック信号ＣＬＫ２の周期の間隔で、検証対象信号１２１から第１信号１２３又は第２信号１２４のいずれかの信号値へ変換して出力する。つまり、信号圧縮部１２２は、検証対象信号１２１の信号値の変化の内容を第１信号１２３又は第２信号１２４のいずれかへ圧縮する。これにより、圧縮対象データの変化の傾向に依存せずに、データの圧縮率を安定させることができる。すなわち、圧縮対象データの変化の傾向に依存せずに圧縮することで、圧縮後のデータの記憶容量を削減することができる。
【００１９】
また、圧縮された出力信号（第１信号１２３又は第２信号１２４）について、検証結果の妥当性を波形表示してユーザが目視で確認することが考えられる。この場合には、波形データに検証結果の厳密な再現は要求されない。あくまで機能ブロックレベルでの検証の妥当性が判断できれば良いからである。そこで、本実施の形態１では、少なくとも所定期間内での信号の変化の有無を結果として記録する。そのため、本実施の形態１により、結果の妥当性検証に必要な情報を保持することができる。
【００２０】
図２は、本実施の形態１にかかる信号圧縮処理の流れを示すフローチャートである。まず、信号圧縮部１２２は、検証対象信号１２１を入力する（Ｓ１１）。例えば、論理回路検証装置１２は、論理回路１１を検証するための入力信号であるか、又は、論理回路１１から出力された検証結果を示す結果信号である。
【００２１】
次に、信号圧縮部１２２は、所定期間内で検証対象信号１２１が１回以上遷移したか否かを判定する（Ｓ１２）。すなわち、信号圧縮部１２２は、サンプリングクロック信号ＣＬＫ２に同期して検証対象信号１２１の遷移を検出する。
【００２２】
そして、ステップＳ１２で、検証対象信号１２１が１回以上遷移したと判定した場合、信号圧縮部１２２は、第１信号１２３を出力する（Ｓ１３）。第１信号１２３は、所定期間内で検証対象信号１２１に遷移があったことを示す信号値である。また、ステップＳ１２で、検証対象信号１２１が遷移していないと判定した場合、信号圧縮部１２２は、第２信号１２４を出力する（Ｓ１４）。第２信号１２４は、所定期間内で検証対象信号１２１が一回も遷移しなかったことを示す信号値である。
【００２３】
上述した論理回路検証装置１２及び論理回路１１は、例えば、汎用的なコンピュータシステムにより実現可能である。図３は、本実施の形態１にかかる論理回路検証装置のハードウェア構成を示すブロック図である。コンピュータ１０は、例えば、制御装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３と、外部とのインタフェースであるＩＦ（ＩｎｔｅｒＦａｃｅ）１０４と、不揮発性記憶装置の一例であるＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０５とを備える。コンピュータ１０は、その他図示しない構成として、キーボードやマウス等の入力装置やディスプレイ等の表示装置を備えていてもよい。
【００２４】
ＨＤＤ１０５には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（不図示）と、回路情報１０６と、論理回路検証プログラム１０７とが記録されている。回路情報１０６は、論理回路１１を実現するための設計情報が含まれる。回路情報１０６は、例えば、ネットリスト等である。論理回路検証プログラム１０７は、本実施の形態１にかかる信号圧縮処理を含む論理回路の検証処理が実装されたコンピュータプログラムである。
【００２５】
ＣＰＵ１０１は、コンピュータ１０における各種処理、ＲＡＭ１０２、ＲＯＭ１０３、ＩＦ１０４及びＨＤＤ１０５へのアクセス等を制御する。コンピュータ１０は、ＣＰＵ１０１がＨＤＤ１０５に記憶されたＯＳ及び論理回路検証プログラム１０７を読み込み、実行する。これにより、コンピュータ１０は、本実施の形態１にかかる論理回路検証装置１２を実現する。
【００２６】
尚、上述した特許文献１では、波形データの削減量が検証結果データの遷移の度合いに依存するため、圧縮率が安定しない。それに比べて、本実施の形態１では、所定期間における検証対象信号１２１の変化量に依存ぜずに、一律に第１信号１２３又は第２信号１２４のいずれかの信号値に圧縮するため、圧縮率が安定し、圧縮された出力信号の記憶容量を最小限に抑えることができる。
【００２７】
また、特許文献１では、シミュレーション開始時刻の全信号値の中で最も数の多い信号値を選択するため、前もって対象時刻の全信号値を取得する必要がある。つまり、一時的な記憶領域を必要とし、かつ、そのための処理時間も必要となる。これに比べて、本実施の形態１では、予め全信号値を取得する必要がなく、単に、サンプリングクロック信号ＣＬＫ２の周期ごとに第１信号１２３又は第２信号１２４のいずれかの信号値を記録すれば足りる。そのため、上記のような一時的な記憶領域も不要である。
【００２８】
＜実施の形態２＞
本実施の形態２は、上述した実施の形態１の一実施例であり、検証対象信号が１ビットデータである場合を対象とする。そして、信号圧縮部による圧縮後の出力信号も１ビットデータとする。このとき、サンプリングクロック信号の周期単位の連続した期間で検証対象信号１２１が遷移し続ける場合には、同じ信号値が出力され続ける。この場合、波形データとして表示すると、信号値が一定に維持されていることとなり、ユーザが遷移の有無を把握しにくくなる恐れがある。そこで、本実施の形態２では、遷移があった場合には直前の期間における圧縮後の出力信号を反転し、遷移がなかった場合には直前の期間における圧縮後の出力信号をそのまま保持するものである。
【００２９】
図４は、本実施の形態２にかかる論理回路シミュレーションシステムのハードウェア構成を示すブロック図である。本実施の形態２にかかる論理回路シミュレーションシステムは、エミュレーションサーバ２０と、エンジニアリングワークステーション２３とを備え、これらがネットワーク２２により接続されている。
【００３０】
エミュレーションサーバ２０は、ＥＤＡ（Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）等により設計された設計情報について設計仕様を満たすかどうかを検証するための論理回路のシミュレーションを行うエミュレータである。エミュレーションサーバ２０は、ＣＰＵ２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、ＩＦ２０４と、ＨＤＤ２０５とを備える。また、ＨＤＤ２０５には、回路情報２０６と、テストベンチ２０７と、波形データ２０８とが記録されている。尚、ＣＰＵ２０１、ＲＡＭ２０２及びＲＯＭ２０３は、図３のコンピュータ１０の対応する構成要素と同等であるため、説明を省略する。
【００３１】
ＩＦ２０４は、ネットワーク２２を介してエンジニアリングワークステーション２３と通信を行う。回路情報２０６は、ＥＤＡ等により設計された設計情報であり、例えば、ネットリストである。テストベンチ２０７は、図３の論理回路検証プログラム１０７の一実施例であるコンピュータプログラムである。波形データ２０８は、後述する信号圧縮部により圧縮された出力信号と、サンプリングされた時刻とが対応付けられた情報である。波形データ２０８は、別途、波形表示アプリケーション（不図示）により波形表示されるデータである。
【００３２】
エンジニアリングワークステーション２３は、入力装置及び表示装置を有し、ユーザが操作する端末である。エンジニアリングワークステーション２３は、ネットワーク２２を介してエミュレーションサーバ２０と通信を行い、論理回路検証プログラム１０７の実行指示やその結果の表示等を行う。
【００３３】
図５は、本実施の形態２にかかる論理回路検証装置の構成を含むブロック図である。図５は、論理回路検証装置２１０と、検証対象回路２２０と、メモリ２３０とを示す。論理回路検証装置２１０は、エンジニアリングワークステーション２３内で、ＣＰＵ２０１がＨＤＤ２０５からテストベンチ２０７をＲＡＭ２０２へ読み込み、実行することで実現されるものである。また、検証対象回路２２０は、図１の論理回路１１の一例であり、ＣＰＵ２０１がＨＤＤ２０５から回路情報２０６をＲＡＭ２０２へ読み込み、テストベンチ２０７の実行中に論理回路として動作するものである。メモリ２３０は、ＲＡＭ２０２又はＨＤＤ２０５等であればよい。波形データ２３１は、波形データ２０８に相当するものである。
【００３４】
論理回路検証装置２１０は、ＮＯＲ型フラッシュメモリ２１１と、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）２１２と、サンプリングクロックモジュール２１３と、信号圧縮部２１４と、信号圧縮部２１５とを備える。但し、ＮＯＲ型フラッシュメモリ２１１及びＤＤＲ２１２は、エミュレーションサーバ２０内でＲＡＭ２０２において擬似的に実現されるか、これら以外により物理的に実現されるものであってもよい。また、論理回路検証装置２１０は、検証対象回路２２０に対するクロック信号ＣＬＫ１、リセット信号ＲＳ及びモード設定信号ＭＳを発生させるモジュール（不図示）も備えるものとする。
【００３５】
ＮＯＲ型フラッシュメモリ２１１は、検証に伴う処理を検証対象回路２２０に実行させるためのプログラム２１１１を記憶する。ＤＤＲ２１２は、半導体メモリであり、検証用のテストパターン等のデータ信号が記憶されている。
【００３６】
サンプリングクロックモジュール２１３は、図１のサンプリングクロック信号ＣＬＫ２に相当する信号を生成するモジュールである。ここでは、サンプリングクロックモジュール２１３は、信号圧縮部２１４に対してサンプリングクロック信号ＣＬＫ２ａを出力し、信号圧縮部２１５に対してサンプリングクロック信号ＣＬＫ２ｂを出力する。
【００３７】
信号圧縮部２１４及び信号圧縮部２１５は、図１の信号圧縮部１２２の一実施例である。信号圧縮部２１４は、サンプリングクロック信号ＣＬＫ２ａにより動作し、入力信号Ｄ１ａを出力信号Ｄ２ａに圧縮して、メモリ２３０へ出力する。尚、図５では、入力信号Ｄ１ａはプログラム２１１１が入力されたものとなっているがこれに限定されない。例えば、入力信号Ｄ１ａは、クロック信号ＣＬＫ１、リセット信号ＲＳ、モード設定信号ＭＳ又はＤＤＲ２１２から出力される信号であっても構わない。
【００３８】
また、信号圧縮部２１５は、サンプリングクロック信号ＣＬＫ２ｂにより動作し、結果信号Ｄ１ｂを出力信号Ｄ２ｂに圧縮して、メモリ２３０へ出力する。結果信号Ｄ１ｂは、例えば、検証対象回路２２０から出力される信号であり、いわば論理回路シミュレーションの結果信号である。但し、結果信号Ｄ１ｂはこれに限定されない。
【００３９】
ここで、信号圧縮部２１４及び信号圧縮部２１５は、所定のクロックの周期に基づく第１の期間で検証対象信号の遷移が１回以上あった場合に、当該第１の期間の直前である第２の期間において出力された信号を反転させて第１信号として出力するものである。これにより、連続する期間での遷移の有無をより明確にユーザが識別可能となる。
【００４０】
また、信号圧縮部２１４及び信号圧縮部２１５は、検証対象信号の立ち上がり又は立ち下がりの少なくともいずれかが検出された場合に、第１信号を出力し、検証対象信号の立ち上がり又は立ち下がりのいずれも検出されなかった場合に第２信号を出力する信号遷移検出部を有するものである。これにより、検証対象信号の立ち上がり及び立ち下がりの一方だけの遷移であっても検出可能とすることができ、より正確に遷移の有無を検出できる。
【００４１】
さらに、信号圧縮部２１４及び信号圧縮部２１５は、第１の期間において信号遷移検出部から出力される信号と、第２の期間において出力された信号との排他的論理和を出力する信号出力部を有するものである。これにより、第１の期間及び第２の期間において出力される各信号のいずれの組合せであっても信号値を反転することができる。
【００４２】
尚、信号圧縮部２１４及び信号圧縮部２１５は、出力信号Ｄ２ａ及び出力信号Ｄ２ｂの出力際、各信号のサンプリング時刻と関連付けることで、波形データ２３１としてメモリ２３０に格納できる。これにより、後に波形表示することができ、ユーザが容易に所定期間ごとの検証対象信号の有無を確認できる。
【００４３】
検証対象回路２２０は、ＣＰＵ２２１と、バスコントロール２２２と、バスコントロール２２３と、モジュール２２４等を備える。尚、これらの構成要素は、上述の通り、回路情報２０６に基づいてエミュレーションサーバ２０内のＲＡＭ２０２上で実現されるものである。
【００４４】
図６は、本実施の形態２にかかる信号圧縮部の構成を示すブロック図である。本実施の形態２にかかる信号圧縮部は、信号圧縮部２１４及び２１５のいずれにも適用可能である。本実施の形態２にかかる信号圧縮部は、データ信号Ｄ１及びサンプリングクロック信号ＣＬＫ２を受け付けて、出力信号Ｄ２を出力する。データ信号Ｄ１は、図５の入力信号Ｄ１ａ又は結果信号Ｄ１ｂのいずれかに相当する。すなわち、データ信号Ｄ１は、図１の検証対象信号１２１に相当する。サンプリングクロック信号ＣＬＫ２は、図５のサンプリングクロック信号ＣＬＫ２ａ又はＣＬＫ２ｂのいずれかに相当する。出力信号Ｄ２は、第１信号１２３又は第２信号１２４のいずれかに相当する。
【００４５】
そして、本実施の形態２にかかる信号圧縮部は、信号遷移検出部２４０と信号出力部２５０とを備える。信号遷移検出部２４０は、データ信号Ｄ１及びサンプリングクロック信号ＣＬＫ２を受け付けて、信号Ｄ２Ｘを出力する。信号遷移検出部２４０は、立上信号検出部２４１と、立下信号検出部２４２と、ＯＲ回路２４３と、ＮＯＴ回路２４４とを備える。
【００４６】
立上信号検出部２４１は、データ信号Ｄ１の立ち上がりを検出する。例えば、立上信号検出部２４１は、データ信号Ｄ１の立ち上がりを検出した場合に、信号値"１"を出力する。そして、立上信号検出部２４１は、サンプリングクロック信号ＣＬＫ２の１周期の間に複数回、データ信号Ｄ１の立ち上がりを検出したとしても、信号値"１"を出力し続ける。つまり、所定の期間においては、検証対象信号の遷移の回数によらず１回以上の遷移があったか否かを示すことができる。よって、複数の遷移があったという情報や、検証対象回路２２０を動作させるクロック信号ＣＬＫ１のどのタイミングで遷移したかという情報については除外して、遷移の回数を１回であるかのように圧縮することができる。また、立上信号検出部２４１は、サンプリングクロック信号ＣＬＫ２の１周期の間に１度もデータ信号Ｄ１の立ち上がりを検出しなかった場合には、信号値"０"を出力し続ける。
【００４７】
立下信号検出部２４２は、データ信号Ｄ１の立ち下がりを検出する。ここでは、データ信号Ｄ１がＮＯＴ回路２４４により反転された後に立下信号検出部２４２へ入力されているため、立上信号検出部２４１と立下信号検出部２４２とは同等の構成で実現可能である。
【００４８】
ＯＲ回路２４３は、立上信号検出部２４１及び立下信号検出部２４２の少なくとも一方から信号値"１"が出力された場合に、信号値"１"とした信号Ｄ２Ｘを信号出力部２５０へ出力する。この場合、信号Ｄ２Ｘは、図１の第１信号１２３といえる。また、ＯＲ回路２４３は、立上信号検出部２４１及び立下信号検出部２４２のいずれからも信号値"０"が出力された場合には、信号値"０"とした信号Ｄ２Ｘを信号出力部２５０へ出力する。この場合、信号Ｄ２Ｘは、図１の第２信号１２４といえる。そのため、信号遷移検出部２４０は、サンプリングクロック信号ＣＬＫ２の１周期内でデータ信号Ｄ１の立ち上がり又は立ち下がりの少なくとも一方があったか否かを示す情報を出力する。
【００４９】
信号出力部２５０は、信号Ｄ２Ｘ及びサンプリングクロック信号ＣＬＫ２を受け付けて、出力信号Ｄ２を出力する。信号出力部２５０は、ＸＯＲ回路２５１と、フリップフロップ（ＦＦ）２５２とを備える。ＸＯＲ回路２５１は、信号遷移検出部２４０からの出力である信号Ｄ２Ｘと、サンプリングクロック信号ＣＬＫ２における前回の周期における出力である信号Ｄ２Ｙとを受け付け、その排他的論理和をＦＦ２５２へ出力する。また、ＦＦ２５２は、サンプリングクロック信号ＣＬＫ２に同期して動作し、ＸＯＲ回路２５１の出力を受け付けて出力信号Ｄ２及び信号Ｄ２Ｙを出力する。つまり、信号Ｄ２Ｙは、信号Ｄ２Ｘの直前の期間における出力信号Ｄ２である。そして、信号出力部２５０は、信号Ｄ２Ｘと信号Ｄ２Ｙとが異なる場合に、信号Ｄ２Ｙを反転して出力し、信号Ｄ２Ｘと信号Ｄ２Ｙとが等しい場合に、信号Ｄ２Ｙをそのまま出力する。
【００５０】
これにより、サンプリングクロック信号ＣＬＫ２の周期内で複数回の遷移（信号の立ち上がり又は立ち下がり）があったとしても、１回として集約（圧縮）される。そのため、検証対象回路２２０の各モジュールにおいて検査対象信号が動作しているか確認を行うための最低限必要な情報を得ることができる。
【００５１】
尚、図６では、信号遷移検出部２４０に立上信号検出部２４１及び立下信号検出部２４２を含むものとしたが、信号遷移を検出するための構成はこれに限定されない。例えば、信号の立ち上がり又は立ち下がりの一方のみを検出するようにしても構わない。その場合、例えば、信号遷移検出部２４０は、立上信号検出部２４１のみ又は立下信号検出部２４２及びＮＯＴ回路２４４のみを有していても構わない。
【００５２】
図７は、本実施の形態２にかかる信号圧縮処理の流れを示すフローチャートである。尚、以下では、信号圧縮部２１４の動作として説明するが、信号圧縮部２１５であっても同様である。また、図７は、サンプリングクロック信号ＣＬＫ２の周期単位で処理されるものである。そのため、前回の出力信号Ｄ２Ｐは予め"０"又は"１"に設定されているものとする。
【００５３】
まず、初期設定として、信号圧縮部２１４は、立ち上がりフラグＵＰ及び立ち下がりフラグＤＮに"０"を設定する（Ｓ２１）。そして、信号圧縮部２１４は、データ信号Ｄ１の立ち上がりを検出したか否かを判定する（Ｓ２２ａ）。立ち上がりを検出した場合、立ち上がりフラグＵＰに"１"を設定する（Ｓ２３ａ）。併せて、信号圧縮部２１４は、データ信号Ｄ１の立ち下がりを検出したか否かを判定する（Ｓ２２ｂ）。立ち下がりを検出した場合、立ち下がりフラグＤＮに"１"を設定する（Ｓ２３ｂ）。
【００５４】
その後、信号圧縮部２１４は、立ち上がりフラグＵＰ又は立ち下がりフラグＤＮのいずれかが"１"であるか否かを判定する（Ｓ２４）。立ち上がりフラグＵＰ又は立ち下がりフラグＤＮのいずれかが"１"であると判定した場合、信号圧縮部２１４は、前回の出力信号Ｄ２Ｐを反転した値を今回の出力信号Ｄ２Ｃに設定する（Ｓ２５ａ）。また、立ち上がりフラグＵＰ又は立ち下がりフラグＤＮのいずれも"０"であると判定した場合、信号圧縮部２１４は、前回の出力信号Ｄ２Ｐを今回の出力信号Ｄ２Ｃに設定する（Ｓ２５ｂ）。
【００５５】
そして、信号圧縮部２１４は、ＣＬＫ２が遷移したか否かを判定する（Ｓ２６）。ＣＬＫ２が遷移していなければ、ステップＳ２２ａ及びＳ２２ｂへ戻り、以降の処理を実行する。ＣＬＫ２が遷移したと判定した場合、信号圧縮部２１４は、今回の出力信号Ｄ２Ｃを出力し（Ｓ２７）、今回の出力信号Ｄ２Ｃを前回の出力信号Ｄ２Ｐに設定する（Ｓ２８）。
【００５６】
尚、図７のフローチャートは、本実施の形態２にかかる信号圧縮処理の一例であり、具体的なアルゴリズムはこれに限定されない。
【００５７】
図８は、関連技術にかかる波形データのサンプリングの例を示す図である。図８では、クロック信号ＣＬＫ１の立ち上がり及び立ち下がりの各タイミングにおいてデータ信号Ｄ１の値を取得して出力信号Ｄ２として記録している。そのため、データ信号Ｄ１の遷移の状態を、波形表示により厳密に再現することができる。しかし、上述の通り、出力信号Ｄ２のデータ量が多くなり、かつ、処理時間が長くなるという問題がある。
【００５８】
図９は、本実施の形態２にかかる波形データのサンプリング及び出力結果の例を示す図である。図９では、まず、時刻ｔ０の時点で出力信号Ｄ２が"０"である。そして、時刻ｔ０から時刻ｔ１の期間において、データ信号Ｄ１の立ち上がり及び立ち下がりが複数回検出される。そのため、時刻ｔ１のタイミングで出力信号Ｄ２が"０"から反転して"１"となる。次に、時刻ｔ１から時刻ｔ２の期間においてもデータ信号Ｄ１の立ち上がり及び立ち下がりが各１回検出される。そのため、時刻ｔ２のタイミングで出力信号Ｄ２が"１"から反転して"０"となる。そして、時刻ｔ２から時刻ｔ３の期間においては、データ信号Ｄ１の立ち上がり及び立ち下がりが１回も検出されない。そのため、出力信号Ｄ２の"０"が保持される。また、時刻ｔ４から時刻ｔ５の期間においてもデータ信号Ｄ１の立ち上がり及び立ち下がりが１回も検出されない。但し、直前の期間である時刻ｔ３から時刻ｔ４を経て出力信号Ｄ２が"１"となっていたため、時刻ｔ５のタイミングにおいても"１"が保持される。
【００５９】
このようにして、本実施の形態２では、図９の出力信号Ｄ２を波形データとして表示することで、ユーザは、データ信号Ｄ１の詳細な遷移までは把握せずとも、検証対象のモジュールが概ね動作しているか否かを容易に把握することができる。
【００６０】
尚、図９の例では、クロック信号ＣＬＫ１の変化点ごとにより波形データを取得した場合と比べて、データ量を一律に１／８に削減することができる。尚、出力信号Ｄ２は、データ信号Ｄ１に比べて、出力信号Ｄ２の１周期分の位相がずれることとなるが、ユーザが遷移の状態を把握する分には影響が無視できるといえる。
【００６１】
図１０は、本実施の形態２にかかる信号圧縮部の具体例を示すブロック図である。ここでは、信号圧縮部は、信号遷移検出部２４０ａと、信号出力部２５０ａとを備える。また、信号遷移検出部２４０ａは、立上信号検出部２４１ａと、立下信号検出部２４２ａと、ＮＯＲ回路２４３ａとを備える。尚、立下信号検出部２４２ａには、立上信号検出部２４１ａの構成に加え、ＮＯＴ回路２４４相当が含まれる。
【００６２】
例えば、立上信号検出部２４１ａは、前段のＦＦは、クロック端子にサンプリングクロック信号ＣＬＫ２が接続され、入力端子Ｄに後段ＦＦの出力端子Ｑが接続されている。そして、前段ＦＦの否定値を出力する出力端子ＱＢは、後段ＦＦの入力端子Ｄ及びＸＯＲ回路の入力端子に接続されている。後段ＦＦは、クロック端子にデータ信号Ｄ１が接続され、出力端子ＱＢがＸＯＲ回路の入力端子に接続されている。つまり、後段ＦＦは、サンプリングクロック信号ＣＬＫ２より速い周期のクロック信号ＣＬＫ１に応じてデータ信号Ｄ１が遷移するタイミングで、前段ＦＦの出力信号の否定値が取り込まれて、その否定値が出力信号とされる。但し、前段ＦＦには、サンプリングクロック信号ＣＬＫ２の周期単位で値が保持されている。そのため、サンプリングクロック信号ＣＬＫ２の周期の所定期間内でデータ信号Ｄ１が２回以上遷移しても、後段ＦＦが１回目の遷移により前段ＦＦから取り込んだ信号値と同じ値を取り込むことにしかならない。そのため、所定期間内でデータ信号Ｄ１が複数回遷移したとしても同じものとして扱われる。立下信号検出部２４２ａは、後段ＦＦのクロック端子にデータ信号Ｄ１の否定値が接続されていることにより、データ信号Ｄ１の検出することになる。その他は、立上信号検出部２４１ａと同様である。
【００６３】
＜実施の形態３＞
上述した実施の形態２では、所定期間内の１回以上のデータ信号Ｄ１の遷移を全て同じ信号値で表現していたが、所定期間内でのデータ信号Ｄ１の遷移回数は不明である。そこで、本実施の形態３にかかる信号圧縮部は、所定のクロックの周期に基づく所定の期間内で検証対象信号が遷移した回数を示す信号値を第１信号とするものである。これにより、所定期間内でのデータ信号Ｄ１の遷移の状況をより詳細に表現することができる。また、所定の期間内で遷移回数であれば、データ信号Ｄ１をクロック信号ＣＬＫ１の周期ごとに取得する場合に比べて、データ量を削減でき、かつ、実行時間も短縮できる点に変わりがない。
【００６４】
図１１は、本実施の形態３にかかる信号圧縮部の構成を示すブロック図である。本実施の形態３にかかる信号圧縮部は、信号遷移回数加算部３４０と、信号出力部３５０とを備える。信号遷移回数加算部３４０は、図６の信号遷移検出部２４０の後段にカウンタ３４２を設けたものである。カウンタ３４２は、データ信号Ｄ１が遷移するタイミングでカウンタ値を加算し、サンプリングクロック信号ＣＬＫ２に同期してカウンタ値をクリアする。カウンタ３４２には、例えば、トグルカウンタを用いることができる。また、信号出力部３５０は、信号出力部２５０とは異なり、サンプリングクロック信号ＣＬＫ２に同期して、信号遷移回数加算部３４０の出力信号をそのまま出力信号Ｄ２として出力する。
【００６５】
尚、論理回路検証装置全体のその他の構成は、実施の形態２と同等のものを用いることができる。
【００６６】
＜実施の形態４＞
本実施の形態４は、上述した実施の形態１の一実施例であり、検証対象信号が複数ビットデータである場合を対象とする。そして、信号圧縮部による圧縮後の出力信号も複数ビットデータとする。本実施の形態４にかかる信号圧縮部は、所定のクロックの周期ごとに、複数の検証対象信号のいずれかの遷移が１回以上あった場合に、第１信号を出力するものである。つまり、検証対象信号が複数ビットの場合に、遷移したビットがいずれであるかの情報と、クロック信号ＣＬＫ１のどのタイミングで遷移したかという情報とが除外されて、信号を圧縮する。これにより、ユーザは、出力信号を波形表示することで、データ信号Ｄ１の遷移の概要を把握することができる。
【００６７】
本実施の形態４にかかる論理回路シミュレーションシステムのハードウェア構成は、図４と同等であるため、図示及び説明を省略する。図１２は、本実施の形態４にかかる論理回路検証装置の構成を含むブロック図である。尚、検証対象回路２２０とメモリ２３０は、図５と同等であるため詳細な説明を省略する。
【００６８】
論理回路検証装置４１０は、クロックモジュール４１１と、サンプリングクロックモジュール４１２と、信号圧縮部４１３と、信号圧縮部４１４とを備える。尚、論理回路検証装置４１０は、図示しない構成として図５と同様に、ＮＯＲ型フラッシュメモリ２１１、ＤＤＲ２１２、リセット信号ＲＳ及びモード設定信号ＭＳ等を備えるものとする。
【００６９】
クロックモジュール４１１は、検証用のクロック信号ＣＬＫ１を発生させて、検証対象回路２２０に対して入力する。サンプリングクロックモジュール４１２は、信号圧縮部４１３に対してサンプリングクロック信号ＣＬＫ２ａを出力し、信号圧縮部４１４に対してサンプリングクロック信号ＣＬＫ２ｂを出力する。
【００７０】
信号圧縮部４１３は、サンプリングクロック信号ＣＬＫ２ａにより動作し、入力信号Ｄ１ａを出力信号Ｄ２ａに圧縮して、メモリ２３０へ出力する。また、信号圧縮部４１４は、サンプリングクロック信号ＣＬＫ２ｂにより動作し、結果信号Ｄ１ｂを出力信号Ｄ２ｂに圧縮して、メモリ２３０へ出力する。ここで、入力信号Ｄ１ａ及び結果信号Ｄ１ｂは、複数ビットデータである。
【００７１】
図１３は、本実施の形態４にかかる信号圧縮部の構成を示すブロック図である。本実施の形態４にかかる信号圧縮部は、信号圧縮部４１３及び４１４のいずれにも適用可能である。本実施の形態４にかかる信号圧縮部は、データ信号Ｄ１１、Ｄ１２、・・・、Ｄ１ｎ及びサンプリングクロック信号ＣＬＫ２を受け付けて、出力信号Ｄ２を出力する。本実施の形態４にかかる信号圧縮部は、複数ビット信号遷移検出部４４０と、信号出力部４５０とを備える。複数ビット信号遷移検出部４４０は、信号遷移検出部４４１、４４２、・・・、４４ｎを備える。信号遷移検出部４４１〜４４ｎのそれぞれは、図６の信号遷移検出部２４０と同等の構成を適用できる。また、信号出力部４５０はＯＲ回路４５１を備え、複数ビット信号遷移検出部４４０から出力される各信号についての論理和を出力信号Ｄ２として出力する。
【００７２】
＜実施の形態５＞
本実施の形態５は、上述した実施の形態４の応用例であり、複数ビットの入力信号を複数のグループに分けて信号圧縮を行うものである。本実施の形態５にかかる論理回路検証装置は、複数の信号圧縮部を備え、各信号圧縮部のそれぞれは、異なる検証対象信号を受け付け、第１信号又は第２信号のいずれかを出力するものである。これにより、検証対象回路内の複数の機能グループごとに入出力信号の遷移を容易に把握することができる。尚、本実施の形態５にかかる論理回路検証装置は、１ビットの入力信号を複数のグループに分けて信号圧縮を行う場合には、上述した実施の形態２の応用例でもある。
【００７３】
さらに、本実施の形態５にかかる複数の信号圧縮部のそれぞれは、異なるクロックの周期に応じて動作するものとする。つまり、各グループごとに異なるサンプリングクロック周波数を用いることができ、機能グループごとに妥当な間隔で遷移の状態を把握できる。
【００７４】
また、本実施の形態５にかかる信号圧縮部は、複数の検証対象信号のうち、所定のクロックの周期に基づく所定の期間内で１回以上遷移した信号数を示す信号値を第１信号とするものである。これにより、複数ビットの入力信号についての所定期間内の遷移を１つに集約でき、信号の圧縮率を高めることができる。
【００７５】
本実施の形態５にかかる論理回路シミュレーションシステムのハードウェア構成は、図４と同等であるため、図示及び説明を省略する。図１４は、本実施の形態５にかかる論理回路検証装置の構成を含むブロック図である。尚、検証対象回路２２０とメモリ２３０は、図５と同等であるため詳細な説明を省略する。その他、図１４は図１２を変形したものであるため、以下ではその違いを中心について説明する。
【００７６】
論理回路検証装置５１０は、クロックモジュール５１１と、サンプリングクロックモジュール５１２と、信号圧縮部５１３、５１４、５１５及び５１６とを備える。クロックモジュール５１１は、図１２のクロックモジュール４１１と同等である。サンプリングクロックモジュール５１２は、信号圧縮部５１３に対してサンプリングクロック信号ＣＬＫ２ａを出力し、信号圧縮部５１４に対してサンプリングクロック信号ＣＬＫ２ｂを出力し、信号圧縮部５１５に対してサンプリングクロック信号ＣＬＫ２ｃを出力し、信号圧縮部５１６に対してサンプリングクロック信号ＣＬＫ２ｄを出力する。
【００７７】
信号圧縮部５１３は、サンプリングクロック信号ＣＬＫ２ａにより動作し、入力信号Ｄ１１ａを出力信号Ｄ２ａに圧縮して、メモリ２３０へ出力する。また、信号圧縮部５１４は、サンプリングクロック信号ＣＬＫ２ｂにより動作し、結果信号Ｄ１１ｂを出力信号Ｄ２ｂに圧縮して、メモリ２３０へ出力する。また、信号圧縮部５１５は、サンプリングクロック信号ＣＬＫ２ｃにより動作し、データ信号Ｄ１２ａを出力信号Ｄ２ｃに圧縮して、メモリ２３０へ出力する。また、信号圧縮部５１６は、サンプリングクロック信号ＣＬＫ２ｄにより動作し、結果信号Ｄ１２ｂを出力信号Ｄ２ｄに圧縮して、メモリ２３０へ出力する。ここで、データ信号Ｄ１１ａ及びＤ１２ａ並びに結果信号Ｄ１１ｂ及びＤ１２ｂは、複数ビットデータである。
【００７８】
図１５は、本実施の形態５にかかる信号圧縮部の構成を示すブロック図である。本実施の形態５にかかる信号圧縮部は、信号圧縮部５１３〜５１６のいずれにも適用可能である。本実施の形態５にかかる信号圧縮部は、データ信号Ｄ１１、Ｄ１２、・・・、Ｄ１ｎ及びサンプリングクロック信号ＣＬＫ２を受け付けて、出力信号Ｄ２を出力する。本実施の形態５にかかる信号圧縮部は、複数ビット信号遷移検出部５４０と、信号出力部５５０とを備える。複数ビット信号遷移検出部５４０は、図１３の複数ビット信号遷移検出部４４０と同様に、複数の信号遷移検出部５４１〜５４ｎを備える。また、信号出力部５５０は、合算部５５１を備える。合算部５５１は、複数ビット信号遷移検出部５４０から出力される各信号のうち信号値が"１"である数を合算し、合算値を出力信号Ｄ２として出力する。
【００７９】
図１６は、本実施の形態５にかかる波形データのサンプリング及び出力結果の例を示す図である。図１６のデータ信号Ｄ１は、８ビットデータであり、１６進数２桁で表記されているものとする。図１６では、まず、時刻ｔ０の時点で出力信号Ｄ２が"０"である。そして、時刻ｔ０ａにおいてデータ信号Ｄ１が"０ｘ００"から"０ｘ１０"に変化している。このため、時刻ｔ０から時刻ｔ１の期間においてデータ信号Ｄ１が１ビット遷移したこととなる。よって、時刻ｔ１の時点で出力信号Ｄ２が"１"となる。また、時刻ｔ２ａにおいてデータ信号Ｄ１が"０ｘ１０"から"０ｘ２０"に変化し、時刻ｔ２ｂにおいてデータ信号Ｄ１が"０ｘ２０"から"０ｘ２１"に変化している。このため、時刻ｔ２から時刻ｔ３の期間においてデータ信号Ｄ１が３ビット遷移したこととなる。よって、よって、時刻ｔ３の時点で出力信号Ｄ２が"３"となる。また、時刻ｔ４においてデータ信号Ｄ１が"０ｘ２１"から"０ｘ２５"に変化している。このため、時刻ｔ３から時刻ｔ４の期間においてデータ信号Ｄ１が１ビット遷移（立ち下がり）したこととなる。よって、よって、時刻ｔ４の時点で出力信号Ｄ２が"１"となる。
【００８０】
このようにして、本実施の形態５では、図１６の出力信号Ｄ２を波形データとして表示することで、ユーザは、データ信号Ｄ１の各ビットの詳細な遷移までは把握せずとも、複数ビットの検証対象信号ごとに、遷移の状態を容易に把握できる。さらに、検証対象信号を複数のグループに分けているため、機能グループ単位ごとに検証対象のモジュールが概ね動作しているか否かを容易に把握することができる。特に、信号圧縮部ごとにサンプリングクロック信号の周波数を異なる値とすることで、機能グループに応じた適切なサンプリング間隔を実現できる。
【００８１】
尚、図１６の例では、クロック信号ＣＬＫ１の変化点ごとにより波形データを取得した場合と比べて、データ量を一律に１／８に削減することができる。尚、出力信号Ｄ２は、データ信号Ｄ１に比べて、出力信号Ｄ２の１周期分の位相がずれることとなるが、ユーザが遷移の状態を把握する分には影響が無視できるといえる。
【００８２】
さらに、出力信号Ｄ２の上限値を設けることが望ましい。例えば、データ信号Ｄ１が８ビットデータの場合、出力信号Ｄ２が"２５５"以上の値となった場合は以降"２５５"で固定するとよい。これにより、データ圧縮率を安定させることができる。
【００８３】
＜実施の形態６＞
本実施の形態６は、実施の形態５の応用例であり、上述した実施の形態３と同様に、所定期間内でのデータ信号Ｄ１の遷移回数をカウントするものである。つまり、本実施の形態６にかかる信号圧縮部は、所定の期間内で、複数の検証対象信号が遷移した合計回数を示す信号値を第１信号とするものである。これにより、複数ビットの入力信号であっても、遷移した回数を得ることができ、遷移した度合いを容易に把握することができる。また、遷移したビット自体の情報を除くことで、入力信号に対して圧縮することができる。
【００８４】
図１７は、本実施の形態６にかかる信号圧縮部の構成を示すブロック図である。本実施の形態６にかかる信号圧縮部は、複数ビット信号遷移回数加算部６４０と、信号出力部６５０とを備える。複数ビット信号遷移回数加算部６４０は、図１５の複数ビット信号遷移検出部５４０と同様に、複数の信号遷移検出部６４１１〜６４１ｎを備える。そして、信号遷移検出部６４１１〜６４１ｎのそれぞれは、後段にカウンタ６４２１〜６４２ｎを接続する。カウンタ６４２１〜６４２ｎは、図１１のカウンタ３４２と同等のものであればよい。
【００８５】
＜その他の実施の形態＞
上述した通り、論理回路の検証のためにエミュレータの実行結果を記録するには、その実行結果である波形データが大量となる。そして、これに伴う記録処理の影響により、論理回路シミュレーション全体の実行時間も増大する。つまり、検証ＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）又は製品開発期間が長くなってしまう。そのため、波形データを採取することはエミュレーション実行時間の増大を招きＴＡＴ短縮の阻害要因となっている。そこで、本実施の形態１〜６では、上述の通り、記録対象の波形データを削減することにより、この阻害要因を緩和して実行時間増大を防止することができる。
【００８６】
例えば、関連技術において入力及び出力信号の波形データを採取する場合、最速クロックの１／２周期のサンプリングとなるため（図８）、データ量及び実行時間が膨大となる。この場合、一般的なエミュレータを用いて最上位全端子からサンプリングによる波形採取を行った場合、通常時間に加えて、約１時間のオーバヘッドが生じる（一製品例：通常時に３分、波形採取時に１時間５分）。このオーバヘッドは、実行時間短縮を目的として使用するエミュレータにとって回避すべき課題である。
【００８７】
そこで、本実施の形態１〜６では、波形データを採取する際、関連技術に比べてデータ量を削減して実行オーバヘッドを短縮するものである。また、デバッグに必要な最低限の情報以外は削除するためデータ量を削減でき、データ格納メモリ容量及び実行時間を削減できる。尚、データ圧縮により正確な波形情報は欠落するが、信号が動作しているか確認を行うための必要な情報は残るため、むしろユーザの目視確認よる結果の検証においては把握が容易となり有益である。
【００８８】
尚、本実施の形態１〜６にかかる論理回路検証装置により出力される信号は、波形表示装置により波形データとして表示することができる。そのため、当該論理回路検証装置は、波形表示システムの一部として用いることができる。
【００８９】
本実施の形態１〜６にかかる信号圧縮部は、電子回路一般における入力信号又は出力信号を圧縮するために用いることができる。特に、半導体集積回路の検証のための入力信号又は出力信号を圧縮するために用いることが効果的である。
【００９０】
また、本実施の形態１〜６では、検証対象回路における波形取得時に、所望の入力及び出力信号（内部含む）に対して信号圧縮部を経由することで波形出力装置へ取り込まれるデータ容量の削減を行い、検証実行時間の短縮、メモリ容量の削減を実現する。そして、当該信号圧縮部は検証対象回路の製品仕様の最速周波数よりも遅い、任意のクロックによって波形取得対象となる信号のサンプリングを行うものである。特に、本実施の形態５及び６では、圧縮される信号は機能グループなどにより複数の信号にグループ化される。そして、各グループのクロックはそれぞれのグループの仕様に応じて適切な周波数に設定される。
【００９１】
さらに、本実施の形態１〜６の効果としては、論理回路シミュレーションにおいて波形データを取得するときのオーバヘッドを削減することができる。また、論理回路シミュレーションにおいて波形データを取得するときのデータ量を削減することができる。さらに、波形データのデータ量を削減することができる。また、検査対象回路として、特に半導体集積回路の波形データをサンプリングする際にも用いることができる。
【００９２】
さらに、上述した実施の形態のみに限定されるものではなく、既に述べた本明細書の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態１〜６では、ハードウェアの構成として説明したが、本実施の形態は、これに限定されるものではない。本実施の形態は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。
【００９３】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、ＢＤ(Blu-ray(登録商標) Disc)、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００９４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００９５】
１１  論理回路
１２  論理回路検証装置
１２１  検証対象信号
１２２  信号圧縮部
１２３  第１信号
１２４  第２信号
１０  コンピュータ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  ＩＦ
１０５  ＨＤＤ
１０６  回路情報
１０７  論理回路検証プログラム
２０  エミュレーションサーバ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  ＩＦ
２０５  ＨＤＤ
２０６  回路情報
２０７  テストベンチ
２０８  波形データ
２２  ネットワーク
２３  エンジニアリングワークステーション
２１０  論理回路検証装置
２１１  ＮＯＲ型フラッシュメモリ
２１１１  プログラム
２１２  ＤＤＲ
２１３  サンプリングクロックモジュール
２１４  信号圧縮部
２１５  信号圧縮部
２２０  検証対象回路
２２１  ＣＰＵ
２２２  バスコントロール
２２３  バスコントロール
２２４  モジュール
２３０  メモリ
２３１  波形データ
２４０  信号遷移検出部
２４１  立上信号検出部
２４２  立下信号検出部
２４３  ＯＲ回路
２４４  ＮＯＴ回路
２５０  信号出力部
２５１  ＸＯＲ回路
２５２  ＦＦ
２４０ａ  信号遷移検出部
２４１ａ  立上信号検出部
２４２ａ  立下信号検出部
２４３ａ  ＮＯＲ回路
２５０ａ  信号出力部
３４０  信号遷移回数加算部
３４１  信号遷移検出部
３４２  カウンタ
３５０  信号出力部
４１０  論理回路検証装置
４１１  クロックモジュール
４１２  サンプリングクロックモジュール
４１３  信号圧縮部
４１４  信号圧縮部
４４０  複数ビット信号遷移検出部
４４１  信号遷移検出部
４４２  信号遷移検出部
４４ｎ  信号遷移検出部
４５０  信号出力部
４５１  ＯＲ回路
５１０  論理回路検証装置
５１１  クロックモジュール
５１２  サンプリングクロックモジュール
５１３  信号圧縮部
５１４  信号圧縮部
５１５  信号圧縮部
５１６  信号圧縮部
５４０  複数ビット信号遷移検出部
５４１  信号遷移検出部
５４２  信号遷移検出部
５４ｎ  信号遷移検出部
５５０  信号出力部
５５１  合算部
６４０  複数ビット信号遷移回数加算部
６４１１  信号遷移検出部
６４１２  信号遷移検出部
６４１ｎ  信号遷移検出部
６４２１  カウンタ
６４２２  カウンタ
６４２ｎ  カウンタ
６５０  信号出力部
６５１  合算部
ＣＬＫ１  クロック信号
ＣＬＫ２  サンプリングクロック信号
ＣＬＫ２ａ  サンプリングクロック信号
ＣＬＫ２ｂ  サンプリングクロック信号
ＣＬＫ２ｃ  サンプリングクロック信号
ＣＬＫ２ｄ  サンプリングクロック信号
ＲＳ  リセット信号
ＭＳ  モード設定信号
Ｄ１  データ信号
Ｄ１ａ  入力信号
Ｄ１ｂ  結果信号
Ｄ１１  データ信号
Ｄ１２  データ信号
Ｄ１ｎ  データ信号
Ｄ１１ａ  データ信号
Ｄ１１ｂ  結果信号
Ｄ１２ａ  データ信号
Ｄ１２ｂ  結果信号
Ｄ２  出力信号
Ｄ２ａ  出力信号
Ｄ２ｂ  出力信号
Ｄ２Ｘ  信号
Ｄ２Ｙ  信号
ｔ０  時刻
ｔ１  時刻
ｔ２  時刻
ｔ３  時刻
ｔ４  時刻
ｔ５  時刻
ｔ６  時刻
ｔ０ａ  時刻
ｔ２ａ  時刻
ｔ２ｂ  時刻
ｔ５ａ  時刻
ＵＰ  立ち上がりフラグ
ＤＮ  立ち下がりフラグ
Ｄ２Ｐ  前回の出力信号
Ｄ２Ｃ  今回の出力信号
【図１】
2013164709.tif 000003
【図２】
2013164709.tif 000004
【図３】
2013164709.tif 000005
【図４】
2013164709.tif 000006
【図５】
2013164709.tif 000007
【図６】
2013164709.tif 000008
【図７】
2013164709.tif 000009
【図８】
2013164709.tif 000010
【図９】
2013164709.tif 000011
【図１０】
2013164709.tif 000012
【図１１】
2013164709.tif 000013
【図１２】
2013164709.tif 000014
【図１３】
2013164709.tif 000015
【図１４】
2013164709.tif 000016
【図１５】
2013164709.tif 000017
【図１６】
2013164709.tif 000018
【図１７】
2013164709.tif 000019