(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024137103
(43)【公開日】2024-10-07
(54)【発明の名称】信号発生方法および信号発生器
(51)【国際特許分類】
G06F 13/42 20060101AFI20240927BHJP
【FI】
G06F13/42 350Z
【審査請求】有
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023048491
(22)【出願日】2023-03-24
(71)【出願人】
【識別番号】000000572
【氏名又は名称】アンリツ株式会社
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】吉岡 宏紀
(57)【要約】
【課題】信号発生器において、任意の長さのユーザパターンについて、データの連続性を保ったループ出力を可能とする。
【解決手段】信号発生器は、任意に設定された波形パターンを記憶するユーザパターンメモリと、第1バッファメモリと、第2バッファメモリと、第3バッファメモリとを備え、第1~第3バッファメモリのサイズは、ユーザパターンメモリのメモリ読み出し幅とそれぞれ同サイズであり、波形パターンの読み出しデータを第1バッファメモリに記憶する記憶ステップと、1クロック前における波形パターンの読み出しデータを第2バッファメモリに記憶する記憶ステップと、波形パターンの読み出しデータのうち先頭のデータを第3バッファメモリに記憶する記憶ステップと、第1~第3バッファメモリに記憶されたデータに基づいて、波形パターンの繰り返しである繰り返しデータを連続で出力する信号出力ステップとを有する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
信号発生器(100)による信号発生方法であって、
前記信号発生器は、任意に設定された波形パターンを記憶するユーザパターンメモリ(12)と、第1バッファメモリ(141)と、第2バッファメモリ(142)と、第3バッファメモリ(143)とを備え、
前記第1バッファメモリ、前記第2バッファメモリおよび前記第3バッファメモリのサイズは、前記ユーザパターンメモリのメモリ読み出し幅とそれぞれ同サイズであり、
前記波形パターンの読み出しデータを前記第1バッファメモリに記憶する第1記憶ステップと、
1クロック前における前記波形パターンの読み出しデータを前記第2バッファメモリに記憶する第2記憶ステップと、
前記波形パターンの読み出しデータのうち先頭のデータを前記第3バッファメモリに記憶する第3記憶ステップと、
前記第1バッファメモリ、前記第2バッファメモリおよび前記第3バッファメモリに記憶されたデータに基づいて、前記波形パターンの繰り返しである繰り返しデータを連続で出力する、信号出力ステップと、を有する、
信号発生方法。
【請求項2】
前記信号発生器がFPGAで構成されている、
請求項1に記載の信号発生方法。
【請求項3】
任意に設定された波形パターンを記憶するユーザパターンメモリ(12)と、第1バッファメモリ(141)と、第2バッファメモリ(142)と、第3バッファメモリ(143)とを備え、
前記第1バッファメモリ、前記第2バッファメモリおよび前記第3バッファメモリのサイズは、前記ユーザパターンメモリのメモリ読み出し幅とそれぞれ同サイズであり、
前記第1バッファメモリは、前記波形パターンの読み出しデータを記憶し、
前記第2バッファメモリは、1クロック前における前記波形パターンの読み出しデータを記憶し、
前記第3バッファメモリは、前記波形パターンの読み出しデータのうち先頭のデータを記憶し、
前記第1バッファメモリ、前記第2バッファメモリおよび前記第3バッファメモリに記憶されたデータに基づいて、前記波形パターンの繰り返しである繰り返しデータを連続で出力する、
信号発生器(100)。
【請求項4】
FPGAで構成されている、
請求項3に記載の信号発生器。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号発生方法および信号発生器に関する。
【背景技術】
【0002】
特許文献1には、ディジタルファンクションジェネレータが記載されている。ディジタルファンクションジェネレータは、波形データが格納されている波形メモリを備え、外部から設定された波形条件に従い波形メモリからその波形データを読み出し、任意の信号波形を発生させる信号発生器において、高周波領域まで任意の信号波形を発生する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
Ethernet(登録商標)やPCIe(登録商標)等通信規格の高速化に伴い、任意の波形をアナログで生成可能であり、かつ高速度の任意信号発生器(Arbitrary Waveform Generator。以下、AWGと表記することがある)が求められている。AWGが出力対象とする信号として、任意に設定した波形パターンと、ユーザが波形データそのものを設定する波形パターンとがある。以下、これらの波形パターンをユーザパターンと表現する。ユーザパターンをループで読み出すことによって、AWGに内蔵されたメモリサイズを上回るような長周期パターンの出力も可能となる。
【0005】
数GHz程度の出力速度のAWGがユーザパターンを出力する場合、パターンメモリとして、DDR等の一般的な外部RAMを用いた場合でも十分なデータ帯域を確保することができる。
【0006】
しかしながら、現在求められている高速度(十数GHz~100GHz程度)のAWGにおいては、その高速性のため、DDR等の一般的な外部RAMを用いることはデータ帯域の面から考えて難しい。例えばデータ幅16bitのDDR4 2400は、約34Gb/sのデータ帯域を有する。
【0007】
そのため、必要なデータ帯域を確保するため、FPGA(もしくはASIC等)の内部メモリからAWGの出力データ帯域に対応した速度で読み出しを行い、読み出した値をそのまま出力する方式を採用している。必要な帯域とは、例えば8bit分解能、128GHzのAWGであれば1 Tb/sである。上記の方式は基本的にバッファメモリが不要または少なく、回路も単純であるため、FPGAで構成した場合FPGA内の回路リソースの面でメリットがある。しかし一方で、ユーザパターンをループ出力しようとした場合はデータサイズとしてはメモリの読み出し幅の整数倍のデータしか設定することができない。これは、ほぼすべての半導体メモリは一回に読み出せるデータの幅が固定されており、この値を変更することは基本的に不可能であるためである。例えば、メモリの読み出し幅が4096bit幅であり、AWGの出力データ分解能が8bitであった場合、512Symbolの整数倍のデータしか設定できないこととなる。
【0008】
ユーザパターンをメモリの読み出し幅の整数倍以外の値に設定し、そのまま出力した場合、当然ではあるが、メモリの読み出し幅に満たないデータは読み飛ばすか不足分の埋め合わせ処理が必要となるため、データの連続性は失われることとなる問題があった。
【0009】
このように、データの連続性が失われる場合、通信装置であれば不連続となったデータの箇所を別送し、結合する等で問題を回避することも可能ではあるが、AWGでは発生する信号が不連続になることが全く許容できないため、連続性を保つことは重要となっている。
【0010】
本発明は、上記事情に鑑みてなされたものであって、任意の長さのユーザパターンについて、データの連続性を保ったループ出力を行うことができる信号発生方法および信号発生器を提供する。
【課題を解決するための手段】
【0011】
前述した目的を達成するために、本発明に係る信号発生方法および信号発生器は、下記[1]~[4]を特徴としている。
[1]
信号発生器(100)による信号発生方法であって、
前記信号発生器は、任意に設定された波形パターンを記憶するユーザパターンメモリ(12)と、第1バッファメモリ(141)と、第2バッファメモリ(142)と、第3バッファメモリ(143)とを備え、
前記第1バッファメモリ、前記第2バッファメモリおよび前記第3バッファメモリのサイズは、前記ユーザパターンメモリのメモリ読み出し幅とそれぞれ同サイズであり、
前記波形パターンの読み出しデータを前記第1バッファメモリに記憶する第1記憶ステップと、
1クロック前における前記波形パターンの読み出しデータを前記第2バッファメモリに記憶する第2記憶ステップと、
前記波形パターンの読み出しデータのうち先頭のデータを前記第3バッファメモリに記憶する第3記憶ステップと、
前記第1バッファメモリ、前記第2バッファメモリおよび前記第3バッファメモリに記憶されたデータに基づいて、前記波形パターンの繰り返しである繰り返しデータを連続で出力する、信号出力ステップと、を有する、
信号発生方法。
[2]
前記信号発生器がFPGAで構成されている、
[1]に記載の信号発生方法。
[3]
任意に設定された波形パターンを記憶するユーザパターンメモリ(12)と、第1バッファメモリ(141)と、第2バッファメモリ(142)と、第3バッファメモリ(143)とを備え、
前記第1バッファメモリ、前記第2バッファメモリおよび前記第3バッファメモリのサイズは、前記ユーザパターンメモリのメモリ読み出し幅とそれぞれ同サイズであり、
前記第1バッファメモリは、前記波形パターンの読み出しデータを記憶し、
前記第2バッファメモリは、1クロック前における前記波形パターンの読み出しデータを記憶し、
前記第3バッファメモリは、前記波形パターンの読み出しデータのうち先頭のデータを記憶し、
前記第1バッファメモリ、前記第2バッファメモリおよび前記第3バッファメモリに記憶されたデータに基づいて、前記波形パターンの繰り返しである繰り返しデータを連続で出力する、
信号発生器(100)。
[4]
FPGAで構成されている、
[3]に記載の信号発生器。
【発明の効果】
【0012】
本発明によれば、信号発生器において、任意の長さのユーザパターンについて、データの連続性を保ったループ出力を行うことができる。
【0013】
以上、本発明について簡潔に説明した。更に、以下に説明される発明を実施するための形態(以下、「実施形態」という。)を添付の図面を参照して通読することにより、本発明の詳細は更に明確化されるであろう。
【図面の簡単な説明】
【0014】
【
図1】本開示の一実施形態に係る信号発生器の構成例を示す概念図である。
【
図2】本発明の一実施形態に係る信号発生器の構成例を示す概念図である。
【
図3】本開示の一実施形態に係る動作説明図である。
【
図4】本開示の一実施形態に係るデータ列調整処理を例示するフローチャートである。
【
図5】
図4のフローで用いられている変数の内容を示す図である。
【発明を実施するための形態】
【0015】
本発明に関する具体的な実施形態について、各図を参照しながら以下に説明する。
【0016】
図1は、本開示の一実施形態に係る信号発生器の構成例を示す概念図である。
【0017】
信号発生器100は、制御部11と、ユーザパターンメモリ12と、トランシーバ13と、データ列調整部14とを備える。データ列調整部14は、第1バッファメモリ141と、第2バッファメモリ142と、第3バッファメモリ143とを含む。
【0018】
信号発生器100は、FPGAもしくはASIC等で構成される。以下、信号発生器100は、FPGAで構成されているとして説明する。
【0019】
制御部11は、信号発生器100における各メモリ間のデータの入出力を制御する。制御部11は、トランシーバ13を介した外部装置との間のデータの入出力を制御する。制御部11は、これら以外の、信号発生器100における各種のデータ処理を制御する。
【0020】
ユーザパターンメモリ12、第1バッファメモリ141、第2バッファメモリ142、および第3バッファメモリ143は、FPGA内部のRAMないしはレジスタを用いて構成される。第1バッファメモリ141、第2バッファメモリ142および第3バッファメモリ143のサイズは、ユーザパターンメモリ12のメモリ読み出し幅とそれぞれ同サイズである。なお、これらの複数のメモリは、物理的に別個のメモリとしてもよく、1つまたは複数のメモリに統合してもよい。
【0021】
ユーザパターンメモリ12は、任意に設定された波形パターンを記憶する。トランシーバ13は、典型的にはギガビットトランシーバである。
【0022】
図2は、本発明の一実施形態に係る信号発生器の構成例を示す概念図である。
【0023】
制御部11は波形データを取得する。ユーザパターンをユーザが指定する場合、波形データの取得元は、ユーザが入力する波形データファイルであってよい。コンピュータのハードディスク等の記憶装置20に波形データが予め記憶されており、記憶されている波形データを制御部11が取得してもよい。制御部11は、読み出し開始アドレスを示す情報と、読み出し長を示す情報とを取得する。
【0024】
制御部11は、取得した波形データファイルをユーザパターンメモリ12に書き込む。制御部11は、取得した読み出し開始アドレスを示す情報と、読み出し長を示す情報とに基づいて、ユーザパターンメモリ12およびデータ列調整部14におけるデータ処理を制御する。
【0025】
本発明の一実施形態に係る信号発生器100は、ビット幅や出力周波数に依存しない。ただし、説明の平易化のため、ビット幅と出力周波数の一例を
図2に示した。すなわち、データ列調整部14はユーザパターンメモリ12から、4096bit、250MHzでデータを読み出す。読み出しの際、データ列調整部14は読み出しに係るアドレスを指定する。
【0026】
データ列調整部14から出力された4096bit、250MHzのデータをトランシーバ13が取得し、64bit、32GHzで外部に送信する。トランシーバ13から出力された信号をMUXおよびDACが取得し、この信号を128GHz、8bit分解能のアナログ波形として出力する。
【0027】
図3は、本開示の一実施形態に係る動作説明図である。
図3には、第1バッファメモリ141と、第2バッファメモリ142と、第3バッファメモリ143と、データ列調整部14からの出力とが示されている。
【0028】
第1バッファメモリ141と、第2バッファメモリ142と、第3バッファメモリ143はそれぞれ、例えば4096bitの幅を有し、250MHzのクロックによって次の行へ遷移していくものとする。
【0029】
図3の第1バッファメモリ141、第2バッファメモリ142、第3バッファメモリ143、および出力に記載されている数字は、データに対応するユーザパターンメモリ12上のアドレスを示している。xは、そのバッファメモリに有効なデータがまだ入力されていないことを意味する。
【0030】
第1バッファメモリ141は、ユーザパターンメモリ12からの波形パターンの読み出しデータを記憶する。第2バッファメモリ142は、1クロック前における波形パターンの読み出しデータを記憶する。第3バッファメモリ143は、波形パターンの読み出しデータのうち先頭のデータを記憶する。
【0031】
図3は、アドレス1からアドレス5.25までを繰り返し読み出して出力する場合の、信号発生器100の動作を示している。アドレスを示す数字1~5は便宜上の表記であり、実際のアドレスは例えば0x1000~0x53FFなどであってもよい。読込の単位はアドレス1つ分であるため、従来のAWGでは上述のように、メモリの読み出し幅に満たない本例での0.25分のデータは読み飛ばすか不足分の埋め合わせ処理が必要となり、データの連続性は失われることとなる問題があった。本実施形態に係る信号発生器100は、例えば下記のようにデータを処理し出力することにより、任意の長さのユーザパターンについてデータの連続性を保ちつつループ出力を可能とした。
【0032】
本例においては、データ列調整部14がメモリアクセス幅単位で4回読み出しを行い、5回目に読み出したデータは1/4のデータのみを用いる、といった読み出し方を例としている。
【0033】
[バッファへの値の代入処理]
制御部11による制御に基づいて、データ列調整部14は、以下のようにバッファへの値の代入処理を行う。
第1バッファメモリ141のデータを第2バッファメモリ142に代入する。
第1バッファメモリ141のデータが先頭のものである場合、第3バッファメモリ143にも第1バッファメモリ141のデータを代入する。
ユーザパターンメモリ12からデータを読み出し、第1バッファメモリ141に代入する。
【0034】
[出力データの形成と連続出力]
制御部11による制御に基づいて、データ列調整部14は、第1から第3の3つのバッファメモリに保存されたデータを組み合わせることによって、データを出力する。本発明の一実施形態に係る信号発生器100は、第1から第3のバッファメモリに記憶されたデータに基づいて、波形パターンの繰り返しである繰り返しデータを連続で出力する。
【0035】
図4は、本開示の一実施形態に係るデータ列調整処理を例示するフローチャートである。
図5は、
図4のフローで用いられている変数の内容を示す図である。
図4と
図5を併せて参照して、データ列調整処理の例を説明する。
【0036】
まず、
図5に示した変数の内容について説明する。
変数Lmは、メモリの読み出しアクセス幅である。
変数Lpは、ユーザ―パターンのパターン長である。このパターン長は、メモリの読み出しアクセス幅の整数倍ではないことがある。
変数Afは、読み出し開始アドレスである。
変数Alは、読み出し終了アドレスである。読み出し終了アドレスは、AfにLpの長さ相当のアドレスを加算した値である。
変数Leは、LpをLmで割った余りである。数式で表現すると、Le=Lp mod Lmである。
変数Lsは、データ調整用変数である。
【0037】
変数Acは、アドレスカウンタである。
変数R1は、1つ目のバッファ、すなわち第1バッファメモリ141である。
変数R2は、2つ目のバッファ、すなわち第2バッファメモリ142である。
変数R3は、3つ目のバッファ、すなわち第3バッファメモリ143である。
【0038】
変数Diは、メモリ(ユーザパターンメモリ12)から読み出したデータである。
変数Doは、出力するデータである。
【0039】
次に、
図4に基づき、データ列調整処理の例を説明する。
【0040】
制御部11は、変数Lm、Lp、Af、Al、Leの値をそれぞれ設定する(St401)。制御部11は、アドレスカウンタAcの値を、読み出し開始アドレスAfの値とする。また、データ調整用変数Lcの値を0とする(St402)。
【0041】
制御部11は、終了フラグが立っているか否かを判定する(St403)。終了フラグが立っている場合(St403:YES)、処理が終了する。終了フラグが立っていない場合(St403:NO)、ステップSt404へと処理が遷移する。なお、終了フラグは、ユーザパターンの全データを処理し終わった時に立つものとする。
【0042】
ステップSt404において制御部11は、R1にDiを代入する。すなわち第1バッファメモリ141に、ユーザパターンメモリ12から読み出したデータを書き込む。
【0043】
制御部11は、AcとAfが同値であるか否かを判定する(St405)。同値である場合(St405:YES)、ステップSt406へと処理が遷移する。同値ではない場合(St405:NO)、ステップSt407へと処理が遷移する。
【0044】
ステップSt406において制御部11は、R3にDiを代入する。すなわち制御部11は、第3バッファメモリ143に、ユーザパターンメモリ12から読み出したデータ(第1バッファメモリ141のデータと同じデータ)を書き込む。
【0045】
ステップSt407において制御部11は、Acと、Afに1を足した値とが同値であるか否かを判定する。同値である場合(St407:YES)、ステップSt408へと処理が遷移する。同値ではない場合(St407:NO)、ステップSt409へと処理が遷移する。
【0046】
ステップSt408において制御部11は、Doに、R3を右シフトした値を代入する。この時のシフト量はLm-Lsである。
【0047】
ステップSt409において制御部11は、Doに、R2を右シフトした値を代入する。この時のシフト量はLm-Lsである。
【0048】
ステップSt410において制御部11は、AcとAlとが同値であるか否かを判定する。同値である場合(St410:YES)、ステップSt411へと処理が遷移する。同値ではない場合(St410:NO)、ステップSt419へと処理が遷移する。
【0049】
ステップSt411において制御部11は、R3を左シフトした値をDoに追加する。この時のシフト量はLs+Leである。
【0050】
制御部11は、R1から下位Leビット数分のデータを抽出し、これを左シフトした値をDoに追加する(St412)。この時のシフト量はLsである。なお、Lsの値が0である場合、左シフトは行われない。
【0051】
制御部11は、LsにLeを加算する(St413)。
【0052】
制御部11は、LsがLm以上であるか否かを判定する(St414)。LsがLm以上である場合(St414:YES)、ステップSt415へと処理が遷移する。LsがLm以上ではない場合(St414:NO)、ステップSt418へと処理が遷移する。
【0053】
ステップSt415において制御部11は、AcにAfを代入する。
【0054】
制御部11は、LsからLmを減算した値を、Lsに代入する(St416)。
【0055】
制御部11は、R2にR1を代入する(St417)。すなわち制御部11は、第2バッファメモリ142に、第1バッファメモリ141のデータを書き込む。そして処理がステップSt403に戻る。
【0056】
ステップSt418において制御部11は、AcにAf+1を代入する。
【0057】
ステップSt419において制御部11は、R1を左シフトした値をDoに追加する。この時のシフト量はLsである。制御部11は、Acに1を加算する(St420)。
【0058】
以上の処理が終了した段階(St403:YES)で、信号発生器100のデータ列調整部14は、データ列調整が完了したデータ、すなわちDoに記憶されたデータを出力する。
【0059】
以上のように処理することにより、本実施形態に係る信号発生器100は、任意の長さのユーザパターンについて、データの連続性を保ったループ出力を行うことができる。
【0060】
以上、図面を参照しながら各種の実施形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。例えば、本開示における方法中の各ステップは、矛盾が生じない範囲で実行順不問である。また、開示の趣旨を逸脱しない範囲において、上記実施形態における各構成要素を任意に組み合わせてもよい。
【符号の説明】
【0061】
100 信号発生器
11 制御部
12 ユーザパターンメモリ
13 トランシーバ
14 データ列調整部
141 第1バッファメモリ
142 第2バッファメモリ
143 第3バッファメモリ
20 記憶装置