(57)【要約】【課題】検証対象である論理回路の動作や状態を階層的に示すことで、実施したシミュレーションで論理回路がどのように動作し問題に至ったのかを理解することを容易にすること。【解決手段】表示画面１００には、波形表示領域１０１と補足情報表示領域１０２を有する。波形表示領域１０１には、周知の描画システム関数を用いて、信号の時間方向の波形の左から右の時間の流れが示される波形図１０３が表示されている。補足情報表示領域１０２には、波形図１０３内の波形が何を意味しているのか（この通信用マクロの例では何が転送されているのか）を示すシーケンス図１０４が補足情報として追加表示されている。このシーケンス図１０４にはどのようなパケット（データの固まり）がバス上でどの方向で、どのような順序で転送されているか、を示している。【選択図】図１
2009230245.tif 000002
【特許請求の範囲】
【請求項１】
検証対象の論理回路の動作をシミュレーションするシミュレート部と、
前記シミュレート部でシミュレーションした結果を保存するシミュレーション保存部と、
前記シミュレーションした結果より特定の時間帯の前記検証対象の論理回路の動作を波形として表示する波形表示部と、
前記検証対象の論理回路の動作を定義した状態遷移式が保存されている状態遷移保存部と、
前記特定の時間帯の論理回路の動作に該当する状態遷移式より補足情報を生成し、前記波形表示部に表示された波形と同時に表示する補足情報表示部と
を有することを特徴とする論理支援検証装置。
【請求項２】
前記シミュレート部は、ホスト回路とデバイス回路とを含む論理回路の前記ホスト回路と前記デバイス回路間の送受信信号をシミュレートすることを特徴とする請求項１に記載の論理支援検証装置。
【請求項３】
前記補足情報表示部は、前記特定の時間帯での前記ホスト回路と前記デバイス回路間の転送順序を示すシーケンス図を作成し前記補足情報として表示することを特徴とする請求項２に記載の論理支援検証装置。
【請求項４】
コンピュータを用い、
検証対象の論理回路の動作をシミュレート部でシミュレーションする工程と、
前記シミュレート部でシミュレーションした結果をシミュレータ結果保存部に保存する工程と、
前記シミュレーションした結果より特定の時間帯の前記検証対象の論理回路の動作を波形として波形表示部に表示する工程と、
状態遷移保存部に保存された前記検証対象の論理回路の動作を定義した状態遷移式より前記特定の時間帯の論理回路の動作に該当する情報を新たに生成する工程と、
前記波形表示部に表示された波形と同時に前記情報を補足情報表示部に表示する工程と、
を有することを特徴とする論理検証方法。
【請求項５】
前記シミュレーションする工程において、前記シミュレート部は、ホスト回路とデバイス回路とを含む論理回路の前記ホスト回路と前記デバイス回路間の送受信信号をシミュレートすることを特徴とする請求項４に記載の論理検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、検証対象の時系列に沿った信号波形を表示することにより検証対象の論栄検証を支援する論理支援検証装置および論理検証方法に関する。
【背景技術】
【０００２】
論理シミュレーションの結果を確認する際に、従来では論理検証の対象である論理回路の信号の値の時系列表記である波形表記を確認することで、動作を確認していた。また、何らかの不具合を検出するための「アサーション」を回路の記述中に追加することで、不具合を自動的に検出する方法もあるが、その不具合を検出した際に何が行われていたのかの確認作業もやはり、波形図に依存していた。
【０００３】
動作が仕様を満足しているか、アサーションによる検出がどのような問題であるのか、を調査するためには、波形図の上で論理回路の動作を把握する必要がある。しかし、波形図だけでは全体的な流れが見えづらいため、調査に時間がかかる要因となる。したがって、従来では、「トランザクション・レコーディング」という概念を用いて、バスの上でのトランザクション（ＭＰＵからのＲｅａｄやＷｒｉｔｅなど、一個の独立したデータ転送処理の単位での動作）に注釈の形式で情報を波形図に追加する手法がある（たとえば、下記特許文献１および下記特許文献２を参照。）。
【０００４】
【特許文献１】米国特許第７，０５５，１１６号明細書
【特許文献２】米国特許第６，１６３，７６３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した特許文献１および特許文献２の従来技術は、あくまでもバス上での個々のトランザクションのレベルにとどまっており、全体的な流れを示すまでには至っておらず、相変わらず状態遷移やデータフローなどを紙などにメモ書きしながら解析を実施しなければならないという問題がある。
【０００６】
また、現在の傾向ではシステム間の通信（例：ＵＳＢ２．０、ＩＥＥＥ１３９４、Ｓｅｒｉａｌ‐ＡＴＡ、ＰＣＩ‐Ｅｘｐｒｅｓｓ）はシリアルな高速に値を変化させる信号を用いて実現する場合が多い。その場合、シミュレーション実施の際の波形を全部表示すると殆ど波形として意味を成さないほど、細かい波形の変化となってしまう傾向があるという問題がある。たとえば、信号変化は約１ＧＨｚ単位であるが、論理回路の状態遷移はｍｓｅｃ単位である。
【０００７】
このような場合、全体を捉えようと時間方向の縮尺を大きくしてしまうと個々の波形が何を意味するか全くわからなくなるという問題がある。一方で、個々の波形を見ようと時間方向の縮尺を小さくしてしまうと全体的な状態遷移の流れが全く見えなくなる問題がある。
【０００８】
このように、何らかの不具合が発生し、その要因を分析する作業を実行する際には全体を捉えるために、あるいは、詳細な動作の（信号値の）問題となる動作を探すために、縮尺を大きくしたり、小さくしたりを繰り返す必要があり、手間と時間が掛かる上に今どのような状況下であるのか事象発生の時間や発生順序をメモしながら分析するなどのペーパーワークが要求されているのが実情である。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、検証対象である論理回路の動作や状態を階層的に示すことで、実施したシミュレーションで論理回路がどのように動作し問題に至ったのかを理解することを容易にすることができる論理支援検証装置および論理検証方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、この論理支援検証装置および論理検証方法は、検証対象の論理回路の動作をシミュレーションし、前記シミュレート部でシミュレーションした結果を保存し、前記シミュレーションした結果より特定の時間帯の前記検証対象の論理回路の動作を波形として表示し、前記特定の時間帯の論理回路の動作に該当する状態遷移式より補足情報を生成し、前記波形表示された波形と同時に表示することを要件とする。
【発明の効果】
【００１１】
本発明にかかる論理支援検証装置および論理検証方法によれば、検証対象である論理回路の動作や状態を階層的に示すことで、実施したシミュレーションで論理回路がどのように動作し問題に至ったのかを理解することを容易にすることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、この発明にかかる論理支援検証装置および論理検証方法の好適な実施の形態を詳細に説明する。
【００１３】
実施の形態では、論理回路の動作の状況が階層的に表現可能であることに着目し、それを波形図と連動させて表示することで、分析の工数を削減する。対象の論理回路の動作や状態を階層的に示すことで、実施したシミュレーションで論理回路がどのように動作し問題に至ったのかを理解することが容易となる。それを波形図と連動させることで、「今何をしようとしていたのか」「何がどこで問題であったのか（アサーションが発火したのがどこか）」を一目でわかるような仕組みを提供する。
【００１４】
（補足情報表示例）
図１は、波形図および波形図に連動表示される補足情報の表示例を示す説明図である。図１において、表示画面１００には、波形表示領域１０１と補足情報表示領域１０２を有する。波形表示領域１０１には、周知の描画システム関数を用いて、信号の時間方向の波形が左から右の時間の流れが示される波形図１０３が表示されている。
【００１５】
また、補足情報表示領域１０２には、波形図１０３内の波形が何を意味しているのか（この通信用マクロの例では何が転送されているのか）を示すシーケンス図１０４が補足情報として追加表示されている。このシーケンス図１０４にはどのようなパケット（データの固まり）がバス上でどの方向で、どのような順序で転送されているか、を示している。
【００１６】
ここで例として挙げられているシーケンス図１０４では、“ＣＳＰＬＩＴ”ＰａｃｋｅｔがＨｏｓｔからＤｅｖｉｃｅに送信され、その後に“ＩＮ”Ｐａｃｋｅｔが同様にＨｏｓｔからＤｅｖｉｃｅに送信されていることを示している。波形図１０３だけではどのようなパケットがどのような順序で転送されているかが分かりづらいが、このシーケンス図１０４のような補足情報が表示されることで、今バス上に何が発生しているかが容易に把握可能となる。
【００１７】
また、波形図１０３上で全体的な（ｍｓｅｃ単位での）状態の変化を把握しながら、個々の信号の詳細な（数ｎｓｅｃ単位での）状態変化を同時に把握するという、従来ではペーパーワークが必要な作業を支援するために、波形図１０３上で複数の時間方向の縮尺を持たせ、それにさらに動作の状況を補足情報として表示する機能を組み合わせることで、分析をより容易にする。
【００１８】
（論理支援検証装置の全体構成）
図２は、実施の形態にかかる論理支援検証装置の全体構成図である。実施の形態にかかる論理支援検証装置２００では、ワークステーション２０１上のＯＳで動作する論理シミュレータ２０２とその画面表示システム２０３、およびユーザ２０４との関連を示している。論理シミュレータ２０２は、ユーザ２０４からの指示に応じて論理回路やそのテストベンチをシミュレーションし、そのシミュレーション結果２２０を波形情報として内部のメモリ上、あるいは外部のハードディスクなどの記憶領域上に保存する。
【００１９】
波形表示部２２１では、その保存した内容を参照して、ユーザ２０４からの指示に従った時間範囲中の信号の時間波形を波形表示領域１０１に表示する。ユーザ２０４は必要に応じて表示する時間範囲を変更するための制御をマウスやキーボードを経由して波形表示部２２１に伝え、その結果に応じた表示を波形表示領域１０１に波形表示し直す。
【００２０】
補足情報表示部２２２は、波形表示部２２１により波形表示領域１０１に表示されている波形に該当する補足情報を表示する。補足情報として必要な追加の情報は状態遷移式というファイルによりユーザ２０４が与える。
【００２１】
波形表示部２２１と補足情報表示部２２２は、多くのＥＤＡ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）ツールがそうであるように、Ｗｉｎｄｏｗシステム２３１上に構築したＧＵＩを持つアプリケーションプログラムで実現することができる。Ｗｉｎｄｏｗシステム２３１からの出力によりディスプレイ２３２で図１に示した波形図１０３および補足情報（シーケンス図１０４）を表示する。本実施の形態では単一のアプリケーションで波形表示部２２１と補足情報表示部２２２を制御する。ただし、複数のアプリケーションで実現する場合でも動作の方式は同一である。また、本実施の形態では補足情報表示部２２２には上の例で示したシーケンス図１０４を表示する場合を説明するが、階層化した状態遷移図を表示してもよい。
【００２２】
補足情報表示部２２２において補足説明（シーケンス図１０４）を表示するためには以下の情報が必要となる。
・ＶＣＤファイルなど、信号の時系列データファイル（ファイルの実体でなく、シミュレータ内部に保存されている値を直接参照してもよい）。すなわち、シミュレーション結果２２０。
・波形表示部２２１で表示されている時間範囲
・シーケンス図１０４に表す実体（本例ではＵＳＢの“Ｈｏｓｔ”と“Ｄｅｖｉｃｅ”）の宣言
・通信状態（本例であるＵＳＢではパケット（フレーム）の開始の条件など）の宣言と定義
上記「実体」や「状態」の宣言や定義は、「状態遷移式」と呼ばれる一連の条件式の集合により実現することができる。
【００２３】
また、補足情報表示部２２２において表示される状態の抽象度（表示レベルとここでは呼ぶこととする）の宣言と定義についても、「実体」や「状態」の宣言・定義と同様に「状態遷移式」の一部により実現することができる。
【００２４】
また、補足情報表示制御部２２３は、アプリケーションプログラムの一部であり、シミュレーション結果２２０および状態遷移式２０５に基づいて補足情報表示部２２２に何を表示させるかを判断し、補足情報表示部２２２をその結果に基づいて制御する。
【００２５】
（波形表示部２２１および補足情報表示部２２２と補足情報表示制御部２２３との関係）
図３は、波形表示部２２１および補足情報表示部２２２と補足情報表示制御部２２３との関係を示すブロック図である。図３において、補足情報表示制御部２２３は、状態値生成部３０１と表示レベル判定部３０２と表示部分判定部３０３とを有する。ＶＣＤなどのシミュレーション結果２２０は、波形表示部２２１に入力されるとともに、状態値生成部３０１に入力される。上述した状態遷移式２０５も状態値生成部３０１に入力される。状態値生成部３０１は、状態値時系列ファイル３１０を生成する。状態値時系列は表示レベル判定部３０２、表示部分判定部３０３および補足情報表示部２２２に入力される。
【００２６】
また、波形表示部２２１は、シミュレーション結果２２０により波形を表示し、表示時間を表示レベル判定部３０２および表示部分判定部３０３に出力する。表示レベル判定部３０２は、状態値時系列ファイル３１０と表示時間により、状態値時系列ファイル３１０の表示レベルを判定する。そして、判定結果となる判定レベルを表示部分判定部３０３に出力する。
【００２７】
表示部分判定部３０３は、状態値時系列ファイル３１０と表示時間と表示レベルにより、補足情報表示部２２２に表示させる部分を判定し、補足情報表示部２２２に指示する。補足情報表示部２２２は、表示部分指示に従って状態値時系列ファイル３１０を補足情報として表示する。
【００２８】
補足情報となるシーケンス図１０４ではパケット（フレーム）単位でのデータのやりとりを一番下位の詳細な表示レベル（ここではパケットレベルと呼ぶ）として定義することとする。その上位に位置する表示レベルを、２個以上のパケットの転送により構成されるトランザクションレベルとして定義する。トランザクションは一つのデータの転送、あるいは、そのための準備の一つであり、ＵＳＢでの一つのＥｎｄＰｏｉｎｔ毎にＨｏｓｔが主導して実施する転送単位である。
【００２９】
補足情報表示部２２２で表示される表示レベルは、波形表示部２２１から得られる現時点での表示時間の情報に基づいて表示レベル判定部３０２により判定される。表示範囲が２つのトランザクションを十分含んでいないほど小さい（詳細）な場合はパケットレベルで表示し、２つかそれ以上のトランザクションを含んでいる場合はトランザクションレベルで表示する。
【００３０】
（各表示レベルにおけるシーケンス図）
図４は、各表示レベルにおけるシーケンス図１０４である。図４において、左のシーケンス図１０４は、パケットレベルでのシーケンス図４０１であり、右のシーケンス図１０４は、トランザクションレベルでのシーケンス図４０２である。
【００３１】
さらに上位の表示レベルとしては、マクロを利用するシステムのＭＰＵ（ＣＰＵあるいはＭＣＵ）からの観点から見える一連のデータ集合（ここではトランスファと呼ぶ）が考えられる。
【００３２】
さらに、その上位の表示レベルとしてはバスの状態（常時接続されているとは限らず、切断された状態、接続されたが未だバスをどのようなモードで利用するか不明な状態、バスの利用モードが決定されパケット（フレーム）通信が可能な状態、電力節約のためのサスペンド状態と、そのサスペンド状態からパケット（フレーム）転送可能状態に移行する途中状態であるウェークアップ状態）などが存在する。この例は高速シリアル通信では一般的に用いられているＵＳＢ２．０規格に従っているが、他にもさまざまな通信規格がその用途に応じて存在する。
【００３３】
（状態遷移式の内容）
状態遷移式２０５では状態遷移を下位階層から順に定義する。定義の仕方については色々形式が考えられ、特定の記述方式である必要性はない。本実施の形態では以下に示す定義の文法を使用する。
【００３４】
図５は、状態遷移式２０５の一記述例を示す説明図である。図５に示す状態遷移式２０５のうち、符号５０１は、レイヤー定義の記述であり、ここでは、信号、パケット、トランザクションをレイヤーとして定義している。符号５０２は、レイヤー定義された信号に関する状態値の記述であり、符号５０２ａは状態値宣言部、符号５０２ｂは状態値定義部である。符号５０３はレイヤー定義されたパケットに関する状態値の記述であり、符号５０４は、レイヤー定義されたトランザクションに関する状態値の記述である。
【００３５】
シーケンス図１０４に特化した情報としては、何をパケット（フレーム）の開始と定義するか（パケットの開始・終了の定義）、通常シリアル通信系は双方向バスとなるのでこの情報が必要となるため方向を示す情報をどこから持ってくるか（方向の定義）、図の表示の際何を情報として表示するか（パケット表示情報の定義）を定義する必要がある。
【００３６】
ＵＳＢ２．０を例とした場合、パケットの開始・終了の定義については「パケットのＳＯＰ（Ｓｔａｒｔ  ｏｆ  ｐｏｉｎｔ）シーケンス開始時点から、ＥＯＰ（Ｅｎｄ  ｏｆ  ｐｏｉｎｔ）シーケンス終了時点までを１個のパケットとする」とする。また、方向の定義については「方向はシミュレーション環境で、対向としてのモデルから持ってくる（他にも参照可能な情報・信号はある）」とする。
【００３７】
また、パケット表示情報の定義については「表示する情報としては重要度から考えて、パケットＩＤ、エンドポイント番号、データペイロードを持つパケットである場合はそのサイズや（ＣＲＣエラー、ＢｉｔＳｔｕｆｆエラーなどの）エラーの有無」とする。これら情報を図上に表示するために必要な情報を図６に定義する。
【００３８】
図６は、状態遷移式２０５内のシーケンス特化情報の記述例を示す説明図である。図６に示した状態遷移式２０５のうち、符号６０１が方向の定義に関する記述であり、符号６０２がパケットの開始・終了の定義に関する記述であり、符号６０３がパケット表示情報の定義に関する記述である。
【００３９】
図７は、状態遷移式２０５の具体例を示す説明図である。図７において、（Ａ）はシミュレーション結果２２０となる波形図１０３であり、（Ｂ）は状態遷移式２０５のパケットデータの記述例であり、（Ｃ）は状態値時系列ファイル３１０生成時のパケットデータである。
【００４０】
波形図１０３上での表示が、例えば１パケット（フレーム）の範囲内である場合、シーケンス図１０４ではその該当するパケット（フレーム）の前後が分かれば良いので、波形図１０３で表示されている時間よりも補足情報で表示される時間（領域）を大きくすることが「分かりやすさ」を向上させるために必要である。
【００４１】
この「どこまで表示させるか」についても、予め状態遷移式２０５の中で定義させ、あるいは、ＧＵＩ上のボタンで変更操作を許すこととしてもよい。波形図１０３上での表示が、１トランザクションを含む場合、シーケンス図１０４では該当するトランザクションとその前後のトランザクションを表示させる、シーケンス図１０４は先ほどの例でのパケット（フレーム）単位ではなく、トランザクション単位とする、などの制御で、より見やすい図を解析作業実行者の好みや状況に応じて選択させることもできる。
【００４２】
（状態値時系列ファイル３１０の例）
図８は、状態値時系列ファイル３１０の一例を示す説明図である。図８において、（Ａ）はシミュレーション結果２２０であるパケットの発生状況を示している。（Ａ）では、出力パケット８０１、データパケット８０２、応答パケット８０３の順にパケットが発生している。これらのパケット８０１〜８０３で１トランザクションを構成する。（Ｂ）は、（Ａ）の場合の状態値時系列ファイル３１０である。
【００４３】
状態値時系列ファイル３１０では、ヘッダ８０４に示したパケットやドランザクションの属性、すなわち、表示レベル（Ｌｅｖｅｌ）、種別（ｔｙｐｅ）、開始時刻（Ｓｔａｒｔ）、終了時刻（ｅｎｄ）、方向情報（ｉｎｆｏ）が状態値時系列ファイル３１０に保存される。たとえば、１行目で示されているパケットは、出力パケットであり、１００ｎｓｅｃから１５０ｎｓｅｃ間で発生し、ｈｏｓｔからｄｅｖｉｃｅに送信されている。また、４行目では、トランザクションの状態値時系列ファイル３１０が示されている。トランザクションでは、方向情報は不要である。
【００４４】
パケット８０１〜８０３の集合がトランザクションを構成するか否かは、最後に発生したパケットの属性で識別することができる。たとえば、ｈｏｓｔが主導する動作であれば、ｈｏｓｔからパケットが出力された場合、最初のパケット出力がトランザクションの開始となり、相手先から応答（ＡＣＫ）を受け取った場合、トランザクションの終了であることがわかる。
【００４５】
（状態値生成処理手順）
図９は、状態値生成部３０１による状態値生成処理手順を示すフローチャートである。まず、シミュレーション結果２２０を読み込み、波形上の時刻ｔをｔ＝０に設定する（ステップＳ９０１）。そして、状態遷移式２０５によりフレームの開始の時刻判定をおこなう（ステップＳ９０２）。フレーム開始の時刻でない場合（ステップＳ９０２：Ｎｏ）、微小時間Δｔ分時間を進めて（ステップＳ９０３）、波形が終了したか否かを判断する（ステップＳ９０４）。波形が終了した場合（ステップＳ９０４：Ｙｅｓ）、状態値生成処理を終了する。一方、波形が終了していない場合（ステップＳ９０４：Ｎｏ）、ステップＳ９０２に戻る。
【００４６】
ステップＳ９０２において、フレーム開始時刻である場合（ステップＳ９０２：Ｙｅｓ）、パケット終了までの波形からパケット属性（図８（Ｂ）を参照。）を取得する（ステップＳ９０５）。そして、パケット終了まで時間を進める（ステップＳ９０６）。そして、パケット開始および終了時間、パケット属性のデータを状態値時系列ファイル３１０に保存する（ステップＳ９０７）。このあと、トランザクションが開始されたか否かを判定する（ステップＳ９０８）。トランザクションの開始判定は、保存されたパケット属性のうち、種別（ｔｙｐｅ）によりトランザクションの開始か否かを判定する。たとえば、種別（ｔｙｐｅ）が“ＯＵＴ”であれば、トランザクションの開始と判定する。トランザクションが開始されていない場合（ステップＳ９０８：Ｎｏ）、ステップＳ９１０に移行する。
【００４７】
一方、トランザクションが開始された場合（ステップＳ９０８：Ｙｅｓ）、トランザクションの開始時刻を状態値時系列ファイル３１０に追加する（ステップＳ９０９）。そして、ステップＳ９１０に移行する。ステップＳ９１０では、トランザクションが終了したか否かを判定する（ステップＳ９１０）。このトランザクションの終了も、トランザクションの開始と同様、パケットの種別（ｔｙｐｅ）により判定する。たとえば、種別（ｔｙｐｅ）が“ＡＣＫ”であれば、トランザクションの終了と判定する。
【００４８】
トランザクションの終了でない場合（ステップＳ９１０：Ｎｏ）、ステップＳ９０２に戻る。一方、トランザクションの終了である場合（ステップＳ９１０：Ｙｅｓ）、トランザクション終了時刻およびトランザクション属性を状態値時系列ファイル３１０に保存し（ステップＳ９１１）、ステップＳ９０２に戻る。このような処理手順により、処理終了時点で状態値時系列ファイル３１０が生成される。
【００４９】
（表示レベル判定処理手順）
図１０は、表示レベル判定部３０２による表示レベル判定処理手順を示すフローチャートである。図１０において、波形表示部２２１から表示時間を取得する（ステップＳ１００１）。そして、トランザクションがあるか否かを判断する（ステップＳ１００２）。トランザクションがある場合（ステップＳ１００２：Ｙｅｓ）、表示レベルとしてトランザクションを設定する（ステップＳ１００３）。そして、ステップＳ１００７に移行する。
【００５０】
また、ステップＳ１００２において、トランザクションがない場合（ステップＳ１００２：Ｎｏ）、パケットがあるか否かを判断する（ステップＳ１００４）。パケットがある場合（ステップＳ１００４：Ｙｅｓ）、表示レベルとしてパケットを設定する（ステップＳ１００５）。一方、パケットがない場合（ステップＳ１００４：Ｎｏ）、表示レベルとして表示なしと設定する（ステップＳ１００６）。このあと、ステップＳ１００７に移行する。
【００５１】
ステップＳ１００７では、トランザクション（またはパケット）の終了時刻まで時間を進めて（ステップＳ１００７）、表示時間が経過したか否かを判断する（ステップＳ１００８）。表示時間が経過していない場合（ステップＳ１００８：Ｎｏ）、ステップＳ１００２に戻る。一方、表示時間が経過した場合（ステップＳ１００８：Ｙｅｓ）、一連の表示レベル判定処理を終了する。
【００５２】
（表示部分判定処理手順）
図１１は、表示部分判定部３０３による表示部分判定処理手順を示すフローチャートである。まず、ラベル（ＨｏｓｔやＤｅｖｉｃｅ）とその時間軸を描画する（ステップＳ１１０１）。表示時間を取得して（ステップＳ１１０２）。つぎに出現する表示レベルがトランザクションかパケットかを判断する（ステップＳ１１０３）。
【００５３】
トランザクションである場合（ステップＳ１１０３：トランザクション）、トランザクション開始まで時間を進めて（ステップＳ１１０４）、そのあと、トランザクション終了まで時間を進める（ステップＳ１１０５）。そして、そのトランザクションが表示時間内であるか否かを判断する（ステップＳ１１０６）。表示時間内である場合（ステップＳ１００６：Ｙｅｓ）、補足情報表示部２２２によりトランザクション描画処理を実行して（ステップＳ１００７）、ステップＳ１１１２に移行する。一方、表示時間外である場合（ステップＳ１１０６：Ｎｏ）、ステップＳ１１１２に移行する。
【００５４】
また、ステップＳ１１０３において、表示レベルがパケットである場合（ステップＳ１１０３：パケット）、パケット開始まで時間を進めて（ステップＳ１１０８）、そのパケット終了まで時間を進める（ステップＳ１１０９）。そして、パケットが表示時間内か否かを判断する（ステップＳ１１１０）。表示時間内であれば（ステップＳ１１１０：Ｙｅｓ）、補足情報表示部２２２によりパケット描画処理を実行して（ステップＳ１１１１）、ステップＳ１１１２に移行する。一方、表示時間外である場合（ステップＳ１１１０：Ｎｏ）、ステップＳ１１１２に移行する。
【００５５】
このあと、表示時間が経過したか否かを判断し（ステップＳ１１１２）、経過していなければ（ステップＳ１１１２：Ｎｏ）、ステップＳ１１０３に戻る。一方、経過していれば（ステップＳ１１１２：Ｙｅｓ）、一連の処理を終了する。
【００５６】
（トランザクション描画処理手順）
図１２は、トランザクション描画処理手順を示すフローチャートである。図１２において、状態値時系列ファイル３１０からトランザクションの開始時刻、終了時刻、方向、ラベル内容の文字列（図８（Ｂ）の場合は“ＯｕｔＴｒａｎｓ”）、描画時間範囲を取得する（ステップＳ１２０１）。そして、トランザクションの矢印始点位置を、描画時間範囲、トランザクションの開始時刻、終了時刻、画面高さ、方向から計算する（ステップＳ１２０２）。
【００５７】
つぎに、トランザクションの矢印終点位置を、描画時間範囲、トランザクションの開始時刻、終了時刻、画面高さ、方向から計算する（ステップＳ１２０３）。そして、矢印始点と矢印終点を結ぶ矢印を描画する（ステップＳ１２０４）。このあと、トランザクションのラベル表示位置を、描画時間範囲、描画幅、トランザクションの矢印始点位置および終点位置、ラベルの文字列長さから計算する（ステップＳ１２０５）。そして、表示位置が定まったラベルを描画する（ステップＳ１２０６）。
【００５８】
（パケット描画処理手順）
図１３は、パケット描画処理手順を示すフローチャートである。図１３において、状態値時系列ファイル３１０からパケットの開始時刻、終了時刻、方向、ラベル内容の文字列（図８（Ｂ）の場合は“Ｏｕｔ”、“ＤＡＴＡ”、“ＡＣＫ”）、描画時間範囲を取得する（ステップＳ１３０１）。そして、パケットの矢印始点位置を、描画時間範囲、パケットの開始時刻、終了時刻、画面高さ、方向から計算する（ステップＳ１３０２）。
【００５９】
つぎに、パケットの矢印終点位置を、描画時間範囲、パケットの開始時刻、終了時刻、画面高さ、方向から計算する（ステップＳ１３０３）。そして、矢印始点と矢印終点を結ぶ矢印を描画する（ステップＳ１３０４）。このあと、パケットのラベル表示位置を、描画時間範囲、描画幅、パケットの矢印始点位置および終点位置、ラベルの文字列長さから計算する（ステップＳ１３０５）。そして、表示位置が定まったラベルを描画する（ステップＳ１３０６）。
【００６０】
このような一連の処理により、論理回路の動作の状況が階層的に表現可能であることに着目し、それを図１に示したように波形図１０３と連動させて表示することで、分析の工数を削減することができる。したがって、対象の論理回路の動作や状態が階層的に示されるため、実施したシミュレーションで論理回路がどのように動作し問題に至ったのかを理解することが容易となる。それを波形図１０３と連動させているために、「今何をしようとしていたのか」「何がどこで問題であったのか（アサーションが発火したのがどこか）」が一目でわかることとなる。
【００６１】
（階層化状態遷移）
なお、ここまでは波形図１０３＋シーケンス図１０４を例として説明したが、そのほかにも表示することが有意義となる図として（階層化した）状態遷移図がある。ここでいう「状態」とは論理回路が実行中の動作（例：ＦＩＦＯの場合、「空である」、「ＦＩＦＯがＦＵＬＬである」、「それ以外」、が該当）や、バスプロトコル上でのバスの動作のある時点での動作（例：ＵＳＢなどシリアル転送系では「通信可能状態」、「バス初期化状態」、「バス省電力状態」、「バス省電力復帰状態」、などに分類される）を示す。この状態遷移図についても、シーケンス図１０４と同様に階層毎に定義を実施しておき、状態遷移図に特化した情報取得の手順を定義しておくことで、同様に表現可能となる。
【００６２】
図１４は、階層化状態遷移図の一例を示す説明図である。ここでの基本的な記述方法はＵＭＬ２．０の状態図の記述方法をベースとする。この階層化状態遷移図の該当する状態遷移式２０５を以下に示す。基本的な構成はシーケンス図１０４と変わらず、１階層が一つの状態を示すことと、式の記述方法にやや相違がある以外は同一である。
【００６３】
図１５は、図１４に示した階層化状態遷移図の状態遷移式２０５の一例を示す説明図である。図１５に示した状態遷移式２０５において、符号１５０１はレイヤー宣言部であり、符号１５０２は状態宣言部であり、符号１５０３は、状態遷移定義部である。
【００６４】
図１６および図１７は、階層化状態遷移図の表示例を示す説明図である。図１６は、Ｗによる遷移が波形図１０３に表示されているときの補足情報の表示範囲を示しており、図１７は、Ｘによる遷移が波形図１０３で表示されているときの補足情報の表示範囲を示している。波形表示部２２１で表示される信号による状態遷移の発生がどの階層での遷移となるかにより、補足情報表示部２２２に表示される遷移を変える。波形表示部２２１で状態遷移が発生していない場合は現時点での最下層での状態を表示する。ただし、他の階層の表示をＧＵＩにより指定することも可能である。
【００６５】
図１８は、図１４に示した階層化状態遷移図の表示を実現するための状態値時系列ファイル３１０を示す説明図である。図１８において、（Ａ）は、シミュレーション結果２２０であるＶＣＤでの波形、（Ｂ）は状態遷移式２０５、（Ｃ）は状態値時系列、（Ｄ）は状態値時系列ファイル３１０である。（Ｂ）において、図１４を参照すると、レイヤーが上位（ｔｏｐｍｏｓｔ）のときは、状態（Ｓｔａｔｕｓ）はＡまたはＢである。Ｘが成立すると、状態がＡからＢに遷移する。また、下位のレイヤーＡにおいて、状態はＡ１またはＡ２である。Ｗが成立すると、状態がＡ１からＡ２に遷移する。
【００６６】
（Ｃ）において、状態Ａ１のときにＷが成立、すなわち、（Ａ）のｓｉｇｗ＿ｉが１００ｎｓｅｃで立ち上がると、状態Ａ２に遷移し、その後、Ｘが成立、すなわち、（Ａ）のｓｉｇｘ＿ｉが１８０ｎｓｅｃで立ち上がると、上位のレイヤーの状態Ｂに遷移することを示している。
【００６７】
（Ｄ）の状態値時系列ファイル３１０では、ヘッダ１８０１に示した順番、すなわち、表示レベル（Ｌｅｖｅｌ）、状態（ｓｔａｔｕｓ／ｅｖｅｎｔ）、開始時刻（Ｓｔａｒｔ）、終了時刻（ｅｎｄ）、方向情報（ｉｎｆｏ）が状態値時系列ファイル３１０に保存される。たとえば、１行目では、上位のレイヤーの状態Ａの下位の状態Ａ２の開始時刻が１００ｎｓｅｃであることを示している。
【００６８】
図１９は、図１６および図１７を表示するための表示レベル判定処理手順を示すフローチャートである。まず、表示時間を取得して（ステップＳ１９０１）、レイヤーの上位（ｔｏｐｍｏｓｔ）から最下層（ｄｅｐｔｈ−ｆｉｒｓｔ）までの表示レベルを順次列挙する（ステップＳ１９０２）。図１６および図１７の場合は、ｔｏｐｍｏｓｔ⇒Ａ⇒Ａ１⇒Ａ２⇒Ｂの順に列挙する。
【００６９】
そして、この列挙された表示レベルの集合の中から、先頭レベルを取り出し（ステップＳ１９０３）、表示時間内に先頭レベルの状態遷移があるか否かを判断する（ステップＳ１９０４）。状態遷移がある場合（ステップＳ１９０４：Ｙｅｓ）、表示レベルとして先頭レベルを設定する（ステップＳ１９０５）。そして、一連の処理を終了する。
【００７０】
一方、状態遷移がない場合（ステップＳ１９０４：Ｎｏ）、先頭レベルを削除し（ステップＳ１９０６）、列挙した表示レベルの集合が空であるか否かを判断する（ステップＳ１９０７）。空でない場合（ステップＳ１９０８：Ｎｏ）、ステップＳ１９０３に戻る。一方、空である場合（ステップＳ１９０８：Ｙｅｓ）、表示開始時間の状態を含むレベルを表示レベルに設定する（ステップＳ１９０８）。これにより、一連の処理を終了する。
【００７１】
たとえば、ステップＳ１９０１において取得された表示時間においてＸの遷移が成立している場合、ステップＳ１９０４において先頭レベルであるｔｏｐｍｏｓｔの状態遷移ありと判定されるため、図１７に示したｔｏｐｍｏｓｔが表示レベルとなる。
【００７２】
また、ステップＳ１９０１において取得された表示時間においてＷの遷移が成立している場合、ステップＳ１９０４において先頭レベルであるｔｏｐｍｏｓｔの状態遷移なしと判定されるため、先頭レベルであるｔｏｐｍｏｓｔが削除され（ステップＳ１９０６）、つぎの表示レベルＡが先頭レベルとなる。Ａでは、図１６に示したように、Ｗの遷移があるため、ステップＳ１９０４において、図１６に示したＡが表示レベルとなる。
【００７３】
（波形図１０３の縮尺）
複数の時間精度を波形図１０３上に示した場合、シーケンス図１０４の表示を実行するためには分割されたそれぞれの区間の精度を得ることができればよく、それに応じてシーケンス図１０４を同様に分割することができる。
【００７４】
図２０は、複数の時間区間で分割しそれぞれで時間方向の縮尺を変更した波形図１０３を示す説明図である。「概略波形」と表示されている区間は個々の信号の値の変化ではなく、値が変化していることが分かれば良いレベルを表示しており、一方、「詳細波形」と表示されている区間は信号の値が意味を持っている時間帯を表示している。
【００７５】
波形表示部２２１により表示された波形図１０３が複数の波形の詳細度で分割されている場合、該当する補足情報表示部２２２も同様に複数の詳細度に区分しそれぞれの適切なレベルで補足情報を表示する必要がある。この複数の詳細度での表示を実施するために、波形表示部２２１から補足情報表示制御部２２３に渡される「表示時間」を一つではなく二つ以上にすることと、補足情報表示部２２２の「表示部分指示」を上記「表示時間」個数分、補足情報表示制御部２２３から受領可能にすることで実現することができる。この場合のシーケンス図１０４を以下に示す。
【００７６】
図２１は、複数レベルでのシーケンス図１０４を示す説明図である。図２１において、シーケンス図１０４は、補足情報表示部２２２により、詳細表示範囲と概略表示範囲に分割され、該当する波形のパケットレベルの図を表示している。すなわち、図２０に示した詳細波形が図２１の詳細表示範囲に対応しており、概略波形が概略表示範囲に対応している。また、概略表示範囲をトランザクションレベルの図で表示してもよい。また、上述した縮尺の変更は、ユーザ２０４の操作により可能であるが、自動的に処理することも可能である。
【００７７】
図２２は、縮尺変更機能を搭載した論理支援検証装置２００の全体構成を示すブロック図である。なお、図面の制約上、図２に示した構成を一部省略している。図２２は「ユーザ２０４」の指示する条件式に応じて、該当する部分の判断と、その結果に基づいて精度向上した表示を実施するための構成である。拡大条件式はここでは、シミュレータのＧＵＩ上に設けたダイアログなどに入力する。条件式はＶＣＤなどのシミュレーション結果２２０の波形図１０３上での信号または状態遷移式２０５に基づいて生成した状態値時系列ファイル３１０のいずれかの値で構成される。
【００７８】
拡大判定部２２０１は、状態値時系列ファイル３１０のどの範囲を拡大させるかを拡大条件式２２０３から判定する。そして、その判定結果として、拡大表示時間および幅を波形表示部２２１に与えることで、波形表示部２２１では、図２０に示したような波形を自動的に表示することができる。
【００７９】
以下に具体例を示す。ここでは状態値時系列ファイル３１０の値が拡大条件式に設定された場合の表示例を示す。状態値時系列ファイル３１０中の式を満足する時間とその前後のある一定時間（ユーザ指定あるいはデフォルトでの時間間隔）を拡大範囲とする。これにより、重要な条件の発生場所について時間方向の精度を上げることが可能となる。
【００８０】
図２３は、拡大表示部に対する入力データと波形表示部２２１により表示される波形図１０３を示す説明図である。（Ａ）は、補足情報表示制御部２２３から拡大判定部２２０１に入力される状態値時系列ファイル３１０の一例であり、（Ｂ）は、拡大条件式２２０３の一例である。（Ｂ）の拡大条件式２２０３は、状態Ａ２のときに拡大させることをあらわしている。これにより、拡大判定部２２０１は、シミュレーション結果２２０である波形のうち、状態値時系列ファイル３１０中、Ａ２に相当する時間帯を拡大範囲として特定する。（Ｃ）は、波形表示部２２１に表示される波形図１０３である。（Ｃ）では、状態Ａ２に相当する範囲が拡大表示されている。
【００８１】
このように、上述した実施の形態では、検証対象のシミュレーション結果を表示する際、時系列に沿った信号波形を表示するとともに、当該信号波形が表示されている時間範囲内で発生した事象に関する補足情報を表示する。これにより、信号波形の詳細な事象（たとえば、パケットの転送順序や検証対象の動作）を視認することができる。
【００８２】
また、補足情報が時間範囲内でのパケットの転送順序を示すシーケンス図である場合、パケットが発生した時間帯での信号波形におけるパケットの往来を視認することができる。また、補足情報が時間範囲内での前記検証対象の動作を示す状態遷移図である場合、論理回路が動作した時間帯での状態遷移を視認することができる。
【００８３】
また、時間範囲内で発生した事象の粒度に応じて、補足情報の表示単位を変更して表示することもできる。特に、補足情報が、時間範囲内でのパケットの転送順序を示すシーケンス図である場合、時間範囲内で発生した事象の粒度に応じて、シーケンス図の表示単位をパケットレベルからトランザクションレベルへ、または、トランザクションレベルから前記パケットレベルへ変更して表示することができる。これにより、最適な表示単位でシーケンス図を表示させることができる。
【００８４】
また、補足情報が、時間範囲内での前記検証対象の動作を示す状態遷移図である場合、時間範囲内で発生した事象の粒度に応じて、状態遷移図の表示単位を相対的に上位階層の状態遷移図から下位階層の状態遷移図へ、または、下位階層の状態遷移図から上位階層の状態遷移図へ変更して表示することができる。これにより、最適な階層で状態遷移図を表示させることができる。
【００８５】
また、時間範囲を分割して、各時間間隔における時間方向の縮尺を異ならせて信号形および補足情報を表示することとしてもよい。これにより、確認したい時間帯を拡大して表示することができる。
【００８６】
以上説明したように、論理支援検証装置および論理検証方法によれば、検証対象である論理回路の動作や状態を階層的に示すことで、実施したシミュレーションで論理回路がどのように動作し問題に至ったのかを理解することを容易にすることができる。
【００８７】
なお、本実施の形態で説明した論理検証方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００８８】
（付記１）検証対象の論理回路の動作をシミュレーションするシミュレート部と、
前記シミュレート部でシミュレーションした結果を保存するシミュレーション保存部と、
前記シミュレーションした結果より特定の時間帯の前記検証対象の論理回路の動作を波形として表示する波形表示部と、
前記検証対象の論理回路の動作を定義した状態遷移式が保存されている状態遷移保存部と、
前記特定の時間帯の論理回路の動作に該当する状態遷移式より補足情報を生成し、前記波形表示部に表示された波形と同時に表示する補足情報表示部と
を有することを特徴とする論理支援検証装置。
【００８９】
（付記２）前記シミュレート部は、ホスト回路とデバイス回路とを含む論理回路の前記ホスト回路と前記デバイス回路間の送受信信号をシミュレートすることを特徴とする付記１に記載の論理支援検証装置。
【００９０】
（付記３）前記補足情報表示部は、前記特定の時間帯での前記ホスト回路と前記デバイス回路間の転送順序を示すシーケンス図を作成し前記補足情報として表示することを特徴とする付記２に記載の論理支援検証装置。
【００９１】
（付記４）前記補足情報が、前記時間範囲内での前記検証対象の動作を示す状態遷移図である場合、前記時間範囲内で発生した事象の粒度に応じて、前記状態遷移図の表示単位を相対的に上位階層の状態遷移図から下位階層の状態遷移図へ、または、前記下位階層の状態遷移図から前記上位階層の状態遷移図へ変更して表示することを特徴とする付記１〜３のいずれか一つに記載の論理支援検証装置。
【００９２】
（付記５）前記時間範囲を分割して、各時間間隔における時間方向の縮尺を異ならせて前記信号波形および前記補足情報を表示することを特徴とする付記１〜３のいずれか一つに記載の論理支援検証装置。
【００９３】
（付記６）コンピュータを用い、
検証対象の論理回路の動作をシミュレート部でシミュレーションする工程と、
前記シミュレート部でシミュレーションした結果をシミュレータ結果保存部に保存する工程と、
前記シミュレーションした結果より特定の時間帯の前記検証対象の論理回路の動作を波形として波形表示部に表示する工程と、
状態遷移保存部に保存された前記検証対象の論理回路の動作を定義した状態遷移式より前記特定の時間帯の論理回路の動作に該当する情報を新たに生成する工程と、
前記波形表示部に表示された波形と同時に前記情報を補足情報表示部に表示する工程と、
を有することを特徴とする論理検証方法。
【００９４】
（付記７）前記シミュレーションする工程において、前記シミュレート部は、ホスト回路とデバイス回路とを含む論理回路の前記ホスト回路と前記デバイス回路間の送受信信号をシミュレートすることを特徴とする付記６に記載の論理検証方法。
【図面の簡単な説明】
【００９５】
【図１】波形図および波形図に連動表示される補足情報の表示例を示す説明図である。
【図２】実施の形態にかかる論理支援検証装置の全体構成図である。
【図３】波形表示部および補足情報表示部と補足情報表示制御部との関係を示すブロック図である。
【図４】各表示レベルにおけるシーケンス図である。
【図５】状態遷移式の一記述例を示す説明図である。
【図６】状態遷移式内のシーケンス特化情報の記述例を示す説明図である。
【図７】状態遷移式の具体例を示す説明図である。
【図８】状態値時系列ファイルの一例を示す説明図である。
【図９】状態値生成部による状態値生成処理手順を示すフローチャートである。
【図１０】表示レベル判定部による表示レベル判定処理手順を示すフローチャートである。
【図１１】表示部分判定部による表示部分判定処理手順を示すフローチャートである。
【図１２】トランザクション描画処理手順を示すフローチャートである。
【図１３】パケット描画処理手順を示すフローチャートである。
【図１４】階層化状態遷移図の一例を示す説明図である。
【図１５】図１４に示した階層化状態遷移図の状態遷移式の一例を示す説明図である。
【図１６】階層化状態遷移図の表示例（その１）を示す説明図である。
【図１７】階層化状態遷移図の表示例（その２）を示す説明図である。
【図１８】図１４に示した階層化状態遷移図の表示を実現するための状態値時系列ファイルを示す説明図である。
【図１９】図１６および図１７を表示するための表示レベル判定処理手順を示すフローチャートである。
【図２０】複数の時間区間で分割しそれぞれで時間方向の縮尺を変更した波形図１０３を示す説明図である。
【図２１】複数レベルでのシーケンス図を示す説明図である。
【図２２】縮尺変更機能を搭載した論理支援検証装置の全体構成を示すブロック図である。
【図２３】拡大表示部に対する入力データと波形表示部により表示される波形図を示す説明図である。
【符号の説明】
【００９６】
１００  表示画面
１０１  波形表示領域
１０２  補足情報表示領域
１０３  波形図
１０４  シーケンス図
２００  論理支援検証装置
２０２  論理シミュレータ
２０３  画面表示システム
２０４  ユーザ
２０５  状態遷移式
２２０  シミュレーション結果
２２１  波形表示部
２２２  補足情報表示部
２２３  補足情報表示制御部
３０１  状態値生成部
３０２  表示レベル判定部
３０３  表示部分判定部
３１０  状態値時系列ファイル
２２０１  拡大判定部
【図１】
2009230245.tif 000003
【図２】
2009230245.tif 000004
【図３】
2009230245.tif 000005
【図４】
2009230245.tif 000006
【図５】
2009230245.tif 000007
【図６】
2009230245.tif 000008
【図７】
2009230245.tif 000009
【図８】
2009230245.tif 000010
【図９】
2009230245.tif 000011
【図１０】
2009230245.tif 000012
【図１１】
2009230245.tif 000013
【図１２】
2009230245.tif 000014
【図１３】
2009230245.tif 000015
【図１４】
2009230245.tif 000016
【図１５】
2009230245.tif 000017
【図１６】
2009230245.tif 000018
【図１７】
2009230245.tif 000019
【図１８】
2009230245.tif 000020
【図１９】
2009230245.tif 000021
【図２０】
2009230245.tif 000022
【図２１】
2009230245.tif 000023
【図２２】
2009230245.tif 000024
【図２３】
2009230245.tif 000025