(57)【特許請求の範囲】
【請求項１】
ハードウェア設計記述により表されたシステムの設計データを格納する格納部と、前記格納部から前記設計データを取り込み、前記設計データに含まれるテストが困難な箇所を、前記設計データを解析することによって、探索する探索部と、テストモード時におけるレジスタの値の初期化または外部入力ポートの付加を含む、テスト容易化変換の規則を格納したテスト容易化変換規則格納部と、前記探索部によって特定されたテスト困難な箇所のテストを、前記テスト容易化変換の規則に基づいて、容易化するテスト容易化部と、前記テストの容易化に伴って前記設計データの変換を行う変換部と、を有し、変換前の論理システムのハードウエア設計記述と、前記変換前のハードウエア設計記述を検証する検証用テスト系列と、ハードウエア設計記述の変換情報から、変換後のハードウエア設計記述を検証する検証用テスト系列を生成することを特徴とするテスト容易化設計装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はハードウェア設計言語で設計されたシステムのテスト系列生成装置及びテスト容易化設計装置に関する。
【０００２】
【従来の技術】
従来論理システムのハードウェア設計において、半導体技術の進歩に伴う設計工数の増大という問題の一つの解決方法として、論理合成が盛んに行われるようになってきている。論理合成を用いることにより、ＲＴＬ記述（レジスタ転送レベルによるハードウェア設計記述）からこれに対応するゲートレベルの論理回路が自動的に合成されるようになった。
【０００３】
このような論理合成を用いた設計では、ＲＴＬ記述に誤りがあると、誤った論理が合成されるためＲＴＬでの検証が重要である。ＲＴＬ記述の検証は設計者が多くのＲＴＬ記述に対する検証用テスト系列を人手で作成して機能シミュレータにより検証をおこなっていた。論理合成後のゲートレベルでのシミュレーションの結果が、回路の動作、速度等の要求仕様を満たしていない場合や、使用するハードウェア資源を変更したり、設計変更を行った場合等、通常の設計ではＲＴＬ記述の修正が頻繁に必要となる。ＲＴＬ記述の変更を行った場合、修正後のＲＴＬ記述の検証が必要になるが、以前に作成したテスト系列は、値を観測する時刻の変更や実行動作そのものが変更されることがあるので、そのまま使うことはできず、はじめからテスト系列を人手で作っていた。
【０００４】
これでは合成した論理回路に修正の必要があり、ＲＴＬ記述の修正をおこなう度に何千、何万とある検証用テスト系列を人手ではじめから作成する必要があり、また数多くの検証用テスト系列の作成は人手で行うため、誤ったテスト系列を作成してしまう可能性も高く、これらの原因による設計時間の増大が問題となっていた。
【０００５】
従来、大規模な論理システムの設計では、ハードウェア設計言語でシステムの機能や動作を記述し、その後論理合成装置を用いて論理回路を生成する方式が用いられていたが、論理合成装置で所望のテスト回路を生成するために、設計者自らが機能動作設計の段階でテスト用のハードウェアの機能動作設計をする必要があった。そのためシステムの規模の増大に伴い、テスト回路の機能動作設計に大変な時間がかかってきている。
【０００６】
一方、ハードウェア設計言語で記述された回路を論理合成すると、レジスタが生成されることがあり、この生成されるレジスタを予測しながらテストを考慮した記述をするのは大変困難であった。そして設計者は、シミュレーションしながらテストの困難な内部信号を探し出し、それを初期化するためにハードウェア設計記述を書き直すということも行われていた。これらの作業を人手で行われていたのでテスト困難な箇所を見落とすこともあり、さらに記述の変更でバグの混入するおそれもあった。
【０００７】
【発明が解決しようとする課題】
従って、ハードウェア設計言語を用いたテスト容易化回路の設計にかかる時間が増大し、又設計そのものも非常に難しくなり、ごく普通に生じる技術的要求に応えることも困難となってきている。
【０００８】
従って、テストそのものを容易化する手法が先ず求められる。
【０００９】
そこで本発明による第１の様相によれば、ハードウェア設計言語を用いたテスト容易化回路の設計の長期化と、テスト容易化設計の困難性と、テスト困難な箇所の見落としと、記述の変更によるバグの混入を解決するために、機能動作設計に於けるテスト容易化設計を自動化することを目的とする。
【００１０】
又、従来のようにＲＴＬの記述に修正を加えた場合、修正をする度に検証用テスト系列を新たに人手で作成するのでは、誤った検証用テスト系列を作成してしまう可能性が高く、修正後のテスト系列の信頼性が低いという問題点があり、従来の検証用のテスト系列の修正方法では大規模なデジタルシステムの機能設計を行う場合、修正時間が大幅にかかり設計期間の増大をもたらしていた。
【００１１】
そこで本発明の第２の様相による目的は、上述の点に鑑み、ＲＴＬ記述の修正にともなう検証用テスト系列の作成時間を減らし、さらに人手修正による誤りをなくし、機能設計に要する時間を短縮する機能レベルの検証用テスト系列生成装置を提供することにある。
【００１２】
【課題を解決するための手段】
本発明の第１の様相によれば、テスト容易化設計装置は、ハードウェア設計記述により表されたシステムの設計データを格納する格納部と、前記格納部から前記設計データを取り込み、前記設計データに含まれるテストが困難な箇所を、前記設計データを解析することによって、探索する探索部と、テストモード時におけるレジスタの値の初期化または外部入力ポートの付加を含む、テスト容易化変換の規則を格納したテスト容易化変換規則格納部と、前記探索部によって特定されたテスト困難な箇所のテストを、前記テスト容易化変換の規則に基づいて、容易化するテスト容易化部と、前記テストの容易化に伴って前記設計データの変換を行う変換部から構成されている。好ましくは、上記部分が生成した情報を表示または選択を行う表示選択部を備え、上記表示選択部分は、テストが困難な箇所をハードウェア設計記述上で提示する提示部と、テスト容易化変換後のハードウェアの設計記述の候補を提示する提示部と、該候補の記述の１つを選択する選択部とから構成される。
【００１３】
本発明の第２の様相によれば、テスト系列生成装置は、ＲＴＬ記述を格納するＲＴＬ記述格納部と、修正前のＲＴＬ記述のＲＴＬ検証用テスト系列を格納する修正前ＲＴＬ検証用テスト系列格納部と、前記ＲＴＬ記述の修正情報を格納する修正情報格納部と、修正後のＲＴＬ記述の検証用テスト系列を生成する検証用テスト系列生成部と、該生成部で生成された検証用テスト系列を格納する修正後ＲＴＬ検証用テスト系列格納部から構成される。
【００１４】
本発明の第１の様相によれば、テスト系列生成装置は、論理システムのビヘイビアレベルの仕様記述と、前記仕様記述に対応したレジスタ転送レベルの記述とから、前記仕様記述と前記レジスタ転送レベルの記述との対応をとる対応作成部と、前記仕様記述を検証するためのテスト系列データを基に、レジスタ転送レベルのテスト系列データを生成するテスト系列生成部とから構成される。
【００１５】
本発明の上記課題の第２の様相によるテスト系列生成回路は、ＲＴＬ記述の状態遷移の情報を解析するＲＴＬ解析部と、前記ＲＴＬ解析部の生成した状態遷移情報をもとにＲＴＬテスト系列を必要とするステップ数に加工するテスト系列加工部と、ビヘイビア記述の情報を基にＲＴＬ記述とビヘイビア記述の間のファシリティの変数、データ型の対応づけを行い、テスト系列の形態を変更するテスト表現形態変更部からなる。
【００１６】
【作用】
本発明の第１の様相によれば、ハードウェア設計記述により表されたシステムの設計データを格納する格納部には、ハードウェア設計記述をコンパイルした後の素子名や素子間の接続情報と記述の文に関するデータが格納されている。テストが困難な箇所を探索する探索部は、上記設計データを用いて初期回路を生成し、制御不可能な信号や記憶素子を検出する。テスト困難な箇所のテストを容易化するテスト容易化部は、上記テストが困難な箇所の探索部によって発見された信号や記憶素子の情報とテスト容易化変換規則を取り込み、上記設計データからテストしやすいハードウェア設計記述のデータを作成する。テスト容易化変換の基礎を格納したテスト容易化変換規則格納部には、テスト容易化に必要な変換規則すなわち変換規則の適用条件と、新たに生成するポート、信号、素子が格納されている。設計データの変換を行う変換部は、テスト容易化前の設計データをテスト容易化変換後のデータに置換する。
【００１７】
上記部分が生成した情報を表示または選択を行う表示選択部に係わるテスト困難な箇所をハードウェア設計記述上で提示する提示部は、上記テストが困難な箇所の探索部によって発見された信号やレジスタの情報と、上記ハードウェア設計記述の設計データの情報の対応をとり、記述とともにテスト困難な信号を表示装置で示す。テスト容易化後のハードウェア設計記述の候補を提示する提示部は、上記テスト容易化部が作成したハードウェア設計記述の候補と付加ポートや増加ハード量を表示装置で示す。該候補の記述の１つを選択する選択部は、設計者に複数のテスト容易化変換後の記述の内から１つの記述を選択するように促し、複数の候補から一つを選択する。
【００１８】
本発明の第２の様相によるテスト系列生成装置においては、検証用テスト系列生成部が、まずＲＴＬ記述格納部に格納されている修正前のＲＴＬ記述からデータの転送にともなう入力及び出力の信号が観測される場所及び時刻やレジスタが割りつく信号の観測場所及び時刻の情報を抽出し、この情報と修正前ＲＴＬ検証用テスト系列格納部の修正前のＲＴＬ記述の検証用テスト系列から入力及び出力の期待値を得て、該生成部内のデータ処理を行うテーブルに前述の観測場所及び時刻、期待値の情報を登録する。検証用テスト系列生成部は、前記テーブル内のデータを、修正情報格納部に入力されたＲＴＬ記述の実行ステートの変更やステートやレジスタの増減、機能的には等価な別の記述に記述を修正する等のＲＴＬ記述の修正情報によって変更し、修正後ＲＴＬ記述の検証用テスト系列を生成する。さらに該検証用テスト系列生成部は生成した修正後のＲＴＬ記述に対応した検証用テスト系列を修正後ＲＴＬ検証用テスト系列格納部に格納する。
【００１９】
【実施例】
図１は、本実施例の第１実施例によるテスト容易化設計装置の構成を示すブロック図である。本装置は、ハードウェア設計記述により表されたシステムの設計データを格納する格納部１と、テストが困難な箇所を探索する探索部２と、テスト困難な箇所のテストを容易化するテスト容易化部３と、テスト容易化変換の規則を格納したテスト容易化変換規則格納部４と、上記テスト容易化前の設計データをテスト容易化変換後のデータに置換する設計データの変換部５と、上記装置部分の生成した情報を表示または選択する表示選択部６及び表示装置とから構成される。
【００２０】
上記表示または選択する表示選択部は、テストが困難な箇所をハードウェア設計記述上で提示する提示部７と、テスト容易化後のハードウェア設計記述の候補を提示する提示部８と、該候補の記述の１つを選択する選択部９とから構成される。
【００２１】
ハードウェア設計記述により表されたシステムの設計データを格納する格納部１には、ポート名、信号名、信号同士の接続情報、プール演算、数値演算などの素子名、素子間の接続情報、条件文の条件の値、条件文のネフト情報や複数の文の塊をつけたラベル名等が格納してある。ここではＶＨＤＬ（VHSIC Hardware Description Language ）で記述したＲＴＬ記述を用いる。
【００２２】
テストが困難な箇所を探索する探索部２の処理フローを図２を用いて説明する。図２の１０と１８は端子で処理の開始と終了を示す、１１から１７は処理を示す。上記設計データの格納部１からデータを取り込む（ステップ１１）。シーケンシャル記述のデータが存在するかどうか判定する（ステップ１２）。シーケンシャル記述が存在する場合は、信号値保持のためのレジスタを割付ける（ステップ１３）。レジスタのデータ入力信号が入力ポートから制御できるかどうかを調べる（ステップ１４）。レジスタのデータ信号がポートから伝搬する信号で制御できない場合、このレジスタの出力信号をテスト困難な信号として登録する（ステップ１５）。全てのレジスタに対してステップ１４の処理を繰り返す。
【００２３】
テスト困難な信号名が設計データに存在するかどうか調べる（ステップ１６）。存在しない場合は、レジスタにつけられたラベルを手がかりに設計記述に存在する信号と対応づけ再登録する（ステップ１７）。対応づけができない場合はメッセージ出力する。ステップ１７の処理を全てのテスト困難な信号についていって処理終了。またステップ１４でテスト困難な信号の度合いを計算する。レジスタのデータ信号が他のレジスタに接続している場合の度数を１とし、レジスタの深さを度数とする。初期化入力のあるレジスタの場合は、テスト困難度を０としデータ入力から探索せず初期化入力から探索する。また着目しているレジスタのデータが自分の出力にのみつながっている場合の度数を無限大とする。ただしこのでは９９９９９９９９とする。この困難度を示す値は上記信号名と対にして登録する（ステップ１５）。
【００２４】
テスト困難な箇所のテストを容易化するテスト容易化部３は、上記テストが困難な箇所の探索部２で登録された信号をもとにして、該信号の制御性または観測性を高める記述データに変換する。以下処理フローを図３に示す。１９と２４は開始と終了を表す端子である。設計データを取り込む（ステップ２０）。本ステップは上記テスト困難な箇所の探索部に引き続いて処理を行う場合、すなわち既に取り込まれている場合には必要はない。テスト困難な信号名とテスト困難度を取り込む（ステップ２１）。テスト容易化変換規則を取り込む（ステップ２２）。テスト容易化変換規則の適用順序は任意に設定出来る。本規則については後で説明する。レジスタを初期化するための回路記述の生成、テストモード信号の入力ポートの生成を行う（ステップ２３）。以上テスト困難な信号全てについて繰り返して終了。上記テスト容易化変換規則に則り他の変換が可能な場合には、他のテスト容易化変換規則に基づいて第２の記述の生成を行うことができ、適用するテスト容易化変換規則に代えることで、複数のテスト容易化後の記述候補が作成できる。
【００２５】
テスト容易化変換の規則を格納したテスト容易化変換規則格納部４は、レジスタの初期化方式で格納されている。例えば以下の様な規則が格納してある。
【００２６】
規則１：レジスタのデータ入力信号が、他のレジスタの出力信号で制御される場合でかつ後者のレジスタが初期化可能である場合には、テストモード時に後者のみを初期化し前者のレジスタを初期化しない。
【００２７】
規則２：レジスタのデータ入力信号が、他のレジスタの出力信号で制御される場合でかつ後者のレジスタが初期化不可能な場合には、外部入力ポートを付加しテストモード時に後者のレジスタの出力信号の代わりに、該ポートを用いて外部信号で前者のレジスタを制御する。
【００２８】
規則３：レジスタのデータ入力が外部ポートから直接制御できない場合は、テストモード時にレジスタの値を直接初期化する。
【００２９】
テスト容易化前の設計データをテスト容易化変換後のデータに置換する設計データの変換部５は、テスト容易化変換の対象となった設計データを切り出して、新たに生成されたテスト容易化後の記述データを挿入する。
【００３０】
テストが困難な箇所をハードウェア設計記述上で提示する提示部７は、テストが困難な箇所の探索部２で発見された信号名と、ハードウェア設計言語で設計されたシステムの設計データを用いて、表示装置に於いてハードウェア設計記述上のテスト困難な信号名の色を変えて表示する。またはハードウェア設計言語のコメント記述を用いて該信号を提示する。
【００３１】
テスト容易化後のハードウェア設計記述の候補で提示する提示部８は、異なるテスト容易化変換規則に基づいて作成されたハードウェア設計記述と該記述の付加ポート数、増加ハード量や増加遅延時間を併せて表示装置を用いて提示する。
【００３２】
該変換候補の記述の選択部９は、テスト容易化後のハードウェア設計記述の候補を提示する提示部８で提示された複数の記述の内から一つを設計者に選択するように促し、設計者の選択入力に従って１つの記述を選択する。
【００３３】
次に図４のハードウェア設計記述を例に採って本発明の実施例を詳細に説明する。これはＶＨＤＬ（ＩＥＥＥ標準のハードウェア設計言語）で機能設計された論理システムの一部で、（ここでは信号の宣言など説明に直接関係ない記述は省いてある）ｅｎｔｉｔｙと称するキーワードで本システムの外部インターフェースが記述されている。入力ポートとしてＣＬＫのｉｎｉｔｉａｌ端子が宣言されている。ここでは出力ポートについては省略してある。ａｒｃｈｉｔｅｃｔｕｒｅ以下の記述はシステムの本体を記述するところで、２つのプロセス文ｂ１とｓ１から構成される。ｐｒｏｃｅｓｓから以下ｅｎｄまでの文は順次処理され、プロセス文ｂ１内のｅｌｓｅ節のないｉｆ文で制御される信号代入文は、信号ＣＬＫをクロックとするレジスタによってＣＬＫが’０’から’１’に立ち上がったときに右辺の信号Ａ〜Ｄを左辺の信号Ｏ〜Ｏ４に取り込むことを示している。ｅｌｓｅの状態のときには、信号Ｏ〜Ｏ４は１クロック前の値を保持する。さらに４つの信号代入文は、ｃａｓｅ文の条件信号ｓｔａｔｅの値によって選択される。プロセスｓ１は２ビットのカウンタの動作を記述したもので、初期設定信号ｉｎｉｔｉａｌが’０’の時ｓｔａｔｅの値を’００’にクリアする。それ以外の場合にはクロック信号ＣＬＫの立ち上がりで１加算する。
【００３４】
ハードウェア設計記述により表されたシステムの設計データを格納する格納部１には、プロセスのラベル名ｂ１，ｉｆ文、ｉｆ文の条件となる式、ｃａｓｅ文と制御入力できる信号名ｓｔａｔｅ，ｃａｓｅ文の制御信号と制御される信号代入文の情報が格納されており、条件信号ｓｔａｔｅが’００’のときに文２５が対応するようになっている。また文２５はターゲット信号がＯで、ソース信号がＡと格納されている。他の信号代入文も同様である。プロセスｓ１以下の文も同様に設計データ格納部１に格納されている。
【００３５】
テストが困難な箇所を探索する探索部２は、まず図４の記述の設計データを取り込み、シーケンシャル部を含むので必要なレジスタを生成し、図５の記述から構成される設計データに変換する。クメック信号ＣＬＫが立ち上がらないときの信号Ｏ，Ｏ２，Ｏ３，Ｏ４の値を保持するためにレジスタＯ  ｒｅｇ〜Ｏ４  ｒｅｇが生成される。ＲＥＧはレジスタで、第１引き数はデータ出力で、第２引き数はデータ入力で、第３引き数はクロック入力である。２ビットカウンタもレジスタｓｔａｔｅ ｒｅｇを用いて構成される。ここでＲＥＧＣは第４引き数の信号ｓｉｇ９が’０’のときに出力信号ｓｔａｔｅが’０’になる非同期レジスタである。次にレジスタに着目してレジスタの出力信号が制御可能かどうかを調べる。信号Ｏはレジスタの入力ｓｉｇ１につながり、ｓｉｇ１は信号Ａと信号Ｏにつながっている。ここで信号Ａは外部ポートにつながっているとすると、信号Ａが代入される条件は信号ｓｔａｔｅが’００’になる必要があるので、信号ｓｔａｔｅをたどる。するとＲＥＧＣにたどりつき、クリア信号ｓｉｇ９から入力をたどるとポートｉｎｉｔｉａｌにつながっている。（図５ではｅｎｔｉｔｙのポート宣言が記述されていないが図４と同じとする）初期化機能付きレジスタＲＥＧＣまでトレースし、また本レジスタのクリア信号は外部信号につながっているのでここでトレースを中止する。信号Ｏのテストの困難度は制御レジスタの数すなわち１となる。同様に信号Ｏ２，Ｏ３，Ｏ４もテストの困難度が１のテスト困難な信号となる。信号ｓｔａｔｅは信号ｓｉｇ９によって外部から制御されるのでテスト困難とはしない。
【００３６】
テスト困難な箇所の提示部７は、図６（ａ）の様に前記手段で発見された信号Ｏ，Ｏ２，Ｏ３，Ｏ４について、表示装置の画面上で信号名の存在する箇所の背景色を他の箇所と変えて表示する。図面でＯ，Ｏ２，Ｏ３，Ｏ４を囲む枠は背景色が他の部分とは違っていることを示す。また図６（ｂ）の様にコメント記述を用いて「−−Ｏ２  ｉｓ  ｈａｒｄ  ｔｏ  ｔｅｓｔ」と提示することもできる。
【００３７】
次に、テスト容易化部３が、図４のＶＨＤＬ記述のデータを上記規則２と３に基づいてテスト容易化変換するフローと、変換後のデータについて記述を用いて説明する。まず規則２に基づいたテスト容易化の例を図７を用いて説明する。図４の設計データとテスト困難な信号Ｏ，Ｏ２，Ｏ３，Ｏ４を取り込む。つぎにテスト容易化変換規則２を取り込む。本規則に基づきテストモード信号ＴＭＯＤＥ、信号ｓｔａｔｅの代わりの外部入力ｓｔａｔｅ ｐｉ（２ビット）の入力ポートを追加する。尚ここでｉｎ  ＢＩＴは１ビットの信号を生成すること意味し、ｉｎＢＩＴ （０−１）２ビットの信号を生成することを意味する。中間信号ｓｉｇ ｇ１を生成し、テストモード信号で上記信号ｓｔａｔｅと信号ｓｔａｔｅ ｐｉをセレクトするｉｆ文を生成する。ｉｆ文のｔｈｅｎの条件にはＴＭＯＤＥ信号を１ビットの’１’を比較する式を割り付ける。また、それぞれの入力と信号ｓｉｇ ｇ１を接続するデータ文を作成する。ｃａｓｅ文の入力の信号ｓｔａｔｅを信号ｓｉｇ ｇ１に置換する。以上、記述上で変換するかのごとく説明してきたが、実際には設計データの内部データを加工して変換する。
【００３８】
次に規則３に基づいた変換後のデータを図８を用いて説明する。これは、テスト困難な信号Ｏ，Ｏ２，Ｏ３，Ｏ４をテストモード時に初期化した記述である。テストモードＴＭＯＤＥのポートを追加し、ｉｆ文にテストモードの条件を付加し、上記のテスト困難な信号に’０’を代入する文を生成する。また非常テストモード時ｅｌｓｉｆ文で構成して以下図４と等しい動作記述データを生成する。
【００３９】
テスト容易化後のハードウェア設計記述の候補の提示部８は、表示装置を用いて上記テスト容易化部で生成した設計データからハードウェア設計記述を表示する。図９は本提示部がテスト容易化後のハードウェア設計記述を表示した例を示す図である。本実施例では候補の記述を２つ表示している。さらに本装置は、付加されたポート数や変換信号数や信号のビット幅から。レジスタの初期化機能の付加やセレクトの付加によるハード量の増加と信号伝搬遅延時間の増加を評価値として表形式で提示する。
【００４０】
上記変換候補の記述から１つを選択する選択部９は、上記評価値をもとに設計者がテスト容易化後のハードウェア設計記述を選択できる。表示されたテスト容易化後のハードウェアの設計記述の候補は番号を指定して選択する。図９のウィンドウ２６の候補番号のＳｅｌｅｃｔボタンをマウス等の指定装置でクリックして選択する。
【００４１】
以上の説明では。レジスタの初期化の場合についてのみ説明してきたが、レジスタ以外の記憶素子やフィードバックループの記述についても対応できる。またテスト容易化変換規則として３つの場合を説明したが、他のテスト容易化手法についても対応できる。
【００４２】
本実施例では、テスト容易化変換後のハードウェア設計記述の候補から１つを設計者が選択してしたが、設計者の介在なく評価関数が最小とする記述のデータを自動選択させることもできる。
【００４３】
本実施例によればテスト困難な箇所とその既粉や困難な度合いがハードウェア設計記述上で認識でき、テスト容易化変換の規則に基づいて複数のテスト容易化後の記述が得られ、それぞれの特徴となる評価価値が与えられるので、設計者の目的とする基準で自由に選択できる。
【００４４】
このようにしてテスト容易化設計の成されたシステムに対して、適当なテストパターンが容易に生成される。このテストパターンを用いてシミュレーションを行った結果、要求仕様を満たしていない場合には、設計変更が行われる。以下に説明する本発明の第２実施例によれば、この設計変更によるテストパターンの再度の作成は極めて効率的に行われる。即ち、新たにテストパターンを作り直すのではなく、変更に対応する部分のみを修正する方法を用いる。もちろん、シミュレーションの結果に基づく設計変更だけでなく、仕様そのものの変更や類似する別の仕様による新たな設計を行う場合にも有効である。
【００４５】
以下に本発明の第２実施例を図面を参照して説明する。図１０は、本発明の装置の構成を示すブロック図である。本発明の検証用テスト系列生成装置は、修正前のＲＴＬ記述を格納するＲＴＬ記述格納部３１と、修正前の検証用テスト系列を格納する修正前ＲＴＬ検証用テスエト系列格納部３２と、ＲＴＬ記述の修正の情報を格納する修正情報格納部３３と、上記修正情報に基づいて修正後のＲＴＬ記述に対応した検証用テスト系列を生成する検証用テスト系列生成部３４と、該検証用テスト系列格納部３４で生成された検証用テスト系列を格納する修正後ＲＴＬ検証用テスト系列格納３５から構成される。
【００４６】
次に、本実施例の検証用テスト系列と生成部３４の動作を図１１を示すフローチャートに従って説明する。ＲＴＬ記述格納部３１には修正前のＲＴＬ記述を、ＲＴＬ検証用テスト系列格納部３２には修正前のＲＴＬ記述の検証用テスト系列をそれぞれ格納している。
【００４７】
検証用テスト系列生成部３４は、先ずＲＴＬ記述の変更情報を得て修正情報格納部３３に格納する（ステップ１００）。修正情報の取り込み方法については後述する。次に検証用テスト系列生成部３４は、修正前のＲＴＬ記述と検証用テスト系列から修正前のＲＴＬ記述の入力信号が初めて観測されるステート及び期待値の情報、出力信号が観測されるステート及び期待値の情報、データの転送に伴い記憶素子（レジスタ：以降レジスタと記す）の出力信号の観測されるステートの情報を各信号名とともに中間データを格納するためのテーブルを作成し、これ登録する（ステップ１０１）。ステップ１００で得た修正情報を基に、このテーブルのデータを変換し（ステップ１０２）、修正により観測されなくなった信号のステート情報を消去する（ステップ１０３）。さらに、テーブルに登録された信号名で一度も観測されないものがあれば（ステップ１０４）、信号の情報をテーブル１から消去し（ステップ１０５）、修正後のＲＴＬ記述に対応した検証用テスト系列を作成する（ステップ１０６）。
【００４８】
次に具体例を示して説明する。以下では図１２（Ａ）に示すＲＴＬ記述から、図１２（Ｂ）に示すＲＴＬ記述に修正した場合を例にあげ、詳細に説明する。ＲＴＬ記述格納部１にはデータの遷移的な転送の様子をＶＨＤＬ（VHSIC Hardware Description Language ）で記述したＲＴＬ記述、図１２（Ａ）及び図１２（Ｂ）が格納されている。ＶＨＤＬではデータをシンボリックなリテラルとして表現している。このデータを表すリテラルを信号と呼ぶが、外部入力及び外部出力のデータは特にポートと呼ぶ。データの転送はある信号から信号への値の移動として表現される。データ転送は、タイミングを取るクロックに同期して、process 文の中のwait文を境に区切られたステートを記述順に遷移して行われる。
【００４９】
図１２（Ａ）のＲＴＬ記述は３ステートでデータの転送が実行され、同一ステートでデータを出力ポートｚ１，ｚ２に行っていたが、時分割で出力を行うことにより図１２（Ｂ）の記述のように共通の出力ポートｚへ出力を行うようにＲＴＬ記述を修正している。図１２（Ａ）から図１２（Ｂ）への変更は、ステート数は同じで信号の転送先の変更や、転送先の信号がデータの記憶を行うレジスタからデータの記憶を行わないターミナルへの変更、（例えば信号ｒ２からｔ２への変更）が行われている例である。
【００５０】
図１３はＲＴＬ検証用テスト系列格納部２に格納されている図１２（Ａ）に対応する検証用テスト系列の一部の例である。検証用テスト系列を生成する設計言語により書かれた該検証用テスト系列は、対応するＲＴＬ記述のデータを表すのに必要なビット幅を持つ信号として、入力端子・出力端子が宣言されている。例えば、ＲＴＬ記述で０から７の範囲の整数型として定義されたＡはＡ．０，Ａ．１，Ａ．２の３ビットの信号として宣言されている。また、テスト系列（入力パタン及び期待値）は、TESTPATT；〜ENDTEST ；の間に書かれ、テスト系列の何番目の値がどの信号の値に対応するのかをASSIGN文で示している。図１３のテスト系列は既に検証済みで、入力ポート及び出力ポートの期待値が正しいものであることは確認されている。
【００５１】
ここで、図１２（Ａ）及び図１３を基に図１４の中間データを格納するテーブル１を作成するステップ１０１の詳細な処理フローを図１５に示す。図１４は検証用テスト系列生成のために必要な中間データのデータ構造を表にあらわしたもので、中間データはすべての観測したい信号について、観測するステートには“○”を、観測してはならないステートには“×”をそれぞれ記し、入力ポート及び出力ポートの観測するステートには期待値が信号名ごとに付加されている。図１５の処理では、先ずＲＴＬ記述のデータの転送先の信号名ｒ１，ｒ２，ｚ１，ｚ２を検証用テスト系列生成部４のデータ処理を行うテーブルに登録する（ステップ２００）。次にデータ転送の書かれているステートを認識し、登録された信号にステートの情報を与える（ステップ２０１）、ステートの認識は次のように行う。
【００５２】
○データの転送がステートラベルで明らかに分けて記述してあるときには、
ステートラベルの番号をステート番号とする。
【００５３】
○ＶＨＤＬのようにステートが明らかに分けられていない場合、process 文中の  wait文からwait文までかあるいはwait文からprocess 文の終わりまでを１ステートと見なし、通し番号をふりステートは番号とみなす。なお、wait文に書かれたwait条件となる信号はステート遷移を管理する信号であるとみなされるので、その信号をクロックとして認識する。
【００５４】
このような方法でステートを認識すると、信号ｒ１はステート１，信号ｒ２及びｒ３はステート２、信号ｚ１及びｚ２はステート３のステート情報を得る。またクロックとして信号ＣＬＫを認識する。ステートの情報を得たら、テーブル１に登録した信号の転送元の情報を該テーブルに登録し（ステップ２０２）、登録された信号が出力ポートであるのか（ステップ２０３）、レジスタであるのか（ステップ２０６）を調べる。ステップ２０３及びステップ２０６の判断は下記のように行う。
【００５５】
（ステップ２０３）
＃転送先の信号が出力ポートとして宣言されている場合は出力ポートとする。
【００５６】
＃信号の転送元はステートで生成されているが、ステート以外のところで
出力ポートと接続している信号は出力ポートとして扱う。
【００５７】
（ステップ２０６）
＃他のステートでデータの転送元として右辺に現れていればその信号はレジスタとする。
【００５８】
＃ＲＴＬ記述が１ステートのみしかない場合のＲＴＬ記述の転送先の信号はレジスタになる。
【００５９】
出力ポートである信号ｚ１及びｚ２に出力の属性を与え（ステップ２０４）、登録済みのステート情報をもとに図１３の検証用テスト系列の期待値（ｚ１：’ＬＨＬ’ｚ２：’ＨＨＬ’）を登録する（ステップ２０５）。
【００６０】
レジスタである信号ｒ１及びｒ２の属性をレジスタとする（ステップ２０６）。属性が出力ポートでもレジスタでもない信号はテーブル１から消去される（ステップ２０８）、次に入力ポートに関する処理を行う。ＲＴＬ記述で入力信号として宣言された信号の信号名をテーブルに登録し（ステップ２１０）、ステップ２０１で認識された信号ＣＬＫにクロックであることを表す属性を与え（ステップ２１２）、それ以外の入力として宣言された。信号Ａ，Ｂ，ｃ１，ｃ２の属性を入力とし、初めて観測されるステートの情報をテーブルに与える（ステップ２１３）。
【００６１】
入力信号が初めて観測されるステートの認識する方法は、
（＊１）：ＲＴＬ記述のデータの転送元である右辺の信号名を調べ、転送先の信号のステート情報を得る。
【００６２】
（＊２）：（＊１）で確認した信号名がステートの情報を持っていなければ、（＊１）で得たステート情報を与える。
【００６３】
テーブルの信号名がステート情報を持っていて、そのステート情報が（＊１）で得たステート情報より遅く観測されるものであるならステート情報を（＊１）のものに変更する。
【００６４】
の手順を繰り返すことで行われ、信号Ａ及び信号Ｂはステート１、信号ｃ１はステート２、信号ｃ２はステート３のステート情報を得る。この初めて観測されるステートの情報により、修正前検証用テスト系列の期待値を得る（ステップ２１４）。ステート情報を持たない、すなわち状態遷移を行うprocess において使用されないクロック以外の入力信号はテーブルから信号名を消去し（ステップ２１６）、修正前の検証用テスト系列からテスト系列のタイトル及びテストサイクルの情報を得て、テーブルに登録し（ステップ２１７）、検証用テスト系列生成のためのデータの抽出処理は終了する。
【００６５】
次に記述の修正情報の与え方を詳しく説明する。修正情報は人手により入力するかあるいは修正前後のＲＴＬ記述から自動的に抽出することにより得られるものであるが、この例では人手で修正情報を与えることにする。図１６は説明のため図１２（Ａ）から図１２（Ｂ）への変更点をまとめたものである。これらの修正のあった記述の修正情報を図１７に示すようにコマンド形式で与え、修正情報を修正情報格納部３に格納する（ステップ１００）。
【００６６】
ここでの修正情報とは、観測するレジスタもしくは出力ポートの変更や変更された転送先の信号に転送される右辺の情報や変更された転送先の信号の観測されるステートの情報をさし、これを転送先（左辺）の信号（ｃｈｌ）と転送元（右辺）の信号（ｃｈｒ）とわけて、ステートの情報及びＲＴＬ記述の変更内容を与えている。例えば、“ｃｈｌ（２）ｒ２，ｔ２”では、修正前のステート２の転送先ｒ２が修正後のステート２の転送先ｔ２に変更されたことを示している。また、“ｃｈｌ（３，２）Ｚ１，Ｚ”では、修正前のステート３で観測された転送先Ｚ１が修正後はステート２で観測される転送先Ｚに変更されたことを示している。
【００６７】
次にステップ１０２の詳細な処理フローを図１９に示す。
【００６８】
修正情報の“ｃｈｌ（２）ｒ２，ｔ２”はＲＴＬ記述の左辺（つまり信号の転送先）の情報で（ステップ３００）、テーブル１に信号名が存在しないので（ステップ３０１）、信号ｔ２が出力信号であるのか（ステップ３０２）、レジスタとなる信号である（ステップ３０３）のか調べる。出力ポートの判定は修正前の信号名の持つ属性が出力を示すものであるか否かで判断する。レジスタであるかの判定は、次の条件をすべて満たすものをレジスタとする。
【００６９】
＠１：ＲＴＬ記述の左辺の変更により新たに生成された信号名である。
【００７０】
＠２：（＠１）の信号名が他のＲＴＬ記述の右辺の修正情報にあらわれる。
【００７１】
＠３：その信号のステート情報が（＠２）のステート情報と異なる。
【００７２】
＠４：信号の属性が出力ではない。
【００７３】
すべての修正情報を上記の判断基準に照らすと、信号ｔ２は出力信号でもレジスタとなる信号でもないので、ステップ３０５にいく。未処理の修正情報“ｃｈｌ（３，２）Ｚ１，Ｚ”が存在するので（ステップ３０５）、この修正情報の処理に移る。この修正情報も左辺に関する情報で、信号Ｚはテーブルに名前が存在しないので、修正前の信号Ｚ１の属性を調べる（ステップ３０２）。信号Ｚ１の属性が出力であるので、信号名Ｚ１及び出力の属性、ステート情報（ステート２）、ステート２における期待値として修正前の信号Ｚ１の期待値（’ＬＬＨ’）をテーブルに登録する（ステップ３１２）。修正情報“ｃｈｒ（３，２）ｃ２，ｃ２”は右辺に関する情報で、信号ｃ２はテーブルに信号名が存在し（ステップ３０６）、信号ｃ２のステート情報に変更が必要であるので（ステップ３０７）、信号ｃ２のステート情報をステート３からステート２に変更する（ステップ３０８）。
【００７４】
ステップ３０７のステート情報の変更は、修正情報の入力ポートが初めて観測されるステートが、テーブルに登録されたステートよりも破約観測されるものである時に行われる。以上の処理を入力されたすべての修正情報に行い、テーブルのデータを変換し、修正により観測されなくなった信号のステート情報を消去する（ステップ１０３）。観測されなくなった信号ｒ２，Ｚ１，Ｚ２の観測情報を消去し、一度も観測されない信号ｒ２，Ｚ１，Ｚ２をテーブルから消去する（ステップ１０４，ステップ１０５）。ここで検証用テスト系列生成部４の行う１の検証用テスト生成の為のデータの作成が終了し、図１８に示すテーブルが得られる。このテーブルの情報を基に、修正後のＲＴＬに記述に対応する検証用テスト系列を生成する（ステップ１０６）。ステップ１０６の詳細な処理フローを図２０に示す。
【００７５】
先ずテーブル１のデータの属性が、入力あるいは出力であるである信号Ａ、Ｂ、ｃ１、ｃ２、Ｚの各ステートで観測される値を、ｓset する（ステップ４００）。属性が入力の信号では、観測情報を持たないステートは各ステートで観測される値を’Ｘ’（不定）とし、属性が出力の信号では、観測されるステートまでは各ステートで観測される値を’Ｘ’（不定）とし、観測されるステート以降は既に登録された期待値を各ステートの値として各信号に与える。
【００７６】
0003640684.tif 000002
とする。次に属性が“クロック”の信号ＣＬＫの各ステートの値を’Ｐ’（パルス信号）とする（ステップ４０１）。属性が“入力”、“出力”、“クロック”である信号Ａ，Ｂ，ｃ１，ｃ２，Ｚ，ＣＬＫの持つビットレンジの情報から信号を１ビットごとに展開する（ステップ４０２）。例えば、信号Ｂは、Ｂ．０，Ｂ．１，Ｂ．２となり、信号ｃ１はｃ１．０，ｃ１．１，ｃ１．２となる。そして、ステッ４００から４０２で得られた、検証用テスト系列の実データとなる図２１に示すデータを、図２２の処理により該検証用テスト系列の書式に形成し出力する（ステップ４０３）。ここで図２２の処理を説明する。まずテーブルにあるタイトル及びテストサイクルに関するデータを“TITLE ”、“CYCLE ”の文字列の後に表示し（ステップ５００）、属性が“クロック”、“入力”である信号ＣＬＫ，Ａ，Ｂ，ｃ１，ｃ２をそれぞれ属性ごとに、
“INPUT （１）  Ａ．０，Ａ．１，Ａ．２，，Ｂの信号並び，，・・；”
“INPUT （２）  ＣＬＫ；”
上記のように表示する（ステップ５０１）。属性が“出力”である信号Ｚについても、出力の通し番号はあらかじめ設定したものを使用して、“OUTPUT（７）Ｚ．０，Ｚ．１，Ｚ．２；”の様に表示する（ステップ５０２）。次にテスト系列との対応関係を属性ごとに順番に、“ASSIGN  ＣＬＫ，，Ａの信号名並びに，，・・；”の形で表示し（ステップ５０３）、続いて“TESTPATT；”、（ステップ５０３）の信号名の順番に対応するようなテスト系列、“ENDTEST ；”（ステップ５０４）、記述が終わりであることを示す“END ；”の順にを表示する（ステップ５０５）。こうして図２３に示す修正後のＲＴＬ記述に対する検証用テスト系列が得られる。この一連の処理を与えられたいくつかのテスト系列について行い、検証用テスト系列を作成し、修正後検証用テスト系列格納部５に格納する。以上により、図１２（Ａ）の修正前ＲＴＬ記述と図１３の該記述に対する検証用テスト系列とＲＴＬ記述の修正情報から、図１３に示す修正後のＲＴＬ記述に対する検証用テスト系列を得ることができることを示した。
【００７７】
次に別の具体例を示して説明する。図２４（Ａ）のＲＴＬ記述から修正後のＲＴＬ記述、図２４（Ｂ）に修正したときの例を説明する。図２４（Ａ）の記述は２ステートでデータの転送を行うのだが条件によって異なるデータの転送が起こる。修正後の図２４（Ｂ）では関数を使用することによって修正前と同じデータの転送を１ステートで実現している。修正前ＲＴＬ検証用テスト系列格納部２にはＲＴＬ記述修正前の検証用テスト系列が格納されている。ステップ１０１により図２４（Ａ）及び検証用テスト系列から抽出した入力ポート、出力ポートとなる信号の観測情報及び期待値とレジスタとなる信号の芯観測情報を表にした図を２４に示す。この例ではデータの転送は２ステートで実行される。図２４（Ａ）から図２４（Ｂ）への記述の修正情報の一覧を図２６に示す。
【００７８】
先ず、図２６に示した記述の変更点の情報をもとに、修正情報を修正情報格納部３に取り込み（ステップ１００）、入力ポートＡ，Ｂ，Ｃ０の初めて観測されるステートの情報及び期待値、
信号名Ａ：ステート１、期待値：２；
信号名Ｂ：ステート１、期待値：３；
信号名ｃ０：ステート２、期待値：４；
レジスタとなる信号ｒ１，ｒ２，ｒ３の観測するステート情報、（ステップ２０３）の該評価基準に基づき出力ポートと認識される信号Ｔｅｍｐのステート情報（ステート２）及び期待値（’ＬＨＨ’）、テスト系列のタイトル（ＴＥＳＴ２）、及びクロックサイクル（CYCLE:１００）を得て、検証用テスト系列生成部４のテーブル１に登録する（ステップ１０１）。修正情報によるテーブル１のデータを変更するステップ１０２において、入力ポートである信号ｃ０の観測情報をステート２からステート１に変更し（ステップ３０６，３０７，３０８）、ステップ２０６の該判断基準によりレジスタと判断される信号Ｔと信号Ｓは信号名と観測されるステート情報（ステート１）をテーブル１に登録される（ステップ３０３，３０４）。ところが信号Ｔは他の修正情報（“ｃｈｌ（２，１）Ｔｅｍｐ，Ｔ”）により出力信号と判断されるので（ステップ３０２）、ステップ３０９からステップ３１１の処理で改めて出力であることを示す属性及びステート情報、修正前信号Ｔｅｍｐの持つ期待値（’ＬＨＨ’）をテーブル１に登録する。
【００７９】
次に修正により観測されなくなった信号ｒ１，ｒ２，ｒ３，Ｔｅｍｐのステート情報と修正前の信号ｃ０のステート情報を消去し（ステップ１０３）、一度も観測されなくなった信号ｒ１，ｒ２，ｒ３，Ｔｅｍｐをテーブル１から消去する（ステップ１０４，１０５）。図２７はこの処理によりテスト系列生成部４で作成された検証用テスト系列を生成するための信号の観測場所及び時刻と期待値のテーブル１のデータを示した図である。このテーブルのデータからステップ１０６の処理により、修正後のＲＴＬ基準に対応した検証用テスト系列を生成する。
【００８０】
以上に示した実施例ではレジスタの観測されるステートの情報は使用されていないが、レジスタの期待値を含むようなテスト系列が与えられ、ＲＴＬ記述の変更がそのレジスタへのデータの転送されるタイミングのみである場合には、レジスタの期待値を含むようなテスト系列を生成することもできる。
【００８１】
【発明の効果】
本発明の第１の様相によれば次のような効果がある。先ず、テスト困難な箇所の探索が容易になるためテスト回路の設計時間が大幅に短縮される。また自動で探索を行うのでテストの困難な箇所の見落としがなくなる。さらにテスト容易化変換を自動に行うので人手で修正した場合に発生していたバグの混入がなくなる。テスト容易化のための回路仕様がハードウェア設計記述に残るため、設計データの一貫性が保たれ設計データの管理が容易になる。
【００８２】
本発明の第２の様相によれば、ＲＴＬ記述の修正情報及び修正前のＲＴＬ記述及び該記述に対応する検証用テスト系列から修正を施したＲＴＬ記述の検証用テスト系列を作成できるので、非常に高速に作成することができ、人手で行うことにより起こる誤ったテスト系列の作成をしないで済むので、信頼できるテスト系列を得ることができるだけでなく、設計期間の短縮にも効果がある。
【００８３】
また、生成された検証用テスト系列と修正前のＲＴＬ記述にて対する検証用テス系列とを比較し、入力と出力のパターンが一致した場合、シミュレーションを行うことなく、修正後のＲＴＬ記述が機能的にもサイクル単位のタイミング的にも修正前のＲＴＬ記述と等価であることが確認できるという効果もある。
【００８４】
さらに、生成した検証用テスト系列と修正前のＲＴＬ記述に対する検証用テスト系列を比較することで、シミュレーションを行う前に、修正したＲＴＬ記述において必要な値が得られるのに何サイクルかかるのかということや、値の観測されるタイミングが変化した様子を、人がテスト系列を見て判断することができる上に、テスト系列どうしのサイクル数を比較することで、それぞれの機能記述に対する性能が見積もれるという効果もある。
【図面の簡単な説明】
【図１】本発明によるテスト容易化設計装置の構成図。
【図２】テスト困難な箇所の探索処理フロー図。
【図３】テスト容易化部り処理フロー図。
【図４】変換前のハードウェア設計記述を説明する図。
【図５】レジスタ割付後のハードウェア設計記述を説明する図。
【図６】テスト困難な信号の表示を説明する図。
【図７】テスト容易化変換後のハードウェア設計記述の候補を説明する図。
【図８】テスト容易化変換後のハードウェア設計記述の候補を説明する図。
【図９】テスト容易化変換後の候補と評価値を説明する図。
【図１０】本発明の第２実施例の構成を示す構成図。
【図１１】検証用テスト系列生成部四における処理を示すフローチャート。
【図１２】ＨＤＬで記述されたＲＴＬ記述の修正の様子を具体的に表す図。
【図１３】図１２（Ａ）に対する検証用テスト系列を表した記述。
【図１４】修正前ＲＴＬ記述及び検証用テスト系列から抽出した観測情報及び期待値情報を表にした図。
【図１５】検証用テスト系列生成部にＲＴＬ記述修正前のデータを与える処理を示すフローチャート。
【図１６】具体例における変更点の一覧を表にした図。
【図１７】修正情報格納部に修正情報を格納する様子をあらわす図。
【図１８】テスト系列生成部において生成された検証用テスト系列を生成するためのデータを表にした図。
【図１９】検証用テスト系列生成部４のテーブル１にある中間データを修正情報により変換する処理を示すフローチャート。
【図２０】中間データから検証用テスト系列を生成する処理を示すフローチャート。
【図２１】図２０に示される処理で使用される検証用テスト系列の実データを表した図。
【図２２】図２１に示す実データを検証用テスト系列の書式に形成し、出力する処理フローチャート。
【図２３】修正後のＲＴＬ記述に対応する検証用テスト系列を表した記述である。
【図２４】ＶＨＤＬで記述されたＲＴＬ記述の修正の様子を表す図。
【図２５】修正前ＲＴＬ記述及び検証用テスト系列から抽出した観測情報及び期待値情報を示す図。
【図２６】具体例での変更点を示す図。
【図２７】修正後ＲＴＬ記述及び検証用テスト系列を生成するためのデータを示す図。
【符号の説明】
１  ハードウェア設計記述による設計データ格納部
２  テスト困難な箇所の探索部
３  テスト容易化部
４  テスト容易化変換規則格納部
５  設計データ変換部
６  表示選択部
７  テスト困難な箇所の提示部
８  テスト容易化変換候補提示部
９  候補選択部
３１  レジスタ転送レベル記述格納部
３２  修正前レジスタ転送レベル検証用テスト系列格納部
３３  修正情報格納部
３４  検証用テスト系列生成部
３５  修正後レジスタ転送レベル検証用テスト系列格納部
【図１】
0003640684.tif 000003
【図２】
0003640684.tif 000004
【図３】
0003640684.tif 000005
【図４】
0003640684.tif 000006
【図５】
0003640684.tif 000007
【図６】
0003640684.tif 000008
【図７】
0003640684.tif 000009
【図８】
0003640684.tif 000010
【図９】
0003640684.tif 000011
【図１０】
0003640684.tif 000012
【図１１】
0003640684.tif 000013
【図１２】
0003640684.tif 000014
【図１３】
0003640684.tif 000015
【図１４】
0003640684.tif 000016
【図１５】
0003640684.tif 000017
【図１６】
0003640684.tif 000018
【図１７】
0003640684.tif 000019
【図１８】
0003640684.tif 000020
【図１９】
0003640684.tif 000021
【図２０】
0003640684.tif 000022
【図２１】
0003640684.tif 000023
【図２２】
0003640684.tif 000024
【図２３】
0003640684.tif 000025
【図２４】
0003640684.tif 000026
【図２５】
0003640684.tif 000027
【図２６】
0003640684.tif 000028
【図２７】
0003640684.tif 000029