(57)【要約】【課題】アサーション記述のハードウェア化に伴う回路規模の増大を防ぐ。【解決手段】プログラマブル回路１０２は、動作クロック生成回路１０４のクロック信号に同期して動作する設計対象回路１０６を実装し、回路１０６に対するアサーション検証開始の信号を生成するアサーショントリガ検出回路（検出回路）１０７＿１〜１０７＿ｎおよびアサーション検証の結果判定を行うアサーション条件判定式回路（判定回路）１０８＿１〜１０８＿ｎを含む。コンピュータ１００は、回路１０６のシミュレーション結果を判定するアサーション結果判定プログラム１０１を実行する。検出回路によってアサーション検証開始を検出し、コンピュータ１００が、アサーション結果の判断タイミングを決定し、判定回路がアサーション検証の結果判定を行い、コンピュータ１００が、判断タイミングにおいて結果判定を元にアサーション検証を行う。【選択図】図１
2009301192.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号に同期して動作する設計対象回路を実装するプログラマブル回路と、
前記設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、
を備え、
前記設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化して前記プログラマブル回路上に構成し、前記クロック信号に係るアサーション結果の判断タイミングの決定機能をプログラムとして前記コンピュータに実現させることを特徴とするシミュレーション装置。
【請求項２】
前記プログラマブル回路は、前記設計対象回路に対し、アサーション検証開始前およびアサーション検証の結果判定後において第１のクロック信号に同期して動作させ、アサーション検証開始を前記コンピュータに通知し、アサーション検証開始後においてコンピュータから指示された第２のクロック信号に同期して動作させ、
前記プログラムは、アサーション検証開始後に第２のクロック信号のクロック数をカウントすることでアサーション結果の判断タイミングを決定する機能を前記コンピュータに実現させることを特徴とする請求項１記載のシミュレーション装置。
【請求項３】
前記プログラマブル回路は、前記アサーション検証開始の信号生成機能によってブレーク要求信号を発生してブレーク要因情報と共に前記コンピュータに通知し、
前記プログラムは、前記ブレーク要求信号およびブレーク要因情報を受け取ってアサーション結果の判断タイミングを決定し、決定された判断タイミングを元にブレーク解除信号を前記プログラマブル回路に出力する機能を前記コンピュータに実現させることを特徴とする請求項１記載のシミュレーション装置。
【請求項４】
前記設計対象回路の検証時における成立すべき条件式を表現したアサーション記述を、前記信号生成機能を表すトリガ検出式と、前記判断タイミングを表す時間的条件式と、前記結果判定機能を表す条件判定式と、に分割して表すことを特徴とする請求項１記載のシミュレーション装置。
【請求項５】
前記設計対象回路は、
前記信号生成機能を論理回路化したアサーショントリガ検出回路と、
前記結果判定機能を論理回路化したアサーション条件判定式回路と、
を含み、
前記プログラマブル回路は、
前記アサーショントリガ検出回路の出力信号から前記ブレーク要求信号を生成し、前記ブレーク要因情報と共に前記コンピュータに出力し、前記ブレーク解除信号を前記コンピュータから入力するブレーク信号発生回路と、
前記コンピュータからのクロック選択信号に従って、アサーション検証実行時に第１のクロック信号から第２のクロック信号に切り替え、アサーション検証の結果判定後に第２のクロック信号から第１のクロック信号に切り替えて、クロック信号を前記設計対象回路に供給する動作クロック生成回路と、
前記ブレーク信号、前記ブレーク要因情報、前記アサーション条件判定式回路の出力を前記コンピュータに出力し、前記クロック切り替え信号、前記ブレーク解除信号を前記コンピュータから入力するためのＩ／Ｏポートと、
を備え、
前記プログラムは、
前記ブレーク信号およびブレーク要因情報を受け取る処理と、
前記ブレーク信号を受け取って、前記設計対象回路の動作を第２のクロック信号に切り替えるように前記クロック選択信号を出力する処理と、
前記ブレーク要因情報を元にアサーション記述から時間的条件を解釈して判断タイミングにおいて前記アサーション条件判定式回路の出力をリードして前記アサーション条件の正否を判定する処理と、
全てのアサーション検証終了後に前記ブレーク解除信号を前記プログラマブル回路に出力する処理と、
前記ブレーク解除信号を出力した後、第１のクロック信号に切り替えるように前記クロック選択信号を出力する処理と、
を前記コンピュータに実行させることを特徴とする請求項３に記載のシミュレーション装置。
【請求項６】
前記設計対象回路は、前記アサーショントリガ検出回路を複数含み、
前記ブレーク信号発生回路は、前記アサーショントリガ検出回路を識別する情報として前記ブレーク要因情報を出力することを特徴とする請求項５記載のシミュレーション装置。
【請求項７】
前記設計対象回路は、前記アサーション条件判定式回路を複数含み、
前記プログラマブル回路は、前記コンピュータから入力する条件判定選択信号に応じて複数の前記アサーション条件判定式回路の一つを選択する条件判定式選択回路をさらに備え、
前記コンピュータは、アサーション記述から時間的条件を解釈して前記条件判定選択信号を出力し、選択された前記アサーション条件判定式回路の出力における判断タイミングを元に前記アサーション条件の正否を判定することを特徴とする請求項５記載のシミュレーション装置。
【請求項８】
クロック信号に同期して動作する設計対象回路を実装し、設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化して含むプログラマブル回路と、設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、を備えるシミュレーション装置がシミュレーションを行う方法であって、
前記プログラマブル回路が、前記信号生成機能によってアサーション検証開始を検出するステップと、
前記コンピュータが、前記クロック信号に係るアサーション結果の判断タイミングを決定するステップと、
前記プログラマブル回路が、前記結果判定機能によってアサーション検証の結果判定を行うステップと、
前記コンピュータが、前記判断タイミングにおいて前記結果判定を元にアサーション検証の正否を判定する処理と、
を含むことを特徴とするシミュレーション方法。
【請求項９】
前記プログラマブル回路は、前記設計対象回路に対し、アサーション検証開始前およびアサーション検証の結果判定後において第１のクロック信号に同期して動作させ、アサーション検証開始を前記コンピュータに通知し、アサーション検証開始後においてコンピュータから指示された第２のクロック信号に同期して動作させ、
前記コンピュータは、アサーション検証開始後に第２のクロック信号のクロック数をカウントすることでアサーション結果の判断タイミングを決定することを特徴とする請求項８記載のシミュレーション方法。
【請求項１０】
前記プログラマブル回路は、前記アサーション検証開始によってブレーク要求信号を発生してブレーク要因情報と共に前記コンピュータに通知し、
前記コンピュータは、前記ブレーク要求信号およびブレーク要因情報を受け取ってアサーション結果の判断タイミングを決定し、
前記決定した判断タイミングを元にブレーク解除信号を前記プログラマブル回路に出力することを特徴とする請求項８記載のシミュレーション方法。
【請求項１１】
前記設計対象回路の検証時における成立すべき条件式を表現したアサーション記述を、前記信号生成機能を表すトリガ検出式と、前記判断タイミングを表す時間的条件式と、前記結果判定機能を表す条件判定式と、に分割して表すことを特徴とする請求項８記載のシミュレーション方法。
【請求項１２】
一の信号の論理値の検証をコンピュータに実行させるためにアクティブなブレーク要求信号をポートから出力して前記コンピュータが供給するクロック信号を前記ポートから入力すると共に、
前記一の信号を前記ポートから前記コンピュータに出力し、前記ポートから出力された前記一の信号の論理値の検証が完了したことに応答して前記コンピュータから出力されたアクティブなブレーク解除信号を前記ポートから入力することを特徴とするプログラマブル回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置およびシミュレーション方法に関し、特にＬＳＩの検証のためのソフトウェア及びハードウェアの協調シミュレーション技術に関する。
【背景技術】
【０００２】
大規模化、複雑化するシステムＬＳＩの設計において、シミュレーション及びシミュレーション結果確認に要する時間が増大しており、シミュレーションの高速化、シミュレーション結果確認の自動化が重要な課題となっている。この課題に対する１つの対策として、ソフトウェアシミュレータの機能拡張によりアサーション技術の導入が進んできた。ここでアサーションとは、「本来成立すべき条件」を表現したもので、回路がどのように振舞うべきか、或いは振舞ってはいけないかをアサーション言語（例えば、ＰＳＬ、Ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ  Ａｓｓｅｒｔｉｏｎ等）で定義し、シミュレーション実行中に、常に回路動作を監視し、回路の不具合の発生時間と不具合箇所を特定して通知する検証手法である。
【０００３】
ところが、アサーションの適用時には、ソフトウェアシミュレータにかかる処理負荷が大きく、非適用時に比べてシミュレーション時間が著しく長くなる。そこで、シミュレーションの高速化手法としてソフトウェアシミュレータとハードウェアを接続した協調シミュレーション装置が利用される（特許文献１参照）。この協調シミュレーション装置では、ハードウェア上のプログラマブル回路に、ハードウェア記述言語（ＨＤＬ）等で設計された設計対象回路を実装し、この設計対象回路を動作させるプログラムを、コンピュータ上で実行されるプログラムであるソフトウェアシミュレータ上に実現する。このような協調シミュレーション装置によれば、従来のソフトウェアシミュレータにおける処理負荷を軽減してシミュレーションの高速化を図ることが可能である。したがって、この協調シミュレーション装置にアサーション手法を実現する事で、回路の不具合の発生時間、不具合箇所の特定を効率良く行うことができる。
【０００４】
特許文献１に記載のシミュレーション装置において、プログラマブル回路は、コンピュータ及び設計対象回路間のデータ転送をトランザクション単位で行うデータ転送回路と、設計対象回路の動作が仕様を満たしているかを検証し、設計対象回路の動作が仕様を満たしていないときにエラー検出として通知する検証回路と、エラーの検出が通知された場合に設計対象回路の動作を一時的に停止させて、検証回路による検証の結果をコンピュータに転送する検証結果転送回路とを備える。
【０００５】
【特許文献１】特開２００７−９４５９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以下の分析は本発明において与えられる。
【０００７】
特許文献１に記載のシミュレーション装置は、シミュレーション開始からエラー検出までのサイクル数の情報をプログラマブル回路に蓄えている。このため、アサーション記述の時間的条件が長時間に及ぶような場合、情報蓄積用のシフトレジスタ等を時間に応じて多段構成にする必要があり、回路規模が増大してしまう。すなわち、プログラマブル回路上の設計対象回路と設計対象回路に定義されたアサーションの全てを論理回路に置換し、ハードウェア化する必要がある。一般的にアサーションは、検証開始のトリガとなる検出式が成立することによって検証を開始し、時間的条件を記載したタイミングで条件判定式を評価するため、時間的条件もハードウェアで実現する必要がある。したがって、アサーションのハードウェア化において、特に時間的条件のハードウェア化に伴う順序回路等の規模が増大してしまう。
【課題を解決するための手段】
【０００８】
本発明の１つのアスペクト（側面）に係るシミュレーション装置は、クロック信号に同期して動作する設計対象回路を実装するプログラマブル回路と、設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、を備え、設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化してプログラマブル回路上に構成し、クロック信号に係るアサーション結果の判断タイミングの決定機能をプログラムとしてコンピュータに実現させる。
【０００９】
本発明の他のアスペクト（側面）に係るシミュレーション方法は、クロック信号に同期して動作する設計対象回路を実装し、設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化して含むプログラマブル回路と、設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、を備えるシミュレーション装置がシミュレーションを行う方法であって、プログラマブル回路が、信号生成機能によってアサーション検証開始を検出するステップと、コンピュータが、クロック信号に係るアサーション結果の判断タイミングを決定するステップと、プログラマブル回路が、結果判定機能によってアサーション検証の結果判定を行うステップと、コンピュータが、判断タイミングにおいて結果判定を元にアサーション検証の正否を判定する処理と、を含む。
【発明の効果】
【００１０】
本発明によれば、アサーション記述による検証を実行する場合、アサーション記述のハードウェア化に伴うプログラマブル回路に実現する回路の規模増大を防ぐことができる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態に係るシミュレーション装置は、クロック信号に同期して動作する設計対象回路を実装するプログラマブル回路と、設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、を備える。プログラマブル回路は、設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化して構成する。また、プログラムは、クロック信号に係るアサーション結果の判断タイミングの決定機能をコンピュータに実現させる。
【００１２】
プログラマブル回路は、設計対象回路に対し、アサーション検証開始前およびアサーション検証の結果判定後において第１のクロック信号に同期して動作させ、アサーション検証開始をコンピュータに通知し、アサーション検証開始後においてコンピュータから指示された第２のクロック信号に同期して動作させてもよい。また、プログラムは、アサーション検証開始後に第２のクロック信号のクロック数をカウントすることでアサーション結果の判断タイミングを決定する機能をコンピュータに実現させてもよい。
【００１３】
プログラマブル回路は、アサーション検証開始の信号生成機能によってブレーク要求信号を発生してブレーク要因情報と共にコンピュータに通知し、プログラムは、ブレーク要求信号およびブレーク要因情報を受け取ってアサーション結果の判断タイミングを決定し、決定された判断タイミングを元にブレーク解除信号をプログラマブル回路に出力する機能をコンピュータに実現させてもよい。
【００１４】
設計対象回路の検証時における成立すべき条件式を表現したアサーション記述を、信号生成機能を表すトリガ検出式と、判断タイミングを表す時間的条件式と、結果判定機能を表す条件判定式と、に分割して表してもよい。
【００１５】
設計対象回路は、信号生成機能を論理回路化したアサーショントリガ検出回路と、結果判定機能を論理回路化したアサーション条件判定式回路と、を含み、プログラマブル回路は、アサーショントリガ検出回路の出力信号からブレーク要求信号を生成し、ブレーク要因情報と共にコンピュータに出力し、ブレーク解除信号をコンピュータから入力するブレーク信号発生回路と、コンピュータからのクロック選択信号に従って、アサーション検証実行時に第１のクロック信号から第２のクロック信号に切り替え、アサーション検証の結果判定後に第２のクロック信号から第１のクロック信号に切り替えて、クロック信号を設計対象回路に供給する動作クロック生成回路と、ブレーク信号、ブレーク要因情報、アサーション条件判定式回路の出力をコンピュータに出力し、クロック切り替え信号、ブレーク解除信号をコンピュータから入力するためのＩ／Ｏポートと、を備え、プログラムは、ブレーク信号およびブレーク要因情報を受け取る処理と、ブレーク信号を受け取って、設計対象回路の動作を第２のクロック信号に切り替えるようにクロック選択信号を出力する処理と、ブレーク要因情報を元にアサーション記述から時間的条件を解釈して判断タイミングにおいてアサーション条件判定式回路の出力をリードしてアサーション条件の正否を判定する処理と、全てのアサーション検証終了後にブレーク解除信号をプログラマブル回路に出力する処理と、ブレーク解除信号を出力した後、第１のクロック信号に切り替えるようにクロック選択信号を出力する処理と、をコンピュータに実行させてもよい。
【００１６】
設計対象回路は、アサーショントリガ検出回路を複数含み、ブレーク信号発生回路は、アサーショントリガ検出回路を識別する情報としてブレーク要因情報を出力するようにしてもよい。
【００１７】
設計対象回路は、アサーション条件判定式回路を複数含み、プログラマブル回路は、コンピュータから入力する条件判定選択信号に応じて複数のアサーション条件判定式回路の一つを選択する条件判定式選択回路をさらに備え、コンピュータは、アサーション記述から時間的条件を解釈して条件判定選択信号を出力し、選択されたアサーション条件判定式回路の出力における判断タイミングを元にアサーション条件の正否を判定するようにしてもよい。
【００１８】
本発明の実施形態に係るプログラマブル回路は、一の信号の論理値の検証をコンピュータに実行させるためにアクティブなブレーク要求信号をポートから出力してコンピュータが供給するクロック信号をポートから入力すると共に、一の信号をポートからコンピュータに出力し、ポートから出力された一の信号の論理値の検証が完了したことに応答してコンピュータから出力されたアクティブなブレーク解除信号をポートから入力する。
【００１９】
本発明の実施形態に係るシミュレーション装置によれば、アサーション記述の時間的条件式をコンピュータ上のプログラムとして実現するので、従来技術の問題点であるアサーション記述のハードウェア化に伴うプログラマブル回路に実現する回路規模の増大を防ぐことができる。すなわち、アサーション記述の時間的条件式の論理回路化による回路規模の増加を防ぐことができる。また、アサーション記述によって検証品質の向上を図り、協調シミュレーションのメリットである高速検証を維持することができる。
【００２０】
以下、実施例に即し、図面を参照して詳しく説明する。
【実施例１】
【００２１】
図１は、本発明の第１の実施例に係るシミュレーション装置の構成を示すブロック図である。図１において、シミュレーション装置は、コンピュータ１００とプログラマブル回路１０２とを備える。コンピュータ１００は、アサーション結果判定プログラム１０１を備える。プログラマブル回路１０２は、サイクル動作を行なう設計対象回路１０６、ブレーク信号発生回路１０５、動作クロック生成回路１０４、Ｉ／Ｏポート１０３を備える。設計対象回路１０６は、ｎ個のアサーショントリガ検出回路１０７＿１〜１０７＿ｎ、及びｎ個のアサーション条件判定式回路１０８＿１〜１０８＿ｎを備える。プログラマブル回路１０２とコンピュータ１００とは、プログラマブル回路１０２内のＩ／Ｏポート１０３を介して接続される。
【００２２】
アサーショントリガ検出回路１０７＿１〜１０７＿ｎのそれぞれの出力は、ブレーク信号発生回路１０５の入力に接続される。アサーション条件判定式回路１０８＿１〜１０８＿ｎのそれぞれの出力は、Ｉ／Ｏポート１０３の入力に接続される。ブレーク信号発生回路１０５の入出力は、Ｉ／Ｏポート１０３に接続される。動作クロック生成回路１０４の入力は、Ｉ／Ｏポート１０３の出力に接続され、動作クロック生成回路１０４の出力は、設計対象回路１０６の入力に接続される。
【００２３】
次に、アサーション記述について説明する。図２は、アサーション記述の例を示す図である。図２のアサーション記述は、設計対象回路１０６において、「（ａ＆ｂ｜ｃ）＝１」の論理が成立することでアサーション検証が開始され、「＃＃３」で示される３クロック後に、「ｄ＝＝１」の論理が成立することを検証し、「ｄ＝＝１」の論理が成立しなかった場合は、不図示の出力装置などに“ｅｒｒｏｒ”と表示することを意味している。
【００２４】
図３は、図２のアサーション記述をタイミングチャートとして示した図である。図３において、「（ａ＆ｂ｜ｃ）＝１」の論理が成立した時刻Ｔ２がアサーション検証の開始タイミングとなる。ここで、「（ａ＆ｂ｜ｃ）＝１」の部分がトリガ検出式に該当する。また、アサーション検証期間Ｔ１は、「＃＃３」の記述によって決定し、「＃＃３」で表される３クロック期間が時間的条件式に該当する。さらに、図２のアサーション記述のＯＫ／ＮＧは、「ｄ＝＝１」が成立するか否かで判定し、「ｄ＝＝１」の部分が条件判定式に該当する。
【００２５】
以上のように、アサーション記述をトリガ検出式、時間的条件式、および条件判定式に分割し、トリガ検出式及び条件判定式を論理回路化してプログラマブル回路１０２にアサーショントリガ検出回路１０７＿１〜１０７＿ｎ及びアサーション条件判定式回路１０８＿１〜１０８＿ｎとして実装し、時間的条件をアサーション結果判定プログラム１０１としてコンピュータ１００に実装する。
【００２６】
図４は、図２のアサーション記述を適用した場合のプログラマブル回路１０２の構成例を示す図である。図４において、アサーショントリガ検出回路１０７＿１は、論理積回路４１７と論理和回路４１６を備える。論理積回路４１７は、設計対象回路１０６中の信号ａ、ｂを入力し、論理積信号４１９を生成する。論理和回路４１６は、論理積信号４１９と信号ｃを入力し、論理和信号であるアサーショントリガ検出信号４１４＿１を生成する。アサーショントリガ検出信号４１４＿１は、図２のアサーション記述中のトリガ検出式である「（ａ＆ｂ｜ｃ）」に対応する。
【００２７】
ここではアサーション記述数が１つである場合を説明したが、アサーション記述がｎ個存在する場合は、ｎ番目のアサーショントリガ検出回路１０７＿ｎまで同様の方法で実装する。
【００２８】
また、ブレーク信号発生回路１０５は、トリガ検出回路４１１とブレーク生成回路４０９を備える。トリガ検出回路４１１は、アサーショントリガ検出信号４１４＿１〜４１４＿ｎを入力し、出力信号４１０をブレーク生成回路４０９に出力する。ブレーク生成回路４０９は、ブレーク要求信号４０３及びブレーク要因情報であるアサーション番号を含むブレーク要因信号４０４をＩ／Ｏポート１０３に出力し、Ｉ／Ｏポート１０３からブレーク解除信号４０５を入力する。
【００２９】
アサーション条件判定式回路１０８＿１は、等価式判定回路４１８を備える。等価式判定回路４１８は、設計対象回路１０６中の信号ｄを入力し、信号ｄが論理値「１」に等しい場合に論理値「１」をアサーション条件判定式出力信号４０６＿１としてＩ／Ｏポート１０３に出力する。アサーション条件判定式出力信号４０６＿１は、図２のアサーション記述例の条件判定式である「ｄ＝＝１」に対応する。
【００３０】
上述した例ではアサーション記述数が単数である場合を示しているが、アサーション記述がｎ個存在する場合は、ｎ番目のアサーション条件判定式回路１０８＿ｎまで同様の方法で実装する。そして、アサーション条件判定式出力信号４０６＿１〜４０６＿ｎは、Ｉ／Ｏポート１０３に出力される。
【００３１】
動作クロック生成回路１０４は、セレクタ４０８を備える。セレクタ４０８は、Ｉ／Ｏポート１０３からのクロック選択信号４０２の論理値に従ってクロック信号ＣＬＫ＿Ａ（４０１）およびクロック信号ＣＬＫ＿Ｂ（４１２）のいずれか一方を選択し、動作クロック信号４１３として設計対象回路１０６に出力する。設計対象回路１０６は、動作クロック信号４１３に同期して動作する。
【００３２】
次に、プログラマブル回路１０２の動作について説明する。図５は、プログラマブル回路１０２における各信号のタイミングチャートである。設計対象回路１０６は、動作クロック信号４１３のレベル遷移にしたがってシミュレーションを実行する。動作クロック信号４１３としては、アサーション検証期間以外の期間においてクロック信号ＣＬＫ＿Ｂが選択される。
【００３３】
設計対象回路１０６のシミュレーション実行中にアサーショントリガ検出回路１０７＿１の論理が成立すると、アサーショントリガ検出信号４１４＿１の論理値が「１」になる。そして、ブレーク信号発生回路１０５は、時刻Ｔ１０においてブレーク要求信号４０３をアクティブ（ハイレベル）にし、ブレーク要因情報であるブレーク要因信号４０４を「１」にする。さらに、クロック選択信号４０２がクロック信号ＣＬＫ＿Ａ側を選択するように変更され、以降はコンピュータ１００が供給するクロック信号ＣＬＫ＿Ａによって設計対象回路１０６が動作する。また、ブレーク要求信号４０３、ブレーク要因信号４０４がＩ／Ｏポート１０３を介してコンピュータ１００に転送され、アサーション結果判定プログラム１０１が実行される。
【００３４】
アサーション条件判定式回路１０８＿１は、時刻Ｔ１１においてアサーション条件判定式出力信号４０６＿１をＩ／Ｏポート１０３に転送する。
【００３５】
コンピュータ１００は、アサーション結果判定プログラム１０１を実行し、アサーション条件判定式出力信号４０６＿１をＩ／Ｏポート１０３を介して読み出し、アサーション検証が完了すると、時刻Ｔ１２においてＩ／Ｏポート１０３を介してブレーク解除信号４０５をアクティブ（ハイレベル）にし、ブレーク信号発生回路１０５に転送する。
【００３６】
さらに、次のクロックタイミングである時刻Ｔ１３で、コンピュータ１００は、ブレーク解除信号４０５を非アクティブ（ローレベル）にする。
【００３７】
次の時刻Ｔ１４でクロック信号ＣＬＫ＿Ｂ側を選択するようにクロック選択信号４０２の論理を変更する。時刻Ｔ１４以降はプログラマブル回路１０２側のクロック信号ＣＬＫ＿Ｂで設計対象回路１０６が動作する。
【００３８】
次に、複数のアサーション要因が重複した場合の動作を図６のタイミングチャートを用いて説明する。図６において、アサーショントリガ発生タイミングである時刻Ｔ２１以降は、第１のアサーション検証を実行しているが、その途中で第ｎのアサーショントリガが発生したとする。この場合、ブレーク信号発生回路１０５は、第ｎのアサーショントリガ発生タイミングである時刻Ｔ２２においてブレーク要因アサーション番号を含むブレーク要因信号４０４を「ｎ」に変更し、Ｉ／Ｏポート１０３を介してコンピュータ１００に転送する。
【００３９】
コンピュータ１００は、アサーション結果判定プログラム１０１を実行し、全てのアサーション検証完了タイミングである時刻Ｔ２３においてブレーク解除信号４０５をアクティブにし、ブレーク信号発生回路１０５に転送する。さらに、次のクロックタイミングである時刻Ｔ２４でブレーク解除信号４０５を非アクティブにする。また、時刻Ｔ２５でクロック選択信号４０２の論理をクロック信号ＣＬＫ＿Ｂ側を選択するように変更して、時刻Ｔ２５以降はプログラマブル回路側のクロック信号ＣＬＫ＿Ｂで設計対象回路１０６が動作するようにする。このように動作することで、複数のアサーション要因が重複した場合の並列アサーション検証が可能となる。
【００４０】
次に、コンピュータ１００に実装されるアサーション結果判定プログラム１０１及びプログラマブル回路１０２の動作を図７のフローチャートを用いて説明する。図７において、コンピュータ１００とプログラマブル回路１０２は、連係して動作する。
【００４１】
まず、プログラマブル回路１０２の動作について説明する。プログラマブル回路１０２は、ステップＳ７３０でクロック信号ＣＬＫ＿Ｂに同期してシミュレーションを開始する。ステップＳ７３１でシミュレーション終了を判定し、終了していなければステップＳ７３２に進み、シミュレーションを実行させてアサーショントリガ検出信号４１４＿１〜４１４＿ｎのいずれかが検出されるまで、ステップＳ７３１、Ｓ７３２の動作を繰り返す。
【００４２】
シミュレーション実行中にアサーショントリガ検出信号４１４＿１〜４１４＿ｎを検出すると、ステップＳ７３３に進み、ブレーク要求信号４０３を出力する。
【００４３】
プログラマブル回路１０２は、コンピュータ１００からの動作クロックの切り替えによって、ステップＳ７３４以降はコンピュータ１００側のクロック信号ＣＬＫ＿Ａで動作する。ステップＳ７３５でシミュレーション終了を判定し、終了していなければステップＳ７３６でコンピュータ１００側からブレーク解除信号４０５が入力されるまで、ステップＳ７３５、Ｓ７３６の動作を繰り返す。
【００４４】
ステップＳ７３６でブレーク解除信号４０５を検出すると、ステップＳ７３７に進み、再びプログラマブル回路１０２側のクロック信号ＣＬＫ＿Ｂで動作し、ステップＳ７３１に戻る。
【００４５】
次に、コンピュータ１００側の動作について説明する。コンピュータ１００は、ステップＳ７００でプログラマブル回路１０２側からブレーク要求信号４０３が入力されるのを待つ。ブレーク要求信号４０３が入力されるとステップＳ７０１に進み、ブレーク要因信号４０４からブレーク要因アサーション番号を解読する。そして、ステップＳ７０２でプログラマブル回路１０２の設計対象回路１０６をコンピュータ１００側のクロック信号ＣＬＫ＿Ａで動作させるように切り替え、プログラマブル回路１０２のアサーション条件判定式出力値をリード可能な状態に変更する。
【００４６】
ステップＳ７０３で前述したアサーション記述の時間的条件の内容から、前述したアサーション条件判定式出力値を判定すべきタイミングまで待つ。アサーション検証期間になると、ステップＳ７０４でプログラマブル回路１０２側からアサーション条件式出力値をリードしてステップＳ７０５でＯＫ／ＮＧを判定する。そして、ステップＳ７０７でブレーク解除信号４０５をプログラマブル回路１０２側に出力し、ステップＳ７０８でプログラマブル回路１０２側の動作クロック信号をクロック信号ＣＬＫ＿Ｂに戻す。そして、ステップＳ７００へ戻る。
【００４７】
図７のフローチャートでは、ブレーク要因となるアサーションが単数の場合を示しているが、複数のアサーションが重複した場合であっても、コンピュータ側の動作フローの変更によって容易に対応することができる。
【００４８】
以上説明したように、ハードウェアとソフトウェアの協調型のシミュレーション装置において、アサーション記述による検証を実行する場合、アサーション記述を時間的条件式とトリガ検出式と条件判定式とに分割し、トリガ検出式と条件判定式を論理回路化し、時間的条件式をコンピュータ上のプログラムとして構成する。このようなシミュレーション装置によれば、従来技術の問題点である回路規模の増加を防ぐことができる。
【実施例２】
【００４９】
図８は、本発明の第２の実施例に係るプログラマブル回路１０２’の構成を示す図である。図８において、図４と同一の符号は同一物を表し、その説明を省略する。第２の実施例に係るシミュレーション装置は、プログラマブル回路１０２’において、アサーション条件判定式回路が複数存在し、それぞれの出力が条件判定式選択回路４２１を介してＩ／Ｏポート１０３に出力される点が、図４のプログラマブル回路と異なる。図４におけるアサーション条件判定式回路１０８＿１は、アサーション条件判定式が単一である場合を示している。図８では、アサーション条件判定式が複数である場合に、複数のアサーション条件判定式回路４２４＿１＿１〜４２４＿１＿ｋを実装する。条件判定式選択回路４２１は、コンピュータ１００側からＩ／Ｏポート１０３を介して入力する条件判定選択信号４２２に応じて、アサーション条件判定式回路４２４＿１＿１〜４２４＿１＿ｋのそれぞれの出力信号４２０＿１＿１〜４２０＿１＿ｋのいずれかを選択し、条件判定式出力信号４２３としてＩ／Ｏポート１０３を介してコンピュータ１００側に出力する。
【００５０】
アサーション条件判定式が複数である場合のアサーション記述の例を図９に示す。図９のアサーション記述では、実施例１と同様に「（ａ＆ｂ｜ｃ）＝１」の論理が成立することがアサーション検証の開始タイミングとなっており、「＃＃３」時間後に１番目の条件判定式「ｄ＝＝１」の判定を実施する。実施例１との違いは、１番目の条件判定式の判定後、「＃＃２」時間後に２番目の条件判定式である「ｅ＝＝１」の判定を実施し、さらに複数の条件判定式での判定実施後、最後のｋ番目の条件判定式である「ｘ＝＝１」の判定を実施してアサーション判定を完了する。
【００５１】
図８は、図９のアサーション記述例を本発明に適用した場合のブロック図である。図８のアサーション条件判定式回路４２４＿１＿１の出力信号４２０＿１＿１は、図９のアサーション記述例の１番目の条件判定式である「ｄ＝＝１」に対応する。同様に、アサーション条件判定式回路４２４＿１＿２の出力信号４２０＿１＿２は、図９のアサーション記述例の２番目の条件判定式である「ｅ＝＝１」に対応し、アサーション条件判定式回路４２４＿１＿ｋの出力信号４２０＿１＿ｋは、図９のアサーション記述例のｋ番目の条件判定式である「ｘ＝＝１」に対応する。
【００５２】
次に、図１０に示すタイミングチャートを参照して、図８のプログラマブル回路１０２’の動作を説明する。但し、第１実施例である図４と同様の動作については説明を省略する。条件判定選択信号４２２は、アサーショントリガ検出タイミングである時刻Ｔ３１において、１番目の条件判定式を表す論理値「１」を示す。条件判定式選択回路４２１は、アサーション条件判定式回路４２４＿１＿１の出力信号４２０＿１＿１を選択し、条件判定式出力信号４２３として出力信号４２０＿１＿１が出力される。アサーション条件判定式の判定タイミングである時刻Ｔ３２において、コンピュータ１００は、図７のフローチャートに従って第１＿１番目のアサーション条件判定式の結果を判定する。
【００５３】
次に、２番目の条件判定式の判定タイミングである時刻Ｔ３３において条件判定選択信号４２２は、論理値「２」を示し、条件判定式選択回路４２１は、アサーション条件判定式回路４２４＿１＿２の出力信号４２０＿１＿２を選択し、条件判定式出力信号４２３として出力信号４２０＿１＿２を出力し、コンピュータ１００は、第１＿２番目のアサーション条件判定式の結果を判定する。
【００５４】
同様に、ｋ番目の条件判定式の判定タイミングである時刻Ｔ３４において条件判定選択信号４２２は、論理値「ｋ」を示し、条件判定式選択回路４２１は、アサーション条件判定式回路４２４＿１＿ｋの出力信号４２０＿１＿ｋを選択し、条件判定式出力信号４２３として出力信号４２０＿１＿ｋを出力し、コンピュータ１００は、第１＿ｋ番目のアサーション条件判定式の結果を判定する。
【００５５】
更に、コンピュータ１００は、図７のフローチャートに従ってプログラムを実行し、全てのアサーション検証完了タイミングである時刻Ｔ３５においてブレーク解除信号４０５をアクティブにし、ブレーク信号発生回路１０５に転送する。さらに、次のクロックタイミングである時刻Ｔ３６でブレーク解除信号４０５を非アクティブにし、時刻Ｔ３７でクロック選択信号４０２をＣＬＫ＿Ｂ側を選択するように変更して、時刻Ｔ３７以降は、プログラマブル回路側のクロック信号であるクロック信号ＣＬＫ＿Ｂで設計対象回路１０６が動作する。
【００５６】
以上のように条件判定式回路を複数実装し、コンピュータ１００からのアサーション検証期間によって条件判定式回路出力の１つを選択することで、アサーション記述に複数の条件判定式が存在する場合であってもアサーション検証が可能となる。
【００５７】
なお、前述の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００５８】
【図１】本発明の第１の実施例に係るシミュレーション装置の構成を示すブロック図である。
【図２】本発明の第１の実施例に係るシミュレーション装置に使用されるアサーション記述の一例を示す図である。
【図３】本発明の第１の実施例に係るシミュレーション装置の動作を表すタイミングチャートである。
【図４】本発明の第１の実施例に係るプログラマブル回路の構成例を示す図である。
【図５】本発明の第１の実施例に係るプログラマブル回路の動作例を表すタイミングチャートである。
【図６】本発明の第１の実施例に係るシミュレーション装置で複数のアサーション検証が並列に動作した場合の動作例を示すタイミングチャートである。
【図７】本発明の第１の実施例に係るシミュレーション装置によるシミュレーション方法の処理手順を示すフローチャートである。
【図８】本発明の第２の実施例に係るプログラマブル回路の構成を示す図である。
【図９】本発明の第２の実施例に係るシミュレーション装置に使用されるアサーション記述の一例を示す図である。
【図１０】本発明の第２の実施例に係るシミュレーション装置の動作を表すタイミングチャートである。
【符号の説明】
【００５９】
１００  コンピュータ
１０１  アサーション結果判定プログラム
１０２、１０２’  プログラマブル回路
１０３  Ｉ／Ｏポート
１０４  動作クロック生成回路
１０５  ブレーク信号発生回路
１０６  設計対象回路
１０７＿１〜１０７＿ｎ  アサーショントリガ検出回路
１０８＿１〜１０８＿ｎ、４２４＿１＿１〜４２４＿１＿ｋ  アサーション条件判定式回路
４０１、４１２  クロック信号
４０２  クロック選択信号
４０３  ブレーク要求信号
４０４  ブレーク要因信号
４０５  ブレーク解除信号
４０６＿１〜４０６＿ｎ  アサーション条件判定式出力信号
４０８  セレクタ
４０９  ブレーク生成回路
４１０、４２０＿１＿１〜４２０＿１＿ｋ  出力信号
４１１  トリガ検出回路
４１３  動作クロック信号
４１４＿１〜４１４＿ｎ  アサーショントリガ検出信号
４１６  論理和回路
４１７  論理積回路
４１８、４２５＿１＿１〜４２５＿１＿ｋ  等価式判定回路
４１９  論理積信号
４２１  条件判定式選択回路
４２２  条件判定選択信号
４２３  条件判定式出力信号
【図１】
2009301192.tif 000003
【図２】
2009301192.tif 000004
【図３】
2009301192.tif 000005
【図４】
2009301192.tif 000006
【図５】
2009301192.tif 000007
【図６】
2009301192.tif 000008
【図７】
2009301192.tif 000009
【図８】
2009301192.tif 000010
【図９】
2009301192.tif 000011
【図１０】
2009301192.tif 000012