JP2004220222A - 設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム - Google Patents

設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム Download PDF

Info

Publication number
JP2004220222A
JP2004220222A JP2003005308A JP2003005308A JP2004220222A JP 2004220222 A JP2004220222 A JP 2004220222A JP 2003005308 A JP2003005308 A JP 2003005308A JP 2003005308 A JP2003005308 A JP 2003005308A JP 2004220222 A JP2004220222 A JP 2004220222A
Authority
JP
Japan
Prior art keywords
register
random number
code coverage
description data
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003005308A
Other languages
English (en)
Other versions
JP4183035B2 (ja
Inventor
Takamitsu Yamada
孝光 山田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003005308A priority Critical patent/JP4183035B2/ja
Publication of JP2004220222A publication Critical patent/JP2004220222A/ja
Application granted granted Critical
Publication of JP4183035B2 publication Critical patent/JP4183035B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】ロジックBISTの擬似乱数発生器から印加される擬似乱数のテストデータによって故障検出がされにくいRTL中の回路記述を検出して、設計者に警告し、ロジックBIST向けのRTL改善を支援し、スキャンベースのテスト法においてテストデータが乱数であるときのテスト品質を向上させること。
【解決手段】レジスタトランスファレベルのハードウェア記述データを入力する手段と、前記機能記述データ中の記憶素子が推量され得るレジスタ変数を認識するレジスタ変数認識手段402と、前記レジスタ変数認識手段によって認識されたレジスタ変数へ乱数を印加する乱数発生手段403と、この乱数の印加によって引き起こされるイベントをシミュレーションするシミュレータ405とを設け、前記シミュレーションの結果によるハードウェア記述データのソースコードカバレッジ解析を行うコードカバレッジ解析手段406とを有することを特徴とする。
【選択図】 図4

Description

【0001】
【発明の属する技術分野】
本発明は、テスト容易性解析および容易性解析、並びにテスト容易化設計およびテスト容易化設計装置に関し、具体的には、ロジックの組込み自己試験機構によって大規模集積回路のテストを実施する際、アーキテクチャに依存しないハードウェアの機能記述中、故障検出されにくい記述を確認する設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラムに関する。
【0002】
【従来の技術】
擬似乱数をテストデータに使用したスキャンベースの組込み自己テスト法(以降、ロジックBIST(Built−in―self−Test)と呼ぶ。)の技術の詳細は特開平5−241882号公報(特許文献1)、特許第2711492号公報(特許文献2)を参照する。レジスタトランスファレベルの機能記述の検証法には、特開平11−85828号公報(特許文献3)、特開2000−215225号公報(特許文献4)、特開平6−259496号公報(特許文献5)がある。
【0003】
上記特許文献3と5は、ユーザ作成のテストベンチによるテスト品質の向上を目的とした支援装置であって、ユーザのテストベンチを使ったシミュレーション結果から、順序回路の状態カバレッジや未活性の状態を警告する。
【0004】
上記特許文献4は、ユーザ作成のテストベンチによるシミュレーション結果を元に、入力から出力までのデータ伝播を調査してテスト容易化を検査する。
【0005】
上記ロジックBISTでは、テストデータが擬似乱数であるために十分な故障検出率が得られないケースがある。特に、多ビットの比較演算器は擬似乱数によるテストの結果、故障検出がされにくい回路(以降、ランダムレジスタントと呼ぶ)である。エンコーダやネストした条件分岐処理を持つ回路に関しても、テストデータが擬似乱数では条件分岐先に偏りが発生し、その結果、テストされない回路が残ってしまう。
【0006】
従来、このような問題に対して、ゲートレベルのネットリスト中の可制御性、可観測性の悪い箇所にテスト回路を挿入する技術がある。これはUSP 6,070,261(特許文献6)を参照する。しかし、この手法では挿入されたテスト回路のために回路機能、特にスピードの劣化が発生してしまうという問題があった。大規模回路になった場合は可制御性、可観測性の解析ツールに実行時間が長大になるという問題も発生している。
【0007】
以上の問題を解決するためには、例えばレジスタトランスファレベル(以降、RTLと呼ぶ。)の段階でロジックBISTによる故障検出が困難な記述箇所を抽出し、それに対してテスト回路記述を追加しておけば、論理合成によって上記問題に対策が打たれたゲートレベルネットリストが得られる。
【0008】
【特許文献1】
特開平5−241882号公報
【特許文献2】
特許第2711492号公報
【特許文献3】
特開平11−85828号公報
【特許文献4】
特開2000−215225号公報
【特許文献5】
特開平6−259496号公報
【特許文献6】
米国特許第6,070,261号明細書
【0009】
【発明が解決しようとする課題】
しかし、上記解決手段によるためには、レジスタトランスファレベル(以降、RTLと呼ぶ)のどこの記述がランダムレジスタントであるかを事前に分かっておく必要がある。
【0010】
そこで、本発明の目的は、RTL中のランダムレジスタントな記述を検出して、設計者に警告し、ロジックBIST向けのRTL改善を支援する設計支援装置を提供することにある。
【0011】
【課題を解決するための手段】
上記目的を達成するため、本発明に係る設計支援装置は、レジスタトランスファレベルのハードウェア記述データを入力する手段と、前記機能記述データ中の変数に関して、論理合成システムによって記憶素子が推量され得るレジスタ変数を認識するレジスタ変数認識手段と、前記レジスタ変数認識手段によって認識されたレジスタ変数へ乱数を印加する乱数発生手段と、この乱数の印加によって引き起こされるイベントをシミュレーションするシミュレータと、前記シミュレーションの結果によるハードウェア記述データのソースコードカバレッジ解析を行うコードカバレッジ解析手段とを有することを特徴とする。
【0012】
また、上記設計支援装置を実現するために、コンピュータを、請求項1に記載の前記ハードウェア記述データ入力手段、前記レジスタ変数認識手段、前記乱数発生手段、前記コードカバレッジ解析手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体を特徴としている。
【0013】
また、前記コードカバレッジ解析手段は、ハードウェア記述データ内に記述された条件分岐記述に関する分岐処理の活性化率に関して活性化頻度の偏りを解析することを特徴とする。
【0014】
また、前記コードカバレッジ解析手段は、レジスタやネットの変数に関してシミュレーション結果による変化を統計処理して、取り得た値の発生頻度を解析することを特徴とする。
【0015】
また、レジスタトランスファレベルのハードウェア記述データをシミュレーションして、ソースコードカバレッジ解析を行うコードカバレッジ方法は、機能記述データ中の変数に関して、論理合成システムによって記憶素子が推量され得るレジスタ変数を認識し、レジスタ変数認識手段によって認識されたレジスタ変数へ乱数を印加し、この乱数の印加によって引き起こされるイベントをシミュレーションすることを特徴とする。
【0016】
また、上記特許文献3、4、5と比較した本発明の進歩性は、本発明が、スキャンベースのテスト法において、テストデータが擬似乱数であるときのテスト品質の向上を目的としていることである。
【0017】
【発明の実施の形態】
図1に、請求項1に記載の、本発明の設計支援装置の第1の構成図を示す。
101はメモリもしくはハードディスクであって、レジスタトランスファレベル(以降、RTLと呼ぶ。)の機能記述データや本発明の各手段をプログラムの形式で格納する。102はCPU(Cetral Processing Unit)であって、本発明の実行をつかさどる。103はキーボード・マウスなどの入力手段であって、アーキテクチャに依存しないハードウェア機能記述の入力・編集や本発明の各手段を実現したプログラムの実行命令を対話的に入力する。104は、CRTであって、アーキテクチャに依存しないハードウェア機能記述の表示や本発明の各手段を実現したプログラム実行経過や実行結果を表示する。105はシステムバスであって101、102、103、104の各構成部のI/Fを行う。
【0018】
入力するRTLの機能記述データ中に複数のオペレーション式や条件分岐処理がある場合は、それぞれのオペレーションに関してパースツリーが作成され、各パースツリーのトップノードはメモリ上のリストやハッシュテーブルの形式で格納され、走査して閲覧、参照可能である。ここで言うRTLは例えばVHDL(VHSIC(Very High Speed Integrated Circuit) Hardware Description Language)やVerilogHDL(Verilog Hardware Description Language)の形式で記述されたものでよい。
【0019】
図2に、レジスタトランスファレベルの機能記述データの一例とこれから作成されるパースツリーのイメージ図を示す。
図2(a)がレジスタトランスファレベルの機能記述データの一例、(b)が当該レジスタトランスファレベルの記述から構文解析されて、メモリもしくはハードディスク上に展開されたパースツリーのイメージ図、(c)はパースツリー上の各ノードに構造体形式で格納される情報を示している。
【0020】
前記パースツリーのノードは、変数のオペランドとオペレータを格納する。当該オペランドは、レジスタやネットに該当する。当該オペレータは、加算、減算、乗算、比較などの演算の種類に該当する。図2(b)中のLのノードは、記述データ中の演算式の左辺に関するパースツリーのトップノードであり、Rは右辺に関するものである。
【0021】
図2(c)の構造体中、ファイル名は例えばC言語のchar型のアレイであって、レジスタトランスファレベルの機能記述データであるファイル名を格納する。行番号はint型である。タイプにはオペレータのタイプ、もしくはレジスタ、ネット、ポートなどの識別子を格納する。図12(a)にオペレータのタイプに関する識別子の割り当て例を示す。表中のSubOpは“−”、DivOpは“/”、AddOp、MultOpはそれぞれ、“+”、“*”のオペレーションを示している。図12(b)はレジスタ、ネット、ポートの識別に関する識別子の割り当て例を示す。ノードのタイプがレジスタ、ネット、ポートの場合は、図2(c)の構造体においてビット幅の情報も格納する。
【0022】
RTLの機能記述データ内の処理フロー記述も、パースツリーの形式で格納される。当該処理フロー記述には例えば、Verilog_HDLのcase文やif−else形式の条件分岐記述が該当する。
図3に、処理フロー記述を展開したパースツリーのイメージ図を示す。図中のCはコンディション式、つまり条件式に関するパースツリーの参照ポインタを格納するノードであって、当該条件式は同様にパースツリーを構成する。図中のy、nはそれぞれ条件が真、偽のときに実行されるオペレーションに関するパースツリーの参照ポインタを格納するノードであって、当該実行されるべきオペレーションはパースツリーを構成している。これらのパースツリーは、メモリ上のリストやハッシュテーブルの形式で格納され、走査して閲覧、参照可能である。
【0023】
図4に、請求項1に記載の、本発明に係る設計支援装置の第2の構成図を示す。
401は、構文解析手段であって入力されたRTLの機能記述データを構文解析してパースツリーに展開する。展開されたパースツリーは408のシステムメモリに格納され、409のシステムバスを介して各構成要素から参照可能となっている。
【0024】
402は、レジスタ変数認識手段であって、408内のパースツリーを参照してRTL内のレジスタ変数のうち記憶素子が推量され得る、すなわち論理合成手段によってFFなど記憶素子が割り当てられるべきレジスタ変数を認識する。403は乱数発生手段であって、402で認識したレジスタ変数への乱数の印加を行う。404はクロック生成手段であって、クロックパルスの印加を司る。405はシミュレータであって、403、404の乱数およびクロックパルスの印加によるイベントの変化をシミュレートする。当該シミュレーションによって引き起こされた内部イベントによるRTL中の変数の変化は、408上のパースツリーのノード上に逐次格納されるようになっている。
【0025】
406は、コードカバレッジ解析手段であって、408上のパースツリーに格納された前記シミュレーション結果を参照して入力されたRTLの記述データ中のレジスタ変数や、ネットおよびポートの変数のカバレッジを解析してログ出力おもしくはCRTへ結果表示を行う。406のコードカバレッジ解析手段はRTLの記述データ中の条件分岐記述において、前記シミュレーションによって活性化された分岐先に関してもカバレッジ解析を行い、統計処理を行って、条件分岐処理の分岐先の活性化頻度に偏りが出ているかどうかを解析し、解析の結果をログ出力もしくはCRT出力する。407はコントローラであって、各構成手段の処理手順の取り決めや処理命令の送信などシステム全体の制御を司る。
【0026】
前記405のシミュレーション手段は市販のRTLシミュレータを用いても良い。CADENCE社(http://www.cadence.com/[平成14年12月24日検索])では、VerilogHDL用RTLシミュレータであるVerilog_XL及びNC−Verilogが供給されている。これらのシミュレータはRTLの記述データを構文解析してシステムメモリ上にパースツリーを展開する。また、テストベンチにしたがってシミュレーションを実行する。
【0027】
CADENCE社ではProgramming language interface (PLI) Integratin 機構が設けられており、Verilog procedural interface (VPI)と呼ばれるアクセスルーチンが提供されている。これによれば前記パースツリーへの参照が可能である。また、アクセスルーチンにはテストベンチに代わって、内部変数へ値を印加したシミュレーションの実行指示、シミュレーション時刻を進める、シミュレーションの結果の参照を行う関数も用意されている。
【0028】
図5に、CADENCE社のVerilog_XLもしくはNC−Verilogをシミュレーション手段として用い、Programming language interface (PLI) Integration 機構のVerilog procedural interface (VPI)のアクセスルーチンを用いてレジスタ認識手段、乱数印加手段、カバレッジ解析手段を実現したときの請求項1に記載の、本発明に係る設計支援装置の第3の構成図を示す。
【0029】
513は、PLI機構、501は、PLI機構に含まれる構文解析手段であって、入力されたRTLの記述データからパースツリーへ展開し、508のシステムメモリへ登録する。506はPLI機構に含まれるシミュレータであって、508上のパースツリーの読み出し、書き込みが可能である。
【0030】
510は、パースツリー、512は、510のパースツリーを走査可能にするためのテーブルもしくはリスト、511はテーブルもしくはリストからパースツリーへのポインタ参照である。
514は、VPIのアクセスルーチンによってパースツリーの参照及びシミュレーション制御を行うVPI I/Fである。VPI I/Fを介してパースツリーへの参照及びシミュレーション制御を実施可能とする、レジスタ変数認識手段502、乱数発生手段503、クロック生成手段504、コードカバレッジ解析手段505のそれぞれは、VPI I/Fを介してパースツリーへの参照及びシミュレーション制御を実施可能となっている。
なお、509は入力するRTLの記述データ、515はコードカバレッジ解析結果のログ、もしくはCRTへ出力されるべきメッセージである。
【0031】
図6に、第1、第2、第3の構成図におけるコントローラによる主制御フローを示す。
まず、パースツリーの走査によって記憶素子が推量され得るレジスタ変数の認識を行い(601)、当該レジスタ変数へ乱数印加を行い(602)、乱数印加によるイベントをシミュレーションする(603)。当該シミュレーション結果による内部変数(レジスタやネット、ポート)や条件分岐の活性化状況をシステムメモリへ格納する(604)。続いてクロックを印加(605)し、クロック印加によるイベントをシミュレーションし、シミュレーション時刻を進める(606)。当該シミュレーション結果による内部変数の値をシステムメモリへ格納する(607)。前記、602〜607は複数回実行される。例えばロジックBISTで行われるテストの回数と同等の回数を繰り返す。なお、()内に示した番号は図6に示した各工程に付加された符号を示している。
【0032】
図11に、乱数印加、前記印加によるイベントをシミュレートした結果と、内部変数や条件分岐活性化状況のとり込みと、クロックの立ち上がりパルスの印加と、前記クロックの印加によるイベントをシミュレートした結果による内部変数の状況のとり込みとを実施するタイミングをシミュレーション時刻の経過を横軸にとって示した。図中の▲1▼は乱数印加、▲2▼はそれによるシミュレーション結果のとり込み、▲3▼はクロックの印加、▲4▼はその結果によるシミュレーション結果のとり込みのタイミングである。
【0033】
以下に請求項1に記載されたレジスタ認識手段に関する実施例を示す。
論理合成システムによって、記憶素子を推量させるための記述形式が定められている。当該レジスタ認識手段も、論理合成システムと同様な記憶素子推量の記述形式箇所を前記パースツリーの走査により抽出し、当該記述形式に関わるところの代入式中、左辺のレジスタ変数を認識結果として次工程の乱数印加手段に渡す。VerilogHDLにおける当該記憶素子推量のための記述形式の例を図7に示す。
reg変数宣言した変数に対して同期されるクロックによるalways文のposedge記述によるセンシティビティがあれば、図8に示すフリップフロップが推量される。
【0034】
請求項1に記載された乱数発生手段、クロック発生手段における乱数およびクロックの印加に関しては、例えばVerilogHDLであれば値の強制印加コマンドとして、“force”コマンドがある。これによれば、RTL内の任意のレジスタやネット、ポートに任意の論理値を印加可能である。乱数は、例えばVerilogXL、NC−Verilogのシミュレータであれば、$random()コマンドで得られる。あるいは、例えばC言語によるプログラミングによって実現する場合は、rand関数で得られる。乱数発生手段、クロック発生手段はforce、$randomのコマンドを用いたテストベンチの形式で構成しても良い。
【0035】
第3の構成図による実施例においては、VPIアクセス関数のvpi_put_value( )によって所望のレジスタやネットに論理値を設定可能である。例えばレジスタ“A”に乱数を印加する場合は、VPIアクセス関数のvpi_put_value( )を使ったCプログラミングにおいて、vpi_put_value(レジスタ“A”に相当するパースツリー上のノード、rand()、シミュレーション時刻);と記述出来る。
【0036】
また、クロックポート“CK”にパルスを印加する場合は、
vpi_put_value(ポート“CK”に相当するパースツリー上のノード、1、シミュレーション時刻1);
vpi_put_value(ポート“CK”に相当するパースツリー上のノード、0、シミュレーション時刻2);
と記述出来る。この場合、シミュレーション時刻1で、CKに立ち上がりイベントが発生され、シミュレーション時刻2で、CKに立り下がりイベントが発生される。なお、603、605のシミュレーション実行は、vpi_put_value( )関数の第3の引数に与えるシミュレーション時刻を進める事で実現される。
【0037】
請求項1、2、3、4、5に記載されたコードカバレッジ解析手段は、シミュレーション結果のダンプファイルを解析して実現可能であるが、第3の構成における所望のレジスタやネットの値、及び分岐条件式の条件式の真偽が参照可能である。よって、604、607でのシミュレーション結果による内部変数や条件分岐処理の活性化状況の取り出しはパースツリーを走査してレジスタやネット、条件分岐のノードごとにVPIアクセス関数のvpi_get_value( )によって内部状態、及び分岐条件式の条件式の真偽を参照し、システムメモリへ格納するようにしている。なお、パースツリー内のノードにはRTLソースのファイル名と行番号が格納されているので、例えば条件分岐処理記述で一度も活性化されなかった分岐先はカバレッジが0の結果としてファイル名、行番号と合わせてログ出力もしくはCRTへメッセージ出力を行う。
【0038】
請求項5に記載されたコードカバレッジ解析手段は、例えば、レジスタがX値をラッチしていた場合はX値伝播違反が発生しているとしてログもしくはCRTに警告を出す。
請求項5に記載されたコードカバレッジ解析手段は、例えば、レジスタが常に0(初期値)のみをとる場合は、リセットが掛かりっぱなしの可能性がその要因に考えれるので、その旨をログもしくはCRTに警告を出す。
請求項4に記載されたコードカバレッジ解析手段は、例えば、条件分岐の条件式の変数がトグルしない場合は、条件分岐先の活性化率が低い事の要因であるとしてその旨をログもしくはCRTに警告を出す。
【0039】
請求項4におけるコードカバレッジ解析手段は、RTL中の条件分岐処理記述に関し、活性化される分岐先の活性化頻度に偏りが無いかどうかを解析する。
図9にVerilogHDLによる25回の乱数印加の結果、分岐先の活性化頻度に偏りが発生したRTLの例を示す。901は、活性化された回数を示している。
【0040】
偏りを数値化して表すためには、例えば、平均偏差で示す手段がある。平均偏差は測定値と平均値のずれの程度を表すものであって、「算術平均値との差の絶対値」の和の平均値である。有効ケース数を、n、各ケースの測定値をXi(i=1、2、…、n)、算術平均値をXバーとすると、以下の数1で定義される。
【数1】
Figure 2004220222
【0041】
図9の例では、分岐先が5個、各分岐先が活性化された回数はそれぞれ1、0、0、0、24、仮に偏りなく理想的にまんべんに各分岐先が活性化されたとすると各分岐先は5回ずつ活性化される。よって平均偏差は、(|1−5|+|0−5|+|0−5|+|0−5|+|24−5|)/5=(4+5+5+5+19)/5=7.6である。仮に分岐の活性化回数が25回の乱数印加の結果、4、5、5、5、6だとすると、(|4−5|+|5−5|+|5−5|+|5−5|+|6−5|)/5=(1+0+0+0+1)/5=0.4となる。なお、この平均偏差値は値が小さくなればなるほど、偏りが無く、大きければ偏りがある、と認識できる。
【0042】
上記コードカバレッジの処理は、シミュレーション中の分岐条件式の条件式の真偽の結果を逐一システムメモリに格納し、最終的に前記平均偏差の統計処理計算を行う、例えばC言語によるプログラミングで実現する。
【0043】
請求項5のコードカバレッジ解析手段は、1ビットもしくはビット幅を有するバス形式のレジスタやネット、ポートに関し前記平均偏差を算出し、偏りを解析する。図10に、3ビットのレジスタに128回の乱数を印加して、結果取り得た値のリストを示す。仮に偏りなく、理想的にレジスタ値をまんべんに網羅したとすると、000,001,010,011,100,101,110,111の値をそれぞれ16回ずつとることが可能である。よって、平均偏差は、(|120−16|+|2−16|+|0−16|+|0−16|+|6−16|+|0−16|+|0−16|+|0−16|)/8=(104+14+16+16+10+16+16+16)/8=26である。
【0044】
上記コードカバレッジの処理はシミュレーション中のレジスタやネットなどの内部変数の値を逐一システムメモリに格納し、最終的に前記平均偏差の統計処理計算を行う、例えばC言語によるプログラミングで実現する。
【0045】
請求項6に記載されたソースコードカバレッジ方法に対応する実施例として、図6のフロー図を示した。詳細な説明は前記に記した通りであるため、ここでは割愛する。
【0046】
上述の実施形態において、コンピュータを、請求項1に記載の前記ハードウェア記述データ入力手段、前記レジスタ変数認識手段、前記乱数発生手段、前記コードカバレッジ解析手段として機能させるためのプログラムをアプリケーションソフトとして、CD−ROM等の記録媒体に格納しておいてもよい。このようにすれば、CD−ROM等の、該プログラムを記録するためのコンピュータ読み取り可能な可搬型記録媒体に該プログラム等を格納して売買したり、携帯することができるようになる。
【0047】
【発明の効果】
以上、詳細に説明したように、本発明に係る請求項1、2、3記載の設計支援装置、及び請求項6記載のソースコードカバレッジ方法によれば、ロジックBISTで実施される擬似乱数によるテストのシミュレーションがRTLで実施可能となるので、ロジックBISTにおける諸問題をRTLの段階で確認可能となる。
また、乱数によって内部状態が常に0(初期値)であったり、条件分岐の分岐カバレッジが低い場合は、ロジックBISTのテストで可制御性・可観測性の低下の原因であるため、従来故障シミュレーションを実行するまで判明しなかった可制御性・可観測性及びそれらの低下の要因がRTLの段階で調査、判別可能である。
【0048】
また、同様に条件分岐の分岐カバレッジが低い場合は、ATPG(Auto Test Pattern Generator)におけるスキャンテスト量の増加を引き起こすので、RTLの段階でスキャンテスト量増加の要因を調査、判別可能である。
【0049】
また、請求項4記載の、コードカバレッジ解析手段によれば、特に条件分岐の分岐先の活性化頻度における偏りの度合いを解析するようにしたので可制御性・可観測性の低下の要因を容易に特定可能となる。たとえば、case文のdefault、if−elseのelseの分岐先ばかりが活性化され、その他はほとんど活性化されない場合は、活性化されなかった信号ライン又は演算式の記述は制御不能であり、RTLの改善、修正が必要である。従来によるロジックBISTでは、テストデータが擬似乱数であるために十分な故障検出率が得られないケースが多く、ゲートレベルのネットリスト中の可制御性、可観測性の悪い箇所にテスト回路を挿入する等による故障シミュレーションを実行するまで、ロジックBISTで故障検出率の低下の要因であるRTL記述箇所が判明しなかったが、将来、上記のように請求項4に記載されたコートカバレッジ解析手段によることで、RTLの段階で調査、判別可能である。
【0050】
また、請求項5記載の、コードカバレッジ解析手段によれば、バス形式のレジスタ、ネット、ポートに関して乱数をテストデータにしたときのシミュレーション結果による変数のカバレッジが確認でき、さらに取り得た値の発生頻度が確認可能である。例えば、レジスタ値が常にオール0である場合は、当該レジスタに関わる演算式は、十分な可制御性、可観測性が得られない。従来によるロジックBISTでは、テストデータが擬似乱数であるために十分な故障検出率が得られないケースが多く、故障シミュレーションを実行するまで、ロジックBISTで故障検出率の低下の要因であるRTL記述箇所が判明しなかったが、将来、上記のように請求項5に記載されたコートカバレッジ解析手段によることで、RTLの段階で調査、判別可能である。
例えば、乱数を印可した結果、レジスタがX値をとるようであればX伝播の問題が発生していることを示し、従来ゲートレベルのネットリストにおいてのみ実施されていたX値伝播違反の確認がRTLの段階で実施可能で、回路設計の早期に確認、対策、修正が可能となる。
【図面の簡単な説明】
【図1】本発明に係る設計支援装置の第1の構成図である。
【図2】レジスタトランスファレベルの機能記述データの一例とこれから作成されるパースツリーのイメージ図である。
【図3】処理フロー記述を展開したパースツリーのイメージ図である。
【図4】本発明に係る設計支援装置の第2の構成図である。
【図5】本発明に係る設計支援装置の第3の構成図である。
【図6】第1(図1)、第2(図4)、第3(図5)の構成図におけるコントローラによる主制御フロー図である。
【図7】記憶素子推量のための記述形式の例図である。
【図8】reg変数宣言した変数に対して同期されるクロックによるalways文のposedge記述によるセンシティビティがある場合に、推量されるフリップフロップ図である。
【図9】VerilogHDLによる25回の乱数印加の結果、分岐先の活性化頻度にに偏りが発生したRTLの例図である。
【図10】3ビットのレジスタに128回の乱数を印加して、結果取り得た値のリストである。
【図11】乱数印加、クロック印加によるイベントをシミュレートした結果、内部変数や条件分岐活性化状況のとり込み、クロックの立ち上がりパルスの印加、前記クロックの印加によるイベントをシミュレートした結果による内部変数の状況のとり込み、以上を実施するタイミングをシミュレーション時刻の経過を横軸にとって示した図である。
【図12】オペレータのタイプに関する識別子の割り当て例、レジスタ、ネット、ポートの識別に関する識別子の割り当て例、および識別子の割り当て例の図である。
【符号の説明】
101 メモリもしくはハードディスク
102 CPU
103 キーボード・マウスなどの入力手段
104 CRT
105 システムバス
401 構文解析手段
402 レジスタ変数認識手段
403 乱数発生手段
404 クロック生成手段
405 シミュレータ
406 コードカバレッジ解析手段
407 コントローラ
408 システムメモリ
409 システムバス
501 PLI機構に含まれる構文解析手段
502 レジスタ変数認識手段
503 乱数発生手段
504 クロック生成手段
505 コードカバレッジ解析手段
506 PLI機構に含まれるシミュレータ
507 コントローラ
508 システムメモリ
509 入力するRTLの記述データ
510 パースツリー
511 テーブルもしくはリストからパースツリーへのポインタ参照
512 パースツリーを走査可能にするためのテーブルもしくはリスト
513 PLI機構
514 VPI I/F
515 コードカバレッジ解析結果のログ、もしくはCRTへ出力されるべきメッセージ

Claims (6)

  1. レジスタトランスファレベルのハードウェア記述データを入力する手段と、前記機能記述データ中の変数に関して、論理合成システムによって記憶素子が推量され得るレジスタ変数を認識するレジスタ変数認識手段と、前記レジスタ変数認識手段によって認識されたレジスタ変数へ乱数を印加する乱数発生手段と、この乱数の印加によって引き起こされるイベントをシミュレーションするシミュレータと、前記シミュレーションの結果によるハードウェア記述データのソースコードカバレッジ解析を行うコードカバレッジ解析手段とを有することを特徴とする設計支援装置。
  2. コンピュータを、請求項1に記載の前記ハードウェア記述データ入力手段、前記レジスタ変数認識手段、前記乱数発生手段、前記コードカバレッジ解析手段として機能させるためのプログラム。
  3. 請求項2に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
  4. 請求項1に記載の設計支援装置において、前記コードカバレッジ解析手段は、ハードウェア記述データ内に記述された条件分岐記述に関する分岐処理の活性化率に関して活性化頻度の偏りを解析することを特徴とする設計支援装置。
  5. 請求項1に記載の設計支援装置において、前記コードカバレッジ解析手段は、レジスタ、またはネットの変数に関してシミュレーション結果による変化を統計処理して、取り得た値の発生頻度を解析することを特徴とする設計支援装置。
  6. レジスタトランスファレベルのハードウェア記述データをシミュレーションして、ソースコードカバレッジ解析を行うコードカバレッジ方法において、機能記述データ中の変数に関して、論理合成システムによって記憶素子が推量され得るレジスタ変数を認識し、レジスタ変数認識手段によって認識されたレジスタ変数へ乱数を印加し、この乱数の印加によって引き起こされるイベントをシミュレーションすることを特徴とするソースコードカバレッジ解析を行うソースコードカバレッジ方法。
JP2003005308A 2003-01-14 2003-01-14 設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム Expired - Fee Related JP4183035B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003005308A JP4183035B2 (ja) 2003-01-14 2003-01-14 設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003005308A JP4183035B2 (ja) 2003-01-14 2003-01-14 設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム

Publications (2)

Publication Number Publication Date
JP2004220222A true JP2004220222A (ja) 2004-08-05
JP4183035B2 JP4183035B2 (ja) 2008-11-19

Family

ID=32895990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003005308A Expired - Fee Related JP4183035B2 (ja) 2003-01-14 2003-01-14 設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム

Country Status (1)

Country Link
JP (1) JP4183035B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456248C (zh) * 2005-12-02 2009-01-28 凌阳科技股份有限公司 获得程序代码和函数执行覆盖率及执行效率的装置及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456248C (zh) * 2005-12-02 2009-01-28 凌阳科技股份有限公司 获得程序代码和函数执行覆盖率及执行效率的装置及方法

Also Published As

Publication number Publication date
JP4183035B2 (ja) 2008-11-19

Similar Documents

Publication Publication Date Title
Corno et al. RT-level ITC'99 benchmarks and first ATPG results
JP3872954B2 (ja) 有限状態機械を識別して回路設計を検査するシステムおよび方法
US9064068B1 (en) Debuggable opaque IP
US7490307B2 (en) Automatic generating of timing constraints for the validation/signoff of test structures
JP4806529B2 (ja) 複製されたロジックを使用するデバッグの方法とシステム
Ganai et al. Enhancing simulation with BDDs and ATPG
WO2007066319A1 (en) Conversion of switching signals of a circuit simulation into a transaction model
KR20000029237A (ko) 반도체 집적 회로 평가 시스템
KR20080055913A (ko) 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치
Fallah et al. Functional vector generation for HDL models using linear programming and boolean satisfiability
CN112444731B (zh) 芯片测试方法、装置、处理器芯片及服务器
US6697982B2 (en) Generating netlist test vectors by stripping references to a pseudo input
US5819072A (en) Method of using a four-state simulator for testing integrated circuit designs having variable timing constraints
JP2000207440A (ja) 半導体集積回路の設計検証装置、方法及び記憶媒体
Lin et al. The S-algorithm: A promising solution for systematic functional test generation
US20050114805A1 (en) Device, system and method for VLSI design analysis
US7506279B2 (en) Design supporting apparatus capable of checking functional description of large-scale integrated circuit to detect fault in said circuit
US7103859B2 (en) System and method for improving testability independent of architecture
Tong et al. Defining and providing coverage for assertion-based dynamic verification
JP4183035B2 (ja) 設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム
Chou et al. Finding reset nondeterminism in RTL designs-scalable X-analysis methodology and case study
Karunaratne et al. RTL fault modeling
JP2003330983A (ja) テスト容易化設計システム、テスト容易化設計方法、プログラムおよび記録媒体
Khatri et al. Development and Verification of Serial Fault Simulation for FPGA Designs using the Proposed RASP-FIT Tool
Jiang et al. Effective error diagnosis for RTL designs in HDLs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080804

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

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

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

Free format text: PAYMENT UNTIL: 20110912

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees