(57)【要約】【課題】個別にテストプログラムを作成しなくても、リニア用およびインターリーブ用のバーストアドレスを生成することのできるメモリテスタを提供する。【解決手段】実施形態のメモリテスタは、リニア演算レジスタ１、インターリーブ演算レジスタ２が、同一のテストプログラム中に記述されたリニア用演算変数Ｌ、インターリーブ用演算変数Ｉを個々に格納する。Ｌ／Ｉセレクタ３は、Ｌ／Ｉ選択信号の指示に従って、リニア演算レジスタ１の出力、インターリーブ演算レジスタ２の出力のいずれかを選択し、バーストアドレス演算変数Ｎとして、リニア用バーストアドレス発生回路１００およびインターリーブ用バーストアドレス発生回路２００へ入力する。【選択図】  図１
2012064284.tif 000002
【特許請求の範囲】
【請求項１】
ラップアドレスおよびバーストアドレス演算変数がそれぞれに入力されて、リニア用バーストアドレスを発生するリニア用バーストアドレス発生回路と、インターリーブ用バーストアドレスを発生するインターリーブ用バーストアドレス発生回路とを有するメモリテスタであって、
テストプログラムに記述されたリニア用演算変数を格納するリニア演算レジスタと、
前記テストプログラムに記述されたインターリーブ用演算変数を格納するインターリーブ演算レジスタと、
リニア用バーストアドレスの発生を指示されたときは前記リニア演算レジスタの出力を選択し、インターリーブ用バーストアドレスの発生を指示されたときは前記インターリーブ演算レジスタの出力を選択して、前記バーストアドレス演算変数として、前記リニア用バーストアドレス発生回路および前記インターリーブ用バーストアドレス発生回路へ入力するセレクタと
を備えることを特徴とするメモリテスタ。
【請求項２】
前記テストプログラムは、
ステップごとに、前記リニア用演算変数と前記インターリーブ用演算変数とがともに記述されている
ことを特徴とする請求項１に記載のメモリテスタ。
【請求項３】
請求項２に記載のテストプログラムをコンパイルするコンパイラであって、
前記テストプログラムに記述された前記リニア用演算変数および前記インターリーブ用演算変数をそれぞれ前記バーストアドレス演算変数へ変換するプリプロセス処理を行い、
リニア用バーストアドレスを発生させるための第１のオブジェクトファイルと、
インターリーブ用バーストアドレス発生させるための第２のオブジェクトファイルと
を生成することを特徴とするコンパイラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリテスタに関する。
【背景技術】
【０００２】
メモリデバイスの中には、ＳＤＲＡＭなどのように高速クロック信号に同期して動作するシンクロナスメモリデバイスがある。シンクロナスメモリデバイスでは、連続アクセスの高速化のために、メモリのリード／ライトがバースト方式で行われる。バースト方式では、同一ロウ・アドレス上のデータが、２、４、８ワード等のブロック単位で連続してリード／ライトされる。また、そのアクセスは開始アドレス（バーストアドレス）を与えるだけで、以降のアドレスは、メモリデバイス内部で自動的に生成される。そのアドレスの自動生成の方式には、リニア型およびインターリーブ型の２種類の方式がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−２６２７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、個別にテストプログラムを作成しなくても、リニア用およびインターリーブ用のバーストアドレスを生成することのできるメモリテスタを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリテスタは、リニア演算レジスタ、インターリーブ演算レジスタが、同一のテストプログラム中に記述されたリニア用演算変数、インターリーブ用演算変数を個々に格納する。セレクタは、選択信号の指示に従って、リニア演算レジスタの出力、インターリーブ演算レジスタの出力のいずれかを選択し、バーストアドレス演算変数として、リニア用バーストアドレス発生回路およびインターリーブ用バーストアドレス発生回路へ入力する。
【図面の簡単な説明】
【０００６】
【図１】本発明の第１の実施形態に係るメモリテスタの構成の例を示すブロック図。
【図２】リニア用バーストアドレス発生回路の構成の例を示す回路図。
【図３】インターリーブ用バーストアドレス発生回路の構成の例を示す回路図。
【図４】本発明の第１の実施形態に係るメモリテスタで実行されるテストプログラムの記述例。
【図５】図４に示したテストプログラムから生成されたリニア用バーストアドレスの例を示す図。
【図６】図４に示したテストプログラムから生成されたインターリーブ用バーストアドレスの例を示す図。
【図７】本発明の第２の実施形態に係るコンパイラの処理の流れを模式的に示す図。
【図８】本発明の第２の実施形態に係るコンパイラにより生成されたオブジェクトファイルを実行するメモリテスタの構成の例を示すブロック図。
【発明を実施するための形態】
【０００７】
従来、バースト方式のメモリデバイスをテストするメモリテスタには、リニア型およびインターリーブ型の２種類の方式に対応したバーストアドレスを発生させるため、リニア用バーストアドレス発生回路と、インターリーブ用バーストアドレス発生回路とが、それぞれ設けられている。
【０００８】
それぞれのバーストアドレス発生回路では、パターンジェネレータから出力されるアドレス値と、テストプログラムにより制御されるバーストアドレス制御レジスタに格納された値との間で、所定の論理演算が行われ、バーストアドレスが生成される。
【０００９】
したがって、従来、バーストアドレス制御レジスタの制御のため、テストプログラムは、リニア用と、インターリーブ用とを、個別に用意する必要があった。そのため、テストプログラムの作成に多大な時間を要する、という問題があった。
【００１０】
以下、本発明の実施の形態について図面を参照して説明する。なお、図中、同一または相当部分には同一の符号を付して、その説明は繰り返さない。
【００１１】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るメモリテスタの構成の例を示すブロック図である。
【００１２】
本実施形態のメモリテスタは、同一のテストプログラム中に記述されたリニア用演算変数Ｌ、インターリーブ用演算変数Ｉを個々に格納する、リニア演算レジスタ１、インターリーブ演算レジスタ２と、Ｌ／Ｉ選択信号の指示に従って、リニア演算レジスタ１の出力、インターリーブ演算レジスタ２の出力のいずれかを選択し、バーストアドレス演算変数Ｎとして、リニア用バーストアドレス発生回路１００およびインターリーブ用バーストアドレス発生回路２００へ入力するＬ／Ｉセレクタ３と、を備える。
【００１３】
Ｌ／Ｉセレクタ３は、Ｌ／Ｉ選択信号がリニア用バーストアドレスの発生を指示するときはリニア演算レジスタ１の出力を選択し、Ｌ／Ｉ選択信号がインターリーブ用バーストアドレスの発生を指示するときはインターリーブ演算レジスタ２の出力を選択する。
【００１４】
リニア用バーストアドレス発生回路１００は、ＰＧ（パターンジェネレータ）３００から出力されるラップアドレスＸと、Ｌ／Ｉセレクタ３から出力されるバーストアドレス演算変数Ｎとの間で、所定の論理演算を行う。同様に、インターリーブ用バーストアドレス発生回路２００は、ラップアドレスＸとバーストアドレス演算変数Ｎとの間で、所定の論理演算を行う。リニア用バーストアドレス発生回路１００の出力と、インターリーブ用バーストアドレス発生回路２００の出力は、セレクタ４００へ入力される。
【００１５】
セレクタ４００は、Ｌ／Ｉ選択信号がリニア用バーストアドレスの発生を指示するときはリニア用バーストアドレス発生回路１００の出力を選択し、Ｌ／Ｉ選択信号がインターリーブ用バーストアドレスの発生を指示するときはインターリーブ用バーストアドレス発生回路２００の出力を選択して、バーストアドレスＡとして出力する。
【００１６】
図２に、リニア用バーストアドレス発生回路１００の論理演算回路の例を示す。この例は、バースト長が４のときの回路である。この回路の論理演算は、論理式で示すと、
Ａ０＝Ｘ０．ＸＯＲ．Ｎ０
Ａ１＝Ｘ１．ＸＯＲ．Ｎ１．ＸＯＲ．（Ｘ０．ＡＮＤ．Ｎ０）
と表される。ここで、Ａ０、Ａ１は２ビットのバーストアドレスＡ、Ｘ０、Ｘ１は２ビットのラップアドレスＸ、Ｎ０、Ｎ１は２ビットのバーストアドレス演算変数Ｎを表す。また、．ＸＯＲ．は排他的論理和、．ＡＮＤ．は論理積を表す。
【００１７】
図３は、バースト長が４のときのインターリーブ用バーストアドレス発生回路２００の論理演算回路の例である。この回路の論理演算は、論理式で表すと、
Ａ０＝Ｘ０．ＸＯＲ．Ｎ０
Ａ１＝Ｘ１．ＸＯＲ．Ｎ１
と表される。
【００１８】
図４は、本実施形態のメモリテスタで実行されるテストプログラムの記述例である。ここでは、バースト長＝４を例にしており、ＬＭＡＸ（リニア用）、ＩＭＡＸ（バースト用）でバースト長を定義している。
【００１９】
各ステップには、ＰＧ３００に発生させるラップアドレスのアドレス値Ｘ、リニア用演算変数Ｌ、インターリーブ用演算変数Ｉが、それぞれ記述されている。なお、リニア用演算変数Ｌ、インターリーブ用演算変数Ｉについては、それぞれの変数を発生させる演算式が記述されている。
【００２０】
ここで、ＬＭＡＸ＝３、ＩＭＡＸ＝３と記述されているので、リニア用演算変数Ｌ、インターリーブ用演算変数Ｉの値は、それぞれ、０、１、２、３に限定される。限定の方法として、本プログラムでは、リニア用演算変数Ｌ、インターリーブ用演算変数Ｉの演算結果が‘４’となるときは、‘０’へ置換するものとする。例えば、Ｓｔｅｐ６のリニア用演算変数Ｌの値は、演算式Ｌ＝Ｌ＋１の演算結果がＬ＝４となるので、Ｌ＝０と置換される。
【００２１】
このテストプログラムをコンパイルしたオブジェクトプログラムを本実施形態のメモリテスタへ入力すると、各ステップのリニア用演算変数Ｌ、インターリーブ用演算変数Ｉが、リニア演算レジスタ１、インターリーブ演算レジスタ２へ、それぞれ格納される。本実施形態のメモリテスタは、リニア演算レジスタ１、インターリーブ演算レジスタ２に格納された値を用いて、リニア用バーストアドレス、インターリーブ用バーストアドレスを生成する。
【００２２】
図５に、図４のテストプラグラムから生成されたリニア用バーストアドレスの例を示す。リニア用バーストアドレスを発生させる場合、Ｌ／Ｉ選択信号の指示により、Ｌ／Ｉセレクタ３は、バーストアドレス演算変数Ｎとしてリニア演算レジスタ１の出力を選択し、セレクタ４００は、バーストアドレスＡとしてリニア用バーストアドレス発生回路１００の出力を選択する。
【００２３】
図５（ａ）には、各ステップのラップアドレスのアドレス値Ｘおよびバーストアドレス演算変数Ｎ（＝リニア用演算変数Ｌ）の値と、セレクタ４００から出力されるバーストアドレスＡ（リニア用バーストアドレス）の関係を示す。
【００２４】
図５（ｂ）には、バーストアドレスＡの発生順を示す。この場合、バーストアドレスＡ（リニア用バーストアドレス）は、０→１→２→３→３→０→１→２の順に発生する。
【００２５】
図６は、図４のテストプラグラムから生成されたリニア用バーストアドレスの例である。この場合、Ｌ／Ｉ選択信号の指示により、Ｌ／Ｉセレクタ３は、バーストアドレス演算変数Ｎとしてインターリーブ演算レジスタ２の出力を選択し、セレクタ４００は、バーストアドレスＡとしてインターリーブ用バーストアドレス発生回路２００の出力を選択する。
【００２６】
図６（ａ）には、各ステップのラップアドレスのアドレス値Ｘおよびバーストアドレス演算変数Ｎ（＝インターリーブ用演算変数Ｉ）の値と、セレクタ４００から出力されるバーストアドレスＡ（インターリーブ用バーストアドレス）の関係を示す。
【００２７】
図５（ｂ）には、バーストアドレスＡの発生順を示す。この場合、バーストアドレスＡ（インターリーブ用バーストアドレス）は、０→１→２→３→３→２→１→０の順に発生する。
【００２８】
このような本実施形態によれば、同一のテストプログラム中に記述されたリニア用演算変数Ｌ、インターリーブ用演算変数Ｉを、リニア演算レジスタ１、インターリーブ演算レジスタ２に個々に格納し、Ｌ／Ｉ選択信号の指示に従って、いずれかのレジスタの出力を選択して、リニア用バーストアドレス発生回路１００およびインターリーブ用バーストアドレス発生回路２００へ、バーストアドレス演算変数Ｎとして入力することができ、リニア用、インターリーブ用に個別にテストプログラムを作成しなくても、リニア用およびインターリーブ用のバーストアドレスを生成することができる。これにより、テストプログラムの作成効率を向上させることができる。
【００２９】
（第２の実施形態）
本実施形態では、リニア演算レジスタ１およびインターリーブ演算レジスタ２を有さない一般的なメモリテスタでも、図４に示したようなテストデータ（リニア／インターリーブ兼用テストデータ）を実行できる手法を示す。
【００３０】
本実施形態では、リニア／インターリーブ兼用テストデータをコンパイルするコンパイラ１０が、テストデータに記述されたリニア用演算変数Ｌおよびインターリーブ用演算変数Ｉを個別にコンパイルして、リニア用バーストアドレスを発生させるためのリニア用バーストアドレス発生オブジェクトファイルと、インターリーブ用バーストアドレス発生させるためのインターリーブ用バーストアドレス発生オブジェクトファイルとを生成する。
【００３１】
そのため、本実施形態のコンパイラ１０は、リニア用演算変数Ｌ記述をバーストアドレス演算変数Ｎ記述へ変換（Ｌ→Ｎ変換）、およびインターリーブ用演算変数Ｉ記述をバーストアドレス演算変数Ｎ記述へ変換（Ｉ→Ｎ変換）する、プリプロセス処理を行う。
【００３２】
図７に、コンパイラ１０の処理の流れを模式的に示す。
【００３３】
コンパイラ１０は、リニア／インターリーブ兼用テストデータが入力されると、プリプロセス処理により、Ｌ→Ｎ変換およびＩ→Ｎ変換を行い、リニア用ソースコードおよびインターリーブ用ソースコードを作成する。リニア用ソースコードでは、リニア用演算変数Ｌがバーストアドレス演算変数Ｎとして記述され、インターリーブ用ソースコードでは、インターリーブ用演算変数Ｉがバーストアドレス演算変数Ｎとして記述される。
【００３４】
その後、コンパイラ１０は、インターリーブ用ソースコードおよびインターリーブ用ソースコードをそれぞれコンパイルして、リニア用バーストアドレス発生オブジェクトファイルおよびインターリーブ用バーストアドレス発生オブジェクトファイルを生成する。
【００３５】
図８は、コンパイラ１０で生成された２種類のオブジェクトファイルが入力されるメモリテスタの構成の例を示すブロック図である。
【００３６】
図８に示すメモリテスタは、従来用いられている一般的な構成のメモリテスタであり、テストデータに記述されたバーストアドレス演算変数Ｎを格納するバーストアドレス演算レジスタ５００を備える。バーストアドレス演算レジスタ５００の出力が、リニア用バーストアドレス発生回路１００およびインターリーブ用バーストアドレス発生回路２００へ入力される。
【００３７】
本実施形態では、コンパイラ１０により生成されたリニア用バーストアドレス発生オブジェクトファイル、インターリーブ用バーストアドレス発生オブジェクトファイルのいずれかを選択して、図８に示すメモリテスタへ入力する。また、その選択に合わせて、Ｌ／Ｉ選択信号の設定を行う。これにより、セレクタ４００から、その選択に応じて、リニア用バーストアドレス、インターリーブ用バーストアドレスのいずれかが出力される。
【００３８】
このような本実施形態によれば、コンパイラが、リニア用演算変数Ｌ、インターリーブ用演算変数Ｉがともに記述されたテストプログラムから、リニア用、インターリーブ用のオブジェクトファイルを生成することができる。したがって、そのオブジェクトファイルを選択して入力することにより、一般的な構成のメモリテスタを使用しても、リニア用バーストアドレスおよびインターリーブ用バーストアドレスを発生させることができる。
【００３９】
以上説明した少なくとも１つの実施形態によれば、リニア用およびインターリーブ用のバーストアドレスを生成するためのテストプログラムを個別に作成する必要がなくなり、テストプログラムの作成効率を向上させることができる。
【００４０】
また、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４１】
１  リニア演算レジスタ
２  インターリーブ演算レジスタ
３  Ｌ／Ｉセレクタ
１０  コンパイラ
【図１】
2012064284.tif 000003
【図２】
2012064284.tif 000004
【図３】
2012064284.tif 000005
【図４】
2012064284.tif 000006
【図５】
2012064284.tif 000007
【図６】
2012064284.tif 000008
【図７】
2012064284.tif 000009
【図８】
2012064284.tif 000010