(57)【要約】【課題】本発明はメモリテストパターン合成方法，装置及びプログラムに関し，ＶＨＤＬの知識や回路設計スキルがなくても，メモリのデータシートやメモリテストシーケンスを用意すれば簡単にＶＨＤＬ記述のメモリテストパターンを作成できることを目的とする。【解決手段】メモリテストパターン合成の対象とするメモリのピン情報，動作仕様，テストシーケンス及びアドレス情報の各データを設定して格納し，ピン情報，テスト用記述データ格納部の各データを解析してステート内の各信号の論理を決定した中間データを作成し，各コマンドやメモリのパラメータに対応したＶＨＤＬ回路データを格納したＶＨＤＬテンプレートを予め設け，中間データによりＶＨＤＬテンプレートのパラメータを設定し，ＶＨＤＬ記述のメモリテストパターンを合成するよう構成する。【選択図】図１
2006038629.tif 000002
【特許請求の範囲】
【請求項１】
メモリテストパターン合成の対象とするメモリのピン情報，動作仕様，テストシーケンス及びアドレス情報の各データを設定して格納し，
前記ピン情報，テスト用記述データ格納部の各データを解析してステート内の各信号の論理を決定した中間データを作成し，
各コマンドやメモリのパラメータに対応したＶＨＤＬ（ベリー・ハイスピード・インテグレーテッド・ハードウェア・デスクリプション・ランゲージ）回路データを格納したＶＨＤＬテンプレートを設け，前記中間データにより前記ＶＨＤＬテンプレートのパラメータを設定することにより，ＶＨＤＬ記述のメモリテストパターンを合成することを特徴とするメモリテストパターン合成方法。
【請求項２】
請求項１において，
前記メモリのピン情報，動作仕様，テストシーケンス及びアドレス情報の各情報は，メニュー表示された各項目を選択し，選択された項目に対して選択可能なパラメータを表示するか，数値を入力するかの何れかにより設定することを特徴とするメモリテストパターン合成方法。
【請求項３】
請求項１において，
前記メモリのピン情報，動作仕様，テストシーケンス及びアドレス情報の解析結果である中間データとして，メモリテストパターンの中間データとして，メモリ制御コマンドの有無，使用回数，順番，メモリ制御信号の変化タイミング，アドレスのカウントアップまたはカウントダウンの種別，データ幅，信号名，信号属性等の情報を求めることを特徴とするメモリテストパターン合成方法。
【請求項４】
メモリテストパターン合成の対象とするメモリのピン情報，動作仕様，テストシーケンス及びアドレス情報の各データが設定されたテスト用記述データ格納部と，
前記テスト用記述データ格納部の各データを解析してステート内の各信号の論理を決定した中間データを生成するテスト情報解析部と各コマンドやメモリのパラメータに対応したＶＨＤＬ回路データを格納したＶＨＤＬテンプレート及び前記中間データを前記ＶＨＤＬテンプレートと組み合わせることによりＶＨＤＬ記述のメモリテストパターンを合成するＶＨＤＬ合成部を備えた自動生成部と，
を備えたことを特徴とするメモリテストパターン合成装置。
【請求項５】
メモリテストパターンを合成するためにコンピュータを，
メモリテストパターン合成の対象とするメモリのピン情報，動作仕様，テストシーケンス及びアドレス情報の各データを設定したファイルを入力する手段，
前記ピン情報，テスト用記述データ格納部の各データを解析してステート内の各信号の論理を決定した中間データを作成する手段，
各コマンドやメモリのパラメータに対応したＶＨＤＬ（ベリー・ハイスピード・インテグレーテッド・ハードウェア・デスクリプション・ランゲージ）回路データを格納したＶＨＤＬテンプレートのデータと前記中間データとから前記ＶＨＤＬテンプレートのパラメータを設定することにより，ＶＨＤＬ記述のメモリテストパターンを合成する合成手段，
として機能させることを特徴とするメモリテストパターン合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＶＨＤＬ記述によるメモリテストパターン合成方法，装置及びプログラムに関する。
【背景技術】
【０００２】
メモリテストの技術において，従来はストアードプログラム方式が採用されている。その方式によるシステムでは，テストアセンブラ言語でテストパターンのアルゴリズムを記述し，アセンブラにかけてテストプログラムを生成し，そのテストプログラムをテスタ内のメモリに格納し，格納されたプログラムはテストのパターンプロセッサによって読み出され，テストパターンプロセッサは読み出された数値がテスタのどのような命令であるのかを解析してテストパターンを生成する。生成されたテストパターンをインタフェースにより，被試験体に対応したアクセスプロトコルで被試験体に印加する。
【０００３】
また，従来のテスト回路システムには，ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ：ザイリンクス社の登録商標）を用い，ＦＰＧＡにプログラムデータを入力して，所定のテストパターンを発生させ，試験回路を試験するようにしたものもある。
【０００４】
これらの何れの方式でも，ハードウェアのアーキテクチャが固定になっており，テスト信号の入出力部の信号アサインが固定になっており，被試験体とのインタフェース部の結線が複雑になるという問題がある。
【０００５】
近年のメモリ素子はアクセスプロトコルが複雑で動作速度が非常に高速になっており，テスタとして動作速度の向上，多品種の複雑なアクセスプロトコルに対応するためにフェッチサイクルによって起こる動作遅延の改善として独自の専用ＬＳＩを開発したり，多品種の被試験体に対応するためにインタフェース部を内蔵させてセレクトしたり，インタフェース部自体を治具上に実装する等で対処することにより，システムが複雑で大型化している。
【０００６】
このような課題に対応するため，複数の被試験回路の何れかを選択して試験することができる試験装置を提供することを目的として提案された構成を図１３に従来例の構成として示す（特許文献１参照）。
【０００７】
図１３に示す従来例の構成において，５０は被試験回路へのテスト回路データを作成するテスト回路データ発生部，５１は被試験回路のテストパターンを発生するＰＧＡ（プログラマブル・ゲート・アレイ），５２はインタフェース部，５３はメモリ等の被試験回路，５４はデータ線，制御信号線，電源線，タイミング信号線等で構成するバス，５５はＣＰＵを用いた制御部である。被試験回路５３からテスト回路データ発生部５０に被試験回路情報が与えられ，テスト回路データ発生部５０はこの被試験回路５３を試験するためのテストデータを作成する。このテスト回路データは，制御部５５に与えられ，制御部５５はテスト回路データ発生部５０からのテスト回路データと制御情報とを受けて，どの被試験回路５３を試験するかを決定する。被試験回路５３が決まると，対応するＰＧＡが決まる。この結果，決定されたＰＧＡ５１には，イネーブル信号がアクティブに設定され，その他のＰＧＡ５１にはイネーブル信号がノンアクティブに設定される。テスト回路データは選択されたＰＧＡ５１のみに与えられ，そのＰＧＡ５１は入力されたテスト回路データを受けて対応するテストパターンを発生し，インタフェース部５２を介して被試験回路５３に与えられる。被試験回路５３は与えられたテストパターンに基づいて動作し，その結果は制御部５５に与えられる。制御部５５は，試験結果を基に，被試験回路５３の良／不良を判定する。もし，テスト結果が不良であった場合，制御部５５は不良データを解析して被試験回路５３の動作不良の原因を究明する。
【０００８】
この従来例の構成に示す，メモリテストパターンを作成するには，ハード記述言語であるＶＨＤＬ（ベリー・ハイスピード・インテグレーテッド・サーキット・ハードウェア・デスクリプション・ランゲージ：Very high-speed integrated circuit Hardware Description language) 言語でメモリテストパターンを記述する必要があった。
【０００９】
従来のメモリモジュールテスタで使用するメモリテストパターンを作成するには，ＶＨＤＬでハードロジックを記述する必要があり，ＶＨＤＬ言語を使用した高速回路の開発スキルが必要であった。また，この開発作業はメモリテストパターンの種類毎に行なう必要があった。
【００１０】
図１４は従来のテストパターン開発のフローチャートである。最初にメモリモジュールのピンアサイン，動作仕様，メモリテストシーケンスの情報を収集し（図１４のＳ１），初期パターンやリード／ライトパターンのタイムチャートを作成する（同Ｓ２）。次にタイムチャートに基づいてＶＨＤＬで記述をし（同Ｓ３），このＶＨＤＬの記述内容をコンピュータにおいてシミュレーションして確認を行い（同Ｓ４），その論理内容を回路上で実現するための論理合成を行い（同Ｓ５），その論理機能をＦＰＧＡにより実現するための配置配線の設定データ（テストパターン）を作成する（同Ｓ６）。次に作成された設定データによりＦＰＧＡを設定して動作を実行することで実機検証を行う（図１４のＳ７）。この検証で良好な結果（予定された動作と一致）が得られたか判別し（図１４のＳ８），得られない場合はステップＳ３に戻り，メモリテストパターンの中の必要な箇所の修正（アドレス線，データ線，シーケンスの変更等をＶＨＤＬソースを変更して行う等の作業）をして同様の処理を繰り返し，良好な結果が得られた場合，メモリテストパターン（ＦＰＧＡの回路データ）が完成する（同Ｓ９）。
【００１１】
メモリモジュールの動作仕様の具体例として，ＳＤＲ−ＤＩＭＭ(Synchronous DRAM − Dual Inline Memory Module) の６４Ｍｂ（または１２８Ｍｂか，２５６Ｍｂ）について，次のような仕様がある。
【００１２】
動作周波数  : 112.5 MHz ＝ 8.88ns/１τ
CAS Latency : ３（CAS が出力されてからデータが読み出されるまでのクロック数）
Burst Length: ２（１つリード動作で出力されるデータ数）
ｔRCD  :20ns(min)   →３τ(26.64ns) （RAS が出力されてからCAS が出力されるまでの時間，τは１クロック周期) 
ｔRAS  :40ns(min)   →５τ(44.4ns)（RAS が出力されてからPrecharge が行われるまでの時間) 
ｔRP   :20ns(min)   →３τ(26.64ns) （Precharge から次のActiv コマンドまでの時間) 
tDPL,tRSC,tRC 等の各種のタイミングが規定されている。
【００１３】
また，メモリモジュールの動作モードを設定するモードレジストセット（ＭＲＳで表示）というコマンドにより，モードレジスタの各ビットＡ０〜Ａ１５に，バースト長，シーケンシャルモード，ＣＡＳの遅延，テストモードエントリビット等の各種のパラメータを規定するビットが割り当てられており，希望するメモリの動作モードに対応した初期設定値を対応するビットに設定する。
【００１４】
メモリモジュールの書込み（Write)動作のタイムチャートの例を図１５に示す。図１５に示すように，書込み動作の場合，ＲＡＳ（ロー・アドレス・ストローブ），ＣＳ（チップ・セレクト），ＲＡ（ロー・アドレス）がステート１のタイミングで発生し，その３クロック後に，ＣＡＳ（カラム・アドレス・ストローブ）とＣＳ，ＷＥ（ライト・イネーブル），ＣＡ（カラム・アドレス）及びＤＱ１，ＤＱ０（２つのアドレスに全データビット“１”と全データビット“０”を順に書込む）が発生し，上記したｔRCD ，ｔRAS ，ｔRPの各種のタイミングが図１５に示すように規定されている。
【００１５】
図１６はメモリのテストパターンシーケンスの例であり，マーチ(MARCH) パターンと呼ばれる。図１６の縦軸はアドレス（下端が最下位アドレス（０番地）で上端が上位アドレス（最大番地）を表し，横軸は時間の経過に対応する動作のサイクルを表す。
【００１６】
最初のａは初期化（Initial)を表し, ｂ．は先頭アドレスから上位方向（ＵＰ）へ順番に全データビット“０”と全データビット“１”を２つのアドレス単位で書込み（Ｗで表す）を行う動作を表し，ｃはｂにおいて書込みを行ったデータを下位から上位方向（ＵＰ）へ順番に読出して，エラーのチェックをして，読出したデータを反転して同じ上位方向へ書込みを行う動作を表す。ｄはｃにより書込まれたデータを上位から下位方向（ＤＮ：Down) に読出して，エラーのチェックをして，読出した内容を反転して書込む動作を表す。ｅはｄで書込んだデータを読出してチェックを行う動作を表す。
【００１７】
このように，(1) メモリモジュールの動作仕様，(2) 初期設定シーケンスから,(3)タイムチャート,(4)テストパターンシーケンスを作成して, ＶＨＤＬでメモリテストパターンを記述するという手順で作成していた。
【００１８】
また，テスタ言語で記述されているテスト対象の半導体装置に関するテストプログラムを解析して，実施しようとするテスト内容に応じたテスト回路（ＡＬＰＧ：Algorithmic memory Pattern Generator) の構成要素を抽出し, 不用構成要素を削除して，ＨＤＬ（Hardware Discription Language)により所望のテスト単位でのテストが可能な回路の記述を生成するようにした技術も知られている（特許文献２参照）。
【特許文献１】特開２００３−２４０８２８号公報（図１）
【特許文献２】特開２００２−１２３５６２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上記した特許文献１や特許文献２の技術によればメモリ等の半導体装置のテストパターンをユーザが作成するには，ハード記述言語であるＶＨＤＬ言語を使用した高度な回路開発スキルが必要であった。しかし，ＶＨＤＬ言語での回路開発スキルの習得には最低１ヶ月以上必要であり，高速回路の開発スキルの習得にも数ヶ月の期間が必要である。また，アドレス線／データ線の本数変更やテストシーケンス変更などといったメモリテストパターン修正作業は，ＶＨＤＬソースの変更箇所が広範囲にわたり，かつ単純作業の部分が多く，４Ｈ（時間）〜８Ｈ程度の工数がかかっていた。これらの問題点によりユーザへは大きな負担がかかっていた。
【００２０】
本発明はＶＨＤＬ言語の知識や高速回路設計スキルがなくても，メモリのデータシートやメモリテストシーケンスを用意すれば簡単にＶＨＤＬ記述のメモリテストパターンを作成できるメモリテストパターン合成方法，装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
図１は本発明の原理構成を示す図である。図中，１はテスト用記述データ格納部，１ａはピン情報格納部，１ｂは動作仕様格納部，１ｃはテストシーケンス格納部，１ｄはアドレス情報格納部，２は自動生成部，２０はテスト情報解析部，２１はＶＨＤＬ合成部，２ａは中間データである解析データを格納する解析データ格納部，２ｂは中間データであるタイミング解析後のテストシーケンスを格納する解析後のテストシーケンス格納部，２ｃはメモリテストのコマンドやパラメータのひな形に対応したＶＨＤＬ回路データ（テンプレート）が格納されたＶＨＤＬテンプレート格納部，３ａは生成されたピンデータ，３ｂは生成されたＶＨＤＬデータ，３ｃはＦＰＧＡの回路データである。
【００２２】
本発明はメモリの動作仕様やテストシーケンス，アドレス情報等を予め用意してから，ＶＨＤＬのテストパターンを記述していくプロセスに着目して，ユーザがメモリテストに必要な情報をメニュー選択又は記述するだけで，自動生成部において，情報を解析してＶＨＤＬの回路のテンプレートと組み合わせてＶＨＤＬ記述のメモリテストパターンを合成させるようにした。
【００２３】
ユーザによりメモリのピン情報（アドレス線，データ線，コントロール線の信号名とピン番号の対応等）をメニュー選択や記述によりピン情報格納部１ａに格納し，動作仕様もメニュー選択や記述により動作周波数，接続バッファ（ドライバ／レシーバ），タイミングスペック（ＣＡＳLatency ，tRCD,tRAS,tRP,tRC,tDPL,tRSC 等の値，リフレッシュサイクル),バーストレングス, ＭＲＳ（モードレジストセット）設定値，コマンドオペレーション等を設定して動作仕様格納部１ｂに格納する。更に，テストシーケンスとして，メモリのテスト動作のタイミングは各コマンドに対応して解析して各種信号（ＣＡＳ，ＲＡＳ，ＷＥ等）が発生するシーケンスをメニュー選択や記述により設定して，テストシーケンス格納部１ｃに格納し，更にメモリのアドレス（ＲＡＳアドレス，ＣＡＳアドレスの割り付け，バンクアドレス割り付け等）をメニュー選択や記述により設定してアドレス情報格納部１ｄに格納する。
【００２４】
自動生成部２では，最初にテスト情報解析部２０において，各格納部１ａ〜１ｄを解析することで動作仕様や動作周波数からステート数を計算し，ステート内の各信号線の論理についても動作仕様と動作周波数を基に決定し，データを中間データとして解析データ格納部２ａに格納し，タイミング解析後のテストシーケンスを中間データとして作成し，テストシーケンスのタイミング解析のレポートファイルとして解析後のテストシーケンス格納部２ｂに格納する。なお，この解析後のテストシーケンス格納部２ｂの内容はこの後の処理では使用しない（レポートファイルとして参照される）。
【００２５】
ＶＨＤＬテンプレート格納部２ｃには，予め各コマンドやメモリのパラメータに対応したＶＨＤＬ回路テンプレートを用意してあり，次にＶＨＤＬ合成部２１では，解析データ格納部２ａの中間データに基づいてＶＨＤＬテンプレート格納部２ｃの中から対応するテンプレートを用い，設定すべき情報を組み込むことでＶＨＤＬソースが合成される。この中には，メインソース（メモリ制御信号やデータ／アドレス制御信号），テストシーケンスや各種カウンタ，データ生成，比較回路，フェイルデータ，ＰＣへのインタフェース制御信号等の各種の信号やデータが含まれる。このＶＨＤＬ合成部２１からはピンデータ３ａ及びＶＨＤＬデータ３ｂが出力される。このピンデータ３ａとＶＨＤＬデータ３ｂから論理合成と配置配線の処理が行われてテストパターンをＦＰＧＡで発生させるための回路データ３ｃが合成される。
【００２６】
上記テストパターンの合成を行う自動生成部２のテスト情報解析部２０及びＶＨＤＬ合成部２１の機能をコンピュータのプログラムにより実行することにより実現することができる。
【発明の効果】
【００２７】
本発明により，ユーザがＶＨＤＬの知識や回路設計スキルがなくても，メモリのデータシート（ピン情報，動作仕様）とメモリテストシーケンスが用意できれば，簡単にＶＨＤＬ記述のメモリテストパターンを作成できる。この結果，従来のようにＶＨＤＬ言語や回路設計スキルを習得する時間をかけることなく，短時間の作業でメモリテストパターンを作成することができ，更にメモリテストパターンの編集時間も，従来はデータ幅やタイミングを変更するのに人手と時間が何時間も必要であったが，数分程度での簡単な操作で修正が可能となり大幅に作業時間を短縮することができる。
【発明を実施するための最良の形態】
【００２８】
図１に示すテスト用記述データ格納部１にピン情報格納部１ａ，動作仕様格納部１ｂ，テストシーケンス格納部１ｃ及びアドレス情報格納部１ｄを用意するが，これらの各情報は，ユーザにより画面を見ながら編集，入力することで作成される。
【００２９】
図２〜図４はテスト用記述データの構成例（その１）〜（その３）であり，ＳＤＲＡＭのメモリモジュールテストの場合のデータであり，図２のＡ．はピン情報（PIN.txt で表す：ピンテキスト情報），図２のＢ１．は動作仕様１（周波数，タイミング等) ，図３のＢ２．は動作仕様２（テスト条件）であり（ DEF.txtで表す) ，図４のＣ．はテストシーケンス（SEQ.txt で表す) ，図４のＤ．はアドレス情報(ADDR.txt で表す) である。
【００３０】
図２のＡ．のピン情報には，クロック線，アドレス線，データ線，コントロール線の各信号名とコネクタのピン番号の対応付けや属性（入力をＩ，出力をＯで表す）とで構成され，メニューに表示された各項目について複数の候補から選択したり，数値を入力することにより設定される。図２のＢ１の動作仕様１は動作周波数，ＣＡＳレーテンシイ(Latency),バーストレングス(Burst Length),tRCD,tRAS,tRP,tRC等のタイミングが設定され，メニューから選択したり，数値を入力することにより設定される。図３のＢ２の動作仕様２にはプリチャージ，リフレッシュ周期，ＭＲＳ設定値（Ａ０〜Ａ１４），コマンドオペレーション表（各コマンドに対するＣＳ，ＲＡＳ，ＣＡＳ等の信号状態）等が含まれ，これについてもメニュー選択または数値の入力により設定される。図４のＣ．はテストシーケンスが設定され，この例は「MARCH メモリテストパターン」について設定され，ＰＩＮ，ＷＡＩＴ，ＮＯＰ，ＤＥＳＬ等の各信号についてメニュー選択または入力により設定される。図４のＤ．のアドレス情報はＡＤ０〜ＡＤ１５で構成され，これらに対してＲＡＳアドレス，ＣＡＳアドレスが図に示すように設定される。
【００３１】
自動生成部（図１の２）の中のテスト情報解析部（図１の２０）では，アドレス及びデータの信号幅について解析を行うテスト情報解析１とテストシーケンスにおける各コマンドに対応するステート情報の解析（使用回数，ステート数，メモリ制御信号タイミング等）を行うテスト情報解析２の２つの処理が行われ，図５にテスト情報解析１の処理フローを示し，図６，図７にテスト情報解析２の処理フロー（その１），（その２）に示す。  
【００３２】
図５に示すテスト情報解析１の処理フローは，ピン情報格納部（図１の１ａ，図２のＡ）とアドレス情報格納部（図１の１ｄ，図４のＤ）を用いて実行される。最初に，ピン情報ファイル（PIN.txt ：図２のＡに対応）を解析し（図５のＳ１），その中からメモリのアドレス幅（M-AD: メモリアドレス) を解析する（同Ｓ２）。次に，データ幅（M-DQ: メモリのデータ幅) を解析し（図５のＳ３），ＤＱＳ（データストローブ信号）信号幅を解析し（同Ｓ４），ＣＳ（チップセレクト）信号幅（M-CS) を解析し（同Ｓ５）, アドレス情報ファイル(ADDR.txt)を解析する（同Ｓ６）。続いて，ロー（Row)アドレスの幅を解析し（図５のＳ７），続いてカラム（Column) アドレスの幅を解析し（同Ｓ８），更にバンクアドレスの幅を解析して（同Ｓ９），解析結果を構造体へ格納して（同Ｓ１０），テスト情報解析１を終了する。
【００３３】
テスト情報解析２の処理は，テストシーケンスファイル（SEQ.txt ）を解析し（図６のＳ１），固定信号があるか判別し（同Ｓ２），無い場合はステップＳ４に移行し，ある場合は固定信号情報を作成して（同Ｓ３），ウエイト（WAIT) サイクルがあるか判別する（同Ｓ４）。ウエイトサイクルが無いとステップＳ６に移行し，ある場合はウエイト・ステート情報の解析を行う（図６のＳ５）。この処理では，使用回数，ステート数算出，メモリ制御信号のタイミング決定を行う。次にエヌオーピー（ＮＯＰ：動作しない状態）サイクルがあるか判別し（図５のＳ６），無いとステップＳ８に移行し，ある場合はエヌオーピーステート情報解析を行う（同Ｓ７）。この処理でも，使用回数，ステート数算出，メモリ制御信号のタイミング決定を行う。次に，ディーイーエスエル（ＤＥＳＬ）サイクル（休止状態と同じ）があるか判別し（図６のＳ８），無い場合はＳ１０に移行する。この後，ステップＳ１０の全バンクプリチャージ（ALL-BANK-PRECHARGE: メモリが動作可能状態) かの判別，ステップＳ１２で自動リフレッシュ（AUTO-REFLESH) があるかの判別，ステップＳ１４でモードレジスタセット（ＭＲＳ）があるかの判別等の処理が行われ，ステップＳ１０，Ｓ１２，Ｓ１４のそれぞれにおいてＹＥＳと判定されると，それぞれのステート情報解析を行い，使用回数，ステート数算出及びメモリ制御信号のタイミング決定を行う。
【００３４】
続いて図７のステップＳ１６でライト（WRITE)があるかの判別を行い，ある場合はステップＳ１７〜Ｓ１９に示すように，ライトステート情報解析（使用回数，ステート数算出，メモリ制御信号タイミング決定），ＲＡＳ／ＣＡＳアドレスチェック（カウントアップ／カウントダウン／アドレス反転有無チェック後構造体へ格納），データ反転有無，バーストレングス，ＣＡＳレーテンシーチェック後構造体（内部メモリ）への格納（動作仕様ファイル：DEF.txt 参照）等の処理を実行する。
【００３５】
続いて，ステップＳ２０でリード（READ) があるかの判別を行い，ある場合はリードステート情報解析（図７のＳ２１），ＲＡＳ／ＣＡＳアドレスチェック（同Ｓ２２），データ反転有無，バーストレングス，ＣＡＳレーテンシーチェック後構造体（内部メモリ）への格納（動作仕様ファイル：DEF.txt 参照）の処理（同Ｓ２３）を行う。ステップＳ２４でテストシーケンスファイル（SEQ.txt)の最終行かを判別し，最終行の場合は解析結果の出力処理を行う（図７のＳ２５），この場合，解析結果を構造体へ格納し，タイミング解析レポートをステートファイル（STATE.txt)へ出力する。
【００３６】
タイミング解析の結果のステートテーブルの例を図８に示す。図８の例はコマンド毎に各ステート０〜８で使用する信号を表し，各信号はビット位置に対応付けられている。このテーブルは中間データとしてプログラム内部の構造体へ格納される。この例では，各コマンドについて，使用回数，ステート数，タイミングが設定されている。
【００３７】
図５〜図７の情報解析に求めた中間データ（構造体）とＶＨＤＬテンプレートを用いてＶＨＤＬ合成が実行される。ＶＨＤＬ合成は，図９に示すＶＨＤＬ合成の全体の処理フローにより実行され，図１０〜図１５には図９を構成する処理に対応したＶＨＤＬ合成１〜ＶＨＤＬ合成３の処理フローにより構成される。
【００３８】
ＶＨＤＬ合成は図９に示すように，解析した情報（構造体格納データ）とＶＨＤＬテンプレートを利用して，ＶＨＤＬソースを合成するもので，最初はＴＯＰ．ｖｈｄ（メモリのメインソースを表し，メモリ制御信号やデータ／アドレスの制御信号）の合成を開始すると（図９のＳ１），最初に，ＥＮＧ．ｖｈｄ（エンジンという名称の略称で，メモリのテストシーケンスと各種カウンタ，データの生成や，読出しデータの比較の動作）の合成を行う（図９のＳ２）。更に，ＤＡＴＡ．ｖｈｄ（メモリデータのチェックによりフェイル（誤り）時のデータ格納）の合成の処理を行い（図９のＳ３），続いて，ＶＭＥ．ｖｈｄ（パーソナルコンピュータからテスタのＶＭＥバスへのインタフェース変換制御）の合成を行い（同Ｓ４），ＶＨＤＬ合成を終了する。なお，ステップＳ１〜Ｓ３の各合成の詳細は後述する図１０〜図１２に示し，ステップＳ４のＶＭＥ．ｖｈｄの合成は，一部の可変となるデータを除いて大部分はテンプレートとして設けられた固定となるソース記述部分をコピーすることで合成され，詳細は図示省略される。
【００３９】
図１０のＶＨＤＬ合成１（図９のＳ２に対応）の処理フローでは，メモリのメインの制御関係を含むＴＯＰ．ｖｈｄの作成（テストパターン名，作成者名，日時出力，ライブラリ名出力）を行い（図１０のＳ１），最初にentity“TOP ”を出力する（図１０のＳ２）。ここではＶＨＤＬテンプレートへＭ−ＤＱ（メモリのデータ）とＭ−ＡＤ（メモリのアドレス）の範囲と固定ピン情報を編集して作成する。次にVirtex（XLINX 社製のFPGAの商品名) 用コンポーネントを作成し（図１０のＳ３），次にテストシーケンス関係のＥＮＧ用コンポーネントを作成する（同Ｓ４）。この処理では，使用するコマンドとステート及びＭ−ＤＱ（メモリのデータ）とＭ−ＡＤ（メモリのアドレス）の範囲，固定ピン情報，バーストレングス等の情報により作成する。続いて，ＶＭＥバスのコンポーネントを表すＶＭＥ用コンポーネントの作成（図１０のＳ５），フェイルデータを格納するためのＤＡＴＡ用コンポーネント作成（同Ｓ５）を行う（同Ｓ６）。この後，signal（信号）の作成（図１０のＳ７），ＩＢＵＦ，ＣＬＫＤＬＬ，ＢＵＦＧ，ＯＢＵＦＴ等の入出力マクロの作成（同Ｓ８），データ出力制御信号の作成（同Ｓ９），ＥＮＧ／ＶＭＥ／ＤＡＴＡ用マップを作成（同Ｓ１０），リフレッシュカウンタ用プロセス作成（同Ｓ１１），ＲＡＳ信号用プロセス作成（同Ｓ１２），ＣＡＳ信号用プロセス作成（同Ｓ１３），ＣＳ信号用プロセス作成（同Ｓ１４），ＷＥ信号用プロセス作成（同Ｓ１５），アドレス制御プロセス作成（同Ｓ１６），データ制御プロセス作成（同Ｓ１７）の処理が行われて，ＶＨＤＬ合成１が終了する。
【００４０】
次に図１１に示すＶＨＤＬ合成２（図９のＳ２に対応）の処理フローにより，テストパターン名，作成者名，日時出力，ライブラリ名を出力するＥＮＧ．ｖｈｄの作成を開始すると（図１１のＳ１），最初に，entity“ＥＮＧ”の出力を行う（図１１のＳ２）。なお，「entity」は回路ブロックと外部とのインタフェースを定義する。この処理では，ＶＨＤＬテンプレートへＭ＿ＤＱ（メモリデータ）とＭ＿ＡＤ（メモリアドレス）の範囲と固定ピン情報を編集して作成する。次に，architectureラベル（ここから回路の中身を定義することを表す）の作成とsignalの作成を行う。この処理では，データ幅，アドレス幅，使用コマンドとステート番号などにより条件設定をし，begin ラベル（ここから信号代入文，プロセス文などを記述する）を作成する（同Ｓ３）。NOP サイクル動作プロセスを作成し（図１１のＳ４），MRS(モードレジストセット) サイクル動作プロセスの作成をする（同Ｓ５）。この後，PRECHARGE サイクル動作プロセス（図１１のＳ６），REFRESH サイクル動作プロセス（同Ｓ７），WRITE サイクル動作プロセス（同Ｓ８），READサイクル動作プロセス（同Ｓ９），SYNCH （現在のステートの状態を保持しておく順序回路を記述する）ラベル作成（COMBINラベル作成：現在のステートの状態と外部入力信号の値から次のステートを決定する組み合わせ回路）（同Ｓ１０），メインステートマシン作成（ステート数分のステートを作成，ステータスの幅を設定，次ステートへの遷移条件設定）（同Ｓ１１），ＮＯＰカウンタ比較プロセス作成（同Ｓ１２），REFRESH カウンタ比較プロセス作成（同Ｓ１３），RAS アドレスカウンタ制御プロセス作成（同Ｓ１４）が行われる。更に，ＣＡＳアドレスカウンタ制御プロセス作成（図１１のＳ１５），READデータ取込みプロセス作成（同Ｓ１６），フェイル自動マスク制御プロセス作成（同Ｓ１７） READ データと期待値の比較プロセス作成（同Ｓ１８），フェイル発生信号作成プロセス作成を行って（同Ｓ１９），ＶＨＤＬ合成２を終了する。
【００４１】
図１２に示すＶＨＤＬ合成３（図９のＳ３に対応）の処理フローにより，DATA.vhdの作成（テストパターン名，作成者名，日時出力，ライブラリ名出力）を開始し（図１２のＳ１），最初に，entity“DATA”出力を行う（同Ｓ２）。この処理において，ＶＨＤＬテンプレートへＭ＿ＤＱ（メモリデータ）とＭ＿ＡＤ（メモリアドレス）の範囲と固定ピン情報を編集して作成する。次に，architectureラベルを作成（component 作成) して（図１２のＳ３），signal（データ幅，アドレス幅，バーストレングス数等により条件設定）を作成し（同Ｓ４），フェイル情報格納ＲＡＭ用マップ作成（同Ｓ５），フェイルデータＲＡＭ格納プロセス作成（同Ｓ６），フェイルアドレスＲＡＭ格納プロセス作成を行う（同Ｓ７）。更に，期待データＲＡＭ格納プロセスの作成（図１２のＳ８），フェイルＣＳデータＲＡＭ格納プロセスの作成（同Ｓ９）及びリードコマンド番号とステート番号により設定してフェイルステータスＲＡＭ格納プロセスを作成し（同Ｓ１０），このＶＨＤＬ合成３を終了する。
【図面の簡単な説明】
【００４２】
【図１】本発明の原理構成を示す図である。
【図２】テスト用記述データの構成例（その１）を示す図である。
【図３】テスト用記述データの構成例（その２）を示す図である。
【図４】テスト用記述データの構成例（その３）を示す図である。
【図５】テスト情報解析１の処理フローを示す図である。
【図６】テスト情報解析２の処理フロー（その１）を示す図である。
【図７】テスト情報解析２の処理フロー（その２）を示す図である。
【図８】タイミング解析の結果のステートテーブルの例を示す図である。
【図９】ＶＨＤＬ合成の全体の処理フローを示す図である。
【図１０】ＶＨＤＬ合成１の処理フローを示す図である。
【図１１】ＶＨＤＬ合成２の処理フローを示す図である。
【図１２】ＶＨＤＬ合成３の処理フローを示す図である。
【図１３】従来例の構成を示す図である。
【図１４】従来のテストパターン開発のフローチャートを示す図である。
【図１５】メモリモジュールの書込み動作のタイムチャートの例を示す図である。
【図１６】メモリのテストパターンシーケンスの例を示す図である。
【符号の説明】
【００４３】
１        テスト用記述データ格納部
１ａ      ピン情報格納部
１ｂ      動作仕様格納部
１ｃ      テストシーケンス格納部
１ｄ      アドレス情報格納部
２        自動生成部
２０      テスト情報解析部
２１      ＶＨＤＬ合成部
２ａ      解析データ格納部
２ｂ      解析後のテストシーケンス格納部
２ｃ      ＶＨＤＬテンプレート格納部
３ａ      生成されたピンデータ
３ｂ      ＶＨＤＬデータ
３ｃ      回路データ
【図１】
2006038629.tif 000003
【図２】
2006038629.tif 000004
【図３】
2006038629.tif 000005
【図４】
2006038629.tif 000006
【図５】
2006038629.tif 000007
【図６】
2006038629.tif 000008
【図７】
2006038629.tif 000009
【図８】
2006038629.tif 000010
【図９】
2006038629.tif 000011
【図１０】
2006038629.tif 000012
【図１１】
2006038629.tif 000013
【図１２】
2006038629.tif 000014
【図１３】
2006038629.tif 000015
【図１４】
2006038629.tif 000016
【図１５】
2006038629.tif 000017
【図１６】
2006038629.tif 000018