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

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

Info

Publication number
JP4271067B2
JP4271067B2 JP2004094030A JP2004094030A JP4271067B2 JP 4271067 B2 JP4271067 B2 JP 4271067B2 JP 2004094030 A JP2004094030 A JP 2004094030A JP 2004094030 A JP2004094030 A JP 2004094030A JP 4271067 B2 JP4271067 B2 JP 4271067B2
Authority
JP
Japan
Prior art keywords
clock
delay
circuit
asynchronous
asynchronous circuit
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
Application number
JP2004094030A
Other languages
English (en)
Other versions
JP2005284426A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2004094030A priority Critical patent/JP4271067B2/ja
Priority to US10/935,109 priority patent/US20050216247A1/en
Publication of JP2005284426A publication Critical patent/JP2005284426A/ja
Application granted granted Critical
Publication of JP4271067B2 publication Critical patent/JP4271067B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/35Delay-insensitive circuit design, e.g. asynchronous or self-timed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は非同期回路検証方法および非同期回路検証プログラムに関し、特に、非同期箇所を含んだ論理回路の動作をシミュレーションによって検証する非同期回路検証方法および非同期回路検証プログラムに関する。
システムLSI(Large Scale Integrated circuit)等の回路設計では、回路の動作記述にハードウェア記述言語(Hardware Description Language,HDL)が用いられる。通常は、その動作記述から回路の論理機能がレジスタ・トランスファ・レベル(Resistor Transfer Level,RTL)で記述され、その後、これとテストベンチを用いた論理シミュレーションによりその動作が検証される。
図30は従来の回路設計フローの一例である。
従来の回路設計では、まず、論理設計段階で回路の論理機能がRTLで記述され(ステップS100)、RTLの論理シミュレーションが行われる(ステップS101)。その後、論理合成が行われ(ステップS102)、仮配線、ゲートライブラリの読込み、配線遅延を与える遅延情報ファイル(SDF)の作成が行われ、仮配線によるゲートレベルの論理シミュレーションが行われる(ステップS103)。次いで、レイアウト(ステップS104)、スタティックタイミングアナライザ(STA)によるタイミング検証(ステップS105)を経て、試作品が作成され(ステップS106)、実機評価が行われる(ステップS107)。
ステップS103のゲートレベル論理シミュレーション、ステップS105のSTAタイミング検証、ステップS107の実機評価において期待された結果が得られない場合には、ステップS100に戻って論理設計データを修正してRTLを作成した後、以降の処理が再度行われる。あるいは、ステップS107の実機評価で発生した問題に応じ、ステップS102の論理合成、ステップS103のゲートレベル論理シミュレーション、ステップS104のレイアウト、ステップS105のSTAタイミング検証に戻り、以降の処理が再度行われる。また、ステップS100のRTL作成後は適当な段階で形式検証ツールを用いた形式検証が行われ(ステップS108)、ここで期待した結果が得られなければステップS100に戻ってRTLを再作成する。
ところで、多くの回路には入力信号に対してクロックが同期する箇所やクロックが異なる非同期箇所が存在し、このような非同期箇所を含んだ論理回路(「非同期回路」という。)は、近年の素子の高機能化、高性能化に伴い、その重要性がいっそう高まってきている。
図31は非同期回路の基本構成例である。
例えば、非同期回路200を、クロックCLKMの1段のフリップフロップ(FF)回路(送信側FF回路)201の出力をCLKMと異なるCLKNの2段のFF回路(受信側FF回路)202a,202bで受信する、いわゆるダブルシンクロナイザで構成する。ところが、このような非同期回路200では、次に述べるようなメタステーブル(meta-stable)、レーシング、オーバーディレイといった非同期特有の現象が起こる場合がある。
図32はメタステーブルの説明図、図33はレーシングの説明図、図34はオーバーディレイの説明図である。
メタステーブルとは、ビット幅を持つデータパス信号で起きる現象であり、一定期間内に不定値が発生してしまう現象である。例えば、図32に示すように、CLKMの送信側FF回路201の信号にメタステーブルが発生すると、CLKNの受信側FF回路202a,202bがメタステーブルを受信してその出力信号に不定値が入り込み、その後段以降の処理に障害が発生する場合がある。
また、レーシングとは、1周期早く信号を受信してしまう現象である。例えば、図33に示すように、送信側FF回路201の信号を受信する受信側FF回路202a,202bがその信号を本来受信するタイミングよりもCLKNの1周期分早いタイミングで受信してしまうような場合である。
それに対し、オーバーディレイとは、1周期遅く信号を受信してしまう現象である。例えば、図34に示すように、送信側FF回路201に大きな遅延が発生することにより、受信側FF回路202a,202bでその信号を本来受信するタイミングよりもCLKNの1周期分遅いタイミングで受信してしまうような場合である。
なお、これらのメタステーブル、レーシング、オーバーディレイといった現象自体は非同期回路の障害ではない。これらの現象が起きても他の回路部分でそれをカバーするような回路構成になっていれば障害の発生は回避することができる。例えば、メタステーブルは最大でクロックの1周期分発生するので、非同期回路の後段の回路においてその非同期回路から受信した信号のうち最初の1周期分は取り込まないような構成とすればよい。
図35および図36は非同期回路の別の構成例である。
まず、図35に示す非同期回路300は、CLKMの2つの送信側FF回路301a,301bの出力側に組合せ論理回路302が設けられており、この組合せ論理回路302の出力をCLKNの1段の受信側FF回路303で受信する構成を有している。
しかし、この非同期回路300のような構成の場合、ハザードや予期せぬ遅延が発生したり、受信側FF回路303が1段であるため特にクロックエッジが近いときには信号値が確定せずに不定値を出力したりして、上記のような現象がより起こり易くなる。
また、図36に示す非同期回路400は、図31の非同期回路200と同様、CLKMの送信側FF回路411および送信側FF回路421の出力を、CLKNの2段の受信側FF回路412a,412bおよび受信側FF回路422a,422bでそれぞれ受信する構成を有している。そして、これら2組の非同期回路410,420の出力信号が最後に組合せ論理回路430で合流するようになっている。
この非同期回路400のような構成の場合、各非同期回路410,420において上記のような現象が起こる可能性がある。また、たとえそのような現象が起こって各非同期回路410,420で障害が発生しなかったとしても、その後段の組合せ論理回路430において初めて障害が発生する場合もある。
図37は非同期回路の障害発生例の説明図である。
例えば、図36に示した非同期回路400において、一方の受信側FF回路412aの入力信号(I)にレーシングが発生しており、さらに、もう一方の受信側FF回路422aの入力信号(II)にオーバーディレイが発生しているような場合を想定する。
もしこのような現象が発生しなければ、例えば、一方の受信側FF回路412bからの出力信号(III)が、もう一方の受信側FF回路422bからの出力信号(IV)によってマスクされ、組合せ論理回路430にはマスクされた制御信号が入力されるようになる(図37上図)。
ところが、入力信号(I),(II)にそれぞれレーシング、オーバーディレイが発生していると、出力信号(III),(IV)がその影響を受け、本来マスクされるべき制御信号が組合せ論理回路430に入力されてしまうようになる(図37下図)。このとき、組合せ論理回路430でサイクルマージンを取っていたとしても、このレーシングとオーバーディレイでマージンを使い果たしてしまえば障害が発生することになる。
また、同じく図36に示した非同期回路400において、出力信号(IV)が多ビットの信号となる場合を想定する。例えば、入力信号(I)はそのデータのイネーブル信号で十分な時間をとって発生させていたが出力信号(III)にレーシングが発生して組合せ論理回路430でメタステーブルの信号が受信され、さらに、多ビットの入力信号(II)にメタステーブルが発生してその影響を受けた出力信号(IV)が組合せ論理回路430に入力されるような場合には、障害が発生することになる。
以上述べたような障害が発生し得る非同期回路について、これまでの動作検証は、通常、RTLの論理シミュレーション段階やゲートレベルの論理シミュレーション段階あるいはSTAタイミング検証段階など、回路設計時の適当なプロセスにおいて行われてきた。
しかし、RTLの論理シミュレーション段階における非同期回路の動作検証の場合、2段ラッチなどによる構造的検証は可能であるが、RTLには元々時間的概念がないため、複数信号間の遅延差によって発生するメタステーブルを考慮したような機能的検証は非常に難しいものであった。例えば、従来のRTLの論理シミュレーションでは、DATA[31:0]と記述されたような32ビットデータの各ビット間には遅延差がないものとして論理シミュレーションが行われていた。つまり、本来DATA[31:0]の値が変化する途中に発生し得るメタステーブルがないものとして論理シミュレーションが行われていた。
一方、ゲートレベルの論理シミュレーション段階における非同期回路の動作検証の場合、例えばDATA[31:0]をDATA[31],DATA[30],・・・,DATA[0]のように分割し、SDFをバックアノテーションするため、ビット間に遅延差は生じる。しかし、その遅延差は一般的に非常に小さい値になる。つまり、メタステーブルが発生している時間が非常に短く、それを検出できなければ回路が有する問題点を発見することができない。
ここでは1つのデータパス信号を例にしたが、データパス信号とこれを制御する信号の間の関係や、2ビット以上の相互に関係のある信号については同様のことがいえる。
また、従来、非同期回路の動作検証に関しては、RTLから非同期箇所を抽出する方法(例えば特許文献1参照)、RTLの非同期箇所の後段にメタステーブルを発生させて以降の回路動作を検証する方法なども提案されている(例えば特許文献2,3参照)。
特開2003−108619号公報 特開2003−233638号公報 特開2001−229211号公報
通常、回路設計者は、送信側回路から受信側回路にデータパス信号が非同期に受け渡される場合に、送信側回路で発生したメタステーブルが受信側回路のクロックによってサンプリングされるときのことを考慮して論理設計を行う。しかし、前述のように、RTLの論理シミュレーション自体では、複数信号間の遅延差によって発生するメタステーブルを考慮することができず、RTLの論理シミュレーション段階で信号伝播のタイミングを十分に考慮した動作検証を行うことはこれまでできなかった。
また、ゲートレベルの論理シミュレーションでは、複数信号間の遅延差は生じるものの、メタステーブルによる不定値の存在する時間が極めて短く、その不定値のクロックによるサンプリングは稀にしか起きず偶然に頼るところが大きい。そのため、非同期回路に潜む問題点を見過ごしてしまう可能性が非常に高い。さらに、ゲートレベルの論理シミュレーションに要する時間が長いため、多数のテストベクタを実行することが難しく、限られた開発・製造期間内では十分な動作検証が行えないこともある。そのため、無作為抽出した試作品の実機評価を行い、評価を行った範囲内で非同期回路に障害が発生しないことを最終的に確認しているのが現状である。
STAタイミング検証によって非同期回路の動作検証を行おうとする場合には、タイミング検証前に論理合成が必要になる。また、たとえSTAタイミング検証時に問題点が見つかったとしても、論理合成されたネットリストからRTL上の問題箇所の特定や障害の再現を行うのは難しい。
STAタイミング検証にはこのほかにもゲートライブラリやSDFが必要になる、シミュレーション速度が遅い(RTLの1/100以下程度)、RTL内の論理に対して遅延制御が行えない、複数段のゲーテッドクロックに対応できない、ゲート遅延や配線遅延を考慮したレイアウトが必要になる、といったように、多大な労力と時間が費やされる。
この段階で仮にレイアウトが変更されると、STAタイミング検証あるいは論理シミュレーションの結果が以前のものと変わってくる場合があるので、それによって非同期回路に潜む問題点を見過ごしてしまう危険性が高くなってしまう。また、ここで問題点が発見されれば再びレイアウトの変更が必要になってくる。
さらに、このようなSTAタイミング検証では、タイミングをずらしていく際、セットアップ(setup)エラーやホールド(hold)エラーが発生してしまうことが多い。これらのエラーはいずれも論理のエラーではなくタイミングのエラーであり、これらのタイミングエラーによって論理エラーが隠されてしまう場合もある。本来STAタイミング検証は、タイミングが適切か否かを検証するものであって、RTLに存在する論理に潜在的な問題点がないかを検証する論理検証ではなく、それのみでは非同期回路の動作を十分に検証することはできない。
また、以上述べてきたような検証方法を用いて非同期回路の動作検証を行った場合、回路内に多数の非同期箇所が存在することで、それまで問題がないとされていた回路にも問題が発生するといったことも起こり得る。
なお、試作品の実機評価では、その動作回数を多くすることで非同期回路内の潜在的な問題点を発見する確率を高める試みがなされている。しかし、実際に問題点が見つかったとしてもその問題箇所の特定が難しいなどその解析に要する労力や時間が多大であり、また、それで問題点がすべて抽出されたという保証もない。そして、最終的には試作品の作り直しも必要になってくる。
また、形式検証では、形式的に非同期箇所で正しい動作が行われているかの確認を行えるツールは存在するが、複数ビットのそれぞれが連続して異なるクロックでサンプリングされた場合などに正しい動作が行われているかといったことは検証することができない。
図38は従来提案されている非同期回路の検証方法の説明図である。
従来提案されている非同期回路の検証方法として、この図38に示すように、CLKMの送信側FF回路501とCLKNの受信側FF回路502を有する非同期回路のその受信側FF回路502の後段にメタステーブルを強制的に発生させるものがある。これにより、そのメタステーブルが以降の他の回路部分に伝播しても障害が発生しないことを検証しようとするものである。
しかしながら、この検証方法の場合、非同期箇所が多数存在する場合には、一の非同期箇所と他の非同期箇所との間の干渉については十分に検証が行えない可能性がある。また、この方法では、レーシングやオーバーディレイを意図的に発生させることはできない。
さらに、受信側が2段のFF回路になっているような回路構成を有する非同期回路の場合には、発生させたメタステーブルが途中で消滅してしまう可能もある。これは、メタステーブルが最大でも1周期しか発生しないため、1段目のFF回路の出力後に1周期未満のメタステーブルを発生させても、2段目のFF回路がそれを受信するまでメタステーブルが残らない可能性があるためである。
このように、これまでの非同期回路の検証方法では、今後ますます重要性を増し、複雑化する可能性のある非同期回路の動作を十分に検証することができないのが現状である。また、従来から行われているSTAタイミング検証によっても非同期回路の十分な動作検証は難しい。そして、このように非同期回路の適切な動作検証の方法がないことで、多大な労力と時間を伴う複数のプロセスが何度も繰り返され、回路設計者は大きな負担を被るとともに、LSI等の開発・製造期間の長期化が引き起こされている。
本発明はこのような点に鑑みてなされたものであり、非同期回路に存在する非同期箇所において信号の受渡しが正しく行われるか否かをRTLのシミュレーション段階で精度良く効率的に検証することのできる非同期回路検証方法および非同期回路検証プログラムを提供することを目的とする。
本発明では上記課題を解決するために、図1に例示する構成により実現可能な非同期回路検証方法が提供される。本発明の非同期回路検証方法は、非同期回路検証システムを用いて非同期回路の動作を検証する非同期回路検証方法において、前記非同期回路検証システムの非同期抽出部によって、RTLで記述された論理回路から非同期回路部を抽出し、前記非同期回路検証システムの制御タスク挿入部によって、抽出された前記非同期回路部の情報に基づき、前記非同期回路部にて前記論理回路内のクロックを変調させて前記非同期回路部の遅延を発生するためのクロック変調タスクを前記論理回路に挿入し、前記非同期回路検証システムの前記制御タスク挿入部によって、抽出された前記非同期回路部の情報に基づき、前記非同期回路部にて前記論理回路内の信号を遅延させるための遅延制御タスクを前記論理回路に挿入し、前記非同期回路検証システムのクロック・遅延制御部によって、抽出された前記非同期回路部に関連付けられた、クロックグループ、クロック変調値、遅延挿入箇所または信号遅延値の少なくとも1つを含む制御パラメータに基づいて、前記クロック変調タスクにクロック変調させて前記非同期回路部の遅延を発生する第1命令と前記遅延制御タスクに信号遅延を発生させる第2命令とを発行し、前記非同期回路検証システムのシミュレーション部によって、前記第1命令と前記第2命令とに基づいて、前記クロック変調タスクと前記遅延制御タスクとが挿入された前記論理回路のシミュレーションを行う、ことを特徴とする。
このような非同期回路検証方法では、RTL31についてあらかじめ非同期箇所を抽出しておき、RTL31のシミュレータ33によるシミュレーション時に、抽出された非同期箇所で発生し得る遅延をRTL31内のクロックを変調させ信号に遅延を与え発生させる。これにより、非同期箇所に様々な遅延状態を作り出し、非同期箇所自体における動作のほか非同期箇所の後段以降における信号伝播や複数の非同期箇所間の干渉等も含めた非同期回路の動作を、RTL31のシミュレーション段階で精度良く効率的に検証することができるようになる。
また、本発明では、コンピュータに非同期回路の動作を検証する処理を実行させる非同期回路検証プログラムにおいて、コンピュータを、RTLで記述された論理回路から非同期回路部を抽出する抽出手段、抽出された前記非同期回路部の情報に基づき、前記非同期回路部にて前記論理回路内のクロックを変調させて前記非同期回路部の遅延を発生するためのクロック変調タスクを前記論理回路に挿入する挿入手段、抽出された前記非同期回路部の情報に基づき、前記非同期回路部にて前記論理回路内の信号を遅延させるための遅延制御タスクを前記論理回路に挿入する挿入手段、抽出された前記非同期回路部に関連付けられた、クロックグループ、クロック変調値、遅延挿入箇所または信号遅延値の少なくとも1つを含む制御パラメータに基づいて、前記クロック変調タスクにクロック変調させて前記非同期回路部の遅延を発生する第1命令と前記遅延制御タスクに信号遅延を発生させる第2命令とを発行する発行手段、前記第1命令と前記第2命令とに基づいて、前記クロック変調タスクと前記遅延制御タスクとが挿入された前記論理回路のシミュレーションを行う検証手段、として機能させることを特徴とする非同期回路検証プログラムが提供される。
このような非同期回路検証プログラムによれば、RTLのシミュレーション段階において、抽出した非同期箇所に様々な遅延状態を作り出し、遅延を考慮したシミュレーションを行うことができるので、精度良く効率的に非同期回路の動作検証が行えるようになる。
本発明では、RTLのシミュレーション段階でクロック変調や信号遅延を発生させることで、非同期箇所に発生し得る様々な遅延状態を作り出すことができ、メタステーブルのほかレーシングやオーバーディレイといった非同期回路に特徴的な動作をシミュレーションにおいて発生させることができる。それにより、抽出した非同期箇所自体における動作のほか非同期箇所の後段以降における信号伝播や複数の非同期箇所間の干渉等も含め、非同期回路の動作検証を精度良く効率的に行うことができる。
さらに、本発明では、非同期回路のタイミングを考慮した動作検証を論理合成前のRTLのシミュレーション段階で行うので、たとえ問題点が発見された場合であってもその前の論理設計段階に戻ればよく、論理合成以降の段階で問題点が発見された場合に比べ非常に短期間のうちに動作検証を行うことができ、回路設計者の負担を大幅に軽減し、製品の開発・製造期間の短縮化を図ることができる。
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図2は非同期回路検証環境の概念図である。
従来、回路設計者は、RTL1の作成後、テストベンチを用いて論理シミュレーションが行われる論理検証環境2においてRTL1の論理検証を行っている。本発明では、非同期回路の動作検証が行われる非同期回路検証環境3を、従来から回路設計者が用いてきた論理検証環境2を包含するようにして構築する。
すなわち、それによって既存の論理検証環境2を利用して非同期回路の動作検証を行うことができ、検証に当たり新たなテストベンチの作成等は不要である。そのため、このような非同期回路検証環境3は、従来の回路設計環境の中に容易に構築することが可能であり、また、非同期回路の動作検証で問題点が発見された場合にも、RTL1や論理検証環境2を利用してその問題箇所の特定や発生した障害の再現が容易に行えるようになっている。
図1は非同期回路検証システムの概略説明図である。
図1に示す非同期回路検証システム3aでは、まず、従来同様、回路設計者によってRTL1の論理回路が設計される。
そして、このRTL1は、そこに含まれる非同期箇所を自動的に抽出するプログラム(非同期抽出プログラム)11に入力される。ここで、非同期箇所とは、論理回路内のクロックの異なる複数回路間で一方の回路から他方の回路へ信号が受け渡されてクロックの乗換えが起きる箇所をいう。
非同期抽出プログラム11は、RTL1が入力されると、そのRTL1内の非同期箇所をすべて抽出し、抽出された全非同期箇所が記録された非同期リスト12を生成する。この非同期リスト12には、各非同期箇所に、信号の乗換えが起こるクロックのグループ(クロックグループ)、および論理シミュレーション時に信号遅延が考慮されるべき遅延挿入箇所(送信クロック名、送信レジスタ名、受信クロック名、受信レジスタ名)の情報等が関連付けられて記録される。
このように非同期抽出プログラム11で生成された非同期リスト12は、制御タスク挿入部20に入力される。制御タスク挿入部20は、コントロールカード21を生成するとともに、RTL1およびその論理シミュレーションに用いるテストベンチに対し、その論理シミュレーション時に非同期箇所でクロック変調や信号遅延の制御が行えるようにするための制御タスクの挿入を行う。
ここで、コントロールカード21とは、論理シミュレーション時にシミュレータ33と連携するクロック・遅延制御部40に対し、連携に必要な制御パラメータ(クロックグループ、クロック変調値、遅延挿入箇所、信号遅延値等)の指定を行うものである。
制御タスク挿入部20は、非同期リスト12を入力とし、各非同期箇所に関連付けられたクロックグループや遅延挿入箇所の情報等を用いて制御パラメータを含むコントロールカード21を生成する。なお、コントロールカード21は、その制御パラメータの指定/変更を後から回路設計者が修正することもできるようになっている。
制御タスク挿入部20によってRTL1およびテストベンチに挿入される制御タスクには、大きく分けて、回路内のクロックを変調させるためのクロック変調タスクと、回路内に信号遅延を挿入するための遅延制御タスクの2種類が設定されている。それぞれの制御タスクは、クロック・遅延制御部40とシミュレータ33とを連携させるためのインタフェース(I/F)機能を有する。制御タスク挿入部20は、RTL1のクロックグループに対してクロック変調タスクを挿入し、遅延挿入箇所に対して遅延制御タスクを挿入する。これにより、オリジナルのRTL1に制御タスクが挿入されたRTL31、およびオリジナルのデータに制御タスクが挿入されたテストベンチ32が得られる。
得られたRTL31およびテストベンチ32を用いてシミュレータ33による論理シミュレーションが行われる。シミュレータ33は、RTL31に挿入されたクロック変調タスクや遅延制御タスクによってクロック・遅延制御部40とインタフェースし、クロック変調や信号遅延を発生させながら、RTL31の論理シミュレーションを行い、その時に発生するエラー等を検出する。
論理シミュレーションのログ・結果51は集計部50に供給され、集計部50は、ログ・結果51を入力とし、それにエラー発生時の情報を関連付け、論理シミュレーションの実行結果をカバレッジとして集計する。集計結果は試験成績書52として非同期回路検証システム3aが有する表示装置等の画面上に出力され、必要に応じて印刷される。
図3は非同期回路検証システムの構成例である。
非同期回路検証システム3aは、大きく分けて、RTL1を用いてコントロールカード21を生成する非同期抽出部10、コントロールカード21に基づいて論理シミュレーション時にクロック変調や信号遅延の発生を制御するクロック・遅延制御部40、およびシミュレーション部30により構成されている。
このシミュレーション部30では、クロック変調や信号遅延の制御タスクが挿入されたRTL31およびテストベンチ32、RTL31とインタフェースされたデバイスモデル34が用いられる。シミュレーション部30では、クロック・遅延制御部40によってクロック変調や信号遅延が引き起こされながらシミュレータ33によるRTL31の論理シミュレーションが行われる。
非同期抽出部10は、オリジナルのRTL1に対して非同期抽出プログラム11を実行して非同期リスト12を生成する。制御タスク挿入部20は、その非同期リスト12を用いてクロック・遅延制御部40の制御パラメータを含んだコントロールカード21を生成する。コントロールカード21には、回路設計者が必要に応じて制御パラメータの指定/変更が行えるようになっている。また、この制御タスク挿入部20により、RTL31およびテストベンチ32には制御タスクが挿入される。
クロック・遅延制御部40は、コントロールカード21から制御パラメータを読み込み、論理シミュレーション時に行うクロック変調や信号遅延に応じたユニットプログラムを生成するクロック変調部42および遅延制御部43の制御を行うコントロール部41を有している。クロック変調部42は、RTL31およびテストベンチ32に挿入されたクロック変調タスクに対して制御パラメータに応じたクロック変調を行うクロック変調ユニットの発行を行い、遅延制御部43は、遅延制御タスクに対して制御パラメータに応じた信号遅延を行う遅延制御ユニットの発行を行う。その際、クロック変調ユニットはクロックグループの数だけ準備され、遅延制御ユニットは遅延挿入箇所の数だけ準備される。
クロック変調部42でクロック変調ユニットが発行されると、RTL31に挿入されているクロック変調タスクにより、クロック・遅延制御部40とシミュレーション部30とが連携可能になる。これにより、シミュレーション部30においてクロック変調を発生させることが可能になる。RTL31の論理シミュレーションが始まると、クロックグループ数分のクロック変調ユニットがそれぞれ独立にクロックを変調させる。
また、遅延制御部43で遅延制御ユニットが発行されると、RTL31に挿入されている遅延制御タスクにより、クロック・遅延制御部40とシミュレーション部30とが連携可能になる。これにより、シミュレーション部30において信号遅延を発生させることが可能になる。RTL31の論理シミュレーションが始まると、遅延挿入箇所分の遅延制御ユニットがそれぞれ独立に信号遅延を発生させる。
集計部50のログ・カバレッジ部53は、RTL31の論理シミュレーション時のエラー発生状況、各クロックに与えたクロック変調値、各信号に与えた遅延量(遅延時間)等をトレースする。モニタ部54は、クロック変調や信号遅延を行った信号波形を取得する。なお、クロック・遅延制御部40のログ・カバレッジ集計機能および信号波形取得機能については後述する。
図4はクロック・遅延制御部の処理フローである。
シミュレーション部30では、制御タスクが挿入されたRTL31およびテストベンチ32を用いた論理シミュレーションがシミュレータ33によって行われる。
クロック・遅延制御部40は、クロック変調部42および遅延制御部43でクロック変調ユニットおよび遅延制御ユニットを発行するため、まずコントロール部41において、コントロールカード21からシミュレーション条件に関する情報を読み込み(ステップS1)、その情報を基に各ユニット発行のための設定を行う(ステップS2)。
そして、クロック・遅延制御部40は、クロック変調部42においてクロックグループ数分のクロック変調ユニットを発行し(ステップS3)、論理シミュレーション中のRTL31に既に挿入されているクロック変調タスクに対してクロック変調を行う。さらに、クロック・遅延制御部40は、遅延制御部43において遅延挿入箇所分の遅延制御ユニットを発行し(ステップS4)、論理シミュレーション中のRTL31に挿入されている遅延制御タスクに対して信号遅延を行う。
論理シミュレーション終了後、クロック・遅延制御部40は、クロック変調部42および遅延制御部43においてクロック変調ユニットおよび遅延制御ユニットをそれぞれ終了し(ステップS5,S6)、シミュレータ33とのインタフェースを終了する(ステップS7)。
図5は非同期回路検証システムを利用した回路設計フローの一例である。
この図5に示す回路設計フローでは、まず、論理設計段階において非同期箇所を含んだRTL1の論理回路が作成され(ステップS10)、その論理シミュレーションが実行される(ステップS11)。この論理シミュレーション段階においてRTL1の動作検証が行われる(ステップS12)。
この論理シミュレーション段階での動作検証では、前述のように、オリジナルのRTL1から非同期箇所を抽出する。そして、生成されたコントロールカード21に基づき、制御タスクが挿入されたRTL31に対してクロック・遅延制御部40からクロック変調や信号遅延を意図的に発生させる。
この動作検証によってRTL31に問題点が発見された場合には、ステップS10に戻って論理設計データを修正し、修正後のRTL1について再度上記のような論理シミュレーションを行う。
そして、RTL31に問題点がなかった場合には、従来同様、論理合成が行われ(ステップS13)、仮配線、ゲートライブラリの読込み、SDFの作成が行われ、ゲートレベルの論理シミュレーションが行われる(ステップS14)。次いで、レイアウト(ステップS15)、STAタイミング検証(ステップS16)を経て、試作品が作成され(ステップS17)、実機評価が行われる(ステップS18)。また、ステップS10の論理設計後は適当な段階で形式検証が行われ(ステップS19)、ここで期待した結果が得られなければステップS10に戻って論理設計データが修正され、以降の処理が行われる。
このように、RTLの論理シミュレーション段階でクロック変調や信号遅延を発生させることで、非同期箇所に発生し得る様々な遅延状態を作り出すことができる。そのため、メタステーブルをはじめ、レーシングやオーバーディレイといった非同期回路に特徴的な動作を論理シミュレーション中に頻繁に発生させることが可能になる。これにより、抽出した非同期箇所自体における動作のほか、非同期箇所の後段以降における信号伝播や複数の非同期箇所間の干渉等を含め、非同期回路の動作検証を精度良く効率的に行うことができる。
さらに、このように非同期回路の動作検証を論理合成前のRTLの論理シミュレーション段階で行うことで、たとえRTLに問題点が発見された場合であっても、その前の論理設計段階に戻ればよい。したがって、論理合成以降の段階で問題点が発見された場合に比べ非常に短期間のうちに動作検証を行うことができ、回路設計者の負担を大幅に軽減し、製品の開発・製造期間の短縮化を図ることができる。
図6は非同期回路の動作検証による効果の説明図である。
例えば、従来は、RTLの論理シミュレーション段階でCLKMの送信側回路とCLKNの受信側回路との間の信号受渡しが正常に行われている場合でも、試作品の段階で障害が発生することがあった。その場合、再度RTLを作り直してその論理シミュレーション以降の処理を行わなければならなかった。
しかし、上記のように非同期回路に発生し得る遅延を論理合成前のRTLの論理シミュレーション段階で意図的に発生させることで、問題点を精度良く効率的に発見することができる。例えば、ゲートレベルの論理シミュレーション段階でビット間遅延が生じた結果問題点が発見されたり、LSI等の製造後に問題点が発見されたりすることがほとんどなくなる。したがって、RTLの再作成による無駄を最小限に抑えることができるようになる。そして、比較的短期間のうちに完成度の高い試作品を作成して実機評価を行うことができるようになるので、回路設計者の負担を軽減し、LSI等の開発・製造期間を短縮することが可能になる。
なお、上記図5に示した回路設計フローにおいては、勿論従来同様、図中点線で示したように、ステップS14のゲートレベル論理シミュレーション、ステップS16のSTAタイミング検証、ステップS18の実機評価において期待された結果が得られない場合には、ステップS10に戻って以降の処理を再度行うことも可能である。あるいは、ステップS18の実機評価で発生した問題に応じて、ステップS13の論理合成、ステップS14のゲートレベル論理シミュレーション、ステップS15のレイアウト、ステップS16のSTAタイミング検証に戻り、以降の処理を再度行うことも可能である。
次に、上記非同期回路検証システム3aにおけるクロック変調と信号遅延についてより詳細に説明する。
まず、クロック変調について説明する。
図7はクロック変調タスクの説明図である。
例えば、上位モジュール60の内部に含まれる非同期の内部モジュール61に対してあるCLKMが入力するようにRTL1が設計されている場合を想定する。この場合、コントロールカード21を基に制御タスク挿入部20によってRTL1に挿入されるクロック変調タスク62は、内部モジュール61の直前にCLKMのクロックパスを切断して挿入される。これにより、クロック変調タスク62が挿入されたRTL31が得られる。
このようにクロック変調タスク62が挿入されることで、RTL31の論理シミュレーションを行うシミュレータ33がクロック・遅延制御部40と連携可能になり、RTL31の論理シミュレーション時にはこのクロック変調タスク62に対して所定の変調量の変調クロックが挿入される。ここで、クロックの変調量は、次の図8から図10に示すようなフェイズ・スキュー(Phase Skew),デューティー(Duty),ジッター(Jitter)の3つのパラメータを用いて決定される。
図8はPhase Skewの説明図、図9はDutyの説明図、図10はJitterの説明図である。
Phase Skewは、図8に示すように、参照するクロック(Relative Clock)と変調を与えるクロック(Clock)との位相差Tpの最小値から最大値の範囲をいう。
Dutyは、図9に示すように、クロックのある任意の1周期のhigh,lowのパルス幅の比(Tlow/Thigh)の最小値から最大値の範囲をいう。
Jitterは、図10に示すように、連続する2周期(T1とT2,T2とT3,T3とT4)における周期のばらつき(T2−T1,T3−T2,T4−T3)の最小値から最大値の範囲をいう。または、入力するクロックの1周期(T)と各周期との間の周期のばらつき(T1−T,T2−T,T3−T,T4−T)の最小値から最大値の範囲をいう。
変調クロックは、Phase Skew,Duty,Jitterの各パラメータ範囲内で、変調を与えるクロック(「変調対象クロック」という。)の1周期ごとに、その次の1周期分のクロック周期およびDuty比をランダムに自動計算して生成される。その際、変調対象クロックの選択やPhase Skew,Duty,Jitterの各パラメータによってどのような変調範囲を与えるかといったコントロールカード21に対する制御パラメータの指定/変更は、非同期リスト12を基に自動でまたはユーザによって手動で、論理シミュレーション前に行われる。
クロック変調に関し、クロック・遅延制御部40は、Phase Skewで指定された任意のクロックノードに対し、Phase Skewで指定された範囲内で変調クロックの位相差を保つようにクロック周期を計算する機能を有している。この場合、クロック・遅延制御部40では、回路内の任意のクロックが参照クロックとして選択され、その参照クロックと変調対象クロックとの位相差がPhase Skew範囲として正の値で指定される。そして、指定されたPhase Skew範囲内で、変調対象クロックの1周期ごとにランダムに参照クロックとの位相差が計算され、その分だけ位相をずらしたクロック周期が求められる。これが変調クロックのクロック周期になる。
また、クロック変調に関し、クロック・遅延制御部40は、Jitterで指定された範囲内でクロック周期を計算する機能を有している。この場合、クロック・遅延制御部40では、任意に指定されたJitterの範囲内で、変調クロックのクロック周期が1周期ごとにランダムに計算される。前述のように通常Jitterとは連続する2周期の周期差を表すものであるが、このように変調前の変調対象クロックのクロック周期とその変調後に得られる変調クロックのクロック周期との周期差として計算に用いることもできる。
また、クロック変調に関し、クロック・遅延制御部40は、Dutyで指定された範囲内でクロックのhigh,lowのパルス幅を計算する機能を有している。この場合、クロック・遅延制御部40では、Phase Skew,Jitterで指定された範囲内で計算されたクロック周期について、指定されたDuty比の範囲内で、変調対象クロックのhigh,lowのパルス幅が計算され、そのクロックにDuty比が与えられる。
図11はクロック変調の説明図である。
クロック変調は、コントロールカード21に基づくクロック・遅延制御部40のクロック変調ユニットの発行に際し、まず、図11に示すように、現在出力中の1周期の変調対象クロック70に対し、設定されたPhase Skew,Jitterの範囲内で次の1周期分の変調クロック71のクロック周期を求める。このクロック周期に対し、設定されたDuty比の範囲からhigh,lowのパルス幅を求め、変調クロック71を求める。
そして、クロック・遅延制御部40がクロック変調ユニットを発行することで、求められた変調クロック71が、RTL31の論理シミュレーション中に回路内の図7に示したように挿入されたクロック変調タスク62に強制的に挿入され、それによりクロック変調が発生する。
1周期分の変調クロック71の挿入後は、更にその次の変調クロックを同様に求め、論理シミュレーション中の回路内に挿入していく。
図12はクロック変調による信号変化の一例である。
例えば、本来クロック変調前にはCLKMで入力信号INと出力信号OUTが図12上図に示すように推移する場合について、そのCLKMに上記のようなクロック変調を行うと、クロック変調後には入力信号INと出力信号OUTが図12下図に示すように変化して推移するようになる。このように、クロック変調を行うことにより、本来正しく拾えていた入力信号INが拾えずにデータの取りこぼしが発生するといった状況を、RTL31の論理シミュレーション段階で作り出すことが可能になる。
続いて、信号遅延について説明する。
図13は信号遅延の説明図である。
例えば、図13上図に示すような信号S1に対して遅延を与えたい場合には、信号S1の変化点Pを遅延制御タスクによって監視し、変化が検出されたときには、図13下図に示すように、与えたい遅延時間分など、所定の遅延量だけずらして信号S1を出力するよう、遅延制御タスクに対して遅延を制御する。これにより、信号S1の取りこぼし等を発生させる。
この非同期回路検証における信号遅延では、遅延を与える信号の選択やその遅延の範囲、非同期箇所の送信側と受信側のいずれに遅延を与えるかといったコントロールカード21に対する制御パラメータの指定/変更は、非同期リスト12を基に自動でまたはユーザによって手動で、論理シミュレーション前に行われる。
RTL31に挿入される遅延制御タスクには、後述の強制遅延制御を行うための強制遅延制御タスク、および後述の遅延挿入パラメータ制御を行うための遅延挿入パラメータ制御タスクの2種類が設定されており、それぞれに対してクロック・遅延制御部40から信号遅延が制御されるようになっている。このように、クロック・遅延制御部40は、遅延制御タスクに対して遅延を制御することにより、非同期回路内に所定の遅延量の信号遅延を挿入することができるようになっている。
遅延量は、非同期回路に関連するクロックの1周期範囲内、またはユーザによって指定された範囲内で、コントロールカード21に基づき、クロック・遅延制御部40がランダムに計算する。遅延量は、1シミュレーションにつき1回計算され、そのシミュレーション中は変化しない。しかし、再度シミュレーションを行う場合には、クロック・遅延制御部40で新たな遅延量が再計算される。
ただし、クロック・遅延制御部40では、遅延量およびクロック変調量(周期およびパルス幅)を計算するために生成された乱数に対して番号(「乱数生成番号」という。)が付与され、保存される。そして、乱数生成番号が指定されれば、以前行ったシミュレーションと同じ遅延量のシミュレーションをクロック・遅延制御部40により何度でも再現することができるようになっている。
ここで、まず強制遅延制御について説明する。
強制遅延制御は、まず、遅延制御ユニットが発行されると、論理シミュレーション時のレジスタの入力信号について、その変化前後の信号値がそれぞれクロック・遅延制御部40に保存される。そして、そのレジスタを駆動するクロックがアクティブになったときに、クロック・遅延制御部40が保存していた変化前の信号値を強制的にそのレジスタ出力に挿入し、所定遅延量経過後に、クロック・遅延制御部40が保存していた変化後の信号値を強制的にそのレジスタ出力に挿入する。
図14は強制遅延制御の説明図である。
非同期箇所の送信側に遅延を与える場合、まず、RTL31内の非同期乗換えを行う信号送信側のレジスタを遅延挿入レジスタとする。そして、RTL31の論理シミュレーション時には、この遅延挿入レジスタについて、駆動するクロック(CLK)がアクティブになっていて入力信号INが変化したことを条件に、変化前の信号値aをクロック・遅延制御部40に保存し(OUT_reg)、かつ、変化後の信号値bをクロック・遅延制御部40に保存する(OUT_nxt)。
そして、クロック・遅延制御部40に保存された変化前の信号値aを、CLKがアクティブになった後で、遅延挿入レジスタの変化後の信号値bが保存されたのと同時刻に、クロック・遅延制御部40から遅延挿入レジスタの出力信号OUTに強制的に挿入する。さらに、あらかじめ計算された遅延量の経過後、クロック・遅延制御部40に保存された変化後の信号値bを遅延挿入レジスタの出力信号OUTに強制的に挿入する。これにより、出力信号OUTには遅延Qが挿入されるようになる。
なお、この強制遅延制御では、後述の遅延挿入パラメータ制御とは異なり、強制遅延制御タスクを挿入するのみでRTLに対して本質的な変更は加えられない。また、このような強制遅延制御は、遅延挿入レジスタがビット幅を持つ場合には、各ビットに対して行われる。
図15はビット幅を持つ信号の各ビットに対して遅延挿入を行う場合の説明図である。
CLKMの送信側回路80とCLKNの受信側回路81について、ビット幅を持つ信号S2に遅延を発生させる場合には、各ビットに対して別々に遅延を与えるように遅延制御が行われる。これにより、各ビットに対してそれぞれ別々の遅延(ここではDelay#1〜#5)が与えられ、各ビット間の遅延差を考慮した動作検証が可能になる。
次いで、遅延挿入パラメータ制御について説明する。
遅延挿入パラメータ制御は、クロック・遅延制御部40が遅延制御ユニットを発行すると、RTL31に遅延制御用のパラメータ(遅延挿入パラメータ)を挿入し、この遅延挿入パラメータに応じて、所定遅延量をRTL31に挿入する。この制御では、非同期乗換えを行う送信側、受信側いずれの信号に対しても遅延を挿入することが可能である。
図16は送信側出力信号の遅延挿入パラメータ制御の説明図である。
クロック・遅延制御部40は、送信側レジスタの出力信号に遅延を挿入する遅延挿入パラメータをRTL31に自動挿入する機能(送信側レジスタ出力遅延挿入機能)を有している。その挿入方法としては、図16のVerilogサンプル1,2にそれぞれ示すように、送信側のalways文に直接挿入する方法(図16上図)、あるいはassign文に取り出して挿入する方法(図16下図)がある。
図17は受信側入力信号の遅延挿入パラメータ制御の説明図である。
クロック・遅延制御部40は、上記の送信側レジスタ出力遅延挿入機能のほか、受信側レジスタに入力される直前の入力信号に遅延を挿入する機能(受信側レジスタ入力遅延挿入機能)を有している。通常、RTL31のレジスタ記述では、レジスタ内の代入文で論理演算、分岐、ループといった制御構造が作成されている。本機能は、これらの論理式通過後の信号に対して遅延を挿入するために、それに必要な遅延挿入パラメータをRTL31に自動挿入するものである。その場合、図17のVerilogサンプルに示すように、遅延挿入パラメータを受信側のassign文に取り出して挿入する方法がある。
図18は遅延挿入による信号変化の一例である。
例えば、本来遅延挿入前にはCLKMのときに入力信号INと出力信号OUTが図18上図に示すように推移する場合について、入力信号INに遅延挿入を行うと、遅延挿入後には出力信号OUTが図18下図に示すように変化して推移するようになる。
このように遅延挿入を行うことにより、CLKM,CLKN間の信号の乗換えが正しく行われず、信号が本来のタイミングよりも遅れて伝播されてしまうといった状況を、RTL31の論理シミュレーション段階で作り出すことが可能になる。
以上説明したように、本発明に係る非同期回路検証システムは、非同期抽出プログラム11によってRTL1の論理回路からそこに存在する非同期箇所を抽出する手段を備える。それとともに、この非同期回路検証システム3aは、RTL1に制御タスクを挿入する制御タスク挿入部20、制御タスクに対し各種遅延を発生させる機能するクロック・遅延制御部40およびRTL31の論理シミュレーションを行うシミュレーション部30により、非同期箇所で発生し得る遅延をクロック変調や信号遅延によって論理シミュレーション段階で作り出し、RTL31の動作を検証する手段を備えている。
これにより、論理合成前のRTLの論理シミュレーション段階において、RTLの任意の非同期箇所に対してクロック変調や信号遅延を挿入してメタステーブルによる不定値を発生させたり、レーシングやオーバーディレイを発生させたりすることができる。その結果、各非同期箇所が不定値を受け取る確率を大幅に上げることができ、また、様々な信号遅延状態を作り出すことができるので、非同期回路が正しく設計され動作しているか否かを精度良く効率的に検証することができる。
なお、この非同期回路検証システム3aは、ゲートレベルの論理シミュレーションにも同様に適用可能であり、それにより、従来不定値のサンプリングが稀にしか発生しなかったゲートレベルの論理シミュレーションにおいてそのサンプリング確率を大幅に上げて動作検証を行うことも可能になる。
次に、非同期回路検証システム3aのその他の機能について説明する。
非同期回路検証システム3aは、上記のように、クロックの変調量や信号遅延量を自動的に変化させながら、RTL31の論理シミュレーションを行うシミュレータ33と連携する機能を有している。そして、非同期回路検証システム3aは、論理シミュレーションの際には、そのシミュレーション回数の指定、シミュレーション終了日時の指定、全シミュレーションのログやカバレッジの集計が行えるようになっている。
次いで、ログ・カバレッジ集計機能について説明する。
非同期回路検証システム3aは、クロック変調によるエラー発生状況や信号遅延によるエラー発生状況など、シミュレーション時の情報を集計することができるようになっている。これにより、各クロックに与えたクロック変調の設定とシミュレーション時の情報を集計することができ、また、各非同期信号に対して与えた信号遅延の設定とシミュレーション時の情報を集計することができるようになっている。この非同期回路検証システム3aでは、このような集計機能を備えることで、検証もれを防止することが可能になっている。
さらに、非同期回路検証システム3aは、乱数生成番号とシミュレーション時の情報を関連付けて集計することができるようになっている。これにより、どの乱数生成番号のときにエラーが発生したかを確認することができる。そして、クロック・遅延制御部40は、ユーザによって同じ乱数生成番号が選択されればその乱数を用いたときの論理シミュレーションを再び行ってエラーの再現が行えるようになっている。
さらにまた、非同期回路検証システム3aは、信号遅延量とシミュレーション時の情報の統計をとることができるようになっており、どの信号にどの程度の遅延を与えるとエラーが発生するのかを評価した統計表を作成することもできるようになっている。
次いで、信号波形取得機能について説明する。
非同期回路検証システム3aは、RTL31の非同期箇所に遅延を挿入したときの信号の波形ファイルを取得することができるようになっている。波形を取得するか否かはユーザが任意に設定することができ、また、波形を取得する非同期箇所もユーザが任意に設定することができる。
取得可能な信号波形としては、非同期回路の送信側レジスタ信号、受信側レジスタ信号、送信側クロックおよび受信側クロックがある。波形は例えばVCD(Value Change Dump)フォーマットで取得することができる。
このように非同期回路検証システム3aでは、非同期箇所の信号変化を波形で確認することができるようになっているので、エラー発生状況やエラー発生条件等を非同期箇所ごとに詳細に解析することができる。これにより、RTL31の論理シミュレーション段階で問題点が発見された場合でも、RTL1の再作成を効率的かつ適切に行うことが可能になる。
なお、上記の非同期回路検証システムの各種処理機能は、次の図19に例示すようなハードウェア構成を有するコンピュータを用いて実現される。
図19はコンピュータのハードウェア構成例である。
コンピュータ90は、CPU(Central Processing Unit)91、ROM(Read Only Memory)92、RAM(Random Access Memory)93、HDD(Hard Disk Drive)94、グラフィック処理部95、入力I/F(Interface)96、通信I/F97等によって構成され、これらはバス98を介して接続されている。
ここで、CPU91は、ROM92、RAM93、HDD94に格納されているプログラムやデータに応じた処理を実行する。ROM92は、CPU91が実行する基本的なプログラムやデータを記録する。RAM93は、CPU91が実行途中のプログラムやデータを記録する。HDD94には、CPU91が実行するOS(Operation System)やアプリケーションプログラム等が記録される。
グラフィック処理部95には、ディスプレイなどの表示装置95aが接続され、グラフィック処理部95は、CPU91からの描画命令に従って表示装置95aの画面上に操作情報、論理シミュレーション後のログやカバレッジの集計結果、信号波形等を表示する。
入力I/F96には、マウス96aやキーボード96bが接続され、これらによってユーザが入力した情報を受信し、バス98を介してCPU91に送信する。通信I/F96は、必要に応じ、他のコンピュータとの間のLAN接続やインターネット接続のためのインタフェースである。
このようなハードウェア構成を有するコンピュータを1台または2台以上用いることによって非同期回路検証システムの各種処理機能が実現される。その場合、非同期回路検証システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以下、非同期回路検証システムの適用例について説明する。
ここでは、非同期回路(TBridge_top)の動作検証を行った場合を例に説明する。この非同期回路の仕様は次のようなものである。
まず、この非同期回路は、RTLのブリッジ(Bridge)回路であり、あるCLKS(S_CLK)から別のCLKA(A_CLK)へ信号の乗せ換えを行う回路である。ただし、非同期信号は2段のFF回路(ダブルシンクロナイザ)で受信するものとする。
この場合、非同期回路のクロックグループはS_CLKとA_CLKの2系統であり、この2系統のクロックは非同期であるが位相は合っている必要はない。
クロックの周波数には特に規定はなく、クロック同士の関係についても次の3つ、Fast:S_CLK>A_CLK,Typ:S_CLK=A_CLK,Late:S_CLK<A_CLKのいずれの関係を有していても構わない。
リセットはS_CLK側から行われるものとし、リセット中にA_CLKが停止していてもリセットは有効とする。また、データのビット幅は32ビットとする。
このような仕様のRTLの非同期回路についてその動作検証を行う。
図20はTBridge_top回路の信号伝播を示す図である。
図20は、前段のS_CLKのレシーバ回路(FrontReceiver)110と後段のA_CLKのトランシーバ回路(AfterTransceiver)120との間の信号伝播の様子を示している。
まず、FrontReceiver110においてタイミング信号S_XStrobeに応じたタイミングで入力データS_DATAが入力されると、FrontReceiver110からAfterTransceiver120にタイミング信号I_Xstrobeのタイミングで中間データI_dataが入力され、AfterTransceiver120からタイミング信号A_XStrobe,出力データA_DATAが出力される。その後、AfterTransceiver120には、一連の動作終了を示す信号A_XReadyが入力され、中間のI_Xreadyを経て最終的にFrontReceiver110からS_XReadyが出力される。FrontReceiver110では、このS_XReadyにより次のデータ転送が行われるようになる。
図21はTBridge_top回路の回路構成図である。
TBridge_top回路100は、S_CLKで同期するFrontReceiver110とA_CLKで同期するAfterTransceiver120を有している。
FrontReceiver110には受信コントロール部(FR_control)111および送信コントロール部(FT_control)112が設けられており、入力される信号に応じてそれぞれ状態(FR_STATE,FT_STATE)が切り替わり、出力する信号が制御される。また、AfterTransceiver120にはそれぞれ受信コントロール部(AR_control)121および送信コントロール部(AT_control)122が設けられており、入力される信号に応じてそれぞれ状態(AR_STATE,AT_STATE)が切り替わり、出力する信号が制御される。
このようなTBridge_top回路100において、FR_control111にS_XStrobeに応じてS_DATAが入力されると、FT_control112において変換後のTr_dataが生成される。このTr_dataは、Tr_XstrobeのタイミングでI_dataとしてAR_control121に対して出力され、Re_dataとしてAR_control121に入力される。AR_control121では、Re_dataが入力されるとRe_Xstrobe,Re_Xreadyの各信号が生成される。
AR_control121に入力されたRe_dataは、AT_control122に供給され、A_XStrobeと共に、A_DATAとしてAT_control122から出力される。AT_control122にA_XReadyが入力されると、AR_control121からはRe_XreadyがI_Xreadyとして出力され、FT_control112にTr_Xreadyとして入力される。FR_control111からはS_XReadyが出力され、FrontReceiver110は、このS_XReadyを受けて、次のデータ転送処理に移行する。
なお、S_XRESETはリセット信号であり、前述のように、リセットはS_CLK側から行われ、リセット中にA_CLKが停止していてもリセットは有効である。
図22はTBridge_top回路の非同期リスト、図23および図24はコントロールカードである。
図22に示すように、非同期リスト12aには、ここでは120MHzのS_CLKと60MHzのA_CLKのクロックグループと共に、TBridge_top回路100の非同期信号が記録されている。TBridge_top回路100の非同期信号は、図22に示したように、ここでは、Tr_Xstrobe(S_CLK)とRe_Xstorobe(A_CLK)、Tr_data[31:0](S_CLK)とRe_data[31:0](A_CLK)、およびRe_Xready(A_CLK)とTr_Xready(S_CLK)の3つである。これら3つの非同期信号が含まれる非同期リストから生成されるコントロールカードは、図23および図24に示すようなものとなる。
図23および図24に示すコントロールカード21aでは、SetClock部130において、S_CLK(Group:0)とA_CLK(Group:1)のそれぞれについて、Jitter,Duty,Phase Skewのパラメータ範囲のほか、10psを遅延の1ユニットとする等、論理シミュレーションに用いられる各制御パラメータが設定される。
また、SetSignal部140においては、受渡しが行われる各非同期信号についてそれぞれ、送信側回路の情報と受信側回路の情報や、論理シミュレーションを行うときの遅延ユニット数等が設定される。例えば、SetSignal部141においては、FrontReceiver110のFT_control112から送信されるTr_Xstrobeが、AfterTransceiver120においてRe_Xstrobeとして受信され、その際、送信側が120MHzのS_CLKであり、受信側が60MHzのA_CLKであるといった情報が設定されている。
同様にSetSignal部142においては、FrontReceiver110のFT_control112から送信されるTr_data[31:0]が、AfterTransceiver120においてRe_dataとして受信され、その際、送信側が120MHzのS_CLKであり、受信側が60MHzのA_CLKであるといった情報が設定されている。
また、SetSignal部143においては、AfterTransceiver120のAR_control121から送信されるRe_Xreadyが、FrontReceiver110においてTr_Xreadyとして受信され、その際、送信側が60MHzのA_CLKであり、受信側が120MHzのS_CLKであるといった情報が設定されている。
ここで、図25はTBridge_top回路の論理設計時に想定されたタイミングチャートである。
TBridge_top回路100がこの図25に示すようなタイミングチャートに従って動作するかを検証する。その際、検証パターンは、0と1がチェッカパターンでトグルするよう、32’haaaa_aaaa,32’h5555_5555を交互にS_DATAとしてTBridge_top回路100に入力する。そして、A_XStrobe時にA_DATAの値がS_DATAの値と同じであれば“Read OK”とし、異なれば“Read NG”として、A_DATAの値と期待値(expect)を表示する。このパターンを500回繰り返すことにより、TBridge_top回路100の動作を検証する。
図26は従来のRTL論理シミュレーションによる検証結果の一部、図27は非同期回路検証システムを用いたRTL論理シミュレーションによる検証結果の一部である。
図26の検証結果150に示すように、従来のRTL論理シミュレーションによれば、全くエラーが検証されず、各非同期信号はS_CLK,A_CLK間で正常に受渡しが行われている。これはここで例示しているFast条件のほか、Typ,Late条件で行ったいずれの場合であっても同じであった。
しかし、同じテストベンチを用いて上記の非同期回路検証を行った場合の検証結果151には“Read NG”が出力されるようになる。これはS_CLK側で発生したメタステーブルをA_CLK側で受信してしまっているためと考えられる。もしメタステーブルの受信である場合には、このTBridge_top回路100の潜在的な機能障害ということになる。このような状況を波形解析すると、次の図28に示すようになるものと推察される。
図28は推察される障害発生時のタイミングチャートである。
この図28に示すように、S_CLK側でTr_dataにメタステーブルが発生しており、その一部の不定値がA_CLK側でRe_data1として受信されたとする。その場合、そのRe_data1が次のクロック周期でRe_data2に影響を及ぼし、その不定値がAR_control121のレジスタ(AR_REG)にデータとして格納されるようになる。
このような状況を回避するため、次の図29に示すようなタイミングチャートが考えられる。
図29は障害対策済みTBridge_top回路のタイミングチャートである。
この図29に示すように、A_CLK側でセットレジスタ信号R_Setregを設定し直し、R_EndSetregを新たに設定する。その結果、AR_REGにはRe_data2に入り込んでいた不定値が入り込まず、正しい値が格納されるようになる。
このように、TBridge_top回路100に上記非同期回路検証システムを適用することにより、非同期箇所で正しい信号受渡しが行われているかを、論理合成前のRTLの論理シミュレーション段階で検証することができ、動作検証自体を効率的に行えるとともに、RTLの論理シミュレーション以降のプロセスも効率的に進めることができるようになる。
以上説明したように、本発明の非同期回路検証システムでは、論理合成前のRTLの論理シミュレーション段階において、検証する非同期回路の非同期箇所を抽出し、それらについてクロック変調や信号遅延を発生させ、非同期箇所における信号の受渡しが正しく行われるか否かを検証するようにした。これにより、非同期箇所にメタステーブル、レーシング、オーバーディレイを発生させ、その非同期箇所自体における動作、その後段以降の信号伝播、非同期箇所間の干渉等、非同期回路の動作検証を精度良く効率的に行うことができるようになる。その結果、回路設計者の負担を大幅に軽減し、製品の開発・製造期間の大幅な短縮化を図ることができる。
(付記1) 非同期回路の動作を検証する非同期回路検証方法において、
レジスタ・トランスファ・レベルの論理回路に存在する非同期箇所を抽出し、抽出された前記非同期箇所で発生する遅延を考慮した前記論理回路のシミュレーションにより前記論理回路の動作を検証することを特徴とする非同期回路検証方法。
(付記2) 前記遅延は、パラメータを用いて前記論理回路内のクロックを変調させた変調クロックまたは前記論理回路内の信号の伝播を遅らせる信号遅延を前記論理回路に挿入することによって発生させることを特徴とする付記1記載の非同期回路検証方法。
(付記3) 前記論理回路に前記変調クロックを挿入する際には、前記論理回路のクロックパスにクロック変調タスクを挿入し、前記クロック変調タスクに対して前記変調クロックを挿入することを特徴とする付記2記載の非同期回路検証方法。
(付記4) 前記論理回路に前記変調クロックを挿入する際には、前記パラメータを用い、変調を与える変調対象クロックの1周期ごとに前記変調クロックを生成し、生成した前記変調クロックを前記論理回路に挿入することを特徴とする付記2記載の非同期回路検証方法。
(付記5) 前記論理回路に前記信号遅延を挿入する際には、前記論理回路内に遅延制御タスクを挿入し、前記遅延制御タスクに対して前記信号遅延を挿入することを特徴とする付記2記載の非同期回路検証方法。
(付記6) 前記論理回路に前記信号遅延を挿入する際には、前記信号遅延の遅延量をシミュレーションごとに計算し、シミュレーション後に一の遅延量が指定されたときには前記一の遅延量のシミュレーションを再現することを特徴とする付記2記載の非同期回路検証方法。
(付記7) コンピュータに非同期回路の動作を検証する処理を実行させる非同期回路検証プログラムにおいて、
コンピュータを、
レジスタ・トランスファ・レベルの論理回路に存在する非同期箇所を抽出する抽出手段、
前記抽出手段によって抽出された前記非同期箇所で発生する遅延を考慮した前記論理回路のシミュレーションにより前記論理回路の動作を検証する検証手段、
として機能させることを特徴とする非同期回路検証プログラム。
(付記8) 前記検証手段は、パラメータを用いて前記論理回路内のクロックを変調させた変調クロックまたは前記論理回路内の信号の伝播を遅らせる信号遅延を前記論理回路に挿入することによって前記遅延を発生させた前記論理回路のシミュレーションにより前記論理回路の動作を検証することを特徴とする付記7記載の非同期回路検証プログラム。
(付記9) 前記検証手段は、前記変調クロックを前記論理回路に挿入する場合には、前記論理回路のクロックパスにクロック変調タスクを挿入し、前記クロック変調タスクに対して前記変調クロックを挿入することを特徴とする付記8記載の非同期回路検証プログラム。
(付記10) 前記検証手段は、前記変調クロックを前記論理回路に挿入する場合には、前記パラメータを用い、変調を与える変調対象クロックの1周期ごとに前記変調クロックを生成し、生成した前記変調クロックを前記論理回路に挿入することを特徴とする付記8記載の非同期回路検証プログラム。
(付記11) 前記検証手段は、前記信号遅延を前記論理回路に挿入する場合には、前記論理回路内に遅延制御タスクを挿入し、前記遅延制御タスクに対して前記信号遅延を挿入することを特徴とする付記8記載の非同期回路検証プログラム。
(付記12) 前記検証手段は、前記信号遅延を前記論理回路に挿入する場合には、挿入する前記信号遅延の遅延量をシミュレーションごとに計算し、シミュレーション後に一の遅延量が指定されたときには前記一の遅延量によって前記遅延を発生させることを特徴とする付記8記載の非同期回路検証プログラム。
(付記13) コンピュータに非同期回路の動作を検証する処理を実行させる非同期回路検証プログラムにおいて、
コンピュータを、
レジスタ・トランスファ・レベルの論理回路に存在する非同期箇所に制御タスクを挿入する挿入手段、
前記制御タスクが挿入された前記論理回路のシミュレーション段階で前記制御タスクを用いて前記論理回路に遅延を発生させる遅延発生手段、
として機能させることを特徴とする非同期回路検証プログラム。
(付記14) 前記遅延発生手段は、パラメータを用いて前記論理回路内のクロックを変調させた変調クロックまたは前記論理回路内の信号の伝播を遅らせる信号遅延を前記制御タスクに挿入することによって前記遅延を発生させることを特徴とする付記13記載の非同期回路検証プログラム。
(付記15) 非同期回路の動作を検証する非同期回路検証システムにおいて、
レジスタ・トランスファ・レベルの論理回路に存在する非同期箇所を抽出する抽出手段と、
前記抽出手段によって抽出された前記非同期箇所で発生する遅延を考慮した前記論理回路のシミュレーションにより前記論理回路の動作を検証する検証手段と、
を有することを特徴とする非同期回路検証システム。
(付記16) 前記検証手段は、パラメータを用いて前記論理回路内のクロックを変調させた変調クロックまたは前記論理回路内の信号の伝播を遅らせる信号遅延を前記論理回路に挿入することによって前記遅延を発生させた前記論理回路のシミュレーションにより前記論理回路の動作を検証することを特徴とする付記15記載の非同期回路検証システム。
(付記17) 前記検証手段は、前記変調クロックを前記論理回路に挿入する場合には、前記論理回路のクロックパスにクロック変調タスクを挿入し、前記クロック変調タスクに対して前記変調クロックを挿入することを特徴とする付記16記載の非同期回路検証システム。
(付記18) 前記検証手段は、前記変調クロックを前記論理回路に挿入する場合には、前記パラメータを用い、変調を与える変調対象クロックの1周期ごとに前記変調クロックを生成し、生成した前記変調クロックを前記論理回路に挿入することを特徴とする付記16記載の非同期回路検証システム。
(付記19) 前記検証手段は、前記信号遅延を前記論理回路に挿入する場合には、前記論理回路内に遅延制御タスクを挿入し、前記遅延制御タスクに対して前記信号遅延を挿入することを特徴とする付記16記載の非同期回路検証システム。
(付記20) 前記検証手段は、前記信号遅延を前記論理回路に挿入する場合には、挿入する前記信号遅延の遅延量をシミュレーションごとに計算し、シミュレーション後に一の遅延量が指定されたときには前記一の遅延量によって前記遅延を発生させることを特徴とする付記16記載の非同期回路検証システム。
(付記21) 非同期回路の動作を検証する非同期回路検証システムにおいて、
レジスタ・トランスファ・レベルの論理回路に存在する非同期箇所に制御タスクを挿入する挿入手段と、
前記制御タスクが挿入された前記論理回路のシミュレーション段階で前記制御タスクを用いて前記論理回路に遅延を発生させる遅延発生手段と、
を有することを特徴とする非同期回路検証システム。
(付記22) 前記遅延発生手段は、パラメータを用いて前記論理回路内のクロックを変調させた変調クロックまたは前記論理回路内の信号の伝播を遅らせる信号遅延を前記制御タスクに挿入することによって前記遅延を発生させることを特徴とする付記21記載の非同期回路検証システム。
非同期回路検証システムの概略説明図である。 非同期回路検証環境の概念図である。 非同期回路検証システムの構成例である。 クロック・遅延制御部の処理フローである。 非同期回路検証システムを利用した回路設計フローの一例である。 非同期回路の動作検証による効果の説明図である。 クロック変調タスクの説明図である。 Phase Skewの説明図である。 Dutyの説明図である。 Jitterの説明図である。 クロック変調の説明図である。 クロック変調による信号変化の一例である。 信号遅延の説明図である。 強制遅延制御の説明図である。 ビット幅を持つ信号の各ビットに対して遅延挿入を行う場合の説明図である。 送信側出力信号の遅延挿入パラメータ制御の説明図である。 受信側入力信号の遅延挿入パラメータ制御の説明図である。 遅延挿入による信号変化の一例である。 コンピュータのハードウェア構成例である。 TBridge_top回路の信号伝播を示す図である。 TBridge_top回路の回路構成図である。 TBridge_top回路の非同期リストである。 コントロールカード(その1)である。 コントロールカード(その2)である。 TBridge_top回路の論理設計時に想定されたタイミングチャートである。 従来のRTL論理シミュレーションによる検証結果の一部である。 非同期回路検証システムを用いたRTL論理シミュレーションによる検証結果の一部である。 推察される障害発生時のタイミングチャートである。 障害対策済みTBridge_top回路のタイミングチャートである。 従来の回路設計フローの一例である。 非同期回路の基本構成例である。 メタステーブルの説明図である。 レーシングの説明図である。 オーバーディレイの説明図である。 非同期回路の別の構成例(その1)である。 非同期回路の別の構成例(その2)である。 非同期回路の障害発生例の説明図である。 従来提案されている非同期回路の検証方法の説明図である。
符号の説明
1,31 RTL
2 論理検証環境
3 非同期回路検証環境
3a 非同期回路検証システム
10 非同期抽出部
11 非同期抽出プログラム
12,12a 非同期リスト
20 制御タスク挿入部
21,21a コントロールカード
30 シミュレーション部
32 テストベンチ
33 シミュレータ
34 デバイスモデル
40 クロック・遅延制御部
41 コントロール部
42 クロック変調部
43 遅延制御部
50 集計部
51 ログ・結果
52 試験成績書
53 ログ・カバレッジ部
54 モニタ部
60 上位モジュール
61 内部モジュール
62 クロック変調タスク
70 変調対象クロック
71 変調クロック
80 送信側回路
81 受信側回路
90 コンピュータ
91 CPU
92 ROM
93 RAM
94 HDD
95 グラフィック処理部
95a 表示装置
96 入力I/F
96a マウス
96b キーボード
97 通信I/F
98 バス
100 TBridge_top回路
110 FrontReceiver
111 FR_control
112 FT_control
120 AfterTransceiver
121 AR_control
122 AT_control
130 SetClock部
140 SetSignal部
141,142,143 SetSignal部

Claims (7)

  1. 非同期回路検証システムを用いて非同期回路の動作を検証する非同期回路検証方法において、
    前記非同期回路検証システムの非同期抽出部によって、レジスタ・トランスファ・レベルで記述された論理回路から非同期回路部を抽出し、
    前記非同期回路検証システムの制御タスク挿入部によって、抽出された前記非同期回路部の情報に基づき、前記非同期回路部にて前記論理回路内のクロックを変調させて前記非同期回路部の遅延を発生するためのクロック変調タスクを前記論理回路に挿入し、
    前記非同期回路検証システムの前記制御タスク挿入部によって、抽出された前記非同期回路部の情報に基づき、前記非同期回路部にて前記論理回路内の信号を遅延させるための遅延制御タスクを前記論理回路に挿入し、
    前記非同期回路検証システムのクロック・遅延制御部によって、抽出された前記非同期回路部に関連付けられた、クロックグループ、クロック変調値、遅延挿入箇所または信号遅延値の少なくとも1つを含む制御パラメータに基づいて、前記クロック変調タスクにクロック変調させて前記非同期回路部の遅延を発生する第1命令と前記遅延制御タスクに信号遅延を発生させる第2命令とを発行し、
    前記非同期回路検証システムのシミュレーション部によって、前記第1命令と前記第2命令とに基づいて、前記クロック変調タスクと前記遅延制御タスクとが挿入された前記論理回路のシミュレーションを行う、
    ことを特徴とする非同期回路検証方法。
  2. 前記論理回路の前記シミュレーション部によるシミュレーションの際には、前記第1命令に基づいて、前記クロック変調タスクに対して、前記論理回路内のクロックを変調させた変調クロックが挿入されることを特徴とする請求項1記載の非同期回路検証方法。
  3. 前記クロック・遅延制御部によって、変調を与える変調対象クロックの1周期ごとに前記変調クロックを生成し、
    前記論理回路の前記シミュレーション部によるシミュレーションの際には、生成された前記変調クロックが前記クロック変調タスクに対して挿入されることを特徴とする請求項2記載の非同期回路検証方法。
  4. 前記論理回路の前記シミュレーション部によるシミュレーションの際には、前記第2命令に基づいて、前記遅延制御タスクに対して前記信号遅延が挿入されることを特徴とする請求項1記載の非同期回路検証方法。
  5. 前記クロック・遅延制御部によって、前記信号遅延の遅延量を前記シミュレーション部によるシミュレーションごとに計算し、
    シミュレーション後に一の遅延量が指定されたときには、前記シミュレーション部によって、前記一の遅延量のシミュレーションを再現することを特徴とする請求項4記載の非同期回路検証方法。
  6. コンピュータに非同期回路の動作を検証する処理を実行させる非同期回路検証プログラムにおいて、
    コンピュータを、
    レジスタ・トランスファ・レベルで記述された論理回路から非同期回路部を抽出する抽出手段、
    抽出された前記非同期回路部の情報に基づき、前記非同期回路部にて前記論理回路内のクロックを変調させて前記非同期回路部の遅延を発生するためのクロック変調タスクを前記論理回路に挿入する挿入手段、
    抽出された前記非同期回路部の情報に基づき、前記非同期回路部にて前記論理回路内の信号を遅延させるための遅延制御タスクを前記論理回路に挿入する挿入手段、
    抽出された前記非同期回路部に関連付けられた、クロックグループ、クロック変調値、遅延挿入箇所または信号遅延値の少なくとも1つを含む制御パラメータに基づいて、前記クロック変調タスクにクロック変調させて前記非同期回路部の遅延を発生する第1命令と前記遅延制御タスクに信号遅延を発生させる第2命令とを発行する発行手段、
    前記第1命令と前記第2命令とに基づいて、前記クロック変調タスクと前記遅延制御タスクとが挿入された前記論理回路のシミュレーションを行う検証手段、
    として機能させることを特徴とする非同期回路検証プログラム。
  7. 前記発行手段は、前記論理回路内のクロックを変調させた変調クロック、および前記論理回路内の信号の伝播を遅らせる前記信号遅延を生成し、
    前記検証手段は、生成された前記変調クロックおよび前記信号遅延を、それぞれ前記クロック変調タスクおよび前記遅延制御タスクに挿入することによって、遅延を発生させた前記論理回路のシミュレーションを行うことを特徴とする請求項6記載の非同期回路検証プログラム。
JP2004094030A 2004-03-29 2004-03-29 非同期回路検証方法および非同期回路検証プログラム Expired - Fee Related JP4271067B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004094030A JP4271067B2 (ja) 2004-03-29 2004-03-29 非同期回路検証方法および非同期回路検証プログラム
US10/935,109 US20050216247A1 (en) 2004-03-29 2004-09-08 Method and program for verifying logic circuit having asynchronous interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004094030A JP4271067B2 (ja) 2004-03-29 2004-03-29 非同期回路検証方法および非同期回路検証プログラム

Publications (2)

Publication Number Publication Date
JP2005284426A JP2005284426A (ja) 2005-10-13
JP4271067B2 true JP4271067B2 (ja) 2009-06-03

Family

ID=34991204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004094030A Expired - Fee Related JP4271067B2 (ja) 2004-03-29 2004-03-29 非同期回路検証方法および非同期回路検証プログラム

Country Status (2)

Country Link
US (1) US20050216247A1 (ja)
JP (1) JP4271067B2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913222B2 (en) * 2004-09-20 2011-03-22 The Mathworks, Inc. Automatic generation of code for component interfaces in models
DE102005024917A1 (de) * 2005-05-31 2006-12-07 Advanced Micro Devices, Inc., Sunnyvale Dynamische Synchronisierersimulation
JP4657912B2 (ja) 2005-12-26 2011-03-23 富士通セミコンダクター株式会社 設計装置および設計方法とそのプログラム
US7478346B2 (en) * 2006-01-26 2009-01-13 Springsoft Usa, Inc. Debugging system for gate level IC designs
US20080005709A1 (en) * 2006-06-30 2008-01-03 International Business Machines Corporation Verification of logic circuits using cycle based delay models
US8547993B1 (en) * 2006-08-10 2013-10-01 Nvidia Corporation Asynchronous interface for communicating between clock domains
JP4763629B2 (ja) 2007-02-20 2011-08-31 富士通セミコンダクター株式会社 検証装置、検証方法及びプログラム
JP4992468B2 (ja) 2007-02-27 2012-08-08 富士通セミコンダクター株式会社 検証方法、検証装置及びプログラム
JP4585559B2 (ja) * 2007-08-30 2010-11-24 株式会社東芝 半導体集積回路の検証装置
JP2009093635A (ja) * 2007-09-18 2009-04-30 Nec Electronics Corp 回路検証方法、及び回路検証プログラム、回路検証装置
US7934186B2 (en) * 2007-10-31 2011-04-26 Institute of Computer Science (ICS) of the Foundation for Research & Technology Hellas—Foundation for Research and Technology Hellas (Forth) Apparatus and method for optimizing delay element in asynchronous digital circuits
US20090119631A1 (en) * 2007-11-06 2009-05-07 Jordi Cortadella Variability-Aware Asynchronous Scheme for High-Performance Delay Matching
JP4901702B2 (ja) * 2007-11-27 2012-03-21 株式会社東芝 回路設計方法
JP5104356B2 (ja) * 2008-02-04 2012-12-19 富士通株式会社 検証支援プログラム、検証支援装置、および検証支援方法
US8972915B2 (en) * 2008-02-12 2015-03-03 University Of Southern California Static timing analysis of template-based asynchronous circuits
US8234104B2 (en) * 2008-04-16 2012-07-31 International Business Machines Corporation Simulation of digital circuits
JP5239747B2 (ja) 2008-10-29 2013-07-17 富士通株式会社 論理シミュレーションプログラム、論理シミュレーション装置、論理シミュレーション方法
JP2011248843A (ja) * 2010-05-31 2011-12-08 Toshiba Corp クロックジッター解析方法、該クロックジッター解析方法を実行する装置、該クロックジッター解析方法をコンピュータに実行させるためのプログラム、及び該プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5445358B2 (ja) * 2010-07-02 2014-03-19 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
GB2484295A (en) 2010-10-05 2012-04-11 St Microelectronics Ltd Circuit simulation
US9251494B2 (en) * 2010-11-05 2016-02-02 Atc Logistics & Electronics, Inc. System and method for tracking customer personal information in a warehouse management system
US8327307B2 (en) * 2010-11-23 2012-12-04 Lsi Corporation Method and system for eliminating implementation timing in synchronization circuits
CN102841950B (zh) * 2011-06-21 2017-11-03 中兴通讯股份有限公司 一种逻辑存储单元自动验证的方法及装置
JP5691890B2 (ja) * 2011-07-04 2015-04-01 富士通セミコンダクター株式会社 検証装置、検証プログラム、および、検証方法
EP2620834A1 (en) * 2012-01-26 2013-07-31 ST-Ericsson SA Modulated clock synchroniser
US9430230B2 (en) * 2014-08-14 2016-08-30 Freescale Semiconductor, Inc. Method for automated managing of the usage of alternative code and a processing system of operating thereof
EP3015971B1 (en) * 2014-10-28 2019-07-31 Napatech A/S A system and a method of deriving information
US10303204B2 (en) 2015-05-27 2019-05-28 Mitsubishi Electric Corporation Clock diagnostic apparatus, clock diagnostic method, and computer readable medium
US9940417B2 (en) * 2016-07-21 2018-04-10 International Business Machines Corporation Simulating reference voltage response in digital simulation environments
US10521531B1 (en) * 2017-11-09 2019-12-31 Cadence Design Systems, Inc. System, method, and computer program product for range-based clock analysis associated with the formal verification of an electronic circuit design
JP2020129170A (ja) * 2019-02-07 2020-08-27 キオクシア株式会社 検証装置及び検証方法
WO2022055005A1 (ko) * 2020-09-14 2022-03-17 엘지전자 주식회사 지연동기처리 장치 및 이를 구비하는 신호처리장치
JP7536202B2 (ja) 2022-01-14 2024-08-19 三菱電機株式会社 機能検証システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541849A (en) * 1990-04-06 1996-07-30 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters
US5650938A (en) * 1995-12-13 1997-07-22 Synopsys, Inc. Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation
JP4176906B2 (ja) * 1999-01-14 2008-11-05 株式会社ルネサステクノロジ 静的・動的タイミング検証方法及び記憶媒体
US20040225977A1 (en) * 2003-05-08 2004-11-11 Ryan Akkerman System and method for simulating clock drift between asynchronous clock domains

Also Published As

Publication number Publication date
JP2005284426A (ja) 2005-10-13
US20050216247A1 (en) 2005-09-29

Similar Documents

Publication Publication Date Title
JP4271067B2 (ja) 非同期回路検証方法および非同期回路検証プログラム
US8566767B1 (en) System and method for parametric intercoupling of static and dynamic analyses for synergistic integration in electronic design automation
US7386827B1 (en) Building a simulation environment for a design block
US7251794B2 (en) Simulation testing of digital logic circuit designs
US20060047494A1 (en) Circuit analysis method and circuit analysis apparatus
US8036874B2 (en) Software executing device and co-operation method
US7702009B2 (en) Timing analysis apparatus and method of timing analysis
US6181320B1 (en) Method for converting timing diagram into timing graph and vice versa
US7840924B2 (en) Apparatus, method, and program for verifying logic circuit operating with multiple clock signals
US7945882B2 (en) Asynchronous circuit logical verification method, logical verification apparatus, and computer readable storage medium
WO1999017239A1 (en) Method and apparatus for analyzing digital circuits
US7373626B2 (en) Method and timing harness for system level static timing analysis
US7159199B2 (en) Method for verifying adequate synchronization of signals that cross clock environments and system
US20090150103A1 (en) Computer-Based Method and System for Simulating Static Timing Clocking Results
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
Kebaili et al. Clock domain crossing formal verification: a meta-model
JP5104356B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
JP5146369B2 (ja) 回路設計プログラム、回路設計方法および回路設計装置
US8793548B2 (en) Integrated circuit, simulation apparatus and simulation method
WO2024100875A1 (ja) 回路品質確認装置及び回路品質確認方法
JP7354815B2 (ja) 検証支援装置、検証支援方法および検証支援プログラム
JP2007241836A (ja) マルチサイクルパス検証方法
JP7351189B2 (ja) タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム
JP5145167B2 (ja) クロックドメインチェック方法及びクロックドメインチェック用プログラム並びに記録媒体
JP4307169B2 (ja) 遅延検証装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080708

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090203

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: 20090224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090224

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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: 20130306

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees