JPH07287723A - 指定パス活性化検出方法 - Google Patents

指定パス活性化検出方法

Info

Publication number
JPH07287723A
JPH07287723A JP6080121A JP8012194A JPH07287723A JP H07287723 A JPH07287723 A JP H07287723A JP 6080121 A JP6080121 A JP 6080121A JP 8012194 A JP8012194 A JP 8012194A JP H07287723 A JPH07287723 A JP H07287723A
Authority
JP
Japan
Prior art keywords
path
signal line
designated
identifier
activation
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
JP6080121A
Other languages
English (en)
Inventor
Konagi Uchibe
こなぎ 内部
Takashi Suzuki
敬 鈴木
Toru Shonai
亨 庄内
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6080121A priority Critical patent/JPH07287723A/ja
Publication of JPH07287723A publication Critical patent/JPH07287723A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【構成】セルライブラリ101,論理回路記述102,
指定パス103,テストパタン105の各ファイルを入
力として、計算機で回路の動作を模擬する論理シミュレ
ーション方法118において、指定パスファイルによっ
て指定された指定パスの始まりである信号線にイベント
が伝播したとき、信号線に識別子を付け、信号線の識別
番号を記録し、イベントの伝播と共に識別子を伝え、識
別子の伝わった各信号線の識別番号を記録し、識別子が
指定パスの最後の信号線に伝播したとき、記録されてい
る識別子の付いた信号線の識別番号の集合の中に指定パ
スを構成する全ての信号線の識別番号が含まれているか
否かを調べることにより、指定パスの活性化を検出す
る。 【効果】予め指定されたパスの活性化を容易に検出でき
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は論理回路のシミュレーシ
ョンにおいて、論理シミュレーション時に活性化するパ
スを検出する方法に関する。
【0002】
【従来の技術】クロック同期式のディジタル回路では、
フリップフロップ間の最大遅延がLSIの動作速度を決定
する。そのため回路設計では、フリップフロップ間の信
号経路(パス)の遅延を検証する必要がある。その検証方
法として、素子や配線の遅延を考慮する論理シミュレー
ションによってパスの信号の遅延を調べる方法がある。
論理シミュレーションを用いる方法では、信号がどのパ
スを伝播するか、即ち、どのパスが活性化するかはシミ
ュレーション時のテストパタンに依存する。従って、パ
スの遅延を検証するには、全てのパス、少なくとも遅延
の大きいクリティカルなパスを活性化させなくてはなら
ない。その際、パスが活性化したか否かを検出する必要
が生じる。
【0003】従来、論理シミュレーションを用いてパス
の活性化を検出する方法には、論理シミュレータ内に活
性化パスを検出する手段を設ける方法と、論理シミュレ
ーションの結果を参照して活性化パスを検出する方法の
2種類が提案されている。
【0004】前者の方法は、特開平2−288979 号公報で
述べられている。これは、論理シミュレーションによっ
てパス上の信号線に伝わるイベントを記録する際、その
イベントの親となるイベントの識別番号を情報として保
持することにより、イベントの伝播経路、活性化パスを
検出する方法である。
【0005】後者の方法は特開平3−269766 号公報に述
べられており、論理シミュレーションの結果から、ある
素子の入力端子に接続する信号線でイベントが生じてか
ら、その素子の出力端子に接続する信号線でイベントが
生じるまでの時間と、その素子の遅延時間との比較によ
り、信号の伝播を調べる方法である。
【0006】
【発明が解決しようとする課題】パスの活性化を検出す
る場合、活性化の有無を調べたいパスをあらかじめ想定
したうえで行うことが多い。その場合、上記従来例の前
者の方法では、必要なパスをあらかじめ指定する機能は
備わっておらず、発生するイベントについて全て記録し
ているため、記録されたイベントの中から、必要なパス
を探す手間が大きい。
【0007】また、上記従来例の後者の方法では、シミ
ュレーション後にイベントの伝播時間を各素子について
調べ、素子の遅延と比較するという非常に手間のかかる
作業を要する。
【0008】本発明の目的は、あらかじめ指定されたパ
スの活性化を容易に検出する方法を提供することにあ
る。
【0009】
【課題を解決するための手段】本発明は、上記目的を達
成するため、論理回路記述,セルライブラリ,指定パ
ス,テストパタンの各ファイルを入力として、計算機で
回路の動作を模擬する論理シミュレーションを行い、指
定パスの活性化を検出する。検出手段として、指定パス
ファイルによって指定された指定パスの始まりである信
号線にイベントが伝播したとき、その信号線に識別子を
付け、信号線の識別番号を記録する。イベントの伝播と
共にその識別子を伝え、識別子の伝わった信号線の識別
番号を記録する。識別子が指定パスの最後の信号線に伝
播したとき、記録された同じ識別子の付いた信号線の識
別番号の集合の中に指定パスを構成する全ての信号線の
識別番号が含まれているか否かを調べる。
【0010】指定パスを構成する信号線の識別番号の集
合と、活性化された同じ識別子を持つ信号線の集合を二
分決定グラフで表現することで、上記の同じ識別子の付
いた信号線の識別番号の集合の中に指定パスを構成する
全ての信号線の識別番号が含まれているか否かを調べる
処理を、二分決定グラフ(BDD)を用いた論理演算に
より行う方法もある。二分決定グラフは論理関数や集合
を少ないメモリ使用量で扱うことができるデータ構造で
ある。情報処理VOL.34,NO.5(1993.5)に、二分
決定グラフの特集記事が掲載されている。
【0011】また、指定パスの活性化状況を把握するた
め、検出された活性化パスを記録し、論理シミュレーシ
ョン終了時に指定パスファイルで指定された指定パスの
中の活性化パスの割合を計算する。また、活性化されな
かった指定パスを抽出し、出力する。
【0012】更に、指定パスファイルを任意の遅延計算
方法により求めた遅延制約違反パスを指定パスとして作
成する。
【0013】
【作用】上記手段により、あらかじめ指定したパスにつ
いてのみ、パスが活性化した場合パスの始めから終りま
での全ての信号線に同じ識別子が記録される。従って、
論理シミュレーションによって指定パスを構成する全て
の信号線に同じ識別子が記録されたか否かを判定するだ
けで、その指定パスの活性化を検出できる。また、その
判定は、同じ識別子を持つ信号線の集合と、指定パスを
構成する信号線の集合の包含関係を調べることで行え
る。更に、集合を論理関数で表すと、包含関係の判定は
簡単な論理演算で行える。二分決定グラフは論理関数を
少ない記憶量で表現するデータ構造であり、二分決定グ
ラフを用いた論理関数間の論理演算は簡単なグラフの操
作で行えるため、処理速度も速い。
【0014】論理シミュレーションによってパスの遅延
検証を行うには、遅延の大きいクリティカルパスを活性
化させなくてはならない。従って、活性化を検出したい
パスは主にそのようなクリティカルパスである。そこ
で、遅延の大きいパス、即ち遅延制約違反パスを他の任
意の遅延計算方法で求めて指定パスとすることにより、
クリティカルパスの活性化を検出することができる。
【0015】
【実施例】図1は本発明の一実施例の構成の説明図であ
る。論理シミュレーション118は、素子の種類や遅延
等の情報を記述したセルライブラリ101,回路の素子
とその接続情報を記述した回路記述102から初期設定
手段106により素子テーブル107を作成する。回路
記述102と活性化を検出したいパスを示す指定パスフ
ァイル103から初期設定手段106により出力信号線
テーブル108を作成する。指定パスファイル103は
指定パスファイル作成手段104から作成することがで
きる。また、テストパタン105から初期設定手段10
6により外部入力テーブル110を作成する。これらの
作成したテーブルを基に、指定パス活性化検出手段11
3を含む論理シミュレーション実行手段112により論
理シミュレーションを実行し、シミュレーション結果フ
ァイル116を出力する。論理シミュレーション実行時
に発生したイベントの情報をタイムホイール111に登
録する。指定パス活性化検出は、二分決定グラフ処理手
段115を用いて行うこともできる。
【0016】本実施例では、最初に二分決定グラフを用
いない処理について説明し、最後に二分決定グラフを用
いた場合のパス活性化検出方法について述べる。指定パ
スの活性化検出の結果を基に、活性化されたパスの割合
を求め、活性化されなかったパスを指摘するパスカバレ
ジ114を行い、パスカバレジ結果ファイル117を出
力する。
【0017】以下、図2ないし図6を用いて107〜1
10のテーブルの構造を、図7ないし図14を用いて1
06,112,113,114の処理手順を説明する。
また、図15ないし図29を用いて具体例についての処
理を説明する。
【0018】図2は素子テーブル107を説明する図で
ある。素子テーブル107は各素子固有の素子名20
1,素子タイプ202,素子の遅延時間203,入力信
号線数204と入力信号線テーブル208へのポインタ
205,出力信号線数206と出力信号線テーブル10
8へのポインタ207を格納する。入力信号線テーブル
208は出力信号線テーブルへのポインタ209を格納
し、ポインタ205が指す要素から入力信号線数204
の要素が指す信号線が素子の入力信号線となる。
【0019】図3は出力信号線テーブル108の説明図
である。出力信号線テーブル108は各信号線固有の信
号線名301,信号値302,ファンアウト接続素子数
303とファンアウト接続素子テーブル309へのポイン
タ304,信号線が指定パスに含まれるか、含まれる場
合パス内のどの位置であるかを表すマーク305,指定
パスに含まれる信号線について一意に与えられるリテラ
ル番号306,イベントの伝播と共に伝える活性化識別
子307,信号線が指定パスの最終端であるときに限り
パスリスト311へのポインタ308を格納する。ファ
ンアウト接続素子テーブル309は、素子テーブル10
7へのポインタ310を格納し、ポインタ304が指す
要素からファンアウト接続素子数303の要素が指す素
子が信号線のファンアウト接続素子である。パスリスト
311は指定パステーブル109で、その信号線が最終
端となっている指定パスへのポインタ312を格納し、
リストポインタ313でつなぐ。
【0020】図4は指定パステーブル109の二分決定
グラフを用いない場合の構成を示す説明図である。指定
パステーブル109は、指定パスファイル103により
指定されたパスのパス名401、そのパスが活性化され
たか否かを表すフラグ402,指定パスリスト404へ
のポインタ403を格納する。指定パスリスト404に
は、パスを構成する信号線のリテラル番号405を最終
端から入力方向の順で格納し、リストポインタ406で
つなぐ。
【0021】図5は外部入力テーブル110の説明図で
ある。ある時刻にどの信号線をどんな信号値にするかと
いう情報、即ち、時刻501と外部入力リスト503へ
のポインタ502を格納する。外部入力リストには信号
名504と信号値505を格納し、リストポインタ50
6でつなぐ。
【0022】図6はタイムホイール111の説明図であ
る。タイムホイール111はイベント情報601を時刻
毎に登録するデータ構造であり、ポインタ605により
リストにつないでイベントリスト606として保持す
る。イベント情報601の内容は出力信号線テーブル1
08へのポインタ602,信号値603,活性化識別子
604である。
【0023】図7は本実施例の処理を示す図である。初
期設定701では図2ないし図5に示したテーブルを作
成し、初期値を設定する。また、時刻を初期状態t0に
設定し、終了時刻を定める。ループ702は時刻tが終
了時刻となるまで、処理703ないし705を繰り返す。
処理703は外部入力がある場合、外部入力となる信号
線へのポインタ,信号値,活性化識別子をイベントリス
ト606に登録する処理である。処理704では、イベ
ントリストに登録されているイベント情報601を取り出
し、それを基に出力信号線テーブル107の信号値30
2,活性化識別子307の値を更新し、活性化識別子毎
に分類されたリストに、信号線のリテラル番号を登録す
る。更にイベントの発生した信号線が指定パスの最終端
である場合には、指定パスが活性化したか否かを調べ
る。最後に、出力信号線テーブルで信号値が更新された
信号線を指すポインタを信号変化テーブルに登録する。
処理705では、処理704で信号変化テーブルに登録
されたポインタが指す各信号線について、その信号線の
ファンアウト接続素子の出力信号線へのイベント伝播を
調べ、伝播がある場合にはイベントが伝播する時刻のイ
ベントリストにイベント情報を登録する。パスカバレジ
処理706は活性化検出の結果を基に指定パスの中で活
性化したパスの割合と活性化しなかったパス名401を
出力する。
【0024】図8は図7における初期設定701の処理
の説明図である。801は回路記述102を基に、素子
テーブル(図2)の素子名,入力信号線数,入力信号線
テーブルへのポインタ,出力信号線数,出力信号線テー
ブルへのポインタ、及び入力信号線テーブルの各要素の
値を、出力信号線テーブル(図3)の信号線名,ファン
アウト接続素子数,ファンアウト接続素子テーブルへの
ポインタ及びファンアウト接続素子テーブルの各要素の
値を設定する。802はセルライブラリを基に素子テー
ブルの素子のタイプ(AND,OR等の種類)、遅延時間
を設定する。
【0025】803はテストパタンを基に外部入力テー
ブルに外部入力のある時刻と、その時刻にある外部入力
をリストにつないで登録する(図5)。804はパス指
定を参照し、少なくとも一つの指定パスに含まれる全て
の信号線に1以上の固有のリテラル番号を割当て、出力
信号線テーブルのリテラル番号を設定する。どの指定パ
スにも含まれない信号線のリテラル番号には0を設定す
る。805はパス指定に基づき、指定パステーブルのパ
ス名を設定し、指定パスリストに804で定めたリテラ
ル番号を登録する。806は時刻を初期時刻t0に設定
し、終了時刻を定める。807は初期値となる信号値を
出力信号線テーブルに設定する。808は指定パスを参
照し、信号線が指定パスの最初ならばF、最終端ならば
L、指定パスの中間にあるならばM、また、指定パスに
含まれない信号線にはEを出力信号線テーブルのマーク
に設定する。出力信号線テーブルに登録されている信号
線のうち、808で設定されたマークがLである全ての
信号線について809を行う。809はその信号線を最
終端に持つ指定パスを指す指定パステーブルへのポイン
タをパスリストに登録する。810は出力信号テーブル
の識別子を全て0とする。811は識別子カウンタの値
を1に設定する。812は指定パスに含まれる全ての信
号線、即ち、出力信号線テーブルでマークがEでない信
号線の信号線名と信号値をシミュレーション結果ファイ
ルに出力する。
【0026】図9は図7の外部入力登録703の処理の
詳細を示す図である。時刻tの外部入力リストに登録さ
れている全ての外部入力について901〜904を行
う。
【0027】901は時刻tの外部入力の信号線を指す
出力信号線テーブルへのポインタと信号値を外部入力テ
ーブルを参照してイベントリスト606に登録する。9
02は外部入力の信号線のマークがFならば903へ、
F以外ならば904へ分岐する分岐条件である。903
はイベントリストに識別子カウンタの数を登録し、識別
子カウンタの値を1増やす。904はイベントリストの
識別子に0を登録する。
【0028】図10(a)は図7の信号変化更新704
の処理の説明図である。時刻tの全てのイベントについ
て、イベントの信号値が、イベントの出力信号線テーブ
ルへのポインタspが指す信号線の信号値と異なる場
合、1001〜1005を行う。
【0029】1001は出力信号線テーブルの信号値を
イベントの信号値に更新する。1002は出力信号線テーブ
ルのspが指す信号線の活性化識別子307をイベント
の活性化識別子604に更新する。1002で登録され
た出力信号線テーブルの活性化識別子が0でないなら
ば、1003〜1004を行う。1003は1002で
登録された出力信号線テーブルの活性化識別子とリテラ
ル番号を、活性化識別子ハッシュテーブルの、活性化識
別子を引き数するハッシュ関数の関数値のアドレスにつ
ながる活性化識別子リストに登録する。ハッシュ関数は
定義域(この場合は活性化識別子の数)より値域が小さ
くなる関数で、引数の剰余を取る関数等がよく用いられ
る。
【0030】図10(b)は活性化識別子ハッシュテー
ブルを表す図である。ハッシュテーブルには活性化識別
子リストを指すポインタを格納する。活性化識別子リス
トは同じハッシュ値を持つ活性化識別子をリストでつな
ぎ、各要素1012には、活性化識別子1013と二つ
のリストポインタ1014,1015を格納する。
【0031】1014はその活性化識別子を持つ信号線
のリテラル番号のリストへのポインタで、1015は次
要素へのポインタである。1014の指す要素1016
はリテラル番号1017と、リストポインタ1018を
格納する。活性化識別子とリテラル番号の登録の際に
は、その活性化識別子が既に活性化識別子リストに存在
する場合はその活性化識別子のリテラル番号のリストに
spが指す信号線のリテラル番号を登録する。存在しな
い場合には、活性化識別子を活性化識別子リストに登録
した上でリテラル番号を登録する。spが指す信号線の
マークがLならば、1004を行う。1004は指定パ
スが活性化したか否かを検出する処理である。活性化識
別子リストに登録されたリテラル番号と、指定パスリス
トに登録されたリテラル番号の比較により行う。100
5はポインタspを信号変化テーブル1020に登録す
る。
【0032】図10(c)は信号変化テーブル1220
を表す説明図である。信号変化テーブル1220は出力
信号線テーブル107を指すポインタを格納する。
【0033】図11は図10の活性化パスチェック10
04の二分決定グラフを用いない処理の詳細を示す図で
ある。信号変化テーブルに登録された全てのポインタs
pに対し、1101〜1109を行う。1101はポイ
ンタcpを定める。spが指す信号線の活性化識別子を
cとするとき、活性化識別子リストの活性化識別子cの
リストポインタが指す要素のリストポインタをcpとす
る。ループ1102はspが指す信号線のパスリストの
ポインタが指す指定パスのうち、フラグがOFFである全
ての指定パスについて1103〜1108を行う。11
03はパスPのリストポインタが指す要素のリストポイ
ンタをppとする。ppが指す要素のリストポインタが
空でない間、処理1105〜1108を行う。ppが指
す要素のリテラル番号がcpが指す要素のリテラル番号
と異なる間、1104〜1106を行う。1104はc
pが指す要素のリストポインタが空でないならば110
5へ、空ならば1106へと分岐する分岐条件である。
1105はcpをcpが指す要素のリストポインタとす
る。1106は処理を中止し、ループ1102を抜け
る。1107はppをppが指す要素のリストポインタ
とする。1108はcpをcpが指す要素のリストポイ
ンタとする。ppがNULLならば1109を行う。1
109は指定パステーブルのパスPのフラグをONにす
る。
【0034】図12は図7の出力信号変化登録705の
処理の詳細を表す説明図である。
【0035】1005により信号変化テーブルに登録さ
れた全てのポインタspについて1201〜1206を行
う。ポインタspが指す信号線のマークがEでないなら
ば1201を行う。1201はspが指す信号線の信号線名
をシミュレーション結果ファイルに出力する。spが指
す信号線の全てのファンアウト接続素子gに対し、1202
〜1206を行う。1202は素子gの入力信号の信号
値を出力信号線テーブルに登録されている値とし、素子
gのタイプを基に出力信号線osの信号値ovを計算す
る。1203は現時刻tに素子gの遅延を加えた時刻の
イベントリストに信号線osへのポインタと信号値ov
を登録する。1204は信号線osのマークがFならば
1205へFでなければ1206へと分岐する分岐条件
である。1205は時刻t+(素子gの遅延時間)の信号線
osのイベントの活性化識別子に識別子カウンタの値を
登録し、カウンタの値を1増やす。1206は時刻t+
(素子gの遅延時間)の信号線osのイベントの活性化
識別子にspが指す信号線の活性化識別子を登録する。
【0036】図13は図7のパスカバレジ706の処理
の詳細を示す説明図である。1301は指定パステーブルで
フラグがONになっているパスの数nを数える処理であ
る。1302は1301で求めたnを全指定パス数で割
り、活性化されたパスの割合を求め、結果をファイルに
出力する処理である。1303は活性化されなかった指
定パス名を結果ファイルに出力する処理である。
【0037】図14(a)は図10の活性化パスチェッ
ク1004を二分決定グラフを用いて行う処理を表す図
である。図14(b)は二分決定グラフを用いる場合の
指定パステーブルを表す図である。二分決定グラフ14
10は、図4の指定パスリスト404に登録されている
リテラル番号を変数と見なしたとき、全ての変数の論理
積を表す関数である。即ち、指定パスリスト404に登
録されているリテラル番号が正整数1〜rであるとする
とき、正整数iを変数xiとして論理積を取った関数f
=x1・x2・...・xrを二分決定グラフで表した
ものである。図14(c)は二分決定グラフを用いる場
合の活性化識別子ハッシュテーブルを表す図である。1
420は図10の一つの活性化識別子につながるリテラ
ル番号のリスト1016に登録されている全てのリテラ
ル番号の集合を(b)と同様の手順で関数に表現したも
のである。1401における関数fが1420である。
【0038】1402の関数gが1410である。14
03は〜f+gを計算する。〜f+gが恒真関数ならば
指定パスリストのパスPのフラグ1411をONにす
る。
【0039】次に、図15の回路とデータを用いて実施
例の処理内容を具体的に説明する。
【0040】図15(a)は回路の例である。G0は仮
想入力素子、G1はNANDゲート、G2,G3はNO
Rゲートで、信号線をS1〜S7とする。図15(b)
は図15(a)の回路を記述した回路記述の例である。
図15(c)はセルライブラリの一部を表す図である。
NANDゲートの遅延を2、NORゲートの遅延を3と
する。図15(d)は指定パスファイルの例である。パ
スPS1:S2→S5→S6と、パスPS2:S3→S
5→S6が指定パスであることを示す。指定パスファイ
ルは指定パスファイル作成手段を用いて作成できる。例
えば、パス上の全ての素子の遅延の合計が最大となるパ
スをグラフの探索アルゴリズム等を用いて求め、指定パ
スとすることができる。図15(a)では、PS1,P
S2がそのようなパスになっている。図15(e)はテ
ストパタンを表す図である。外部入力は時刻1にS2→
1、時刻2にS3→0の二つである。
【0041】図16は図15の回路データについて図7
の初期設定701が終了したときの素子テーブル10
7,信号線テーブル108,指定パステーブル109,
外部入力テーブル110を表す図である。図15(b)
の回路記述と(c)のセルライブラリから、図8の処理
801,802により、素子テーブルと入力信号線テー
ブルの1601〜1608,出力信号線テーブルとファ
ンアウト接続素子テーブルの1609,1611,16
12,1619を設定する。図15(e)のテストパタ
ンから、803により外部入力テーブル1624を作成
する。図15(d)の指定パスファイルから、指定パスに
含まれる信号線はS2,S3,S5,S6,S7の五つ
であるので、804によりそれぞれのリテラル番号をR
1〜R5と定め、1614に設定する。805により、
指定パステーブルを作成し、1620〜1623を設定す
る。806で初期時刻は0とする。図15(e)から、
信号線S1,S2,S3,S4の初期値はそれぞれ0,
0,1,0である。807により、1611を設定す
る。パスP1において、パスの最初の信号線はS2であ
り、S6はパスの最終端に、S5はパスの中間に位置す
る。従って、S2,S5,S6のマークはそれぞれF,
M,Lとなる。他の信号線についても同様に見ていく
と、808により1613が設定される。ここで、マー
クがLである信号線はS6とS7である。809によ
り、S6を最終端とする指定パスはPS1であるから、
1616が指すパスリストの要素1617には、指定パ
ステーブルのPS1を指すポインタが入る。同様にS7に
つながるパスリストの要素1618はPS2を指すポイン
タである。810より出力信号線テーブルの全ての信号
線の活性化識別子の値を0にする。811より識別子カ
ウンタ1625の値を1とする。
【0042】812によりシミュレーション結果出力フ
ァイルに1626が出力される。
【0043】図17は時刻t=1における外部入力登録
703後のイベント情報と出力信号テーブルの一部を表
す図である。外部入力テーブル1624より、時刻1に
おいてS2を1とする入力があるため、外部入力登録7
03の処理を行う。タイムホイールの時刻1のイベント
として、信号線S2を指すポインタ1701,入力信号
値1を登録する(1702)。また、S2のマークはF
であるから、イベントの活性化識別子にはその時点での
識別子カウンタ1625の値1を登録し(1703)、識別子
カウンタの値を1増やし、2とする(1705)。
【0044】図18は時刻t=1における信号変化更新
処理704後の活性化識別子ハッシュテーブルと出力信
号線テーブルの一部を表す説明図である。t=1には図
17に示した一つのイベントが存在する。信号線S2の
信号値1704は0であり、イベントの信号値1702
と異なる。従って、1001により出力信号テーブルの
S2の信号値を1にする(1806)。イベントの活性
化識別子1703は1であるから、1002により出力
信号線テーブルの活性化識別子を1とする(180
7)。活性化識別子は0ではないので、1003により
活性化識別子ハッシュテーブルに登録する。ハッシュ関
数をh(x)=x mod3とすると(xは活性化識別
子)、テーブルのアドレスh(1)=1のポインタ18
01が指す要素に活性化識別子1を登録する(180
2)。リストポインタ1803が指す要素には信号線S
2のリテラル番号R2を登録する(1804)。S2の
マークはLではないので、指定パス活性化チェック10
04は行わない。最後に信号変化テーブルにS2を指す
ポインタを登録する(1805)。
【0045】図19は時刻t=1における出力信号変化
登録705の処理でイベントを登録したタイムホイール
の図である。信号変化テーブルに登録されたポインタは
S2を指すもの一つであるから(1805)、このポイ
ンタを取り出して処理を行えばよい。信号線S2のマー
クはEではないため、出力ファイルに信号線名S2を出
力する。S2のファンアウト接続素子はG1のみである
から(図16参照)、素子G1に対し、処理1202〜
1206を行う。素子G1の入力信号はS2とS3であ
り、S2の信号値1806は1、S3の信号値1610
は1であるから、1と1のNANDを計算すると、素子
G1の出力信号線S5の信号値は0である。素子G1の
遅延1603は2であるから、1203によりタイムホ
イールの現時刻t=1に2を加えたt=3の位置にイベ
ントを登録する。S5を指すポインタ1902と、信号
値に0を登録する(1903)。信号線S5のマーク16
13はFではないので、1205により1805が指す信
号線S2の活性化識別子1(1807)をイベントの活
性化識別子として登録する(1904)。これでt=1
の処理は全て終了し、時刻を一つ進め、t=2とする。
【0046】図20は時刻t=2における外部入力登録
後のイベント情報と出力信号テーブルの一部を表す説明
図である。外部入力テーブルより、時刻2においてS3
を0とする入力があるため、外部入力登録703の処理
を行う。タイムホイールの時刻2のイベントとして、信
号線S3を指すポインタ2001,入力信号値0を登録
する(2002)。また、S3のマークはFであるか
ら、イベントの活性化識別子には識別子カウンタ170
5の値2を登録し(2003)、識別子カウンタの値を
1増やし3とする(2005)。
【0047】図21は時刻t=2における信号変化更新
処理後の活性化識別子ハッシュテーブルと出力信号線テ
ーブルの一部を表す説明図である。t=2におけるイベ
ントは図20の一つである。信号線S3の信号値200
4は1であり、イベントの信号値2002と異なる。従
って、1001により出力信号テーブルのS3の信号値
を0にする(2106)。イベントの活性化識別子20
03は2であるから、1002により出力信号線テーブ
ルの活性化識別子を2とする(2107)。活性化識別
子は0でないので、1003により活性化識別子ハッシ
ュテーブルに登録する。t=1のときと同様に、テーブ
ルのアドレスh(2)=2のポインタが指す要素に活性
化識別子2を登録する(2102)。リストポインタ2
103が指す要素には信号線S3のリテラル番号R2を
登録する(2104)。S3のマークはLでないので、
指定パス活性化チェック1004は行わない。最後に信
号変化テーブルにS3を指すポインタを登録する(21
05)。
【0048】図22は時刻t=2における出力信号変化
登録705の処理でイベントを登録したタイムホイール
を表す図である。信号変化テーブルに登録されたポイン
タはS3を指すもの一つであるから、このポインタを取
り出して処理を行う。以後図19と同様の処理を行い、
タイムホイールのt=4の位置にイベント、即ちS5を
指すポインタ2202、信号値1(2203),活性化
識別子2(2204)を登録する。これでt=2の処理
は全て終了となり、時刻を一つ進め、t=3とする。
【0049】図23は時刻t=3における信号変化更新
処理後の活性化識別子ハッシュテーブルと出力信号線テ
ーブルの一部を表す図である。t=3のイベントは図1
9の一つである。信号線S5の信号値1610は1であ
り、イベントの信号値1903と異なる。従って、1001
により出力信号テーブルのS5の信号値を0にする(2
306)。イベントの活性化識別子1904は1である
から、1002により出力信号線テーブルの活性化識別
子を1とする(2307)。活性化識別子は0でないの
で、1003により活性化識別子ハッシュテーブルに登
録する。テーブルのアドレスh(1)のポインタ230
1が指す活性化識別子1の要素2302のリストポインタ2
303が指す要素に、信号線S5のリテラル番号R3を
登録する(2304)。S5のマークはLでないので、
指定パス活性化チェック1004は行わない。最後に信号変
化テーブルにS5を指すポインタを登録する(230
5)。
【0050】図24は時刻t=3における出力信号変化
登録705の処理でイベントを登録したタイムホイール
を表す説明図である。信号変化テーブルに登録されてい
るポインタはS5を指す一つだけであるから、このポイ
ンタを取り出して処理を行えばよい。信号線S5のマー
クはEではないため、出力ファイルに信号線名S5を出
力する。S5のファンアウト接続素子G2,G3に対し
処理1202〜1206を行う。素子G2の入力信号はS1
とS5であり、S1の信号値1610は0、S5の信号
値2306は0であるから、0と0のNORを計算する
と、素子G2の出力信号線S6の信号値は1である。素
子G2の遅延1603は3であるから、1203により
タイムホイールの時刻t=3に3を加えたt=6の位置
にイベントを登録する。S6を指すポインタ2402
と、信号値に1を登録する(2403)。信号線S6のマーク
1613はFではないので、1205により2305が
指す信号線S5の活性化識別子1をイベントの活性化識
別子として登録する(2404)。素子G3の入力信号はS4
とS5であり、S4の信号値1610は0、S5の信号
値2306は0であるから、素子G3の出力信号線S7
の信号値は1である。以後素子G2と同様に、タイムホ
イールのt=6の位置に、イベント、即ち、S7を指す
ポインタ2405、信号値1(2406),活性化識別子
1(2407)を登録する。これでt=3の処理は全て終
了するため、時刻を一つ進めt=4とする。
【0051】図25は時刻t=4における信号変化更新
処理後の活性化識別子ハッシュテーブルと出力信号線テ
ーブルの一部を表す説明図である。t=4のイベントは
図22の一つである。図23と同様に、1001により
出力信号線テーブルのS5の信号値を1にし(250
6)、1002により出力信号線テーブルの活性化識別
子を2とする(2507)。活性化識別子は0でないの
で、1003により活性化識別子ハッシュテーブルに登
録する。テーブルのアドレスh(2)=2のポインタ2
501が指す活性化識別子2の要素2502のリストポ
インタ2503が指す要素に、信号線S5のリテラル番
号R3を登録する(2504)。S5のマークはLでは
ないので、指定パス活性化チェック1004は行わな
い。最後に信号変化テーブルにS5を指すポインタを登
録する(2505)。
【0052】図26は時刻t=4における出力信号変化
登録705の処理でイベントを登録したタイムホイール
を表す説明図である。信号変化テーブルに登録されたポ
インタ2505はS5を指すもの一つであるから、この
ポインタを取り出して処理を行えばよい。信号線S5の
マークはEではないため、出力ファイルに信号線名S5
を出力する。S5のファンアウト接続素子G2,G3に
対し処理1202〜1206を行う。素子G2の入力信
号はS1とS5であり、S1の信号値1610は0、S5の
信号値2506は1であるから、0と1のNORを計算
すると、素子G2の出力信号線S6の信号値は0であ
る。素子G2の遅延1603は3であるから、1203
によりタイムホイールの現時刻t=4に3を加えたt=
7の位置にイベントを登録する。S6を指すポインタ2
602と、信号値に0を登録する(2603)。信号線
S6のマーク1613はFではないので、1205によ
り2505が指す信号線S5の活性化識別子2をイベン
トの活性化識別子として登録する(2604)。素子G
3についても、素子G2と同様の処理を行い、タイムホ
イールのt=7に、イベント、即ちS7を指すポインタ
2605,信号値0(2606),活性化識別子2(2
607)を登録する。これでt=4の処理は全て終了
し、時刻を一つ進め、t=5とする。t=5では、外部
入力も登録されているイベントも存在しないため、時刻
をt=6とする。
【0053】図27は時刻t=6における信号変化更新
処理後の出力信号線テーブルの一部,指定パステーブ
ル,活性化識別子ハッシュテーブルを表す説明図であ
る。t=6のイベントは図24からわかるように二つあ
る。信号線S6の信号値1610は0であり、イベント
の信号値2403と異なる。従って、1001により出
力信号テーブルのS6の信号値を1にする(270
1)。イベントの活性化識別子2404は1であるか
ら、1002により出力信号線テーブルの活性化識別子
を1とする(2703)。活性化識別子は0でないの
で、1003によりハッシュテーブルに登録する。テー
ブルのアドレスh(1)のポインタ2727が指す活性
化識別子1の要素2728のリストポインタ2729が
指す要素に、信号線S6のリテラル番号R4を登録する
(2730)。S6のマーク2702はLであるから、
指定パス活性化チェック1004を行う。1101によ
りcpは2731である。S6のパスリスト2704が指す
指定パスPS1のフラグ2710はOFFであるから、
1103〜1109を行う。1103よりppは271
3である。2713はNULLでないため、1104〜
1108を行う。pp(2713)が指す要素のリテラル番号
2714,cp(2731)が指す要素のリテラル番号2
732は共にR3であるから、次に1107を行う。1
107よりppは2715に、1108よりcpは2733
になる。ppはNULLでないので、処理1104〜110
8を行う。ppが指す要素のリテラル番号2716とc
pが指す要素のリテラル番号2734は共にR1である
から、次に1107を行う。1107によりppは27
17に、1108よりcpは2735になる。ppはN
ULLであるから、ループを終了し、1109を行い、
指定パスPS1のフラグをONにする(2747)。信
号線S7の信号値1610は0であり、イベントの信号
値2406と異なる。従って、1001により出力信号
線テーブルのS7の信号値を1にする(2705)。イ
ベントの活性化識別子2407は1であるから、100
2により出力信号線テーブルの活性化識別子を1とする
(2707)。活性化識別子は0でないので、1003
により活性化識別子ハッシュテーブルに登録する。テー
ブルのアドレスh(1)のポインタ2736が指す活性
化識別子1の要素2737のリストポインタ2738が
指す要素に、信号線S7のリテラル番号R5を登録する
(2739)。S7のマーク2706はLであるから、
指定パス活性化チェック1004を行う。1101によ
りcpは2740である。
【0054】S7のパスリスト2708が指す指定パス
PS2のフラグ2719はOFFであるから、1102
〜1108を行う。1102よりppは2722であ
る。2722はNULLでないため、1104〜110
8を行う。pp(2722)が指す要素のリテラル番号
2723はcp(2740)が指す要素のリテラル番号
2741と異なるため、1104〜1106を行う。c
p2740が指す要素のリストポインタ2742はNU
LLでないため、cpを2742とする。ppが指す要
素のリテラル番号2723とcpが指す要素のリテラル
番号2743は共にR3であるから、次に1107を行
う。1107よりppは2724に、1108よりcp
は2744になる。ppはNULLでないので、処理1
103〜1108を行う。ppが指す要素のリテラル番
号2725とcpが指す要素のリテラル番号2745は
異なるため、1104を行う。cp2744が指す要素
のリストポインタ2746はNULLであるから、11
06を行いループを抜ける。pp2724はNULLでない
ため、1109は行わない。S6,S7共にファンアウ
ト接続素子は持たないので、t=6における処理は終了
となる。時刻をt=7とする。
【0055】図28は時刻t=7における信号変化更新
処理後の出力信号線テーブルの一部,指定パステーブ
ル,活性化識別子ハッシュテーブルを表す説明図であ
る。t=7のイベントは図26からわかるように二つあ
る。信号線S6の時刻t=6における信号値2701は
1であり、イベントの信号値0(2603)と異なる。
従って、1001により出力信号テーブルのS6の信号
値を0にする(2801)。イベントの活性化識別子26
04は2であるから、1002により出力信号線テーブ
ルの活性化識別子を2とする(2803)。活性化識別
子は0でないので、1003により活性化識別子ハッシ
ュテーブルに登録する。テーブルのアドレスh(2)の
ポインタ2820が指す活性化識別子2の要素2821
のリストポインタ2822が指す要素に、信号線S6の
リテラル番号R4を登録する(2823)。S6のマーク2
802はLであるが、S6のパスリスト2804が指す
指定パスPS1のフラグ2810はONであるため、指
定パス活性化チェックの処理は行わない。信号線S7の
信号値2705は1であり、イベントの信号値2606
と異なる。従って、1001により出力信号テーブルの
S7の信号値を0にする(2805)。イベントの活性
化識別子2607は2であるから、1002により出力
信号線テーブルの活性化識別子を2とする(280
7)。活性化識別子は0でないので、1003によりハ
ッシュテーブルに登録する。テーブルのアドレスh
(2)のポインタ2824が指す活性化識別子2の要素
2825のリストポインタ2826が指す要素に、信号
線S7のリテラル番号R5を登録する(2827)。S7のマ
ーク2806はLであるから、指定パス活性化チェック
1004を行う。1101によりcpは2828であ
る。S7のパスリスト2808が指す指定パスPS2
(2811)のフラグ2812はOFFであるから、1
103〜1109を行う。1103よりppは2815
である。2815はNULLでないため、1104〜1
108を行う。pp(2815)が指す要素のリテラル番
号2816はcp(2828)が指す要素のリテラル番号
2829と異なるため、1104〜1106を行う。c
p(2828)が指す要素のリストポインタ2830はNU
LLでないため、cpを2830とする。ppが指す要
素のリテラル番号2816とcpが指す要素のリテラル
番号2831は共にR3であるから、次に1107を行
う。1107よりppは2817に、1108よりcp
は2832になる。ppはNULLでないので、処理1
104〜1108を行う。ppが指す要素のリテラル番
号2818とcpが指す要素のリテラル番号2833は
共にR2であるから、次に1107を行う。1107よ
りppは2819に、1108よりcpは2834になる。
ppはNULLであるから、ループを終了し、1109を行
い、指定パスPS2のフラグをONにする(283
5)。S6,S7共にファンアウト接続素子は持たない
ので、t=7における処理は終了となる。これで登録さ
れたイベント,外部入力は全てなくなるため、シミュレ
ーションの処理は終了となる。
【0056】パスカバレジ706は、指定パス二つ共に
フラグがONとなったため、活性化された割合は1であ
り、活性化されなかったパスはないため、その旨結果フ
ァイルに出力する。
【0057】本実施例によれば、論理シミュレーション
実行時のパスの活性化検出方法において、予め指定され
たパスの活性化を少ない手間で検出することができる。
予め指定するパスは遅延の大きいパス等、活性化を検出
する意味のあるパスとして作成できる。また、パスの活
性化状況を把握することができる。
【0058】図29は1004を図14の処理で行う場
合に用いる二分決定グラフ(BDD)の例を表す図であ
る。2901は図28の識別子2825につながるリテ
ラル番号R2,R3,R4,R5の論理積の関数、f=
R2・R3・R4・R5を表す二分決定グラフ(BD
D)で、2902は2813が指す指定パスリストのリ
テラル番号R2,R3,R5の論理積の関数、g=R2
・R3・R5を表す二分決定グラフ(BDD)である。
BDD処理手段を用いて、これらのBDD作成し、〜f
+gの論理演算を行う(ここで、・は論理積、+は論理
和、〜は否定演算を表す)。
【0059】本実施例によれば、処理を少ないメモリ使
用量で行うことができる。
【0060】
【発明の効果】本発明によれば、論理シミュレーション
実行時のパスの活性化検出方法において、予め指定され
たパスの活性化を、記録された全てのイベントから探し
出す必要がなく、少ない手間で検出することができる。
また、遅延制約違反パスを指定パスとすることができ
る。更に、処理におけるメモリ使用量を少なくでき、パ
スの活性化状況を把握できる。
【図面の簡単な説明】
【図1】本発明の構成の説明図。
【図2】素子テーブルのデータ構造の説明図。
【図3】出力信号線テーブルのデータ構造の説明図。
【図4】指定パステーブルのデータ構造の説明図。
【図5】外部入力テーブルのデータ構造の説明図。
【図6】タイムホイールとイベント情報のデータ構造の
説明図。
【図7】本発明の処理方式の説明図。
【図8】図7の初期設定の処理方式の説明図。
【図9】図7の外部入力登録の処理方式の説明図。
【図10】図7の信号変化更新の処理方式とその処理に
用いるテーブルの説明図。
【図11】図10の指定パス活性化チェックの二分決定
グラフを用いない処理方式の説明図。
【図12】図7の出力信号変化登録の処理方式の説明
図。
【図13】図7のパスカバレジの処理方式の説明図。
【図14】図10の指定パス活性化チェックの二分決定
グラフを用いる処理方式とその処理における指定パステ
ーブル、活性化識別子ハッシュテーブルのデータ構造の
説明図。
【図15】回路と入力ファイルの例の説明図。
【図16】図15の回路データを基に図7の初期設定に
より作成した各テーブルの説明図。
【図17】時刻1における外部入力登録処理によるテー
ブルの更新の説明図。
【図18】時刻1での信号変化更新処理によるテーブル
の更新の説明図。
【図19】時刻1における出力信号変化登録処理により
登録されたイベント情報の説明図。
【図20】時刻2における外部入力登録処理によるテー
ブルの更新の説明図。
【図21】時刻2における信号変化更新処理によるテー
ブルの更新の説明図。
【図22】時刻2における出力信号変化登録処理により
登録されたイベント情報の説明図。
【図23】時刻3における信号変化更新処理によるテー
ブルの更新の説明図。
【図24】時刻3における出力信号変化登録処理により
登録されたイベント情報の説明図。
【図25】時刻4における信号変化更新処理によるテー
ブルの更新の説明図。
【図26】時刻4における出力信号変化登録により登録
されたイベントの説明図。
【図27】時刻6における信号変化更新処理によるテー
ブルの更新の説明図。
【図28】時刻7における信号変化更新処理によるテー
ブルの更新の説明図。
【図29】図28の指定パス等を表す二分決定グラフ。
【符号の説明】
101…セルライブラリ、102…回路記述、103…
指定パス、104…指定パスファイル作成手段、105
…テストパタン、106…初期設定手段、107…素子テ
ーブル、108…出力信号線テーブル、109…指定パ
ステーブル、110…外部入力テーブル、111…タイ
ムホイール、112…論理シミュレーション実行手段、
指定パス活性化検出手段、114…パスカバレジ、11
5…二分決定グラフ処理手段、116…シミュレーショ
ン結果、117…パスカバレジ結果、118…論理シミ
ュレーション方法。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】論理回路記述,セルライブラリ,指定パ
    ス,テストパタンの各ファイルを入力として、計算機で
    回路の動作を模擬する論理シミュレーションにおいて、
    指定パスファイルによって指定された指定パスの始まり
    である信号線にイベントが伝播したとき、前記信号線に
    識別子を付け、前記信号線の識別番号を記録し、イベン
    トの伝播と共に前記識別子を伝え、前記識別子の伝わっ
    た各信号線の識別番号を記録し、前記識別子が前記指定
    パスの最後の信号線に伝播したとき、記録されている前
    記識別子の付いた信号線の識別番号の集合の中に指定パ
    スを構成する全ての信号線の識別番号が含まれているか
    否かを調べることにより、指定パスの活性化を検出する
    ことを特徴とする指定パス活性化検出方法。
  2. 【請求項2】請求項1において、指定パスを構成する信
    号線の識別番号の集合と、活性化された同じ識別子を持
    つ信号線の識別番号の集合を二分決定グラフで表現し、
    前記識別子の付いた信号線の識別番号の集合の中に指定
    パスを構成する全ての信号線の識別番号が含まれている
    か否かを調べる処理を前記二分決定グラフを用いた論理
    演算により行う指定パス活性化検出方法。
  3. 【請求項3】請求項1において、検出された活性化パス
    を記録し、論理シミュレーション終了時に前記指定パス
    ファイルで指定された指定パスの中の活性化パスの割合
    を計算し、更に活性化されなかった前記指定パスを抽出
    し、出力する活性化パスカバレジ方法。
  4. 【請求項4】請求項3において、任意の遅延計算方法に
    より求めた遅延制約違反パスを前記指定パスファイルの
    内容とする指定パスファイル作成方法。
JP6080121A 1994-04-19 1994-04-19 指定パス活性化検出方法 Pending JPH07287723A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6080121A JPH07287723A (ja) 1994-04-19 1994-04-19 指定パス活性化検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6080121A JPH07287723A (ja) 1994-04-19 1994-04-19 指定パス活性化検出方法

Publications (1)

Publication Number Publication Date
JPH07287723A true JPH07287723A (ja) 1995-10-31

Family

ID=13709381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6080121A Pending JPH07287723A (ja) 1994-04-19 1994-04-19 指定パス活性化検出方法

Country Status (1)

Country Link
JP (1) JPH07287723A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013050848A (ja) * 2011-08-31 2013-03-14 Ricoh Co Ltd データフロー検証支援装置およびデータフロー検証支援方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013050848A (ja) * 2011-08-31 2013-03-14 Ricoh Co Ltd データフロー検証支援装置およびデータフロー検証支援方法

Similar Documents

Publication Publication Date Title
US7222114B1 (en) Method and apparatus for rule-based operations
US5282146A (en) Test assistant system for logical design process
Konnov et al. On the completeness of bounded model checking for threshold-based distributed algorithms: Reachability
US5491639A (en) Procedure for verifying data-processing systems
Ulrich et al. High-speed concurrent fault simulation with vectors and scalars
JPH07287723A (ja) 指定パス活性化検出方法
US11188696B1 (en) Method, system, and product for deferred merge based method for graph based analysis pessimism reduction
Oh et al. Efficient logic-level timing analysis using constraint-guided critical path search
Benkoski et al. Timing verification by formal signal interaction modeling in a multi-level timing simulator
JP3144617B2 (ja) 論理回路の検証方法
Zhang et al. Logic verification of incomplete functions and design error location
JP3654941B2 (ja) 論理シミュレーション方法及び論理シミュレータ
JP2785708B2 (ja) 論理シミュレーション方法
JP2844716B2 (ja) 順序回路の論理照合方式
JP2560608B2 (ja) マイクロプログラムチェックシステム
JPH09198417A (ja) 論理シミュレータ
JP2902972B2 (ja) 論理シミュレータ及びハードウエア記述変換装置
JPH0195365A (ja) クリティカルパスの解析処理方式
Buschke et al. An approach to understanding evaluation of simulation results as an integrated task
JPH07129636A (ja) 論理シミュレーション方法
JPH05189513A (ja) ディレイ考慮論理シミュレーション方法
JP2658857B2 (ja) 等価故障抽出方法及び装置
Panetta et al. Simulation Techniques for Modeling Large System Designs
JP3032874B2 (ja) 等価回路作成方法および論理シミュレーション方法
Uchihira PQL: Modal logic for compositional verification of concurrent programs