JP2014130414A - テストパターンの生成装置、その生成方法及びその生成プログラム - Google Patents

テストパターンの生成装置、その生成方法及びその生成プログラム Download PDF

Info

Publication number
JP2014130414A
JP2014130414A JP2012286636A JP2012286636A JP2014130414A JP 2014130414 A JP2014130414 A JP 2014130414A JP 2012286636 A JP2012286636 A JP 2012286636A JP 2012286636 A JP2012286636 A JP 2012286636A JP 2014130414 A JP2014130414 A JP 2014130414A
Authority
JP
Japan
Prior art keywords
connection
test
circuit
input
constraint
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.)
Withdrawn
Application number
JP2012286636A
Other languages
English (en)
Inventor
Kohei Maruchi
康平 丸地
Masahiro Sakai
政裕 酒井
Hiromasa Shin
博正 進
Susumu Yoshizawa
晋 吉澤
Hirotaka Sakai
宏隆 酒井
Takayuki Nitta
能之 新田
Nobuaki Yoshida
順陽 吉田
Norihiro Umemura
憲弘 梅村
Kanako Hattori
可奈子 服部
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012286636A priority Critical patent/JP2014130414A/ja
Publication of JP2014130414A publication Critical patent/JP2014130414A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Abstract

【課題】各結線が単独で出力に伝播することの確認をすることができるテストパターンの生成技術を提供する。
【解決手段】テストパターンの生成装置10において、論理ゲート、論理ブロック及びこれらを接続する結線により表現される回路表現データに含まれる回路の接続情報を保持する回路接続情報保持部18と、前記回路のロジックテストに用いるテストケースをテストDB13に登録するテスト登録部12と、前記テストケースを前記回路に入力して算出される結線値を結線値履歴15に記録する結線値算出部14と、指定した出力線に影響を与える入力線群を前記接続情報に基づいて導出し、各入力線が単独で前記出力線に伝播するか否かを前記結線値履歴に基づいて算出する結線伝播算出部21と、を備える。
【選択図】 図1

Description

本発明は、論理回路設計のロジックテストに用いるテストパターンの生成技術に関する。
論理回路設計の工程において、ロジックが正しく設計されていること確認するために、テストやレビューが行なわれる。
その際には、回路に入力を与えた際に期待する出力や内部状態の変化を、「内部状態Sにおいて入力Iを与えると内部状態S’に遷移し出力が0になる」といった記述で定義し、シミュレーションや目視により、設計した回路が期待通りの動作を行うか否かを確認する。
この際に使われる「内部状態の変化、入力、出力」の組をテストケースという。そして、ロジックテストに用いた全てのテストケースをまとめて、テストパターンと呼ぶ。
設計が正しいことを詳細に確認するには、高品質のテストパターンを用いることが重要となり、テストパターンの品質を評価する方法が求められる。
このような、テストパターンの品質評価方法として、論理回路の構造に基づいて、テスト実施中に回路内部をどれだけ動作させたかに着目する構造カバレッジが知られている。
このような構造カバレッジを基準としたトグル網羅では、テスト中に結線が0,1の両値に変化(トグル)することを確認し、トグルが確認されない結線が発見された場合にテスト不十分と評価する。
外部から結線のトグルが計測できるときのみこのトグルをカウントし、トグル網羅より厳しいカバレッジ基準を採用したテストパターンの評価方法が開示されている(例えば、特許文献1)。
特開平4−222058号公報
トグル網羅であるテストパターンを用いることにより、テスト中に各結線が0と1両方の値を持つことを保証することができるが、これは各結線の変化を単独に確認しているに止まる。論理回路は、結線の変化が他の結線へ伝播することを繰り返すことで、その振る舞いが決まるが、トグル網羅は、結線値の変化の伝播が正しく行なわれているかまで保証することはできない。
特許文献1の方法では、出力まで変化が伝播した場合のみトグルしたと見なすため、結線値の変化の伝播を確認しているが、出力に影響していない結線に対してもトグルしたと見なすことがある。そのため、個々の結線が単独で出力に伝播するか否かについて確認できるまでには至っていない。
本発明はこのような事情を考慮してなされたもので、各結線が単独で出力に伝播することの確認をすることができるテストパターンの生成技術を提供することを目的とする。
テストパターンの生成装置において、論理ゲート、論理ブロック及びこれらを接続する結線により表現される回路表現データに含まれる回路の接続情報を保持する回路接続情報保持部と、前記回路のロジックテストに用いるテストケースをテストDBに登録するテスト登録部と、前記テストケースを前記回路に入力して算出される結線値を結線値履歴に記録する結線値算出部と、指定した出力線に影響を与える入力線群を前記接続情報に基づいて導出し各入力線が単独で前記出力線に伝播するか否かを前記結線値履歴に基づいて算出する結線伝播算出部と、を備える。
本発明により、各結線が単独で出力に伝播することの確認をすることができるテストパターンの生成技術が提供される。
本発明に係るテストパターン生成装置の第1実施形態を示すブロック図。 第1実施形態におけるテストパターンの生成処理を示すフローチャート。 テストケースの登録処理を示すフローチャート。 テストパターンを示すテーブル。 検証対象とする論理回路の回路図。 結線値履歴を示すテーブル。 回路表現データとして例示されるPOLの記述。 回路表現データとして例示されるVHDLの記述。 論理ブロック制約表を示すテーブル。 回路の結線間制約の一例を示す記述。 回路の接続情報の一例を示すグラフ構造図。 回路の接続情報の一例を示すテーブル。 第1実施形態における結線伝播の算出処理を説明するフローチャート。 第1実施形態における結線伝播制約の生成処理を説明するフローチャート。 単独で出力線に伝播する入力線の説明図。 結線伝播制約を示す記述。 テストパターン生成する制約を示す記述。 第2実施形態における結線伝播の算出処理を説明するフローチャート。 第2実施形態における結線伝播制約の生成処理を説明するフローチャート。 伝播経路算出のための木構造を示す図。 全結線に対する結線伝播制約の記述。 第2実施形態における効果の説明図。 本発明に係るテストパターン生成装置の第3実施形態を示すブロック図。 第3実施形態におけるテストパターンの生成処理を示すフローチャート。 論理ブロック入出力例を示すテーブル。 論理ブロック入出力例の生成処理を説明するフローチャート。 図25の論理ブロック入出力例から作成した論理ブロック制約表の記述。
(第1実施形態)
以下、本発明の実施形態を添付図面に基づいて説明する。
図1は、第1実施形態に係るテストパターン生成装置10のブロック図を示し、図2はテストパターンの生成処理のフローチャートを示している。
テストパターン生成装置10は、テスト登録部12が、既存テストパターン11とテスト生成部25で生成されるテストパターンとをテストDB13に登録することによって、全テストパターンを生成する。
まず、未登録の既存テストパターン11がテスト登録部12に残っているか否かについて検索がなされる(S11)。ここで、既存テストパターン11とは、論理回路を検証するために既に用意されているテストケース群である。
図4のテーブルは、テストパターンの例であり、各行がテストケースを表している。
このテストケースは入力、事前内部状態、出力、事後内部状態から成り立っている。
テストケースT1では、事前の内部状態についてff_stが1、di_stが10の際に、入力線do1に0、入力線doneに0、入力線stopに0を与えると、事後の内部状態についてff_stが1、di_stが10となり、出力線do2が1、出力線errが1となることを意味している。
図4のような既存テストパターンがある場合、未登録の既存テスト(テストケースT1,T2,T3)が残っているため(S11 Yes)、テストケース登録処理を行う(S20)。
図3のフローチャートは、テストケースの登録処理の順序を示している。
まず、テスト登録部12は、新しいテストケースをテストDB13に登録する(S21)。テストDB13は、テストケース群をテストパターン生成装置10に内部保持させるものであり、新しく生成したテストケースを既存テストパターン11に加えたものである。
テストケース登録処理(S20)では、テスト登録部12が既存テストパターン11をそのままテストDB13にコピーすることを行う。
続いて、テスト登録部12はテストDB13に登録したテストケースを結線値算出部14に渡し、この結線値算出部14は結線値履歴15を更新する(S22)。
結線値履歴15には、回路を構成する全ての結線の結線値が、テストケースが入力される度に記録される。
ここで、検証対象としている回路が図5であるとする。
図5において、符号31,32,33は入力を表し、符号34,35は出力を表している。符号36,37は結線を表し、それぞれの結線名はdo1,w1である。
符号38は、結線が枝分かれしているケースを示している。結線は、幾つに枝分かれしていても、それらは同じ値となるため、結線名もw2で統一される。
符号39,40,41は論理ゲートを表し、それぞれANDゲート,ORゲート,NOTゲートを表している。符合42,43は論理ブロックであり、論理ゲートを組み合わせて、それぞれの機能を実現する機能モジュールである。
符号42はリセット優先フリップフロップであり、内部状態(ff_st)を持つ。
符号43はタイマーである。符号44はタイマーの設定値であり、定数10の値が設定されている。
符号43は内部状態di_stを保持しており、結線45の値が1である間はdi_stの値はカウントアップされ、設定値を超えたら、結線46が0から1に変化する。
図4は、論理回路(図5)を対象としたテストパターンであり、入力、内部状態及び出力の値のみが記載されている。
一方、結線値履歴15は、図6に示すように、全ての結線の値を保持するとともに、内部状態を事前状態と事後状態で区別して保持する。
結線値履歴の各履歴は、結線値算出部14により算出される。結線値算出部14は回路表現データ16を元に、全結線の値を算出する(S22)。
図7は、回路表現データ16の一例として示すPOL(Problem Oriented Language)の記述である。
POLとは、ある問題のために特化した言語であり、図7は図5に示す回路の振る舞いを記述したものである。
”.DEF”から”.DEFEND”までが一つの回路を定義している範囲であり、名前として”Sample”が付けられている。
”OR”はORゲートを表し、第1引数のw1が出力線、それ以外の引数(stop,done)が入力線を表している。
”FF”はフリップフロップを表しており、第1引数のw2が出力線、第2引数のff_stが内部状態、第3引数のdo1がセット信号、第4引数のw1がリセット信号を表している。
”AND”はANDゲートを表しており、第1引数のw3が出力線、それ以外の引数(w2,−done)が入力線を表している。
”done”の前に付いている”−”はNOTゲートを表している。
”DI”はタイマーを表しており、第1引数のw4が出力線、第2引数のdi_stが内部状態(カウントアップ値)、第3引数がカウント数の上限であり定数10が与えられている。第4引数のw3は入力線を表している。
”OUT”は出力命令を意味し、第1引数のdo2やerrが回路の出力線、第2引数のw2,w4の値が出力線に繋がる結線を表し、第2引数の結線値が第1引数の出力に移ることを意味する。
POLは各行のコマンドを一つずつ解釈して、動作のシミュレーションが可能である。
そのため、テストケースの入力、内部状態の値を設定し、シミュレーションすることで、各結線がどのような値を取りうるか算出することができる。
図8は、図5の回路を表す回路表現データ16の他の例として示すVHDL(Very high speed integrated circuits Hardware Description Language )の記述である。
VHDLとは、IEEEで標準化されているハードウエア記述言語であり、このシミュレーションツールを用いることにより、各結線がどのような値を取りうるかを算出することができる。
既存テストパターン11の全テストケースをテストDB13に登録し、そのシミュレーション結果を結線値履歴15に登録し終わったら(S11 Yes)、結線間制約生成部17にて、回路内の結線間に成立する制約を生成する(S12)。
このステップS12では、回路表現データ16を読み取り、回路を構成する論理ブロックを抽出する。そして、抽出した論理ブロック毎に関連する結線間で成り立つ制約式を作成し、これら制約式の論理積を取る。
回路表現データ16がPOLの場合、各行を読み出すことにより、論理ブロックの種類と、そのブロックに繋がる出力線、内部状態、出力線の結線名を取得することができる。
また、ここで取得した情報から論理ブロックと結線の接続関係も分かるため、後述する回路接続情報保持部18に保持される接続情報も作成できる。
一方、回路表現データ16がVHDLの場合、図8のコンポーネント宣言、コンフィギュレーション定義及びコンポーネント・インスタンス文を参照することにより、回路内で利用される論理ブロックを取得できる。
また、エンティティ宣言(図8)を参照することにより、入力線と出力線の結線名を取得でき、コンポーネント宣言に記載される定義文を参照することにより内部状態を取得できる。
さらに、これらの接続関係はコンポーネント・インスタンス文(図8)を参照して理解できるため、VHDLによる回路表現データ16からも後述する回路接続情報保持部18に保持される接続情報を作成することができる。
各論理ブロックの入力、出力、内部状態の間で成立する制約は、論理ブロック毎に所定の関係式が適用され、これら関係式は論理ブロック制約表19で管理される。
図9は論理ブロックの制約を示す論理ブロック制約表19の一例である。
図9に示すように、論理ブロックがANDゲートの場合、制約は全入力の論理積が出力と等しくなることを意味した制約となる。
FFは、リセット優先フリップフロップを想定している。
そのため、制約は、リセット信号(入力in−r)が1の時は出力(out)が0となり、それ以外の時は、事前の内部状態(st−pre)とセット信号(入力in−s)の論理和が出力(out)となる。
また、事後の内部状態(st−post)は出力(out)と等しくなることを表している。
DIはタイマーであり、入力線(in)が1なら、内部状態のcntを最大値(max)に達するまでカウントアップする。
最大値に達したところで、カウントアップを停止し、出力(out)を1にする。
入力線(in)が0なら内部状態のcntは0となる。このような性質を記述したものが制約である。
回路を構成する論理ブロックの個々の制約の論理積を取ることにより、回路間の結線間で成立する制約式(結線間制約20(図1))が生成する。
図10は、図5の回路の結線間制約の一例である。
図10において、(= do2 w2)と(= err w4)は、出力と出力に結ばれる結線の値とが等しいことを表している。
そして、CircuitConstraintという名前で、入力、出力、事前の内部状態、事後の内部状態を引数で表した制約式が、図5の回路の結線間制約20として定義されている。
続いて、結線伝播算出部21において、結線値履歴15から伝播未確認の結線を算出する(S13)。
この結線伝播算出部21は、指定した出力や結線に影響を与える結線を導いて、これらに対し単独の入力が伝播するテストケースの有無を調べ、そのようなテストケースが無い結線を算出する。
ここで、入力の伝播先として指定された出力や結線を、デシジョンポイントと呼ぶ。
このデシジョンポイントは、出力や主要な論理ブロックにおける入出力線のうち単数もしくは複数が、設計者及びテスターにより選出される。
処理(S13)において回路接続情報保持部18は、回路表現データ16を解析し、回路内の結線と論理ブロックがどのように接続されているかの情報を抽出して保持する。
その際、選択された結線、論理ブロックに接続される結線、及び論理ブロックを、認識可能な形式で保持する必要がある。
図11はグラフ構造で保持を表した例であり、入力と出力と内部状態をノードと見なし、結線をエッジと見なしている。
各エッジは入力元のノードと出力先のノードを保持し、各ノードは入力となるエッジと出力となるエッジを保持する。
このようなグラフ構造で示すことにより、与えられた結線や論理ブロックに影響を及ぼす結線を求めることが可能になる。
例えば、出力do2に影響を及ぼす結線を探索する場合について説明する。
まず、do2の入力エッジであるw2が、この出力do2に影響を及ぼす結線として探索される。続いて、このw2の入力ノードであるFFの入力エッジであるff_st,do1,w1も探索される。
これらff_st,do1の入力ノードは、入力エッジを持たないため、ここまでの探索は打ち切られるが、w1の入力ノードであるORは入力エッジを持つため、更にstop,doneが影響を及ぼす結線であることが判明する。
また、回路接続情報保持部18は、図12のようなテーブル形式で回路の接続情報を保持することもできる。
この図12に示すテーブル形式によれば、図11のグラフの場合と同様、エッジに対する入力ノードやノードに対する入力エッジが何であるかが分かり、与えられたデシジョンポイントに影響を及ぼす結線を求めることが可能になる。
結線伝播算出部21において、伝播未確認の結線を算出する際は(S13)、このような回路接続情報保持部18を参照して、着目すべき結線を必要に応じ求める。
伝播未確認の結線を算出する処理(S13)を図13に基づいて説明する。
まず、未チェックのデシジョンポイントの有無について調査する(S31)。
この処理(S31)の分岐は、複数のデシジョンポイントが設定されている場合に、デシジョンポイント毎に結線の伝播を算出することを表している。
全てのデシジョンポイントに対し結線の伝播を算出したところで(S31 No)、伝播未確認結線リスト22を更新して処理が終了する(S32)。
この伝播未確認結線リスト22の更新は、図13のフローの処理中に記憶したデシジョンポイントと伝播未確認の結線との組を全てリストとして登録し、それ以外の組の登録を取り消すことにより行う。
伝播未確認結線リスト22は、伝播を確認していない結線とデシジョンポイントとの組をリストにしたものである。
未チェックのデシジョンポイントがある場合は(S31 Yes)、この未チェックのデシジョンポイントに影響を与える入力線の集合を、回路接続情報保持部18より得る(S33)。
図11においてデシジョンポイントをdo2とした場合、得られる入力線の集合は、ff_st,do1,stop,doneとなる。
続いて、異なるIDの結線履歴のペアを、結線値履歴15から得る(S34)。このとき、既に調べたペアを記憶することで、重複した調査を回避することも可能である。
全ての結線値履歴のペアで確認済みがなされたところで(S35 Yes)、次のデシジョンポイントの調査に移る。
未だ確認されてないペアがあれば(S35 No)、そのペアの履歴から、単独でデシジョンポイントに伝播する入力があるか調べる(S36)。
図15は、入力線inが単独でデシジョンポイントdpに伝播する状態を表している。
ここで、入力線inが単独でデシジョンポイントに伝播するということは、入力線の集合の内、着目する入力線in以外の入力線の値は変化が無いが、この着目する入力線inの値のみ変化した場合に、デシジョンポイントの値が変化する状態を指す。
なお図15において、入力線inはブール値をとる場合を例示しているが、これに限定されるものではなく、結線が整数や実数値をとる場合も含まれる。
このような入力線が存在するか否かについての判断は、結線値履歴15のペアの値を比較することで可能である。
例えば、図5に示す回路において、デシジョンポイントをdo2とすると、入力線集合は{ff_st,do1,stop,done}となる。
この場合、図6のテーブルにおける履歴R1と履歴R3を比べると、入力doneの値は履歴R1が0、履歴R3が1と異なっている。
これ対し、他の入力(ff_st,do1,stop)の値は同じであり、デシジョンポイントdo2の値は履歴R1が0、履歴R3が1と異なっていることが確認される。
そのため、入力doneが単独でデシジョンポイントdo2に伝播することが確認される。
着目しているデシジョンポイントの全入力線において、デシジョンポイントに単独で伝播する入力線を確認した場合は(S38 Yes)、次のデシジョンポイントの調査に移る。
そうでない場合(S38 No)は、S34に戻り、まだ調べていない結線履歴ペアに対し調査を行う。
全ての結線履歴ペアの調査が終了した段階で(S35 Yes)、単独での伝播が未確認の結線が確認される。
この場合、デシジョンポイントと未確認の結線の組の情報は、一時的に記憶され(S37)、伝播未確認結線リスト22を更新する処理(S32)に利用される。
図2に戻って説明を続ける。
伝播未確認の結線が無い場合(S14 No)、全ての結線に対し伝播を確認するテストパターンがテストDB13に登録されたこととなり、テストパターンの生成を終了する(S15)。
伝播未確認の結線が有る場合(S14 Yes)、結線伝播制約生成部23により、未確認の結線を確認するための制約を生成する(S16)。
この制約を生成する処理(S16)を、図14に基づいて説明を行う。
まず、伝播未確認結線リスト22から、デシジョンポイントと結線の組を1組選択する(S41)。
この選択方法は、特に限定されないが、同じ組が重複選択されないようにする。
全ての組が既に選択済みであった場合は(S42 Yes)、後述の処理(S44)で生成した制約の論理和を作成する(S45)。
この論理和で作られた制約が、結線伝播制約24となる。
選択済みでないデシジョンポイントと結線の組があった場合は(S42 No)、デシジョンポイントに影響を及ぼす入力線の集合を得る(S43)。
この処理(S43)は、工程(S33:図13)と同様に回路接続情報保持部18から算出することも可能であるし、工程(S33)で算出した結果を記録し、参照することもできる。
続いて、工程(S41)で選択した入力線の伝播を確認するための制約を生成する(S44)。
この工程(S44)では、工程(S41)で選択した結線とデシジョンポイントの値が異なり、工程(S43)で得られた入力線の集合に含まれる結線の値が変わらないことを制約式として表現する。
図16は、図5の回路において、デシジョンポイントをdo2、入力線をstopとした場合の結線伝播制約の記述例である。
この図16の記述のうち、二箇所のCircuit Constraintにおいて、2つのテストケースが回路の制約を満たすことを表現している。
(!=stop-1 stop-2), (!=do2-1 do2-2)において、S41で選択した結線とデシジョンポイントの値が異なることを表現している。
(=do1-1 do1-2), (=done-1 done-2), (=di_st-pre-1 di_st-pre-2), (=ff_st-pre-1 ff_st-pre-2)において、他の入力線の値が等しいことを表現している。
選択した入力線の伝播を確認する制約を生成したら(S44)、他の未確認の入力線の選択するフロー(S41)に戻り、伝播未確認結線リスト22に登録された他のデシジョンポイントと入力線の組に対しても同様の処理を行う。
このようにして作成した全ての制約の論理和が作成される(S45;図14)。
図2に戻って説明を続ける。
結線伝播制約24を生成したら(S16)、テスト生成部25によりテストケースの生成を行なう(S17)。
テストケースの生成は、結線伝播制約24と結線間制約20を、制約ソルバ26で解くことにより行う。
図16の記述例に示すように、結線伝播制約24は結線間制約20の情報を含むため、テストケースを生成するに当り、結線伝播制約24の参照先としての結線間制約20が必要となる。
制約ソルバ26としては、例えば、OpenSMTやYICESといったSMTソルバ等の既存のソルバを使用することができる。
以上において、内部状態を入力と見なした組み合わせ回路のテストケースを生成するという想定の下で説明を行った。
ところで、順序回路のテストケースの生成を、内部状態の事前状態の値を限定した制約を論理積で追記することにより実現することができる。
図17は、内部状態ff_stとdi_stが、それぞれ1と0である状態からのテストケースを生成する制約(破線で囲った部分)を図16の記述に追記した例である。
このような制約を追記することで、順序回路としてのテストパターンの生成も実現可能となる。
図2に戻って説明を続ける。
テスト生成部25(図1)による新しいテストケース生成に失敗した場合(S18 No)、テストケースの生成を止め、テストDB13に登録されたテストパターンを出力する(S15)。
テスト生成部25により新しくテストケースを得られれば(S18 Yes)、テストDB13に登録し、このテストケースを行なった場合の結線値の値を結線値履歴15に登録する(S20)。
この際、新たに登録するテストケースが既にテストDB13に登録されていた場合、テストケースの登録や結線値履歴15への登録を省略することで、テストケース数の数を削減することもできる。
この後、工程(S13)まで戻り、伝播未確認の結線がなくなる(S14 No)、又は制約を満たすテストパターンの生成ができなくなるまで(S18 No)、S13、S14、S16、S17、S18、S20の処理を繰り返す。
(S14 No)または(S18 No)の処理が発生したら、テスト生成を終了し、テストDB13に登録されたテストパターンを新規テストパターン27として出力する(S15)。
また、伝播未確認結線リスト22に登録されたままの結線とデシジョンポイントがあれば、それらの組を未確認結線リスト28として出力する。
以上説明した実施形態によれば、指定した出力や結線(デシジョンポイント)に影響を与える入力群のうち、単独で伝播する入力を与えるテストパターン27が得られる。
これにより、デシジョンポイントに対し各入力線が単独で寄与することを確認できるテストが実施可能となる。
また、未確認結線リスト28に結線とデシジョンポイントの組が登録されている場合は、この登録されたデシジョンポイントに対し単独で伝播する入力が確認されないことが判明する。
この確認が出来ない理由を分析することにより、設計や仕様に関する詳細な知見を得ることができる。
(第2実施形態)
第2実施形態に係るテストパターン生成装置の構成は、第1実施形態の場合と同じ図1のブロック図で表されるので、重複説明を省略する。
第2実施形態に係るテストパターン生成装置は、入力線の伝播のみ確認した第1実施形態に対し、結線伝播算出部21と結線伝播制約生成部23の順序を変更することにより全ての結線に対して伝播を確認できるようにしたものである。
具体的に、第2実施形態は、図2の処理(S13)の処理順序を図18(第1実施形態の図13に対応)の処理順序に変更し、図2のS16の処理順序を図19(第1実施形態の図14に対応)の処理順序に変更したものである。
図18の処理順序について説明する。
まず、未チェックのデシジョンポイントがあるか否かについて検索する(S51)。
全てのデシジョンポイントに対し結線の伝播を算出したら(S51 No)、伝播未確認結線リスト22の更新をして処理終了となる(S52)。
伝播未確認結線リスト22の更新は、後述する処理(S60)で記憶したデシジョンポイントと結線の組全てに対し、伝播未確認結線リスト22に未登録である組を新たに登録することにより行う。
未チェックのデシジョンポイントがある場合は(S51 Yes)、未チェックのデシジョンポイントを選択し(S53)、選択したデシジョンポイントに影響を及ぼす全ての結線が単独でデシジョンポイントに伝播するか否かについて調査する(S54−S62)。
まず、異なるIDの結線履歴のペアを、結線値履歴15から得る(S54)。
この際、既に調べたペアを記憶することで、重複調査を回避することも可能である。
全ての結線値履歴のペアの調査が済んだところで(S55 Yes)、次のデシジョンポイントの調査に移る。
未だ確認していないペアが存在している場合(S55 No)、選択したデシジョンポイントを着目ノードとし(S56)、この着目ノードへの入力となる結線集合を得る(S57)。
例えば、図5の回路で、デシジョンポイントをdo2とすると、着目ノードは出力do2となり、その入力となる結線集合はw2となる。着目ノードやその入力となる結線集合は、回路接続情報保持部18により求めることができる。
この回路接続情報保持部18がグラフ構造であるとして、図18の処理順序ではノードという言葉を使っているが、図12のように表で管理しても構わない。
表で管理する場合は、ノードではなくブロックという表現の方が適している。
続いて、選択した結線履歴ペアの結線集合の値を比較する(S58)。
工程(S54)において、図6における履歴R1と履歴R2を選択していた場合、結線集合がw2のみであれば、結線履歴R1,R2ともにw2は1であり結線集合のうち異なる結線が0本であるため、異なる結線履歴ペアに関する調査が行われる(S59 No)。
図6において履歴R1と履歴R3を選択していた場合は、結線履歴R1,R3でw2の値が異なるため、結線集合のうち異なる結線が1本となり(S59 Yes)、結線w2がデシジョンポイントに単独で伝播していることが確認される。
そのため、結線w2とデシジョンポイントdo2の組を記憶する(S60)。この工程(S60)で記憶した組は上述した通り、工程(S52)で更新される。
単独でデシジョンポイントに伝播する結線がある場合は(S59 Yes)、更に前の結線も単独でデシジョンポイントに伝播する可能性があるため、着目ノードを前のノードに更新する(S61)。
この場合、着目ノードがdo2であれば、FFに更新される。FFが前のノードであることは、回路接続情報保持部18により把握される(図11、図12)。
更新した着目ノードが入力や内部状態であった場合、これ以上に前に結線は存在しないので、異なる結線履歴のペアに対して調査をすすめる(S62 Yes)。
その場合以外では(S62 No)、S57に戻り、更に単独で伝播する結線が存在しないか探索する。
着目ノードがFFに変化した場合、結線集合はff_st,do1,w1となる(S57)。図6における履歴R1と履歴R3は、ff_stが共に1で、do1も共に0と同じ値を示すが、w1の値のみ異なり、結線w1も単独でデシジョンポイントに伝播することが確認される。
図19の処理順序について説明する。
図19は、伝播未確認結線リスト22から、デシジョンポイントとこのデシジョンポイントに伝播が未確認の結線との組を一つ選択する際の結線伝播制約24の算出方法を示している。
伝播未確認結線リスト22に複数の組が登録されていた場合は、図19で得られた制約式を論理和で結んだ制約式が、結線伝播制約24となる。
まず、デシジョンポイントから未確認結線に辿る経路を算出する(S71)。
この際、図20のような木構造を作ると経路の算出が容易となる。
図20は、デシジョンポイントとなるノードを頂点として、入力となるエッジやノードを結び作成する。その際、同じエッジやノードを別のノードと見なすため、各葉から頂点までの経路が一通りしかない木構造が作成される。
図20において、デシジョンポイントをerr、未確認結線をdoneとした場合、次の二つの経路の存在が認識される。
・経路1
doneエッジ→ANDノード→w3エッジ→DIノード→w4エッジ→errノード
・経路2
doneエッジ→ORノード→w1エッジ→FFノード→w2エッジ→ANDノード
→w3エッジ→DIノード→w4エッジ→errノード
次に、各経路に対し制約式を生成する(S72)。
ここで、未確認結線が独立で伝播をするための制約を作成するために、経路上の結線の値は異なり、経路上のノードの入力となる結線で経路から外れた結線の値は等しくなるテストケースのペアを求める。
そのため、経路1の例であれば、done、w3、w4エッジの値が異なり、di_st、w2の値が等しくなることを結線伝播制約24として表現する。
経路が複数ある場合は、いずれの経路を伝播することも許容されるので、各経路で生成した制約式の論理和を取る(S73)。
デシジョンポイントがerr、未確認結線がdoneの場合の結線伝播制約24は、図21のようになる。
第1実施形態では結線伝播算出部21が入力線のみに着目していた(図13参照)。
これに対し第2実施形態では、参照する図22のケースにおいて、各入力線がデシジョンポイントYに単独で伝播していることの確認ができる。
つまり、図22において、T1とT2より入力線A、T1とT3より入力線B、T3とT4より入力線Cが、結線iは常に0に固定され伝播に寄与していないことが分る。
回路図における各結線は、それぞれにおいて設計上の意義を有している。
このために、伝播に寄与しない結線があることは、その結線を使う場合のテストが不十分であると解釈できる。
そこで、第2実施形態では、入力線に限定せずに、デシジョンポイントに影響を及ぼす全ての結線について単独での伝播が可能であるか否かの算出をすることで、入力線に限定した場合(第1実施形態)よりも、品質の高いテストを生成することが可能となる。
(第3実施形態)
図23に第3実施形態に係るテストパターン生成装置10の構成を示す。
図23の構成は、図1の構成に、論理ブロック入出力例生成部51、論理ブロック入出力例52及び論理ブロック制約生成部53を追加したものである。
論理ブロック入出力例52とは、論理ブロックの入力値と出力値と内部状態の事前・事後の値の組の集合である。ここで、内部状態が事前値のときに入力値を論理ブロックに与えると、内部状態が事後値に変化し、出力値が出力される関係にある。
図25は、論理ブロック入出力例を示すテーブルで、論理ブロックFFとDIの入出力例を示している。
図25のFFの入出力例を示すテーブルの三行目は、論理ブロックFFの内部状態stが0の時に、入力in−s,in−rにそれぞれ0,0を与えた場合、内部状態stは0となり、出力outの値が0となることを示している。
同様に、図25のDIの入出力例を示すテーブルの五行目は、論理ブロックDIの内部状態cntが4の時に、入力in,maxにそれぞれ1,5を与えたら、内部状態cntは5となり、出力outの値が0となることを示している。
論理ブロック入出力例生成部51は、論理ブロック入出力例52(図25)の行の追加を行い、論理ブロック制約生成部53は、論理ブロック入出力例52を参照して論理ブロック制約表19を生成する。
図24は、第3実施形態におけるテストパターンの生成処理を示している。
まず、論理ブロックを実装する論理ブロック入出力例生成部51が、その実行環境を用いて論理ブロック入出力例52を生成し追記する(S81)。
図26のフローチャートに基づいて、この論理ブロック入出力例生成部51における処理(S81)を説明する。
まず、いずれの論理ブロックの入出力例を生成するかを選択する(S91)。
この順序は、オペレータの判断により指定してもよいし、論理ブロック制約表19を参照してそのなかから制約の記述の無い論理ブロックを選択してもよい。いずれの方法による場合でも、複数の論理ブロックを選択して構わない。
次に、選択した論理ブロックを実際に動作させて、入出力例を得る(S92)。
すなわち、論理ブロックが単独で動作する環境で、入力や事前状態を乱数で与え、実際に論理ブロックを動作させ出力と事後状態を得る。
これにより、入力と出力と事前状態と事後状態の値の組を得ることができ、入出力例を得ることができる。
処理(S91)で、複数の論理ブロックを選択していた場合は、それぞれの論理ブロックに対して同様の作業を行い、入出力例を得る。
続いて、得られた入出力例を論理ブロック入出力例52に追記する(S93)。ただし、既に同じ値の組が登録されている場合は、追記する必要はない。
最後に、入出力例の生成を続けるか否かについての決定を行う(S94)。
論理ブロック入出力例52に追記する数や、処理(S92)〜(S94)を繰り返す回数を指定し、入出力例の生成を続けるか否かについて決定を行う。
生成を続ける場合(S94 Yes)は、処理(S92)〜(S94)を繰り返し、生成を続けない場合(S94 No)は、処理を終了する。
この一連の処理(S91−S94)で表される追記処理(S81)が終了したところで、論理ブロック制約生成部53により、論理ブロック制約表19を生成する(S82)。
ここで生成する論理ブロックの制約は、入出力例の各行の内のいずれかを満たすことを意味する制約である。この制約は、各入出力例の行ごとの制約を作り、これら制約の論理和を取ることで生成することができる。
各行の制約は、結線とその値を等号で結んだ制約を全ての結線に対して論理積をとることで生成できる。
図27は、論理ブロック制約生成部53が図25の論理ブロック入出力例52を用いて作成した論理ブロック制約表19である。
図27の論理ブロック制約表のうち論理ブロックFFとDIは、図25の入出力例から作成された論理ブロック制約を示しており、それ以外(AND,OR,NOT)は、図9と同じ制約が記述されている。
図24の処理(S82)において、論理ブロック制約表の生成が終わったら、図2と同様の順序でテスト生成処理(S83)を行う。
図24のテスト生成処理(S83)が終了したところで、テスト生成を続けるか否かについて判断する(S84)。
テスト生成を続ける場合(S84 Yes)は、処理(S81)〜(S83)を繰り返し、テスト生成を続けない場合(S84 No)は、処理を終了する。
処理(S84)において、テスト生成を続けるか否かは、次の値から判断する。
・S81からS83を繰り返した回数(繰り返し回数)
・未確認結線リスト28の結線数(未確認数)
・未確認結線リスト28と確認した結線数の割合(未確認割合)
例えば、次のような段取りでテスト生成を続けるか否かの判断を行う。
・未確認数が0になるまで、繰り返し回数最大10回続ける
・未確認割合が5%以下になるまで、繰り返し回数最大20回続ける
・未確認数が減少している限り繰り返す
以上述べた第3実施形態によれば、論理ブロック制約生成部53と論理ブロック入出力例生成部51を用い、論理ブロック制約表19を生成することで、人手により論理ブロック制約を作る必要が無くなる。
これにより、制約の記述が困難な論理ブロックがある場合もテスト生成が可能となる。
また、論理ブロック制約の代わりに入出力例を用いることにより、実数の掛け算のような制約ソルバとの相性が悪い制約記述を避けることが可能となる。
このように論理ブロック制約の記述が、制約ソルバとの相性が悪く、制約の解を得るのに時間がかかったり解を得ることができなかったりするような場合においても、テスト生成が可能になる。
以上述べた少なくともひとつの実施形態のテストパターンの生成装置によれば、指定した出力や結線に対し影響を与える入力のテストパターンを得て、これら出力や結線に単独の入力が伝播することを確認するロジックテストを実施することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組み合わせを行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
また、テストパターンの生成装置の構成要素は、コンピュータのプロセッサで実現することも可能であり、テストパターンの生成プログラムにより動作させることが可能である。
10…テストパターン生成装置、11…既存テストパターン、12…テスト登録部、13…テストDB、14…結線値算出部、15…結線値履歴、16…回路表現データ、17…結線間制約生成部、18…回路接続情報保持部、19…論理ブロック制約表、20…結線間制約、21…結線伝播算出部、22…伝播未確認結線リスト、23…結線伝播制約生成部、24…結線伝播制約、25…テスト生成部、26…制約ソルバ、27…新規テストパターン、28…未確認結線リスト、51…論理ブロック入出力例生成部、52…論理ブロック入出力例、53…論理ブロック制約生成部。

Claims (7)

  1. 論理ゲート、論理ブロック及びこれらを接続する結線により表現される回路表現データに含まれる回路の接続情報を保持する回路接続情報保持部と、
    前記回路のロジックテストに用いるテストケースをテストDBに登録するテスト登録部と、
    前記テストケースを前記回路に入力して算出される結線値を結線値履歴に記録する結線値算出部と、
    指定した出力線に影響を与える入力線群を前記接続情報に基づいて導出し、各入力線が単独で前記出力線に伝播するか否かを前記結線値履歴に基づいて算出する結線伝播算出部と、を備えることを特徴とするテストパターンの生成装置。
  2. 請求項1に記載のテストパターンの生成装置において、
    前記単独の入力線による伝播が確認されない前記入力線群と前記出力線の組を記録する伝播未確認結線リストと、
    前記記録された入力線群と出力線の組において前記単独の入力線による伝播が実現される結線伝播制約を生成する結線伝播制約生成部と、
    前記回路表現データで表現される各結線間に成立する結線間制約を生成する結線間制約生成部と、
    結線伝播制約と結線間制約に基づいて生成した制約を制約ソルバで解いてテストケースを生成するテスト生成部と、を備えることを特徴とするテストパターンの生成装置。
  3. 請求項2に記載のテストパターンの生成装置において、
    前記伝播未確認結線リストは、記録されている入力線群と出力線の組を出力することを特徴とするテストパターンの生成装置。
  4. 請求項1から請求項3のいずれか1項に記載のテストパターンの生成装置において、
    前記入力線及び前記出力線は、前記回路を構成する前記結線の全てを対象にすることができることを特徴とするテストパターンの生成装置。
  5. 請求項2から請求項4のいずれか1項に記載のテストパターンの生成装置において、
    前記論理ブロックの入力値、出力値及び内部状態の変化前の値とその変化後の値との組からなる論理ブロック入出力例を生成する論理ブロック入出力例生成部と、
    前記テストケースの生成に関与する論理ブロック制約表を前記論理ブロック入出力例に基づいて生成する論理ブロック制約生成部と、備えることを特徴とするテストパターンの生成装置。
  6. 論理ゲート、論理ブロック及びこれらを接続する結線により表現される回路表現データに含まれる回路の接続情報を保持するステップと、
    前記回路のロジックテストに用いるテストケースをテストDBに登録するステップと、
    前記テストケースを前記回路に入力して算出される結線値を結線値履歴に記録するステップと、
    指定した出力線に影響を与える入力線群を前記接続情報に基づいて導出し、各入力線が単独で前記出力線に伝播するか否かを前記結線値履歴に基づいて算出するステップと、を含むことを特徴とするテストパターンの生成方法。
  7. コンピュータに、
    論理ゲート、論理ブロック及びこれらを接続する結線により表現される回路表現データに含まれる回路の接続情報を保持させるステップ、
    前記回路のロジックテストに用いるテストケースをテストDBに登録させるステップ、
    前記テストケースを前記回路に入力して算出される結線値を結線値履歴に記録させるステップ、
    指定した出力線に影響を与える入力線群を前記接続情報に基づいて導出させ、各入力線が単独で前記出力線に伝播するか否かを前記結線値履歴に基づいて算出させるステップ、を実行させることを特徴とするテストパターンの生成プログラム。
JP2012286636A 2012-12-28 2012-12-28 テストパターンの生成装置、その生成方法及びその生成プログラム Withdrawn JP2014130414A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012286636A JP2014130414A (ja) 2012-12-28 2012-12-28 テストパターンの生成装置、その生成方法及びその生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012286636A JP2014130414A (ja) 2012-12-28 2012-12-28 テストパターンの生成装置、その生成方法及びその生成プログラム

Publications (1)

Publication Number Publication Date
JP2014130414A true JP2014130414A (ja) 2014-07-10

Family

ID=51408770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012286636A Withdrawn JP2014130414A (ja) 2012-12-28 2012-12-28 テストパターンの生成装置、その生成方法及びその生成プログラム

Country Status (1)

Country Link
JP (1) JP2014130414A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968071A (zh) * 2018-09-30 2020-04-07 株洲中车时代电气股份有限公司 铁路车辆电气屏柜功能测试用例的生成方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307680A (ja) * 1988-06-07 1989-12-12 Toshiba Corp テストパタン自動生成方式
JPH04222058A (ja) * 1990-12-21 1992-08-12 Kawasaki Steel Corp 論理回路のテストパターンの検査方法
JPH07319929A (ja) * 1994-05-25 1995-12-08 Toshiba Micro Comput Eng Corp 集積回路論理検証装置
JP2011257845A (ja) * 2010-06-07 2011-12-22 Fujitsu Ltd ディレイライブラリ生成装置,ディレイライブラリ生成プログラムおよびディレイライブラリ生成方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307680A (ja) * 1988-06-07 1989-12-12 Toshiba Corp テストパタン自動生成方式
JPH04222058A (ja) * 1990-12-21 1992-08-12 Kawasaki Steel Corp 論理回路のテストパターンの検査方法
JPH07319929A (ja) * 1994-05-25 1995-12-08 Toshiba Micro Comput Eng Corp 集積回路論理検証装置
JP2011257845A (ja) * 2010-06-07 2011-12-22 Fujitsu Ltd ディレイライブラリ生成装置,ディレイライブラリ生成プログラムおよびディレイライブラリ生成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968071A (zh) * 2018-09-30 2020-04-07 株洲中车时代电气股份有限公司 铁路车辆电气屏柜功能测试用例的生成方法及系统

Similar Documents

Publication Publication Date Title
US7188061B2 (en) Simulation monitors based on temporal formulas
JP5263904B2 (ja) スキャン回路テスト中のic構造シミュレーション速度向上
US20150121323A1 (en) Determining a quality parameter for a verification environment
US10657207B1 (en) Inter-cell bridge defect diagnosis
US10606977B2 (en) Graphical view and debug for coverage-point negative hint
US7926020B1 (en) Methods for automatically generating assertions
US20120227021A1 (en) Method for selecting a test case and expanding coverage in a semiconductor design verification environment
US20120198399A1 (en) System, method and computer program for determining fixed value, fixed time, and stimulus hardware diagnosis
KR20180112725A (ko) 장애 지점을 검출하기 위한 장치 및 방법
US10977400B2 (en) Deterministic test pattern generation for designs with timing exceptions
US9685959B2 (en) Method for speeding up boolean satisfiability
US9483595B2 (en) Method for scalable liveness verification via abstraction refinement
Chen et al. A two-variable model for SAT-based ATPG
Rashid et al. Exploring the platform for expressing SystemVerilog assertions in model based system engineering
JP2014130414A (ja) テストパターンの生成装置、その生成方法及びその生成プログラム
US9104829B2 (en) Method of validating timing issues in gate-level simulation
CN114611304B (zh) 一种用于信号完整性仿真的激励信号生成方法及装置
TWI488063B (zh) 最佳化並驗證第一電路的設備,方法及電腦可讀取儲存媒體
US9792392B2 (en) Method for determining the sizing of the transistors of an analog circuit
Khatri et al. RASP-FIT: A Fast and Automatic Fault Injection Tool for Code-Modification of FPGA Designs
US10769332B2 (en) Automatic simulation failures analysis flow for functional verification
Wu et al. Mantra: Mutation Testing of Hardware Design Code Based on Real Bugs
Poulos et al. On simulation-based metrics that characterize the behavior of RTL errors.
Mohan et al. Test and diagnosis pattern generation for distinguishing stuck-at faults and bridging faults
CN115455903B (zh) 一种验证操作符的系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160712

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20160826