説明

データ生成装置

【課題】任意のワード長の並列データを生成できるようにする。
【解決手段】波形メモリ66は、Mビット並列データから構成されるデータ列を記憶する。シーケンス・メモリ60は、シーケンス情報と、データ列中の最後のデータからいくつのデータを破棄するかを示すデータ破棄情報とを記憶する。シーケンス62と波形メモリ制御回路64は、シーケンス情報を用いて波形メモリ66からデータ列を読み出す。バレル・シフタ68は、データ破棄情報に基づくデータ廃棄又はデータ・シフトによってデータ列の最後の並列データの有効なビット数がM−Jとなる場合に、そのデータ列の次のデータ列中のデータをJビットだけシフトする。データ・シフト制御回路は、データ・シフト及びデータ破棄情報に基づいてデータ列中のデータの有効又は無効を示すデータ・イネーブルを生成する。結合回路72は、データ・イネーブルを用いて、データ列の有効なデータを結合する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ生成装置に関し、特に高速且つ任意長のデータを生成できるデータ生成装置に関する。
【0002】
信号発生装置は、ユーザが所望する波形データをメモリ等の記憶装置に予め記憶し、その波形データをデジタル・アナログ変換することにより、アナログ電気信号として出力できる装置である。これは、いくつかの用途で利用可能である。その1つは、開発中の電子装置において、未完成の回路が出力するはずの信号を信号発生装置から出力させ、未完成回路の後段の回路が正常に動作するか否か確認する用途である。別の用途としては、意図的にジッタや歪みのある信号を出力させ、被測定回路のジッタ等に対する耐性を試験するといったことにも利用される。更には、PCI Express等の高速シリアル・インタフェースにおいて、その伝送路の特性を調べるため、試験に適した波形パターンの信号を出力し、被試験伝送路の出力をオシロスコープで受けて、そのアイパターンを観測するといった用途にも利用される。こうした信号発生装置としては、例えば、米国テクトロニクス社製AWG7000Bシリーズ型シグナル・ジェネレータが知られている。
【0003】
図1は、信号発生装置のブロック図である。CPU(中央演算装置)10は、ハードディスク・ドライブ装置(HDD)14に記憶されたプログラムに従って装置全体の動作を制御する。また、HDD14は、常時には使用しないデータを大量に保存するためにも利用される。RAMなどが用いられるメモリ12は、HDD14からのプログラムを読み込み、CPU10との間でデータ交換しながら一時的な作業の処理をするのに利用される。ユーザは、キー、ノブ等で構成される操作手段24を用いて、信号発生装置に必要な設定を行う。表示装置22は、信号パターンに関する情報やユーザが設定に必要となる情報を提供する。外部表示出力回路20は、ビデオ出力を供給する回路で、これに必要に応じて外部表示装置32を接続すれば、本体の表示装置22とあわせて、広い表示領域を提供できる。信号発生回路16は、ユーザが所望するパターンの信号を発生させる回路である。この例では、2チャンネルの出力端子があり、また、トリガ信号、イベント信号の入力端子を有し、これら信号に応じた条件付動作が可能となっている。入出力ポート28は、例えば、外付けキーボード29やマウス30等のポインティング・デバイスの接続に利用される。これら外付けキーボード29やマウス30も、信号発生装置の操作手段として機能する。これらの回路は、バス18によって相互に接続される。更に信号発生装置のバス18上にLAN(ローカルエリアネットワーク)インターフェース26を設けて、これを介して外部のパソコン34と接続しても良い。外部のパソコン34を用いることで、信号発生装置を外部からリモート制御し、所望の動作をさせることができる。
【0004】
図2は、従来の信号発生回路のブロック図である。ここでは簡単のため、出力が1チャンネルの例を示すが、2チャンネルでも動作は同様である。基準クロック生成回路52は、デジタル・アナログ変換回路(DAC)48の動作の基準となる基準クロックを生成する。この基準クロックは、DAC48が出力するアナログ電気信号の元となるサンプル点のタイミングを決める。そのため、信号発生装置では、基準クロックをサンプリング・クロックとも呼ぶ。分周回路50は、基準クロックを分周比nで分周することで、基準クロックに同期しつつ、クロック周波数がn分の1になった分周クロックを生成する。この分周クロックは、並列データである波形データを波形メモリ46から読み出すタイミングを決める。
【0005】
波形メモリ44は、例えば、SRAMなどの比較的動作の高速なメモリであり、波形データを並列データとして記憶している。ここでは、並列データのビット数をm(mは自然数)とする。シーケンス・メモリ40は、読み出す波形データのシーケンス(出力順序)情報を記憶する。シーケンサ42は、シーケンス情報からアドレスを生成して波形メモリ44に供給する。波形メモリ44は、波形データをmビット並列データとして供給し、パラレル・シリアル(並直列)変換回路46に供給する。
【0006】
パラレル・シリアル変換回路46は、分周クロックに従って波形データを受け、mビットの並列データをmよりも小さいビット数(この例ではKビット)の並列データに変換し、基準クロックに従って出力する。ここで、m=Kxn(nは自然数)の関係があるとする。これによって、ビット数は減少するものの、波形データを読み出しに使用する分周クロックよりも、n倍高速な基準クロックに従うデータが生成される。現状では、メモリの読み出し速度は、そのままではDAC48から出力を希望する高周波数のアナログ信号の形成には充分ではない。しかし、パラレル・シリアル変換回路46でデータを加速することで、充分なデータ速度を得ることができる。DAC48は、このKビットの並列データをデジタル・アナログ変換してアナログ電気信号を生成する。そして、周知の如く、DACの出力信号をローパス・フィルタ(図示せず)を通すことで、滑らかなアナログ電気信号とすることができる。なお、以下では、並列データの1個を1ワードとも呼ぶ。
【0007】
【特許文献1】米国特許出願公開第2006/0155898号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述したデータ加速のおける問題は、波形メモリから読み出す波形データのデータ数が、mの整数倍に限られるので、DAC48が受ける並列データを任意の長さ(任意のワード長)にできないことである。例えば、mを64、Kを10として、64ビットの並列データを10個読み出すと、データ数は640個であるから、パラレル・シリアル変換によって、64個(64ワード)の10ビット並列データに変換できる。しかし、64ビットの並列データを9個読み出した場合、データ数が574個なので、10ビット並列データに変換しようとしても、57個の10ビット並列データと、10ビットに満たない4個の半端なデータとなってしまう。
【0009】
米国特許出願公開第2006/0155898号明細書は、上述の問題を解決する1つの発明を開示している。この発明では、データを記憶するメモリが4又は5ビットが有効な5ビット並列データと、有効なビット数を示すビット幅識別信号をFIFO(先入れ先出しメモリ)に供給する。FIFOは、ビット幅識別信号を利用して、有効なデータのみから構成される4ビット並列データを出力し、これが並直列変換される。4又は5ビットが有効な並列データの組み合わせによって、任意の長さのデータ列を実現している。
【0010】
ところで、高速シリアル・インタフェースの特性試験に代表されるように、信号発生装置には、益々高い周波数の信号を出力可能とすることが望まれている。同時に、大容量の波形データを出力でき、安価であることも望まれている。そこで、波形メモリとして高価なSRAMではなく、DDR3 SDRAM等を使用して比較的安価に大容量を実現することが考えられる。また、専用のASICを用いず、FPGAを使うことで安価に実現することも望まれる。
【課題を解決するための手段】
【0011】
本発明は、Mビットの並列データから構成されるデータ列をデータ列記憶手段から読み出し、Mより小さいKビットの並列データに変換するデータ生成装置に関する。Mには、例えば、480など、従来よりも大幅に大きな値の設定を可能にすると同時に、生成されるKビット並列データを任意の個数(任意のワード長)にできる。本発明は、データ列記憶手段として、例えば、DDR3 SDRAMのような高速大容量のメモリを利用できるように、その動作特性を考慮したものとなっている。即ち、DDR3 SDRAMの場合では、バースト長が8のため、複数のDDR3 SDRAMを並列に用いれば、並列データを一度に8個(8クロック分)まで高速に読み出し可能であるが、こうした動作特性を考慮したものとなっている。また、各機能を専用のASICを製造しなくとも、FPGAを用いて比較的低速ながら安価に実現できるように、その動作特性に適した処理を行う。
【0012】
本発明のデータ生成装置は、次の要素を具えている。データ列記憶手段は、M(Mは自然数)ビットの複数の並列データから構成されるデータ列を記憶する。シーケンス記憶手段は、データ列のアドレス情報と、データ列中の最後のデータからいくつのデータを破棄するかを示すデータ破棄情報とを記憶する。シーケンス制御手段は、アドレス情報をデータ列記憶手段に供給してデータ列を読み出すと共に、読み出されたデータ列に対応するデータ破棄情報を供給する。データ・シフト手段は、データ列中のデータをデータ・シフトする手段であって、データ破棄情報に基づくデータ廃棄又はデータ・シフトによってデータ列の最後の並列データの有効なビット数がM−J(Jは自然数)となる場合に、そのデータ列の次のデータ列中のデータをJビットだけシフトする。データ・シフト制御手段は、データ・シフト及びデータ破棄情報に基づいてデータ列中のデータの有効又は無効を示すデータ・イネーブルを生成する。データ列結合手段は、データ・イネーブルを用いて、データ・シフト手段からの複数のデータ列の有効なデータを結合する。並直列変換手段は、結合されたデータ列中の並列データのビット数を減少させる。
【0013】
本発明のデータ生成装置は、複数のバッファ手段と、データ時間軸制御手段とを更に具えるようにしても良い。このとき、シーケンス記憶手段は、並列データ単位でデータ列の開始及び終了を示すデータ列開始情報及びデータ列終了情報を更に記憶している。データ・シフト制御手段は、データ破棄情報に基づくデータ廃棄又はデータ・シフトによってデータ列の最後の並列データの有効なビット数がM−J(Jは自然数)となる場合に、データ列終了情報の位置を最後の並列データより前の位置にシフトする。複数のバッファ手段は、データ・シフト手段が出力するデータ列並びにデータ列開始情報及びデータ列終了情報をそれぞれ順次受けて順次出力する。データ時間軸制御手段は、複数のバッファ手段が出力するデータ列終了情報を検出すると、読み出し対象のバッファ手段を切り替えて次のデータ列を読み出し、データ列の最後の並列データと、次のデータ列の最初の並列データの時間軸上の位置を一致させる制御を行う。
【0014】
本発明の目的、効果及び新規な点は、以下の詳細な説明を特許請求の範囲及び図面と合わせて読むことによって明らかとなろう。
【図面の簡単な説明】
【0015】
【図1】信号発生装置全体のブロック図である。
【図2】従来の信号発生回路のブロック図である。
【図3】本発明の実施に適した信号発生回路のブロック図である。
【図4】バレル・シフタのブロック図である。
【図5】バレル・シフタにおける動作を説明する図である。
【図6】隣り合うデータ列におけるデータ・シフトの動作を説明する図である。
【図7】FIFOに入力前と出力後におけるデータ列間の時間軸関係を説明する図である。
【図8】データ列の結合処理を説明する図である。
【発明を実施するための形態】
【0016】
以下では、本発明の好ましい実施形態に言及し、実施形態の例を図面に記載する。これら図面は説明上記載したもので、本発明を限定するものではない。本発明は、おおよそこれら実施形態に沿って記述されるが、本発明の本質はこれら実施形態に限定されるものではない。
【0017】
図3は、本発明によるデータ生成装置を用いた信号発生回路のブロック図である。このデータ生成装置は、ユーザが所望する任意のワード長を有する高速な並列データをDAC76に供給する。基準クロック生成回路82は、図2の場合と同様にDAC76の動作の基準となる基準クロックを生成する。分周回路80は、基準クロックを分周比Nで分周することで、基準クロックに同期しつつ、クロック周波数がN分の1になった分周クロックを生成する。分周クロックは、ここで説明の都合上、第2クロックと呼ぶことにする。
【0018】
第1クロック生成回路78は、第2クロックよりも周波数が高い第1クロックを生成する。後述のようにバレル・シフタ68は、第2クロックよりも高速な第1クロックに従ってデ―タ・シフト処理を行うことにより、第2クロックに従う場合に比較し、処理時間に余裕を持つことができる。
【0019】
波形メモリ66は、例えば、DDR3 SDRAMのような大容量のDRAMを複数並列に用いることで、並列データを出力できる。DDR3 SDRAMの場合では、バースト長が8のため、第1クロックの8クロックの間に並列データを8個まで、バースト動作でまとめて読み出しできる。このバースト動作で読み出される並列データのグループを、以下ではデータ列(Data Stream)と呼ぶことにする。また、並列データのビット数は、M(Mは自然数)とする。Mは、例えば、480としても良い。波形メモリ66は複数のデータ列を記憶するが、これらデータ列は、ユーザが周知の波形データ編集ソフトなどを用いて生成しても良い。波形データ編集ソフトウェアとしては、例えば、米国テクトロニクス社製ArbExpressなどが知られている。これによれば、波形データの編集は、信号発生装置本体で行うこともできるが、パソコンで行った後、完成したデータを信号発生装置に送ることもできる。
【0020】
シーケンス・メモリ60は、読み出すデータ列のシーケンス情報に加えて、そのデータ列中の最後のデータからいくつのデータを破棄するかを示すデータ破棄情報を記憶する。シーケンス情報には、データの先頭アドレスと、データ長の情報が含まれる。更に、並列データ単位でデータ列の開始及び終了を示すデータ列開始情報(SOS:Start of Stream)フラグ及びデータ列終了情報(EOS:End of Stream)フラグを更に記憶している(図5左側参照)。
【0021】
シーケンサ62は、シーケンス・メモリ60からのシーケンス情報、データ破棄情報、SOSフラグ及びEOSフラグを受けて、これらを波形メモリ制御回路64に供給する。波形メモリ制御回路64は、シーケンス情報から、バースト単位で波形メモリ66のアドレスを生成することで、波形メモリ66からデータ列を読み出すと共に、読み出されたデータ列に対応するデータ破棄情報、SOSフラグ及びEOSフラグをバレル・シフタ68に供給する。このように、シーケンサ62及び波形メモリ制御回路64は、シーケンス制御手段として機能するもので、DDR SDRAMのバースト動作に対応している。
【0022】
図4は、バレル・シフタ68のブロック図である。第1及び第2レジスタ102及び104は、第1クロックに従って波形メモリ制御回路64からのMビット並列データを順次受ける。よって、第1及び第2レジスタ102及び104内に保持される並列データ間は、1クロック分の時間差がある。第1及び第2シフタ106及び108は、第1及び第2レジスタ102及び104のそれぞれからMビット並列データを受け、これら2Mビットのデータから、データ・シフト制御回路100からのデータ・シフト情報に従ってMビットを選択し、Mビット並列データとして出力する。このとき、第1及び第2シフタ106及び108は、図5に示すように、交互にデータ列を出力する。
【0023】
図6は、第1及び第2シフタ106及び108で行われるデータ・シフト動作の説明する図である。Mは、例として480としている。ここでは、データ列8が第1シフタ106から出力され、その次にデータ列9が第2シフタ108から出力されるものする。このとき、データ列8について、データ破棄情報に従い、最後の並列データが最上位の1ビットのみを残し、他のデータは破棄されるものとする。この場合、データ・シフト制御回路100は、第2シフタ108に1データ・シフトするよう指示するシフト情報を供給する。すると、第2シフタ108は、第2レジスタから受けた並列データの最下位ビットのデータと、第1レジスタから受けた並列データの最下位ビットを除いた479個のデータ(斜線で示す)を選択し、480ビットの並列データとすることで、データ・シフトを行う。このように、データ列の最後の並列データがM−J(Jは自然数)のときには、その次のデータ列のデータに対して、J個分のデータだけデータ・シフトを行う。
【0024】
データ・シフト制御回路100は、データ破棄情報を受け、これに基づいて第1及び第2シフタ106及び108に供給する第1及び第2データ・シフト情報を求める。また、SOSフラグ及びEOSフラグを受けて、EOSフラグが来る度に、第1及び第2FIFOのどちらをライト・イネーブルとするかを指示すべく、ライト・イネーブル信号を出力する。データ・シフト量及びデータ破棄情報に応じて、その次に供給すべきデータ・シフト情報が変化するので、次に使用するデータ・シフト情報は、定まった時点でレジスタ101に保持される。更に、データ・シフト量及びデータ破棄情報に応じて、各データ列のデータ・イネーブル情報を生成し、SOSフラグ及びEOSフラグと共に、対応するデータ列と一緒にFIFOに供給する。このとき、データ・シフト又はデータ破棄によって、最後の並列データがMビットより少なくなったときに、EOSフラグが最後の並列データと同じ時間軸上にある場合には、1クロック以上前の位置にシフト(EOSシフト)させると良い。このEOSシフト量は、後述するFIFOからのデータ列読み出す処理において、FIFOが必要とする時間に応じて定める。
【0025】
図7は、FIFOに入力前と出力後におけるデータ列間の時間軸関係を説明する図である。第1及び第2FIFO701及び702は、非同期FIFOであり、データ列を第1クロックに従って受けて、第2クロックに従って出力する。第1及び第2FIFO701及び702の入力ポートには、周知の如く、FIFOフル信号が用意され、FIFOに空きがあるか否かをデータ・シフト制御回路100に知らせることができる。図7に示すように、第1及び第2FIFO701及び702へ書き込まれる前は、波形メモリの読み出し特性などのため、データ列間の時間軸は必ずしも合致していない。第1及び第2FIFO701及び702の一方からデータ列と共にEOSフラグが出てくると、それに応じて他方のFIFOに対する読み出し処理が開始される。これによって、最後の並列データがM−Jビットのデータ列の場合は、最後の並列データと、その次のデータ列の最初の並列データの時間軸上の位置が合致する。また、最後の並列データがMビットのデータ列の場合は、最後の並列データの次のクロックの位置に、その次のデータ列の最初の並列データが来るように時間位置が調整される。
【0026】
上述の例では、バレル・シフタ68として、2つの第1及び第2シフタ106及び108を用いてデータ・シフトを行い、結果として任意数のデータを破棄している。もし波形メモリ制御回路64をASICで実現した場合には、高速動作が可能なため、波形メモリ制御回路64での処理だけで任意数のデータを破棄可能である。しかし、波形メモリ制御回路64をFPGAで安価に実現しようとする場合、任意数のデータを破棄するには処理速度が不足する。そこで、バレル・シフタ68及びFIFO70において、データ列を2つのパスで処理すると共に、データ破棄情報、SOSフラグ、EOSフラグを用いた処理によって、FPGAのハードウェア処理速度が遅くても、任意数のデータを破棄可能とし、また後述の結合処理を可能にしている。なお、上述の例ではパスが2つとしたが、3つ以上としても良い。
【0027】
結合回路72は、時間軸上の位置が調整されたデータ列を第1及び第2FIFOから受けて、これらを結合し、有効なデータのみからなる並列データを生成する。図8は、結合回路72における結合処理を示す図である。簡単のため、並列データのビット幅を小さくして描いている。図8Aにおいて、データ・イネーブル部分は、並列データと対応し、0が破棄するデータを示し、1が有効なデータを示す。図8Bに示すように、結合回路72は、データ・イネーブルと並列データを論理積(AND)演算することによって、破棄するデータを0にする。この処理の後は、データ・イネーブルは不要となる。第1及び第2FIFOから受けた並列データの両方について、図8Bに示す論理積演算処理を行った後、図8Cに示すように、これらを論理和(OR)演算し、図8Dに示すように有効な並列データのみからなる結合された並列データを生成する。
【0028】
パラレル・シリアル(並直列)変換回路74は、結合回路72からのMビット並列データを受けて、Mより小さいKビットの並列データに変換する。なお、M=KxNの関係がある。上述したデータ生成装置によれば、波形メモリ66から読み出されるのは、Mビットの並列データであるが、これらに含まれる有効なデータ数は、Mの整数倍に制限されず、Kの整数倍とすることができる。よって、任意のワード長のKビット並列データを生成できる。なお、Kを1とすれば、任意の長さのシリアル・データ・パターンを生成できることにも注意されたい。
【0029】
デジタル・アナログ変換回路(DAC)76は、Kビット並列データをデジタル・アナログ変換し、アナログ電気信号を生成する。なお、周知の如く、DACの出力信号をローパス・フィルタに通すことで、滑らかなアナログ電気信号とすることができる。
【0030】
以上、本発明について明確に理解できるよう詳細に記述してきた。しかし、これらは開示したそのままの通りに本発明を限定するものではない。
【符号の説明】
【0031】
60 シーケンス・メモリ
62 シーケンサ
64 波形メモリ制御回路
66 波形メモリ
68 バレル・シフタ
70 FIFO
72 データ列結合回路
74 パラレル・シリアル(並直列)変換回路
76 デジタル・アナログ変換回路
78 第1クロック生成回路
80 分周回路
82 基準クロック生成回路
701 第1FIFO
702 第2FIFO

【特許請求の範囲】
【請求項1】
M(Mは自然数)ビットの複数の並列データから構成されるデータ列を記憶するデータ列記憶手段と、
上記データ列のシーケンス情報と、上記データ列中の最後のデータからいくつのデータを破棄するかを示すデータ破棄情報とを記憶するシーケンス記憶手段と、
上記シーケンス情報からアドレス情報を生成して上記データ列記憶手段に供給することで上記データ列を読み出すと共に、読み出された上記データ列に対応する上記データ破棄情報を供給するシーケンス制御手段と、
上記データ列中のデータをデータ・シフトする手段であって、上記データ破棄情報に基づくデータ廃棄又は上記データ・シフトによって上記データ列の最後の並列データの有効なビット数がM−J(Jは自然数)となる場合に、上記データ列の次のデータ列中のデータをJビットだけシフトするデータ・シフト手段と、
上記データ・シフト及び上記データ破棄情報に基づいて上記データ列中のデータの有効又は無効を示すデータ・イネーブルを生成するデータ・シフト制御手段と、
上記データ・イネーブルを用いて、上記データ・シフト手段からの複数の上記データ列の有効なデータを結合するデータ列結合手段と、
結合された上記データ列中の上記並列データのビット数を減少させる並直列変換手段と
を具えるデータ生成装置。
【請求項2】
複数のバッファ手段と、
データ時間軸制御手段とを更に具え、
上記シーケンス記憶手段は、上記並列データ単位で上記データ列の開始及び終了を示すデータ列開始情報及びデータ列終了情報を更に記憶し、
上記データ・シフト制御手段は、上記データ破棄情報に基づくデータ廃棄又は上記データ・シフトによって上記データ列の最後の並列データの有効なビット数がM−J(Jは自然数)となる場合に、上記データ列終了情報の位置を上記最後の並列データより前の位置にシフトし、
上記複数のバッファ手段は、上記データ・シフト手段が出力する上記データ列並びに上記データ列開始情報及び上記データ列終了情報をそれぞれ順次受けて順次出力し、
上記データ時間軸制御手段は、複数の上記バッファ手段が出力する上記データ列終了情報を検出すると、読み出し対象の上記バッファ手段を切り替えて次のデータ列を読み出し、上記データ列の最後の並列データと、上記次のデータ列の最初の並列データの時間軸上の位置を一致させる制御を行う
ことを特徴とする請求項1記載のデータ生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−15145(P2011−15145A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−157009(P2009−157009)
【出願日】平成21年7月1日(2009.7.1)
【出願人】(503050951)テクトロニクス・インターナショナル・セールス・ゲーエムベーハー (35)
【Fターム(参考)】