(57)【特許請求の範囲】
【請求項１】
論理モデルである１つの第１回路モデルとそれぞれが論理モデルである複数の第２回路モデルとインターフェースコントローラにより、複数の第２回路に結合された第１回路を含むデジタル回路を、少なくとも１つのプロセッサを使用してシミュレートする方法であって、
（ｉ）  前記第１回路モデルを使用して、前記第１回路内で交換される前記第１回路モデルの信号をシミュレートする工程であって、前記第１回路モデルは第１時間づつインクリメントされる第１シミュレート時間のシーケンスを通して作動する工程と、
（ｉｉ）  前記第１回路モデルが前記第２回路モデルのうちの少なくとも１つが応答すべき信号の値を変える第１シミュレート時間に、前記第１回路モデルが進む時、前記第１回路モデルが、前記第１回路内で交換される信号のシミュレートを停止し、前記第１シミュレート時間のインクリメントを停止し、前記信号を前記第２回路モデルのうちの前記少なくとも１つに送る工程と、
（ｉｉｉ）  前記第２回路モデルを使用して、前記複数の第２回路の間で交換される信号をシミュレートする工程であって、前記複数の第２回路モデルは第２時間づつインクリメントされる第２シミュレート時間のシーケンスを通して作動する工程と、
（ｉｖ）  前記インターフェースコントローラを使用して、前記第１回路モデルと前記複数の第２回路モデルの間の信号の受け渡しを制御し、
（ｖ）  前記インターフェースコントローラを使用して、前記複数の第２回路モデルによる信号交換がおこなわれなくなったことを検出し、その結果、前記第２シミュレート時間のインクリメントを停止し、前記第２シミュレート時間のインクリメント中に前記複数の第２回路モデルによって変更され、前記第１回路モデルが応答すべき信号の最後のアサートされた値を前記第１回路モデルへ送る工程と、
（ｖｉ）  前記第１回路モデルが、前記第１回路内で交換される信号の前記第１回路モデルによるシミュレーションを再スタートし、前記第１シミュレート時間をインクリメントする工程と、
を備えた、デジタル回路をシミュレートする方法。
【請求項２】
前記複数の第２回路モデルは、該複数の第２回路の外部の信号のみを前記第１回路モデルと交換する、請求項１記載の方法。
【請求項３】
前記複数の第２回路モデルは、該複数の第２回路モデルの内外の信号を互いに交換する、請求項１記載の方法。
【請求項４】
前記複数の第２回路モデルによって信号の交換が行われる間、前記複数の第２回路モデルのいずれかが、前記第１回路モデルに対し優先信号を発生し、これを該第１回路モデルに送ることができる、請求項１記載の方法。
【請求項５】
前記優先信号により前記第１回路モデルから前記複数の第２回路モデルへの１つ以上の別の信号の送りがトリガーされる場合、前記１つ以上の別の信号は前記優先信号の発生前に、前記複数の第２回路モデルの状態の結果生じる前記複数の第２回路モデルにより更なる信号の交換が行われなくなるまでバッファ化され、前記複数の第２回路モデルへは印加されない、請求項４記載の方法。
【請求項６】
前記第１のシミュレートされた時間インクリメントの少なくともいくつかは実質的に長さがゼロのデルタ時間インクリメントである、請求項１記載の方法。
【請求項７】
前記第２のシミュレートされた時間インクリメントの少なくともいくつかは実質的に長さがゼロのデルタ時間インクリメントである、請求項１記載の方法。
【請求項８】
前記第１回路モデルは前記インターフェースコントローラへ信号を送り、この前記インターフェースコントローラはこの信号をバッファリングし、この信号に応答すべき前記複数の第２回路モデルに前記信号を再び向ける、請求項１記載の方法。
【請求項９】
前記インターフェースコントローラは前記複数の第２回路モデルによって変更された信号のアサートされた値およびこの変更が生じた第２シミュレート時間を表示するデータを記憶する、請求項８記載の方法。
【請求項１０】
前記第１回路モデルは、前記第１回路をモデル化する第１プログラム命令の制御により作動する汎用データ処理装置を含む、請求項１記載の方法。
【請求項１１】
前記複数の第２回路モデルは、前記複数の第２回路をモデル化する第２プログラム命令の制御により作動する前記汎用データ処理装置を含む、請求項１０記載の方法。
【請求項１２】
前記複数の第２回路モデルはマイクロプロセッサ回路を示し、前記第１回路モデルは前記マイクロプロセッサ回路に接続すべき１つ以上のデバイスを示す、請求項１１記載の方法。
【請求項１３】
複数の第２回路に結合される第１回路を含むデジタル回路を少なくとも１つのプロセッサを使用してシミュレートするための装置であって、
（ｉ）  第１時間づつインクリメントされる第１シミュレート時間のシーケンスを通して作動する、前記第１回路内で交換される信号をシミュレートするための第１回路モデルと、
（ｉｉ）  第２時間づつインクリメントされる第２シミュレート時間のシーケンスを通して作動する、前記複数の第２回路間で交換される信号をシミュレートするための複数の第２回路モデルと、
（ｉｉｉ）  前記第１回路モデルと前記複数の第２回路モデルとの間の信号の送りを制御するためのインターフェースコントローラとを備え、
前記第１回路モデルは論理モデルであり、前記複数の第２回路モデルのそれぞれは論理モデルであり、
（ｉｖ）  前記第２回路モデルのうちの少なくとも１つが応答すべき信号値を前記第１回路モデルが変更する第１シミュレート時間に前記第１回路モデルが進むと、前記第１回路モデルは前記第１回路内で交換される信号のシミュレートを停止し、前記第１シミュレート時間のインクリメントを停止し、前記インターフェースコントローラを介して前記信号を前記第２回路モデルのうちの少なくとも１つに送り、
（ｖ）  前記インターフェースコントローラが前記複数の第２回路モデルにより更なる信号交換が行なわないことを検出すると、前記インターフェースコントローラは前記第２シミュレート時間のインクリメントを停止し、前記第２シミュレート時間のインクリメント中に前記複数の第２回路モデルによって変更された、前記第１回路モデルが応答すべき信号の最後にアサートされた値を前記第１回路モデルへ送り、そして前記第１回路モデルは前記第１回路内で交換される信号のシミュレーションおよび前記第１シミュレート時間のインクリメントを再スタートする、
デジタル回路をシミュレートするための装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル回路シミュレーションの技術分野に関する。
【０００２】
【従来技術】
シミュレートすべきデジタル回路を定義するモデルと共に、ソフトウェア制御により作動する汎用コンピュータによりデジタル回路の機能をシミュレートするデジタル回路シミュレーションシステムを提供することは公知である。かかるデジタル回路シミュレーションは多くの利点を有している。例えばデザインを実際の製造に使用する前にデザインをシミュレートし、デザイン内の欠陥を除くようにテストできる。デジタル回路を他の回路と共に使用するようになっている場合、回路のシミュレーションを利用して、まだ製造段階となっていないシミュレートされたデジタル回路と並行して、かかる他の回路の開発を進めることができる。
【０００３】
デジタル回路シミュレーションコンピュータプログラムは数種が市販されている。例えば、「バンテージスプレッドシート」、「サイノプシスＶｓｓ」、「キャデンスベリローグ」および「モデルテックＶシステム」の４つの例がある。
【０００４】
かかるシミュレーションソフトウェアを使用する際の共通のアプローチ方法は、デジタル回路、例えば新しいマイクロプロセッサのメーカーが、かかるシミュレーションソフトウェアと共に使用できるマイクロプロセッサのモデルを供給し、第三者がこの新しいマイクロプロセッサと共に作動できる回路を開発できるようにする方法である。このようなアプローチ方法は、新しいプロセッサの内部設計に関して、必要な程度に詳細な情報が提供されないという大きな欠点がある。新しいマイクロプロセッサの内部動作を決定するために新しいマイクロプロセッサのモデルは比較的容易に解析できるが、実際には、第三者が求めていることは解析対象であるモデルがマイクロプロセッサの外部入力信号および出力信号をシミュレートすることである。
【０００５】
この問題を解決するため本願出願人の継続中の英国特許出願第9,511,617.4 号に新しいマイクロプロセッサを専用の別個のシミュレーションソフトウェアでシミュレートし、マイクロプロセッサモデルを汎用シミュレーションソフトウェア（第三者はこのソフトウェアに対し、そのモデルを書き込むことができる）とインターフェースする別個のシミュレーションソフトウェアでシミュレートする技術が提案されている。このように、新しいマイクロプロセッサのシミュレーションシステムがマイクロプロセッサの物理的バージョンによって発生される外部入力信号および出力信号だけを示す状態で新しいマイクロプロセッサ専用のシミュレーションシステム内に、新しいマイクロプロセッサの内部動作および詳細な構造が隠されている。
【０００６】
【発明が解決しようとする課題】
公知のアプローチ方法では、単一のシミュレーションシステムでは所有者のマイクロプロセッサモデルおよびこのマイクロプロセッサモデルとインターフェースする第三者の回路の双方を制御するようになっている。従って、単一のシミュレーションシステムは事象のシーケンスおよびモデル全体を通過する信号の伝搬を制御できる。別個のシミュレーションシステムおよび第三者がデバイスモデルを取り付ける上位のシミュレーションシステム内で、全体として１部品として作動するモデルにより、回路、例えばマイクロプロセッサの外部入力信号および出力信号をシミュレートするシステム内で、信号の制御、シーケンスおよび伝搬をコーディネートする上で問題が生じる。本発明の目的は、これら問題を解決することにある。
【０００７】
【課題を解決するための手段】
本発明の１つの様相によれば、１つの第１回路モデルと複数の第２回路モデルを使用して、複数の第２回路に結合された第１回路を含むデジタル回路をシミュレートする方法であって、
（ｉ）  前記第１回路内で交換される前記第１回路モデル（該第１回路モデルは第１時間インクリメントだけ分離された第１シミュレート時間のシーケンスを通して作動する）の信号によりシミュレートする工程と、
（ｉｉ）  前記第１モデルが前記第２回路モデルのうちの少なくとも１つが応答する信号の値を変える第１シミュレート時間において、前記第１回路モデルが進む際に、前記第１回路内で交換される信号のシミュレートを停止し、前記第１シミュレート時間のインクリメントを停止し、前記信号を前記第２回路モデルのうちの前記少なくとも１つに送る工程と、
（ｉｉｉ）  前記複数の第２回路の間で交換される前記複数の第２回路モデル（該複数の第２回路モデルは第２時間インクリメントだけ分離された第２シミュレート時間のシーケンスを通して作動する）の信号を用いてシミュレートする工程と、
（ｉｖ）  前記複数の第２回路モデルにより信号の交換が促進されなくなると、前記第２シミュレート時間のインクリメントを停止し、前記第２シミュレート時間のインクリメント中に前記複数の第２回路モデルによって変更された、前記第１回路モデルが応答する信号の最後にアサートされた値を前記第１回路モデルへ送る工程と
（ｖ）  前記第１回路内で交換される信号の前記第１回路モデルによるシミュレーションを再スタートし、前記第１シミュレート時間をインクリメントする工程とを備えた、デジタル回路をシミュレートする方法が提供される。
【０００８】
本発明は事象のシーケンスおよび信号の伝搬に対する制御装置を各々が有している、異なるシミュレータにより作動させると問題が生じることを認識しており、この問題を解決するものである。このように発生する問題とは、第１回路モデルが第２回路モデルに対し信号を発生すると、第１回路モデルは第２回路モデルに制御権を渡し、第２回路モデルはこれら第２回路モデルに送られた信号に対してどのような応答が生じるかを別々にシミュレートすることにある。第２回路モデルのこの応答がどのようになるかを判断するには、一般に信号が第２回路モデルを通って伝搬するので、多くの第２シミュレート時間のインクリメントを必要とすることとなる。この期間中、第１回路モデルが応答できる信号の多くの信号値は、最終的な出力信号値に落ち着くまで数回変わり得る。最終値に落ち着く前のかかる変化は、物理的回路内では一定の状態に達する前の短期間の中間値をとる信号に対応し得る。すなわち回路は各々出力値となる潜在的な結果を有する数種の入力信号が多かれ少なかれ、同じ時間に変化する組み合わせ論理を含む。
【０００９】
本発明が認識するこの問題を処理するため、第２回路のシミュレーションは第２回路モデルが信号の交換を終了し（すなわちモデルが供給された入力信号に対する応答を示す状態に落ち着き）、次に第１回路モデルが応答できる信号の最終アサート値を第１回路モデルへ戻すまでシステムが待機するようになっている。このように第２回路モデルが作動する結果として生じ得るスプリアス（ｓｐｕｒｉｏｕｓ）信号値は、不正確な動作をする可能性がある第１回路モデルへは送られない。
【００１０】
２つのシミュレーションシステムが共に働く態様を改善するための上記技術は、多くの異なる状況に適用できる。しかしながら先に述べたように、前記複数の第２回路モデルが外部信号のみを前記第１回路モデルと交換するような状況で２つのシミュレーションシステムを共に作動させたいという特殊な動機がある。
【００１１】
複数の第２回路モデルの内部信号を第１回路モデルへ送らないかかる状況では、第１のかかるモデルを制御するシミュレーションソフトウェアを使って複数の第２回路モデルを制御することはできないので、２つの別個のシミュレーションシステムの動作をコーディネートする問題が生じる。
【００１２】
第２回路モデルのうちの１つが第１回路モデルに即座に送らなければならない遅延ゼロの信号（優先信号）を発生する際に、２つのシミュレータをコーディネートする別の問題が生じ得る。この応答信号に対する第１回路モデルの応答によって複数の第２回路モデルが応答自在な信号値が変わり、第２回路シミュレーションへの再入が生じる可能性が生じる。複数の第２回路モデルは先に信号が印加された第１回路モデルからの信号の完全な結果によって処理されていないので、かかる再入は制御しなければならない。
【００１３】
従って、前記複数の第２回路モデルによって信号の交換が促進される間、前記複数の第２回路モデルのいずれかが、前記第１回路モデルに対し優先信号を発生し、これを該第１回路モデルに送ることができる本発明の実施例では、前記優先信号により前記第１回路モデルから前記複数の第２回路モデルへの１つ以上の別の信号の送りがトリガーされる場合、前記１つ以上の別の信号は前記優先信号の発生前の、前記複数の第２回路モデルの状態の結果生じる前記複数の第２回路モデルにより更なる信号の交換が促進されなくなるまでバッファ化され、前記複数の第２回路モデルへは印加されない。
【００１４】
このように、第１回路モデルへ即座に送られる優先信号は許可されるが、第２シミュレーションへの制御されない再入の問題はいまだ解消されていない。
【００１５】
第１シミュレート時間インクリメントおよび第２シミュレート時間インクリメントはなんらかの時間を有し得ると理解できよう。より詳細には、一定の順序で、かつ両者の間に時間的な差異がほとんど実質的にない信号転送が生じる状況がある。これをモデル化するため、前記第１シミュレート時間インクリメントおよび前記第２シミュレート時間インクリメントは、長さが実質的にゼロのデルタ時間のインクリメントとすることができる。かかるデルタ時間インクリメントは一定の積分面積を有し、無限小の幅の数学的なデルタ関数に類似するものと見なすことができる。このような意味において、デルタ時間インクリメントの順は制御できるが、経過したシミュレート時間は有効にゼロとなる。
【００１６】
第２シミュレーションシステムは、このシステムが多数の第２回路モデルを有効に発生することを条件に、多数の形態をとり得る。しかしながら、好ましい実現例は第１回路モデルがインターフェースコントローラへ信号を送り、このインターフェースコントローラがこの信号をバッファ化し、更にこの信号に応答自在な前記複数の第２回路モデルへ前記信号を再び向けるような例である。
【００１７】
第２回路モデルによって発生される最終アサート信号値が決定できるようにするには、前記インターフェースコントローラが前記複数の第２回路モデルによって変更された信号のアサート値およびこれらの変更が生じた第２シミュレート時間を表示するデータを記憶することが好ましい。
【００１８】
第１回路モデルおよび第２回路モデルを特殊目的のモデル化ハードウェア、例えばＰＬＡのようなある形態で提供することは理論的に可能であると理解されよう。しかしながらこれら回路モデルはプログラム命令の制御により作動する汎用データ処理装置によって提供されることが好ましい。
【００１９】
複数の第２回路モデルは任意の形態のデジタル回路、および特に秘密に維持したかった回路を提供できると理解できる。しかしながら本発明は特に前記複数の第２回路モデルがマイクロプロセッサ回路を示し、前記第１回路モデルが前記マイクロプロセッサ回路に接続すべき１つ以上のデバイスを示す実施例で特に有効である。
【００２０】
本発明の別の様相によれば、複数の第２回路に結合される第１回路を含むデジタル回路をシミュレートするための装置であって、
（ｉ）  第１時間インクリメントだけ分離された第１シミュレート時間のシーケンスを通して作動する、前記第１回路内で交換される信号をシミュレートするための第１回路モデルと、
（ｉｉ）  第２時間インクリメントだけ分離された第２シミュレート時間のシーケンスを通して作動する、前記複数の第２回路間で交換される信号をシミュレートするための複数の第２回路モデルと、
（ｉｉｉ）  前記第１回路モデルと前記複数の第２回路モデルとの間の信号の送りを制御するためのインターフェースコントローラとを備え、
（ｉｖ）  前記第２回路モデルのうちの少なくとも１つが応答する信号値を前記第１回路モデルが変更する第１シミュレート時間に前記第１回路モデルが進むと、前記第１回路モデルは前記第１回路内で交換される信号のシミュレートを停止し、前記第１シミュレート時間のインクリメントを停止し、前記インターフェースコントローラを介して前記信号を前記第２回路モデルのうちの前記少なくとも１つに送り、
（ｖ）  前記複数の第２回路モデルにより更なる信号交換が促進されなくなると、前記インターフェースコントローラは前記第２シミュレート時間のインクリメントを停止し、前記第２シミュレート時間のインクリメント中に前記複数の第２回路モデルによって変更された、前記第１回路モデルが応答自在な信号の最後にアサートされた値を前記第１回路モデルへ送り、そして前記第１回路モデルは前記第１回路内で交換された信号のシミュレーションおよび前記第１シミュレート時間のインクリメントを再スタートする、デジタル回路をシミュレートするための装置が提供される。
【００２１】
添付図面を参照して実施例の次の詳細な説明を読めば、本発明の上記およびそれ以外の目的、特徴および利点が明らかとなろう。
【００２２】
本明細書の導入部に記載した市販の各シミュレーションパッケージを用いれば、マイクロプロセッサの比較的小さいブロック、例えばパイプラインユニット、プログラムカウンタ、または演算論理ユニットをシミュレートするため、Ｃコードのブロックを書き込むことができる。次に各ブロックをシミュレーションパッケージに対して直接インターフェース化し、マイクロプロセッサ全体をシミュレートする。
【００２３】
添付図面のうちの図１に、この構造の一例が示されている。
図１は、先に提案されたデジタル回路シミュレータ内の第１シミュレートと、かかるシミュレーションブロック１０、２０、３０のうちの２ブロックとの相互作用を示す略図である。第１シミュレータ４０は、例えば上記４つの市販シミュレータのうちの１つでよい。
【００２４】
シミュレーションブロック（第２回路モデル）１０、２０、３０の各々は、Ｃプログラム言語で書かれており、マイクロプロセッサのそれぞれの部分の動作をシミュレートする。例えばシミュレーションブロックはマルチプライヤユニット、ステータスレジスタ、インストラクションパイプライン等をシミュレートできる。
【００２５】
一般に、各シミュレーションブロックは２種類の入出力データを必要とし、これらデータを発生する。内部データと称すこれら種類のデータの一方は、デジタル回路の異なる部品間で送られる内部信号を示すデータである。マイクロプロセッサをシミュレートする場合、かかる信号の例としては内部レジスタの値またはゼロフラグがある。この場合、集積回路を半導体製品として製造する場合、このような内部信号は集積回路の入出力ピン、すなわち接続部にはルート化されず、単に内部部品の間で送られるだけである。
【００２６】
他の種類のデータは外部データと称され、このデータは回路が半導体製品として製造される際、通常外部世界の間で送られる電気信号を示す。このような外部信号の例としてはクロック信号および外部アドレスバス信号がある。
【００２７】
しかしながら図１ではシミュレーションブロックは第１シミュレータ４０を介してのみ相互に接続されるので、内部信号および外部信号のいずれも第１シミュレータ４０との間でやりとりする必要がある。上記のように、このことは秘密にされる集積回路の内部動作、特に内部信号トラフィックの詳細およびシミュレーションブロックのアイデンティティおよび機能をシミュレータのユーザーに開示しなければならないことを意味している。
【００２８】
【発明の実施の形態】
図１は、先に提案されたシミュレータの別の特徴を示している。この特徴とは、シミュレーションブロック１０、２０、３０と、使用される特定の第１シミュレータ４０との間のインターフェースを適合するために「ベニア」を使用することである。これらベニア５０、６０、７０はシミュレーションブロック１０、２０、３０等を上位概念で製造可能にするものであるので、特定の第１シミュレータ４０と通信するためのベニアを加えるのに比較的少量の作業しか必要とならない。
【００２９】
添付図面のうちの図２は、図１の構造に対応する回路略図である。図２は多数のシミュレーションブロック（例えば条件ユニット、マルチプライヤ、演算論理ユニット（ＡＬＵ）、パイプライン）の例を示す。従ってこれらブロックは製造された集積回路内で直接通信するが、シミュレータ構造ではブロックは第１シミュレータ４０を通して通信しなければならない。
【００３０】
図３は、本発明の一実施例にかかわる集積回路シミュレータにおけるシミュレーションブロックの相互作用を示す略図である。
【００３１】
シミュレーションブロック１０、２０、３０は上記ブロックに類似するが、これらブロックは第１シミュレータ（本例では４０’）と通信するように、むしろデータインターフェースブロック１００と通信する。
【００３２】
データインターフェースブロック１００はシミュレーションブロックおよび第１シミュレータとの間でやりとりするデータ信号のリスト（図示せず）を記憶する。このリストは、受信した信号の必要な宛て先を表示し、更にこの信号が内部データ信号であるのか外部データ信号であるのかを表示する（この情報は実際には宛て先情報内に暗示させることができる）。
【００３３】
このブロックがシミュレーションブロックまたは第１シミュレータ４０’からデータ信号を受けると、このブロックは記憶されているリスト内のルート決定情報に従ってそのデータ信号のルートを決定するという点で、データインターフェースブロック１００の作動はストレートフォワードである（第２実施例ではこのルート決定ではタイミング情報を使用することがあるが、説明を容易とするため、かかるタイミング情報の使用については下記に別に説明する）。
【００３４】
より詳細には、次の表は、各ブロックによって使用されるデータ入力およびデータ出力を示すシミュレーションブロックの例のリストである。この表では外部データ信号に対してはアンダーラインが付けてあり、アンダーラインのない信号は内部信号である。
【００３５】
【表１】
0003731929.tif 000002
【００３６】
例えば第１シミュレータ４０’から外部入力信号として受信されるクロック信号は、上記表に従ってシミュレーションブロックのいずれへも送られる。これと対照的に、プログラムカウンタの値はプログラムカウンタシミュレーションブロックによって内部出力信号として発生され、データインターフェースブロック１００を介して直接アドレスレジスタインターフェースブロックへ送られる。すなわち第１シミュレータ４０’へは送られない。
【００３７】
この結果、通常製造される半導体集積回路の入力信号または出力信号として供給される外部信号だけが第１シミュレータ４０’と置換される。
【００３８】
別の特徴は、データインターフェースブロック１００と第１シミュレータ４
０’との間のインターフェースを制御するのに、１つのベニア５０’だけでよいということである。シミュレータブロック１０、２０、３０の各々にベニアを提供することはもはや不要である。
【００３９】
この構造は、図４に略図で示されており、ここでは図２と対照的に、第１シミュレータ４０’はベニア５０’を介して、全体としてシミュレートされたマイクロプロセッサ１１０と通信するようになっている。マイクロプロセッサ１１０の内部動作に関連する内部信号は第１シミュレータ４０’との間でやりとりする必要はない。
【００４０】
第２実施例では、完了するのに一定の時間を必要とする事象をシミュレートするシミュレーションにはタイミング情報が含まれる。例えばレジスタブロックをシミュレートするためのシミュレーションブロックはシミュレーション時間に関して瞬間的に出力の値を発生できるが、他方、この値は実際の製造された回路で計算するのに一定の（リアル）時間を必要とする。従って、かかるブロックの作動をシミュレートするため、所定の時間にレジスタのうちの１つの内容に対するリクエストを受信し、ブロックが出力データを発生するように命令することができるが、リクエスト後、（シミュレーション時間に対して）適当な遅延時間までに出力データを読み出すことはできない。
【００４１】
これまでは第１シミュレータの一部を形成するスケジューラに対し詳細を送ることにより、将来の実行を行うため、かかる事象スケジュールを決めていた。しかしながらこれを行うには動作の詳細を第１シミュレータのユーザーに提供しなければならない。
【００４２】
このような問題を解消するため、本システムの第２実施例では将来実行するようにスケジュールが決められる事象（例えば上記レジスタアクセス）のリスト、すなわちヒープ（これは必ずしも順序を定めなくてもよい）を維持するデータインターフェース１００によって実行している。これら事象の詳細はシミュレーションブロックからデータインターフェースへ送られる。
【００４３】
データインターフェースがシミュレーションブロックからかかる各事象の詳細を受けると、データインターフェースは動作を実行すべき時間と共に、実行すべき特定の動作の詳細を記憶する。しかしながら、データインターフェースは第１シミュレータ内のスケジューラに対し実行時間の詳細を送るだけである。
【００４４】
第１シミュレータはデータインターフェースからの時間情報を受け、この時間に開始すべき特殊でない事象のスケジュールを決める。各時間に達すると第１シミュレータは特殊でないスケジュール信号をデータインターフェースへ送る。これにより、データインターフェースが待ち行列状態の事象のヒープにコンサルトし、その時間に発生するようになっているレジスタシミュレーションブロックからの出力値の読み出しのような事象を開始させる。
【００４５】
このように、第１シミュレータに供給しなければならない待ち行列事象の詳細は実行時間にすぎず、その他の詳細はデータインターフェースによって処理される。
【００４６】
図５に図３のシステムをより詳細に示す。ライン１０２の下のブロックはマイクロプロセッサのコア、例えばアドバンストＲＩＳＣマシンリミテッド社によって製造されているＡＲＭ６コアをモデル化するものである。ライン１０２の上のブロックは１つ以上の取り付けデバイスをモデル化するものであり、第３社が第１回路モデルを取り付ける市販の第１シミュレータ４０’を利用している。第１シミュレータ４０’は第１シミュレータ内の第１シミュレータ時間を時間インクリメント△Ｐだけ進める。第１シミュレータが第２回路モデル１０、２０、３０のうちの少なくとも１つが応答自在である信号を変えるとプログラム制御は第２シミュレータ１００に進む。第２シミュレータは感度マップ１０４を含み、このマップはどの第２回路モデル１０、２０、３０がどの信号に応答するかを表示するデータを記憶している。信号配分および第２シミュレーション時間管理ブロックは第２シミュレーション時間を第２シミュレーション時間インクリメント△ｓ（このインクリメントはゼロ期間のデルタ時間インクリメントでよい）だけ進めるので、種々の第２回路モデル１０、２０、３０の間でやりとりされる信号は、これら信号に応答するモデルへ送られ、プログラム制御は次に各第２回路モデルへ移るので、第２回路モデルは応答時間を決定し、他の信号を戻すことができる。これら他の信号は据え置き事象記憶装置１０６内に保持され、この記憶装置１０６は発生すべき変更された信号の値およびこれらを他のモデルに送る時間を表示する。第２シミュレーション時間が進むと、すべての信号変化が複数の第２回路モデル１０、２０、３０内の適当なモデルへ送られ、第２回路モデル１０、２０、３０によって別の信号変化が送られなくなるまで、据え置き事象記憶装置１０６がスイープされる。
【００４７】
第１回路待ち行列１０８内には複数の第２回路モデル１０、２０、３０の外部信号に対する変化が待ち行列状態となっている。これら信号変化は第２回路モデル１０、２０、３０の間ですべての信号の交換が行われるまで、第１シミュレーション４０’へは送られることはない。この時間に達すると第１回路待ち行列１０８がサーチされ、変化した各外部信号の最後にアサートされた値が第１シミュレータ４０’へ戻される。
【００４８】
図６は図５のシステムの動作を略図で示すものである。ステップ２００では、第１シミュレータ４０’は第１モデルの状態を計算する。ステップ２０２では第２回路シミュレータ１００が応答する出力（例えば外部信号）が変化したかどうかを判断する。かかる信号が変化していなければステップ２０４で第１シミュレータの時間をインクリメントし、ステップ２００を繰り返す。外部信号が変化していればステップ２０６を通って第２シミュレータ１００へ進み、ステップ２０８で第２回路モデル１０、２０、３０の状態を計算する。ステップ２１０で第２シミュレータ１００の信号配分および第２シミュレーション時間管理ブロックが第２回路モデルによって変更されようとしている信号があるかどうかを判断する。かかる変更がまだ生じていれば、ステップ２１２にて第２シミュレート時間をインクリメントする。かかる変更が生じていなければ既に変更し、第１シミュレータ４０’が応答自在である信号の値の最後のアサートされた信号の値をステップ２１４にて第１シミュレータへ戻す。
【００４９】
図７は図６の制御フローの変形例を示す。まずステップ２０６にて第２シミュレーションに入り、ステップ２１６にて据え置き事象記憶装置１０６内にペンディング中の信号変化があるかどうかを判断する。かかるペンディング中の変化があれば、第２回路モデル１０、２０、３０によって促進されている信号変化が停止する前に、第１シミュレーションへ戻される優先信号の結果としてステージ２０８から第２シミュレーションが出たことを表示する。この場合、ステップ２１８にて第１信号から第２シミュレータ１００へ送られている新しい信号の変化はバッファ化される。
【００５０】
第２シミュレータ１００は第２回路モデルを計算するように作動し、（図６と同じように）第２回路モデル１０、２０、３０によってそれ以上信号変化が行われなくなるまで、第２シミュレート時間をインクリメントする。ステップ２０８には第２シミュレーションから出て、すぐに第１シミュレーションへ戻す優先信号を発生できる別のオプションが存在できる。
【００５１】
第２回路モデル１０、２０、３０によって促進される信号変化が停止した後、ステップ２２０においてステップ２１８で記憶されたバッファ化された信号があるかどうかを判断する。かかるバッファ化された信号が存在していれば、ステップ２２２にて第２モデルへバッファ化した信号を送り、更に変化が促進されなくなるまで第２シミュレーションを続ける。
【００５２】
最後にステップ２１２にてプログラム制御を第２シミュレータへ戻す。
【００５３】
以上で添付図面を参照して本発明の図示した実施例を詳細に説明したが、本発明はこれら実施例のみに限定されるものでなく、当業者であれば添付した特許請求の範囲に記載の発明の範囲および精神から逸脱することなく、種々の変形および変更を行うことができると理解すべきである。
【図面の簡単な説明】
【図１】これまで提案されたデジタル回路シミュレータ内のシミュレーションブロックの相互作用を示す略図である。
【図２】図１の構造に対応する回路の略図である。
【図３】本発明の一実施例による集積回路シミュレータ内のシミュレーションブロックの相互作用を示す略図である。
【図４】図３の構造に対応する回路略図である。
【図５】図３のシステムのより詳細な図である。
【図６】第１シミュレーションと第２シミュレーションとの間の制御プログラムの移動を示すフローチャートである。
【図７】優先信号を直接第２回路モデルから第１回路モデルへ送ることができる、図６のシステムの変形例における制御プログラムのフローチャートである。
【符号の説明】
１０、２０、３０  第２回路モデル
４０’  第１回路モデル
５０’  第１シミュレータから第２シミュレータへのインターフェース
１０４  感度マップ
１０６  据え置き事象記憶装置
１０８  第１回路待ち行列
【図１】
0003731929.tif 000003
【図２】
0003731929.tif 000004
【図３】
0003731929.tif 000005
【図４】
0003731929.tif 000006
【図５】
0003731929.tif 000007
【図６】
0003731929.tif 000008
【図７】
0003731929.tif 000009