JP3953250B2 - 非同期回路の検証方法 - Google Patents
非同期回路の検証方法 Download PDFInfo
- Publication number
- JP3953250B2 JP3953250B2 JP2000037936A JP2000037936A JP3953250B2 JP 3953250 B2 JP3953250 B2 JP 3953250B2 JP 2000037936 A JP2000037936 A JP 2000037936A JP 2000037936 A JP2000037936 A JP 2000037936A JP 3953250 B2 JP3953250 B2 JP 3953250B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- input data
- value
- sequential circuit
- clock signal
- 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 - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、非同期で動作する電子回路を検証する方法に関し、特に、異なる周期のクロック信号によって複数の順序回路が動作する場合に、各順序回路の出力データが組み合わされて相互に別の順序回路の入力データとなる非同期回路の検証方法に関する。
【0002】
【従来の技術】
ゲートアレイなどの実デバイスの機能を試験する場合に、同じ機種の実デバイスでも個々の特性が一般にばらついていた。このため、実デバイスの機能テスタでは、テスタ内部のFF(フリップフロップ)が、前記特性のばらつきに伴って異なる動作をしてしまうことがあった。そこで、このテスタの誤動作を誘発させるために、わざと入力信号どうしのタイミングをずらすテスタ回路があった。
【0003】
たとえば、特開平5−189517号公報に開示された従来例のテスタ回路がある。この従来例は、実デバイスの機能試験を前提としたテスタのシミュレーション回路であり、テスタのFFモデルにおけるセットアップおよびデータホールド特性を変化させ、実デバイスの出力特性のパラメータと比較する目的を有していた。このため、実デバイスからの入力信号とテスタの動作クロックとを別々の遅延素子を介してテスタのFFに導き入れた構成にしてある。
【0004】
この構成によって、入力信号に対する動作クロックの同期タイミングを任意の時間だけ前後にずらし、実デバイスを対象としたテスタのデータホールド機能をシミュレートしていた。つまり、これは同期回路における誤動作を検証したものであった。ところが実際には、もともと異なる同期タイミングを有した非同期回路を対象とし、実用的な機能シミュレーションを行う場合が多かった。
【0005】
一般に、非同期回路の検証方法としては、ゲートレベルのネットリストを用いた方法がある。この方法では、各クロック信号のタイミングを考慮したシミュレーションが行われ、これにより各順序回路のセットアップやホールドのタイミングが検証される。また、近年では、HDLなどのハードウェア記述言語が用いられ、電子回路の設計手法を機能設計から行えるようになった。
【0006】
このため、非同期回路を検証する場合にも、言語レベルにおける機能シミュレーションを行う必要がある。この要請に応える非同期回路の検証方法としては、その機能シミュレーション上で複数のクロック信号の周期や位相の条件を様々に変更しながらシミュレーションを行う方法がある。これによれば、検証対象となる電子回路の動作において不具合の発生確率を意図的に高めることができた。
【0007】
図4は、一従来例による非同期回路の検証方法のフローチャートである。
この従来例は、順序回路におけるクロック信号のアクティブエッジ検出処理B1、この順序回路への入力データの保持処理S7、これによる保持データの出力処理S8を行っている。
【0008】
【発明が解決しようとする課題】
しかし、このような従来例による非同期回路の検証方法を用い、言語レベルで各順序回路の機能シミュレーションを行う場合、次のような技術的な課題を解決しておく必要があった。
【0009】
一般に、順序回路には、その出力データの論理が定まらないメタステーブル状態が生じてしまうことがある。ところが、前述したフローチャートによれば、このような状態を一定期間にわたって保ち続ける処理が設けられていなかった。このため、次段に構成した各順序回路ごとに、異なるクロック信号の周期と位相の条件を様々に組み合せて用い、非同期回路に生じるかもしれない動作の不具合をシミュレーションさせていた。
【0010】
したがって、従来の非同期回路の検証方法では、クロック信号に関する条件を必然的に多く組み合せた言語レベルでの機能シミュレーションが必要であった。その結果、順序回路個々の動作のシミュレーションに必要なテストベンチの記述が煩雑になり、検証方法による機能シミュレーションの全体が複雑化してしまう傾向があった。
【0011】
さらに、このようにしてクロック信号に関する多様な条件を組み合せてシミュレーションを行うと、各順序回路で動作ごとのシミュレーション時間が長期化してしまう。このため、機能シミュレーション全体で検証TATが増大することにもなり、これら種々の技術的な課題を一括して解決しておくことがきわめて重要であった。
【0012】
したがって、本発明の目的は、機能シミュレーションにおける検証動作を言語レベルで単純化させるとともに、その検証TATを短縮化させた非同期回路の検証方法を提供することにある。
【0013】
【課題を解決するための手段】
上記目的を達成するための本発明の請求項1に係る非同期回路の検証方法は、コンピュータが、順序回路を含む非同期の論理回路による動作を検証する非同期回路の検証方法において、前記順序回路のクロック信号のアクティブエッジを検出し、かつ、前記順序回路の入力データが前記クロック信号の一周期前から変化したことを検出したときに、その入力データを記憶手段に記憶させ、前記入力データとは異なる値をメタステーブル状態を示す値として発生させて前記順序回路の出力データとして出力させる処理と、前記処理の後であって前記クロック信号の一周期より短い一定期間の後、前記メタステーブル状態を示す値に代えて前記記憶手段に記憶された入力データを出力データとして出力させる処理とをコンピュータが実行する非同期回路の検証方法である。
【0016】
本発明の請求項2に係る非同期回路の検証方法は、コンピュータが、順序回路を含む非同期の論理回路による動作をハードウェア記述言語レベルで機能シミュレーションする非同期回路の検証方法であって、前記順序回路のクロック信号のアクティブエッジを検出し、かつ、前記順序回路の入力データが前記クロック信号の一周期前から変化したことを検出したときに、その入力データを記憶手段に記憶させ、前記入力データとは異なる値をメタステーブル状態を示す値として発生させて前記順序回路の出力データとして出力させる処理と、前記処理の後であって前記クロック信号の一周期より短い一定期間の後、前記メタステーブル状態を示す値に代えて前記記憶手段に記憶された入力データを前記順序回路の出力として出力させる処理とをコンピュータが実行する方法としてある。
【0020】
【発明の実施の形態】
以下、本発明に係る実施の形態について、図面を参照しながら詳細に説明する。なお、前述した従来例と同じ部分については、同一の符号を付して詳しい説明を省略してある。
【0021】
図1は、本発明の一実施形態に係る非同期回路の検証方法を順序回路を含む非同期回路に適用した一構成例を図示したフローチャートである。
この実施形態には、はじめの処理の後で、順序回路に供給したクロック信号のアクティブエッジを検出する処理B1、このアクティブエッジで順序回路への入力データの値が変化したことを検出する処理B2、順序回路がメタステーブル状態であるか否かを検出する処理B3、メタステーブル状態でなければフラグをtrueに設定する処理S5、メタステーブル状態であればフラグをfalseに設定する処理S1を設けてある。
【0022】
さらに、これらフラグを設定する各処理S1、S5に続けて、入力データの値を変数dに保持させる処理S2、また、順序回路のメタステーブル状態の所定値を発生させて変数metaに保持させる処理S3、保持した所定値を変数Qoutに移す処理S4を有している。
【0023】
また、入力データの変化を検出する処理B2で変化を検出しなかったときに、順序回路がメタステーブル状態にならないためフラグをfalseに設定する処理S6、前述した処理S2と同様に入力データの値をdに保持させる処理S7を有している。
また、クロック信号のアクティブエッジを検出する処理B1でアクティブエッジを検出しないときに、前述した処理S6と同様にフラグをfalseに設定する処理S9を有している。
さらに、これらの処理S7、S9に続けて、保持しておいた保持データの値をdからQoutに移す処理S8を有している。
なお、初めの処理は開始処理を、また、終りの処理は終了処理である。
【0024】
図2は、図1に示す検証方法を適用する非同期回路の一例の回路図であり、それぞれの順序回路などにおける動作を図2を参照しながら説明する。
この非同期回路は、加算器ALU1および前後段の順序回路FF1、FF2を順に配置して構成され、順序回路FF1からの出力データQ1が、その値を加算器ALU1で+1されてから順序回路FF1への入力データD1として入力される。また、順序回路FF1の出力データQ1が、順序回路FF2への入力データD2として入力される。
【0025】
順序回路FF1には、そのメタステーブル状態を示すフラグMF1が、また、順序回路FF2には、その別のメタステーブル状態を示す別のフラグMF2がそれぞれ併設されている。このとき、周期が異なる二つのクロック信号CLK1、CLK2のうち、順序回路FF1にはクロック信号CLK1が、また、順序回路FF2には別のクロック信号CLK2が供給される。
【0026】
〔実施例による動作の説明〕
以下、本実施形態による実施例の動作の一例について説明する。まず、図1および2を参照しながら非同期回路の検証方法について述べる。
この場合に、クロック信号CLK1、入力データD1により順序回路FF1が動作を行って出力データQ1を出力し、また、クロック信号CLK2、入力データD2により順序回路FF2が動作を行って出力データQ2を出力する。
【0027】
まず、前記した処理B1において、クロック信号CLK1、CLK2のエッジを検出する。このエッジが検出された場合(Yes)には、処理B2に移るが、これが検出されない場合(No)には、フラグMF1、MF2を処理S9でfalseに変更する。
また、エッジが検出された場合には、処理B2において、入力データD1、D2の値(Din)が変化したか否かを検出する。この値(Din)の変化が検出された場合(Yes)には処理B3に移るが、これが検出されない場合(No)には、フラグMF1、MF2を処理S6でfalseに変更する。
【0028】
このように、各処理S9、S6では、フラグMF1、MF2の値をメタステーブル状態でない状態(false)に設定する。続いて、処理S7において、値(Din)を変数(d)として保持しておく。そして、処理S8において、この変数(d)を変数(Qout)に移して出力データQ1、Q2の値とし、順序回路FF1、FF2から出力する。
【0029】
これらの一連の処理S6、S7、S8によって、クロック信号CLK1、CLK2がアクティブであって値(Din)が一周期前から変化していない場合の動作を行える。また処理S9、S8によって、非アクティブな場合の動作を行える。これにより、順序回路FF1、FF2がメタステーブル状態の所定値を出力した後で、続く一周期後の出力動作において保持データを出力することができる。
【0030】
処理B2で入力データD1、D2の変化したことを検出した場合、処理B3においてフラグMF1、MF2の値をチェックする。そして、フラグMF1、MF2がtrueになっていれば処理S1でfalseに変更し、処理S2において入力データD1、D2を保持した後で、メタステーブル状態を処理S3で発生させる。最後に、処理S4においてメタステーブル状態の所定値を出力データQ1、Q2の値とし、順序回路FF1、FF2から出力する。
また、処理B3でフラグMF1、MF2がfalseになっていれば、処理S5でtrueに変更した後に、前述した処理S2、S3、S4を順に行う。
【0031】
これらの一連の処理S2、S3、S4によって、本発明の特徴であるクロック信号CLK1、CLK2がアクティブであって入力データD1、D2が一周期前とは変化していた場合に、メタステーブル状態を出力させることができる。
つまり、一つのクロック信号(たとえばCLK1)のアクティブエッジから、前述した機能上のアルゴリズムによって、入力データ(たとえばD1)の変化に伴うメタステーブル状態を言語レベルで定義できる。
【0032】
さらに、2系統のクロック信号CLK1、CLK2どうしに位相差が生じると、やはりアルゴリズムに伴って、基本となる1サイクルタイムの時間内で連鎖的に誤動作を引き起こさせる。これらアルゴリズムの各処理により、それぞれのテストベンチの記述や機能シミュレーション全体を複雑化させることなく、非同期回路の機能を多面的にシミュレーションして短時間のうちに検証することができる。
【0033】
たとえば、処理S2において、変数(d)が取り得るランダムな値を発生させ、変数(d)に保持される値(Din)と比較し、この値(Din)とは異なる値を変数(meta)に保持させてメタステーブル状態の所定値とすることにより、非同期回路のメタステーブル状態を発生し、その誤動作を検証できるようにする。
【0034】
図3は、図2に示す非同期回路による動作のタイミングチャートである。
図1〜3を参照しながら、本実施形態による動作のタイミングについて説明する。以下、図2に示す順序回路FF1では、クロック信号CLK1が3サイクルごとに変化し、順序回路FF2では、クロック信号CLK2が4サイクルごとに変化するものとする。
【0035】
順序回路FF1への入力データD1の値(Din)は、初期状態のときの順序回路FF1からの出力データQ1の値(Qout)に対し、加算器ALU1で+1した値(=1)である。第3周期でのクロック信号CLK1の立ち上がりエッジで、入力データD1が順序回路FF1に入力される。この値(Din)は、続く一周期である第4周期において出力データQ1の値(Qout)となり値(=1)が出力される。
【0036】
続いて、第3周期において、クロック信号CLK1がアクティブな状態のときに、値(Din)が一周期前の値から変化している。このため、フラグMF1の値がtrue(=1)になり、出力データQ1の値(Qout)がメタステーブル状態の所定値(=6)として出力される。また、第4周期では、クロック信号CLK1が非アクティブな状態になるため、その1周期前に値(Din)として入力し保持した値、すなわち第3周期における入力データD1の値(=1)が出力データQ1として出力される。
【0037】
同様に、第9、第10、第15、第16、および第21、第22の各周期において、1サイクルの期間内でフラグMF1の値がtrue(セット)になる。そして、値Qoutとしてメタステーブル状態の各所定値を出力した後で、その1周期前に値(Din)として入力し保持した各値が出力される。
【0038】
また、順序回路FF2では、その入力データD2の値(Din)として順序回路FF1からの出力データQ1の値(Dout)が入力される。そして、第4周期でのクロック信号CLK2の立ち上がりエッジにおいて、入力データD2の値(Din)として値(=6)が取り込まれた後で、続く一周期である第5周期において、出力データQ2の値(Qout)となり値(=6)が出力される。
【0039】
このとき、順序回路FF1と同様に、第4周期においてクロック信号CLK2がアクティブなときに、入力データD2の値(Din)が一周期前の値、すなわち順序回路FF2が初期状態のときの値から変化している。このため、順序回路FF2のフラグMF2の値がtrueになり、メタステーブル状態の所定値(=3)が出力データQ2の値(Qout)として出力される。また、第5周期において、クロック信号CLK2が非アクティブになるため、その1周期前に値(Din)として保持した値、すなわち第4周期における値(=6)が値Qoutとして出力される。
【0040】
同様にして、第12、第13、および第20、第21の各周期において、1サイクル内にフラグMF2の値がtrueになり、メタステーブル状態の各所定値を値Qoutとして出力する。その後、その1周期前に値(Din)として保持した各値が出力される。
【0041】
このとき、第4周期における順序回路FF2の入力データD2の値(Din)として取り込まれた値(=6)は、順序回路FF1で発生させたメタステーブル状態の値である。このため、順序回路FF2には、本来の期待される入力データD2の値(Din)、すなわち第4周期における順序回路FF1の出力データQ1の値(=1)と異なる値が入力される。したがって、第5周期から第12周期までは、この非同期回路の動作が不具合を起こすことになる。
【0042】
このことから、第3周期におけるクロック信号CLK1の変化と、第4周期におけるクロック信号CLK2の変化とが、この非同期回路の動作に対して不具合を起こすタイミングとなったことが分かる。
【0043】
なお、上記実施例では、クロック信号のアクティブエッジを立ち上がりの変化としたが、この他にも立ち下がりの変化とした場合にも同様である。また、非同期回路の構成として、クロック信号のアクティブエッジが立ち上がり変化の順序回路と立ち下がり変化のものとを混在させても同様な効果が得られる。
【0044】
【発明の効果】
以上に述べたように、本発明の効果は、クロック信号のアクティブエッジごとに強制的なメタステーブル状態を発生させ、この状態を一周期の間だけ論理回路に保ち続けさせるアルゴリズムが実現できる。このため、クロック信号の多様な条件を記述して動作確認の検証をする必要がない。また、その動作タイミングを考慮した従来の機能シミュレーションと同様に、論理回路における動作の不具合を再現できる。したがって、言語レベルでの機能シミュレーションに必要なテストベンチの記述や検証作業を単純化でき、また、その検証TATを結果的に短縮化させることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る非同期回路の検証方法の一構成例を図示したフローチャート。
【図2】図1に示す検証方法を適用させた非同期回路の一例の回路図。
【図3】図2に示す非同期回路における動作の一例のタイミングチャート。
【図4】一従来例による非同期回路の検証方法のフローチャート。
【符号の説明】
ALU1 加算器
B1〜B3、S1〜S9 処理
CLK1、CLK2 クロック信号
D1、D2 入力データ
FF1、FF2 順序回路
Q1、Q2 出力データ
Claims (2)
- コンピュータが、順序回路を含む非同期の論理回路による動作を検証する非同期回路の検証方法において、
前記順序回路のクロック信号のアクティブエッジを検出し、かつ、前記順序回路の入力データが前記クロック信号の一周期前から変化したことを検出したときに、その入力データを記憶手段に記憶させ、前記入力データとは異なる値をメタステーブル状態を示す値として発生させて前記順序回路の出力データとして出力させる処理と、前記処理の後であって前記クロック信号の一周期より短い一定期間の後、前記メタステーブル状態を示す値に代えて前記記憶手段に記憶された入力データを出力データとして出力させる処理とをコンピュータが実行することを特徴とする非同期回路の検証方法。 - コンピュータが、順序回路を含む非同期の論理回路による動作をハードウェア記述言語レベルで機能シミュレーションする非同期回路の検証方法であって、
前記順序回路のクロック信号のアクティブエッジを検出し、かつ、前記順序回路の入力データが前記クロック信号の一周期前から変化したことを検出したときに、その入力データを記憶手段に記憶させ、前記入力データとは異なる値をメタステーブル状態を示す値として発生させて前記順序回路の出力データとして出力させる処理と、前記処理の後であって前記クロック信号の一周期より短い一定期間の後、前記メタステーブル状態を示す値に代えて前記記憶手段に記憶された入力データを前記順序回路の出力として出力させる処理とをコンピュータが実行することを特徴とする非同期回路の検証方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000037936A JP3953250B2 (ja) | 2000-02-16 | 2000-02-16 | 非同期回路の検証方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000037936A JP3953250B2 (ja) | 2000-02-16 | 2000-02-16 | 非同期回路の検証方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001229211A JP2001229211A (ja) | 2001-08-24 |
JP3953250B2 true JP3953250B2 (ja) | 2007-08-08 |
Family
ID=18561751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000037936A Expired - Fee Related JP3953250B2 (ja) | 2000-02-16 | 2000-02-16 | 非同期回路の検証方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3953250B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4763629B2 (ja) | 2007-02-20 | 2011-08-31 | 富士通セミコンダクター株式会社 | 検証装置、検証方法及びプログラム |
JP4992468B2 (ja) | 2007-02-27 | 2012-08-08 | 富士通セミコンダクター株式会社 | 検証方法、検証装置及びプログラム |
JP4585559B2 (ja) * | 2007-08-30 | 2010-11-24 | 株式会社東芝 | 半導体集積回路の検証装置 |
US7930609B2 (en) | 2007-09-18 | 2011-04-19 | Renesas Electronics Corporation | Apparatus and method for verifying target circuit |
JP5239747B2 (ja) * | 2008-10-29 | 2013-07-17 | 富士通株式会社 | 論理シミュレーションプログラム、論理シミュレーション装置、論理シミュレーション方法 |
-
2000
- 2000-02-16 JP JP2000037936A patent/JP3953250B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001229211A (ja) | 2001-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cheng | Transition fault testing for sequential circuits | |
US5768159A (en) | Method of simulating AC timing characteristics of integrated circuits | |
US8060847B2 (en) | Clock model for formal verification of a digital circuit description | |
US20070129923A1 (en) | Dynamic synchronizer simulation | |
JP3953250B2 (ja) | 非同期回路の検証方法 | |
US7328117B2 (en) | Apparatus, method and program for verifying asynchronous circuit | |
US9058452B1 (en) | Systems and methods for tracing and fixing unknowns in gate-level simulation | |
US6598191B1 (en) | Verification of asynchronous boundary behavior | |
JP2008047121A (ja) | 半導体集積回路の間接シミュレーション方法及び装置 | |
JP2007233842A (ja) | リセット動作検証回路の生成方法 | |
JP3759051B2 (ja) | 非同期回路の検証方法およびそのプログラム | |
US8056037B2 (en) | Method for validating logical function and timing behavior of a digital circuit decision | |
US20030018462A1 (en) | Multi-clock system simulation | |
JP2006318121A (ja) | 遅延付加rtl論理シミュレーション方法および装置 | |
US20070258300A1 (en) | Functional verification of synchronized signals using random delays | |
JP2001255357A (ja) | テストパターン妥当性検証方法及びその装置 | |
US8701061B2 (en) | Semiconductor design support apparatus | |
JP5942417B2 (ja) | シミュレーション装置、シミュレーション方法及びシミュレーションプログラム | |
JP2972499B2 (ja) | 論理回路遅延シミュレータ装置 | |
JP2908339B2 (ja) | 半導体集積回路のシミュレーション方式 | |
JP2005182093A (ja) | 回路機能検証支援システム、回路機能検証支援方法、制御プログラムおよび可読記録媒体 | |
JP3077617B2 (ja) | 遅延シミュレータ | |
JP2007241836A (ja) | マルチサイクルパス検証方法 | |
CN116151187A (zh) | 处理触发条件的方法、装置和存储介质 | |
JP2003308356A (ja) | シミュレーションによる集積回路のテスト方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040405 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040601 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20040701 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040701 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040730 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040812 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040910 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060307 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070424 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |