(57)【要約】【課題】アサーションベース検証におけるアサーションの数が増大した場合における、再構成可能論理回路に実装される検証回路の規模の増大を抑えること。【解決手段】再構成可能論理回路は、設計対象回路と設計対象回路を検証する検証回路とを備え、検証回路は、アサーションベース検証に含まれる複数のアサーションに基づく検証に共用される。【選択図】図１
2010140255.tif 000002
【特許請求の範囲】
【請求項１】
設計対象回路と該設計対象回路を検証する検証回路とを備え、
前記検証回路は、アサーションベース検証に含まれる複数のアサーションに基づく検証に共用されることを特徴とする再構成可能論理回路。
【請求項２】
前記検証回路は、前記アサーションベース検証に含まれる複数のアサーションのうちの互いに類似するものに基づく検証に共用されることを特徴とする、請求項１に記載の再構成可能論理回路。
【請求項３】
前記アサーションベース検証に含まれる複数のアサーションのうちのいずれのアサーションに基づいて前記設計対象回路を検証すべきかを選択する制御コードを記録する設定レジスタをさらに備え、
前記検証回路は、前記設定レジスタに記録された制御コードにより選択されたアサーションに基づいて前記設計対象回路を検証することを特徴とする、請求項１又は２に記載の再構成可能論理回路。
【請求項４】
設計対象回路と該設計対象回路を検証する検証回路とを備える再構成可能論理回路による検証方法であって、
前記検証回路によって、アサーションベース検証に含まれる第１のアサーションに基づく検証を行う工程と、
前記検証回路によって、前記アサーションベース検証に含まれる第２のアサーションに基づく検証を行う工程とを含むことを特徴とする検証方法。
【請求項５】
前記第１のアサーションと前記第２のアサーションとは互いに類似することを特徴とする、請求項４に記載の検証方法。
【請求項６】
前記アサーションベース検証に含まれる複数のアサーションのうちのいずれのアサーションに基づいて前記設計対象回路を検証すべきかを選択する制御コードを、前記再構成可能回路に設けた設定レジスタに記録する工程と、
前記検証回路によって、前記設定レジスタに記録された制御コードにより選択されたアサーションに基づいて前記設計対象回路を検証する工程とを含むことを特徴とする、請求項４又は５に記載の検証方法。
【請求項７】
設計対象回路と該設計対象回路を検証する検証回路とを備え、アサーションベース検証に含まれる複数のアサーションに基づく検証に該検証回路が共用されるように構成された再構成可能論理回路に接続されたコンピュータに、該複数のアサーションのうちのいずれのアサーションに基づいて該設計対象回路を検証すべきかを選択する制御コードを送信させることを特徴とする検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能論理回路ならびに検証方法および検証プログラムに関し、特に、アサーションベース検証に係る再構成可能論理回路ならびに検証方法及び検証プログラムに関する。
【背景技術】
【０００２】
大規模化および複雑化するシステムＬＳＩの設計において、シミュレーションおよびシミュレーション結果の確認に要する時間が増大している。したがって、シミュレーション高速化およびシミュレーション結果確認の自動化をすることが課題となっている。これらの課題を解決するために、ソフトウェアシミュレータの機能の拡張に基づくアサーションベース検証（Ａｓｓｅｒｔｉｏｎ  Ｂａｓｅｄ  Ｖｅｒｉｆｉｃａｔｉｏｎ）が広く用いられている。
【０００３】
アサーション（Ａｓｓｅｒｔｉｏｎ）とは、設計対象である回路において本来成立すべき条件を表現したものである。回路がどのように振舞うべきか、または振舞ってはならないかは、アサーション記述言語（例えば、ＰＳＬ、Ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ  Ａｓｓｅｒｔｉｏｎ）によって定義される。アサーションベース検証とは、シミュレーション実行中、設計対象である回路の動作をつねに監視し、アサーションの成否を確認することによって、設計対象である回路における不具合の発生時刻及び発生箇所を特定することをいう。
【０００４】
しかし、アサーションベース検証を適用した場合には、ソフトウェアシミュレータにより回路の動作を監視するための負荷が大きいため、アサーションベース検証を適用しない場合と比較して、シミュレーション時間が長くなるという問題がある。そこで、シミュレーションを高速化するために、ソフトウェアシミュレータとハードウェアエミュレータを接続した協調シミュレーションに基づくアサーションベース検証を実現することが望ましい。
【０００５】
特許文献１において、ハードウェア及びソフトウェアの協調シミュレーションが記載されている。特許文献１の図２を参照すると、シミュレーション装置は、サイクル動作を行う設計対象回路３ａが実装されるプログラマブル回路１ａと、時間制約のない動作記述として作成されたプログラムを実行するコンピュータ２とを備える。
【０００６】
プログラマブル回路１ａは、コンピュータ２及び設計対象回路３ａ間のデータ転送をトランザクション単位で行うデータ転送回路４１ａ、４１ｂと、設計対象回路３ａの動作が仕様を満たしているかを検証し、設計対象回路３ａの動作が仕様を満たしていないときにエラー検出として通知する検証回路３１＿１〜３１＿ｎ、３１＿１〜３１＿ｋと、エラーの検出が通知された場合に設計対象回路３ａの動作を一時的に停止させて、検証回路３１＿１〜３１＿ｎ、３１＿１〜３１＿ｋによる検証の結果をコンピュータ２に転送する検証結果転送回路４２ａ、４２ｂとを備える。
【０００７】
【特許文献１】特開２００７−０９４５９１号公報（図２）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以下の分析は、本発明者によってなされたものである。特許文献１に記載されたシミュレーション装置においては、第１ないし第ｎ検証回路３１＿１〜３１＿ｎおよび第１ないし第ｋ検証回路３２＿１〜３２＿ｋの個数は、（例えば、ＨＤＬ記述中に挿入される）アサーションの数に対応している。すなわち、設計対象回路３ａに対するアサーションは、それぞれ別個の検証回路として実装される。
【０００９】
したがって、特許文献１に記載されたシミュレーション装置においては、設計対象回路３ａの規模が増大するのに伴ってアサーションの数も増加した場合に、プログラマブル回路（再構成可能論理回路ともいう。）に実装される検証回路の規模が増大するという問題がある。
【００１０】
そこで、アサーションベース検証におけるアサーションの数が増大した場合における、再構成可能論理回路に実装される検証回路の規模の増大を抑えることが課題となる。
【課題を解決するための手段】
【００１１】
本発明の第１の視点に係る再構成可能論理回路は、設計対象回路と該設計対象回路を検証する検証回路とを備え、前記検証回路は、アサーションベース検証に含まれる複数のアサーションに基づく検証に共用される。
【００１２】
本発明の第２の視点に係る検証方法は、設計対象回路と該設計対象回路を検証する検証回路とを備える再構成可能論理回路による検証方法であって、前記検証回路によって、アサーションベース検証に含まれる第１のアサーションに基づく検証を行う工程と、前記検証回路によって、前記アサーションベース検証に含まれる第２のアサーションに基づく検証を行う工程とを含む。
【００１３】
本発明の第３の視点に係る検証プログラムは、設計対象回路と該設計対象回路を検証する検証回路とを備え、アサーションベース検証に含まれる複数のアサーションに基づく検証に該検証回路が共用されるように構成された再構成可能論理回路に接続されたコンピュータに、該複数のアサーションのうちのいずれのアサーションに基づいて該設計対象回路を検証すべきかを選択する制御コードを送信させる。
【発明の効果】
【００１４】
本発明に係る再構成可能論理回路ならびに検証方法および検証プログラムにより、アサーションベース検証におけるアサーションの数が増大した場合において、再構成可能論理回路に実装される検証回路の規模の増大を抑えることができる。
【発明を実施するための最良の形態】
【００１５】
（第１の実施形態）
本発明の第１の実施形態に係る検証回路について図面を参照して説明する。図１は、本実施形態に係る検証回路の構成を示すブロック図である。図１を参照すると、再構成可能論理回路２０とコンピュータ１０との間で協調シミュレーションが行われる。再構成可能論理回路２０は、検証回路２７および設計対象回路２１を備える。
【００１６】
検証回路２７は、設計対象回路２１を検証する。検証回路２７は、アサーションベース検証に含まれる複数のアサーションに基づく検証に共用される。
【００１７】
検証回路２７は、アサーションベース検証に含まれる複数のアサーションのうちの互いに類似するものに基づく検証に共用されることが好ましい。
【００１８】
再構成可能論理回路２０は、さらに設定レジスタ２８を備えるようにしてもよい。設定レジスタ２８は、アサーションベース検証に含まれる複数のアサーションのうちのいずれのアサーションに基づいて設計対象回路２１を検証すべきかを選択する制御コードを記録する。検証回路２７は、設定レジスタ２８に記録された制御コードにより選択されたアサーションに基づいて設計対象回路２１を検証する。
【００１９】
また、コンピュータ１０は、再構成可能論理回路２０に接続される。検証プログラム１１は、複数のアサーションのうちのいずれのアサーションに基づいて設計対象回路２１を検証すべきかを選択する制御コードをコンピュータ１０に送信させるようにしてもよい。
【００２０】
アサーションベース検証に含まれる複数のアサーションの間で検証回路２７を共有することによって、アサーションの数が増大した場合において、再構成可能論理回路２０に実装される検証回路２７の規模の増大を抑えることができる。
【００２１】
また、アサーションの記述に誤りが含まれる場合であっても、再構成可能論理回路２０を再構成することなく誤りを修正することができる。なぜなら、検証プログラム１１により検証回路２７に対する設定レジスタ２８を書き換えることによって、検証回路２７の機能を修正することができるからである。
【実施例１】
【００２２】
本発明に係る検証回路の実施例について、図面を参照して説明する。図２は、本実施例の検証回路を含むシミュレーション装置の構成を示すブロック図である。シミュレーション装置は、コンピュータ６０と再構成可能論理回路７０を備え、両者は再構成可能論理回路７０のＩＯポート５０を介して接続される。
【００２３】
再構成可能論理回路７０は、設計対象回路７１、検証回路７７、クロック制御回路７３、ブレイク制御回路７２およびＩＯポート５０を備える。設計対象回路は、例えばＨＤＬによって設計される。検証回路７７は、設計対象回路７１に対して定義されたアサーションに応じて生成される。クロック制御回路７３は、検証回路７７および設計対象回路７１を動作させるクロックを生成する。ブレイク信号７６は、アサーション発生やエラー発生をブレイク制御回路７２およびクロック制御回路７３に通知する信号である。ブレイク制御回路７２は、ブレイク要求信号７５を生成する。ブレイク要求信号７５は、チェック結果をコンピュータ６０上の検証プログラム６１に転送することを要求する信号である。ＩＯポート５０は、コンピュータ６０上の検証プログラム６１と再構成可能論理回路７０間の通信を制御する。
【００２４】
検証回路７７は、第１ないし第ｎアサーション回路７４＿１〜７４＿ｎ、第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎ、第１ないし第ｎ検証結果レジスタ７９＿１〜７９＿ｎおよび検証プログラムＩ／Ｆ５１を備える。第１ないし第ｎアサーション回路７４＿１〜７４＿ｎは、設計対象回路７１を観測し、期待する動作であるか否かをチェックする。第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎは、第１ないし第ｎアサーション回路７４＿１〜７４＿ｎの機能を制御する。第１ないし第ｎ検証結果レジスタ７９＿１〜７９＿ｎは、検証結果を格納する。検証プログラムＩ／Ｆ５１は、コンピュータ６０上の検証プログラム６１から検証回路７７にアクセスするためのＩ／Ｆである。
【００２５】
コンピュータ６０に設けた検証プログラム６１は、第１ないし第ｎアサーション回路７４＿１〜７４＿ｎの機能を変更するための設定コードである第１アサーション制御コード６２＿１＿１〜６２＿１＿ｍ、…、第ｎアサーション制御コード６２＿ｎ＿１〜６２＿ｎ＿ｋを備える。
【００２６】
第１アサーション制御コード６２＿１＿１〜６２＿１＿ｍ、…、第ｎアサーション制御コード６２＿ｎ＿１〜６２＿ｎ＿ｋは、ＩＯポート５０および検証プログラムＩ／Ｆ５１を介して、第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定される。第１ないし第ｎアサーション回路７４＿１〜７４＿ｎは、第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定されたアサーション制御コードにしたがって動作する。
【００２７】
ＩＯポート５０は、検証回路７７の検証プログラムＩ／Ｆ５１、ブレイク制御回路７２およびクロック制御回路７３に接続される。ブレイク制御回路７２およびクロック制御回路７３は、検証回路７７の出力であるブレイク信号７６を受信する。
【００２８】
検証プログラム６１は、ブレイク要求信号７５を受信する。検証回路７７の第１ないし第ｎアサーション回路７４＿１〜７４＿ｎは、設計対象回路７１の内部信号を受信する。
【００２９】
図３を参照して、図２に示したシミュレーション装置の動作を説明する。コンピュータ６０に設けた検証プログラム６１は、第１アサーション回路に対するアサーションコードである第１アサーション制御コード６２＿１＿１〜６２＿１＿ｍのいずれか１つをＩＯポート５０および検証プログラムＩ／Ｆ５１を介して検証回路７７の第１設定レジスタ７８＿１に設定する。同様に、検証プログラム６１は、第ｎアサーション回路に対するアサーションコードである第ｎアサーション制御コード６２＿ｎ＿１〜６２＿ｎ＿ｋのいずれか１つを第ｎ設定レジスタ７８＿ｎに設定する（ステップＳ１０）。
【００３０】
次に、クロック制御回路７３は、設計対象回路７１および検証回路７７にクロックを供給し、シミュレーションを開始する（ステップＳ１１）。
【００３１】
シミュレーションが終了したか否かを判定し（ステップＳ１４）、シミュレーションが終了した場合には（ステップＳ１４のＹｅｓ）、検証を終了する。
【００３２】
一方、シミュレーションが終了していない場合には（ステップＳ１４のＮｏ）、アサーションチェック（ステップＳ１５）を行う。ここでは、アサーションの成否のチェックとして、第１ないし第ｎアサーション回路７４＿１〜７４＿ｎが、設計対象回路７１の内部信号を受信して、第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定されたアサーション制御コードに応じたアサーションが成立するか否かをチェックする（ステップＳ１５）。アサーションが成立しない場合には（ステップＳ１５のＮｏ）、ステップＳ１４の処理へ戻ってシミュレーションを継続する。
【００３３】
アサーションが成立した場合には（ステップＳ１５のＹｅｓ）、第１ないし第ｎアサーション回路７４＿１〜７４＿ｎは、ブレイク信号７６によってアサーション検証の発生をブレイク制御回路７２に通知する。ブレイク制御回路７２は、検証プログラム６１にブレイク要求信号７５を通知する（ステップＳ１６）。クロック制御回路７３は、ブレイク信号７６を受信した場合には、設計対象回路７１に供給しているクロックを停止する（ステップＳ１７）。
【００３４】
検証プログラム６１は、ブレイク制御回路７２からブレイク要求信号７５を受信した場合には、ＩＯポート５０を介してブレイク制御回路７２の要因レジスタ（非図示）を読み取り（リードし）、検証回路７７内の第１ないし第ｎアサーション回路７４＿１〜７４＿ｎのいずれのアサーション回路からの通知であるのかを判定し、判定後にブレイク要因をクリア（消去）する（ステップＳ１８）。
【００３５】
検証プログラム６１は、ＩＯポート５０を介して、上記の判定結果に応じて第１ないし第ｎ検証結果レジスタ７９＿１〜７９＿ｎのいずれかに格納された検証結果を読み出す（ステップＳ１９）。
【００３６】
次に、ステップＳ１１に戻り、クロック供給を再開し、上記ステップＳ１１ないしＳ１９の工程をシミュレーションの終了条件が成立する（ステップＳ１４のＹｅｓ）まで繰り返す。
【００３７】
シミュレーション終了後、次に、検証すべきアサーションがある場合、すなわち、チェックが完了していないアサーション制御コードがある場合には、第１アサーション制御コード６２＿１＿１〜６２＿１＿ｍのいずれか１つ、…、第ｎアサーション制御コード６２＿ｎ＿１〜６２＿ｎ＿ｋのいずれか１つを、それぞれＩＯポート５０および検証プログラムＩ／Ｆ５１を介して、それぞれ、第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定する（ステップＳ１０）。
【００３８】
再度、シミュレーション（ステップＳ１１ないしＳ１９）を行う。検証すべきアサーションが全て終了するまで、上記のシミュレーションの工程を繰り返す。
【実施例２】
【００３９】
本発明に係る検証回路の第２の実施例として、アサーション回路の共有化について説明する。図４は、アサーション定義におけるプロパティ宣言を示し、特に、設計者によって定義されたＬｉｂ１という名前のプロパティを示す。図４のプロパティ宣言は、「ＡＲＧ１とＡＲＧ２の値が一致してから３クロック後にＡＲＧ３とＡＲＧ４が一致していれば仕様を満たす」ということを示す。
【００４０】
以下、図４のようにＡＲＧ１とＡＲＧ２の値が一致することをアサーション前提条件という。また、アサーション前提条件が成立してから３クロック後にＡＲＧ３とＡＲＧ４が一致することをアサーション発生という。
【００４１】
図５は、設計者によって定義されたＬｉｂ１というプロパティを呼び出して、ｃｈｅｃｋ１とｃｈｅｃｋ２という異なるアサーション定義をインスタンス化した例である。
【００４２】
図５のアサーションは、ｃｈｅｃｋ１において、「ａとｂの値が一致してから３クロック後にｃとｄが一致している」ことを検証するものである。一方、ｃｈｅｃｋ２では、「ｅとｆの値が一致してから３クロック後にｇとｈが一致している」ことを検証する。
【００４３】
図６は、本実施例に係るアサーション回路の構成を示すブロック図である。図６は、図５のアサーションのインスタンスｃｈｅｃｋ１およびｃｈｅｃｋ２を１つのアサーション回路に変換したものである。図６のアサーション回路８０は、検証回路部８１と入力選択部８２により構成されている。
【００４４】
検証回路部８１は、第１比較器８３、第２比較器８４、コントローラ８６および結果判定回路８５を備えている。コントローラ８６は、結果判定のタイミングを制御する。
【００４５】
また、入力選択部８２の第１のセレクタは、入力信号ａおよび入力信号ｅはセレクタを受信し、入力選択信号ＣＮＴ１により選択された入力信号を第１比較器８３に出力する。入力選択部８２の第２のセレクタは、入力信号ｂおよび入力信号ｆを受信し、入力選択信号ＣＮＴ２により選択された入力信号を第１比較器８３に出力する。入力選択部８２の第３のセレクタは、入力選択部８２の入力信号ｃおよび入力信号ｇを受信し、入力選択信号ＣＮＴ３により選択された入力信号を第２比較器８４に出力する。入力選択部８２の第４のセレクタは、入力信号ｄおよび入力信号ｈを受信し、入力選択信号ＣＮＴ４により選択された入力信号を第２比較器８４に出力する。
【００４６】
図６のアサーション回路８０の動作を説明する。入力選択部８２は、入力選択信号ＣＮＴ１〜ＣＮＴ４の設定に応じて、入力信号を選択し、第１比較器８３および第２比較器８４に出力する。
【００４７】
コントローラ８６は、第１比較器８３の比較結果を受信して、入力が一致してから３クロック後に、結果判定回路８５に結果判定指示を送信する。
【００４８】
結果判定回路８５は、コントローラ８６からの結果判定指示を受信すると同時に、第２比較器８４の比較結果を受信する。結果判定回路８５は、第２比較器８４の比較結果（以下、判定結果という）を端子ＲＥＳＵＬＴに出力する。
【００４９】
図６のアサーション回路８０を図２のシミュレーション装置の第１アサーション回路７４＿１として搭載した場合には、第１設定レジスタ７８＿１は、アサーション回路８０の入力選択信号ＣＮＴ１〜ＣＮＴ４を出力する。一方、第１検証結果レジスタ７９＿１は、端子ＲＥＳＵＬＴに接続され、判定結果を受信する。検証プログラム６１は、第１検証結果レジスタ７９＿１から検証結果を読み出す。
【００５０】
上記の構成によると、アサーション制御コードを複数用意することにより、アサーション検証内容の切り替えを行なうことができる。したがって、複数のアサーションの間で、アサーション回路８０を共有することができる。
【００５１】
なお、本実施例において、図４の仕様のように「ＡＲＧ１とＡＲＧ２の値が一致してから３クロック後にＡＲＧ３とＡＲＧ４が一致していれば仕様を満たす」旨の設定をし、アサーションが参照する信号名を引数として変更できるものとしている。なお、「ＡＲＧ１とＡＲＧ２の値が一致してからｎクロック後にＡＲＧ３とＡＲＧ４が一致していれば仕様を満たす」旨の設定を行い、クロック数ｎも引数として指定することにより、共用化できるアサーションの数をさらに増やすこともできる。
【００５２】
本実施例に係るシミュレーション装置は、検証プログラムから制御可能な設定レジスタと、設定レジスタにより機能を変更することのできるアサーション回路と、設定レジスタにアサーション制御コードを転送し制御する検証プログラムと、アサーション回路の検証結果を格納するレジスタとを備える。特許文献１に記載されたシミュレーション装置においては、アサーションの数の増加に伴い、再構成可能論理回路に実装される検証回路の規模が増大するという問題があった。しかし、本実施例に係るシミュレーション装置により、かかる問題を解決することできる。
【実施例３】
【００５３】
本発明の実施例に係る検証回路について図面を参照して説明する。図７は、本実施例に係る検証回路を備えるシミュレーション装置の構成を示すブロック図である。図７を参照すると、シミュレーション装置は、検証プログラム９１および検証回路９２を備える。
【００５４】
本実施例においては、１０個のアサーションが定義されたものとする。なお、１０個のアサーションのうち、第１、第２、第４、第８および第９のアサーションによる検証内容が類似し、アサーション定義の第３、第５、第６、第７および第１０のアサーションによる検証内容が類似するものとする。特許文献１に記載のシミュレーション装置においては、定義されたアサーションの数と同数の検証回路が再構成可能論理回路上に必要とされるため、再構成可能論理回路上に１０個の検証回路を実現する必要がある。
【００５５】
本実施例のシミュレーション装置においては、検証内容が互いに類似するアサーションをグループ化し、グループ化されたアサーションは検証回路９２における単一のアサーション回路を共有する。また、検証プログラム９１によって設定されるアサーション制御コードに基づいてアサーション回路の動作を変更することにより、アサーション機能を実現する。
【００５６】
１０個のアサーションは、検証プログラム９１において、第１アサーション制御コード９１ａと第２アサーション制御コード９１ｂの２つのグループに分割される。第１アサーション制御コード９１ａは第１アサーション回路９２ａを共有し、第２アサーション制御コード９１ｂは第２アサーション回路９２ｂを共有する。
【００５７】
第１アサーション回路９２ａは、設定レジスタ９２ｃおよび検証結果レジスタ９２ｄに接続される。第２アサーション回路９２ｂは、設定レジスタ９２ｅおよび検証結果レジスタ９２ｆに接続される。
【００５８】
検証プログラム９１は、設定レジスタ９２ｃに設定される第１アサーション制御コード９１ａを変更するとともに、設定レジスタ９２ｅに設定される第２アサーション制御コード９１ｂを変更する。これにより、２つのアサーション回路、すなわち、第１アサーション回路９２ａおよび第２アサーション回路９２ｂにより、１０個のアサーションに関する設計対象回路の検証が可能となる。このとき、アサーションの増加に伴う、再構成可能論理回路に実現される検証回路の回路規模の増大を抑えることができる。したがって、特許文献１に記載されたシミュレーション装置における問題が解消される。
【実施例４】
【００５９】
本発明の第４の実施例に係るシミュレーション装置について図面を参照して説明する。図８は、本実施例に係る検証回路を備えるシミュレーション装置の構成を示すブロック図である。
【００６０】
図８を参照すると、本実施例に係るシミュレーション装置と、第１の実施例に係るシミュレーション装置との違いは、以下の通りである。すなわち、検証回路７７は、アサーション回路のそれぞれ対して、さらに、第１ないし第ｎアサーション前提条件確認レジスタ１００＿１〜１００＿ｎを備える。また、検証プログラム６１は、さらに、第１ないし第ｎアサーション発生スケジュール１０１＿１〜１０１＿ｎを備える。
【００６１】
図９は、本実施例に係る検証回路を備えるシミュレーション装置におけるアサーション発生スケジュールを生成するためのフローチャートである。図９を参照すると、シミュレーションが終了したか否かを判定し（ステップＳ３０）、シミュレーションが終了した場合には（ステップＳ３０のＹｅｓ）、処理を終了する。シミュレーションが終了していない場合には（ステップＳ３０のＮｏ）、検証プログラム６１におけるアサーション制御コードを各アサーション回路の第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定する（ステップＳ３１）。
【００６２】
次に、第１ないし第ｎアサーション前提条件確認レジスタ１００＿１〜１００＿ｎをリードして、現時刻におけるアサーション前提条件の発生有無をチェックし（ステップＳ３２）、アサーション前提条件が発生しているときには発生時刻（またはタイミング）と、何番目のアサーション回路の何番目の制御コードにおいて発生したのかをアサーション発生スケジュールに登録する（ステップＳ３６）。
【００６３】
アサーション回路を共有する複数のアサーションがある場合には、全てのアサーション制御コードを順にアサーション回路の第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定し、同一時刻におけるすべてのアサーション前提条件の発生の有無をチェックする（ステップＳ３３）。すべてのアサーション前提条件の発生の有無をチェックした場合には（ステップＳ３３のＹｅｓ）、１クロックのみクロックを供給する（ステップＳ３４）。
【００６４】
シミュレーション終了時刻までステップＳ３０ないしＳ３４を繰り返すことにより、全時刻におけるアサーション発生スケジュールを抽出する（ステップＳ３６）。
【００６５】
図１０は、本実施例におけるアサーション（プロパティ宣言）の例を示す。図１０を参照すると、プロパティＬｉｂ３は設計者によって定義されるプロパティであり、「ＡＲＧ９とＡＲＧ１０が一致する場合において、同サイクルにおけるＡＲＧ１１とＡＲＧ１２が一致するときには仕様が満たされる」ことを表す。
【００６６】
図１０のアサーションの場合には、アサーション発生確認（図９のステップＳ３２）は次のように行われる。すなわち、「ＡＲＧ９＝ＡＲＧ１０」が成立するか否か確認することによって、アサーション発生時刻におけるアサーション前提条件の発生の有無を確認する。図１０に示したアサーションの場合には、１サイクル内においてチェックが完結する。しかし、アサーションは複数クロックのシーケンスを含むものであってもよい。
【００６７】
図１１は、本実施例におけるアサーション呼び出し（プロパティのインスタンス化）の例を示す。図１１を参照すると、設計者によって定義されたＬｉｂ３を呼び出して、ｃｈｅｃｋ５ないしｃｈｅｃｋ８というアサーションがインスタンス化される。図１１の場合には、４つのアサーション制御コードが、１つのアサーション回路を共有することになる。
【００６８】
図１２は、本実施例に係るアサーション回路の構成を示すブロック図である。アサーション回路１８０は、図１０のアサーションを回路化したものである。図１２を参照すると、アサーション回路１８０には、図６のアサーション回路８０に対して、さらにＯＣＣＵＲ信号が追加される。アサーション回路１８０においては、ＡＲＧ９とＡＲＧ１０によって選択される観測信号が一致する場合には、ＯＣＣＵＲ信号がアクティブとなる。
【００６９】
図１２のアサーション回路１８０を図８のシミュレーション装置に搭載した場合には、ＯＣＣＵＲ信号は第１ないし第ｎアサーション前提条件確認レジスタ１００＿１〜１００＿ｎのいずれかに接続される。検証プログラム６０は、検証プログラムＩ／Ｆ５１を介して第１ないし第ｎアサーション前提条件確認レジスタ１００＿１〜１００＿ｎの内容を読み出すことによって、アサーション前提条件の発生の有無を確認する。
【００７０】
図１３は、本実施例におけるアサーション発生スケジュールの例を示す図である。図１３を参照すると、図９のアサーション発生スケジュールの抽出フローにしたがって生成された１つのアサーション回路に対するアサーション発生スケジュールが示される。図１３における各行はシミュレーション時刻を示し、各列はアサーション定義式を示す。また、各シミュレーション時刻におけるアサーション前提条件の発生を丸印で示す。
【００７１】
アサーション前提条件の発生が重複しない時刻（クロック）１、３、５、７、８、１１、１２、１３、１４、１７および１８においては、アサーション前提条件の発生時刻までに該当するアサーション制御コードを各アサーション回路の第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定する。一方、同時刻においてアサーション前提条件の発生が重複する時刻４、６および１０においては、いずれか１つのアサーション制御コードを選択して、各アサーション回路の第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定し、シミュレーションを実行する。
【００７２】
アサーション定義式が同時刻において重複したために設定されなかったアサーション制御コードについては、上記のシミュレーションが終了した後、次のシミュレーションにおいて、アサーション制御コードを各アサーション回路の第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定してシミュレーションを実行する。すべてのアサーション制御コードが設定されるまで、シミュレーションを繰り返す。
【００７３】
図１４は、本実施例に係る検証方法のフローチャートである。図１４におけるステップＳ１０ないしＳ１９は、第１の実施例におけるフローチャートと同様であることから、説明を省略する。
【００７４】
検証プログラム６１は、アサーション発生スケジュール１０１＿１ないし１０１＿ｎを参照し、次のクロックでアサーション制御コードを変更するものがあるか否かを判定する（ステップＳ４０）。変更すべきものが無い場合には（ステップＳ４０のＮｏ）、ステップＳ１１に進む。
【００７５】
一方、アサーション制御コードにおいて変更すべきものがある場合には（ステップＳ４０のＹｅｓ）、アサーション発生スケジュール１０１＿１〜１０１＿ｎに基づいて、何番目のアサーション回路に対応する何番目のアサーション制御コードであるのかを判定し、該当するアサーション制御コードを第１アサーション制御コード６２＿１＿１〜６２＿１＿ｍないし第ｎアサーション制御コード６２＿ｎ＿１〜６２＿ｎ＿ｋのいずれか一つを選択し、該当するアサーション制御コードをＩＯポート５０および検証プログラムＩ／Ｆ５１を介して、検証回路７７上の第１ないし第ｎ設定レジスタ７８＿１〜７８＿ｎに設定し（ステップＳ４１）、ステップＳ１１に進む。
【００７６】
シミュレーションの終了後、アサーション発生スケジュール１０１＿１〜１０１＿ｎを参照し、検証すべきアサーションが残存している場合には、再度ステップＳ１０ないしＳ４１の処理を行い、検証すべきアサーションが無くなるまで、シミュレーションを繰り返す。
【００７７】
本実施例によると、アサーション回路１８０を共有しているアサーションの発生時刻が重複しない場合には、アサーション発生時刻の前にアサーション制御コードをアサーション回路１８０の設定レジスタに設定し、シミュレーションを行うことで、シミュレーションの回数を削減することができる。
【００７８】
以上の記載は実施例に基づいて行ったが、本発明は、上記実施例に限定されるものではない。
【図面の簡単な説明】
【００７９】
【図１】本発明の第１の実施形態に係る検証回路の構成を示すブロック図である。
【図２】本発明の第１の実施例に係る検証回路の構成を示すブロック図である。
【図３】本発明の第１の実施例に係る検証方法のフローチャートを示す図である。
【図４】本発明の第２の実施例におけるアサーション（プロパティ宣言）の例を示す。
【図５】本発明の第２の実施例におけるアサーション（プロパティのインスタンス化）の例を示す。
【図６】本発明の第２の実施例に係るアサーション回路の構成を示すブロック図である。
【図７】本発明の第３の実施例に係る検証回路を備えるシミュレーション装置の構成を示すブロック図である。
【図８】本発明の第４の実施例に係る検証回路を備えるシミュレーション装置の構成を示すブロック図である。
【図９】本発明の第４の実施例に係る検証回路を備えるシミュレーション装置におけるアサーション発生スケジュールを生成するためのフローチャートである。
【図１０】本発明の第４の実施例におけるアサーション（プロパティ宣言）の例を示す。
【図１１】本発明の第４の実施例におけるアサーション呼び出し（プロパティのインスタンス化）の例を示す。
【図１２】本発明の第４の実施例に係るアサーション回路の構成を示すブロック図である。
【図１３】本発明の第４の実施例におけるアサーション発生スケジュールの例を示す図である。
【図１４】本発明の第４の実施例に係る検証方法のフローチャートである。
【符号の説明】
【００８０】
１０、６０  コンピュータ
１１、６１、９１  検証プログラム
２０、７０  再構成可能論理回路
２１、７１  設計対象回路
２７、７７、９２  検証回路
２８、７８、９２ｃ、９２ｅ  設定レジスタ
５０  ＩＯポート
５１  検証プログラムＩ／Ｆ
６２＿１＿１〜６２＿１＿ｍ  第１アサーション制御コード
６２＿ｎ＿１〜６２＿ｎ＿ｋ  第ｎアサーション制御コード
７２  ブレイク制御回路
７３  クロック制御回路
７４  アサーション回路
７４＿１〜７４＿ｎ  第１ないし第ｎアサーション回路
７５  ブレイク要求信号
７６  ブレイク信号
７８＿１〜７８＿ｎ  第１ないし第ｎ設定レジスタ
７９＿１〜７９＿ｎ  第１ないし第ｎ検証結果レジスタ
８０、１８０  アサーション回路
８１、１８１  検証回路部
８２、１８２  入力選択部
８３、１８３  第１比較器
８４、１８４  第２比較器
８５、１８５  結果判定回路
８６、１８６  コントローラ
９１ａ  第１アサーション制御コード
９１ｂ  第２アサーション制御コード
９２ａ  第１アサーション回路
９２ｂ  第２アサーション回路
９２ｄ、９２ｆ  検証結果レジスタ
１００＿１〜１００＿ｎ  第１ないし第ｎアサーション前提条件確認レジスタ
１０１＿１〜１０１＿ｎ  第１ないし第ｎアサーション発生スケジュール
【図１】
2010140255.tif 000003
【図２】
2010140255.tif 000004
【図３】
2010140255.tif 000005
【図４】
2010140255.tif 000006
【図５】
2010140255.tif 000007
【図６】
2010140255.tif 000008
【図７】
2010140255.tif 000009
【図８】
2010140255.tif 000010
【図９】
2010140255.tif 000011
【図１０】
2010140255.tif 000012
【図１１】
2010140255.tif 000013
【図１２】
2010140255.tif 000014
【図１３】
2010140255.tif 000015
【図１４】
2010140255.tif 000016