JP4992468B2 - 検証方法、検証装置及びプログラム - Google Patents

検証方法、検証装置及びプログラム Download PDF

Info

Publication number
JP4992468B2
JP4992468B2 JP2007046775A JP2007046775A JP4992468B2 JP 4992468 B2 JP4992468 B2 JP 4992468B2 JP 2007046775 A JP2007046775 A JP 2007046775A JP 2007046775 A JP2007046775 A JP 2007046775A JP 4992468 B2 JP4992468 B2 JP 4992468B2
Authority
JP
Japan
Prior art keywords
delay
delay information
circuit
wiring
information
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
JP2007046775A
Other languages
English (en)
Other versions
JP2008210189A (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 JP2007046775A priority Critical patent/JP4992468B2/ja
Priority to US12/036,516 priority patent/US7945882B2/en
Publication of JP2008210189A publication Critical patent/JP2008210189A/ja
Application granted granted Critical
Publication of JP4992468B2 publication Critical patent/JP4992468B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • 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

Description

本発明は検証方法、検証装置及びプログラムに関し、特に非同期回路の検証を行う検証方法、検証装置及びプログラムに関する。
半導体集積回路の高機能化、高集積化に伴い、シミュレーションにより半導体集積回路の動作検証を精度よく、短時間で行うことが必要となっている。特に近年では、互いに異なるクロック信号により動作する回路部同士が接続された非同期箇所で生じる誤動作を検証する非同期検証が重要になっている。
図13は、従来の回路設計と検証の流れを示すフローチャートである。
図ではさらに、生成した各種のデータを記憶するデータベース80、81、82、83を示している。
LSI(Large Scale Integrated circuit)の回路設計では、まず、ハードウェア記述言語(HDL)を用いて、回路の論理機能をレジスタ・トランスファ・レベル(RTL)で記述する(ステップS80)。その後、RTLのシミュレーションによる論理検証を行い、回路の論理機能動作を確認する(ステップS81)。論理機能動作が期待通りでなかった場合は、ステップS80に戻り再度RTLでの回路記述を行う。
論理機能動作が期待通りであった場合には、論理合成を行いゲートレベルのネットリストを生成する(ステップS82)。
次に、ネットリストとRTLでの回路記述とのフォーマル検証(論理等価検証)を行い、生成したネットリストとRTLの論理が等価であることを確認する(ステップS83)。論理が等価でない場合には、ステップS80に戻り再度RTLでの回路記述を行う。
論理等価の確認ができたら、レイアウトを行い、タイミング調整やテスト回路追加などを行った実配線のネットリスト及び実配線のSDF(Standard Delay Format)の遅延情報を生成する(ステップS84)。
次に、実配線のネットリスト及び遅延情報を用いて、スタティック・タイミング・アナライザ(STA)によるタイミング検証及びゲートレベルのダイナミック・シミュレーションによる論理検証、タイミング検証を行い、回路の論理機能動作の確認及びタイミングスペックの確認を行う(ステップS85)。タイミングスペックが満たされなかった場合は、ステップS80に戻り再度RTLでの回路記述を行う。
論理検証及びタイミング検証後、試作品のチップを作成し(ステップS86)、実機評価での動作確認を行う(ステップS87)。ここで、実機動作が期待通りでなかった場合や、回路の論理に問題がある場合は、ステップS80に戻り再度RTLでの回路記述を行う。なお、タイミングに問題がある場合には、図示を省略しているが、ステップS84に戻って再度レイアウトを行う。
実機評価の確認ができたらチップの量産に入り(ステップS88)、LSIの回路設計が完了する。
このような、従来の回路設計/検証の工程において、非同期検証は、従来RTLの段階(ステップS81)で行われることが多い(例えば、特許文献1乃至4参照)。
特開2005−284426号公報 特開2004−185311号公報 特開2003−233638号公報 特開2001−229211号公報
しかし、従来の非同期検証において、RTLでの検証では問題なく動作していても、論理合成で生成されたネットリストによっては、非同期箇所による誤動作が発生することがあるという問題があった。
図14は、RTL記述と、論理合成後のネットリストで表される非同期回路を示す図である。
図14(A)で示すRTL記述は、クロック信号CK1の立ち上がりに同期して、Aが1であるならば、CにBの値を代入することを表している。このとき、AからCのパスは1つであるにも拘わらず、論理合成によって生成される2種類のクロック信号CK1(100MHz)、CK2(200MHz)を有する非同期回路では、図14(B)のように、A_regからC_reg間のパスは、2つとなる場合がある。すなわち、A_regから、OR_1、AND_1を介してC_regに至るパスと、A_regから、INV_1、OR_2、AND_1を介してC_regに至るパスである。この場合、以下のような誤動作が生じる場合がある。
図15は、非同期回路による誤動作の例を示す図である。
論理合成で生成された、図14(B)で示した非同期回路のシミュレーション結果を示している。なお、B_regの出力信号であるB_reg.Qは0として図示を省略している。各信号は、図14(B)と対応している。
B=0、C=0のとき、図14(A)のRTL記述によれば、Aの値が1となっても、Cの値が1となることはない。しかし、図14(B)のような非同期回路の場合、組合せ回路の遅延差によりC_regの入力のC_reg.DATAが短期間1になるハザードが生じる場合がある。この期間(誤動作発生期間)にクロック信号CK1が立ち上がると、C_reg.Qは1となり、誤動作となる。そのため、非同期回路の検証には、ネットリスト生成後の検証が必要である。
しかし、上記のような誤動作を発見するためには、クロック信号CK1の立ち上がりが誤動作発生期間で立ち上がるように、位相を少しずつ可変してシミュレーションを行う必要がある。そのため、非常に時間がかかる上、誤動作を発見しにくいという問題があった。したがって、現状では、実機評価での動作確認で誤動作が発見された際に、非同期クロックの位相差を測定してネットリストによるシミュレーションで誤動作を再現して検証を行っており、非常に時間やコストがかかっていた。
本発明はこのような点に鑑みてなされたものであり、短時間に非同期回路の検証が可能な検証方法、検証装置及びプログラムを提供することを目的とする。
本発明では上記問題を解決するために、図1に示すように、論理合成手段2がRTLの回路情報をもとにネットリスト11を生成し、抽出手段3がネットリスト11から遅延情報12及び互いに異なるクロック信号で動作する回路が接続された非同期回路部13を抽出し、遅延情報加工手段4が遅延情報12を加工して、非同期回路部13における情報の受信側回路の入力端子に入力される信号のパルス幅を引き延ばし、シミュレーション手段5が加工した遅延情報をもとに非同期回路の検証を行うことを特徴とする検証方法が提供される。
上記の方法によれば、ネットリスト11の生成後に、遅延情報12と非同期回路部13が抽出され、遅延情報12が加工されて非同期回路部13における情報の受信側回路の入力端子に入力される信号のパルス幅が引き延ばされることによって、非同期回路の検証の際に誤動作を発見しやすくなる。
本発明は、ネットリストの生成後に、遅延情報と非同期回路部を抽出し、遅延情報を加工して非同期回路部における情報の受信側回路の入力端子に入力される信号のパルス幅を引き延ばすことによって、非同期回路の検証の際に誤動作を発見しやすくでき、短時間に非同期回路の検証が可能となる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、本実施の形態の検証装置の概略を示す概念図である。
検証装置1は、論理合成手段2、抽出手段3、遅延情報加工手段4、シミュレーション手段5を有している。また、データベース10、11、12、13、14はそれぞれ、RTL記述の回路情報、ネットリスト、遅延情報、非同期回路部、非同期検証用遅延情報を記憶する記憶手段である。なお、図1では複数のデータベース10〜14を示しているが、1つの記憶手段としてもよい。
論理合成手段2は、データベース10に記憶されたRTL記述の回路情報をもとに論理合成によりネットリストを生成する。
抽出手段3は、データベース11に記憶されたネットリストから遅延情報と、非同期回路部を抽出する。
遅延情報加工手段4は、データベース12に記憶された遅延情報を加工して、データベース13に記憶された非同期回路部の誤動作発生期間を引き延ばす。
シミュレーション手段5は、加工された遅延情報(非同期検証用遅延情報)をもとに非同期回路の検証を行う。
図2は、検証装置のハードウェア構成例を示す図である。
検証装置1は、例えば、コンピュータ20であり、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、RAM(Random Access Memory)23、HDD(Hard Disk Drive)24、グラフィック処理部25、入力I/F(Interface)26、通信I/F27などによって構成され、これらはバス28を介して相互に接続されている。
ここで、CPU21は、ROM22や、HDD24に格納されている検証プログラムや、各種データに応じて各部を制御し、図1に示した論理合成手段2、抽出手段3、遅延情報加工手段4、シミュレーション手段5の機能を実行する。
ROM22は、CPU21が実行する基本的なプログラムやデータを格納している。
RAM23は、CPU21が実行途中のプログラムや、演算途中のデータを記憶する。
HDD24は、CPU21が実行するOS(Operation System)や、プロジェクトを管理するプログラムや、各種アプリケーションプログラム、各種データを格納する。また、図1で示したデータベース10〜14が作成されるようにしてもよい。
グラフィック処理部25には、表示装置として例えば、ディスプレイ25aが接続されており、CPU21からの描画命令に従って、ディスプレイ25a上に、ネットリストや検証結果などを表示する。
入力I/F26には、マウス26aやキーボード26bなどの入力装置が接続されており、ユーザにより入力された情報を受信し、バス28を介してCPU21に伝送する。
通信I/F27は、例えば、企業内のLAN(Local Area Network)やWAN(Wide Area Network)や、インターネットなどのネットワーク27aと接続して、他のコンピュータなどとの通信を行う。
なお、上記のハードウェア構成例は、一例にすぎず、例えば、複数のコンピュータを用いてもよいし、シミュレーション手段5としてエミュレータなどを用いてもよい。
以下、図1の検証装置の動作を説明する。
RTL記述された回路情報をもとに、論理合成手段2は論理合成を行ってネットリストを生成する。抽出手段3は、ネットリストから、SDFの遅延情報と、互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する。遅延情報加工手段4は、抽出された遅延情報を加工して、非同期回路部の誤動作発生期間を引き延ばす処理を行う。以下に遅延情報加工処理の詳細を、図14で示したような非同期回路の遅延情報を加工する場合を例にして説明する。
図3は、遅延情報加工処理の流れを示すフローチャートである。
まず、遅延情報加工手段4は、抽出した遅延情報から遅延情報を加工する回路セルを選択する(ステップS10)。
図4は、加工前のSDFの遅延情報の一例を示す図である。
ここでは、図14(B)で示したような非同期回路の遅延情報を示している。遅延情報は、回路セルごとの記述になっている。上から3つは、フリップフロップ(F/F)の回路セルの遅延情報が記述されており、図14(B)のA_reg、B_reg、C_regに対応している。F/Fの回路セルの記述に続いて、INV_1、OR_1、OR_2、AND_1の遅延情報が記述されている。
ここで示す遅延情報の例では、入力側の信号の0から1への立ち上がりまたは1から0への立ち下がりが各回路セルの出力端子に伝わるまでの、2種類の遅延時間を記述している。例えば、A_regの回路セルでは、“IOPATH CLK Q(50:100:200) (50:100:200)”は、CLKの立ち上がりから出力端子Qまでの遅延時間の最小値が50ps、標準値が100ps、最大値が200psであることを示しており、立ち下がりも同じ値であることを示している。
遅延情報加工手段4は、選択した回路セルのパス遅延値を0psに変更する(ステップS11)。
次に、選択した回路セルがF/Fセルであるか否か判定する(ステップS12)。F/Fセルではない場合には、ステップS16の処理に進む。F/Fセルである場合には、更にそのF/Fセルが非同期回路部の受け側か否かを判定する(ステップS13)。例えば、図14(B)のような非同期回路の場合、互いに異なるクロック信号CK1、CK2で駆動しているA_regとC_regによる非同期回路部のうち、情報の受信側は、C_regである。
回路セルが非同期回路部の受け側のF/Fセルでない場合には、入力端子側の配線遅延値を1psに変更して(ステップS14)、ステップS16の処理に進む。
ここで、入力端子側の配線遅延値を1psに変更する理由は、デルタ遅延対策のためである。デルタ遅延とは、F/Fのクロック信号の立ち上がりタイミングと入力されるデータの変化のタイミングが全く同じであったとき、シミュレータやライブラリ環境によって、データが変化前の値に判断される場合と、変化後の値に判断される場合があり、シミュレーション結果が不確定な状態になることをいう。なお、1psに限定する必要はなく、0より大きい、最小設定値を用いる。
最小設定値は、SDFの遅延情報ファイルにtime scaleとして、その値が記述される。なお、後述のシミュレーションの際には、例えば、シミュレーションのためのテストベンチで設定された遅延単位/遅延精度により最小設定値が規定される。
このようなデルタ遅延対策を行わないと、同じクロック信号で動作するF/F間の動作でも、本来の動作とは違った動作になってしまう場合がある。
図5は、B_regにおけるデルタ遅延による誤動作と、デルタ遅延対策を説明する図である。
図5(A)のように、B_regのDATA端子に接続される配線の配線遅延値を0psにした場合、データの変化が、クロック信号CK1の立ち上がりがB_regのDATA端子に入力されるデータの変化後と認識された場合の出力値B_reg.Qaと、クロック信号CK1の立ち上がりが、B_regのDATA端子に入力されるデータの変化前と認識された場合の出力値B_reg.Qbとに分かれてしまい、データの変化後と認識された場合、本来のRTLの動作とは異なった動作になってしまう。
一方、図5(B)のように、配線遅延値を+1psすることで、シミュレーション結果が不安定になることを防止でき、本来のRTLの動作と同じにできる。
ステップS13の処理で、選択した回路セルが非同期回路部の受け側のF/Fセルであると判定された場合には、この回路セルの入力端子に接続された配線の遅延値を、信号の立ち上がり(rise)及び立ち下がり(fall)両方の値とも変更する(ステップS15)。
具体的には、例えば、以下のような変更を行う。
(1)rise側:クロック1周期−1ps、fall側:1ps
(2)rise側:1ps、fall側:クロック1周期−1ps
(3)両側:クロック1周期−1ps
(4)両側:1ps
例えば、図14(B)のC_regの場合には、DATA端子側の配線遅延値を、上記の方法で変更させたSDFの遅延情報ファイルを4つ作成する。このように遅延情報を加工することで、非同期回路部による誤動作発生期間を引き延ばすことができ、後述のシミュレーションの際に、容易に誤動作を検出することができる(詳細は後述する)。
非同期回路部の受け側の配線遅延値を変更し終わると、ステップS16に進む。
ステップS16の処理では、全回路セルについて遅延情報の加工が終了したか否かを判定し、未加工の回路セルがある場合にはステップS10からの処理を繰返し、全回路セルについて加工が終了していれば、加工処理を終了する。加工し終わった遅延情報は、非同期検証用遅延情報として、図1のデータベース14に記憶される。
図6は、加工後の遅延情報の例を示す図である。
ここでは、図4で示した加工前の遅延情報を、上記の4つの加工方法により作成した遅延情報ファイルのうち、(2)の方法で加工した遅延情報ファイルの内容の一部を示している。
パス遅延値は、前述の図3のステップS11の処理によって、全ての回路セルで0に加工されている。また、上から3つのF/Fセルのうち、A_reg、B_regは、“DELAY(ABSOLUTE(PORT DATA(1:1:1)(1:1:1)…”となり、ステップS14の処理によってDATA端子に接続される配線の配線遅延値が1psに加工されている。
上から3つ目のF/FセルであるC_regは、非同期回路部の受け側の回路セルである。ステップS15の処理によって、DATA端子に接続される配線の配線遅延値を、rise側で(1:1:1)、fall側で(9999:9999:9999)と加工している。
図1のシミュレーション手段5は、以上のような加工処理によって作成した非同期検証用遅延情報を用いて、非同期検証を行う。
図7は、加工後の遅延情報を用いたシミュレーション結果を示す図である。
なお、ここでは図6の遅延情報を用いた場合、すなわち(2)の加工方法で加工した遅延情報を用いたシミュレーション結果を示している。なお、B_reg.Qは0として図示を省略している。各信号は、図14(B)と対応している。
図15で示したようなハザードが存在する場合、そのパルス幅で規定される誤動作発生期間は短く、検証が難しい。例えば、図14(B)の非同期回路で、OR_1、OR_2、INV_1、AND_1のパス遅延値がそれぞれ100psの場合、C_reg.DATAのrise遅延値は100ps(OR_1.A2→X)+100ps(AND_1.A1→X)=200psとなる(A1→X、A2→Xは、各回路セルの入力端子から出力端子までのパス遅延値を示す(図4参照))。一方fall遅延値は100ps(INV_1.A→X)+100ps(OR_2.A1→X)+100ps(AND_1.A2→X)=300psとなる。したがって、誤動作するC_reg.DATA=1になる期間は、300ps(fall遅延値)−200ps(rise遅延値)=100psとなる。クロック信号CK1の1周期が10nsに対して100psの誤動作を発見することが非常に困難である。
これに対し、図6のような遅延情報を用い、rise側で1ps、fall側でクロック1周期−1ps(=9999ps)の遅延値を設定することで、誤動作発生期間を9998psと引き延ばすことができる。クロック信号CK1の位相を細かく変化させなくても、容易に誤動作を検出して検証することができる。
なお、図15とは逆に、ハザードが立ち下がりパルス(短時間だけ0となるパルス)の場合には、前述の(1)の方法によって、rise側:クロック1周期−1ps、fall側:1psとなるように加工した遅延情報を用いることで、図6の場合と同様に誤動作発生期間を引き延ばすことができる。
ところで、図7の例のように、fall側でクロック1周期から1ps減じるのは、デルタ遅延対策のためである。
図8は、C_regにおけるデルタ遅延による誤動作と、デルタ遅延対策を説明する図である。
図8(A)のように、C_regのDATA端子に接続される配線の配線遅延値をrise側で0ps、fall側でクロック1周期にした場合、クロック信号CK1の立ち上がりがC_regのDATA端子に入力されるデータの変化後と認識された場合の出力値C_reg.Qaと、クロック信号CK1の立ち上がりがC_regのDATA端子に入力されるデータの変化前と認識された場合の出力値C_reg.Qbとに分かれてしまい、いずれの場合も本来のRTLの動作とは異なった動作になってしまう。
一方、図8(B)のように、配線遅延値をrise側で+1ps、fall側でクロック1周期−1psすることで、本来のRTLの動作と同じにできる。
ところで、図7のようにハザードを引き延ばしても、クロック信号CK1のタイミングによっては、誤動作が検出されない場合がある。
図9は、加工後の遅延情報を用いたシミュレーション結果であり、誤動作が検出されない場合とその対策を示す図である。
上記の(1)や(2)の方法で加工した遅延情報を用いた場合、2psだけ誤動作が発生しない期間がある。そのため、図9のようなタイミングでクロック信号CK1が入力された場合、クロック信号CK1の立ち上がりエッジが、C_reg.DATAが1の期間に入らない。そこで、クロック信号CK1を反転させたクロック信号CK1xでのシミュレーションをもう1回行うことで、クロック信号CK1の位相を少しずつ可変して何回も調整しなくとも、確実に誤動作を検出することができる。なお、クロック信号CK1xは反転させたクロック信号CK1でなくても、クロック信号CK1を2ps以上位相を移動させたクロック信号であればよい。
なお、抽出手段3により抽出される非同期回路部は、図14(B)のようなF/F以外に、EN(イネーブル)端子をもつF/Fを有する場合もある。
図10は、非同期回路の他の例を示す図であり、(A)がRTL記述を示し、(B)が論理合成後のネットリストで表される非同期回路を示す図である。
図10(A)で示すRTL記述は、クロック信号CK1の立ち上がりに同期して、Aが1であるならば、Cに1を代入し、それ以外の場合で、Bが1であるならば、Cに0を代入することを表している。このとき、AからCのパスは1つであるにも拘わらず、論理合成後のネットリストでは、図10(B)のように、A_regからC_reg間のパスは2つとなる場合がある。すなわち、A_regからC_regのDATA端子に至るパスと、A_regからOR_1を介してEN端子に至るパスである。この場合、以下のような誤動作が生じる場合がある。
図11は、非同期回路による誤動作の例を示す図である。
論理合成で生成された、図10で示した非同期回路のシミュレーション結果を示している。なお、B_reg.Qは0として図示を省略している。各信号は、図10(B)と対応している。
図10(A)のRTL記述によれば、B=0、C=1のとき、Aが0から1へ変化しても、1から0に変化してもCが0になることはない。しかし、図10(B)のような非同期回路の場合、2つのパスが生じ、パス間の遅延差により、C_reg.ENが1でC_reg.DATAが0となる期間が存在する。この期間に、クロック信号CK1の立ち上がりエッジが来ると、C_reg.Qが0となり、RTLの論理と異なってしまい、誤動作が発生することになる。上記の期間が誤動作発生期間であり、例えば、100psと短く、このままでは検証の際に誤動作を検出するためには、短い期間でクロック信号CK1が立ち上がるように調整する必要があるため検証に時間がかかってしまう。
ここで、前述の(3)及び(4)の方法により加工した遅延情報を用いることが有効になる。
遅延情報加工手段4は、図3で示したような遅延情報の加工処理を行う。ステップS13の処理では、EN端子付のC_regが選択され、ステップS15の処理により入力端子(DATA端子、EN端子)に接続された配線の配線遅延値を、前述の4つの方法によって加工する。
図12は、加工後の遅延情報を用いたシミュレーション結果を示す図である。
なお、ここではC_reg.DATAについてはriseとfallの両側を1ps遅延させるように(4)の方法で加工した遅延情報を用い、C_reg.ENについてはriseとfallの両側をクロック1周期−1ps(この例の場合、クロック信号CK1の1周期が10nsなので9999ps)遅延させるように(3)の方法で加工した遅延情報を用いたシミュレーション結果を示している。なお、B_reg.Qは0として図示を省略している。各信号は、図10(B)と対応している。
上記のような(3)、(4)の方法で加工した遅延情報を用いることで、C_reg.DATAが0でC_reg.ENが1となる誤動作発生期間を9998psと、引き延ばすことができる。これにより、クロック信号CK1の位相を細かく変化させなくても、容易に誤動作を検出して検証することができる。
なお、上記の場合も図9と同様に、反転したクロック信号CK1のシミュレーションをもう1回行うことで、クロック信号CK1のタイミングによらず、確実に誤動作を検証することができる。
まとめると、各入力端子側の信号(図10(B)の場合、DATA端子やEN端子)それぞれに対し、(1)から(4)の方法によって加工した遅延情報を生成して、生成した遅延情報に対して、シミュレーションによる検証を行うことで、少ない労力、時間で誤動作を検出することができる。
上記のように、非同期回路部による誤動作を確実に検出できるシミュレーションを行っても、誤動作が検出されない場合には、図13の工程におけるステップS84の処理のレイアウトを行い、以降従来と同様の工程を行っていく(フォーマル検証なども同様に行う)。誤動作が発見された場合には、レイアウト前に、問題部分のRTLの記述の変更を行う。
なお、前述の非同期検証用遅延情報は、非同期検証を行い、終了した後は用いられず、図13の回路設計及び検証のフローのように、レイアウトによってタイミング調整やテスト回路追加などを行った実配線のネットリスト及び遅延情報が生成された後は、その遅延情報が用いられる。すなわち、従来の回路設計及び検証のフローをほとんど変えることなく、RTLでは発見できない非同期回路部による誤動作を容易に発見することができる。
また、レイアウト前に、検証を行って誤動作を発見して、RTLの記述を修正することができるため、実機評価で非同期の誤動作が発見されてからRTLの記述を修正して再び試作品を作成して評価する場合に比べて、時間及び費用を格段に削減することができる。
また、非同期検証のためにネットリストに変更を加える必要がなく、遅延情報のみ変更すればよいので、環境構築に時間がかからないという利点もある。
また、遅延情報の加工の際に、各回路セルのパス遅延を0にして、非同期回路部の受け手側のDATA端子やEN端子に接続される配線の配線遅延値を加工して誤動作発生期間を引き延ばすので、遅延情報の加工が容易にできる。
なお、上記の処理内容は、コンピュータによって実現することができる。その場合、検証装置1が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上、本発明を実施例に基づいて説明したが、本発明は上記に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
(付記1) 非同期回路の検証を行う検証方法において、
論理合成手段がレジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成し、
抽出手段が前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出し、
遅延情報加工手段が前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばし、
シミュレーション手段が加工した前記遅延情報をもとに前記非同期回路の検証を行うことを特徴とする検証方法。
(付記2) 前記遅延情報加工手段は、前記非同期回路部のうち、情報の受信側回路の入力端子に接続された配線の配線遅延値を変化させることで、前記誤動作発生期間を引き延ばすことを特徴とする付記1記載の検証方法。
(付記3) 前記遅延情報加工手段は、前記ネットリストの各回路セルの入力から出力までの遅延時間を0とするように前記遅延情報を加工することを特徴とする付記1または2に記載の検証方法。
(付記4) 前記遅延情報加工手段は、前記回路セルがフリップフロップの場合には、前記フリップフロップの入力端子に接続された配線の配線遅延値を、最小設定値とすることを特徴とする付記1乃至3のいずれか一項に記載の検証方法。
(付記5) 前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり側で前記最小設定値に、立ち下がり側で、前記受信側回路に入力されるクロック信号の周期から前記最小設定値を減じた値とすることを特徴とする付記1乃至4のいずれか一項に記載の検証方法。
(付記6) 前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり側で前記クロック信号の周期から前記最小設定値を減じた値にして、立ち下がり側で前記最小設定値とすることを特徴とする付記1乃至5のいずれか一項に記載の検証方法。
(付記7) 前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり及び立ち下がりで前記最小設定値とすることを特徴とする付記1乃至6のいずれか一項に記載の検証方法。
(付記8) 前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり及び立ち下がりで前記クロック信号の周期から前記最小設定値を減じた値とすることを特徴とする付記1乃至7のいずれか一項に記載の検証方法。
(付記9) 前記シミュレーション手段は、前記クロック信号を入力した場合と、前記クロック信号を反転させた反転クロック信号を入力した場合の前記検証を行うことを特徴とする付記1乃至8のいずれか一項に記載の検証方法。
(付記10) 前記入力端子は、前記フリップフロップのデータ端子またはイネーブル端子であることを特徴とする付記4乃至9のいずれか一項に記載の検証方法。
(付記11) 非同期回路の検証を行う検証装置において、
レジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成する論理合成手段と、
前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する抽出手段と、
前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばす遅延情報加工手段と、
加工した前記遅延情報をもとに前記非同期回路の検証を行うシミュレーション手段と、
を有することを特徴とする検証装置。
(付記12) 非同期回路の検証を行う処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
レジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成する論理合成手段、
前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する抽出手段、
前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばす遅延情報加工手段、
加工した前記遅延情報をもとに前記非同期回路の検証を行うシミュレーション手段、
として機能させることを特徴とするプログラム。
本実施の形態の検証装置の概略を示す概念図である。 検証装置のハードウェア構成例を示す図である。 遅延情報加工処理の流れを示すフローチャートである。 加工前のSDFの遅延情報の一例を示す図である。 B_regにおけるデルタ遅延による誤動作と、デルタ遅延対策を説明する図である。 加工後の遅延情報の例を示す図である。 加工後の遅延情報を用いたシミュレーション結果を示す図である。 C_regにおけるデルタ遅延による誤動作と、デルタ遅延対策を説明する図である。 加工後の遅延情報を用いたシミュレーション結果であり、誤動作が検出されない場合とその対策を示す図である。 非同期回路の他の例を示す図であり、(A)がRTL記述を示し、(B)が論理合成後のネットリストで表される非同期回路を示す図である。 非同期回路による誤動作の例を示す図である。 加工後の遅延情報を用いたシミュレーション結果を示す図である。 従来の回路設計と検証の流れを示すフローチャートである。 RTL記述と、論理合成後のネットリストで表される非同期回路を示す図である。 非同期回路による誤動作の例を示す図である。
符号の説明
1 検証装置
2 論理合成手段
3 抽出手段
4 遅延情報加工手段
5 シミュレーション手段
10、11、12、13、14 データベース

Claims (10)

  1. 非同期回路の検証を行う検証方法において、
    論理合成手段がレジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成し、
    抽出手段が前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出し、
    遅延情報加工手段が前記遅延情報を加工して、前記非同期回路部における情報の受信側回路の入力端子に入力される信号のパルス幅を引き延ばし、
    シミュレーション手段が加工した前記遅延情報をもとに前記非同期回路の検証を行うことを特徴とする検証方法。
  2. 前記遅延情報加工手段は、前記非同期回路部における情報の受信側回路の入力端子に接続された配線の配線遅延値を変化させることで、前記パルス幅を引き延ばすことを特徴とする請求項1記載の検証方法。
  3. 前記遅延情報加工手段は、前記ネットリストの各回路セルの入力から出力までの遅延時間を0とするように前記遅延情報を加工することを特徴とする請求項1または2に記載の検証方法。
  4. 前記遅延情報加工手段は、前記ネットリストの回路セルが、前記非同期回路部における情報の受信側回路以外のフリップフロップの場合には、前記フリップフロップの入力端子に接続された配線の配線遅延値を、前記遅延情報で規定された、前記配線遅延値の最小設定値とすることを特徴とする請求項1乃至3のいずれか一項に記載の検証方法。
  5. 前記遅延情報加工手段は、前記非同期回路部における情報の受信側回路の入力端子に接続された配線の配線遅延値を、前記配線における信号の立ち上がり側で前記遅延情報で規定された、前記配線遅延値の最小設定値に、立ち下がり側で、前記受信側回路に入力されるクロック信号の周期から前記最小設定値を減じた値とすることを特徴とする請求項1記載の検証方法。
  6. 前記遅延情報加工手段は、前記非同期回路部における情報の受信側回路の入力端子に接続された配線の配線遅延値を、前記配線における信号の立ち上がり側で前記受信側回路に入力されるクロック信号の周期から前記遅延情報で規定された、前記配線遅延値の最小設定値を減じた値にして、立ち下がり側で前記最小設定値とすることを特徴とする請求項1記載の検証方法。
  7. 前記遅延情報加工手段は、前記非同期回路部における情報の受信側回路の入力端子に接続された配線の配線遅延値を、前記配線における信号の立ち上がり及び立ち下がりで前記遅延情報で規定された、前記配線遅延値の最小設定値とすることを特徴とする請求項1記載の検証方法。
  8. 前記遅延情報加工手段は、前記非同期回路部における情報の受信側回路の入力端子に接続された配線の配線遅延値を、前記配線における信号の立ち上がり及び立ち下がりで前記受信側回路に入力されるクロック信号の周期から前記遅延情報で規定された、前記配線遅延値の最小設定値を減じた値とすることを特徴とする請求項1記載の検証方法。
  9. 非同期回路の検証を行う検証装置において、
    レジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成する論理合成手段と、
    前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する抽出手段と、
    前記遅延情報を加工して、前記非同期回路部における情報の受信側回路の入力端子に入力される信号のパルス幅を引き延ばす遅延情報加工手段と、
    加工した前記遅延情報をもとに前記非同期回路の検証を行うシミュレーション手段と、
    を有することを特徴とする検証装置。
  10. 非同期回路の検証を行う処理をコンピュータに機能させるプログラムにおいて、
    コンピュータを、
    レジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成する論理合成手段、
    前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する抽出手段、
    前記遅延情報を加工して、前記非同期回路部における情報の受信側回路の入力端子に入力される信号のパルス幅を引き延ばす遅延情報加工手段、
    加工した前記遅延情報をもとに前記非同期回路の検証を行うシミュレーション手段、
    として機能させることを特徴とするプログラム。
JP2007046775A 2007-02-27 2007-02-27 検証方法、検証装置及びプログラム Expired - Fee Related JP4992468B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007046775A JP4992468B2 (ja) 2007-02-27 2007-02-27 検証方法、検証装置及びプログラム
US12/036,516 US7945882B2 (en) 2007-02-27 2008-02-25 Asynchronous circuit logical verification method, logical verification apparatus, and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007046775A JP4992468B2 (ja) 2007-02-27 2007-02-27 検証方法、検証装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2008210189A JP2008210189A (ja) 2008-09-11
JP4992468B2 true JP4992468B2 (ja) 2012-08-08

Family

ID=39717375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007046775A Expired - Fee Related JP4992468B2 (ja) 2007-02-27 2007-02-27 検証方法、検証装置及びプログラム

Country Status (2)

Country Link
US (1) US7945882B2 (ja)
JP (1) JP4992468B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122410B2 (en) * 2008-11-05 2012-02-21 International Business Machines Corporation Specifying and validating untimed nets
JP2011129029A (ja) * 2009-12-21 2011-06-30 Elpida Memory Inc 回路シミュレーション装置および過渡解析方法
JP5733109B2 (ja) * 2011-08-29 2015-06-10 富士通株式会社 検証支援プログラム、検証支援方法、および検証支援装置
JP6201382B2 (ja) * 2013-04-05 2017-09-27 株式会社ソシオネクスト 論理検証装置及び論理検証方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272667B1 (en) * 1997-10-09 2001-08-07 Kabushiki Kaisha Toshiba Method and apparatus for clock gated logic circuits to reduce electric power consumption
JP4176906B2 (ja) * 1999-01-14 2008-11-05 株式会社ルネサステクノロジ 静的・動的タイミング検証方法及び記憶媒体
JP3953250B2 (ja) 2000-02-16 2007-08-08 Necエレクトロニクス株式会社 非同期回路の検証方法
JP2003233628A (ja) 2002-02-07 2003-08-22 Toshiba Corp 測定結果フィードバック方法、測定結果フィードバック装置およびそのプログラム
JP2004185311A (ja) 2002-12-03 2004-07-02 Ricoh Co Ltd 非同期回路検証支援装置
JP4271067B2 (ja) * 2004-03-29 2009-06-03 富士通マイクロエレクトロニクス株式会社 非同期回路検証方法および非同期回路検証プログラム
JP2006139722A (ja) * 2004-11-15 2006-06-01 Canon Inc 非同期信号検証方法及び装置

Also Published As

Publication number Publication date
JP2008210189A (ja) 2008-09-11
US7945882B2 (en) 2011-05-17
US20080209377A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
JP2005284426A (ja) 非同期回路検証方法および非同期回路検証プログラム
US9892220B2 (en) Method and apparatus for adjusting a timing derate for static timing analysis
US9165105B2 (en) Rule checking for confining waveform induced constraint variation in static timing analysis
US7546560B2 (en) Optimization of flip flop initialization structures with respect to design size and design closure effort from RTL to netlist
US8539413B1 (en) Frequency optimization using useful skew timing
JP4992468B2 (ja) 検証方法、検証装置及びプログラム
US20060066317A1 (en) Method and device for determining the time response of a digital circuit
US8185371B2 (en) Modeling full and half cycle clock variability
US10430535B2 (en) Verification support program medium, verification support method, and information processing device for verification of a circuit
JP4763629B2 (ja) 検証装置、検証方法及びプログラム
JP4526596B2 (ja) 信号遅延評価プログラム、信号遅延評価方法、および信号遅延評価装置
JP4361838B2 (ja) Lsi設計方法
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
US7389488B2 (en) Method of finding driving strength and computer accessible record medium to store program thereof
US20210132147A1 (en) Test pattern generating method, test pattern generating device and fault model generating method
JP4419633B2 (ja) 論理回路設計システム、論理回路設計方法およびそのプログラム
CN110750956B (zh) 逻辑闸阶层验证方法以及验证系统
JP5338919B2 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
JP5146369B2 (ja) 回路設計プログラム、回路設計方法および回路設計装置
Kebaili et al. Enabler-based synchronizer model for clock domain crossing static verification
TWI782408B (zh) 邏輯模擬驗證系統、邏輯模擬驗證方法、及程式產品
JP7351189B2 (ja) タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム
US20210333320A1 (en) Slew-Load Characterization
WO2018025972A1 (ja) 回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2012230605A (ja) キャラクタライズ装置およびそのコンピュータ・プログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091009

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110803

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120305

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120313

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

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

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

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

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

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees