JP2003233638A - 非同期回路の検証方法およびそのプログラム - Google Patents

非同期回路の検証方法およびそのプログラム

Info

Publication number
JP2003233638A
JP2003233638A JP2002033686A JP2002033686A JP2003233638A JP 2003233638 A JP2003233638 A JP 2003233638A JP 2002033686 A JP2002033686 A JP 2002033686A JP 2002033686 A JP2002033686 A JP 2002033686A JP 2003233638 A JP2003233638 A JP 2003233638A
Authority
JP
Japan
Prior art keywords
input data
value
time
metastable state
internal array
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.)
Granted
Application number
JP2002033686A
Other languages
English (en)
Other versions
JP3759051B2 (ja
Inventor
Hiromichi Yamane
弘道 山根
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.)
Renesas Micro Systems Co Ltd
Original Assignee
Renesas Micro Systems Co 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 Renesas Micro Systems Co Ltd filed Critical Renesas Micro Systems Co Ltd
Priority to JP2002033686A priority Critical patent/JP3759051B2/ja
Publication of JP2003233638A publication Critical patent/JP2003233638A/ja
Application granted granted Critical
Publication of JP3759051B2 publication Critical patent/JP3759051B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 【課題】クロック信号の周期が異なる複数の順序回路の
出力データが相互に順序回路の入力データとなる回路構
成の動作を検証する方法を改善する。 【解決手段】非同期回路を構成する順序回路に、クロッ
ク信号の1周期内のイベント時刻で発生する入力データ
値を前記順序回路の内部配列要素に保持する処理S11
と、クロック信号のアクティブエッジ検出時(処理S1
2)に入力データの値が1時刻前に内部配列要素に保持
した値と異なるか否かで出力データがメタステーブル状
態であると定義する処理S16と、そのメタステーブル
状態を発生する処理S17と、クロック信号がアクティ
ブな時の入力データの変化の有無により、保持した内部
配列要素の任意の1時刻における入力データを出力する
処理S22と、一定期間メタステーブル状態の値を出力
する処理S18とを設けたタイミング検証処理ステップ
を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は非同期回路の検証方
法およびそのプログラムに係わり、特に非同期回路の検
証を言語レベルの機能シミュレーションで行う際に、ク
ロック信号の周期が異なる複数の順序回路の出力データ
が組み合わせ回路などを介して相互に順序回路の入力デ
ータとなる回路構成の動作を検証する方法を改善した非
同期回路の検証方法およびそのプログラムに関する。
【0002】
【従来の技術】近年、半導体素子の微細化技術の進展に
伴い、その半導体素子で構成する半導体装置(LSI)
も大規模化しており、その半導体装置における論理回路
設計時に、論理動作およびタイミング検証ツールとして
言語レベルの機能シミュレーションが適用されている。
【0003】本発明に関する非同期回路の検証方法は、
クロック信号の周期が異なる複数の順序回路の出力デー
タが組み合わせ回路などを介して相互に順序回路の入力
データとなる回路構成の動作を検証するために用いられ
るものである。このような非同期回路の検証方法は、一
般的にゲートレベルのネットリストを用いて、タイミン
グを考慮した論理シミュレーション、例えばイベントド
リブン方式と呼ばれるシミュレーションによりセットア
ップやホールドタイミングを検証することで行われてい
る。
【0004】イベントドリブン方式は、クロック信号や
データ信号等の論理レベルに変化を回路の論理状態に影
響を与えるイベントとして記憶手段に登録しておき、こ
のイベントを順次に読み出しながらデータの内容を更新
する。
【0005】このデータを入力とする検証対象回路につ
いて演算処理を行いその出力信号に変化があれば遅延量
を勘案しながら順次イベントとして登録し、シミュレー
ションを実行するというものである。
【0006】一方、回路設計はHDLなどの言語で機能
設計から行われるため、言語レベルの機能シミュレーシ
ョンにおいて非同期検証を行うことが要求されている。
【0007】この要求に応えるための従来の非同期回路
の検証方法の一例のフローチャートを示した図9を参照
すると、処理S61でクロック信号のアクティブエッジ
を検出後、処理S62で入力データ変化を検出し、さら
に処理S63でメタステーブル状態の検出を行い、それ
らの条件にしたがって検出されたら処理S64でメタス
テーブルフラグをfalseに設定し、処理S65で入
力データの保持、処理S66でメタステーブル状態を発
生し、処理67でメタステーブル状態を出力する。
【0008】処理63でメタステーブル状態が検出され
なければ処理S68でメタステーブル状態のフラグをt
rueに設定し、処理S62で入力データの変化が検出
されなければ処理S69でメタステーブル状態フラグを
falseに設定し、処理S70で入力データを保持
し、処理S71で保持データを出力する。
【0009】処理S61でクロック信号のアクティブエ
ッジを検出しなければ処理S72でメタステーブル状態
フラグをfalseに設定し、処理S71へ進む。
【0010】これらの処理を行うことで、順序回路の動
作において、クロック信号がアクティブな時の入力デー
タが変化したか否かによりメタステーブルを定義する処
理と一定期間メタステーブル状態の値を出力する処理を
行っている。
【0011】上述した処理により、順序回路に対してク
ロック信号のアクティブエッジ検出毎に強制的にメタス
テーブル状態を一時刻発生させることで、非同期回路で
発生する順序回路の不具合動作を各クロック信号の周期
や位相の条件を様々に変更すること無く、タイミングを
考慮したシミュレーション同様に再現することにより検
証できる。
【0012】なお、メタステーブル(meta−sta
ble)状態とは、ラッチやフリップフロップの入力信
号において、セットアップ時間やホールド時間が守られ
なかった場合に出力信号が不安定な状態になることであ
り、外部からの非同期信号をフリップフロップで同期化
するような場合には、入力信号はどこで変化するかわか
らないので、メタステーブルの発生を防ぐことはできな
い。しかし、メタステーブルの発生現象を見れば、メタ
ステーブルが発生しても構わない回路構成にすることは
可能である。
【0013】
【発明が解決しようとする課題】上述した従来の検証方
法では以下のような欠点がある。すなわち、後述する本
発明の検証方法を適用する一例の回路図を示した図3の
ような回路構成の場合、順序回路を構成する内部配列要
素であるフリップフロップFF1の出力値を、同じクロ
ック信号(CLK2)でトリガされた同一データ信号と
する順序回路間(FF2とFF3の関係)では、ゲート
レベルのネットリストを用いたタイミングを考慮したシ
ミュレーションにおけるFF1の出力Q1からそれぞれ
のデータ入力D2、D3までは信号伝達の遅延時間差を
設けてある。
【0014】その遅延時間差による、FF2とFF3と
の順序回路間で発生する入力データ信号とクロック信号
(CLK2)とのタイミング問題、すなわち、FF2と
FF3の順序回路で保持される値が異なるという不具合
が、非同期回路における順序回路の不具合動作として発
生する。
【0015】前述した図9の従来技術の検証方法では、
FF2とFF3の順序回路にはFF1の出力Q1とし
て、必ず同一データ信号の値が保持されるため、FF2
とFF3の順序回路間の不具合動作が検出出来ない欠点
があった。
【0016】本発明の目的は、上述した従来の欠点に鑑
みなされたものであり、非同期回路の順序回路を構成す
る内部配列要素のフリップフロップFF1の出力値を、
同じクロック信号(CLK2)でトリガされた同一デー
タ信号とする順序回路間で発生する入力データ信号とク
ロック信号(CLK2)との信号伝達の遅延時間差によ
るタイミング問題、すなわち、FF2とFF3の順序回
路で保持される値が異なるという不具合動作を検出出来
る検証方法を提供することにある。
【0017】
【課題を解決するための手段】本発明の非同期回路の検
証の特徴は、検証対象の順序回路で構成する非同期回路
に対し言語レベルの機能シミュレーション装置を用いて
行う非同期回路の検証方法において、入力データの値を
複数時刻分保持するために前記順序回路に予め設けた内
部配列要素に対し、1クロック周期内におけるイベント
発生時刻毎に入力データを一時記憶させ、クロック信号
のアクティブエッジ検出時に前記入力データが前記アク
ティブエッジ検出の1時刻前の値に対して変化していれ
ばメタステーブル状態と定義してそのメタステーブル状
態の値を発生して出力し、次の一時刻後に、前記イベン
ト発生時刻毎に一時記憶した入力データのうち任意の1
時刻の入力データを出力することにある。
【0018】また、前記クロック信号のアクティブエッ
ジ検出時に一定期間メタステーブル状態の値を出力する
とともに、前記入力データとして取り込む値を、クロッ
ク信号の1周期内における任意の1時刻の値とする。
【0019】本発明の非同期回路の検証方法の他の特徴
は、検証対象の順序回路で構成する非同期回路に対し言
語レベルの機能シミュレーション装置を用いて行う非同
期回路の検証方法において、入力データの値を複数時刻
分保持するために前記順序回路予め設けた内部配列要素
に対し、クロック信号の1周期内のイベント時刻で発生
する入力データ値を保持させる処理と、前記クロック信
号のアクティブエッジ検出時に前記入力データの値が1
時刻前に前記内部配列要素に保持した値と異なる出力デ
ータのときメタステーブル状態であると定義する処理
と、そのメタステーブル状態を発生する処理と、前記ク
ロック信号がアクティブエッジの時の前記入力データの
変化の有無により、保持した前記内部配列要素の任意の
1時刻における入力データを出力する処理と、一定期間
前記メタステーブル状態の値を出力する処理とを設けた
タイミング検証処理ステップを備えることにある。
【0020】また、前記タイミング検証処理ステップ
を、同一クロックタイミングに同期して同一データ信号
が少なくとも1つの前記内部配列要素から他の複数の前
記内部配列要素に共通に与えられる構成の前記順序回路
に適用することができる。
【0021】さらに、前記内部配列要素の出力データを
共通入力する他の複数の前記内部配列要素それぞれに異
なる伝達遅延時間で前記出力データを与えて、複数の前
記内部配列要素間でそれぞれの一時記憶する値を強制的
に異なる状態にし、同一クロックタイミングでトリガさ
れる前記内部配列要素に擬似的に誤動作をさせてタイミ
ングによる不具合箇所の事前検証を行うこともできる。
【0022】さらにまた、前記順序回路の検証動作を用
いた非同期回路の検証を機能シミュレーションで行うこ
ともできる。
【0023】本発明の非同期回路の検証方法の更に他の
特徴は、検証対象の順序回路で構成する非同期回路に対
し言語レベルの機能シミュレーション装置を用いて行う
非同期回路の検証方法において、クロック信号の1周期
内のn(n<(クロック周期のイベント数))時刻前の
入力データを複数時刻分保持するために前記順序回路に
予め設けた複数の内部配列要素に一時記憶する第1の処
理と、前記クロック信号のアクティブエッジを検出する
第2の処理と、前記アクティブエッジを検出したとき前
記入力データの変化を検出する第3の処理と、前記入力
データの値が1時刻前に前記内部配列要素に一時記憶し
た値と異なるときの出力データ状態であるメタステーブ
ル状態を検出する第4の処理と、前記メタステーブル状
態のフラグを設定する第5の処理と、任意の時刻m(m
はn時刻までの任意の1時刻)における入力データを第
1の変数に一時記憶させる第6の処理と、前記メタステ
ーブル状態を示す値を第2の変数に一時記憶させるメタ
ステーブル状態発生のための第7の処理と、前記第2の
変数に記憶された前記メタステーブル状態を示す値を出
力する第8の処理と、前記入力データが検出されないと
きの前記メタステーブル状態のフラグ設定処理後に実行
する入力データを前記第1の変数に一時記憶させる第9
の処理および前記クロック信号のアクティブエッジが検
出されないときの前記メタステーブル状態のフラグ設定
をする第10の処理それぞれの実行後、前記入力データ
が検出されないときに前記第1の変数に一時記憶された
入力データを出力する第11の処理とを備えることにあ
る。
【0024】また、前記第2の変数に一時記憶させる前
記メタステーブル状態を示す値を、一定の初期値により
疑似乱数によって設定することができる。
【0025】さらに、前記第2の変数に一時記憶させる
前記メタステーブル状態を示す値を、ユーザ指定の任意
の固定値によって設定することもできる。
【0026】さらにまた、ユーザが指定したクロック信
号でアクティブになる順序回路の前記内部配列要素を全
て抽出し対象となる前記内部配列要素をリストアップす
るアクティブ順序回路のリストアップ処理と、前記リス
トアップ処理でリストアップされた全ての前記内部配列
要素に対して前記第1から前記第11までの処理を実行
した後に、次の1イベント時刻に移る処理を全イベント
を対象に繰り返す全イベント繰り返し処理とを備えるこ
ともできる。
【0027】また、非同期回路を予め階層構造化した状
態で、ユーザが指定した階層下に含まれる全ての前記順
序回路の前記内部配列要素を抽出する階層内抽出処理
と、抽出した前記内部配列要素に対して前記リストアッ
プ処理および前記全イベント繰り返し処理を実行して対
象となる前記順序回路を階層名で選択してもよい。
【0028】さらに、前記階層下の前記順序回路の指定
は、前記階層化に含まれる全ての順序回路を対象として
もよい。
【0029】さらにまた、前記階層下の前記順序回路の
指定は、前記階層下を除く全ての順序回路を対象として
もよい。
【0030】また、前記階層化に含まれる全ての順序回
路および前記階層下を除く全ての順序回路を対象に指定
して特定の階層のみの指定をしてもよい。
【0031】また、同一クロックタイミングに応答して
同一データ信号が与えられる順序回路間で発生した入力
データ信号の伝達遅延時間差により前記順序回路間で保
持される値が異なる現象を、タイミングを考慮した論理
シミュレーションに準ずる状態で再現して検証してもよ
い。
【0032】
【発明の実施の形態】まず、本発明の概要を述べる。本
発明による非同期回路の検証方法およびそのプログラム
は、非同期回路を構成する順序回路の機能シミュレーシ
ョン上における動作として次のような処理を設けてい
る。
【0033】すなわち、クロック信号の1周期内のイベ
ント時刻で発生する入力データ値を内部配列要素に一時
記憶する処理と、メタステーブル状態を発生する処理を
設けてクロック信号の1周期内のイベント時刻で発生す
る入力データ値を内部配列要素に一時記憶する処理と、
クロック信号がアクティブな時の入力データ変化の有無
により、内部配列要素に保持したイベント時刻の入力デ
ータのうち任意の1時刻における入力データを出力する
処理と、メタステーブル状態を定義する処理と、一定期
間メタステーブル状態の値を出力する処理である。
【0034】ここでの内部配列要素とは、順序回路を構
成するFF1,FF2,FF3のそれぞれが持つD
[m]の配列要素のことであり、各FFの入力データD
inの値をm時刻分保持するための配列である。ただ
し、mは0〜n時刻の任意の1時刻を指す。すなわち、
FF一つに付き記憶変数一つを持ち、その一つの変数に
入る値は任意の数値(英文字も含み、2、4、8・・・
進数の場合もある)である。
【0035】また、FF1、FF2,FF3の動作は全
て同じで図1の処理フローになり、S0〜9、B1〜B
3の各処理の事象は独立である。
【0036】上述した順序回路の処理動作は、クロック
信号の1周期内のイベント時刻毎に入力データを順序回
路を構成するフリップフロップに予め設定した内部配列
要素に一時的に保持し、クロック信号のアクティブエッ
ジ検出時に入力データの値が一時刻前の値に対して変化
している場合、すなわち前述したように、ラッチやフリ
ップフロップの入力信号において、セットアップ時間や
ホールド時間が守られなかった場合に出力信号が不安定
な状態になるメタステーブル状態と定義し、メタステー
ブル状態の値を発生して出力する。
【0037】そして、次の一時刻後に先に内部配列要素
に保持した入力データのうち、任意の1時刻の入力デー
タを出力する。
【0038】上述した処理により、順序回路に対してク
ロック信号のアクティブエッジ検出毎に、強制的にメタ
ステーブル状態を一時刻間発生させるという従来の動作
に加え、入力データとして取り込む値を、クロック信号
の1周期内における任意の1時刻の値とする動作を行
う。
【0039】従って、前述した順序回路の動作を用いて
非同期回路の検証を機能シミュレーションで行うことに
より、非同期回路で発生する順序回路の不具合動作を各
クロック信号の周期や位相の条件を様々に変更すること
なく、タイミングを考慮したシミュレーション同様に再
現する。
【0040】また、同じクロック信号をトリガとして同
一データ信号が入力される順序回路間において発生す
る、入力データ信号の伝達遅延時間差によるタイミング
問題、すなわち、それらの順序回路間で保持される値が
異なる現象もタイミングを考慮したシミュレーション同
様に再現することにより検証が出来る。
【0041】これにより、シミュレーション時に必要な
テストベンチの記述や検証作業の単純化や、検証TAT
の短縮という効果が得られるものである。
【0042】以下、本発明の第1の実施の形態を、本発
明の順序回路の動作フローチャートを示した図1と、本
発明を実施するための一般的な機能シミュレータの主要
構成図を示した図2と、本発明の順序回路の検証方法を
適用する順序回路の一例を示した図3と併せて参照しな
がらさらに詳細に説明する。
【0043】図1に示したフローチャートは、前述した
図9に示す従来の順序回路の処理動作にさらに本発明の
動作を付加したものであり、図1において処理S11と
処理S16が新たに付加した処理動作である。
【0044】すなわち、本発明の順序回路の検証方法
は、クロック信号の1周期内のn時刻前の入力データを
一時記憶する入力データ保持処理S11と、クロック信
号のアクティブエッジ検出処理S12と、アクティブエ
ッジが検出された状態で、入力データが変化したかを検
出する入力データの変化検出処理S13と、入力データ
の変化が検出された状態で、メタステーブル状態が検出
されたか否かを検出するメタステーブル状態の検出処理
S14と、メタステーブル状態が検出されたときに、メ
タステーブル状態のフラグを設定するメタステーブル状
態フラグの設定処理S15と、任意の時刻m(但し、m
はn時刻までの任意の1時刻)における入力データを一
時記憶(入力データを変数dに保持)する処理S16
と、メタステーブル状態を変数metaに保持するメタ
ステーブル状態の発生処理と、変数metaの内容を変
数Qoutに移すメタステーブル状態の出力処理S18
と、メタステーブル状態の検出処理S14においてメタ
ステーブル状態が検出されなかった場合、メタステーブ
ル状態フラグをtrueに変更するメタステーブル状態
の設定処理S19と、入力データの変化検出処理S13
において入力データが検出されなかった場合、メタステ
ーブル状態フラグをfalseに変更するメタステーブ
ル状態の設定処理S20と、処理S20でメタステーブ
ル状態フラグをfalseに変更したあと、入力データ
を変数dに保持する入力データの保持処理S21と、変
数dに保持された入力データをQoutに出力する保持
データの出力処理S22と、アクティブエッジ検出処理
S12においてアクティブエッジが検出されなかった場
合、メタステーブル状態フラグをfalseに変更して
処理S21へ進むメタステーブル状態の設定処理S23
とを有する。
【0045】上述したフローチャートを適用する公知の
機能シミュレータの構成は、コンピュータ10と、検査
対象装置20を有し、コンピュータ10は、検査対象装
置からの要求されたデータまたは演算を開始するときに
レディ信号をアクティブにし、データの供給準備が終了
し、データが検証システムへ供給した後、レディ信号を
非アクティブにするとともに、所定の検証の実行を制御
する。
【0046】次に、第1の実施の形態の動作を説明す
る。
【0047】図1および図3を参照すると、図1におけ
る順序回路の動作説明のために、非同期回路の回路図を
図3で示している。この回路図は、順序回路としてFF
1、FF2、FF3および加算器ALU1から構成され
る。
【0048】FF1の入力データD1は、FF1の出力
データQ1に加算器ALU1で+1された値が入力さ
れ、FF2の入力データD2とFF3の入力データD3
にはFF1の出力データQ1が入力される。また、FF
1にはクロック信号CLK1が供給され、FF2、FF
3にはクロック信号CLK2が供給される。
【0049】順序回路のFF1の入出力信号は、クロッ
ク信号CLK1と、入力データD1と、出力データQ1
とし、順序回路のFF2、FF3の入出力信号は、クロ
ック信号CLK2、FF2への入力データD2、出力デ
ータQ2、FF3への入力データD3、出力データQ3
とする。
【0050】また、FF1のメタステーブル状態フラグ
MF1、FF2のメタステーブル状態フラグMF2、F
F3のメタステーブル状態フラグMF3とする。
【0051】この第1の実施の形態における検証動作
は、まず入力データ保持処理S11で現時刻の入力デー
タの値Dinを内部配列要素D[0]に保持する。内部配
列要素D[n]は、n(nは整数)個の配列要素があ
り、nは機能シミュレーションで用いる1クロック周期
内のイベント数よりも小さい値とする。
【0052】また、内部配列要素にFF1,FF2,F
F3への入力データ値を保持させる場合、時刻の経過と
ともにD[0]の値はD[1]へ、D[1]の値はD
[2]へ、D[n−1]の値はD[n]へとn時刻分の
値を保持する。
【0053】次に、クロック信号のアクティブエッジ検
出処理S12で、順序回路に入力されるクロック信号の
エッジ検出を行い、エッジが検出された場合(Yes)
は次の入力データの変化検出処理S13に移り、検出さ
れない場合(No)はメタステーブル状態フラグの設定
処理S23を行った後、保持データの出力処理S22を
行う。
【0054】入力データの変化検出処理S13では、順
序回路への入力データ信号の変化を検出し、変化が検出
された場合(Yes)は次段のメタステーブル状態検出
処理S14に移り、検出されない場合(No)はメタス
テーブル状態フラグの設定処理S20でメタステーブル
状態フラグをfalseに変更する。続いて入力データ
の保持処理S21で入力データの値D[0]を変数dに
移し、次の保持データの出力処理S22において変数d
に保持された入力データの値を出力する。
【0055】次に、メタステーブル状態の検出処理S1
4では、順序回路内で保持されているメタステーブル状
態フラグの値をチェックし、メタステーブル状態である
場合(true)、次段の処理S15でメタステーブル
状態フラグをfalseに設定する。
【0056】次に、処理S15でメタステーブル状態フ
ラグをfalseに設定した後、処理S16では、入力
データとして前述のS11で保持した内部配列要素D
[m]の任意要素mの値を変数dに保持し、処理S17
で乱数を用いてメタステーブル状態の値を発生して変数
metaに保持する。
【0057】そして最後に処理S18で変数metaの
メタステーブル状態の値を順序回路の出力Qoutに出
力する。また、メタステーブル状態フラグの値がメタス
テーブル状態でない場合(false)、処理S19で
メタステーブル状態フラグをtrueに設定した後、前
述同様の処理S16、処理S17、処理S18の処理を
順次行う。
【0058】処理S20、処理S23の処理は、前述の
処理S15同様に、メタステーブル状態フラグの値をメ
タステーブル状態でない場合(false)に設定する
もので、処理S21の処理は、前述の処理S16同様
に、順序回路への入力データDinの値を変数dに保持
する。処理S22での処理は、変数dに保持された値を
順序回路の出力Qoutに出力する。
【0059】これにより、処理S14のメタステーブル
状態検出処理後に、処理S16では、本発明の特徴であ
る、同じクロック信号でトリガされる同一データ信号を
入力データとする順序回路間に、互いに異なった入力デ
ータを保持する動作を実現する。処理S17、処理S1
8の一連の処理では、従来例の特徴であるクロック信号
がアクティブな状態で入力データの値が一時刻前の値に
対して変化がある場合のメタステーブル状態の値を出力
する動作を行う。
【0060】また、処理S13の入力データ変化検出処
理後の処理S20、処理S21、処理S22の一連の処
理によりクロック信号がアクティブな場合で入力データ
の値が一時刻前の値に対して変化がない場合の動作を行
い、処理S12のクロック信号アクティブエッジ検出処
理後の処理S23、処理S22の一連の処理によりクロ
ック信号が非アクティブな場合の動作を行うことで、メ
タステーブル状態の値を出力した後、次の一時刻後に内
部配列要素から保持された入力データの出力動作を行
う。
【0061】次に、図3の非同期回路の回路図に図1の
順序回路の検証方法を適用した場合の動作を図4のタイ
ミングチャートを用いて説明する。
【0062】図4に示すように、順序回路のFF1への
クロック信号CLK1が3時刻毎に変化し、順序回路F
F2へのクロック信号CLK2が4時刻毎に変化するも
のとする。
【0063】すなわち、保持する時刻の幅は、それぞれ
のCLKの1周期(CLK1では6時刻分、CLK2で
は8時刻分)-1、以下で無ければ、シミュレーション
が成り立たないためである。1周期を超えると、1クロ
ック前の値も取り込むことになり正常な動作シミュレー
ションでなくなってしまうことになる。
【0064】実際には、この保持する幅は、遅延を考慮
したシミュレーションでの配線負荷などによる遅延を擬
似的にモデルしており、メタステーブル状態の幅(図4
では1時刻)は、FFのSETUP/HOLDのスペッ
クを擬似的にモデルしている。
【0065】なお、以下の説明では、説明を容易にする
ため、図1の処理が一巡してメタステーブルフラグMF
1,MF2,MF3がアクティブになっている状態とす
る。
【0066】この場合、順序回路のFF1は、FF1の
Qoutの出力Q1に加算器ALU1で+1した値を入
力データD1として入力し、その3時刻間の値、つまり
時刻0の値(=1)、時刻1の値(=1)、時刻2の値
(=1)を内部配列要素に保持し(処理S11)、時刻
3のCLK1の立ち上がりエッジを検出するとその立ち
上がりタイミングで(処理S12)、FF1の内部配列
要素における任意時刻(=時刻2)の値(=1)を通常
値として選択した後、後述するように次の一時刻である
時刻4でQoutから出力Q1の値(=1)として出力
される(処理S22)。
【0067】この時、時刻3において、FF1のメタス
テーブル状態フラグMF1の値は、CLK1の立ち上が
りエッジがアクティブな状態、つまりアクティブエッジ
で(処理S12)かつ入力データD1の値が一時刻前の
値、すなわち、FF1の初期状態の値(=0)に対して
変化(=1)があるが(処理S13)、初期状態では、
MF1の値はfalseのため、処理S14でメタステ
ーブル状態検出は「No」(falseを検出)するこ
とになり、処理S19でtrue(=1)になり、FF
1の出力端Qoutから出力Q1にメタステーブル状態
の値(=6)を出力する(処理S18)。
【0068】時刻4ではCLK1の立ち上がりエッジで
はない非アクティブな状態になるため(処理S12)、
メタステーブル状態フラグMF1をfalse(=0)
に変更し(処理S23)、前述したように出力Q1とし
て、内部配列要素で選択された任意時刻(=時刻2)の
値(=1)を出力する(処理S22)。
【0069】同様に、時刻9、10、および時刻15、
16、時刻21、22において1クロック周期間にメタ
ステーブル状態フラグMF1の値はtrue(=1)に
なり(処理S19)、FF1の出力端Qoutの出力Q
1においてメタステーブル状態の値、例えばここでは
「6」を出力後、内部配列要素に保持された3時刻間の
うち、任意の一時刻の値を通常値として出力する(処理
S22)。
【0070】なお、このタイミングチャートの例では示
していないが、処理S12,処理S13および処理S1
4でいずれもYesを選択した場合は、処理S15にお
いてメタステーブル状態フラグMF1の値はfalse
(=0)になる。
【0071】次に、順序回路の内部配列素子FF2にお
いてもFF1と同様に、FF1の出力Q1と同じ値であ
る入力データD2の3時刻間の値、つまり時刻1の値
(=0)、時刻2の値(=0)、時刻3の値(=6)を
内部配列要素に保持し(処理S11)、時刻4のCLK
2の立ち上がりエッジを検出するとその立ち上がりタイ
ミングで(処理S12)FF2の内部配列要素における
任意時刻(=時刻1)の値(=0)を通常値として選択
した後、次の一時刻である時刻5でFF2の出力端Qo
utから出力Q2の値(=0)として出力される(処理
S22)。
【0072】この時、前述のFF1同様に、時刻4にお
いてFF2のメタステーブル状態フラグMF2の値は、
CLK2の立ち上がりエッジがアクティブな状態で(処
理S12)かつ、入力データD2の値が一時刻前の値、
すなわち、FF2の初期状態(=0)の値に対して変化
(=6)があるため(処理S13)、true(=1)
になり(処理S14および処理S19)、処理S16,
処理S17を経てFF2の出力端Qoutから出力Q2
にメタステーブル状態の値(=3)を出力する(処理S
18)。
【0073】時刻5では、CLK2の立ち上がりエッジ
ではない非アクティブ状態になるため(処理S12)、
Q2として、メタステーブル状態フラグMF2をfal
se(=0)に変更し(処理S23)、内部配列要素で
選択された任意時刻(=時刻1)の値(=0)を出力す
る(処理S22)。
【0074】時刻12、13、および時刻20、21に
おいては、CLK2が立ち上がるアクティブな状態の時
にD2の値に変化がないため(処理S13)、1クロッ
ク周期間にメタステーブル状態フラグMF2の値はfa
lse(=0)になり(処理S20)、Qoutの出力
Q2において、内部配列要素に保持(処理S21)され
た3時刻間(時刻9,10,11)のうち、最後に保持
された時刻(=11)の値を通常値として出力する(処
理S22)。
【0075】最後に、順序回路FF3においても、前述
のFF1、FF2同様な動作を行い、FF1の出力Q1
と同じ値である入力データD3の3時刻間の値を内部配
列要素に保持し(処理S11)、時刻4のCLK2の立
ち上がりエッジを検出するとその立ち上がりタイミング
で(処理S12)FF3の内部配列要素における任意時
刻(=時刻3)の値(=6)を通常値として選択した
後、次の一時刻である時刻5でQoutから出力Q3の
値(=6)として出力される(処理S22)。
【0076】また、前述のFF2と同様に、時刻4にお
いてFF3のメタステーブル状態フラグMF3の値は、
CLK2の立ち上がりエッジがアクティブな状態で(処
理S12)かつ、D3の値が一時刻前の値、すなわちF
F3の初期状態の値に対して変化(=6)があるため
(処理S13)、true(=1)になり(処理S1
9)、処理S16および処理S17を経てQoutから
Q3にメタステーブル状態の値(=7)を出力する(処
理S18)。
【0077】そして時刻5でCLK2が立ち上がりエッ
ジではない非アクティブ状態になるため(処理S1
2)、Q3として、メタステーブル状態フラグMF2を
false(=0)に変更し(処理S23)、後述する
理由から、時刻1の値(=1)ではなく、内部配列要素
で選択された任意時刻(=時刻3)の値(=6)を出力
する(処理S22) すなわち、時刻4における順序回路FF2とFF3は、
CLK2の立ち上がりエッジにより同一データ信号であ
るFF1の出力Q1の値を入力データD2、D3として
取り込むが、それぞれ3時刻間の値として保持された内
部配列要素から任意時刻で選択された値は、FF2にお
いては時刻1の値(=0)、FF3においては時刻3の
値(=6)のように異なる値であるため、FF2とFF
3の順序回路間で保持される値が異なる現象を起こした
ことになる。
【0078】このことは、時刻4のタイミングでFF2
への入力データD2の信号伝播遅延とFF3への入力デ
ータD3の信号伝播遅延での時間差をシミュレーション
し、同じクロック信号でトリガされる同一データ信号が
入力される順序回路間においてタイミング問題による不
具合動作が起こることを示している。
【0079】また、FF3が通常値として選択したD3
の値(=6)は、順序回路FF1で発生したメタステー
ブル状態の値であるため、FF3には本来の期待される
入力データ、すなわち時刻4における出力Q1の値(=
1)と異なり、時刻5から時刻12までこの非同期回路
は不具合動作を起こしたことになり、時刻3のCLK1
の変化と、時刻4のCLK2の変化はこの非同期回路に
おいて不具合動作が起こるタイミングであることを示
し、従来技術の検証方法の動作も問題無く実現されてい
る。
【0080】上述したメタステーブル状態に値は、任意
の固定値であり、後述する第3の実施の形態(図6)の
ように固定値“X”でもよい。
【0081】実際には、データDinが取りうる範囲の
値のうちの任意の値になるが、それには限定されず、ま
た本発明の効果も変わらない。
【0082】例えば、FFが1bitの順序回路とすれ
ば、取りうる値は0,1になるということであり、現実
に実装するシミュレータの制限として2以上の値は定義
できない場合が多い。ただし、1つの順序回路が4bi
tのデータ長を処理する場合は、0〜15の値を取るこ
とになる。
【0083】上述したように、順序回路の動作として、
クロック信号の1周期間の入力データ信号を保持し、1
周期内の任意の1時刻の値を選択して出力することによ
り、同じクロック信号でトリガされる順序回路間に擬似
的に入力データ信号の伝達遅延時間差によるタイミング
問題を考慮した動作を行う。
【0084】また、従来例の動作として、アクティブエ
ッジ検出時に入力データの値が、一時刻前の値に対して
変化している場合、メタステーブル状態と定義し、メタ
ステーブル状態の値を発生して出力し、次の一時刻後に
前述の動作により入力データを出力して順序回路に対し
てクロック信号のアクティブエッジ毎に強制的にメタス
テーブル状態を一時刻間発生させるという動作を行う。
【0085】従って、この順序回路の動作を用いて非同
期回路の検証を機能シミュレーションで行うことによ
り、同じクロック信号でトリガされる順序回路間におい
て発生する、入力データ信号の伝達遅延時間差によるタ
イミング問題を含む回路構成に対しても、非同期回路で
発生する順序回路の不具合動作を各クロック信号の周期
や位相の条件を様々に変更して動作を確認することで検
証することなく、タイミングを考慮したシミュレーショ
ン同様に不具合動作を再現することにより検証が出来
る。
【0086】これにより、シミュレーション時に必要な
テストベンチの記述や検証作業の単純化や、検証TAT
の短縮という効果が得られる。
【0087】なお、上述した実施の形態では、クロック
信号のアクティブエッジとして立ち上がり変化としてい
るが、立ち下がりの変化の場合も同様である。
【0088】また、非同期回路の構成として、クロック
信号のアクティブエッジが、立ち上がり変化のものと立
ち下がり変化の順序回路が混在しても、上述した実施の
形態と同様な非同期回路の検証の効果が得られる。
【0089】次に、本発明の第2の実施の形態を説明す
る。
【0090】この第2の実施の形態において、その基本
的構成は第1の実施の形態と同様である。すなわち、図
1に示す本発明の順序回路の検証フローチャートにおい
て、メタステーブル状態の発生処理S17におけるメタ
ステーブル状態の発生についてさらに工夫したものであ
る。
【0091】その構成を示した図5を参照すると、メタ
ステーブル状態の発生処理S17は、メタステーブル状
態の値を一定の初期値による擬似乱数にて設定し、変数
metaに保持する機能を追加したものである。
【0092】一定の初期値による擬似乱数は、一般的に
乱数値が周期的なパターンを持つため、本発明の順序回
路に用いると、メタステーブル状態の値は、検証対象で
ある非同期回路動作、すなわち、適用すると、回路内の
順序回路の個数や動作する順番が変わらない限り同じ値
になる。
【0093】この第2の実施の形態による非同期回路の
検証を実施した場合、対象となる非同期回路や動作のた
めのシミュレーションパターンが同じであれば、何度実
行しても機能シミュレーション結果が同じになるため、
再現性を必要とする検証作業において効果がある。
【0094】従って、前述の順序回路の動作を用いて非
同期回路の検証を機能シミュレーションで行うことによ
り、非同期回路で発生する順序回路の不具合動作を各ク
ロック信号の周期や位相の条件を様々に変更することな
く、タイミングを考慮したシミュレーション同様に再現
する。
【0095】また、同じクロック信号をトリガとして同
一データ信号が入力される順序回路間において発生する
入力データ信号の伝達遅延時間差によるタイミング問
題、すなわち、それらの順序回路間で保持される値が異
なる現象もタイミングを考慮したシミュレーション同様
に再現することにより検証が出来る。
【0096】これにより、シミュレーション時に必要な
テストベンチの記述や検証作業の単純化や、検証TAT
の短縮という効果が得られるものである。
【0097】次に、本発明の第3の実施の形態を説明す
る。
【0098】上述した第2の実施の形態では、メタステ
ーブル状態の値を乱数値にて設定することにより、メタ
ステーブル状態の値が伝播することによる非同期回路の
動作の不具合検証の網羅性を高める効果を得ているが、
この値をユーザ任意の固定値とすることで、機能シュミ
レーション結果に非同期回路の動作不具合をマーキング
することも可能である。
【0099】そのための第3の実施の形態の構成を示し
た図5を参照すると、メタステーブル状態の発生処理S
17は、メタステーブル状態の値を、ユーザ指定の任意
の固定値による擬似乱数にて設定し、変数metaに保
持する機能を追加したものである。
【0100】つまり、メタステーブル状態の発生として
ユーザ指定の任意の固定値を設定している。これにより
対象の非同期回路内の順序回路に対して、メタステーブ
ル状態が発生する時刻や発生した順序回路の特定が可能
になり、非同期回路の動作不具合の作り込みの解析が容
易に行える効果がある。
【0101】この実施の形態においても、前述の順序回
路の動作を用いて非同期回路の検証を機能シミュレーシ
ョンで行うことにより、非同期回路で発生する順序回路
の不具合動作を各クロック信号の周期や位相の条件を様
々に変更することなく、タイミングを考慮したシミュレ
ーション同様に再現する。
【0102】また、同じクロック信号をトリガとして同
一データ信号が入力される順序回路間において、それら
の順序回路間で保持される値が異なる現象もタイミング
を考慮したシミュレーション同様に再現することにより
検証が出来る。
【0103】これにより、シミュレーション時に必要な
テストベンチの記述や検証作業の単純化や、検証TAT
の短縮という効果が得られるものである。
【0104】次に、本発明の第4の実施の形態を説明す
る。
【0105】この第4の実施の形態では、本発明の順序
回路の検証方法を適用する非同期回路に対して、回路内
の対象となる順序回路を選択する処理を追加したもので
ある。すなわち、本発明の特徴としてクロック信号の1
周期内のイベント時刻で発生する入力データ値を、内部
配列要素に保持する機能を有するが、これにより、検証
の対象となる非同期回路の規模が大きくなると、機能シ
ミュレータの内部に保持する状態値が膨大になることが
予想され、そのため機能シミュレーション速度の著しい
低下やシミュレータ動作のためのリソース不足により実
行不可能に陥る危険性が予測される。
【0106】第4の実施の形態のフローチャートを示し
た図7を参照すると、処理の最初に新規に追加した処理
であり、ユーザが指定したクロック信号でアクティブに
なる順序回路を全て抽出し、対象となる順序回路をリス
トアップする順序回路の抽出処理S41と、FF[i]
をi=0にクリアする処理S42と、FF[i]に対し
て図1の検証フローを実施する処理S43と、FF
[i]をi=i+1で1個ずつカウントアップし次のF
F[i]に順次検証フローを実施し、i=kに達するま
で繰り返えす処理S45と、i=kになり、全イベント
が終了するまで処理S42から繰り返す処理S46を有
する。
【0107】すなわち、本実施の形態の処理は、機能シ
ミュレータの1イベント時刻毎に処理S43〜処理S4
5のループ処理にて、リストアップされた順序回路全て
に対し図1の動作フローを行い、全ての順序回路の処理
が完了したら次の1イベント時刻に移る。
【0108】これにより、本発明の順序回路の適用をユ
ーザ指定のクロック信号ラインのものに限定することが
出来ので、本発明で生じる機能シミュレータの内部に保
持する状態値を低減する効果が得られる。
【0109】また、検証対象の非同期回路部分は、クロ
ック信号ライン単位で容易にユーザ指定出来るため、本
発明本来のテストベンチの記述や検証作業の単純化を損
なうことがない。
【0110】この実施の形態においても、前述の順序回
路の動作を用いて非同期回路の検証を機能シミュレーシ
ョンで行うことにより、非同期回路で発生する順序回路
の不具合動作を各クロック信号の周期や位相の条件を様
々に変更することなく、タイミングを考慮したシミュレ
ーション同様に再現する。
【0111】また、同じクロック信号をトリガとして同
一データ信号が入力される順序回路間において、それら
の順序回路間で保持される値が異なる現象もタイミング
を考慮したシミュレーション同様に再現することにより
検証が出来る。
【0112】これにより、シミュレーション時に必要な
テストベンチの記述や検証作業の単純化や、検証TAT
の短縮という効果が得られるものである。
【0113】次に、本発明の第5の実施の形態を説明す
る。
【0114】本発明の第5の実施の形態の構成例を示し
た図8を参照するとす。本実施の形態は、前述した第4
の実施の形態にさらに回路内の対象となる順序回路を選
択する処理として、階層名による処理S51を追加した
検証フローチャートである。
【0115】処理S51において、ユーザが指定した階
層下にある順序回路を全て抽出し、対象となる順序回路
をリストアップし、次に前述した第4の実施の形態で示
した図7の処理S41〜S46を行う。
【0116】この階層下の順序回路の指定方法は、その
階層下に含まれる全ての順序回路を対象にする方法と、
その階層下を除く全ての順序回路を対象にする方法をそ
れぞれ行うことで、適用する非同期回路の階層構造が複
雑な場合でも、特定の階層のみの指定が出来るようにな
る。
【0117】これにより、クロック信号で対象となる順
序回路を指定しても、まだ対象となる順序回路の数が多
い場合、適用する非同期回路の設計を階層構造化するこ
とで、検証範囲を階層単位で絞り込むことが出来るの
で、さらなる機能シミュレータの内部に保持する状態値
の低減と、検証範囲を絞り込むことにより検証作業が容
易になるという効果がある。
【0118】この実施の形態においても、前述の順序回
路の動作を用いて非同期回路の検証を機能シミュレーシ
ョンで行うことにより、非同期回路で発生する順序回路
の不具合動作を各クロック信号の周期や位相の条件を様
々に変更することなく、タイミングを考慮したシミュレ
ーション同様に再現する。
【0119】また、同じクロック信号をトリガとして同
一データ信号が入力される順序回路間において、それら
の順序回路間で保持される値が異なる現象もタイミング
を考慮したシミュレーション同様に再現することにより
検証が出来る。
【0120】これにより、シミュレーション時に必要な
テストベンチの記述や検証作業の単純化や、検証TAT
の短縮という効果が得られるものである。
【0121】
【発明の効果】上述したように、本発明の検証方法を適
用することにより、機能シミュレーション時に、非同期
回路で発生する順序回路の不具合動作を各クロック信号
の周期や位相の条件を様々に変更することなく、タイミ
ングを考慮したシミュレーション同様に再現する。
【0122】また、同じクロック信号をトリガとして同
一データ信号が入力される順序回路間において、それら
の順序回路間で保持される値が異なる現象もタイミング
を考慮したシミュレーション同様に再現することにより
検証が出来る。
【0123】したがって、シミュレーション時に必要な
テストベンチの記述や検証作業の単純化や、検証TAT
の短縮という効果が得られるものである。
【図面の簡単な説明】
【図1】本発明の第1の実施形態における順序回路の動
作フローチャートである。
【図2】本実施形態を適用する一般的な機能シミュレー
タの構成図である。
【図3】本発明の動作説明のための非同期回路の回路図
である。
【図4】本発明の動作説明のためのタイミングチャート
である。
【図5】本発明の第2の実施形態におけるメタステーブ
ル状態の発生フローチャートである。
【図6】本発明の第3の実施形態におけるメタステーブ
ル状態の発生フローチャートである。
【図7】本発明の第4の実施形態における動作フローチ
ャートである。
【図8】本発明の第5の実施形態における動作フローチ
ャートである。
【図9】従来の順序回路の一例の動作フローチャートで
ある。
【符号の説明】
ALU1 加算器 FF1,FF2,FF3 内部配列要素 CLK1,CLK2 クロック信号 D1,D2,D3 入力データ

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 検証対象の順序回路で構成する非同期回
    路に対し言語レベルの機能シミュレーション装置を用い
    て行う非同期回路の検証方法において、入力データの値
    を複数時刻分保持するために前記順序回路に予め設けた
    内部配列要素に対し、1クロック周期内におけるイベン
    ト発生時刻毎に入力データを一時記憶させ、クロック信
    号のアクティブエッジ検出時に前記入力データが前記ア
    クティブエッジ検出の1時刻前の値に対して変化してい
    ればメタステーブル状態と定義してそのメタステーブル
    状態の値を発生して出力し、次の一時刻後に、前記イベ
    ント発生時刻毎に一時記憶した入力データのうち任意の
    1時刻の入力データを出力することを特徴とする非同期
    回路の検証方法。
  2. 【請求項2】 前記クロック信号のアクティブエッジ検
    出時に一定期間メタステーブル状態の値を出力するとと
    もに、前記入力データとして取り込む値を、クロック信
    号の1周期内における任意の1時刻の値とする請求項1
    記載の非同期回路の検証方法。
  3. 【請求項3】 検証対象の順序回路で構成する非同期回
    路に対し言語レベルの機能シミュレーション装置を用い
    て行う非同期回路の検証方法において、入力データの値
    を複数時刻分保持するために前記順序回路予め設けた内
    部配列要素に対し、クロック信号の1周期内のイベント
    時刻で発生する入力データ値を保持させる処理と、前記
    クロック信号のアクティブエッジ検出時に前記入力デー
    タの値が1時刻前に前記内部配列要素に保持した値と異
    なる出力データのときメタステーブル状態であると定義
    する処理と、そのメタステーブル状態を発生する処理
    と、前記クロック信号がアクティブエッジの時の前記入
    力データの変化の有無により、保持した前記内部配列要
    素の任意の1時刻における入力データを出力する処理
    と、一定期間前記メタステーブル状態の値を出力する処
    理とを設けたタイミング検証処理ステップを備えること
    を特徴とする非同期回路の検証方法。
  4. 【請求項4】 前記タイミング検証処理ステップを、同
    一クロックタイミングに同期して同一データ信号が少な
    くとも1つの前記内部配列要素から他の複数の前記内部
    配列要素に共通に与えられる構成の前記順序回路に適用
    する請求項3記載の非同期回路の検証方法。
  5. 【請求項5】 前記内部配列要素の出力データを共通入
    力する他の前記内部配列要素それぞれに任意の伝達遅延
    時間で前記出力データを与えて、前記内部配列要素間で
    それぞれの一時記憶する値を強制的に異なる状態にし、
    同一クロックタイミングでトリガされる前記内部配列要
    素に擬似的に誤動作をさせてタイミングによる不具合箇
    所の事前検証を行う請求項1又は2記載の非同期回路の
    検証方法。
  6. 【請求項6】 前記順序回路の検証動作を用いて非同期
    回路の検証を機能シミュレーションで行う請求項5記載
    の非同期回路の検証方法。
  7. 【請求項7】 検証対象の順序回路で構成する非同期回
    路に対し言語レベルの機能シミュレーション装置を用い
    て行う非同期回路の検証方法において、クロック信号の
    1周期内のn(n<(クロック周期のイベント数))時
    刻前の入力データを複数時刻分保持するために前記順序
    回路に予め設けた複数の内部配列要素に一時記憶する第
    1の処理と、前記クロック信号のアクティブエッジを検
    出する第2の処理と、前記アクティブエッジを検出した
    とき前記入力データの変化を検出する第3の処理と、前
    記入力データの値が1時刻前に前記内部配列要素に一時
    記憶した値と異なるときの出力データ状態であるメタス
    テーブル状態を検出する第4の処理と、前記メタステー
    ブル状態のフラグを設定する第5の処理と、任意の時刻
    m(mはn時刻までの任意の1時刻)における入力デー
    タを第1の変数に一時記憶させる第6の処理と、前記メ
    タステーブル状態を示す値を第2の変数に一時記憶させ
    るメタステーブル状態発生のための第7の処理と、前記
    第2の変数に記憶された前記メタステーブル状態を示す
    値を出力する第8の処理と、前記入力データが検出され
    ないときの前記メタステーブル状態のフラグ設定処理後
    に実行する入力データを前記第1の変数に一時記憶させ
    る第9の処理および前記クロック信号のアクティブエッ
    ジが検出されないときの前記メタステーブル状態のフラ
    グ設定をする第10の処理それぞれの実行後、前記入力
    データが検出されないときに前記第1の変数に一時記憶
    された入力データを出力する第11の処理とを備えるこ
    とを特徴とする非同期回路の検証方法。
  8. 【請求項8】 前記第2の変数に一時記憶させる前記メ
    タステーブル状態を示す値を、一定の初期値により疑似
    乱数によって設定する請求項7記載の非同期回路の検証
    方法。
  9. 【請求項9】 前記第2の変数に一時記憶させる前記メ
    タステーブル状態を示す値を、ユーザ指定の任意の固定
    値によって設定する請求項7記載の非同期回路の検証方
    法。
  10. 【請求項10】 ユーザが指定したクロック信号でアク
    ティブになる順序回路の前記内部配列要素を全て抽出し
    対象となる前記内部配列要素をリストアップするアクテ
    ィブ順序回路のリストアップ処理と、前記リストアップ
    処理でリストアップされた全ての前記内部配列要素に対
    して前記第1から前記第11までの処理を実行した後
    に、次の1イベント時刻に移る処理を全イベントを対象
    に繰り返す全イベント繰り返し処理とを備える請求項7
    記載の非同期回路の検証方法。
  11. 【請求項11】 非同期回路を予め階層構造化した状態
    で、ユーザが指定した階層下に含まれる全ての前記順序
    回路の前記内部配列要素を抽出する階層内抽出処理と、
    抽出した前記内部配列要素に対して前記リストアップ処
    理および前記全イベント繰り返し処理を実行して対象と
    なる前記順序回路を階層名で選択する請求項10記載の
    非同期回路の検証方法。
  12. 【請求項12】 前記階層下の前記順序回路の指定は、
    前記階層化に含まれる全ての順序回路を対象とする請求
    項11記載の非同期回路の検証方法。
  13. 【請求項13】 前記階層下の前記順序回路の指定は、
    前記階層下を除く全ての順序回路を対象とする請求項1
    1記載の非同期回路の検証方法。
  14. 【請求項14】 前記階層化に含まれる全ての順序回路
    および前記階層下を除く全ての順序回路を対象に指定し
    て特定の階層のみの指定をする請求項11記載の非同期
    回路の検証方法。
  15. 【請求項15】 同一クロックタイミングに応答して同
    一データ信号が与えられる順序回路間で発生した入力デ
    ータ信号の伝達遅延時間差により前記順序回路間で保持
    される値が異なる現象を、タイミングを考慮した論理シ
    ミュレーションに準ずる状態で再現して検証する請求項
    1〜13または14記載の非同期回路の検証方法。
  16. 【請求項16】 検証対象の順序回路で構成する非同期
    回路に対し言語レベルの機能シミュレーション装置を用
    いて行う非同期回路の検証方法において、クロック信号
    の1周期内のn(n<(クロック周期のイベント数))
    時刻前の入力データを複数時刻分保持するために前記順
    序回路に予め設けた内部配列要素に一時記憶する第1の
    処理と、前記クロック信号のアクティブエッジを検出す
    る第2の処理と、前記アクティブエッジを検出したとき
    前記入力データの変化を検出する第3の処理と、前記入
    力データの値が1時刻前に前記内部配列要素に一時記憶
    した値と異なるときの出力データ状態であるメタステー
    ブル状態を検出する第4の処理と、前記メタステーブル
    状態のフラグを設定する第5の処理と、任意の時刻m
    (mはn時刻までの任意の1時刻)における入力データ
    を第1の変数に一時記憶させる第6の処理と、前記メタ
    ステーブル状態を示す値を第2の変数に一時記憶させる
    メタステーブル状態発生のための第7の処理と、前記第
    2の変数に記憶された前記メタステーブル状態を示す値
    を出力する第8の処理と、前記入力データが検出されな
    いときの前記メタステーブル状態のフラグ設定処理後に
    実行する入力データを前記第1の変数に一時記憶させる
    第9の処理および前記クロック信号のアクティブエッジ
    が検出されないときの前記メタステーブル状態のフラグ
    設定をする第10の処理それぞれの実行後、前記入力デ
    ータが検出されないときに前記第1の変数に一時記憶さ
    れた入力データを出力する第11の処理とを、コンピュ
    ータに実行させるプログラム。
  17. 【請求項17】 ユーザが指定したクロック信号でアク
    ティブになる順序回路の前記内部配列要素を全て抽出し
    対象となる前記内部配列要素をリストアップするアクテ
    ィブ順序回路のリストアップ処理と、前記リストアップ
    処理でリストアップされた全ての前記内部配列要素に対
    して前記第1から前記第11までの処理を実行した後
    に、次の1イベント時刻に移る処理を全イベントを対象
    に繰り返す全イベント繰り返し処理とを、コンピュータ
    に実行させるプログラム。
  18. 【請求項18】 非同期回路を予め階層構造化した状態
    で、ユーザが指定した階層下に含まれる全ての前記順序
    回路の前記内部配列要素を抽出する階層内抽出処理と、
    抽出した前記内部配列要素に対して前記リストアップ処
    理および前記全イベント繰り返し処理を実行処理を、コ
    ンピュータに実行させるプログラム。
JP2002033686A 2002-02-12 2002-02-12 非同期回路の検証方法およびそのプログラム Expired - Fee Related JP3759051B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002033686A JP3759051B2 (ja) 2002-02-12 2002-02-12 非同期回路の検証方法およびそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002033686A JP3759051B2 (ja) 2002-02-12 2002-02-12 非同期回路の検証方法およびそのプログラム

Publications (2)

Publication Number Publication Date
JP2003233638A true JP2003233638A (ja) 2003-08-22
JP3759051B2 JP3759051B2 (ja) 2006-03-22

Family

ID=27776405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002033686A Expired - Fee Related JP3759051B2 (ja) 2002-02-12 2002-02-12 非同期回路の検証方法およびそのプログラム

Country Status (1)

Country Link
JP (1) JP3759051B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7328117B2 (en) 2005-08-18 2008-02-05 Nec Electronics Corporation Apparatus, method and program for verifying asynchronous circuit
KR100803254B1 (ko) 2005-01-19 2008-02-13 세이코 엡슨 가부시키가이샤 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP2009187119A (ja) * 2008-02-04 2009-08-20 Fujitsu Ltd 検証支援プログラム、検証支援装置、および検証支援方法
US8160859B2 (en) 2008-10-29 2012-04-17 Fujitsu Limited Medium storing logic simulation program, logic simulation apparatus, and logic simulation method
US8495460B2 (en) 2009-05-18 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for reconfiguring an array of storage elements
US8832528B2 (en) 2009-05-18 2014-09-09 Fusion-Io, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100803254B1 (ko) 2005-01-19 2008-02-13 세이코 엡슨 가부시키가이샤 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US7328117B2 (en) 2005-08-18 2008-02-05 Nec Electronics Corporation Apparatus, method and program for verifying asynchronous circuit
JP2009187119A (ja) * 2008-02-04 2009-08-20 Fujitsu Ltd 検証支援プログラム、検証支援装置、および検証支援方法
US8160859B2 (en) 2008-10-29 2012-04-17 Fujitsu Limited Medium storing logic simulation program, logic simulation apparatus, and logic simulation method
US8495460B2 (en) 2009-05-18 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for reconfiguring an array of storage elements
US8738991B2 (en) 2009-05-18 2014-05-27 Fusion-Io, Inc. Apparatus, system, and method for reconfiguring an array of storage elements
US8832528B2 (en) 2009-05-18 2014-09-09 Fusion-Io, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US9306599B2 (en) 2009-05-18 2016-04-05 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for reconfiguring an array of storage elements

Also Published As

Publication number Publication date
JP3759051B2 (ja) 2006-03-22

Similar Documents

Publication Publication Date Title
US8468475B2 (en) Conversion of circuit description to an abstract model of the circuit
JP6351838B2 (ja) レシプロカル量子論理(rql)回路合成
US6922665B1 (en) Method and system for device-level simulation of a circuit design for a programmable logic device
US7254793B2 (en) Latch modeling technique for formal verification
CN117034822A (zh) 基于三步式仿真的验证方法、电子设备和介质
US7571086B2 (en) Incremental circuit re-simulation system
JP2003233638A (ja) 非同期回路の検証方法およびそのプログラム
US7328117B2 (en) Apparatus, method and program for verifying asynchronous circuit
US7093224B2 (en) Model-based logic design
US20030018462A1 (en) Multi-clock system simulation
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
JP3953250B2 (ja) 非同期回路の検証方法
JP2006318121A (ja) 遅延付加rtl論理シミュレーション方法および装置
CN113536726A (zh) 用于最大瞬时峰值功率的矢量生成
US7640151B2 (en) Asynchronous clock domain crossing jitter randomiser
WO2003079237A1 (en) A method and a processor for parallel processing of logic event simulation
WO2024148502A1 (en) Circuitry for staggering capture clocks in testing electronic circuits with multiple clock domains
US11300614B1 (en) Save and restore register
JP2010257003A (ja) 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体
JP2001235522A (ja) テストベクタ作成装置
JP3654941B2 (ja) 論理シミュレーション方法及び論理シミュレータ
US20190362043A1 (en) Dynamic update of macro timing models during higher-level timing analysis
Skliarova A multimedia tool for teaching reconfigurable computing
JP2785708B2 (ja) 論理シミュレーション方法
CN118613801A (zh) 将逻辑网表转换为分层寄生网表

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051227

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100113

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees