JP2835567B2 - 対象の動作を時系列的に検証するシミュレータのためのバックトラッキング方式及びバックトラッキング方法 - Google Patents

対象の動作を時系列的に検証するシミュレータのためのバックトラッキング方式及びバックトラッキング方法

Info

Publication number
JP2835567B2
JP2835567B2 JP29284793A JP29284793A JP2835567B2 JP 2835567 B2 JP2835567 B2 JP 2835567B2 JP 29284793 A JP29284793 A JP 29284793A JP 29284793 A JP29284793 A JP 29284793A JP 2835567 B2 JP2835567 B2 JP 2835567B2
Authority
JP
Japan
Prior art keywords
simulation
time
buffer memory
memory means
sampling
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.)
Expired - Lifetime
Application number
JP29284793A
Other languages
English (en)
Other versions
JPH07129540A (ja
Inventor
真人 荒井
重明 白水
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.)
ENU TEI TEI DEETA KK
Original Assignee
ENU TEI TEI DEETA KK
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
Application filed by ENU TEI TEI DEETA KK filed Critical ENU TEI TEI DEETA KK
Priority to JP29284793A priority Critical patent/JP2835567B2/ja
Publication of JPH07129540A publication Critical patent/JPH07129540A/ja
Application granted granted Critical
Publication of JP2835567B2 publication Critical patent/JP2835567B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータを用いて
対象の動作を時系列的に検証するシミュレーションにお
いて、シミュレーションの状態を過去の任意の時点の状
態に戻すためのバックトラッキング方式に関する。
【0002】
【従来の技術】対象の動作を時系列的に検証して行くタ
イプのシミュレータは、例えば論理回路設計の際に用い
る電気系論理シミュレータや、ソフトウェアのデバッキ
ング・ツール等の種々の用途に広く実用されている。
【0003】この種のシミュレータは、基本的に、対象
の動作を1クロックづつ進ませつつ、これを検証して行
くものである。このシミュレーションの過程では、対象
の動作に問題が発見された時、その問題が発生した時点
や原因を求明するために、対象の動作を過去の任意の時
点まで戻して再度動作を検証してみたいという要求があ
る。
【0004】このバックトラッキングの機能は、シミュ
レーションにおいて大変に便利な機能であるが、従来、
この機能を備えたシミュレータを少なくとも出願人及び
発明者は知らない。
【0005】
【発明が解決しようとする課題】バックトラッキング機
能を従来のシミュレータが持たない主たる理由は、記憶
すべき情報量の膨大さにある。
【0006】バックトラッキングを可能にするために
は、過去の各クロックにおける対象の状態や動作を全て
保存しておく必要がある。しかし、例えばイベントドリ
ブン方式の電気系論理シミュレータでは、対象たる論理
回路内で動作する個々の論理素子の入出力を信号の流れ
に従って順次解決して行くという作業を各クロック毎に
行うが、対象回路は一般に複雑で非常に多数の論理素子
を含んでいるため、1クロック分の情報でさえ、これを
全て記録しておくことは現状のハード資源の性能上極め
て困難である。しかも、シミュレーションは何千、何万
というクロック数に亘って行われるから、バックトラッ
キングを行うことは全く無理である。
【0007】一方、対象回路自体の動作ではなく、その
動作を動作記述言語で記述したものを検証するタイプの
シミュレータでは、イベントドリブン方式のシミュレー
タに比べて、クロック当りの情報量は大幅に少なくなく
なるので、これを記録しておくことは十分に可能であ
る。しかし、そうであっても、シミュレートする時間区
間の全範囲に亘る何千、何万クロック分の情報を全て記
録しておくことはやはり不可能である。
【0008】このような理由から、従来のシミュレータ
はバックトラッキング機能を備えていない。そのため、
過去の時刻を再現したい場合には、最初からシミュレー
ションをやり直さなければならない。
【0009】従って、本発明の目的は、対象の動作を時
系列的に検証するシミュレータにおいて、シミュレート
する時間区間の全クロック数よりも大幅に少ない個数の
クロック分の情報を記録しておくだけで、シミュレーシ
ョンのバックトラッキングができるようにすることにあ
る。
【0010】
【課題を解決するための手段】本発明のバックトラッキ
ング方式は、各々一つのシミュレーションイメージが保
存できる複数のバッファメモリ手段と、シミュレーショ
ンの実行過程において、サンプリング時刻毎に、現時刻
のシミュレーションイメージを、前記所定個数のバッフ
ァメモリ手段の中から選択したの1個に保存するサンプ
リング手段と、バックトラッキングポイント時刻の指定
を受けて、前記バッファメモリ手段に保存されているシ
ミュレーションイメージの中から、前記バックトラッキ
ングポイント時刻に最も近く且つ以前であるサンプリン
グ時刻を持つシミュレーションイメージを読み出し、こ
の読み出したシミュレーションイメージを起点にして、
前記バックトラッキングポイント時刻に向かってシミュ
レーションを実行するバックトラッキング手段とを備え
る。本発明の一つの観点に従えば、サンプリング手段
は、現時刻のシミュレーションイメージを保存するバッ
ファメモリ手段として、最古のシミュレーションイメー
ジが保存されているバッファメモリ手段を選択する。本
発明の別の観点に従えば、サンプリング手段は、保存さ
れているシミュレーションイメージが古いほどそのサン
プリング時刻の間隔が長くなるように、現時刻のシミュ
レーションイメージを保存するためのバッファメモリ手
段を選択する。
【0011】
【作用】シミュレーションの実行過程において、所定の
時間間隔おきのサンプリング時刻毎に、その時刻のシミ
ュレーションの結果(シミュレーションイメージ)がバ
ッファメモリ手段に保存される。全てのバッファメモリ
手段が埋まると、それ以降のサンプリング時刻では、1
個のバッファメモリ手段が選択され、その内容が消去さ
れて、そこに現時刻のシミュレーションイメージが書き
込まれていく。
【0012】以上の動作により、シミュレーションの開
始から現時刻までの間の何ヶ所かのサンプリング時刻で
のシミュレーションイメージが、バッファメモリ手段に
保存されることになる。この状態でバックトラッキング
を行なう場合には、戻したい時刻(バックトラッキング
ポイント時刻)に最も近く且つそれより前のサンプリン
グ時刻を持つシミュレーションイメージがバッファメモ
リ手段から読み出され、これを起点としてバックトラッ
キングポイント時刻へ向かってシミュレーションが再実
行される。
【0013】尚、本発明は、特に動作記述言語で記述さ
れた対象動作のシミュレーションのバックトラッキング
に好適である。
【0014】保存されているシミュレーションイメージ
は最新の複数時刻のイメージであることが望ましい。或
いは、保存されているシミュレーションイメージ間の時
間間隔は、古いものほど長く、新しいものほど短くなっ
ていることが望ましい。実際にバックトラッキングが所
望される場合、戻したい時刻は現在時刻に近い時刻であ
ることが多く、古い時刻に戻したい場合は少ないからで
ある。このような望ましい保存形態を実現するために、
好適な実施例では、シミュレーションイメージを書き込
むバッファメモリ手段の選択方法に工夫を持たせてい
る。
【0015】
【実施例】以下、本発明の実施例を図面により詳細に説
明する。
【0016】図1は、本発明のバックトラッキング方式
の一実施例が適用される電気系論理シミュレータを含ん
だLSI設計システムの機能の概略を示す。
【0017】図1において、本システムは、SFLソー
スファイル1、論理検証部3及び論理合成部5から構成
される。
【0018】SFLソースファイル1は設計対象となる
LSIの動作を動作記述言語(SFL)で記述したもの
である。
【0019】論理検証部3は、LSI設計過程の中の論
理設計の作業に利用されるもので、SFL構文解析トラ
ンスレータ31及び動作シミュレータ33を含む。SF
L構文解析トランスレータ31は、SFLソースファイ
ル1を読み込み、対象動作をSFLで正しく表現してい
るかをチェックし、エラーがあればこれを表示し、エラ
ーがなければソースファイル1を動作シミュレータ33
に渡す。
【0020】動作シミュレータ33は、そのソースファ
イルによって表現された動作が正しいか否かを1クロッ
クづつシミュレートして検証する。ここでは、シミュレ
ーションのホルト、リスタート、及び本発明に従うバッ
クトラックを行なうことが可能である。この検証の結
果、対象動作に問題が発見されれば、ユーザによって設
計修正が行われ、再び同様な処理が行なわれる。この繰
返しにより、最終的なソースファイル1が構築されて、
論理設計が完了する。
【0021】論理合成部5は、LSI設計過程の中の論
理合成の作業を行なうもので、ロジックシンセサイザ5
1と実部品回路オプチマイザ53とテスト合成部55を
含む。ロジックシンセサイザ51は、最終的なソースフ
ァイル1に基づき論理回路を生成する。実部品回路オプ
チマイザ53は、生成された論理回路に対する実部品の
マッピング及び回路の最適化を行なう。テスト合成部5
5は、テスト回路合成及びテストパターンの自動生成を
行なう。尚、論理合成部5は、本発明と直接の関連はな
いので、これ以上の説明は省略する。
【0022】本発明のバックトラッキング方式は、動作
シミュレータ33において具現化されている。
【0023】この動作シミュレータ33は、入力された
SFLソースファイル1からシミュレーションイメージ
を構築する。ここで、「シミュレーションイメージ」と
は、本実施例では、SFLソースファイル1が表現して
いる階層構造を、そのままツリー構造として内部展開し
たものを意味する。
【0024】なお、この明細書では、「シミュレーショ
ンイメージ」を、より一般的な意味として、「シミュレ
ーションにより得られる或時刻における対象の構成、動
作、状態等の事項に関する情報であって、バックトラッ
キングを行うために保存しておく必要のある事項を少な
くとも含む情報」という意味でも用いる。
【0025】図2は、本実施例におけるシミュレーショ
ンイメージの一つの構成単位であるモジュールの一例を
示したものである。
【0026】このモジュールでは、部品の定義とこれに
対する又はこれを利用した動作が記述される。即ち、一
つのモジュールには、ツリー構造の要素として、具体的
なハードウェア部品(機能回路、レジスタ、端子、メモ
リ等)と、その動作を表現するための概念要素(ステー
ジ、タスク、状態、ステートメント等)とが含まれる。
又、より下層のモジュールであるサブモジュールが含ま
れることもある。
【0027】モジュールの構成要素は、各クロックの時
刻(シミュレーション時刻)において、各々値を持つ。
シミュレーションは、各シミュレーション時刻における
上記の様なツリー構造と各要素の値を確定する作業であ
る。従って、本実施例での「シミュレーションイメー
ジ」とは、換言すれば、個々のシミュレーション時刻に
おける上記の様なツリー構造とその各要素の値を意味す
る。そして、後述する「シミュレーションイメージの保
存」とは、ある特定のシミュレーション時刻におけるシ
ミュレーションイメージを記憶装置に保存することを意
味する。
【0028】尚、シミュレーションイメージのツリー構
造と各要素の持つ具体的な意味は、本発明の本質を左右
するものではないため、その説明は省略する。
【0029】図3は、動作シミュレータ33が行なうシ
ミュレーションの全体の流れを示す。
【0030】図3において、まず、シミュレーションの
前準備を行なう(フェイズ100)。前準備には、SF
Lソースファイル1の読み込み、シミュレーション時刻
=0におけるシミュレーションイメージ(=オリジナル
・シミュレーションイメージ)の構築等が含まれる。
【0031】次に、サンプリングに関する条件をユーザ
が設定するフェイズに入る(フェイズ200)。ここ
で、サンプリングとは、バックトラッキングを可能とす
るために、所定のシミュレーション時刻間隔(=サンプ
リング間隔)で、シミュレーションイメージを保存する
ことをいう。設定する条件は、サンプリング保存数(=
保存できるバッファの数)、サンプリング間隔、サンプ
リング方法(詳細は後述する)等である。尚、これらの
条件をユーザが設定しない場合は、予め決められている
デフォルト値が採用される。
【0032】次に、オリジナルシミュレーションイメー
ジを保存用バッファの一つに保存する(フェイズ30
0)。ここで、保存用バッファの物理的資源としては半
導体メモリ又はハードディスクが適当である。保存用バ
ッファは、ステップ200で設定されたサンプリング保
存数だけ用意される。
【0033】以下、検証処理に入り、ユーザが終了を指
示するまでシミュレーションが続けられる(フェイズ4
00)。
【0034】検証処理では、シミュレーション時刻を1
クロックづつ更新しつつ、各時刻におけるシミュレーシ
ョンイメージを確定する(フェイズ500)。
【0035】この検証処理の途中で、シミュレーション
時刻を前に戻したい(=バックトラッキング)とユーザ
が欲した場合は、ユーザからの戻したい時刻(=バック
トラッキングポイント時刻)の入力により、当該バック
トラッキングポイント時刻までシミュレーションが戻さ
れる(フェイズ600,700)。
【0036】図4は、図3の検証処理(フェイズ50
0)をシミュレーション時刻の更新に注目して詳細に示
したものである。
【0037】図4において、まず、ユーザがシミュレー
ションの終了時刻(=シミュレーション停止時刻)を設
定した上で、シミュレーションの開始を指示する(ステ
ップ510)。
【0038】動作シミュレータ33は、シミュレーショ
ン時刻を1クロック更新し、そしてシミュレーションイ
メージを更新する(ステップ520)。
【0039】ここで、更新したシミュレーション時刻
が、図3のステップ200で設定されたサンプリング間
隔毎の時刻(=サンプリング時刻)と一致するか否かを
チェックし、一致すれば、当該時刻におけるシミュレー
ションイメージを保存用バッファの一つに保存する(ス
テップ530,540)。ここで、どのバッファに保存
するかを決める方法(=サンプリング方法)について2
種類の方法があり、図3のステップ200で一方の方法
が選択されている。
【0040】ステップ520〜540の処理が、シミュ
レーション停止時刻まで続けられる(ステップ55
0)。
【0041】シミュレーション停止時刻に達したなら
ば、シミュレータ33は時刻更新を停止しユーザからの
コマンド待ち状態となる。そして、ユーザからコマンド
が入ると、コマンドにより要求された要素の値をディス
プレイ表示する等の検証処理を行なう(ステップ56
0)。
【0042】図5及び図6は、図4のステップ540の
シミュレーションイメージの保存の2種類の異なる方式
を示す。この2種類の方式のどちらを選択するかについ
ては、図3のフェイズ200でユーザが決定する。
【0043】尚、これらの流れ図は、保存用バッファが
全て既に埋っている状態で、次にどれか1つのバッファ
内の古いイメージを消去して新しいイメージを保存する
際の方法を示したものである。従って、どちらの方式に
おいても、まだ空きのバッファが残っている時(=検証
作業が始って、まだサンプリング保存数まで保存回数が
至っていない時)は、空きバッファに順番にイメージを
保存して行くことになる。
【0044】図5の方式は、単純なリングバッファとし
て動作させる方式(以下、リングバッファ方式という)
である。図5において、まず、各バッファに保存されて
いるイメージのシミュレーション時刻に着目し、(時刻
0のオリジナルイメージを除いて)一番古いイメージを
格納しているバッファのポインタを、保存対象ポインタ
に設定する(ステップ541)。
【0045】次に、この保存対象ポインタが指すバッフ
ァに、現時刻のシミュレーションイメージを保存する
(ステップ542)。
【0046】このリングバッファ方式によれば、常に最
新の、サンプリング間隔だけ互いに隔たったサンプリン
グ保存数分のシミュレーションイメージが、保存される
ことになる。
【0047】これに対し、図6の方式は、古いイメージ
ほど長い時間間隔で、新しいイメージほど短い時間間隔
で保存されるようにしたもので、保存されたイメージの
時間間隔は現在から過去に向かって幾何級数的に増大し
ていく(以下、幾何級数方式という)。
【0048】図6において、まず、最後に保存を行った
バッファに着目し、それより2個後のバッファのポイン
タを、保存対象ポインタの候補とする(ステップ54
3)。ここで、最後に保存を行ったバッファより「N個
後(この実施例では、2個後)のバッファ」とは、「最
後の保存が行われる前の状態下で、保存されているイメ
ージのサンプリング時刻の古い順に全バッファをソート
した場合、そのバッファ列内において前記最後に保存を
行ったバッファよりもN個後に位置するバッファ」とい
う意味である。
【0049】次に、その候補ポインタが指すバッファに
保存されているシミュレーションイメージが、最後に保
存したイメージであるか否かをチェックし(ステップ5
44)、イエスの場合には、先頭のポインタを保存対象
ポインタに設定する(ステップ545)。ここで、「先
頭のポインタ」とは、「(時刻0のオリジナルイメージ
を除いて)一番古いイメージを格納しているバッファの
ポインタ」を意味する。
【0050】一方、候補ポインタが指すバッファに保存
されているシミュレーションイメージが、最後に保存し
たイメージでない場合は、候補ポインタがそのまま保存
対象ポインタとなる(ステップ546)。
【0051】次に、この保存対象ポインタが指すバッフ
ァに、現時刻のシミュレーションイメージを保存する
(ステップ547)。
【0052】図7は、この幾何級数方式による保存の様
子を示すものである。図7において、横配列された四角
枠の列はサンプリング時刻の時系列を示し、左端の四角
枠はシミュレーション開始後最初のサンプリング時刻で
あり、右に行くほど時刻は新しくなる。例えば、サンプ
リング間隔が50クロックだとすると、一番左の四角枠
は50クロック目を意味し、次の四角枠は100クロッ
ク目を意味する。各四角枠内の丸数字(、、…)
は、各サンプリング時刻のイメージを保存したバッファ
の番号を示す(この例では、サンプリング保存数=
8)。従って、丸数字が書かれた四角枠は、その時刻の
イメージがその数字の番号のバッファに保存されている
ことを意味する。一方、黒丸が書かれた四角枠は、その
時刻のイメージが既に消去されていることを意味する。
また、空白の四角枠はそのサンプリング時刻がまだ到来
していないことを意味する。
【0053】図7(1)に示すように、まずは、バッフ
ァが全て埋るまで、イメージが順番に保存される。バッ
ファが全て埋ると、図7(2)に示すように、まず、一
番古いイメージ(この場合)を消去し、現時刻のイメ
ージをバッファに保存する。
【0054】次のサンプリング時刻では、図7(3)に
示すように、最後に保存したバッファより2個後のバ
ッファのイメージを消去して、このバッファに現時
刻のイメージを保存する。
【0055】同様の処理が、図7(4)から(8)に示
すように繰り返される。その結果、現時点に近い時間領
域については、各サンプリング時刻のイメージが保存さ
れ、それより古い時間領域については、1バッファ置き
に保存イメージが間引かれて、2サンプリング間隔毎の
イメージだけがバッファに残される。
【0056】この後、図7(9)に示すように、1バッ
ファ置きの間引きが最後のバッファまで追い付くと、再
び、一番古いイメージ(この場合)を消去して、最新
のイメージをバッファに保存する。
【0057】次に、図7(10)に示すように、最後に
保存したバッファより2個後のバッファを消去し、
これに最新のイメージを保存する。
【0058】同様の処理が図7(11)から(15)に
示すように繰り返される。その結果、最新の時間区間に
ついては、各サンプリング時刻のイメージが保存され、
それより少し古い時間区間については、2サンプリング
間隔毎のイメージが残され、更にそれより古い時間区間
については、2サンプリング間隔毎のイメージから1バ
ッファ置きにイメージが間引かれて、4サンプリング間
隔毎のイメージだけが残される。
【0059】以上のようなサンプリングにより、古くな
るほど幾何級数的に増大するサンプリング時間間隔をも
った8個のシミュレーションイメージが、8個のバッフ
ァに常に保存されることになる。
【0060】図8は、図3のフェイズ700のバックト
ラッキング処理の詳細を示す。この処理では、保存した
シミュレーションイメージを用いて、自動的に、ユーザ
の指定した過去のシミュレーション時刻までシミュレー
ションが戻される。
【0061】まず、ユーザが戻りたい時刻(=バックト
ラッキングポイント時刻:BTP)を設定する(ステッ
プ710)。
【0062】次に、保存されているシミュレーションイ
メージの内、BTPより以前で且つ最も新しい(=BT
Pに最も近い)サンプリング時刻を持つイメージをバッ
ファから読み出し、シミュレータ33にロードすること
により、当該サンプリング時刻での状態を再現する(ス
テップ720)。
【0063】続いて、この状態を起点として、BTPま
で自動的にシミュレーション時刻を更新しつつ、シミュ
レーションを実行する(ステップ730)。
【0064】そして、シミュレーション時刻がBTPに
達したなら、当該時刻でのシミュレーションイメージを
ディスプレイに表示する(ステップ740)。
【0065】図9は、上述した手順により行なわれるバ
ックトラッキングの実際のイメージを示したものであ
る。
【0066】図9(A)に示すように、現在のシミュレ
ーション時刻が18クロック目だとした時、1クロック
前の17クロック目をBTPとして指定した場合を想定
する。この場合、最後に保存したイメージが11クロッ
ク目のイメージだとした場合、図9(B)に示すよう
に、この11クロック目のイメージをシミュレータ33
にロードして、ここからBTP17クロック目までシミ
ュレーションを実行する。
【0067】以上のようにして、BTPに最も近いシミ
ュレーションイメージからシミュレーションを開始して
BTPに至るようにしているため、従来の様に最初から
シミュレートし直す場合に比較して、短時間でBTPに
至ることが可能である。
【0068】図10は、図8のステップ720の保存イ
メージの再ロードの詳細を示す。
【0069】まず、保存されているシミュレーションイ
メージの内、最も新しいイメージの時刻を比較対象時刻
とする(ステップ721)。
【0070】次に、この比較対象時刻とユーザの設定し
たBTPとを比較し、比較対象時刻がBTPよりも古け
れば、当該比較対象時刻のシミュレーションイメージが
保存されているバッファのポインタを、再ロード対象ポ
インタとする(ステップ726)。
【0071】一方、BTPが比較対象時刻より古けれ
ば、保存されているイメージの内、当該比較対象時刻よ
り一つ古い時刻のイメージの時刻を、新たな比較対象時
刻として設定し、この新たな比較対象時刻をBTPとの
比較の再度行なう(ステップ724,722)。
【0072】このようにして、保存されているイメージ
の中からBTPより古い時刻のイメージを新しいものか
ら順に探していく。そして、そのようなイメージが発見
されれば、そのイメージのバッファのポインタを再ロー
ド対象ポインタに設定する。しかし、その探していく過
程で、これ以上古い比較対象時刻が設定できなくなった
場合には(ステップ723)、時刻0のオリジナルイメ
ージが保存されているバッファのポインタを、再ロード
対象ポインタに設定する(ステップ725)。
【0073】こうして、再ロード対象ポインタが設定さ
れたなら、このポインタが指すバッファのイメージをシ
ミュレータ33にロードする(ステップ727)。
【0074】以上、本発明の好適な一実施例を説明し
た。この実施例では、サンプリングの方式の一つとして
幾何級数方式を採用している。この方式は、既に説明し
たように、シミュレーション時刻が新しくなるほど密な
時間間隔でイメージが保存され、古くなるほど疎な時間
間隔でイメージが保存される。このことは、実際にBT
Pが指定される時刻領域は現時刻に近い新しい時刻領域
であることが多く、古い時刻がBTPとして指定される
ことは少ない、という実用上の事情に対応しており、こ
れにより、バックトラッキングの効率化が期待できる。
【0075】本発明は、上記の実施例以外にも種々の態
様で実施することができる。例えば、サンプリング方式
として、上述の幾何級数方式に類似した別の方式を採用
することもできる。
【0076】上述の幾何級数方式では、図7に示すよう
に古い順にソートしたバッファ列の中から一個置きにイ
メージを間引いていったが、n個置きに間引くようにし
てもよい。例えば、n=2(つまり、最後に保存したバ
ッファの3個後のバッファを選択する方式)とした場合
のサンプリングの様子を図11に示す。図11から分る
ように、n=2の場合も時刻が古くなる程保存イメージ
の時間間隔が長くなり、上述した幾何級数方式と同様の
効果が得られる。しかし、図7と比較して分るように、
n=2の場合は、時間間隔の疎密の変化が単調でなく、
且つ、古い時間領域と新しい領域との間の疎密の差が顕
著すぎる感があるので、n=1の方が優れていると考え
られる。
【0077】ところで、上述の幾何級数方式と同様の効
果を得るためのサンプリング方式をより一般的に表現す
れば、次のように表現できる。即ち、サンプリング時刻
が来たとき、この時のシミュレーションイメージを保存
するためのバッファを選択する際、或1つのバッファが
次の条件(A)及び(B)、(A) 古い順にソートしたバッフ
ァ列の中で、当該或1つのバッファの1個前のバッファ
と1個後のバッファとの間のサンプリング時間間隔が、
前記1個前のバッファとその更に1個前のバッファメモ
リ手段との間のサンプリング時間間隔より長くない、
(B) 同バッファ列の中で、前記1個前のバッファと前
記1個後のバッファとの間のサンプリング時間間隔が、
前記1個後のバッファとその更に1個後のバッファとの
間のサンプリング時間間隔より短くない、のうちの少な
くとも一方の条件を満たす場合に、当該或1つのバッフ
ァを選択する、という方式である。この方式の一つの典
型が上記幾何級数方式である。例えば、図7(11)の
場合を見てみると、選択されたバッファの1個前のバ
ッファと1個後のバッファとの間の時間間隔は、1
個前のバッファと更に1個前のバッファとの間の時
間間隔より長くはなく、且つ、1個後のバッファと更
に1個後のバッファとの間の時間間隔より短くない。
【0078】上記の条件(A)又は(B)を満たすバッファを
選択するサンプリング方式に属するものであれば、上記
幾何級数方式でなくても、時刻が古くなるほど保存イメ
ージの時間間隔が長くなるという性質が得られるので、
上記した幾何級数方式の利点と同様の利点が得られる。
【0079】また、本発明のバックトラッキング方式
は、上記実施例のように動作記述言語で記述された回路
動作のシミュレータへの適用に好適であるが、イベント
ドリブン方式のシミュレータに対しても、コンピュータ
の動作速度と記憶容量の問題が将来的に解決されれば十
分に適用可能であり、また、論理回路のシミュレータだ
けでなく他の対象のシミュレータに対しても、対象動作
を時系列的に検証して行くものであれば、適用すること
ができる。
【0080】
【発明の効果】以上説明したように、本発明によれば、
離散的な幾つかのシミュレーション時刻のシミュレーシ
ョンイメージを保存しておき、バックトラッキングの際
には、戻したい時刻(BTP)よりも前で且つこれに最
も近い保存イメージをシミュレータにロードして、そこ
を起点にBTPまでシミュレートするようにしているた
め、制限された少ない個数のイメージを保存しておくだ
けで、効率的なバックトラッキングが可能である。
【0081】また、保存したイメージの時間間隔が新し
いイメージほど短くなるようなサンプリング方法を採用
した場合には、最も頻度の多い新しい時刻へのバックト
ラッキングが非常に短時間で行なえるので、バックトラ
ッキングの効率化が一層促進される。
【図面の簡単な説明】
【図1】本発明の一実施例が適用される論理シミュレー
タを備えたLSI設計システムの全体構成を示すブロッ
ク図。
【図2】図1のシステムの論理シミュレータが扱うシミ
ュレーションイメージの一例を示す図。。
【図3】同論理シミュレータの全体動作を示すフローチ
ャート。
【図4】図3内の検証動作の詳細を時刻更新に注目して
示したフローチャート。
【図5】図4内のシミュレーションイメージの保存を、
リングバッファ方式で行なう場合の詳細動作を示すフロ
ーチャート。
【図6】図4内のシミュレーションイメージの保存を、
幾何級数方式で行なう場合の詳細動作を示すフローチャ
ート。
【図7】幾何級数方式によるサンプリングの様子を示す
図。
【図8】図3内のバックトラッキングの詳細動作を示す
フローチャート。
【図9】バックトラッキングの様子を示す図。
【図10】図8内のシミュレーションイメージの再ロー
ドの詳細動作を示すフローチャート。
【図11】図7の幾何級数方式に類似した別の方式によ
るサンプリングの様子を示した図。
【符号の説明】
1 SFLソースファイル 3 論理検証部 33 動作シミュレータ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 17/00 JICSTファイル(JOIS)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 対象の動作を時系列的に検証するシミュ
    レータのためのバックトラッキング方式において、 各々一つのシミュレーションイメージが保存できる複数
    のバッファメモリ手段と、 シミュレーションの実行過程において、サンプリング時
    刻毎に、現時刻のシミュレーションイメージを、前記
    のバッファメモリ手段の中から選択した1個に保存す
    るサンプリング手段と、 バックトラッキングポイント時刻の指定を受けて、前記
    バッファメモリ手段に保存されているシミュレーション
    イメージの中から、前記バックトラッキングポイント時
    刻に最も近く且つ以前であるサンプリング時刻を持つシ
    ミュレーションイメージを読み出し、この読み出したシ
    ミュレーションイメージを起点にして、前記バックトラ
    ッキングポイント時刻に向かってシミュレーションを実
    行するバックトラッキング手段と、 を備え 前記サンプリング手段が、前記現時刻のシミュレーショ
    ンイメージを保存するためのバッファメモリ手段とし
    て、最古のシミュレーションイメージが保存されている
    バッファメモリ手段を選択する バックトラッキング方
    式。
  2. 【請求項2】 対象の動作を時系列的に検証するシミュ
    レータのためのバックトラッキング方式において、 各々一つのシミュレーションイメージが保存できる複数
    のバッファメモリ手段と、 シミュレーションの実行過程において、サンプリング時
    刻毎に、現時刻のシミュレーションイメージを、前記複
    数のバッファメモリ手段の中から選択した1個に保存す
    るサンプリング手段と、 バックトラッキングポイント時刻の指定を受けて、前記
    バッファメモリ手段に保存されているシミュレーション
    イメージの中から、前記バックトラッキングポイント時
    刻に最も近く且つ以前であるサンプリング時刻を持つシ
    ミュレーションイメージを読み出し、この読み出したシ
    ミュレーションイメージを起点にして、 前記バックトラ
    ッキングポイント時刻に向かってシミュレーションを実
    行するバックトラッキング手段と、 を備え、 前記サンプリング手段が、保存されているシミュレーシ
    ョンイメージが古いほど前記保存されているシミュレー
    ションイメージ間のサンプリング時刻の間隔が長くなる
    ように、前記現時刻のシミュレーションイメージを保存
    するためのバッファメモリ手段を選択する バックトラッ
    キング方式。
  3. 【請求項3】 請求項記載の方式において、 前記サンプリング手段が、前記現時刻のシミュレーショ
    ンイメージを保存するためのバッファメモリ手段とし
    て、最後に保存が行われたバッファメモリ手段からN個
    後のバッファメモリ手段を選択するバックトラッキング
    方式。
  4. 【請求項4】 請求項3記載の方式において、 N=2であるバックトラッキング方式。
  5. 【請求項5】 請求項記載の方式において、 前記サンプリング手段が、前記現時刻のシミュレーショ
    ンイメージを保存するためのバッファメモリ手段とし
    て、最後に保存が行われたバッファメモリ手段以外のバ
    ッファメモリ手段を選択するバックトラッキング方式。
  6. 【請求項6】 請求項記載の方式において、 前記サンプリング手段が、前記現時刻のシミュレーショ
    ンイメージを保存するためのバッファメモリ手段を選択
    する際、或1つのバッファメモリ手段が次の条件(A)
    及び(B)、 (A)前記或1つのバッファメモリ手段の1個前のバッ
    ファメモリ手段と1個後のバッファメモリ手段との間の
    サンプリング時間間隔が、前記1個前のバッファメモリ
    手段と更に1個前のバッファメモリ手段との間のサンプ
    リング時間間隔より長くない、 (B)前記1個前のバッファメモリ手段と前記1個後の
    バッファメモリ手段との間のサンプリング時間間隔が、
    前記1個後のバッファメモリ手段と更に1個後のバッフ
    ァメモリ手段との間のサンプリング時間間隔より短くな
    い、 のうちの少なくとも一方の条件を満たす場合、前記或1
    つのバッファメモリ手段を選択するバックトラッキング
    方式。
  7. 【請求項7】 対象の動作を時系列的に検証するシミュ
    レータのためのバックトラッキング方法において、 各々一つのシミュレーションイメージが保存できる複数
    のバッファメモリ手段の中から1個を選択する選択過程
    と、 シミュレーションの実行過程において、サンプリング時
    刻毎に、現時刻のシミュレーションイメージを、前記選
    択した1個のバッファメモリ手段に保存するサンプリン
    グ過程と、 バックトラッキングポイント時刻の指定を受けて、前記
    バッファメモリ手段に保存されているシミュレーション
    イメージの中から、前記バックトラッキングポイント時
    刻に最も近く且つ以前であるサンプリング時刻を持つシ
    ミュレーションイメージを読み出し、この読み出したシ
    ミュレーションイメージを起点にして、前記バックトラ
    ッキングポイント時刻に向かってシミュレーションを実
    行するバックトラッキング過程と、 を備え、 前記選択過程では、最古のシミュレーションイメージが
    保存されているバッファメモリ手段を選択するバックト
    ラッキング方法。
  8. 【請求項8】 対象の動作を時系列的に検証するシミュ
    レータのためのバックトラッキング方法において、 各々一つのシミュレーションイメージが保存できる複数
    のバッファメモリ手段の中から1個を選択する選択過程
    と、 シミュレーションの実行過程において、サンプリング時
    刻毎に、現時刻のシミュレーションイメージを、前記選
    択した1個のバッファメモリ手段に保存するサンプリン
    グ過程と、 バックトラッキングポイント時刻の指定を受けて、前記
    バッファメモリ手段に保存されているシミュレーション
    イメージの中から、前記バックトラッキングポイント時
    刻に最も近く且つ以前であるサンプリング時刻を持つシ
    ミュレーションイメージを読み出し、この読み出したシ
    ミュレーションイメージを起点にして、前記バックトラ
    ッキングポイント時刻に向かってシミュレーションを実
    行するバ ックトラッキング過程と、 を備え、 前記選択過程では、保存されているシミュレーションイ
    メージが古いほど前記保存されているシミュレーション
    イメージ間のサンプリング時刻の間隔が長くなるよう
    に、前記現時刻のシミュレーションイメージを保存する
    ためのバッファメモリ手段を選択するバックトラッキン
    グ方法。
JP29284793A 1993-10-28 1993-10-28 対象の動作を時系列的に検証するシミュレータのためのバックトラッキング方式及びバックトラッキング方法 Expired - Lifetime JP2835567B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29284793A JP2835567B2 (ja) 1993-10-28 1993-10-28 対象の動作を時系列的に検証するシミュレータのためのバックトラッキング方式及びバックトラッキング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29284793A JP2835567B2 (ja) 1993-10-28 1993-10-28 対象の動作を時系列的に検証するシミュレータのためのバックトラッキング方式及びバックトラッキング方法

Publications (2)

Publication Number Publication Date
JPH07129540A JPH07129540A (ja) 1995-05-19
JP2835567B2 true JP2835567B2 (ja) 1998-12-14

Family

ID=17787140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29284793A Expired - Lifetime JP2835567B2 (ja) 1993-10-28 1993-10-28 対象の動作を時系列的に検証するシミュレータのためのバックトラッキング方式及びバックトラッキング方法

Country Status (1)

Country Link
JP (1) JP2835567B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004400A (ja) * 2005-06-22 2007-01-11 Oki Data Corp プログラム・デバッグ方法
JP5046081B2 (ja) * 2006-07-19 2012-10-10 豊和工業株式会社 工程シミュレータ
JP5288124B2 (ja) * 2009-03-17 2013-09-11 日本電気株式会社 論理シミュレーションシステム、論理シミュレーション方法及び論理シミュレーションプログラム
JP5444489B2 (ja) * 2012-06-13 2014-03-19 ファナック株式会社 数値制御装置のシミュレーション装置

Also Published As

Publication number Publication date
JPH07129540A (ja) 1995-05-19

Similar Documents

Publication Publication Date Title
US6339836B1 (en) Automated design partitioning
US6289489B1 (en) Method and apparatus for automatically cross-referencing graphical objects and HDL statements
US6321369B1 (en) Interface for compiling project variations in electronic design environments
US7206967B1 (en) Chip debugging using incremental recompilation and register insertion
US6678644B1 (en) Integrated circuit models having associated timing exception information therewith for use with electronic design automation
US5615356A (en) Method and apparatus for interactively displaying signal information during computer simulation of an electrical circuit
US5838949A (en) System and method for execution-sequenced processing of electronic design simulation results
US6438731B1 (en) Integrated circuit models having associated timing exception information therewith for use in circuit design optimizations
WO1990011569A1 (en) Computer-aided engineering
JPH04303246A (ja) データ処理システムにおける切貼りフィルタ
US5650946A (en) Logic simulator which can maintain, store and use historical event records
US5912819A (en) Method for designing an architectural system
EP1626359A2 (en) Methods and systems for electronic device modelling
US20030172055A1 (en) Array transformation in a behavioral synthesis tool.
JPH07249063A (ja) 階層形チェックポイントを使用する論理シミュレータ
US20020053069A1 (en) High-level synthesis method, high-level synthesis apparatus, method for producing logic circuit using the high-level synthesis method for logic circuit design, and recording medium
EP1850250A1 (en) Method and system for renewing an index
US8321825B2 (en) Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification
US6968428B2 (en) Microprocessor cache design initialization
JP2835567B2 (ja) 対象の動作を時系列的に検証するシミュレータのためのバックトラッキング方式及びバックトラッキング方法
US6915248B1 (en) Method and apparatus for transforming test stimulus
JPH08212106A (ja) システム試験支援装置及びシステム試験支援方法
JPH1040316A (ja) 図式のテスト支援装置及びテスト支援方法
JPH1010196A (ja) 論理エミュレーション装置
JPH0458070B2 (ja)

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071009

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081009

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091009

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101009

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111009

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 14