JP2001060241A - 混在信号のシミュレーションのための非整数シミュレーション時間のスケジューリング - Google Patents

混在信号のシミュレーションのための非整数シミュレーション時間のスケジューリング

Info

Publication number
JP2001060241A
JP2001060241A JP2000183529A JP2000183529A JP2001060241A JP 2001060241 A JP2001060241 A JP 2001060241A JP 2000183529 A JP2000183529 A JP 2000183529A JP 2000183529 A JP2000183529 A JP 2000183529A JP 2001060241 A JP2001060241 A JP 2001060241A
Authority
JP
Japan
Prior art keywords
event
scheduled time
heap
bucket
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000183529A
Other languages
English (en)
Inventor
Steven S Greenberg
エス.グリーンバーグ スティーブン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avant Corp
Original Assignee
Avant Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/531,350 external-priority patent/US6961689B1/en
Application filed by Avant Corp filed Critical Avant Corp
Publication of JP2001060241A publication Critical patent/JP2001060241A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 一定の最小分割時間に依存せず、しかもシミ
ュレーションイベントに対するスケジュールされた時刻
の数が効率的に拘束なく増加することを可能にするイベ
ントシミュレーションのタイミングをコントロールする
方法を提供する。 【解決手段】 アナログとアナログ-デジタル混在信号
の物理回路のシミュレーションにおいて、イベントはス
ケジューリングされた時刻に割り当てられ、その時刻と
ともにハッシュテーブルのバケットに格納される。スケ
ジューリングされた時刻は、ヒープ内に編成される。そ
して最も早いスケジューリングされた時刻がヒープから
取り除かれ、関連しているバケット内のイベントが実行
される。残っているスケジューリングされた時刻は、新
しいヒープに再編成され、ヒープが空になるまでこれら
の操作が繰り返される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、アナログ又はデジ
タル−アナログ混在信号(analog and mixed signal dig
ital-analog)の物理回路及びシステムのコンピュータシ
ミュレーションの分野に関し、より詳しくは、シミュレ
ーションイベントに対する非整数時刻のスケジューリン
グ(scheduling of non-integral times for simulatio
n events)に関する。
【0002】
【従来の技術】デジタルシステムの機能的な動作とデジ
タルシステムのタイミング的動作の両方を実証するシミ
ュレーションでは、シミュレーションの速度が最も重要
なファクタの一つである。 シミュレーションの高速化
のための鍵となる方法のうちの一つは、シミュレーショ
ンに対して、モデル内のアクティビティ(activity)のみ
を選択的にトレースすることである。この選択的トレー
スは二つの次元で起こる。一つの次元はモデルである。
所定のシミュレーション時刻において、シミュレータ(s
imulator)は、変化していないモデルの部分に対しては
処理作業を行わない。もう一方の次元は時間である。理
想的に言えば、シミュレータは、アクティビティが起こ
るシミュレーション時刻においてのみ処理作業を行う。
【0003】これらの効率化を達成するために、アクテ
ィビティは、特定の時刻に起こるイベントに分解され
る。モデルがこれらのイベントを作るので、シミュレー
タは、特定のシミュレーション時刻において処理をする
ためにこれらのイベントを効率的に格納し、そのシミュ
レーション時刻になったときに、それらを効率良く検索
することが重要である。通常は、これを達成するため
に、タイムフォイール(time wheel)の実働化であるデー
タ構造とアルゴリズムが用いられる。タイムフォイール
の特徴の一つは、 イベントが起こる次のシミュレーシ
ョン時刻でのすべてのイベントの全体のリストをシミュ
レータに1回の操作で与える能力である。
【0004】タイムフォイールにおける各スロットは、
最小分解可能時間(minimum resolvable time)の1ユニ
ットを表している。シミュレーション時刻におけるモジ
ュロ操作(modulo operation)は、イベントを置くための
適切なスロットを見つけるために用いられる。シミュレ
ーション時間は、空でないイベントリストを持つタイム
フォイール内の次のスロット見つけることによって進
む。モジュロ操作の複雑さの順序は、計算時間に関して
は一定である。それぞれの空スロットをテストするには
非常に時間がかかるので、空のスロットの数を最小化す
ることが重要である。この最小化は、最小分解可能時間
を選ぶことによって行われる。この最小分解可能時間
は、時間における所望の正確性を得るのに十分なほど小
さく、空のスロットの数を最小化するには十分に大きい
時間である。シミュレータにとっては、この最小分解可
能時間がシミュレーション開始時に判明していれば、最
も都合がよい。そうでなければ、シミュレーションの進
行に伴い、タイムフォイールを再編成するために、準備
をしなければならない。この再編成は非常に時間がかか
る。
【0005】別の難しさは、タイムフォイールのサイズ
を決定することである。このサイズは、モデル内の最大
の遅延をカバーするのに十分な大きさでなければならな
い。これは、2つの異なる時間が同時にタイムフォイー
ル内の同じスロットを占有してはならないことを保証す
る。また、これは、コンピュータのメモリの所定の容量
の中でモデル化できる遅延のサイズを制限することがで
きる。他の方法としては、同じスロット内で異なる時間
を管理するか、あるいは将来に起こるイベントの別のリ
ストを管理する方法があるが、これらの2つの方法は、
いずれもシミュレータを複雑かつ非効率にする。
【0006】シミュレータは、モデル編集時間に最小分
解可能時間が判別できれば、効率的に動作することがで
きる。最小分解可能時間をシミュレーション中に変更で
きれば、効率がそれほど悪くないシミュレーションモー
ドがある。
【0007】アナログ部分のシミュレーションの間、最
小分解可能時間は、シミュレータによって、モデルの微
分−代数方程式を正確に解くために要求される時間の増
加(time increment)として決められる。シミュレーショ
ンの間の異なる時点において、最小分解時間は、非常に
広い範囲で変更できる。この最小分解時間は、ある場合
は、スケジュールされる必要がある遅延として動作する
ことができる。アナログシミュレーションからデジタル
シミュレーションへの境界において、スケジュールされ
る必要がある閾値の交差(threshold crossings)があ
る。これらの閾値の交差の時間は、アナログ時間のリゾ
リューション(resolution)である。
【0008】図9は、シミュレーションの実行時に含ま
れるステップのシーケンスを示している。ステップ90
5において回路設計の記述が組み立てられる。この設計
の記述は、シミュレートすべき設計を記述する何らかの
種類の入力を含む。それは、物理デバイスを記述するモ
デルとネットリスト(モデルのインスタンスとそれらの
相互接続とパラメータのリスト)を含む。モデルとネッ
トリストは、テキストあるいはコンパイル形式で表現す
ることができる。ステップ910において、シミュレー
ション可能なモデルが組み立てられる。これは、設計の
記述を受け取り、それをデータ構造と実行可能なコード
の集合に変換することである。これらのデータ構造と実
行可能なコードは、シミュレートされる設計を表現する
モデルの性能を分析するためのコアシミュレータ(core
simulator)によって使用することができるものである。
ステップ915では、コアシミュレータがモデルをシミ
ュレートする。コアシミュレータは、時間と頻度の範囲
(domain)でアナログ/デジタル混在モデルの性能を計算
する。最後にステップ920において、後処理プロセッ
サは、ユーザが、たとえばグラフィックビューワなど
で、シミュレーション結果を検査するとともに選択され
た条件に従って結果を処理することを可能にする。
【0009】図4A及び図4Bは、アナログ及びデジタ
ル−アナログ混在信号の物理回路及びシステムの信号シ
ミュレーションの過程を示している。シミュレーション
過程は、イベントがシステムのどこにスケジュールされ
ているかを示している。図4Aと4Bのシミュレーショ
ン過程は、IEEE標準VHDL Analog and Mixed Signal Ext
ensions(アナログ・ミックスト・シグナル拡張)(IEEE
Std 1076.1-1999 SS12.6.4)のシミュレーション過程と
類似しており、SABERにより実行されたシミュレーショ
ンと類似している。
【0010】図4Aと図4Bのステップ405では、シ
ミュレータは、シミュレートすべきイベントがまだ他に
あるかどうかをチェックして調べる。もしスケジュール
された時刻が残っているならば、シミュレートすべきイ
ベントがまだあることになる。ステップ410では、シ
ミュレートされるべきイベントが残っていると仮定し
て、スケジュールされたアナログイベントが処理され
る。アナログイベントの種類には、シミュレートされる
モデルがブレークを実行した場所である不連続性の左境
界への到達、不連続性の右境界への到達、及び推測され
たアナログソリューション(analog solution)の時刻へ
の到達の3種類がある。ステップ415では、信号が更
新される。ステップ420において、「処理(proces
s)」が再開される。この「処理」は、ユーザにより提供
されたハードウェア記述言語で提供された手順ステップ
の集合である。この処理は、ユーザ信号の変化を取り扱
うことができ、信号に値を割り当てることができる。信
号に値を割り当てることは、イベントをスケジュールに
組み込ませることである。ステップ425では、時間ス
ロット(timeslot)の最後にたどり着いたかどうかがチェ
ックされる。イベントは、ゼロ遅延(換言すれば、即座
にシミュレートされるようにイベントが加えられるこ
と)でスケジュールされるので、時間スロットは、シミ
ュレータがすべてのイベントがシミュレートされたと結
論付ける前にチェックされなければならない。ステップ
430では、時間スロットの最後までたどり着いたと仮
定して、延期された処理を再開する。「延期された処
理」は、時間変更が起きた際に実行されるように設定さ
れた特別な処理である。ステップ435では、シミュレ
ータはアナログプロジェクション(analog projection)
が必要かどうかをチェックする。アナログプロジェクシ
ョンは、前のアナログプロジェクションが現在のスケジ
ュールされた時刻に推定されていた場合にのみ必要とな
る。アナログプロジェクションが必要な場合は、ステッ
プ440において、次のアナログソリューションが推測
される。最後に、ステップ445において、次のアナロ
グ/デジタルイベントの時刻が検索される。
【0011】
【発明が解決しようとする課題】識別可能な最小分解時
間(discernible minimum resolvable time)がある場
合、シミュレーション時間は整数で表現される。しかし
ながら、スケジュールされたシミュレーション時間の間
の遅延が非常に小さくもかつ非常に大きくもなる場合
(すなわち、最小分解時間が変わる場合)、時間は実数
(非整数)として表現されなければならない。これもタ
イムフォイールの複雑さに影響を与える。
【0012】従って、一定の最小分割時間に依存せず、
しかもシミュレーションイベントに対するスケジュール
された時刻の数が効率的に拘束なく増加することを可能
にするイベントシミュレーションのタイミングをコント
ロールする方法が必要とされている。
【0013】
【課題を解決するための手段】シミュレータは、アナロ
グ又はアナログ-デジタル混在信号の物理回路やシステ
ムをデジタルコンピュータ上でモデル化する。本発明に
よれば、シミュレータは、イベントにスケジューリング
された時刻を割り当てる。順序非保存ハッシュ関数(non
-order preserving function)を用いて、イベントはハ
ッシュテーブル中のバケットに置かれる。ハッシュ関数
によって同じバケットに置かれてはいるが異なる時刻に
置かれたイベントは、バケット内の異なるリストの中に
置かれる。各バケット内のイベントに対するスケジュー
リングされた時刻は、ハッシュ関数によって、各バケッ
トと関連付けされる。それらのイベントに対するスケジ
ューリングされた時間は、ヒープ内で編成される。シミ
ュレータは、最も早いスケジューリングされた時刻をヒ
ープから取り出し、関連するバケットの位置をつきと
め、該バケットの中から適切なリストを見つけ、そして
該イベントリスト内のイベントを実行する。残っている
スケジューリングされた時刻は、新しいヒープに再編成
され、このプロセスをヒープが空になるまで繰り返す。
【0014】前述したまたはそれ以外の本発明の目的、
特徴及び利点は、図面を参照してなされる以下の好適実
施例の詳細な説明からより容易に明らかとなるであろ
う。
【0015】
【実施形態】以前より使われていたタイムフォイール
は、順序を保存するハッシュテーブルであり、フォイー
ル(すなわち、 ハッシュテーブルでの位置)の中での
時間の間隔は一定であった。時間の値は、モジュロハッ
シュ関数(modulo hashing function)によって整列され
た順序で格納される。順序の整列のためにかかる時間
は、空のスロットを処理しかつイベントのある次のスロ
ットを得るために、必要なものである。
【0016】本発明では、順序非保存ハッシュ関数が用
いられている。空スロット問題を処理するための最小分
解時間を決定しなければならないという問題は、それに
よって除かれる。また, 長い遅延も特別な処理を必要と
しない。ハッシュ関数は、イベントをバケットにそれら
のスケジュールされた時刻に従って配置するが(バケッ
トはそれによってハッシュテーブルを形成する)、バケ
ットそれ自身は順序を割り当てられていない。
【0017】ヒープ優先度待ち行列(heap priority que
ue)は、スケジューラーでの時間の追跡を可能にする。
ヒープ優先度待ち行列は、次のイベント時刻を容易に見
つけることを可能にするものである。ヒープ優先度待ち
行列は、順序非保存ハッシュ関数を用いることによって
失われた順序づけの能力を復元する。
【0018】ハッシュテーブルバケットは、イベントリ
ストのリストを一つ持っている。それぞれのイベントリ
ストは、そのリストの中のイベントのシミュレーション
時刻をラベル付けされている。同じバケットにハッシュ
された互いに異なるシミュレーション時刻が衝突したと
き、スケジュールされた時刻をラベル付けしたリストを
持つこのメカニズムは、それらを並べ替える。
【0019】この順序非保存ハッシュ関数とヒープ優先
度待ち行列を使用することによって、均一なスキームを
作ることができる。このスキームの効率は、最小及び最
大遅延の相対的サイズに依存しない。このスキームによ
って使用されるメモリの量は、イベントの数とその独自
の時間に依存している。使用されるメモリの量は、遅延
のサイズには依存していない。
【0020】図1は、本発明の方法と装置を用いたコン
ピュータシステム105を示している。このコンピュー
タシステム105は、コンピュータ110と、モニター
115、キーボード120、マウス125を含んでい
る。図1には図示してないが、他のコンポーネントをコ
ンピュータシステム105の一部として含んでもよい。
例えば、コンピュータシステム105は、例えばプロッ
ティング装置のような他の入出力デバイスを含むことも
できる。また、コンピュータシステム105は、シミュ
レータ130も含んでいる。シミュレータ130は、ア
ナログ又はディジタル−アナログ混在信号の物理回路と
システムのシミュレーションを行う。
【0021】好適実施例では、シミュレーションされる
イベントに対してスケジューリングされた時刻がヒープ
に格納される。コンピュータシステム105は、スケジ
ューリングされた時刻をヒープ優先待ち行列に格納する
ためのヒープ135と、所定のスケジューリングされた
時刻にシミュレーションされるイベントのイベントリス
トを格納するためのハッシュテーブル138を含む。バ
ケット140は、ハッシュテーブル138の一部であ
る。バケット140は、実際にシミュレーションされる
イベントのイベントリストを格納する。これによりヒー
プ135は、シミュレーションされるイベントのスケジ
ュール時刻のみを格納することが可能となり、ヒープの
管理を簡素化する。
【0022】図2Aは、サンプルヒープ205を示して
いる。ヒープ205は、他のノードのなかで、ノード2
10、215,220,225,230及び235を含
んでいる。ヒープは、二分木(binary tree)として構成
されたデータ構造である。二分木におけるノードは、親
子関係を持つと言われている。ヒープ205のあるノー
ドが他のノードより1レベル高い場合、その高い方のノ
ードはそのノードの親と呼ばれ、またそのノードが親ノ
ードの子と呼ばれる。ヒープ内では、それぞれの親ノー
ドはその2個の子より小さい(これはヒープ属性として
知られている)。たとえば、ノード210が2の値を格
納しており、その値は、ノード215の値5及びノード
220の値8より小さい。また、ノード215の値5
は、ノード225の値6及びノード230の値16より
小さい。ヒープ205のそれぞれのノードは、その子ノ
ードのいずれよりも小さくなければならないという要件
以外には、ヒープにおける順序はないことに注意された
い。すなわち、ヒープ205の第3列には6の値を格納
しているノード225があるが、ヒープ205の第2列
に8の値を格納しているノード220があってもよい。
同様に、ノード235は、ヒープの他方の枝にあるヒー
プより低いが、ノード230より小さい値を有してい
る。ヒープ205のようなヒープは、部分的順序付き(p
artially ordered)と呼ばれる。
【0023】好適実施例では、ヒープ205は左充足(l
eft-filled)である。すなわち、子ノードは、2つの子
を持たないヒープ内の最後の完全な列の最も左の親に追
加される。また、子を追加されるべき親が子を持ってい
ない場合は、新しい子は親ノードの左の子として追加さ
れる。ヒープ205は左充足であるという要件は、実行
の詳細を簡易化するが、それは必ず要求されるものでは
ない。ヒープを値の集合から構築し、新しい値をヒープ
に挿入し、ヒープから値を取り除くアルゴリズムは、既
知の技術であるので、ここでは繰り返し説明しない。
【0024】図2Bでは、最も早いスケジュールされた
時刻がヒープから削除された後に、図2Aからのヒープ
205がどのように見えるかを示している。ヒープ25
5では、ノード235がヒープの中でノード260の子
として再配置されている。同様に、ノード215、22
5、260も再配置されている。ヒープ225は、依然
として、ヒープ属性を満足していることに注意された
い。
【0025】図3Aは、図2Aのヒープ205を伴うこ
とができるハッシュテーブルを示している。図3Aで
は、ハッシュ関数305は、ヒープからバケットに時間
をマッピングしている。ハッシュ関数のマッピングを示
すために用いられている矢印は、視覚的にするための便
宜的なものである。すなわち、好適実施例では、ハッシ
ュ関数は時刻を受け取り、ハッシュテーブル内のバケッ
トの索引を返すようになっている。図3Aでは、時刻2
(310)と時刻9(315)はバケット1(320)
にマッピングされ、時刻5(325)と時刻6(32
7)はバケット2(330)にマッピングされる。バケ
ット1(320)は、二つのイベントリストを持ってい
る。それらは、時刻9(320A)に起こるイベントの
リストと、時刻2(320B)に起こるイベントのリス
トである。バケット2(330)は、次の二つのイベン
トリストを持っている。1つは時刻5(330A)に起
こるイベントのリストであり、他方は時刻6(330
B)に起こるイベントのリストである。多数の時間が単
一のバケットにマッピングできることが分かる。すなわ
ち、バケット中のイベントリスト内のイベントに対する
スケジューリングされた時刻が、どの時点でどのイベン
トが起こるべきかを特定している。
【0026】図3Aでは、イベントリスト330Aは、
イベントリスト内のイベント1(332A)とイベント
2(332B)の2つのイベントを示している。イベン
トリスト330Bは、そのイベントリスト内に、イベン
トを持っておらず、空ポインタ335によって表されて
いる。これは、もともと時刻6(332)にスケジュー
リングされていたイベントがあったが、これらのイベン
トがスケジュールから外された(de-scheduled)場合に起
こり得る。好適実施例では、イベントリストは、二重に
リンクしたリストであり、いずれの方向にも交差するこ
とができる。
【0027】図3Bは、新たなイベントがスケジューリ
ングされた後の図3Aのハッシュテーブルを示してい
る。図3Bにおいて、新たなイベントが時刻5(32
5)にスケジューリングされている。ハッシュ関数30
5は、時刻5(325)をバケット2(330)にマッ
ピングする。バケット2(330)には、時刻5(32
5)に対して既にイベントリストが存在しているので、
新たなイベント332Cがイベントリスト330Bに加
えられる。
【0028】好適実施例では、イベントはイベントリス
トにおけるそれぞれの位置が分かるようになっている。
イベントをスケジュールから外すには、そのイベントリ
ストにおいてスケジュールから外されるイベントの前後
のイベントのポインタを変更することだけが必要とな
る。図7はこの過程を示している。ステップ705で
は、イベントリストにおいて前の及び次のイベントから
スケジュールが外されるイベントに対するポインタが変
更され、そのイベントがスケジュールから外される。
(スケジュールから外されるイベントのスケジューリン
グされた時刻に対するイベントリストが空の場合でも、
好適実施例では、スケジューリングされた時刻はヒープ
から削除されないことに注意されたい。)しかしなが
ら、他の実施例では、ハッシュ関数305を用いてスケ
ジュールから外されるイベントの時刻に対するイベント
を含むバケットを見つけ、そのバケット内の適切なイベ
ントリストにアクセスし、該イベントを除くことによっ
て、イベントリストから当該イベントのスケジュールを
外すことができる。
【0029】イベントが追加される時刻に対するイベン
トリストが存在しない場合は、そのスケジューリングさ
れた時刻がヒープに挿入される。この新しいスケジュー
リングされた時刻がどのようにしてヒープに挿入される
かについては、後で、図6を参照して説明する。
【0030】本発明は、図4A及び図4Bに示されるシ
ミュレータで動作する。ステップ405において、 イ
ベントがシミュレートされずに残っているかどうかは、
ヒープをチェックすることで判定される。もし、ヒープ
にスケジュールされた時刻が残っていれば、 シミュレ
ートすべきイベントが残っていることになる。新しいイ
ベントは、ステップ420、430、440においてス
ケジュールされる。しかしながら、当業者であれば、イ
ベントのスケジューリングを必要とするがシミュレーシ
ョンをしないシステムでも、本発明の利点を享受するこ
とができることが分かるであろう。たとえば、コールバ
ック(予め決められたスケジュールされた時刻において
ソフトウェアルーチンを実行すること)は、本発明を用
いて構成することができる。
【0031】図5は、ヒープとバケットがどのようにシ
ミュレーションのコンテキストの外部で管理されるかを
示している。ステップ505では、スケジューリングさ
れた時刻がイベントに割り当てられ、ステップ508に
おいてそのイベントが追加されるべきイベントリストを
格納しているバケットが見つけられる。ハッシュ関数
は、イベントのスケジュールされた時刻を用いて、適切
なバケットを見つける。ステップ510では、当該イベ
ントが前記適切なバケット内のイベントリストに追加さ
れる。ステップ515において、必要に応じて、前記イ
ベントのスケジューリングされた時刻がヒープに挿入さ
れる(そのイベントのスケジューリングされた時刻が既
にヒープに追加されていてもよい)。このイベントのス
ケジューリングされた時刻をヒープに挿入することは、
このイベントのスケジューリングされた時刻が挿入され
た後、ヒープがヒープ属性を保つことを保証する。点線
518で示されるように、 ステップ505、508、
510及び515は、必要なだけ多くのイベントに対し
て繰り返される。一旦ヒープが作成されると、ステップ
520で、最も早いスケジューリングされた時刻がヒー
プから取り除かれる。最も早いスケジューリングされた
時刻を取り除くことは、最も早いスケジューリングされ
た時刻が取り除かれた後、ヒープ属性を保持することを
保証する。このことは、ステップ522で示される。ス
テップ525では、最も早い時刻にスケジューリングさ
れたイベントを含むバケットが見つけられる。最後に、
ステップ530において、最も早いスケジューリングさ
れた時刻に対してスケジューリングされたイベントがシ
ミュレートされる。点線535に示すように、ステップ
520,522,525及び530は、ヒープが空にな
るまで繰り返される。
【0032】図6は、新しいスケジューリングされたイ
ベントを追加するために用いられるプロセスを示してい
る。図6は、ヒープを空にする作業が始まった後に新し
いイベントがスケジューリングされる必要があるときに
用いられる。効率的にするには、図6は、図5のステッ
プ520,522,525及び530のループの中断を
する。図6は(図7、図8も同様)、特に新しいシミュ
レーションイベントをスケジューリングするためだけの
ものではないが、 上述したように、図6のプロセスは
シミュレーションイベントに適用できる。ステップ60
5では、この新しいイベントにスケジューリングされた
時刻が割り当てられる。ステップ608では、このイベ
ントが追加されるべきイベントリストを格納しているバ
ケットが見つけられる。ステップ610では、この新し
いイベントが見つけられたバケット内のイベントリスト
に追加される。条件判断点615では、新しいイベント
がヒープに新しいスケジューリングされた時刻を追加す
る必要があるかどうかをチェックする。新しいスケジュ
ーリングされた時刻がヒープに追加された場合は、ステ
ップ620においてその新しいスケジューリングされた
時刻がヒープに追加され、ステップ625において、そ
のスケジューリングされた時刻が新しいヒープに編成さ
れる。それ以上のイベントをもスケジューリングする場
合は、点線630で示すように、この処理が繰り返され
る。
【0033】図8は、イベントのスケジューリングされ
た時刻が図1のシミュレータに着いた際に、どのように
してそれらのイベントが処理されるかを示している。ス
テップ805では、スケジューリングされた時刻がヒー
プから取り除かれる。ステップ808では、ヒープに残
っているスケジューリングされた時刻が再編成され、ヒ
ープ属性を再生する。ステップ810では、選択された
スケジューリングされた時刻に関連付けられたバケット
が見つけられる。そして、条件判断点815において、
スケジューリングされた時刻に対するイベントリストが
あるかどうかバケットがチェックされる。スケジューリ
ングされた時刻に対するイベントリストが存在する場合
は、ステップ820において、イベントリスト中のイベ
ントが実行される。
【0034】以上、本発明の好適実施例に基づいて、本
発明の原理を記述しかつ図示してきたが、本発明はその
ような原理から逸脱することなく、その構成や細部にお
いて改良することができることはいうまでもない。従っ
て、以下のクレームの精神及び範囲に含まれるすべての
改良や変更について特許を求める。
【図面の簡単な説明】
【図1】図1は、本発明の方法と装置を実装したコンピ
ュータシステムを示している。
【図2】図2A及び図2Bは、図1中のヒープとして使
われるヒープのサンプルを示している。
【図3】図3A及び3Bは、図1中のハッシュテーブル
として使われハッシュテーブルの例を示している。
【図4】図4A及び4Bは、図9の従来のシミュレーシ
ョンのプロセスをより詳細に示している。
【図5】図5は、図1のヒープにおいて、どのようにイ
ベントが置かれまた削除されるかを示している。
【図6】図6は、図1のヒープにどのようにイベントが
加えられるかを示している。
【図7】図7は、図1のヒープからどのようにしてイベ
ントがスケジュールから外されるかを示している。
【図8】図8は、イベントのスケジューリングされた時
間が図1のシミュレータに到達した際に、どのようにし
てイベントが処理されるかを示している。
【図9】図9は、シミュレーションを実行する際に含ま
れるステップのシーケンスを示している。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 500288061 46871 Bayside Parkway, Fremont, Californi a 94538 U.S.A.

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 デジタルコンピュータにおいてアナログ
    又はデジタル−アナログ混在信号の物理回路及びシステ
    ムをモデリングするためのシミュレーションモデルにお
    いて非整数時刻に起こるイベントをスケジューリングす
    る方法であって、前記方法は、 スケジューリングされた時刻を前記イベントに割り当て
    るステップと、 前記イベントのスケジューリングされた時刻に基づいて
    ハッシュ関数を用い、前記イベントを各々が少なくとも
    一つのイベントを含むバケットに格納するステップと、 前記バケット内の前記イベントに割り当てられた前記ス
    ケジューリングされた時刻を該バケットと関連付けるス
    テップと、 前記スケジューリングされた時刻をヒープの中に編成す
    るステップと、 前記ヒープから最も早いスケジューリングされた時刻を
    取り出すステップと、前記最も早いスケジューリングさ
    れた時刻と関連付けられたバケット内のイベントをシミ
    ュレーションするステップと、 残ったスケジューリングされた時刻を新たなヒープの中
    に再編成するステップと、を有し、 前記ヒープが空になるまで、前記スケジューリングされ
    た時刻を取り出すステップと、前記イベントをシミュレ
    ートするステップと、前記残ったスケジューリングされ
    た時刻を再編成するステップとを繰り返すことを特徴と
    する前記方法。
  2. 【請求項2】 前記方法は、さらに、 前記混在信号のシミュレーションを開始するステップ
    と、 前記混在信号のシミュレーションから前記イベントを判
    定するステップと、 前記イベントが起こるスケジューリングされた時刻を判
    定するステップと、を含むことを特徴とする請求項1に
    記載の方法。
  3. 【請求項3】 前記イベントをシミュレーションするス
    テップは、 前記混在信号のシミュレーションの新しいイベントを判
    定するステップと、 前記イベントが起こるスケジューリングされた時刻を判
    定するステップと、 前記イベントのスケジューリングされた時刻に基づいて
    前記ハッシュ関数を用いて前記判定されたイベントをバ
    ケットに配置するステップと、を含むことを特徴とする
    請求項1に記載の方法。
  4. 【請求項4】 前記新しく判定されたイベントを配置す
    るステップは、 第1の新たに判定されたイベントを新しいバケットに置
    くステップと、 前記第1の新たに判定されたイベントに関連付けられた
    スケジューリングされた時刻を前記新たなバケットに関
    連付けるステップと、 前記第1の新たに判定されたイベントに割り当てられた
    スケジューリングされた時刻を前記新たなバケットに関
    連付けるステップと、 前記新たなバケット関連付けられた新たなスケジューリ
    ングされた時刻を前記ヒープに追加するステップと、 前記スケジューリングされた時刻を新たなヒープに再編
    成するステップと、を含むことを特徴とする請求項3に
    記載の方法。
  5. 【請求項5】 非整数時間間隔で起こる関連付けられた
    スケジューリングされた時刻を有するイベントをスケジ
    ューリングするための方法であって、前記方法は、 前記スケジューリングされた時刻に従ってバケット内に
    イベントを格納するステップと、 前記スケジューリングされた時刻をデータ構造に構造化
    するステップとを含み、該データ構造は、最も早いスケ
    ジューリングされた時刻を簡単に見つけることができる
    ように構成かつ配置されていることを特徴とする前記方
    法。
  6. 【請求項6】 前記イベントを格納するステップは、順
    序非保存ハッシュテーブルを用いて、前記イベントと関
    連付けられたスケジューリングされた時刻に従って、該
    イベントを前記バケットに置くステップを含むことを特
    徴とする請求項5に記載の方法。
  7. 【請求項7】 各バケットには、特別なスケジューリン
    グされた時刻が割り当てられており、そのスケジューリ
    ングされた時刻が割り当てられたすべてのイベントが格
    納されるようになっていることを特徴とする請求項5に
    記載の方法。
  8. 【請求項8】 前記スケジューリングされた時刻を含む
    データ構造がヒープとして構成されていることを特徴と
    する請求項5に記載の方法。
  9. 【請求項9】 前記方法は、さらに、 前記ヒープからスケジューリングされた時刻を取り出す
    ステップと、 残ったスケジューリングされた時刻を新たなヒープに再
    編成するステップと、を含むことを特徴とする請求項8
    に記載の方法。
  10. 【請求項10】 前記スケジューリングされた時刻を取
    り出すステップは、該取り出されたスケジューリングさ
    れた時刻と関連付けられたバケットにあるイベントを実
    行するステップを含むことを特徴とする請求項9に記載
    の方法。
  11. 【請求項11】 前記イベントを実行するステップは、
    前記取り出されたスケジューリングされた時刻と関連付
    けられたバケットが空かどうか調べるためのチェックを
    するステップを含むことを特徴とする請求項10に記載
    の方法。
  12. 【請求項12】 前記方法は、さらに、前記データ構造
    に新たなスケジューリングされた時刻を追加するステッ
    プと、 前記スケジューリングされた時刻を新たなデータ構造に
    再編成するステップと、を含むことを特徴とする請求項
    5に記載の方法。
  13. 【請求項13】 前記方法は、さらに、第2のバケット
    からスケジュールから外されたイベントを取り除くステ
    ップを含むことを特徴とする請求項5に記載の方法。
  14. 【請求項14】 前記請求項1ないし13のいずれかに
    記載の方法を実行するプログラムを含むコンピュータ可
    読の媒体。
  15. 【請求項15】 非整数時間間隔で起こる関連付けされ
    たスケジューリングされた時刻を有するイベントをスケ
    ジュールするためのシステムであって、該システムは、 コンピュータと、 前記コンピュータに格納され、各々がスケジューリング
    された時刻で起こるイベントを格納する複数のバケット
    と、 前記スケジューリングされた時刻を構成するデータ構造
    と、を備え、前記構造は、最も早いスケジューリングさ
    れた時刻を容易に見つけることができるように構成され
    かつ配置されていることを特徴とする前記システム。
  16. 【請求項16】 前記スケジューリングされた時刻を含
    むデータ構造は、ヒープとして構成されていることを特
    徴とする請求項15に記載のシステム。
  17. 【請求項17】 前記コンピュータは、イベントを生成
    しかつ生成されたイベントに時刻を割り当てるための混
    在信号シミュレータを含んでいることを特徴とする請求
    項15に記載のシステム。
JP2000183529A 1999-06-18 2000-06-19 混在信号のシミュレーションのための非整数シミュレーション時間のスケジューリング Pending JP2001060241A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14026199P 1999-06-18 1999-06-18
US09/531,350 US6961689B1 (en) 2000-03-21 2000-03-21 Scheduling non-integral simulation time for mixed-signal simulation
US09/531350 2000-03-21
US60/140261 2000-03-21

Publications (1)

Publication Number Publication Date
JP2001060241A true JP2001060241A (ja) 2001-03-06

Family

ID=26838032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000183529A Pending JP2001060241A (ja) 1999-06-18 2000-06-19 混在信号のシミュレーションのための非整数シミュレーション時間のスケジューリング

Country Status (3)

Country Link
EP (1) EP1061463B1 (ja)
JP (1) JP2001060241A (ja)
DE (2) DE60035644T2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297897A (ja) * 2001-03-29 2002-10-11 Japan Research Institute Ltd データ格納方法及びデータ格納プログラム
KR100907814B1 (ko) * 2007-06-13 2009-07-16 한국표준과학연구원 클럭시뮬레이션 방법
KR20100119961A (ko) * 2009-05-04 2010-11-12 삼성전자주식회사 함수를 이용한 시뮬레이션 수행 방법
JP2011221962A (ja) * 2010-04-14 2011-11-04 Mitsubishi Electric Corp スケジューリング装置、スケジューリング方法およびスケジューリングプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3082987B2 (ja) * 1991-10-09 2000-09-04 株式会社日立製作所 ミックスモードシミュレーション方法
GB2303230B (en) * 1995-07-13 1998-08-12 Advanced Risc Mach Ltd Digital circuit simulation

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297897A (ja) * 2001-03-29 2002-10-11 Japan Research Institute Ltd データ格納方法及びデータ格納プログラム
KR100907814B1 (ko) * 2007-06-13 2009-07-16 한국표준과학연구원 클럭시뮬레이션 방법
KR20100119961A (ko) * 2009-05-04 2010-11-12 삼성전자주식회사 함수를 이용한 시뮬레이션 수행 방법
KR101628774B1 (ko) 2009-05-04 2016-06-10 삼성전자주식회사 함수를 이용한 시뮬레이션 수행 방법
JP2011221962A (ja) * 2010-04-14 2011-11-04 Mitsubishi Electric Corp スケジューリング装置、スケジューリング方法およびスケジューリングプログラム

Also Published As

Publication number Publication date
EP1061463A3 (en) 2004-04-14
DE60035644T2 (de) 2007-11-22
DE1061463T1 (de) 2001-10-11
EP1061463B1 (en) 2007-07-25
DE60035644D1 (de) 2007-09-06
EP1061463A2 (en) 2000-12-20

Similar Documents

Publication Publication Date Title
US6961689B1 (en) Scheduling non-integral simulation time for mixed-signal simulation
US6097885A (en) Digital system simulation
US5157620A (en) Method for simulating a logic system
US20060149526A1 (en) Clock simulation system and method
JP3123025B2 (ja) データ処理システムにおける切貼りフィルタ
CA2397302C (en) Multithreaded hdl logic simulator
JP2549266B2 (ja) デジタル回路設計のデバッグ方法及びその装置
US20160267207A1 (en) Modelling and simulation method
GB2430328A (en) Modelling/simulating a network node including a plurality of protocol layers with selectively configurable switches disposed between and coupling the layers
US8326778B1 (en) Systems and methods for generating predicates and assertions
JP2002183234A (ja) デジタル回路の共同シミュレーション方法
US5838949A (en) System and method for execution-sequenced processing of electronic design simulation results
CN110941934A (zh) 一种fpga原型验证开发板分割仿真系统、方法、介质及终端
US20020052726A1 (en) Performance simulation apparatus, performance simulation method, and recording medium containing performance simulation program
US7047510B1 (en) Method and system for partitioning an integrated circuit design
JP2001060241A (ja) 混在信号のシミュレーションのための非整数シミュレーション時間のスケジューリング
US7895026B1 (en) Multi-rate simulation scheduler for synchronous digital circuits in a high level modeling system
Chung et al. Data parallel simulation using time-warp on the Connection Machine
CN110378037B (zh) 基于Ceph的CFD仿真数据存储方法、装置及服务器
US20080071515A1 (en) System and Method for Circuit Symbolic Timing Analysis of Circuit Designs
US7181384B1 (en) Method and apparatus for simulating a hybrid system with registered and concurrent nodes
US7567137B2 (en) Programmable oscillators for high frequency clock generation for simulation environments
JP2001005678A (ja) ネットワーク型情報処理装置及び方法
CRAIG Scheduling non-integral simulation time for mixed-signal simulation
Abbott A symbolic simulator for microprogram development

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040310

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040804