JP3640684B2 - Test sequence generation device and testability design device - Google Patents
Test sequence generation device and testability design device Download PDFInfo
- Publication number
- JP3640684B2 JP3640684B2 JP04287894A JP4287894A JP3640684B2 JP 3640684 B2 JP3640684 B2 JP 3640684B2 JP 04287894 A JP04287894 A JP 04287894A JP 4287894 A JP4287894 A JP 4287894A JP 3640684 B2 JP3640684 B2 JP 3640684B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- signal
- description
- data
- verification
- 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
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Testing Or Measuring Of Semiconductors Or The Like (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【0001】
【産業上の利用分野】
本発明はハードウェア設計言語で設計されたシステムのテスト系列生成装置及びテスト容易化設計装置に関する。
【0002】
【従来の技術】
従来論理システムのハードウェア設計において、半導体技術の進歩に伴う設計工数の増大という問題の一つの解決方法として、論理合成が盛んに行われるようになってきている。論理合成を用いることにより、RTL記述(レジスタ転送レベルによるハードウェア設計記述)からこれに対応するゲートレベルの論理回路が自動的に合成されるようになった。
【0003】
このような論理合成を用いた設計では、RTL記述に誤りがあると、誤った論理が合成されるためRTLでの検証が重要である。RTL記述の検証は設計者が多くのRTL記述に対する検証用テスト系列を人手で作成して機能シミュレータにより検証をおこなっていた。論理合成後のゲートレベルでのシミュレーションの結果が、回路の動作、速度等の要求仕様を満たしていない場合や、使用するハードウェア資源を変更したり、設計変更を行った場合等、通常の設計ではRTL記述の修正が頻繁に必要となる。RTL記述の変更を行った場合、修正後のRTL記述の検証が必要になるが、以前に作成したテスト系列は、値を観測する時刻の変更や実行動作そのものが変更されることがあるので、そのまま使うことはできず、はじめからテスト系列を人手で作っていた。
【0004】
これでは合成した論理回路に修正の必要があり、RTL記述の修正をおこなう度に何千、何万とある検証用テスト系列を人手ではじめから作成する必要があり、また数多くの検証用テスト系列の作成は人手で行うため、誤ったテスト系列を作成してしまう可能性も高く、これらの原因による設計時間の増大が問題となっていた。
【0005】
従来、大規模な論理システムの設計では、ハードウェア設計言語でシステムの機能や動作を記述し、その後論理合成装置を用いて論理回路を生成する方式が用いられていたが、論理合成装置で所望のテスト回路を生成するために、設計者自らが機能動作設計の段階でテスト用のハードウェアの機能動作設計をする必要があった。そのためシステムの規模の増大に伴い、テスト回路の機能動作設計に大変な時間がかかってきている。
【0006】
一方、ハードウェア設計言語で記述された回路を論理合成すると、レジスタが生成されることがあり、この生成されるレジスタを予測しながらテストを考慮した記述をするのは大変困難であった。そして設計者は、シミュレーションしながらテストの困難な内部信号を探し出し、それを初期化するためにハードウェア設計記述を書き直すということも行われていた。これらの作業を人手で行われていたのでテスト困難な箇所を見落とすこともあり、さらに記述の変更でバグの混入するおそれもあった。
【0007】
【発明が解決しようとする課題】
従って、ハードウェア設計言語を用いたテスト容易化回路の設計にかかる時間が増大し、又設計そのものも非常に難しくなり、ごく普通に生じる技術的要求に応えることも困難となってきている。
【0008】
従って、テストそのものを容易化する手法が先ず求められる。
【0009】
そこで本発明による第1の様相によれば、ハードウェア設計言語を用いたテスト容易化回路の設計の長期化と、テスト容易化設計の困難性と、テスト困難な箇所の見落としと、記述の変更によるバグの混入を解決するために、機能動作設計に於けるテスト容易化設計を自動化することを目的とする。
【0010】
又、従来のようにRTLの記述に修正を加えた場合、修正をする度に検証用テスト系列を新たに人手で作成するのでは、誤った検証用テスト系列を作成してしまう可能性が高く、修正後のテスト系列の信頼性が低いという問題点があり、従来の検証用のテスト系列の修正方法では大規模なデジタルシステムの機能設計を行う場合、修正時間が大幅にかかり設計期間の増大をもたらしていた。
【0011】
そこで本発明の第2の様相による目的は、上述の点に鑑み、RTL記述の修正にともなう検証用テスト系列の作成時間を減らし、さらに人手修正による誤りをなくし、機能設計に要する時間を短縮する機能レベルの検証用テスト系列生成装置を提供することにある。
【0012】
【課題を解決するための手段】
本発明の第1の様相によれば、テスト容易化設計装置は、ハードウェア設計記述により表されたシステムの設計データを格納する格納部と、前記格納部から前記設計データを取り込み、前記設計データに含まれるテストが困難な箇所を、前記設計データを解析することによって、探索する探索部と、テストモード時におけるレジスタの値の初期化または外部入力ポートの付加を含む、テスト容易化変換の規則を格納したテスト容易化変換規則格納部と、前記探索部によって特定されたテスト困難な箇所のテストを、前記テスト容易化変換の規則に基づいて、容易化するテスト容易化部と、前記テストの容易化に伴って前記設計データの変換を行う変換部から構成されている。好ましくは、上記部分が生成した情報を表示または選択を行う表示選択部を備え、上記表示選択部分は、テストが困難な箇所をハードウェア設計記述上で提示する提示部と、テスト容易化変換後のハードウェアの設計記述の候補を提示する提示部と、該候補の記述の1つを選択する選択部とから構成される。
【0013】
本発明の第2の様相によれば、テスト系列生成装置は、RTL記述を格納するRTL記述格納部と、修正前のRTL記述のRTL検証用テスト系列を格納する修正前RTL検証用テスト系列格納部と、前記RTL記述の修正情報を格納する修正情報格納部と、修正後のRTL記述の検証用テスト系列を生成する検証用テスト系列生成部と、該生成部で生成された検証用テスト系列を格納する修正後RTL検証用テスト系列格納部から構成される。
【0014】
本発明の第1の様相によれば、テスト系列生成装置は、論理システムのビヘイビアレベルの仕様記述と、前記仕様記述に対応したレジスタ転送レベルの記述とから、前記仕様記述と前記レジスタ転送レベルの記述との対応をとる対応作成部と、前記仕様記述を検証するためのテスト系列データを基に、レジスタ転送レベルのテスト系列データを生成するテスト系列生成部とから構成される。
【0015】
本発明の上記課題の第2の様相によるテスト系列生成回路は、RTL記述の状態遷移の情報を解析するRTL解析部と、前記RTL解析部の生成した状態遷移情報をもとにRTLテスト系列を必要とするステップ数に加工するテスト系列加工部と、ビヘイビア記述の情報を基にRTL記述とビヘイビア記述の間のファシリティの変数、データ型の対応づけを行い、テスト系列の形態を変更するテスト表現形態変更部からなる。
【0016】
【作用】
本発明の第1の様相によれば、ハードウェア設計記述により表されたシステムの設計データを格納する格納部には、ハードウェア設計記述をコンパイルした後の素子名や素子間の接続情報と記述の文に関するデータが格納されている。テストが困難な箇所を探索する探索部は、上記設計データを用いて初期回路を生成し、制御不可能な信号や記憶素子を検出する。テスト困難な箇所のテストを容易化するテスト容易化部は、上記テストが困難な箇所の探索部によって発見された信号や記憶素子の情報とテスト容易化変換規則を取り込み、上記設計データからテストしやすいハードウェア設計記述のデータを作成する。テスト容易化変換の基礎を格納したテスト容易化変換規則格納部には、テスト容易化に必要な変換規則すなわち変換規則の適用条件と、新たに生成するポート、信号、素子が格納されている。設計データの変換を行う変換部は、テスト容易化前の設計データをテスト容易化変換後のデータに置換する。
【0017】
上記部分が生成した情報を表示または選択を行う表示選択部に係わるテスト困難な箇所をハードウェア設計記述上で提示する提示部は、上記テストが困難な箇所の探索部によって発見された信号やレジスタの情報と、上記ハードウェア設計記述の設計データの情報の対応をとり、記述とともにテスト困難な信号を表示装置で示す。テスト容易化後のハードウェア設計記述の候補を提示する提示部は、上記テスト容易化部が作成したハードウェア設計記述の候補と付加ポートや増加ハード量を表示装置で示す。該候補の記述の1つを選択する選択部は、設計者に複数のテスト容易化変換後の記述の内から1つの記述を選択するように促し、複数の候補から一つを選択する。
【0018】
本発明の第2の様相によるテスト系列生成装置においては、検証用テスト系列生成部が、まずRTL記述格納部に格納されている修正前のRTL記述からデータの転送にともなう入力及び出力の信号が観測される場所及び時刻やレジスタが割りつく信号の観測場所及び時刻の情報を抽出し、この情報と修正前RTL検証用テスト系列格納部の修正前のRTL記述の検証用テスト系列から入力及び出力の期待値を得て、該生成部内のデータ処理を行うテーブルに前述の観測場所及び時刻、期待値の情報を登録する。検証用テスト系列生成部は、前記テーブル内のデータを、修正情報格納部に入力されたRTL記述の実行ステートの変更やステートやレジスタの増減、機能的には等価な別の記述に記述を修正する等のRTL記述の修正情報によって変更し、修正後RTL記述の検証用テスト系列を生成する。さらに該検証用テスト系列生成部は生成した修正後のRTL記述に対応した検証用テスト系列を修正後RTL検証用テスト系列格納部に格納する。
【0019】
【実施例】
図1は、本実施例の第1実施例によるテスト容易化設計装置の構成を示すブロック図である。本装置は、ハードウェア設計記述により表されたシステムの設計データを格納する格納部1と、テストが困難な箇所を探索する探索部2と、テスト困難な箇所のテストを容易化するテスト容易化部3と、テスト容易化変換の規則を格納したテスト容易化変換規則格納部4と、上記テスト容易化前の設計データをテスト容易化変換後のデータに置換する設計データの変換部5と、上記装置部分の生成した情報を表示または選択する表示選択部6及び表示装置とから構成される。
【0020】
上記表示または選択する表示選択部は、テストが困難な箇所をハードウェア設計記述上で提示する提示部7と、テスト容易化後のハードウェア設計記述の候補を提示する提示部8と、該候補の記述の1つを選択する選択部9とから構成される。
【0021】
ハードウェア設計記述により表されたシステムの設計データを格納する格納部1には、ポート名、信号名、信号同士の接続情報、プール演算、数値演算などの素子名、素子間の接続情報、条件文の条件の値、条件文のネフト情報や複数の文の塊をつけたラベル名等が格納してある。ここではVHDL(VHSIC Hardware Description Language )で記述したRTL記述を用いる。
【0022】
テストが困難な箇所を探索する探索部2の処理フローを図2を用いて説明する。図2の10と18は端子で処理の開始と終了を示す、11から17は処理を示す。上記設計データの格納部1からデータを取り込む(ステップ11)。シーケンシャル記述のデータが存在するかどうか判定する(ステップ12)。シーケンシャル記述が存在する場合は、信号値保持のためのレジスタを割付ける(ステップ13)。レジスタのデータ入力信号が入力ポートから制御できるかどうかを調べる(ステップ14)。レジスタのデータ信号がポートから伝搬する信号で制御できない場合、このレジスタの出力信号をテスト困難な信号として登録する(ステップ15)。全てのレジスタに対してステップ14の処理を繰り返す。
【0023】
テスト困難な信号名が設計データに存在するかどうか調べる(ステップ16)。存在しない場合は、レジスタにつけられたラベルを手がかりに設計記述に存在する信号と対応づけ再登録する(ステップ17)。対応づけができない場合はメッセージ出力する。ステップ17の処理を全てのテスト困難な信号についていって処理終了。またステップ14でテスト困難な信号の度合いを計算する。レジスタのデータ信号が他のレジスタに接続している場合の度数を1とし、レジスタの深さを度数とする。初期化入力のあるレジスタの場合は、テスト困難度を0としデータ入力から探索せず初期化入力から探索する。また着目しているレジスタのデータが自分の出力にのみつながっている場合の度数を無限大とする。ただしこのでは99999999とする。この困難度を示す値は上記信号名と対にして登録する(ステップ15)。
【0024】
テスト困難な箇所のテストを容易化するテスト容易化部3は、上記テストが困難な箇所の探索部2で登録された信号をもとにして、該信号の制御性または観測性を高める記述データに変換する。以下処理フローを図3に示す。19と24は開始と終了を表す端子である。設計データを取り込む(ステップ20)。本ステップは上記テスト困難な箇所の探索部に引き続いて処理を行う場合、すなわち既に取り込まれている場合には必要はない。テスト困難な信号名とテスト困難度を取り込む(ステップ21)。テスト容易化変換規則を取り込む(ステップ22)。テスト容易化変換規則の適用順序は任意に設定出来る。本規則については後で説明する。レジスタを初期化するための回路記述の生成、テストモード信号の入力ポートの生成を行う(ステップ23)。以上テスト困難な信号全てについて繰り返して終了。上記テスト容易化変換規則に則り他の変換が可能な場合には、他のテスト容易化変換規則に基づいて第2の記述の生成を行うことができ、適用するテスト容易化変換規則に代えることで、複数のテスト容易化後の記述候補が作成できる。
【0025】
テスト容易化変換の規則を格納したテスト容易化変換規則格納部4は、レジスタの初期化方式で格納されている。例えば以下の様な規則が格納してある。
【0026】
規則1:レジスタのデータ入力信号が、他のレジスタの出力信号で制御される場合でかつ後者のレジスタが初期化可能である場合には、テストモード時に後者のみを初期化し前者のレジスタを初期化しない。
【0027】
規則2:レジスタのデータ入力信号が、他のレジスタの出力信号で制御される場合でかつ後者のレジスタが初期化不可能な場合には、外部入力ポートを付加しテストモード時に後者のレジスタの出力信号の代わりに、該ポートを用いて外部信号で前者のレジスタを制御する。
【0028】
規則3:レジスタのデータ入力が外部ポートから直接制御できない場合は、テストモード時にレジスタの値を直接初期化する。
【0029】
テスト容易化前の設計データをテスト容易化変換後のデータに置換する設計データの変換部5は、テスト容易化変換の対象となった設計データを切り出して、新たに生成されたテスト容易化後の記述データを挿入する。
【0030】
テストが困難な箇所をハードウェア設計記述上で提示する提示部7は、テストが困難な箇所の探索部2で発見された信号名と、ハードウェア設計言語で設計されたシステムの設計データを用いて、表示装置に於いてハードウェア設計記述上のテスト困難な信号名の色を変えて表示する。またはハードウェア設計言語のコメント記述を用いて該信号を提示する。
【0031】
テスト容易化後のハードウェア設計記述の候補で提示する提示部8は、異なるテスト容易化変換規則に基づいて作成されたハードウェア設計記述と該記述の付加ポート数、増加ハード量や増加遅延時間を併せて表示装置を用いて提示する。
【0032】
該変換候補の記述の選択部9は、テスト容易化後のハードウェア設計記述の候補を提示する提示部8で提示された複数の記述の内から一つを設計者に選択するように促し、設計者の選択入力に従って1つの記述を選択する。
【0033】
次に図4のハードウェア設計記述を例に採って本発明の実施例を詳細に説明する。これはVHDL(IEEE標準のハードウェア設計言語)で機能設計された論理システムの一部で、(ここでは信号の宣言など説明に直接関係ない記述は省いてある)entityと称するキーワードで本システムの外部インターフェースが記述されている。入力ポートとしてCLKのinitial端子が宣言されている。ここでは出力ポートについては省略してある。architecture以下の記述はシステムの本体を記述するところで、2つのプロセス文b1とs1から構成される。processから以下endまでの文は順次処理され、プロセス文b1内のelse節のないif文で制御される信号代入文は、信号CLKをクロックとするレジスタによってCLKが’0’から’1’に立ち上がったときに右辺の信号A〜Dを左辺の信号O〜O4に取り込むことを示している。elseの状態のときには、信号O〜O4は1クロック前の値を保持する。さらに4つの信号代入文は、case文の条件信号stateの値によって選択される。プロセスs1は2ビットのカウンタの動作を記述したもので、初期設定信号initialが’0’の時stateの値を’00’にクリアする。それ以外の場合にはクロック信号CLKの立ち上がりで1加算する。
【0034】
ハードウェア設計記述により表されたシステムの設計データを格納する格納部1には、プロセスのラベル名b1,if文、if文の条件となる式、case文と制御入力できる信号名state,case文の制御信号と制御される信号代入文の情報が格納されており、条件信号stateが’00’のときに文25が対応するようになっている。また文25はターゲット信号がOで、ソース信号がAと格納されている。他の信号代入文も同様である。プロセスs1以下の文も同様に設計データ格納部1に格納されている。
【0035】
テストが困難な箇所を探索する探索部2は、まず図4の記述の設計データを取り込み、シーケンシャル部を含むので必要なレジスタを生成し、図5の記述から構成される設計データに変換する。クメック信号CLKが立ち上がらないときの信号O,O2,O3,O4の値を保持するためにレジスタO reg〜O4 regが生成される。REGはレジスタで、第1引き数はデータ出力で、第2引き数はデータ入力で、第3引き数はクロック入力である。2ビットカウンタもレジスタstate regを用いて構成される。ここでREGCは第4引き数の信号sig9が’0’のときに出力信号stateが’0’になる非同期レジスタである。次にレジスタに着目してレジスタの出力信号が制御可能かどうかを調べる。信号Oはレジスタの入力sig1につながり、sig1は信号Aと信号Oにつながっている。ここで信号Aは外部ポートにつながっているとすると、信号Aが代入される条件は信号stateが’00’になる必要があるので、信号stateをたどる。するとREGCにたどりつき、クリア信号sig9から入力をたどるとポートinitialにつながっている。(図5ではentityのポート宣言が記述されていないが図4と同じとする)初期化機能付きレジスタREGCまでトレースし、また本レジスタのクリア信号は外部信号につながっているのでここでトレースを中止する。信号Oのテストの困難度は制御レジスタの数すなわち1となる。同様に信号O2,O3,O4もテストの困難度が1のテスト困難な信号となる。信号stateは信号sig9によって外部から制御されるのでテスト困難とはしない。
【0036】
テスト困難な箇所の提示部7は、図6(a)の様に前記手段で発見された信号O,O2,O3,O4について、表示装置の画面上で信号名の存在する箇所の背景色を他の箇所と変えて表示する。図面でO,O2,O3,O4を囲む枠は背景色が他の部分とは違っていることを示す。また図6(b)の様にコメント記述を用いて「−−O2 is hard to test」と提示することもできる。
【0037】
次に、テスト容易化部3が、図4のVHDL記述のデータを上記規則2と3に基づいてテスト容易化変換するフローと、変換後のデータについて記述を用いて説明する。まず規則2に基づいたテスト容易化の例を図7を用いて説明する。図4の設計データとテスト困難な信号O,O2,O3,O4を取り込む。つぎにテスト容易化変換規則2を取り込む。本規則に基づきテストモード信号TMODE、信号stateの代わりの外部入力state pi(2ビット)の入力ポートを追加する。尚ここでin BITは1ビットの信号を生成すること意味し、inBIT (0−1)2ビットの信号を生成することを意味する。中間信号sig g1を生成し、テストモード信号で上記信号stateと信号state piをセレクトするif文を生成する。if文のthenの条件にはTMODE信号を1ビットの’1’を比較する式を割り付ける。また、それぞれの入力と信号sig g1を接続するデータ文を作成する。case文の入力の信号stateを信号sig g1に置換する。以上、記述上で変換するかのごとく説明してきたが、実際には設計データの内部データを加工して変換する。
【0038】
次に規則3に基づいた変換後のデータを図8を用いて説明する。これは、テスト困難な信号O,O2,O3,O4をテストモード時に初期化した記述である。テストモードTMODEのポートを追加し、if文にテストモードの条件を付加し、上記のテスト困難な信号に’0’を代入する文を生成する。また非常テストモード時elsif文で構成して以下図4と等しい動作記述データを生成する。
【0039】
テスト容易化後のハードウェア設計記述の候補の提示部8は、表示装置を用いて上記テスト容易化部で生成した設計データからハードウェア設計記述を表示する。図9は本提示部がテスト容易化後のハードウェア設計記述を表示した例を示す図である。本実施例では候補の記述を2つ表示している。さらに本装置は、付加されたポート数や変換信号数や信号のビット幅から。レジスタの初期化機能の付加やセレクトの付加によるハード量の増加と信号伝搬遅延時間の増加を評価値として表形式で提示する。
【0040】
上記変換候補の記述から1つを選択する選択部9は、上記評価値をもとに設計者がテスト容易化後のハードウェア設計記述を選択できる。表示されたテスト容易化後のハードウェアの設計記述の候補は番号を指定して選択する。図9のウィンドウ26の候補番号のSelectボタンをマウス等の指定装置でクリックして選択する。
【0041】
以上の説明では。レジスタの初期化の場合についてのみ説明してきたが、レジスタ以外の記憶素子やフィードバックループの記述についても対応できる。またテスト容易化変換規則として3つの場合を説明したが、他のテスト容易化手法についても対応できる。
【0042】
本実施例では、テスト容易化変換後のハードウェア設計記述の候補から1つを設計者が選択してしたが、設計者の介在なく評価関数が最小とする記述のデータを自動選択させることもできる。
【0043】
本実施例によればテスト困難な箇所とその既粉や困難な度合いがハードウェア設計記述上で認識でき、テスト容易化変換の規則に基づいて複数のテスト容易化後の記述が得られ、それぞれの特徴となる評価価値が与えられるので、設計者の目的とする基準で自由に選択できる。
【0044】
このようにしてテスト容易化設計の成されたシステムに対して、適当なテストパターンが容易に生成される。このテストパターンを用いてシミュレーションを行った結果、要求仕様を満たしていない場合には、設計変更が行われる。以下に説明する本発明の第2実施例によれば、この設計変更によるテストパターンの再度の作成は極めて効率的に行われる。即ち、新たにテストパターンを作り直すのではなく、変更に対応する部分のみを修正する方法を用いる。もちろん、シミュレーションの結果に基づく設計変更だけでなく、仕様そのものの変更や類似する別の仕様による新たな設計を行う場合にも有効である。
【0045】
以下に本発明の第2実施例を図面を参照して説明する。図10は、本発明の装置の構成を示すブロック図である。本発明の検証用テスト系列生成装置は、修正前のRTL記述を格納するRTL記述格納部31と、修正前の検証用テスト系列を格納する修正前RTL検証用テスエト系列格納部32と、RTL記述の修正の情報を格納する修正情報格納部33と、上記修正情報に基づいて修正後のRTL記述に対応した検証用テスト系列を生成する検証用テスト系列生成部34と、該検証用テスト系列格納部34で生成された検証用テスト系列を格納する修正後RTL検証用テスト系列格納35から構成される。
【0046】
次に、本実施例の検証用テスト系列と生成部34の動作を図11を示すフローチャートに従って説明する。RTL記述格納部31には修正前のRTL記述を、RTL検証用テスト系列格納部32には修正前のRTL記述の検証用テスト系列をそれぞれ格納している。
【0047】
検証用テスト系列生成部34は、先ずRTL記述の変更情報を得て修正情報格納部33に格納する(ステップ100)。修正情報の取り込み方法については後述する。次に検証用テスト系列生成部34は、修正前のRTL記述と検証用テスト系列から修正前のRTL記述の入力信号が初めて観測されるステート及び期待値の情報、出力信号が観測されるステート及び期待値の情報、データの転送に伴い記憶素子(レジスタ:以降レジスタと記す)の出力信号の観測されるステートの情報を各信号名とともに中間データを格納するためのテーブルを作成し、これ登録する(ステップ101)。ステップ100で得た修正情報を基に、このテーブルのデータを変換し(ステップ102)、修正により観測されなくなった信号のステート情報を消去する(ステップ103)。さらに、テーブルに登録された信号名で一度も観測されないものがあれば(ステップ104)、信号の情報をテーブル1から消去し(ステップ105)、修正後のRTL記述に対応した検証用テスト系列を作成する(ステップ106)。
【0048】
次に具体例を示して説明する。以下では図12(A)に示すRTL記述から、図12(B)に示すRTL記述に修正した場合を例にあげ、詳細に説明する。RTL記述格納部1にはデータの遷移的な転送の様子をVHDL(VHSIC Hardware Description Language )で記述したRTL記述、図12(A)及び図12(B)が格納されている。VHDLではデータをシンボリックなリテラルとして表現している。このデータを表すリテラルを信号と呼ぶが、外部入力及び外部出力のデータは特にポートと呼ぶ。データの転送はある信号から信号への値の移動として表現される。データ転送は、タイミングを取るクロックに同期して、process 文の中のwait文を境に区切られたステートを記述順に遷移して行われる。
【0049】
図12(A)のRTL記述は3ステートでデータの転送が実行され、同一ステートでデータを出力ポートz1,z2に行っていたが、時分割で出力を行うことにより図12(B)の記述のように共通の出力ポートzへ出力を行うようにRTL記述を修正している。図12(A)から図12(B)への変更は、ステート数は同じで信号の転送先の変更や、転送先の信号がデータの記憶を行うレジスタからデータの記憶を行わないターミナルへの変更、(例えば信号r2からt2への変更)が行われている例である。
【0050】
図13はRTL検証用テスト系列格納部2に格納されている図12(A)に対応する検証用テスト系列の一部の例である。検証用テスト系列を生成する設計言語により書かれた該検証用テスト系列は、対応するRTL記述のデータを表すのに必要なビット幅を持つ信号として、入力端子・出力端子が宣言されている。例えば、RTL記述で0から7の範囲の整数型として定義されたAはA.0,A.1,A.2の3ビットの信号として宣言されている。また、テスト系列(入力パタン及び期待値)は、TESTPATT;〜ENDTEST ;の間に書かれ、テスト系列の何番目の値がどの信号の値に対応するのかをASSIGN文で示している。図13のテスト系列は既に検証済みで、入力ポート及び出力ポートの期待値が正しいものであることは確認されている。
【0051】
ここで、図12(A)及び図13を基に図14の中間データを格納するテーブル1を作成するステップ101の詳細な処理フローを図15に示す。図14は検証用テスト系列生成のために必要な中間データのデータ構造を表にあらわしたもので、中間データはすべての観測したい信号について、観測するステートには“○”を、観測してはならないステートには“×”をそれぞれ記し、入力ポート及び出力ポートの観測するステートには期待値が信号名ごとに付加されている。図15の処理では、先ずRTL記述のデータの転送先の信号名r1,r2,z1,z2を検証用テスト系列生成部4のデータ処理を行うテーブルに登録する(ステップ200)。次にデータ転送の書かれているステートを認識し、登録された信号にステートの情報を与える(ステップ201)、ステートの認識は次のように行う。
【0052】
○データの転送がステートラベルで明らかに分けて記述してあるときには、
ステートラベルの番号をステート番号とする。
【0053】
○VHDLのようにステートが明らかに分けられていない場合、process 文中の wait文からwait文までかあるいはwait文からprocess 文の終わりまでを1ステートと見なし、通し番号をふりステートは番号とみなす。なお、wait文に書かれたwait条件となる信号はステート遷移を管理する信号であるとみなされるので、その信号をクロックとして認識する。
【0054】
このような方法でステートを認識すると、信号r1はステート1,信号r2及びr3はステート2、信号z1及びz2はステート3のステート情報を得る。またクロックとして信号CLKを認識する。ステートの情報を得たら、テーブル1に登録した信号の転送元の情報を該テーブルに登録し(ステップ202)、登録された信号が出力ポートであるのか(ステップ203)、レジスタであるのか(ステップ206)を調べる。ステップ203及びステップ206の判断は下記のように行う。
【0055】
(ステップ203)
#転送先の信号が出力ポートとして宣言されている場合は出力ポートとする。
【0056】
#信号の転送元はステートで生成されているが、ステート以外のところで
出力ポートと接続している信号は出力ポートとして扱う。
【0057】
(ステップ206)
#他のステートでデータの転送元として右辺に現れていればその信号はレジスタとする。
【0058】
#RTL記述が1ステートのみしかない場合のRTL記述の転送先の信号はレジスタになる。
【0059】
出力ポートである信号z1及びz2に出力の属性を与え(ステップ204)、登録済みのステート情報をもとに図13の検証用テスト系列の期待値(z1:’LHL’z2:’HHL’)を登録する(ステップ205)。
【0060】
レジスタである信号r1及びr2の属性をレジスタとする(ステップ206)。属性が出力ポートでもレジスタでもない信号はテーブル1から消去される(ステップ208)、次に入力ポートに関する処理を行う。RTL記述で入力信号として宣言された信号の信号名をテーブルに登録し(ステップ210)、ステップ201で認識された信号CLKにクロックであることを表す属性を与え(ステップ212)、それ以外の入力として宣言された。信号A,B,c1,c2の属性を入力とし、初めて観測されるステートの情報をテーブルに与える(ステップ213)。
【0061】
入力信号が初めて観測されるステートの認識する方法は、
(*1):RTL記述のデータの転送元である右辺の信号名を調べ、転送先の信号のステート情報を得る。
【0062】
(*2):(*1)で確認した信号名がステートの情報を持っていなければ、(*1)で得たステート情報を与える。
【0063】
テーブルの信号名がステート情報を持っていて、そのステート情報が(*1)で得たステート情報より遅く観測されるものであるならステート情報を(*1)のものに変更する。
【0064】
の手順を繰り返すことで行われ、信号A及び信号Bはステート1、信号c1はステート2、信号c2はステート3のステート情報を得る。この初めて観測されるステートの情報により、修正前検証用テスト系列の期待値を得る(ステップ214)。ステート情報を持たない、すなわち状態遷移を行うprocess において使用されないクロック以外の入力信号はテーブルから信号名を消去し(ステップ216)、修正前の検証用テスト系列からテスト系列のタイトル及びテストサイクルの情報を得て、テーブルに登録し(ステップ217)、検証用テスト系列生成のためのデータの抽出処理は終了する。
【0065】
次に記述の修正情報の与え方を詳しく説明する。修正情報は人手により入力するかあるいは修正前後のRTL記述から自動的に抽出することにより得られるものであるが、この例では人手で修正情報を与えることにする。図16は説明のため図12(A)から図12(B)への変更点をまとめたものである。これらの修正のあった記述の修正情報を図17に示すようにコマンド形式で与え、修正情報を修正情報格納部3に格納する(ステップ100)。
【0066】
ここでの修正情報とは、観測するレジスタもしくは出力ポートの変更や変更された転送先の信号に転送される右辺の情報や変更された転送先の信号の観測されるステートの情報をさし、これを転送先(左辺)の信号(chl)と転送元(右辺)の信号(chr)とわけて、ステートの情報及びRTL記述の変更内容を与えている。例えば、“chl(2)r2,t2”では、修正前のステート2の転送先r2が修正後のステート2の転送先t2に変更されたことを示している。また、“chl(3,2)Z1,Z”では、修正前のステート3で観測された転送先Z1が修正後はステート2で観測される転送先Zに変更されたことを示している。
【0067】
次にステップ102の詳細な処理フローを図19に示す。
【0068】
修正情報の“chl(2)r2,t2”はRTL記述の左辺(つまり信号の転送先)の情報で(ステップ300)、テーブル1に信号名が存在しないので(ステップ301)、信号t2が出力信号であるのか(ステップ302)、レジスタとなる信号である(ステップ303)のか調べる。出力ポートの判定は修正前の信号名の持つ属性が出力を示すものであるか否かで判断する。レジスタであるかの判定は、次の条件をすべて満たすものをレジスタとする。
【0069】
@1:RTL記述の左辺の変更により新たに生成された信号名である。
【0070】
@2:(@1)の信号名が他のRTL記述の右辺の修正情報にあらわれる。
【0071】
@3:その信号のステート情報が(@2)のステート情報と異なる。
【0072】
@4:信号の属性が出力ではない。
【0073】
すべての修正情報を上記の判断基準に照らすと、信号t2は出力信号でもレジスタとなる信号でもないので、ステップ305にいく。未処理の修正情報“chl(3,2)Z1,Z”が存在するので(ステップ305)、この修正情報の処理に移る。この修正情報も左辺に関する情報で、信号Zはテーブルに名前が存在しないので、修正前の信号Z1の属性を調べる(ステップ302)。信号Z1の属性が出力であるので、信号名Z1及び出力の属性、ステート情報(ステート2)、ステート2における期待値として修正前の信号Z1の期待値(’LLH’)をテーブルに登録する(ステップ312)。修正情報“chr(3,2)c2,c2”は右辺に関する情報で、信号c2はテーブルに信号名が存在し(ステップ306)、信号c2のステート情報に変更が必要であるので(ステップ307)、信号c2のステート情報をステート3からステート2に変更する(ステップ308)。
【0074】
ステップ307のステート情報の変更は、修正情報の入力ポートが初めて観測されるステートが、テーブルに登録されたステートよりも破約観測されるものである時に行われる。以上の処理を入力されたすべての修正情報に行い、テーブルのデータを変換し、修正により観測されなくなった信号のステート情報を消去する(ステップ103)。観測されなくなった信号r2,Z1,Z2の観測情報を消去し、一度も観測されない信号r2,Z1,Z2をテーブルから消去する(ステップ104,ステップ105)。ここで検証用テスト系列生成部4の行う1の検証用テスト生成の為のデータの作成が終了し、図18に示すテーブルが得られる。このテーブルの情報を基に、修正後のRTLに記述に対応する検証用テスト系列を生成する(ステップ106)。ステップ106の詳細な処理フローを図20に示す。
【0075】
先ずテーブル1のデータの属性が、入力あるいは出力であるである信号A、B、c1、c2、Zの各ステートで観測される値を、sset する(ステップ400)。属性が入力の信号では、観測情報を持たないステートは各ステートで観測される値を’X’(不定)とし、属性が出力の信号では、観測されるステートまでは各ステートで観測される値を’X’(不定)とし、観測されるステート以降は既に登録された期待値を各ステートの値として各信号に与える。
【0076】
とする。次に属性が“クロック”の信号CLKの各ステートの値を’P’(パルス信号)とする(ステップ401)。属性が“入力”、“出力”、“クロック”である信号A,B,c1,c2,Z,CLKの持つビットレンジの情報から信号を1ビットごとに展開する(ステップ402)。例えば、信号Bは、B.0,B.1,B.2となり、信号c1はc1.0,c1.1,c1.2となる。そして、ステッ400から402で得られた、検証用テスト系列の実データとなる図21に示すデータを、図22の処理により該検証用テスト系列の書式に形成し出力する(ステップ403)。ここで図22の処理を説明する。まずテーブルにあるタイトル及びテストサイクルに関するデータを“TITLE ”、“CYCLE ”の文字列の後に表示し(ステップ500)、属性が“クロック”、“入力”である信号CLK,A,B,c1,c2をそれぞれ属性ごとに、
“INPUT (1) A.0,A.1,A.2,,Bの信号並び,,・・;”
“INPUT (2) CLK;”
上記のように表示する(ステップ501)。属性が“出力”である信号Zについても、出力の通し番号はあらかじめ設定したものを使用して、“OUTPUT(7)Z.0,Z.1,Z.2;”の様に表示する(ステップ502)。次にテスト系列との対応関係を属性ごとに順番に、“ASSIGN CLK,,Aの信号名並びに,,・・;”の形で表示し(ステップ503)、続いて“TESTPATT;”、(ステップ503)の信号名の順番に対応するようなテスト系列、“ENDTEST ;”(ステップ504)、記述が終わりであることを示す“END ;”の順にを表示する(ステップ505)。こうして図23に示す修正後のRTL記述に対する検証用テスト系列が得られる。この一連の処理を与えられたいくつかのテスト系列について行い、検証用テスト系列を作成し、修正後検証用テスト系列格納部5に格納する。以上により、図12(A)の修正前RTL記述と図13の該記述に対する検証用テスト系列とRTL記述の修正情報から、図13に示す修正後のRTL記述に対する検証用テスト系列を得ることができることを示した。
【0077】
次に別の具体例を示して説明する。図24(A)のRTL記述から修正後のRTL記述、図24(B)に修正したときの例を説明する。図24(A)の記述は2ステートでデータの転送を行うのだが条件によって異なるデータの転送が起こる。修正後の図24(B)では関数を使用することによって修正前と同じデータの転送を1ステートで実現している。修正前RTL検証用テスト系列格納部2にはRTL記述修正前の検証用テスト系列が格納されている。ステップ101により図24(A)及び検証用テスト系列から抽出した入力ポート、出力ポートとなる信号の観測情報及び期待値とレジスタとなる信号の芯観測情報を表にした図を24に示す。この例ではデータの転送は2ステートで実行される。図24(A)から図24(B)への記述の修正情報の一覧を図26に示す。
【0078】
先ず、図26に示した記述の変更点の情報をもとに、修正情報を修正情報格納部3に取り込み(ステップ100)、入力ポートA,B,C0の初めて観測されるステートの情報及び期待値、
信号名A:ステート1、期待値:2;
信号名B:ステート1、期待値:3;
信号名c0:ステート2、期待値:4;
レジスタとなる信号r1,r2,r3の観測するステート情報、(ステップ203)の該評価基準に基づき出力ポートと認識される信号Tempのステート情報(ステート2)及び期待値(’LHH’)、テスト系列のタイトル(TEST2)、及びクロックサイクル(CYCLE:100)を得て、検証用テスト系列生成部4のテーブル1に登録する(ステップ101)。修正情報によるテーブル1のデータを変更するステップ102において、入力ポートである信号c0の観測情報をステート2からステート1に変更し(ステップ306,307,308)、ステップ206の該判断基準によりレジスタと判断される信号Tと信号Sは信号名と観測されるステート情報(ステート1)をテーブル1に登録される(ステップ303,304)。ところが信号Tは他の修正情報(“chl(2,1)Temp,T”)により出力信号と判断されるので(ステップ302)、ステップ309からステップ311の処理で改めて出力であることを示す属性及びステート情報、修正前信号Tempの持つ期待値(’LHH’)をテーブル1に登録する。
【0079】
次に修正により観測されなくなった信号r1,r2,r3,Tempのステート情報と修正前の信号c0のステート情報を消去し(ステップ103)、一度も観測されなくなった信号r1,r2,r3,Tempをテーブル1から消去する(ステップ104,105)。図27はこの処理によりテスト系列生成部4で作成された検証用テスト系列を生成するための信号の観測場所及び時刻と期待値のテーブル1のデータを示した図である。このテーブルのデータからステップ106の処理により、修正後のRTL基準に対応した検証用テスト系列を生成する。
【0080】
以上に示した実施例ではレジスタの観測されるステートの情報は使用されていないが、レジスタの期待値を含むようなテスト系列が与えられ、RTL記述の変更がそのレジスタへのデータの転送されるタイミングのみである場合には、レジスタの期待値を含むようなテスト系列を生成することもできる。
【0081】
【発明の効果】
本発明の第1の様相によれば次のような効果がある。先ず、テスト困難な箇所の探索が容易になるためテスト回路の設計時間が大幅に短縮される。また自動で探索を行うのでテストの困難な箇所の見落としがなくなる。さらにテスト容易化変換を自動に行うので人手で修正した場合に発生していたバグの混入がなくなる。テスト容易化のための回路仕様がハードウェア設計記述に残るため、設計データの一貫性が保たれ設計データの管理が容易になる。
【0082】
本発明の第2の様相によれば、RTL記述の修正情報及び修正前のRTL記述及び該記述に対応する検証用テスト系列から修正を施したRTL記述の検証用テスト系列を作成できるので、非常に高速に作成することができ、人手で行うことにより起こる誤ったテスト系列の作成をしないで済むので、信頼できるテスト系列を得ることができるだけでなく、設計期間の短縮にも効果がある。
【0083】
また、生成された検証用テスト系列と修正前のRTL記述にて対する検証用テス系列とを比較し、入力と出力のパターンが一致した場合、シミュレーションを行うことなく、修正後のRTL記述が機能的にもサイクル単位のタイミング的にも修正前のRTL記述と等価であることが確認できるという効果もある。
【0084】
さらに、生成した検証用テスト系列と修正前のRTL記述に対する検証用テスト系列を比較することで、シミュレーションを行う前に、修正したRTL記述において必要な値が得られるのに何サイクルかかるのかということや、値の観測されるタイミングが変化した様子を、人がテスト系列を見て判断することができる上に、テスト系列どうしのサイクル数を比較することで、それぞれの機能記述に対する性能が見積もれるという効果もある。
【図面の簡単な説明】
【図1】本発明によるテスト容易化設計装置の構成図。
【図2】テスト困難な箇所の探索処理フロー図。
【図3】テスト容易化部り処理フロー図。
【図4】変換前のハードウェア設計記述を説明する図。
【図5】レジスタ割付後のハードウェア設計記述を説明する図。
【図6】テスト困難な信号の表示を説明する図。
【図7】テスト容易化変換後のハードウェア設計記述の候補を説明する図。
【図8】テスト容易化変換後のハードウェア設計記述の候補を説明する図。
【図9】テスト容易化変換後の候補と評価値を説明する図。
【図10】本発明の第2実施例の構成を示す構成図。
【図11】検証用テスト系列生成部四における処理を示すフローチャート。
【図12】HDLで記述されたRTL記述の修正の様子を具体的に表す図。
【図13】図12(A)に対する検証用テスト系列を表した記述。
【図14】修正前RTL記述及び検証用テスト系列から抽出した観測情報及び期待値情報を表にした図。
【図15】検証用テスト系列生成部にRTL記述修正前のデータを与える処理を示すフローチャート。
【図16】具体例における変更点の一覧を表にした図。
【図17】修正情報格納部に修正情報を格納する様子をあらわす図。
【図18】テスト系列生成部において生成された検証用テスト系列を生成するためのデータを表にした図。
【図19】検証用テスト系列生成部4のテーブル1にある中間データを修正情報により変換する処理を示すフローチャート。
【図20】中間データから検証用テスト系列を生成する処理を示すフローチャート。
【図21】図20に示される処理で使用される検証用テスト系列の実データを表した図。
【図22】図21に示す実データを検証用テスト系列の書式に形成し、出力する処理フローチャート。
【図23】修正後のRTL記述に対応する検証用テスト系列を表した記述である。
【図24】VHDLで記述されたRTL記述の修正の様子を表す図。
【図25】修正前RTL記述及び検証用テスト系列から抽出した観測情報及び期待値情報を示す図。
【図26】具体例での変更点を示す図。
【図27】修正後RTL記述及び検証用テスト系列を生成するためのデータを示す図。
【符号の説明】
1 ハードウェア設計記述による設計データ格納部
2 テスト困難な箇所の探索部
3 テスト容易化部
4 テスト容易化変換規則格納部
5 設計データ変換部
6 表示選択部
7 テスト困難な箇所の提示部
8 テスト容易化変換候補提示部
9 候補選択部
31 レジスタ転送レベル記述格納部
32 修正前レジスタ転送レベル検証用テスト系列格納部
33 修正情報格納部
34 検証用テスト系列生成部
35 修正後レジスタ転送レベル検証用テスト系列格納部[0001]
[Industrial application fields]
The present invention relates to a test sequence generation apparatus and a testability design apparatus for a system designed in a hardware design language.
[0002]
[Prior art]
In the conventional logic system hardware design, logic synthesis has been actively performed as a solution to the problem of an increase in design man-hours due to advances in semiconductor technology. By using logic synthesis, a gate-level logic circuit corresponding to this is automatically synthesized from an RTL description (hardware design description based on a register transfer level).
[0003]
In such a design using logic synthesis, if there is an error in the RTL description, incorrect logic is synthesized, so verification with RTL is important. For verification of RTL descriptions, a designer manually creates verification test sequences for many RTL descriptions and performs verification using a function simulator. Normal design, such as when the simulation results at the gate level after logic synthesis do not meet the required specifications of circuit operation, speed, etc., or when the hardware resources used are changed or the design is changed. Then, it is necessary to modify the RTL description frequently. When the RTL description is changed, it is necessary to verify the corrected RTL description. However, the test sequence created previously may change the time at which the value is observed or the execution operation itself. I couldn't use it as it was, and I made a test series manually from the beginning.
[0004]
In this case, it is necessary to modify the synthesized logic circuit, and each time the RTL description is modified, it is necessary to manually create thousands or tens of thousands of verification test sequences from the beginning, and many verification test sequences. Since the creation of is manually performed, there is a high possibility that an erroneous test sequence will be created, and an increase in design time due to these causes has been a problem.
[0005]
Conventionally, in the design of large-scale logic systems, a method of describing system functions and operations in a hardware design language and then generating a logic circuit using a logic synthesizer has been used. In order to generate the test circuit, it is necessary for the designer himself / herself to design the functional operation of the test hardware at the functional operation design stage. For this reason, as the scale of the system increases, it takes much time to design the functional operation of the test circuit.
[0006]
On the other hand, when a circuit described in a hardware design language is logically synthesized, a register may be generated, and it is very difficult to describe a test while predicting the generated register. In addition, the designer has searched for an internal signal that is difficult to test while simulating, and has rewritten the hardware design description to initialize it. Since these operations were performed manually, it was possible to overlook parts that were difficult to test, and there was a risk that bugs could be introduced by changing the description.
[0007]
[Problems to be solved by the invention]
Therefore, the time required for designing the testability circuit using the hardware design language is increased, the design itself is very difficult, and it is difficult to meet the technical requirements that are usually generated.
[0008]
Therefore, a method for facilitating the test itself is required first.
[0009]
Therefore, according to the first aspect of the present invention, the design of the testability circuit using the hardware design language is prolonged, the difficulty of the testability design, the oversight of the difficult test part, and the description change. The purpose is to automate the testability design in the functional operation design in order to solve the bug mixture caused by.
[0010]
Also, when the RTL description is modified as in the prior art, it is highly likely that an erroneous verification test sequence will be created if a new verification test sequence is manually created each time correction is made. However, there is a problem that the reliability of the test series after correction is low, and in the case of performing functional design of a large-scale digital system in the conventional test series correction method for verification, the correction time is significantly increased and the design period is increased. Had brought.
[0011]
In view of the above, the object of the second aspect of the present invention is to reduce the time required to create a test sequence for verification accompanying correction of an RTL description, to eliminate errors due to manual correction, and to reduce the time required for functional design. It is an object of the present invention to provide a function-level verification test sequence generation device.
[0012]
[Means for Solving the Problems]
According to the first aspect of the present invention, the testability design device stores a design data of a system represented by a hardware design description, takes in the design data from the storage unit, and receives the design data. A search unit for searching for a difficult part included in the test by analyzing the design data;Including initialization of register values in test mode or addition of external input ports,A test facilitating conversion rule storage unit storing test facilitating conversion rules, and a test facilitating test for facilitating tests of difficult-to-test parts specified by the search unit based on the test facilitating conversion rules And a conversion unit that converts the design data as the test is facilitated. Preferably, the display selection unit includes a display selection unit that displays or selects information generated by the part, and the display selection part includes a presentation unit that presents a difficult-to-test part on the hardware design description, and a test facilitated conversion. A presentation unit for presenting candidate hardware design descriptions and a selection unit for selecting one of the candidate descriptions.
[0013]
According to the second aspect of the present invention, the test sequence generation device includes an RTL description storage unit that stores an RTL description, and an RTL verification test sequence storage that stores an RTL verification test sequence of an RTL description before correction. A correction information storage unit that stores correction information of the RTL description, a verification test sequence generation unit that generates a test sequence for verification of the corrected RTL description, and a verification test sequence generated by the generation unit Is composed of a post-correction RTL verification test sequence storage unit.
[0014]
According to the first aspect of the present invention, the test sequence generation device includes the specification description and the register transfer level based on the behavior level specification description of the logical system and the register transfer level description corresponding to the specification description. A correspondence creation unit that takes correspondence with the description and a test sequence generation unit that generates the test sequence data at the register transfer level based on the test sequence data for verifying the specification description.
[0015]
The test sequence generation circuit according to the second aspect of the present invention includes an RTL analysis unit that analyzes state transition information of an RTL description, and an RTL test sequence based on the state transition information generated by the RTL analysis unit. Test expression that changes the form of the test sequence by associating the test sequence processing unit that processes to the required number of steps and the facility variables and data types between the RTL description and behavior description based on the information in the behavior description Consists of a form change unit.
[0016]
[Action]
According to the first aspect of the present invention, in the storage unit that stores the design data of the system represented by the hardware design description, the element name after compiling the hardware design description and the connection information and description between the elements Stores data related to the statement. A search unit that searches for a location that is difficult to test generates an initial circuit using the design data and detects an uncontrollable signal or storage element. The test facilitator that facilitates testing of difficult-to-test parts takes in the signal and memory element information found by the search part of difficult-to-test parts and the testability conversion rules, and tests them from the design data. Create easy-to-use hardware design description data. The testability conversion rule storage unit that stores the basics of testability conversion stores conversion rules necessary for testability, that is, conversion rule application conditions, and newly generated ports, signals, and elements. A conversion unit that converts design data replaces design data before testability conversion with data after testability conversion.
[0017]
The presentation unit that presents a hard-to-test location on the hardware design description related to the display selection unit that displays or selects the information generated by the above part is a signal or register found by the search unit for the hard-to-test location. Information and the design data information of the hardware design description are shown, and a signal that is difficult to test is displayed on the display device together with the description. A presentation unit that presents candidates for hardware design descriptions after the test facilitating display shows the candidates for hardware design descriptions created by the test facilitating unit, additional ports, and an increased amount of hardware. The selection unit that selects one of the candidate descriptions prompts the designer to select one description from the plurality of descriptions after the testability conversion, and selects one from the plurality of candidates.
[0018]
In the test sequence generation apparatus according to the second aspect of the present invention, the verification test sequence generation unit first receives input and output signals associated with data transfer from the RTL description before correction stored in the RTL description storage unit. Information on the observed location and time and the observation location and time of the signal assigned by the register are extracted, and input and output from this information and the test sequence for verification of the RTL description before correction in the test sequence storage unit for RTL verification before correction Is obtained, and the information on the observation location, time, and expected value is registered in a table for data processing in the generation unit. The test sequence generator for verification modifies the data in the table to change the execution state of the RTL description input to the correction information storage unit, increase or decrease the state or register, and another description that is functionally equivalent The RTL description is modified according to the modification information of the RTL description, and a test sequence for verification of the modified RTL description is generated. Further, the verification test sequence generation unit stores the verification test sequence corresponding to the generated corrected RTL description in the corrected RTL verification test sequence storage unit.
[0019]
【Example】
FIG. 1 is a block diagram showing the configuration of the testability designing apparatus according to the first embodiment of the present embodiment. The apparatus includes a
[0020]
The display selection unit to display or select includes a
[0021]
The
[0022]
A processing flow of the
[0023]
It is checked whether or not a signal name that is difficult to test exists in the design data (step 16). If it does not exist, the label attached to the register is associated with the signal existing in the design description as a clue and re-registered (step 17). A message is output if it cannot be matched. The process of step 17 is completed for all signals that are difficult to test. In
[0024]
The
[0025]
The test facilitating conversion
[0026]
Rule 1: When the data input signal of a register is controlled by the output signal of another register and the latter register can be initialized, only the latter is initialized in the test mode and the former register is initialized. do not do.
[0027]
Rule 2: When the data input signal of the register is controlled by the output signal of another register and the latter register cannot be initialized, an external input port is added and the output of the latter register is output in the test mode. The former register is controlled by an external signal using the port instead of the signal.
[0028]
Rule 3: If the register data input cannot be directly controlled from the external port, the register value is directly initialized in the test mode.
[0029]
The design
[0030]
The
[0031]
The
[0032]
The conversion candidate description selection unit 9 prompts the designer to select one of a plurality of descriptions presented by the
[0033]
Next, the embodiment of the present invention will be described in detail by taking the hardware design description of FIG. 4 as an example. This is a part of a logical system that is functionally designed with VHDL (IEEE standard hardware design language), and a keyword called entity is used for this system. The external interface is described. The CLK initial terminal is declared as an input port. Here, the output port is omitted. The description below architecture describes the main body of the system and is composed of two process statements b1 and s1. Statements from process to end are processed sequentially, and the signal substitution statement controlled by the if statement without the else clause in the process statement b1 is changed from CLK '0' to '1' by the register using the signal CLK as a clock. It shows that the signals A to D on the right side are taken into the signals O to O4 on the left side when rising. In the else state, the signals O to O4 hold the values one clock before. Further, four signal substitution statements are selected according to the value of the condition signal state of the case statement. Process s1 describes the operation of a 2-bit counter. When the initial setting signal initial is "0", the value of state is cleared to "00". In other cases, 1 is added at the rising edge of the clock signal CLK.
[0034]
The
[0035]
The
[0036]
The
[0037]
Next, the
[0038]
Next, data after conversion based on
[0039]
The hardware design description
[0040]
The selection unit 9 that selects one from the descriptions of the conversion candidates can select the hardware design description after the test is facilitated by the designer based on the evaluation value. The displayed hardware design description candidate after test simplification is selected by specifying a number. The Select button of the candidate number in the
[0041]
In the above description. Although only the case of register initialization has been described, it is possible to deal with descriptions of storage elements other than registers and feedback loops. In addition, although three cases have been described as the test facilitating conversion rules, other test facilitating methods can be dealt with.
[0042]
In this embodiment, the designer selects one of the hardware design description candidates after the testability conversion, but it is also possible to automatically select the description data that minimizes the evaluation function without the designer's intervention. it can.
[0043]
According to the present embodiment, the hard-to-test part and its powder and difficulty level can be recognized on the hardware design description, and a plurality of descriptions after the test facilitation are obtained based on the rules of the test facilitation conversion. Since the evaluation value, which is a characteristic of, is given, it can be freely selected according to the criteria intended by the designer.
[0044]
In this way, an appropriate test pattern can be easily generated for a system that has been designed for easy testability. As a result of the simulation using this test pattern, if the required specifications are not satisfied, the design is changed. According to the second embodiment of the present invention described below, the test pattern is re-created by this design change very efficiently. That is, a method of correcting only the part corresponding to the change is used instead of newly creating a test pattern. Of course, this is effective not only for the design change based on the result of the simulation, but also for a new design based on a change in the specification itself or another similar specification.
[0045]
A second embodiment of the present invention will be described below with reference to the drawings. FIG. 10 is a block diagram showing the configuration of the apparatus of the present invention. The verification test sequence generation apparatus of the present invention includes an RTL
[0046]
Next, the test sequence for verification and the operation of the
[0047]
The verification test
[0048]
Next, a specific example will be described. Hereinafter, the case where the RTL description shown in FIG. 12A is modified to the RTL description shown in FIG. 12B will be described in detail. The RTL
[0049]
In the RTL description of FIG. 12A, data transfer is executed in three states, and data is sent to the output ports z1 and z2 in the same state. However, the description of FIG. As described above, the RTL description is modified to output to the common output port z. The change from FIG. 12A to FIG. 12B is that the number of states is the same and the transfer destination of the signal is changed, or the transfer destination signal is changed from a register that stores data to a terminal that does not store data. This is an example in which a change (for example, a change from signal r2 to t2) is performed.
[0050]
FIG. 13 is an example of a part of the test sequence for verification corresponding to FIG. 12A stored in the test
[0051]
Here, FIG. 15 shows a detailed processing flow of
[0052]
○ When data transfer is clearly divided by state label,
The state label number is the state number.
[0053]
○ If the state is not clearly divided as in VHDL, the state from the wait statement to the wait statement in the process statement or from the wait statement to the end of the process statement is regarded as one state, and the serial number is assigned as the state. Note that a signal serving as a wait condition written in a wait statement is regarded as a signal for managing state transitions, so that the signal is recognized as a clock.
[0054]
When the state is recognized in this way, the signal r1 is
[0055]
(Step 203)
#If the signal of the transfer destination is declared as an output port, it is set as an output port.
[0056]
#The signal transfer source is generated in the state, but it is not in the state.
A signal connected to the output port is treated as an output port.
[0057]
(Step 206)
# If it appears on the right side as the data transfer source in another state, the signal is a register.
[0058]
When the #RTL description has only one state, the transfer destination signal of the RTL description is a register.
[0059]
Output attributes are given to the signals z1 and z2 which are output ports (step 204), and the expected value of the test sequence for verification in FIG. 13 based on the registered state information (z1: 'LHL'z2:' HHL ') Is registered (step 205).
[0060]
The attributes of the signals r1 and r2, which are registers, are used as registers (step 206). A signal whose attribute is neither an output port nor a register is erased from the table 1 (step 208), and then processing related to the input port is performed. The signal name of the signal declared as the input signal in the RTL description is registered in the table (step 210), and the attribute indicating that it is a clock is given to the signal CLK recognized in step 201 (step 212). Was declared as The attributes of the signals A, B, c1, and c2 are input, and information on the state observed for the first time is given to the table (step 213).
[0061]
The way to recognize the state where the input signal is observed for the first time is
(* 1): The signal name on the right side that is the transfer source of the data in the RTL description is checked, and the state information of the transfer destination signal is obtained.
[0062]
(* 2): If the signal name confirmed in (* 1) does not have state information, the state information obtained in (* 1) is given.
[0063]
If the signal name in the table has state information and the state information is observed later than the state information obtained in (* 1), the state information is changed to that in (* 1).
[0064]
The signal A and the signal B are in
[0065]
Next, how to give description correction information will be described in detail. The correction information is manually input or obtained by automatically extracting from the RTL description before and after the correction. In this example, the correction information is given manually. FIG. 16 summarizes the changes from FIG. 12 (A) to FIG. 12 (B) for explanation. The correction information of the description with these corrections is given in a command format as shown in FIG. 17, and the correction information is stored in the correction information storage unit 3 (step 100).
[0066]
The correction information here refers to information on the right side that is transferred to the changed register or output port to be observed, the changed transfer destination signal, or the observed state information of the changed transfer destination signal, This is divided into a transfer destination (left side) signal (chl) and a transfer source (right side) signal (chr), which give state information and RTL description changes. For example, “chl (2) r2, t2” indicates that the transfer destination r2 in
[0067]
Next, the detailed processing flow of
[0068]
The correction information “chl (2) r2, t2” is information on the left side of the RTL description (that is, the signal transfer destination) (step 300), and since the signal name does not exist in table 1 (step 301), the signal t2 is output. Whether it is a signal (step 302) or a signal to be a register (step 303). The output port is determined based on whether the attribute of the signal name before correction indicates output. The determination as to whether or not a register is a register that satisfies all of the following conditions.
[0069]
@ 1: Signal name newly generated by changing the left side of the RTL description.
[0070]
@ 2: The signal name of (@ 1) appears in the correction information on the right side of other RTL descriptions.
[0071]
@ 3: The state information of the signal is different from the state information of (@ 2).
[0072]
@ 4: The signal attribute is not output.
[0073]
If all the correction information is compared with the above criteria, the signal t2 is neither an output signal nor a register signal. Since unprocessed correction information “chl (3, 2) Z1, Z” exists (step 305), the process proceeds to the processing of the correction information. This correction information is also information on the left side, and since the signal Z has no name in the table, the attribute of the signal Z1 before correction is checked (step 302). Since the attribute of the signal Z1 is output, the signal name Z1 and the output attribute, state information (state 2), and the expected value ('LLH') of the signal Z1 before correction are registered in the table as expected values in state 2 ( Step 312). The correction information “chr (3,2) c2, c2” is information on the right side, and the signal name of the signal c2 exists in the table (step 306), and the state information of the signal c2 needs to be changed (step 307). The state information of signal c2 is changed from
[0074]
The change of the state information in step 307 is performed when the state in which the input port of the correction information is observed for the first time is observed to be broken rather than the state registered in the table. The above processing is performed on all the input correction information, the table data is converted, and the state information of the signal that is no longer observed due to the correction is deleted (step 103). The observation information of the signals r2, Z1, and Z2 that are no longer observed is deleted, and the signals r2, Z1, and Z2 that have never been observed are deleted from the table (
[0075]
First, a value observed in each state of the signals A, B, c1, c2, and Z whose attribute of data in the table 1 is input or output is set (step 400). For signals with attribute input, states that do not have observation information have the value observed in each state as 'X' (undefined), and for signals with attribute output, values observed in each state up to the observed state Is set to 'X' (undefined), and after the observed state, the already registered expected value is given to each signal as the value of each state.
[0076]
And Next, the value of each state of the signal CLK having the attribute “clock” is set to “P” (pulse signal) (step 401). The signal is developed bit by bit from the bit range information of the signals A, B, c1, c2, Z, and CLK having the attributes “input”, “output”, and “clock” (step 402). For example, the signal B is B. 0, B. 1, B. 2 and the signal c1 becomes c1.0, c1.1, c1.2. Then, the data shown in FIG. 21, which is the actual data of the verification test sequence obtained in
"INPUT (1) A.0, A.1, A.2, B signal sequence, ..."
“INPUT (2) CLK;”
The display is performed as described above (step 501). The signal Z having the attribute “output” is also displayed as “OUTPUT (7) Z.0, Z.1, Z.2;” using the output serial number set in advance (step) 502). Next, the correspondence relationship with the test sequence is displayed in the form of “ASSIGN CLK, A signal name,...;” In order for each attribute (step 503), followed by “TESTPATT;”, (step 503) A test sequence corresponding to the order of signal names, “ENDTEST;” (step 504), and “END;” indicating that the description is complete are displayed in this order (step 505). In this way, a verification test sequence for the corrected RTL description shown in FIG. 23 is obtained. This series of processing is performed for a given number of test sequences, a verification test sequence is created, and stored in the corrected verification test
[0077]
Next, another specific example will be shown and described. An RTL description after modification from the RTL description in FIG. 24A will be described, and an example in the case of modification in FIG. 24B will be described. In the description of FIG. 24A, data transfer is performed in two states, but different data transfer occurs depending on conditions. In FIG. 24B after correction, the same data transfer as before correction is realized in one state by using a function. The pre-correction RTL verification test
[0078]
First, based on the information on the change point of the description shown in FIG. 26, the correction information is taken into the correction information storage unit 3 (step 100), and the information and expectation of the state observed for the first time of the input ports A, B, C0. value,
Signal name A:
Signal name B:
Signal name c0:
State information observed by signals r1, r2, and r3 serving as registers, state information (state 2) and expected value ('LHH') of signal Temp recognized as an output port based on the evaluation criteria of (step 203), test A series title (TEST2) and a clock cycle (CYCLE: 100) are obtained and registered in the table 1 of the verification test series generation unit 4 (step 101). In
[0079]
Next, the state information of the signals r1, r2, r3, and Temp that are no longer observed due to the correction and the state information of the signal c0 before the correction are deleted (step 103), and the signals r1, r2, r3, and Temp that are no longer observed are erased. Are deleted from the table 1 (
[0080]
In the embodiment described above, the information of the observed state of the register is not used, but a test sequence including the expected value of the register is given, and the change of the RTL description is transferred to the register. In the case of only timing, a test sequence including the expected value of the register can be generated.
[0081]
【The invention's effect】
The first aspect of the present invention has the following effects. First, since it becomes easy to search for places that are difficult to test, the test circuit design time is greatly reduced. In addition, since the search is automatically performed, there is no oversight of a difficult part of the test. In addition, since the test facilitating conversion is automatically performed, bugs that have occurred when manually correcting are eliminated. Since circuit specifications for ease of testing remain in the hardware design description, design data consistency is maintained and design data management is facilitated.
[0082]
According to the second aspect of the present invention, it is possible to create a test sequence for verification of the RTL description that has been corrected from the correction information of the RTL description, the RTL description before the correction, and the test sequence for verification corresponding to the description. Therefore, it is possible not only to create an erroneous test sequence caused by manual operation, but also to obtain a reliable test sequence and to shorten the design period.
[0083]
Also, the generated test sequence for verification and the test sequence for verification in the RTL description before correction are compared. If the input and output patterns match, the corrected RTL description can function without performing simulation. In addition, there is also an effect that it is possible to confirm that it is equivalent to the RTL description before correction in terms of cycle unit timing.
[0084]
Furthermore, by comparing the generated test sequence for verification and the test sequence for verification with respect to the RTL description before correction, how many cycles it takes to obtain the necessary value in the corrected RTL description before the simulation is performed. In addition, it is possible for humans to judge how the observed timing of values changes by looking at the test sequences, and by comparing the number of cycles between test sequences, the performance for each functional description can be estimated There is also an effect.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a testability designing apparatus according to the present invention.
FIG. 2 is a flowchart of a search process for a portion that is difficult to test.
FIG. 3 is a process flow diagram of a test facilitation unit.
FIG. 4 is a diagram for explaining a hardware design description before conversion.
FIG. 5 is a diagram for explaining a hardware design description after register allocation;
FIG. 6 is a diagram illustrating display of a signal that is difficult to test.
FIG. 7 is a diagram for explaining candidates for hardware design descriptions after test-enabling conversion.
FIG. 8 is a diagram for explaining candidates for hardware design descriptions after test-enabling conversion.
FIG. 9 is a diagram for explaining candidates and evaluation values after test-enabling conversion.
FIG. 10 is a configuration diagram showing the configuration of a second embodiment of the present invention.
FIG. 11 is a flowchart showing processing in the verification test
FIG. 12 is a diagram specifically showing a state of correcting an RTL description described in HDL.
FIG. 13 is a description showing a test sequence for verification with respect to FIG.
FIG. 14 is a table showing observation information and expected value information extracted from a pre-correction RTL description and a test sequence for verification;
FIG. 15 is a flowchart showing processing for providing data before RTL description correction to a verification test sequence generation unit;
FIG. 16 is a table showing a list of changes in a specific example.
FIG. 17 is a diagram showing how correction information is stored in a correction information storage unit;
FIG. 18 is a table showing data for generating a test sequence for verification generated by a test sequence generation unit.
FIG. 19 is a flowchart showing a process for converting intermediate data in the table 1 of the verification test
FIG. 20 is a flowchart showing processing for generating a test sequence for verification from intermediate data.
FIG. 21 is a diagram showing actual data of a test sequence for verification used in the processing shown in FIG.
FIG. 22 is a process flowchart for forming and outputting the actual data shown in FIG. 21 in a test sequence format for verification;
FIG. 23 is a description showing a test sequence for verification corresponding to the corrected RTL description.
FIG. 24 is a diagram showing a state of correcting an RTL description described in VHDL.
FIG. 25 is a diagram showing observation information and expected value information extracted from a pre-correction RTL description and a test sequence for verification;
FIG. 26 is a diagram showing changes in a specific example.
FIG. 27 is a view showing data for generating a corrected RTL description and a test sequence for verification;
[Explanation of symbols]
1 Design data storage unit based on hardware design description
2 Search part for difficult test points
3 Easy test section
4 Testability conversion rule storage
5 Design data converter
6 Display selection part
7 Presentation part of difficult test
8 Testability conversion candidate presentation section
9 Candidate selection part
31 Register transfer level description storage
32 Test sequence storage unit for register transfer level verification before correction
33 Correction information storage
34 Test series generator for verification
35 Test sequence storage for register transfer level verification after correction
Claims (1)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04287894A JP3640684B2 (en) | 1994-03-14 | 1994-03-14 | Test sequence generation device and testability design device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04287894A JP3640684B2 (en) | 1994-03-14 | 1994-03-14 | Test sequence generation device and testability design device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07254007A JPH07254007A (en) | 1995-10-03 |
| JP3640684B2 true JP3640684B2 (en) | 2005-04-20 |
Family
ID=12648306
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP04287894A Expired - Fee Related JP3640684B2 (en) | 1994-03-14 | 1994-03-14 | Test sequence generation device and testability design device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3640684B2 (en) |
-
1994
- 1994-03-14 JP JP04287894A patent/JP3640684B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH07254007A (en) | 1995-10-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7020856B2 (en) | Method for verifying properties of a circuit model | |
| US5282146A (en) | Test assistant system for logical design process | |
| US7421668B1 (en) | Meaningful visualization of properties independent of a circuit design | |
| JP2002073719A (en) | Circuit behavior model description generation method and logic design verification device | |
| US12339763B2 (en) | Automated test generation | |
| US7124070B2 (en) | Method of and apparatus for, and program for verifying equivalence between behavioral description and register transfer level description | |
| US5949993A (en) | Method for the generation of ISA simulators and assemblers from a machine description | |
| US6978231B2 (en) | Embedded hardware description language instrumentation | |
| Klemmer et al. | WAL: a novel waveform analysis language for advanced design understanding and debugging | |
| US7536288B2 (en) | Method, system and program product supporting user tracing in a simulator | |
| CN110442929A (en) | A method of the automatic example of chip system top layer is realized based on perl | |
| US20250103789A1 (en) | Techniques for modeling and verification of convergence for hierarchical domain crossings | |
| JP2000207440A (en) | Apparatus, method and storage medium for design verification of semiconductor integrated circuit | |
| US7813912B1 (en) | Profiling a hardware system generated by compiling a high level language onto a programmable logic device | |
| JP2008511894A (en) | Method and system for designing a structure level description of an electronic circuit | |
| US20020123875A1 (en) | Hierarchical processing of simulation model events | |
| JP4835859B2 (en) | State transition diagram creation device and state transition diagram creation method | |
| WO2004036463A9 (en) | Compiler and logic circuit design method | |
| CN116157799B (en) | Dynamic CDC Verification Method | |
| JP3640684B2 (en) | Test sequence generation device and testability design device | |
| US20020123873A1 (en) | Signal override for simulation models | |
| US20030046649A1 (en) | Model-based logic design | |
| US7216321B2 (en) | Pattern recognition in an integrated circuit design | |
| US8156395B2 (en) | Methods for generating test patterns for sequential circuits | |
| JP3373641B2 (en) | Test sequence generator |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041201 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050119 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080128 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110128 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120128 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |