(57)【要約】【課題】周辺マクロシミュレータでのシミュレーションにおける入力信号の変化に必要とされる処理工程数を削減し、もってシミュレータ速度の高速化を可能にしたシミュレータ及びシミュレーション方法を提供する。【解決手段】ＣＰＵシミュレータ１０と、１以上の周辺マクロシミュレータ２０と、これらの同期実行を制御する同期実行制御処理部３０とを備え、周辺マクロシミュレータ２０はＣＰＵシミュレータ１０でのシミュレーションに基づいて端子に入力される信号が変化したときに当該端子信号に基づくシミュレーションを実行する。周辺マクロシミュレータ２０は、入力された端子信号の変化を検出し、変化した端子信号を端子信号リスト２２に登録し、登録された端子信号についてのみシミュレーションを実行する。【選択図】　図１
2004030228.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵシミュレータと、１以上の周辺マクロシミュレータと、前記ＣＰＵシミュレータ及び周辺マクロシミュレータの同期実行を制御する同期実行制御処理部とを備え、前記周辺マクロシミュレータは前記ＣＰＵシミュレータでのシミュレーションに基づいて端子に入力される信号に基づくシミュレーションを実行するように構成したＬＳＩシミュレータにおいて、前記周辺マクロシミュレータには、入力された端子信号の変化を検出する手段と、変化された端子信号のみを登録する端子信号リストとを備え、前記端子信号リストに登録された端子信号に基づいてシミュレーションを実行するように構成したことを特徴とするＬＳＩシミュレータ。
【請求項２】
ＣＰＵシミュレータと、複数の周辺マクロシミュレータと、前記ＣＰＵシミュレータ及び周辺マクロシミュレータに対して同期時間の通知を行って各シミュレータの同期実行を制御する同期実行制御処理部とを備え、前記周辺マクロシミュレータは前記ＣＰＵシミュレータでのシミュレーションに基づいて端子に入力される信号に基づくシミュレーションを実行するように構成したＬＳＩシミュレータにおいて、前記複数の周辺マクロシミュレータにはそれぞれ信号が入力されたときに前記実行制御処理部に同期時間の要求を送出する手段と、当該入力された端子信号に基づくシミュレーションが実行されたときに同期時間の解除を送出する手段とを備え、前記同期実行制御処理部は、前記同期時間の要求を登録する同期時間要求登録手段を備え、前記同期時間要求登録手段に登録された同期時間の要求に対応する周辺マクロシミュレータに対してのみ前記同期時間の通知を行うよう構成されていることを特徴とするＬＳＩシミュレータ。
【請求項３】
前記周辺マクロシミュレータは、入力された端子信号の変化を検出する手段と、変化された端子信号のみを登録する端子信号リストとを備え、前記端子信号リストに登録された端子信号についてシミュレーションを実行するように構成したことを特徴とする請求項２に記載のＬＳＩシミュレータ。
【請求項４】
ＣＰＵシミュレータと、１以上の周辺マクロシミュレータと、前記ＣＰＵシミュレータ及び周辺マクロシミュレータの同期実行を制御する同期実行制御処理部とを備え、前記周辺マクロシミュレータは前記ＣＰＵシミュレータでのシミュレーションに基づいて端子に入力される信号に基づくシミュレーションを実行するように構成したＬＳＩシミュレータにおいて、前記周辺マクロシミュレータは、入力された端子信号についてのみ当該信号の変化を検出し、信号の変化が検出された端子信号に基づくシミュレーションのみを実行することを特徴とするシミュレーション方法。
【請求項５】
前記周辺マクロシミュレータは、入力された信号の変化を検出し、変化された端子信号のみを端子信号リストに登録し、前記シミュレーションを実行する際には前記端子信号リストに登録された端子信号に基づくシミュレーションのみを実行することを特徴とする請求項４に記載のシミュレーション方法。
【請求項６】
ＣＰＵシミュレータと、複数の周辺マクロシミュレータと、前記ＣＰＵシミュレータ及び周辺マクロシミュレータに対して同期時間の通知を行って各シミュレータの同期実行を制御する同期実行制御処理部とを備え、前記周辺マクロシミュレータは前記ＣＰＵシミュレータでのシミュレーションに基づいて端子に入力される信号に基づくシミュレーションを実行するように構成したＬＳＩシミュレータにおいて、前記複数の周辺マクロシミュレータはそれぞれ信号が入力されたときに前記実行制御処理部に同期時間の要求を送出し、前記同期実行制御処理部は前記同期時間の要求を送出した周辺マクロシミュレータに対してのみ前記同期時間の通知を行なうことを特徴とするシミュレーション方法。
【請求項７】
ＣＰＵシミュレータと、複数の周辺マクロシミュレータと、前記ＣＰＵシミュレータ及び周辺マクロシミュレータに対して同期時間の通知を行って各シミュレータの同期実行を制御する同期実行制御処理部とを備え、前記周辺マクロシミュレータは前記ＣＰＵシミュレータでのシミュレーションに基づいて端子に入力される信号に基づくシミュレーションを実行するように構成したＬＳＩシミュレータにおいて、前記複数の周辺マクロシミュレータはそれぞれ信号が入力されたときに前記実行制御処理部に同期時間の要求を送出し、前記同期実行制御処理部は前記同期時間の要求を送出した周辺マクロシミュレータに対してのみ前記同期時間の通知を行ない、前記複数の周辺マクロシミュレータは前記同期時間の通知を受けたときに前記入力された端子信号についてのみ当該信号の変化を検出し、信号の変化が検出された端子信号に基づくシミュレーションのみを実行することを特徴とするシミュレーション方法。
【請求項８】
前記実行制御処理部は送出されてきた同期時間の要求を同期時間要求テーブルの該当する端子欄に登録し、当該同期時間要求テーブルに登録された同期時間の要求を送出した周辺マクロシミュレータに対してのみ前記同期時間の通知を行い、前記周辺マクロシミュレータは前記入力された端子信号に基づくシミュレーションが実行されたときに前記同期時間要求テーブルから同期時間の要求を削除する同期時間の解除を送出することを特徴とする請求項６又は７に記載のシミュレーション方法。
【請求項９】
前記実行制御処理部は送出されてきた同期時間の要求のみを同期時間要求リストに順序的に登録し、当該同期時間要求リストに登録された同期時間の要求を送出した周辺マクロシミュレータに対してのみ登録順に前記同期時間の通知を行い、前記周辺マクロシミュレータは前記入力された端子信号に基づくシミュレーションが実行されたときに前記同期時間要求リストから同期時間の要求を削除する同期時間の解除を送出することを特徴とする請求項６又は７に記載のシミュレーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＬＳＩ（大規模集積回路）のシミュレーション技術に関し、特に多数の周辺マクロシミュレータを備えるＬＳＩシミュレータにおけるシミュレーションの高速化を図ったＬＳＩシミュレータ及びシミュレーション方法に関するものである。
【０００２】
【従来の技術】
ＣＰＵや他の周辺マクロを備えるＬＳＩを始めとする各種電子デバイスの設計に際し、当該電子デバイスをハード上でシミュレートすることは設計工数、製造工数の面で好ましくない。そのため、当該電子デバイスと同じ機能をソフト上で実現し、このソフトをコンピュータで実行することでＣＰＵや周辺マクロのシミュレーションが実現できる。このようなシミュレーションを実現するために、設計する電子デバイスに搭載するＣＰＵや複数の周辺マクロに対応する機能を有するＣＰＵシミュレータや周辺マクロシミュレータを用意し、これらを同期実行制御処理によって制御するシミュレータが提案されている。なお、ここではＬＳＩを始めとして各種電子デバイスのシミュレーションを行うものを含めてＬＳＩシミュレータと称することにする。
【０００３】
従来のＬＳＩシミュレータ３は、図９に示すように、ＣＰＵシミュレータ１０と、１つ以上の周辺マクロシミュレータ、ここでは複数の周辺マクロシミュレータ２０（２０Ａ，２０Ｂ，…，２０Ｎ）とが同期実行制御処理部３０に接続された構成とされている。そして、同期実行制御処理部３０からはＣＰＵシミュレータ１０に対して時刻ｔ０で時間の通知を行ない、ＣＰＵシミュレータ１０は所定の処理を実行する。この際、必要な周辺マクロシミュレータに対して信号の通知を実行する。その後、同期実行制御処理部３０は第１の周辺マクロシミュレータ２０Ａに対して時刻ｔ１で時間の通知を行い、通知を受けた第１の周辺マクロシミュレータ２０ＡはＣＰＵシミュレータ１０から通知された信号に基づいてシミュレーションを実行する。この際、入力された信号に変化がない場合にはシミュレーションは実行されない。次いで、同期実行制御処理部３０は第２の周辺マクロシミュレータ２０Ｂに対して時刻ｔ２で時間の通知を行い、通知を受けた第２の周辺マクロシミュレータ２０Ｂはシミュレーションを実行し、あるいは実行しない。以下、全ての周辺マクロシミュレータに対して順序的に時間の通知を行い、各周辺マクロシミュレータでのシミュレーションを実行し、あるいは実行しない構成とされている。
【０００４】
図１０は一つの周辺マクロシミュレータ２０の構成を示しており、周辺マクロシミュレータ２０は多数個の端子２１を備えており、これらの端子２１はＣＰＵシミュレータ１０はもとより、図には表れない外部回路、あるいは他の周辺マクロシミュレータに接続されており、信号が入力可能とされている。周辺マクロシミュレータ２０は各端子に入力された信号（端子信号）を登録（エントリ）する端子信号テーブル２６を備えている。さらに、周辺マクロシミュレータ２０には端子信号テーブル２６に登録された信号の変化を検出する入力信号変化チェック処理部２４を備えており、信号の変化を検出したときに当該周辺マクロシミュレータ２０でのシミュレーションを実行するようになっている。
【０００５】
このような従来のＬＳＩシミュレータ３では、同期実行制御処理部３０がＣＰＵシミュレータ１０に対して単位時間の時間の通知を行うと、ＣＰＵシミュレータ１０は単位時間のシミュレーションを実行する。図２を参照して後述するが、ＣＰＵシミュレータ１０では、１クロックの命令をフェッチし（Ｓ１０１）、命令を判定する（Ｓ１０２）。例えば、ＮＯＰ命令ならＮＯＰ命令処理を行い（Ｓ１０３）、ＡＤＤ命令ならＡＤＤ命令処理を行い（Ｓ１０４）、ＳＴＯＲＥ命令なＳＴＯＲＥ命令処理を行う（Ｓ１０５）。特に、ＳＴＯＲＥ命令の場合には、信号の出力先を判定し（Ｓ１０６）、メモリ領域ならばメモリライト処理を実行し（Ｓ１０７）、ＩＯレジスタ処理ならばＩＯレジスタライト処理を実行する（Ｓ１０８）。なお、命令判定において該当する命令がなければエラー処理を実行する（Ｓ１０９）。
【０００６】
ＩＯレジスタライト処理Ｓ１０８の場合には、前述したように端子信号テーブル２６への信号の登録を実行する。すなわち、図１１は端子信号テーブル２６の一例であり、周辺マクロシミュレータ２０の全ての端子２１に対応して第１番目から第ｎ番目までの端子欄が用意され、各端子欄はインデックスによって表示され、各端子欄には入力された信号の信号値ＳＶ１と、その直前の信号値ＳＶ０を登録することができるようになっている。したがって、ＩＯレジスタライト処理Ｓ１０８においては、全ての端子について入力された信号の信号値ＳＶ１が、直前の信号値ＳＶ０と並んで登録されることになる。
【０００７】
そして、同期実行制御処理部３０が複数の周辺マクロシミュレータ２０に対して前述したような手順でそれぞれに対し単位時間の時間の通知を行うと、時間の通知が行われた周辺マクロシミュレータ２０では、図１２に１クロックのアルゴリズムを示すフローのように、入力信号変化チェック処理部２４は端子信号テーブル２６の１番目からｎ番目までの全ての端子欄について現在と直前の各信号値ＳＶ１，ＳＶ０を比較する処理を実行する。すなわち、カウンタ値Ｉ＝０とした上で（Ｓ６０１）、Ｉ番目の端子欄の信号値ＳＶ１とＳＶ０を比較し、信号値の変化を検出する（Ｓ６０３）。信号が変化された端子が存在すれば、周辺マクロシミュレータ２０では当該端子に入力された端子信号に対応する処理部を呼び出し、当該端子信号基づくシミュレーションを実行する（Ｓ６０４）。信号値が変化された端子が存在しない場合には周辺マクロシミュレータ２０におけるシミュレーションは行わない。これをＩが端子欄の数を越えるまで、すなわち端子信号テーブル２６の全ての端子欄について行う（Ｓ６０２）。以下、他の周辺マクロシミュレータ２０についても同様な処理を行い、全ての周辺マクロシミュレータ２０について処理を実行する。
【０００８】
【発明が解決しようとする課題】
このように従来のＬＳＩシミュレータでは、多数の周辺マクロシミュレータでのシミュレーションを実行する際には、各周辺マクロシミュレータにおいて入力信号の変化があった周辺マクロシミュレータについてシミュレーションを実行する構成がとられているため、周辺マクロシミュレータのシミュレーションに際しては、端子信号テーブル２６を利用して各周辺マクロシミュレータのそれぞれ全ての端子について入力直前の信号と入力された信号を比較して入力信号の変化を検出する処理が必要となる。したがって、ＬＳＩシミュレータを構成している周辺マクロシミュレータの数が多くなると、それだけ各周辺マクロシミュレータにおける処理工程数が多くなり、結果としてＬＳＩシミュレータ全体のシミュレーション速度が遅くなるという問題が生じる。
【０００９】
特に、通常のＬＳＩシミュレータでは、必ずしも多数個の周辺マクロシミュレータの全てに対して信号が入力されることは殆どなく、しかも各周辺マクロシミュレータの全ての端子において信号が変化されるようなことは殆どなく、実際は一部の周辺マクロシミュレータについて、しかもそのうち一部の端子の入力信号が変化されるに過ぎないことが殆どである。このような場合に前述のように全ての周辺マクロシミュレータの全ての端子について入力信号の変化を検出する処理を行うことは、いたずらに処理工数を増大することにつながる。特に、近年ではＬＳＩシミュレータを構成する周辺マクロシミュレータの全端子数が１００本程度のものが提供されており、このようなＬＳＩシミュレータでは周辺マクロシミュレータでのシミュレーションを実行する際には１００本の端子の全てについて入力信号の変化を検出しなければならず、シミュレーション速度が遅くなる大きな要因となっている。
【００１０】
また、従来のＬＳＩシミュレータでは、全ての周辺マクロシミュレータに対して時間の通知を行って、各周辺マクロシミュレータでのシミュレーションを実行させる構成としているため、周辺マクロシミュレータの数が多い場合にはシミュレーション全体の時間がかかり、シミュレーション速度が遅くなる。通常のＬＳＩシミュレータでは、１つのＣＰＵに対して２０程度の周辺マクロシミュレータが備えられ、また通常のプログラムの大部分の時間において周辺マクロシミュレータが動作することはない。そのため、一部の周辺マクロシミュレータが動作する場合でも、全ての周辺マクロシミュレータに対して順序的に時間の通知を行なうための時間を確保しなければならず、結果としてＬＳＩシミュレータ全体のシミュレーション速度が遅くなる要因となっている。
【００１１】
本発明の目的は、多数の周辺マクロシミュレータを備えるＬＳＩシミュレータにおいて、各周辺マクロシミュレータにおいて必要とされる処理工数を削減し、もってシミュレータ速度の高速化を可能にしたＬＳＩシミュレータ及びシミュレーション方法を提供するものである。
【００１２】
【課題を解決するための手段】
本発明の第１のＬＳＩシミュレータは、ＣＰＵシミュレータと、１以上の周辺マクロシミュレータと、ＣＰＵシミュレータ及び周辺マクロシミュレータの同期実行を制御する同期実行制御処理部とを備え、周辺マクロシミュレータはＣＰＵシミュレータでのシミュレーションに基づいて端子に入力される信号に基づくシミュレーションを実行するように構成したＬＳＩシミュレータにおいて、周辺マクロシミュレータには、入力された端子信号の変化を検出する手段と、変化された端子信号のみを登録する端子信号リストとを備え、前記端子信号リストに登録された端子信号についてのシミュレーションのみを実行するように構成したことを特徴とする。
【００１３】
本発明の第２のＬＳＩシミュレータは、ＣＰＵシミュレータと、複数の周辺マクロシミュレータと、ＣＰＵシミュレータ及び周辺マクロシミュレータに対して同期時間の通知を行って各シミュレータの同期実行を制御する同期実行制御処理部とを備え、周辺マクロシミュレータはＣＰＵシミュレータでのシミュレーションに基づいて端子に入力される信号に基づくシミュレーションを実行するように構成したＬＳＩシミュレータにおいて、複数の周辺マクロシミュレータにはそれぞれ信号が入力されたときに実行制御処理部に同期時間の要求を送出する手段と、当該入力された端子信号に基づくシミュレーションが実行されたときに同期時間の解除を送出する手段とを備え、同期実行制御処理部は同期時間の要求を登録する同期時間要求の登録手段を備え、前記同期時間要求の登録手段に登録された同期時間の要求に対応する周辺マクロシミュレータに対してのみ同期時間の通知を行うよう構成されていることを特徴とする。
【００１４】
本発明の第１のシミュレーション方法は、本発明の第１のＬＳＩシミュレータにおいて、周辺マクロシミュレータは、入力された端子信号についてのみ当該信号の変化を検出し、信号の変化が検出された端子信号に基づくシミュレーションのみを実行することを特徴とする。特に、周辺マクロシミュレータは、入力された端子信号のうち、変化された端子信号のみを端子信号リストに登録し、シミュレーションを実行する際には端子信号リストに登録された端子信号に基づくシミュレーションのみを実行する。
【００１５】
本発明の第２のシミュレーション方法は、本発明の第２のＬＳＩシミュレータにおいて、複数の周辺マクロシミュレータはそれぞれ信号が入力されたときに実行制御処理部に同期時間の要求を送出し、同期実行制御処理部は同期時間の要求を送出した周辺マクロシミュレータに対してのみ同期時間の通知を行なうことを特徴とする。
【００１６】
本発明の第３のシミュレーション方法は、本発明の第２のＬＳＩシミュレータにおいて、複数の周辺マクロシミュレータはそれぞれ信号が入力されたときに実行制御処理部に同期時間の要求を送出し、同期実行制御処理部は同期時間の要求を送出した周辺マクロシミュレータに対してのみ同期時間の通知を行ない、複数の周辺マクロシミュレータは同期時間の通知を受けたときに入力された端子信号のうち変化された端子信号に基づくシミュレーションのみを実行する。
【００１７】
本発明のＬＳＩシミュレータ及びシミュレーション方法によれば、周辺マクロシミュレータは、入力された端子信号のうち変化された端子信号のみを端子信号リストに登録し、その上で端子信号リストに登録された端子信号に基づくシミュレーションを実行する。これにより、個々の周辺マクロシミュレータについてみれば、端子信号が入力されない端子については入力信号変化チェック処理部が信号値の変化を検出する処理が不要になり、処理工数を削減する。また、複数の周辺マクロシミュレータについてみれば、信号が変化されない周辺マクロシミュレータでは、端子信号リストに端子信号が登録されることがなく、当該周辺マクロシミュレータでの処理が不要になる。これにより、多数の周辺マクロシミュレータを備えたＬＳＩシミュレータでのシミュレーションの高速化が実現できる。
【００１８】
また、本発明の他のＬＳＩシミュレータ及びシミュレーション方法によれば、端子信号が入力された周辺マクロシミュレータからのみ同期時間の要求が同期実行制御処理部に送出され、同期実行制御処理部は同期時間の要求に基づいて時間の通知を行うことで、全ての周辺マクロシミュレータのうち、端子に信号が入力された周辺マクロシミュレータ、あるいは信号が変化された周辺マクロシミュレータに対してのみ時間を通知を行い、これらの周辺マクロシミュレータでのシミュレーションを実行可能とする。これにより、信号が入力されない周辺マクロシミュレータ、あるいは信号が変化されない周辺マクロシミュレータに対して時間の通知は行われず、当該周辺マクロシミュレータにおける処理が不要になり、ＬＳＩシミュレータでのシミュレーションの高速化が実現できる。
【００１９】
【発明の実施の形態】
次に、本発明の実施形態を図面を参照して説明する。図１は本発明をＬＳＩシミュレータに適用した第１の実施形態のブロック構成図である。ＬＳＩシミュレータ１は、ＣＰＵシミュレータ１０と、１つ以上の周辺マクロシミュレータ２０とが同期実行制御処理部３０に接続された構成とされている。なお、図１では図９に示したようにＬＳＩシミュレータ１に設けられた多数個の周辺マクロシミュレータのうち、１つの周辺マクロシミュレータについてのみ図示している。周辺マクロシミュレータ２０はそれぞれ多数個の端子２１を備えており、これらの端子２１はＣＰＵシミュレータ１０はもとより、図１には表れない外部回路、あるいは他の周辺マクロシミュレータに接続されており、それぞれ信号が入力可能とされている。周辺マクロシミュレータ２０は各端子２１に入力される信号を処理する端子信号入力処理部２２を備えており、各端子に入力される信号（以下、端子信号と称する）を所要のアルゴリズムで処理することが可能にされている。また、周辺マクロシミュレータ２０には入力された端子信号を記憶する端子信号リスト２３を備えており、前記端子信号入力処理部２２によって入力された端子信号を当該端子信号リスト２３に格納する構成とされている。さらに、周辺マクロシミュレータ２０には入力信号変化チェック処理部２４を備えており、前記端子信号リスト２３に格納された端子信号について、その信号値とその直前の信号値を比較してその変化を検出し、信号の変化を検出したときに当該端子信号に基づくシミュレーションを実行するようになっている。
【００２０】
以上のＬＳＩシミュレータ１では、先ず、同期実行制御処理部３０がＣＰＵシミュレータ１０に対して予め設定した単位時間の時間の通知を行うと、ＣＰＵシミュレータ１０は単位時間のシミュレーションを実行する。このシミュレーションは従来と同じであり、図２にその際の１クロックのアルゴリズムを示すように、１クロックの命令をフェッチし（Ｓ１０１）、命令を判定する（Ｓ１０２）。例えば、ＮＯＰ命令ならＮＯＰ命令処理を行い（Ｓ１０３）、ＡＤＤ命令ならＡＤＤ命令処理を行い（Ｓ１０４）、ＳＴＯＲＥ命令なＳＴＯＲＥ命令処理を行う（Ｓ１０５）。特に、ＳＴＯＲＥ命令の場合には、信号の出力先を判定し（Ｓ１０６）、メモリ領域ならばメモリライト処理を実行し（Ｓ１０７）、ＩＯレジスタ処理ならばＩＯレジスタライト処理を実行する（Ｓ１０８）。なお、命令判定において該当する命令がなければエラー処理を実行する（Ｓ１０９）。
【００２１】
前記ステップＳ１０８のＩＯレジスタライト処理の場合には、図３のフローのように、ＣＰＵシミュレータ１０ではＩＯレジスタライトに対応する周辺マクロシミュレータに対する端子信号出力処理Ｓ２０１を行う。これを受けて周辺マクロシミュレータ２０では端子信号入力処理部２２及び入力信号変化チェック処理部２４において端子信号入力処理Ｓ２０２を行う。この端子信号入力処理Ｓ２０２では、図４にフローを示すように、端子信号入力処理部２２において当該入力された端子信号の端子番号を認識し（Ｓ３０１）、入力信号変化チェック処理部２４において当該端子信号の入力直前の信号値と入力された信号の信号値とを比較する（Ｓ３０２）。そして、信号値が変化した場合には（Ｓ３０３）、端子信号入力処理部２２が当該端子信号を端子信号リスト２３に登録（エントリ）する処理を含んでいる。図５は端子信号リスト２３の一例であり、周辺マクロシミュレータ２０に備えられている端子２１のうち信号が入力された端子の端子番号ＴＮと、当該端子に入力された信号の入力信号値ＳＶとを１つの組として順次入力された順序で登録するようになっている。なお、この端子信号リスト２３には、外部回路あるいは他の周辺マクロシミュレータから入力される端子信号も含めて格納される。
【００２２】
そして、同期実行制御処理部３０が複数の周辺マクロシミュレータに対して予め設定した順序でそれぞれに対し単位時間の時間の通知を行うと、単位時間が通知された周辺マクロシミュレータ２０では、図６に１クロックのアルゴリズムを示すフローのように、端子信号リスト２３が空か否かを判定し（Ｓ４０１）、格納されている端子信号がある場合にはの第１番目に登録されている端子信号について、当該端子信号に対応する処理部を呼び出し、当該処理部においてシミュレーションを実行する（Ｓ４０２）。そして、当該シミュレーションが実行された後は、端子信号リストに登録されている当該端子信号を削除する（Ｓ４０３）。次いで、第２番目の端子信号について同様にしてシミュレーションを実行する。そして、端子信号リスト２３に登録されている全ての端子信号について同様の処理を実行し、最後に端子信号リストに登録されている端子信号が全て削除され、ステップＳ３０１において端子信号リスト２３が空になったことが確認されると、当該周辺マクロシミュレータ２０での処理を完了する。
【００２３】
このように、本実施形態のＬＳＩシミュレータ１では、周辺マクロシミュレータ２０では、信号が入力された端子信号のうち信号値が変化した端子信号のみを端子信号リスト２３に登録した上で、端子信号リスト２３に登録されている端子信号についてのみシミュレーションを実行している。したがって、個々の周辺マクロシミュレータ２０についてみれば、端子信号が入力されない端子については入力信号変化チェック処理部２４が信号値の変化を検出する処理が不要になり、従来のように端子信号テーブルに基づいて全ての端子について信号値の変化を検出している場合に比較して処理工程数を削減することができる。
【００２４】
また、複数の周辺マクロシミュレータ２０についてみれば、信号が入力されない周辺マクロシミュレータでは、端子信号リスト２３に端子信号が登録されることがないので、当該周辺マクロシミュレータでは入力信号変化チェック処理部２４が信号値の変化を検出する処理を全く行うことがなく、当該周辺マクロシミュレータでの処理工程は不要なものになる。
【００２５】
したがって、本実施形態のＬＳＩシミュレータ１では、多数の周辺マクロシミュレータを備えて構成される場合でも、信号が入力された周辺マクロシミュレータにおいては入力された信号についてのみの処理を行い、しかも時間の通知を受けた後においては変化されない信号についての処理は全く不要となり、また、信号が入力されない周辺マクロシミュレータでは実質的な処理は不要であり、結果としてシミュレーションの高速化が実現できることになる。
【００２６】
図７は本発明の第２の実施形態のＬＳＩシミュレータ２のブロック構成図である。このＬＳＩシミュレータ２は、ＣＰＵシミュレータ１０と、複数の周辺マクロシミュレータ２０（２０Ａ，２０Ｂ，…，２０Ｎ）とが同期実行制御処理部３０に接続された構成とされている。図には表れないが、周辺マクロシミュレータ２０はそれぞれ多数個の端子を備えており、これらの端子はＣＰＵシミュレータ１０はもとより、外部回路、あるいは他の周辺マクロシミュレータに接続されており、信号が入力可能とされている。また、同じく図には表れないが、本実施形態では各周辺マクロシミュレータ２０は前記第１の実施形態と同様に、各端子に入力された信号を処理する端子信号入力処理部、入力された端子信号の変化を検出する入力信号変化チェック処理部、信号が変化した端子信号を登録する端子信号リストを備えており、信号が変化された端子信号に基づくシミュレーションを実行するようになっているものとする。
【００２７】
その上で、本実施形態では、各周辺マクロシミュレータ２０（２０Ａ，２０Ｂ，…，２０Ｎ）はさらに同期時間要求・解除部２５（２５Ａ，２５Ｂ，…，２５Ｎ）を備えている。この同期時間要求・解除部２５は前記同期実行制御処理部３０に設けられた同期時間通知要求処理部３１に対して同期時間の要求と同時時間の解除の各信号を送出可能に構成されている。また、前記同期時間要求・解除部２５は、各周辺マクロシミュレータ２０の端子信号入力処理部及び端子信号リストに接続されており、各周辺マクロシミュレータの端子に信号が入力され、端子信号入力処理部が当該端子信号を端子信号リストに登録したときに、この登録を認識して前記同期時間通知要求処理部３１に対して同期時間の要求の信号を送出する。一方、前記同期時間要求・解除部２５は、端子信号リストに格納されている端子信号が存在してないことを認識した場合には前記同期時間通知要求処理部３１に対して同期時間の解除の信号を送出する。
【００２８】
前記同期実行制御処理部３０は前記同期時間通知要求処理部３１に送出されてきた同期時間の要求を各周辺マクロシミュレータ毎に登録する同期時間要求テーブル３２を備えており、同期時間通知要求処理部３１はこの同期時間要求テーブル３２に登録された同期信号の要求を、各周辺マクロシミュレータに対応して同期時間要求テーブル３２に登録する。また、前記同期時間通知要求処理部３１は、前記同期時間要求テーブル３２に登録されている同期時間の要求に基づいて、当該同期時間の要求を送出した周辺マクロシミュレータに対して時間の通知を可能にする。さらに、前記同期時間通知要求処理部３１は、各周辺マクロシミュレータから同期時間の解除の信号が送出されてきたときには、同期時間要求テーブル３２に登録されていた同期時間の要求を削除する構成とされている。
【００２９】
以上のＬＳＩシミュレータ２では、先ず、同期実行制御処理部３０がＣＰＵシミュレータ１０に対して単位時間の時間の通知を行うと、ＣＰＵシミュレータ１０は単位時間のシミュレーションを実行する。このシミュレーションは図２に示した第１の実施形態の場合と同じであり、ここでは説明は省略する。なお、ＩＯレジスタライト処理の場合には、図３に示したように、ＩＯレジスタライトに対応する周辺マクロシミュレータに対して信号の通知を行い、当該信号に対する信号出力処理を行う。これを受けて周辺マクロシミュレータの端子信号入力処理部では、図４に示したように、信号入力処理を行うと同時に、当該信号が入力された端子信号を端子信号リストに登録するが、これも第１の実施形態と同じである。
【００３０】
このように、周辺マクロシミュレータ２０の端子信号入力処理部において端子信号リストに登録する動作が行われると、図８に示すように、同期時間要求・解除部２５はこのことを認識し、その上で同期時間の要求の信号を同期実行制御処理部３０の同期時間通知要求処理部３１に送出する（Ｓ５０１）。これを受けて、同期時間通知要求処理部３１は、同期時間要求テーブル３２内の当該周辺マクロシミュレータに対応して設けられている欄に同期時間の要求を登録する（Ｓ５０２）。したがって、全ての周辺マクロシミュレータのうち、端子に入力された信号が変化された周辺マクロシミュレータからのみ同期時間の要求が同期時間通知要求処理部３１に送出され、当該同期時間の要求が同期時間要求テーブル３２に登録されることになる。その上で、同期時間通知要求処理部３１は、同期時間要求テーブル３２に登録された周辺マクロシミュレータに対して同期時間の通知を行う（Ｓ５０３）。
【００３１】
そのため、同期実行制御処理部３０が前記したＣＰＵシミュレータ１０に対する時間の通知を行った後、周辺マクロシミュレータ２０に対して順序的に時間の通知を行うときには、同期時間通知要求処理部３１は同期時間要求テーブル３２を参照し、当該同期時間要求テーブル３２の各欄について検出を行い、登録されている欄に対応する周辺マクロシミュレータに対してのみ順序的に時間の通知を実行する。そして、この同期時間の通知を受けた周辺マクロシミュレータは、第１の実施形態と同様に、端子信号リストに登録された端子信号に基づくシミュレーションを実行する（Ｓ５０４）。そして、当該端子信号に基づくシミュレーションが完了すると、同期時間要求・解除部２５から同期時間の解除の信号が同期時間通知要求処理部３１に送出され（Ｓ５０５）、同期時間要求テーブル３２から当該周辺マクロシミュレータの同期時間の要求を削除する（Ｓ５０６）。
【００３２】
このように、本実施形態では、端子信号が入力された周辺マクロシミュレータ２０からのみ同期時間の要求が同期実行制御処理部３０に送出されて同期時間要求テーブル３２に登録されるため、同期実行制御処理部３０は同期時間要求テーブル３２の登録内容に基づいて時間の通知を行うことで、全ての周辺マクロシミュレータ２０のうち、端子に入力された信号が変化された周辺マクロシミュレータ２０に対してのみ時間を通知し、これらの周辺マクロシミュレータ２０でのシミュレーションを実行可能とする。したがって、信号が入力されない周辺マクロシミュレータ２０或いは信号が入力されても信号が変化しない周辺マクロシミュレータ２０からは同期時間の要求が行われることがなく、同期実行制御処理部３０から当該周辺マクロシミュレータ２０に時間の通知は行われず、当該周辺マクロシミュレータ２０においてシミュレーションが行われることはなく、ＬＳＩシミュレータ２の全体的なシミュレーションの高速化が実現できる。
【００３３】
なお、所定のシミュレーションが実行された周辺マクロシミュレータ２０から送出される同期時間の解除の信号によって同期時間要求テーブル３２から当該周辺マクロシミュレータ２０の同期時間の要求が削除されるため、次のサイクルにおいて同期実行制御処理部３０から行われる時間の通知に際しては、周辺マクロシミュレータ２０に次の信号が入力されかつ信号が変化されない限り当該周辺マクロシミュレータ２０に時間の通知が行われることはない。
【００３４】
ここで、第２の実施形態においては各周辺マクロシミュレータ２０は、第１の実施形態と同様に端子信号リストを備えるものとして説明したが、各周辺マクロシミュレータが従来技術として説明したような端子信号テーブルによって全端子の信号の変化を検出するように構成されているＬＳＩシミュレータについても、少なくとも信号が入力されない周辺マクロシミュレータ２０での入力信号の処理等を行わないようにすることができ、シミュレーションの高速化を図る上で有効である。
【００３５】
なお、前記第２の実施形態では同期時間要求テーブル３２は各周辺マクロシミュレータ２０に対応する欄を設けておき、各周辺マクロシミュレータ２０から送出されてくる同期時間の要求を対応する欄内に登録するようにしたが、第１の実施形態の端子信号リスト２３のように、送出されてきた同期時間の要求のみを順序的に登録する同期時間要求リストを作成し、当該同期時間要求リストに登録された順序で各周辺マクロシミュレータ２０に時間の通知を行うようにしてもよい。このようにすれば、同期時間要求テーブル３２の場合のように全ての欄に対して同期時間の要求の有無の検出を行う必要がなく、さらなるシミュレーションの高速化が可能になる。
【００３６】
【発明の効果】
以上説明したように本発明のＬＳＩシミュレータ及びシミュレーション方法によれば、周辺マクロシミュレータは、信号が変化された端子信号のみを端子信号リストに登録し、この端子信号リストに登録された端子信号に基づくシミュレーションを実行するので、多数の周辺マクロシミュレータを備えたＬＳＩシミュレータでも、信号が変化された周辺マクロシミュレータにおいては変化された信号についてのみの処理を行い、信号が入力されない周辺マクロシミュレータ及び信号が変化されない周辺マクロシミュレータでは処理が殆ど不要となり、結果としてシミュレーションの高速化が実現できる。
【００３７】
また、本発明の他のＬＳＩシミュレータ及びシミュレーション方法によれば、端子信号が入力された周辺マクロシミュレータからのみ同期時間の要求が同期実行制御処理部に送出され、同期実行制御処理部は同期時間の要求に基づいて時間の通知を行うことで、全ての周辺マクロシミュレータのうち、端子に信号が入力され、あるいは信号が変化された周辺マクロシミュレータに対してのみ時間を通知を行い、これらの周辺マクロシミュレータでのシミュレーションを実行可能とすることができ、これにより、信号が入力されない、あるいは信号が変化されない周辺マクロシミュレータに対する時間の通知及びこれに伴う処理が不要となり、シミュレーションの高速化が実現できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態のＬＳＩシミュレータのブロック構成図である。
【図２】ＣＰＵシミュレータの処理を示すフロー図である。
【図３】ＩＯレジスタライトのフロー図である。
【図４】周辺マクロシミュレータの信号入力処理のフロー図である。
【図５】端子信号リストの概念図である。
【図６】周辺マクロシミュレータでのシミュレーションのフロー図である。
【図７】本発明の第２の実施形態のＬＳＩシミュレータのブロック構成図である。
【図８】時間の通知の処理を示すフロー図である
【図９】従来のＬＳＩシミュレータのブロック構成図である。
【図１０】従来のＬＳＩシミュレータの一部の詳細ブロック構成図である。
【図１１】端子信号テーブルの概念構成図である。
【図１２】周辺マクロシミュレータの信号入力処理のフロー図である。
【符号の説明】
１，２　ＬＳＩシミュレータ
１０　ＣＰＵシミュレータ
２０　周辺マクロシミュレータ
２１　端子
２２　端子信号入力処理部
２３　端子信号リスト
２４　入力信号変化チェック処理部
２５　同期時間要求・解除部
２６　端子信号テーブル
３０　同期実行制御処理部
３１　同期時間通知要求処理部
３２　同期時間要求テーブル
ＴＮ　端子番号
ＳＶ　信号値
【図１】
2004030228.tif 000003
【図２】
2004030228.tif 000004
【図３】
2004030228.tif 000005
【図４】
2004030228.tif 000006
【図５】
2004030228.tif 000007
【図６】
2004030228.tif 000008
【図７】
2004030228.tif 000009
【図８】
2004030228.tif 000010
【図９】
2004030228.tif 000011
【図１０】
2004030228.tif 000012
【図１１】
2004030228.tif 000013
【図１２】
2004030228.tif 000014