JP5873767B2 - 論理検証システム及びカバレジ取得方法 - Google Patents

論理検証システム及びカバレジ取得方法 Download PDF

Info

Publication number
JP5873767B2
JP5873767B2 JP2012138251A JP2012138251A JP5873767B2 JP 5873767 B2 JP5873767 B2 JP 5873767B2 JP 2012138251 A JP2012138251 A JP 2012138251A JP 2012138251 A JP2012138251 A JP 2012138251A JP 5873767 B2 JP5873767 B2 JP 5873767B2
Authority
JP
Japan
Prior art keywords
logic
event
occurrences
occurrence
specified number
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
JP2012138251A
Other languages
English (en)
Other versions
JP2014002622A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012138251A priority Critical patent/JP5873767B2/ja
Publication of JP2014002622A publication Critical patent/JP2014002622A/ja
Application granted granted Critical
Publication of JP5873767B2 publication Critical patent/JP5873767B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Description

本発明は、論理検証システム及びカバレジ取得方法に関し、例えば、大規模集積回路の開発において論理設計後に論理シミュレーションによって論理検証を行う論理検証システム及びカバレジ取得方法に適用して好適なものである。
近年、大規模集積回路(LSI:Large Scale Integration)の開発において、プロセスの微細化が進んだことにより、大規模なLSIの実現が可能になっている。
LSIの論理設計では、ハードウェア記述言語(HDL:Hardware Description Language)によって記述されるRTL(Resister Transfer Level)という抽象レベルの論理が使用される。HDLによって記述されるRTLは、論理合成ツールで取り扱いが可能なフリップフロップと組合せ論理回路とから構成される。HDLの一例として、SystemVerilogやVerilogHDL及びVHDL等がある。
論理設計が行われると、HDLで記述したRTLを検証対象として、検証対象の論理回路(検証対象論理回路)が設計者の意図した通りに動作するかを検証する論理検証が行われる。論理検証は、実機を用いることなく、検証対象論理回路をテストベンチにかけて論理シミュレータによる論理シミュレーションを行い、その動作結果を確認する方法が一般的である。例えば、論理シミュレーションの動作結果について、着目したい所定の事象(以下、着目事象という)の発生状況をカバレジとして取得し、当該発生頻度を計測することによって検証対象論理回路が設計者の意図した通りの動作を行っているかどうかを判断する。論理検証におけるカバレジの取得においては、検証時間の短縮と検証精度の向上とが重要な課題である。
ここで、前述したようにLSIが大規模化している現状では、論理検証における論理シミュレーションにおいて、論理回路の大規模化及び組合せ状態数の増加によって複雑さが増加し、テストデータの数が増える傾向にある。そして、テストデータの数が増える事により、論理シミュレーションの実行に必要な時間が増加するという問題がある。このような問題を解決する技術の一例として、下記の特許文献1又は特許文献2があげられる。
例えば特許文献1には、論理シミュレータを用いて論理検証を行う論理検証充分性評価システムが記載されている。特許文献1に記載された論理検証充分性評価システムは、着目事象の発生を計測する機能をシミュレーション対象回路の中に実現して論理シミュレーション実行中に着目事象の発生の計測を実行可能とすることにより、シミュレーション結果データの容量を不必要に増やさず、また、既存の論理シミュレータに特別な機構を付加することなく、高速にカバレジの取得を行う。
また、特許文献2には、相関図を用いた検証方式が記載されている。特許文献2に記載された検証方式では、カバレジの取得結果からテストデータの検証範囲を推定し、設計者が検証するべき事象の網羅性を確認して有効性の高いテストデータの作成を補助する。特許文献2に記載された検証方式では、このような観点から作成されたテストデータと観測点との相関図を生成し、当該相関図に基づいてテストデータと論理回路動作部との関係を可視化することにより、論理シミュレーションの効率化を図りつつ設計者の意図通りに論理シミュレーションができているかを確認することができる。
特許第3052263号公報 特開2011−150441号公報
しかし、論理シミュレーションで検証対象論理回路における着目事象の発生頻度を計測する場合には、着目事象の発生を報告するカバレジ取得記述が設けられるが、特許文献1に記載された論理検証充分性評価システム及び特許文献2に記載された検証方式では、着目事象が発生するたびに発生報告が行われる。検証対象論理回路が複雑になると、検証対象論理回路が設計者の意図通りに動作するかを確認するために必要な検証対象論理回路の動作回数が増加するので、着目事象の発生回数も増加し、その結果、発生報告の報告回数が増加する。発生報告という出力処理は、論理シミュレーションにおけるオーバヘッドと考えられるが、発生報告の報告回数が増加すると、その回数分だけオーバヘッドが増加し、論理シミュレーションの実行に要する時間が長くなってしまうという課題があった。
また、着目事象の発生頻度を計測するためには、発生頻度を知るために発生報告の総報告回数を把握する必要があるが、特許文献1に記載された論理検証充分性評価システム及び特許文献2に記載された検証方式では、論理シミュレータの出力先に当該総報告回数を計測するための部品を備える必要があった。
本発明は以上の点を考慮してなされたもので、論理検証において検証精度を維持しながら、報告回数の増加による論理シミュレーションの実行時間の長期化を防止し得る論理検証システム及びカバレジ取得方法を提案しようとするものである。
かかる課題を解決するため本発明においては、複数の論理回路が含まれた検証対象の論理回路にテストデータを入力する論理シミュレーションを実行し、前記論理シミュレーションにおける所定の着目事象の発生状況をカバレジとして取得する論理検証システムにおいて、前記テストデータを入力とする論理演算を行って演算結果を出力する論理回路と、前記論理回路から出力される演算結果を保持し出力する演算結果保持部と、前記演算結果保持部から出力される前記演算結果に基づいて、前記論理回路で前記着目事象が発生したか検出する着目事象検出部と、前記着目事象検出部によって前記着目事象の発生が検出されるたびに前記着目事象の発生回数を計数するカウンタ部と、を前記複数の論理回路の夫々で備え、前記カウンタ部は、前記計数した着目事象の発生回数が予め設定された規定回数に一致する場合に、前記規定回数分の着目事象が発生したことを示す規定回数発生報告をカバレジとして出力し、前記複数の論理回路の夫々について、前記着目事象検出部による前記着目事象の発生の検出判定と、前記カウンタ部による前記規定回数発生報告の出力判定とが行われる論理検証システムが提供される。
また、かかる課題を解決するため本発明においては、複数の論理回路が含まれた検証対象の論理回路にテストデータを入力する論理シミュレーションを実行し、前記論理シミュレーションにおける所定の着目事象の発生状況をカバレジとして取得する論理検証システムのカバレジ取得方法において、前記複数の論理回路の夫々について、前記論理回路が、前記テストデータを入力とする論理演算を行って演算結果を出力する論理演算ステップと、演算結果保持部が、前記論理演算ステップで前記論理回路から出力される演算結果を保持し出力する演算結果保持ステップと、着目事象検出部が、前記演算結果保持ステップで前記演算結果保持部から出力される前記演算結果に基づいて、前記論理回路で前記着目事象が発生したか検出する着目事象検出ステップと、カウンタ部が、前記着目事象検出ステップで前記着目事象検出部によって前記着目事象の発生が検出されるたびに前記着目事象の発生回数を計数する発生回数計数ステップと、前記カウンタ部が、前記発生回数計数ステップで計数した着目事象の発生回数が予め設定された規定回数に一致する場合に、前記規定回数分の着目事象が発生したことを示す規定回数発生報告をカバレジとして出力する規定回数発生報告ステップとを有し、前記複数の論理回路の夫々について、前記着目事象検出ステップにおける前記着目事象の発生の検出判定と、前記規定回数発生報告ステップにおける前記規定回数発生報告の出力判定とを行うカバレジ取得方法が提供される。
本発明によれば、論理検証において検証精度を維持しながら、報告回数の増加による論理シミュレーションの実行時間の長期化を防止し得る。
第1の実施の形態による論理検証システムのハードウェア構成を示すブロック図である。 図1に示す論理シミュレータと、論理シミュレータに入出力される種々のデータ等との関係を示す説明図である。 図1に示す論理シミュレータの機能的構成の一例を示すブロック図である。 図1に示す論理シミュレータによる論理シミュレーション実行時の処理の流れを示すフローチャートである。 従来の論理シミュレータの機能的構成の一例を示すブロック図である。 第2の実施の形態による論理検証システムにおける論理シミュレータの機能的構成の一例を示すブロック図である。 論理シミュレータの具体的な作成例を示すHDL記述である。 図7に示したHDL記述を用いて論理シミュレーションを行った実行結果の一例を示す説明図である。
(1)第1の実施の形態
本実施の形態による論理検証システムは、検証対象論理回路に対する論理シミュレーションを実行することによって、検証対象論理回路における着目事象の発生頻度を認識する。特に、着目事象の発生に伴う発生報告の実行頻度を抑制し、着目事象の発生回数が規定回数に達した場合にのみ規定回数発生報告を行うことにより、論理検証の検証精度を維持しながら、発生報告の出力処理に要する処理時間を削減して論理シミュレーションの全体的な処理時間の増加を防止することを特徴としている。
(1−1)第1の実施の形態による論理検証システムの構成
図1は、第1の実施の形態による論理検証システムのハードウェア構成を示す。図1に示すように、論理検証システム1は、主制御装置11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、及び波形表示装置16を備える。
主制御装置11は、例えばCPU(Central Processing Unit)であり、論理検証システム1の各部における動作を制御する。主記憶装置12は、例えばDRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)等の記憶装置である。
主記憶装置12には、主制御装置11が補助記憶装置13に格納されているデータの読取り及びプログラムの実行を行う場合に、当該データ及びプログラムが読み出されて一時的に格納される。また、主記憶装置12には、設計された論理回路の論理検証を行う論理シミュレータ200が格納される。論理シミュレータ200は、例えば、主記憶装置12に格納されるプログラムが起動されることによって形成されるモジュールであり、実際に論理回路を形成することなく論理シミュレーションを実行できる。
補助記憶装置13は、例えばハードディスクドライブ(HDD:Hard Disk Drive)又はフラッシュメモリ等の記憶装置であり、検証対象論理回路データ131、テストベンチプログラム132、ライブラリ133、テストデータ134、実行ログ135、信号観測波形データ136、及びカバレジ取得結果データ137が格納される。
検証対象論理回路データ131には、論理シミュレータ200による論理検証の対象となる検証対象論理回路(図3に示す検証対象論理回路210に相当)を示す情報が格納される。例えば、検証対象論理回路データ131には、検証対象論理回路を構成するRTLが格納されている。テストベンチプログラム132は、その実行によってテストベンチ(図3に示すテストベンチ220に相当)を形成するプログラムである。ライブラリ133は、検証対象論理回路210で使用される部品を定義したライブラリであって、論理シミュレータ200及びテストベンチプログラム132の実行時等に参照される。テストデータ134は、論理検証時に使用されるテストデータであり、検証対象論理回路210の論理検証を希望する全てのテストパターンについてのテストデータが設計者によって作成される。後述する論理シミュレーション時には、テストデータ134に記載されたスティミュラスが、直接又はテストベンチ220を介して論理シミュレータ200に入力される。
実行ログ135には、論理検証時に出力される動作ログが記録される。信号観測波形データ136には、論理検証時に論理シミュレータ200内の各部で観測される出力信号の信号値が記録される。カバレジ取得結果データ137には、論理シミュレーションにおけるカバレジ取得結果として着目事象の発生頻度を示す情報が記録される。論理シミュレータ200による論理シミュレーションについては、後に詳細に説明する。
入力装置14は、例えばキーボードであり、設計者によって論理シミュレータ200による論理検証の開始を指示する操作やテストデータを入力する操作等が行われる装置である。入力操作が行われた入力装置14は、当該入力操作に応じた信号を主制御装置11に通知する。出力装置15は、主制御部11の制御に従って、論理検証システム1における論理検証の結果(例えば、実行ログ135及びカバレジ取得結果データ137)を表示又は出力する装置である。波形表示装置16は、主制御部11の制御に従って信号の波形を表示する装置であり、信号観測波形データ136に記録された信号値の履歴に基づいて、論理検証時に観測された出力信号の波形を表示する。
図2は、図1に示す論理シミュレータと、論理シミュレータに入出力される種々のデータ等との関係を示す説明図である。論理シミュレータ200では、検証対象論理回路データ131、テストベンチプログラム132、ライブラリ133、及びテストデータ134が入力されて、検証対象論理回路に対する論理シミュレーションが実行される。そして、論理シミュレーションの結果、論理シミュレータ200は、実行ログ135、信号観測波形データ136、及びカバレジ取得結果データ137を出力する。
(1−2)論理シミュレータの機能的構成
図3は、図1に示す論理シミュレータの機能的構成の一例を示すブロック図である。図3を参照して、論理シミュレータ200の機能的構成について説明する。論理シミュレータ200は、検証対象論理回路210及びテストベンチ220を含んで構成される。
検証対象論理回路210は、論理シミュレータ200による論理検証の対象となる論理回路であって、検証対象論理回路データ131が論理シミュレータ200に入力されることにより生成される。検証対象論理回路210では、組合せ論理回路211A,211B間にフリップフロップ212Aが配置され、組合せ論理回路211B,211C間にフリップフロップ212Bが配置される。
組合せ論理回路211(個別には、組合せ論理回路211A〜211C)は、検証対象論理回路210のうち、スティミュラスが入力されて検証対象となる論理演算を実際に行う論理回路である。フリップフロップ212(個別には、フリップフロップ212A,212B)は、一般的なフリップフロップであり、例えば、クロックを入力の1つとするポジティブエッジトリガ型のフリップフロップを用いる。フリップフロップ212は、組合せ論理回路211の出力値を入力の1つとし、入力クロックの0から1への変化に応じて組合せ論理回路211からの入力を保持し、保持している値を出力する。
検証対象論理回路210は、テストベンチ220からフリップフロップ212A,212Bにクロックが入力されることにより、組合せ論理回路211A,211B,211Cを、入力クロックの0から1への変化に同期して論理動作させることができる。なお、図3では一例として、3つの組合せ論理回路211A,211B,211Cとフリップフロップ212A,212Bが示されているが、組合せ論理回路211とフリップフロップ212の個数及び配置関係は、これに限定されるものではない。
テストベンチ220は、論理検証時に論理シミュレータ200と併せて動作し、例えば、入力されたスティミュラスを模擬的に処理し、処理後の信号を組合せ論理回路211Aに出力する。また、テストベンチ220は、フリップフロップ212(個別にはフリップフロップ212A及び212B)にクロックを入力する。フリップフロップ212は、入力クロックの0から1への変化に同期して、組合せ論理回路211からの入力を保持する。
また、検証対象論理回路210には、1以上のカバレジ取得記述213(個別にはカバレジ取得記述213A,213B)が設けられている。カバレジ取得記述213Aはフリップフロップ212Aの出力側に接続され、カバレジ取得記述213Bはフリップフロップ212Bの出力側に接続される。カバレジ取得記述213は、検証対象論理回路210に対する論理シミュレーションの実行中に所定の着目事象が発生した場合に、その発生を検出し、検出した着目事象の発生に基づいて発生報告を行う。
カバレジ取得記述213Aは、内部に着目事象検出部214A及びカウンタ部215Aを有する。着目事象検出部214Aは、組合せ論理回路211Aで着目事象が発生した場合に、着目事象の発生を示す信号が入力されることにより着目事象の発生を検出する。また、着目事象検出部214Aは、着目事象の発生を示す信号をカウンタ部215Aに入力する。カウンタ部215Aは、着目事象検出部214Aからの入力に基づいて着目事象の発生回数を計数し、計数した発生回数が規定の回数(規定回数)に達した場合にのみ、着目事象が規定回数分発生したことを報告する発生報告として、規定回数発生報告を行う。
なお、カバレジ取得記述213Bもカバレジ取得記述213Aと同様に、着目事象検出部214B及びカウンタ部215Bを有する構成となっている(図示せず)が、説明を省略する。論理シミュレータ200では、カウンタ部215A又はカウンタ部215Bによる規定回数発生報告がカバレジの取得に相当し、規定回数発生報告の報告回数がカバレジ取得データ137に記録される。
(1−3)論理シミュレータによる論理シミュレーション
図4は、図1に示す論理シミュレータによる論理シミュレーション実行時の処理の流れを示すフローチャートである。図4では、一例として組合せ論理回路211A、フリップフロップ212A、及びカバレジ取得記述213Aにおける処理を説明するが、論理シミュレーションの実行時には、組合せ論理回路211B及び211Cでも、組合せ論理回路211Aでの処理と並行して同様の動作が行われる。
まず、テストデータ134に記載されたスティミュラスが、テストベンチ220に入力される(ステップS101)。次に、テストベンチ220が、入力されたスティミュラスを模擬的に処理し、クロックの出力タイミングに合わせて、処理後の信号を組合せ論理回路211Aに出力する(ステップS102)。なお、ステップS101においてスティミュラスが直接検証対象論理回路210の組合せ論理回路211Aに入力されてもよく、このような場合には、ステップS102の処理が行われずにステップS103の処理が行われる。
ステップS103において、組合せ論理回路211Aでは、入力された信号に基づいて論理演算が行われる(ステップS103)。そして、組合せ論理回路211Aからの出力はフリップフロップ212Aに入力され、フリップフロップ212Aに記憶される(ステップS104)。
ステップS105では、フリップフロップ212Aからの入力を着目事象検出部214Aで判定し、着目事象であった場合には(ステップS105のYES)、カウンタ部215Aに着目事象の発生を示す信号を出力する。また、フリップフロップ212Aからの入力が着目事象でなかった場合には(ステップS105のNO)、現在のクロックタイミングにおける論理シミュレーションの処理を終了し、次以降のクロックタイミングにおける論理シミュレーションの実行まで待機する。
カバレジ取得記述213Aでは、着目事象検出部214Aが着目事象の発生を検出してカウンタ部215Aに信号を転送する。そして、カウンタ部215Aは、着目事象検出部214Aからの入力に基づいて着目事象の発生回数を計数し(ステップS106)、計数した発生回数が規定の回数(規定回数)に達した場合にのみ(ステップS107のYES)、規定回数発生報告を出力する(ステップS108)。なお、規定回数は、複数種類が予め規定されていてもよい。従って例えば、カウンタ部215Aは、規定回数が8回及び64回に規定されていた場合には、着目事象の発生を示す信号が入力された回数が8回目及び64回目のときだけ、規定回数発生報告を論理シミュレータ200に出力する。
一方、ステップS106で計数した発生回数が規定回数に達していない、又は規定回数を超えている場合には(ステップS107のNO)、カウンタ部215Aは規定回数発生報告を出力せずに現在のクロックタイミングにおける論理シミュレーションの処理を終了し、次以降のクロックタイミングにおける論理シミュレーションの実行まで待機する。
ステップS108で規定回数発生報告が出力されると、論理シミュレータ200は、カバレジ取得結果データ137に、フリップフロップ212Aの入力に繋がる組合せ論理回路211Aにおいて着目事象の発生回数が規定回数に達したことを記録し(ステップS109)、現在のクロックタイミングにおける論理シミュレーションの処理を終了する。
なお、前述したように、組合せ論理回路211A以外の組合せ論理回路211B,211C等でも、ステップS101〜S109と同様の処理が同期をとって行われ、着目事象が発生するか否かの検出と、着目事象の発生回数が規定回数であるか否かに基づいた定回数発生報告の出力とが行われる。そして、テストデータ134に格納された全てのテストパターンについて、スティミュラスがクロックタイミングに合わせて論理シミュレータ200に入力され、論理シミュレーションが繰り返し行われる。
上記のような論理シミュレーションが行われることにより、論理シミュレータ200の動作ログが実行ログ135に記録され、論理シミュレータ200内の各部における出力信号の波形が信号観測波形データ136に記録され、着目事象の発生回数が規定回数に達した場合に報告される規定回数発生報告がカバレジ取得結果データ137に記録される。設計者はこれらのデータを参照することによって、検証対象論理回路210が設計者の意図した通りに動作したか判断する。
例えば、組合せ論理回路211の機能検証を行うために適切な規定回数が設定されている場合に、カバレジ取得結果データ137にカバレジ取得記述213Aから出力された規定回数発生報告が記録されていれば、カバレジ取得記述213Aに繋がる組合せ論理回路211Aにおいて十分な回数の着目事象の発生が検出されたことを示しているので、設計者は、組合せ論理回路211Aが設計者の意図した通りに動作したと判断できる。更に例えば、カバレジ取得結果データ137にカバレジ取得記述213Bから出力された規定回数発生報告が記録されていなければ、カバレジ取得記述213Bに繋がる組合せ論理回路211Bにおいて十分な回数の着目事象の発生が検出されなかったことを示し、設計者は、組合せ論理回路211Bでは十分な回数の論理検証が行われなかったと判断できる。この場合に、設計者は、検証対象論理回路210に対してテストデータ134を用いた論理シミュレータ200の論理シミュレーションについて、検証された範囲を組合せ論理回路211Aまでと推定することができる。
(1−4)従来の論理シミュレータによる論理シミュレーション
図5は、従来の論理シミュレータの機能的構成の一例を示すブロック図である。以下では、第1の実施の形態による論理シミュレータ200と比較するために、従来の論理シミュレータ900による論理シミュレーションの処理を説明する。論理シミュレータ900の構成は、カバレジ取得記述913内にカウンタ部を有していない点以外は、図3に示す論理シミュレータ200の構成と同様であり、その説明を省略する。
テストデータに記載されたスティミュラスが入力されて論理シミュレータ900による論理シミュレーションが開始されると、直接又はテストベンチ920を介してスティミュラスが入力された組合せ論理回路911が論理演算を行う。組合せ論理回路911からの出力はフリップフロップ912に記憶され、着目事象が発生した場合には、カバレジ取得記述913の着目事象検出部914が、着目事象が発生したことを示す発生報告を論理シミュレータ900に出力する。
(1−5)第1の実施の形態による論理検証システムの効果
図5に示した従来の論理シミュレータ900による論理シミュレーションでは、例えば組合せ論理回路911で着目事象が発生するたびに、カバレジ取得記述913から発生報告が出力されることになる。発生報告という出力処理は、論理シミュレーションにおけるオーバヘッドと考えられるが、着目事象が発生するたびに発生報告の出力処理が必要となることにより、従来の論理シミュレータ900では、全てのテストデータに対する論理シミュレーションを実行する場合に、膨大なオーバヘッド処理時間が発生してしまう。特にLSI設計のように大規模な論理設計を行う場合には、大量のテストデータによる論理シミュレーションが必要となることから、その影響は非常に大きなものとなってしまう。一方、前述した第1の実施の形態による論理シミュレータ200では、カバレジ取得記述213のカウンタ部215が、着目事象の発生回数を計数し、着目事象の発生回数が規定回数に達した場合にのみ規定回数発生報告を出力する。
具体的には例えば、論理シミュレータ200における規定回数を100回と規定し、従来の論理シミュレータ900と第1の実施の形態による論理シミュレータ200とのそれぞれにおいて着目事象が120回発生するような論理シミュレーションを行った場合を考える。このとき、従来の論理シミュレータ900は120回分の発生報告に対する出力処理を行わなければならない。一方、第1の実施の形態による論理シミュレータ200は、着目事象の100回目の発生時に、1回の規定回数発生報告に対する出力処理を行うのみでよく、論理シミュレーションにおけるオーバヘッドが大幅に短縮されることがわかる。
すなわち、第1の実施の形態による論理検証システム1では、論理シミュレータ200による論理シミュレーションの実行において着目事象の発生報告を発生回数が規定回数に達した場合にのみ行うようにすることにより、論理検証において検証精度を維持しながら、着目事象の報告回数の増加による論理シミュレーションの実行時間の長期化を防止し得る。
さらに、論理シミュレータ200に複数の規定回数を設定した場合であっても、着目事象の発生回数が増加すればするほど、従来の論理シミュレータ900における発生報告によるオーバヘッド処理時間と比べて、第1の実施の形態による論理シミュレータ200におけるオーバヘッド処理時間が短縮されることは明らかである。従って、第1の実施の形態による論理検証システム1によれば、同一の着目事象について規定回数の異なる報告タイミングを設けたとしても、論理検証において着目事象の報告回数の増加による論理シミュレーションの実行時間の長期化を防止し得る。
また、論理シミュレータ200に複数の規定回数を設定した場合には、設計者は、カバレジ取得結果データ137に記録された規定回数発生報告の出力を示すデータを参照することにより、論理シミュレーションによって発生した着目事象の発生回数の概数を認識することができるので、着目事象の総発生回数を計数するための部品を備えることなく着目事象の発生頻度を得ることが可能である。さらに、検証対象論理回路210が設計者の意図する通りに動作していると判断し得る規定回数を設定すれば、設計者は、当該規定回数に基づく規定回数発生報告の有無を確認するだけで、論理検証の結果を判断することが可能である。
また前述したように、第1の実施の形態による論理検証システム1によれば、カバレジ取得結果データ137に記録された、検証対象論理回路210内のそれぞれの組合せ論理回路211に対応するカバレジ取得記述213から出力された規定回数発生報告を参照することにより、論理シミュレーションで検証対象論理回路210に対して用いたテストデータ134の検証範囲を推定することができるので、テストデータ134の有効性を判断する際に有用な効果を奏する。例えば、第1の実施の形態による論理検証システム1の論理検証によるカバレジ取得結果データ137を用いて検証対象論理回路210に対して十分な検証範囲を有するテストデータ134を検討し、検討して作成したテストデータを特許文献2に記載された検証方式に活用すれば、より効率的な相関図の作成に寄与する効果が期待できる。
(1−6)拡張フリップフロップ
なお、図3に示す論理シミュレータ200では、検証対象論理回路210内に、組合せ論理回路211、フリップフロップ212、及びカバレジ取得記述213が個々に配置される構成について説明したが、論理シミュレータ200の構成はこれに限らず、例えば図3に破線で示すように、フリップフロップ212と当該フリップフロップ212に繋がるカバレジ取得記述213とを1つにまとめ、拡張フリップフロップ216(個別には、拡張フリップフロップ216A,216B)としてもよい。
このような場合に、設計者は、検証対象論理回路を構成するRTLをHDLで記述する場合に、拡張フリップフロップ216に対応するRTLを1つのモジュールとして記述することができるので、異なる検証対象論理回路を作成する場合に、毎回フリップフロップ212とカバレジ取得記述213とを別々に記述せずに済み、設計者の負担を軽減することができる。これは、例えばLSIのような大規模な論理回路の設計時に論理検証を行う場合に特に有用である。
(2)第2の実施の形態
第2の実施の形態による論理検証システムは、論理シミュレーション実行時に異なる着目事象を検出するようなカバレジ取得記述に対応した論理シミュレータを備え、特に、異なる着目事象を組の動作として検出することで着目事象の発生回数を1回とみなし、着目事象の発生回数が規定回数に達した場合にのみ規定回数発生報告を行うことにより、発生報告の出力処理に要する処理時間を削減して論理シミュレーションの全体的な処理時間の増加を防止することを特徴としている。
(2−1)第2の実施の形態による論理シミュレータの機能的構成及び動作
図6は、第2の実施の形態による論理検証システムにおける論理シミュレータの機能的構成の一例を示すブロック図である。図6に示す論理シミュレータ300は、図3の論理シミュレータ200と同様に、テストベンチや組合せ論理回路を含むが、それら記載が省略されている。また、第2の実施の形態による論理検証システムのハードウェア構成は、図1に示した第1の実施の形態による論理検証システム1のハードウェア構成と同様であり、その説明を省略する。
なお、図6に示す論理シミュレータ300では、第1の実施の形態で説明した拡張フリップフロップ216と同様に、フリップフロップ312とフリップフロップ312に繋がるカバレジ取得記述313とを1つにまとめた拡張フリップフロップ311が用いられているが、例えば拡張フリップフロップ311を用いずに、フリップフロップ312とカバレジ取得記述313とを別々に記述して作成するようにしてもよい。
フリップフロップ312は、組合せ論理回路における論理演算結果が入力され、例えばテストベンチから入力されるクロックが0から1に変化するときに、出力値を組合せ論理回路から入力された値に変更し、それ以外のタイミングでは出力値を保持する。
カバレジ取得記述313は、着目事象検出部314とカウンタ部315とを有する。着目事象検出部314には、立上り検出部316、立下り検出部317、トグル検出部318とが設けられている。フリップフロップ312からの信号が入力された場合に、着目事象検出部314では、当該信号の立上りを立上り検出部316が検出し、当該信号の立下りを立下り検出部317が検出し、これらの立上り及び立下りの組合せをトグル検出部318が検出する。従って、トグル検出部318は、フリップフロップ312からの入力に、立上り変化後に立下り変化、又は立下り変化後に立上り変化するトグルを検出すると、着目事象の発生を示す信号をカウンタ部315に出力する。トグル検出部318は、着目事象の発生を1回検出するごとに、カウンタ部315に信号を出力する。
カウンタ部315には、検出回数計数器319及び規定回数比較器320が設けられている。検出回数計数器319は、トグル検出部318から着目事象の発生を1回検出するごとに出力される信号を、検出回数として計数し、計数結果を規定回数比較器320に入力する。規定回数比較器320は、検出回数計数器319から入力される検出回数の計数結果と、別入力から入力される規定回数の値とに基づいて比較を行い、検出回数の計数結果が規定回数に一致するか否かを判定する。そして、規定回数比較器320は、検出回数の計数結果が規定回数に一致する場合にのみ、規定回数発生報告を出力する。規定回数比較器320から出力された規定回数発生報告は、論理シミュレータ300によってカバレジ取得結果データ137に記録される。
(2−2)第2の実施の形態による論理シミュレータのHDL記述例
図7は、論理シミュレータの具体的な作成例を示すHDL記述である。図7では、図6に示す論理シミュレータ300をSystemVerilogによって記述している。SystemVerilogは、米国電気電子学会(IEEE:The Institute of Electrical and Electronics Engineers, Inc.)のStd(Standard)1800で標準化されたハードウェア記述言語である。図7の各行の右側に記載された「Line」は、行数を示す。
図7のLine007〜Line009の記述は、フリップフロップ312に相当し、Line013〜Line046の記述は、カバレジ取得記述313に相当する。なお、SystemVerilog の仕様により、Line012の「// synopsys synthesis_off」とLine047の「// synopsys synthesis_on」との間の記述は、論理シミュレーションの実行時のみ読み込まれる。従って、図7に示すコードは、論理シミュレーションの実行時にのみ、Line013〜Line046に記述されたカバレジ取得記述313の構成が読み込まれるので、論理検証後に実際に論理合成を行う際には読み込まれず、コードをそのまま流用できるという利便性を有している。
また、Line024〜Line026の記述は、着目事象検出部314に相当し、Line028〜Line045の記述は、カウンタ部315に相当する。Line028〜Line030の記述は、検出回数計数器319に相当し、一例として2進数8ビット幅のカウンタが用いられている。Line032〜Line040の記述は、規定回数比較器320に相当し、一例として、Line034〜Line037の各行の記述で128回、64回、8回、及び1回が規定されている。そして、Line042〜Line045には、着目事象の発生回数が上記の規定回数に達した場合に、規定回数発生報告を行うことが記述されている。
図7に示したコードでは、カウンタの計数上限あたり1回の規定回数発生報告が行われるように記述されているので、カウンタのビット幅を大きくして計数上限を増やせば、着目事象の発生によるトグル回数が規定回数よりも大きくなった場合に、報告回数を低減することができる。
(2−3)第2の実施の形態による論理シミュレーションの実行結果例
図8は、図7に示したHDL記述を用いて論理シミュレーションを行った実行結果の一例を示す説明図である。報告箇所欄810には、規定回数発生報告を行うカウンタが記載され、報告回数欄820には、テストデータA及びテストデータBの2つのテストデータによる論理シミュレーション実行時の、各報告箇所における報告回数が記載されている。
なお、図8には、比較のために、従来の論理シミュレーション欄831に、着目事象が発生するたびに発生報告を行う従来の論理シミュレータにおける発生報告の回数が記載されている。具体的には、Qriseは信号の立上りを着目事象として検出して発生報告を行い、Qfallは信号の立下りを着目事象として検出して発生報告を行う。
また、論理シミュレータ300による論理シミュレーション欄832には、2進数8ビット幅で計数上限である256回ごとにカウントがループするカウンタに規定回数を規定した場合の、規定回数発生報告の報告回数が記載されている。具体的には、Qchg001、Qchg008、Qchg064、及びQchg128は、それぞれ1回目、8回目、64回目、及び128回目の着目事象発生時に規定回数発生報告を行う。
ここで図8を参照すると、テストデータAを入力した場合には、従来の論理シミュレーション欄831のQrise及びQfallの報告回数がそれぞれ2048回であることから、着目事象の発生回数が2048回であったことが分かる。そして、このとき、従来の論理シミュレータは、合計4096回分の発生報告に伴う出力処理が行われる。一方、論理シミュレータ300による論理シミュレーション欄832の各カウンタによる規定回数発生報告の回数は、それぞれ16回に留まっており、全カウンタによる規定回数発生報告の回数を合計しても、論理シミュレータ300は64回分の規定回数発生報告に伴う出力処理を行うだけでよい。従って、論理シミュレータ300は、論理シミュレーションの発生報告に伴うオーバヘッドの処理時間について、従来の論理シミュレータと比較して1.6%程度(64/4096=0.016…)の処理時間しか必要としないことが分かり、全体的な処理時間の増加を大幅に抑制することが確認できた。
また、同様にテストデータBを入力した場合について考察すると、着目事象の発生回数が35回であったときに、従来の論理シミュレータでは合計70回の発生報告に伴う出力処理が必要となるのに対して、論理シミュレータ300では合計3回の規定回数発生報告に伴う出力処理しか行われない。このとき、論理シミュレータ300は、論理シミュレーションの発生報告に伴うオーバヘッドの処理時間について、従来の論理シミュレータと比較して4.3%程度(3/70=0.043…)の処理時間しか必要としないことが分かり、全体的な処理時間の増加を大幅に抑制することが再び確認できた。
さらに、テストデータBを入力した場合の論理シミュレータ300による規定回数発生報告の報告回数に注目すると、Qchg064による規定回数発生報告はあるが、Qchg128による規定回数発生報告がなかったことから、着目事象の発生回数が64回以上〜128回未満であったことが分かる。すなわち、設計者は、着目事象の発生回数を別途計数するような部品を用いることなく、規定回数発生報告の報告回数を見るだけで、着目事象の発生頻度の概数を容易に知ることができる。
またさらに、論理シミュレータ300によれば、従来の論理シミュレータによる論理シミュレーションと比較して、より少ないデータ数でカバレジ取得結果をカバレジ取得結果データ137に記録することができるので、着目事象の発生回数を増やして多くのカバレジ取得を試みた場合にも容易に対応することが可能であり、このようにして収集したカバレジ取得結果を用いて設計者がテストデータの検証を行うことによって、より効率的なテストデータの作成を補助する効果も期待できる。
(2−4)第2の実施の形態による論理検証システムの効果
上記のように、図6に示した論理シミュレータ300による論理シミュレーションでは、着目事象検出部314が信号の立上り及び立下りをトグルで検出し、カウンタ部315がトグル検出の結果に基づいて着目事象の発生回数を計数し、当該発生回数が規定回数に一致する場合にのみ規定回数発生報告を出力することにより、着目事象が規定回数分だけ発生した場合に初めて1回の規定回数発生報告が行われる。これに対し、従来の論理シミュレータによる論理シミュレーションでは、信号の立上り及び立下りについて、それぞれを検出するたびに発生報告を行う必要があった。
具体的には例えば、論理シミュレータ300における規定回数を100回と規定し、従来の論理シミュレータと第2の実施の形態による論理シミュレータ300とのそれぞれにおいてトグルが120回発生するような論理シミュレーションを行った場合を考える。このとき、従来の論理シミュレータでは、120回のトグルの発生について、それぞれ信号の立上がりと立下りのタイミングで発生報告を行うので、240回の発生報告に対する出力処理が必要になる。一方、第2の実施の形態による論理シミュレータ300では、着目事象の100回目の発生時に、1回の規定回数発生報告を行うだけであるから、規定回数発生報告に対する出力処理を1回行うだけで済む。
従って、第2の実施の形態による論理検証システムでは、カバレジ取得記述313が信号の立上り及び立下りをそれぞれ検出するように記述されている場合でも、着目事象検出部314が論理シミュレーション実行時に信号の立上り及び立下りをトグル検出することにより、着目事象の発生を検出するごとにカウンタ部315に入力が1回行われ、第1の実施の形態による論理検証システム1と同様に、論理検証の検証精度を維持しながら、着目事象の報告回数の増加による論理シミュレーションの実行時間の長期化を防止し得る。
(3)他の実施の形態
なお、上記の第2の実施の形態による論理検証システムでは、論理シミュレータ300の実装例として図7にSystemVerilogを用いた記述を示したが、本発明はこれに限定されるものではなく、第1の実施の形態による論理検証システム1の論理シミュレータ200も同様に記述することができる。また、これらの論理シミュレータ200又は論理シミュレータ300を記述するHDLは、SystemVerilogに限定されるものではなく、例えば、IEEEのStd1364で標準化されたVerilogと、IEEEのStd1850で標準化されたPSL(Property Specification Language)とを用いて記述するようにしてもよい。また、Verilogの代わりに、IEEEのStd1076で標準化されたVHDL(VHSIC Hardware Description Language)を用いて記述するようにしてもよい。このように、第1及び第2の実施の形態による論理検証システムの論理シミュレータ200,300は、複数種類のHDLで記述して実装することが可能なことから、論理設計において幅広く利用することができる。
1 論理検証システム
11 主制御装置
12 主記憶装置
13 補助記憶装置
14 入力装置
15 出力装置
16 波形表示装置
131 検証対象論理回路データ
132 テストベンチプログラム
133 ライブラリ
134 テストデータ
135 実行ログ
136 信号観測波形データ
137 カバレジ取得結果データ
200,300 論理シミュレータ
210,310 検証対象論理回路
211 組合せ論理回路
212,312 フリップフロップ
213,313 カバレジ取得記述
214,314 着目事象検出部
215,315 カウンタ部
216,311 拡張フリップフロップ
220 テストベンチ
316 立上り検出部
317 立下り検出部
318 トグル検出部
319 検出回数計数器
320 規定回数比較器
900 従来の論理シミュレータ

Claims (9)

  1. 複数の論理回路が含まれた検証対象の論理回路にテストデータを入力する論理シミュレーションを実行し、前記論理シミュレーションにおける所定の着目事象の発生状況をカバレジとして取得する論理検証システムにおいて、
    前記テストデータを入力とする論理演算を行って演算結果を出力する論理回路と、
    前記論理回路から出力される演算結果を保持し出力する演算結果保持部と、
    前記演算結果保持部から出力される前記演算結果に基づいて、前記論理回路で前記着目事象が発生したか検出する着目事象検出部と、
    前記着目事象検出部によって前記着目事象の発生が検出されるたびに前記着目事象の発生回数を計数するカウンタ部と
    を前記複数の論理回路の夫々で備え、
    前記カウンタ部は、前記計数した着目事象の発生回数が予め設定された規定回数に一致する場合に、前記規定回数分の着目事象が発生したことを示す規定回数発生報告をカバレジとして出力し、
    前記複数の論理回路の夫々について、前記着目事象検出部による前記着目事象の発生の検出判定と、前記カウンタ部による前記規定回数発生報告の出力判定とが行われる
    ことを特徴とする論理検証システム。
  2. 前記カウンタ部は、前記計数した着目事象の発生回数が、予め設定された複数の規定回数のそれぞれに一致するたびに、前記規定回数発生報告を出力する
    ことを特徴とする請求項1に記載の論理検証システム。
  3. 前記カウンタ部には、前記着目事象の発生頻度を推定し得る複数の規定回数が設定される
    ことを特徴とする請求項2に記載の論理検証システム。
  4. 前記演算結果保持部と、該演算結果に接続される前記着目事象検出部と、該着目事象検出部に接続される前記カウンタ部とが、1つのモジュールに纏められて形成される
    ことを特徴とする請求項1に記載の論理検証システム。
  5. 前記着目事象検出部は、前記演算結果保持部から出力される信号について、複数の前記着目事象を組の動作として検出した場合に、前記着目事象が1回発生したと検出する
    ことを特徴とする請求項1に記載の論理検証システム。
  6. 複数の論理回路が含まれた検証対象の論理回路にテストデータを入力する論理シミュレーションを実行し、前記論理シミュレーションにおける所定の着目事象の発生状況をカバレジとして取得する論理検証システムのカバレジ取得方法において、
    前記複数の論理回路の夫々について、
    前記論理回路が、前記テストデータを入力とする論理演算を行って演算結果を出力する論理演算ステップと、
    演算結果保持部が、前記論理演算ステップで前記論理回路から出力される演算結果を保持し出力する演算結果保持ステップと、
    着目事象検出部が、前記演算結果保持ステップで前記演算結果保持部から出力される前記演算結果に基づいて、前記論理回路で前記着目事象が発生したか検出する着目事象検出ステップと、
    カウンタ部が、前記着目事象検出ステップで前記着目事象検出部によって前記着目事象の発生が検出されるたびに前記着目事象の発生回数を計数する発生回数計数ステップと、
    前記カウンタ部が、前記発生回数計数ステップで計数した着目事象の発生回数が予め設定された規定回数に一致する場合に、前記規定回数分の着目事象が発生したことを示す規定回数発生報告をカバレジとして出力する規定回数発生報告ステップと
    を有し、
    前記複数の論理回路の夫々について、前記着目事象検出ステップにおける前記着目事象の発生の検出判定と、前記規定回数発生報告ステップにおける前記規定回数発生報告の出力判定とを行う
    ことを特徴とするカバレジ取得方法。
  7. 前記規定回数発生報告ステップで、前記カウンタ部が、前記計数した着目事象の発生回数が、予め設定された複数の規定回数のそれぞれに一致するたびに、前記規定回数発生報告を出力する
    ことを特徴とする請求項6に記載のカバレジ取得方法。
  8. 前記規定回数発生報告ステップで、前記カウンタ部には、前記着目事象の発生頻度を推定し得る複数の規定回数が設定される
    ことを特徴とする請求項7に記載のカバレジ取得方法。
  9. 前記着目事象検出ステップでは、前記着目事象検出部が、前記演算結果保持部から出力される信号について、複数の前記着目事象を組の動作として検出した場合に、前記着目事象が1回発生したと検出する
    ことを特徴とする請求項6に記載のカバレジ取得方法。
JP2012138251A 2012-06-19 2012-06-19 論理検証システム及びカバレジ取得方法 Expired - Fee Related JP5873767B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012138251A JP5873767B2 (ja) 2012-06-19 2012-06-19 論理検証システム及びカバレジ取得方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012138251A JP5873767B2 (ja) 2012-06-19 2012-06-19 論理検証システム及びカバレジ取得方法

Publications (2)

Publication Number Publication Date
JP2014002622A JP2014002622A (ja) 2014-01-09
JP5873767B2 true JP5873767B2 (ja) 2016-03-01

Family

ID=50035726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012138251A Expired - Fee Related JP5873767B2 (ja) 2012-06-19 2012-06-19 論理検証システム及びカバレジ取得方法

Country Status (1)

Country Link
JP (1) JP5873767B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6304047B2 (ja) * 2015-01-13 2018-04-04 トヨタ自動車株式会社 コンピュータ・プログラムの検査用のコンピュータ・プログラム、検査装置及び検査方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3052263B2 (ja) * 1994-12-22 2000-06-12 株式会社日立製作所 論理検証充分性評価方法およびそのためのシステム
US7454325B2 (en) * 2004-12-07 2008-11-18 International Business Machines Corporation Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases
JP2008204100A (ja) * 2007-02-19 2008-09-04 Canon Inc 論理検証方法及び検証装置
JP5308098B2 (ja) * 2008-08-13 2013-10-09 株式会社日立情報通信エンジニアリング 情報処理装置試験プログラム及び方法

Also Published As

Publication number Publication date
JP2014002622A (ja) 2014-01-09

Similar Documents

Publication Publication Date Title
US10509073B2 (en) Timing-aware test generation and fault simulation
US8095354B2 (en) Power consumption peak estimation program for LSI and device therefor
US8407653B1 (en) Method and system of estimating a derating factor for soft errors in a circuit
US8650519B2 (en) Automated functional coverage for an integrated circuit design
US8413102B2 (en) Vectorless IVD analysis prior to tapeout to prevent scan test failure due to voltage drop
US20210279392A1 (en) Glitch power analysis with register transistor level vectors
US10354029B2 (en) Method for equipping registers of an integrated circuit to detect timing violations
US20080126063A1 (en) Simulation System with Guided Backtracking
JP5873767B2 (ja) 論理検証システム及びカバレジ取得方法
Wagner et al. Efficient variation-aware statistical dynamic timing analysis for delay test applications
Devanathan et al. A stochastic pattern generation and optimization framework for variation-tolerant, power-safe scan test
Thakyal et al. Layout-aware selection of trace signals for post-silicon debug
Wang et al. Diagnosis of hold time defects
Lee et al. A novel pattern generation framework for inducing maximum crosstalk effects on delay-sensitive paths
Holst et al. Timing-accurate estimation of IR-drop impact on logic-and clock-paths during at-speed scan test
JP2008204350A (ja) 電力消費見積もりシステムおよび電力消費見積もり方法
Abolmaali et al. An efficient false path-aware heuristic critical path selection method with high coverage of the process variation space
Chang et al. Rtl analysis and modifications for improving at-speed test
JP5321624B2 (ja) 論理回路検証装置、論理回路検証方法およびプログラム
US8099705B2 (en) Technique for determining circuit interdependencies
US8392860B1 (en) Identifying speed binning test vectors during simulation of an integrated circuit design
US20130311966A1 (en) Circuit design support apparatus, computer-readable recording medium, and circuit design support method
JP5077010B2 (ja) システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。
Toulas et al. Diagnosis with transition faults on embedded segments
JP5381591B2 (ja) ディレイ解析装置、ディレイ解析方法及びディレイ解析プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150731

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160118

R150 Certificate of patent or registration of utility model

Ref document number: 5873767

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees