JP2013534336A - ビットシーケンス発生器 - Google Patents
ビットシーケンス発生器 Download PDFInfo
- Publication number
- JP2013534336A JP2013534336A JP2013522111A JP2013522111A JP2013534336A JP 2013534336 A JP2013534336 A JP 2013534336A JP 2013522111 A JP2013522111 A JP 2013522111A JP 2013522111 A JP2013522111 A JP 2013522111A JP 2013534336 A JP2013534336 A JP 2013534336A
- Authority
- JP
- Japan
- Prior art keywords
- state
- bit sequence
- rate
- sub
- state machine
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/584—Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/64—Generators producing trains of pulses, i.e. finite sequences of pulses
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/84—Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/58—Indexing scheme relating to groups G06F7/58 - G06F7/588
- G06F2207/582—Parallel finite field implementation, i.e. at least partially parallel implementation of finite field arithmetic, generating several new bits or trits per step, e.g. using a GF multiplier
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Tests Of Electronic Circuits (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
複数の状態機械と、多重化器とを含み、生成関数及び生成関数の初期状態で定義されるビットシーケンスを発生させるビットシーケンス発生器である。上記複数の状態機械に含まれる各状態機械は、時間インタリーブされたビットシーケンスを発生させ、状態機械は、時間インタリーブされたビットシーケンスのビットを現在の時間ステップにおいて発生させることを、先行する時間ステップにおいて、その状態機械が発生させた少なくとも1つのビットに基づいて、且つ、発生させるビットシーケンスの生成関数に基づいて、且つ、生成関数の初期状態に基づいて、且つ、上記複数の状態機械に含まれる別の状態機械が発生させた、時間インタリーブされたビットシーケンスとは独立に行う。更に、多重化器が、発生した、時間インタリーブされたビットシーケンスのそれぞれから1つのビットを連続的に選択することを繰り返すことにより、生成関数及び生成関数の初期状態によって定義されるビットシーケンスを生成する。
【選択図】図3
【選択図】図3
Description
本発明による実施形態は、ビットシーケンスを発生させることに関し、特に、ビットシーケンス発生器と、ビットシーケンスを発生させる方法と、状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置及び方法と、に関する。
乱数又は疑似乱数は、現代のテクノロジの広い応用分野において必要とされ、例えば、検査システム、暗号、数値シミュレーション、ノイズ信号の発生などの分野において必要とされる。これらはほんの数例である。乱数又は疑似乱数は、技術的には、それぞれ、真の乱数発生器又は疑似乱数発生器によって発生させることが可能である。
真の疑似乱数発生器は、典型的には、物理的な、本当のランダム発生源を用いるが、疑似乱数発生器は、典型的には、統計的な真のランダム性を示す素子を用いない。そのような素子の例としては、例えば、ナイキストノイズを有する電気抵抗器、電気トンネル素子、又は、ショットノイズ挙動を有する放射性崩壊やフィードバック信号をノイズ源として用いる閉フィードバックループをベースとする素子があり、これらはほんの数例である。
一方、疑似乱数発生器は、典型的には、そのような真のランダム性の素子を用いず、決定性の挙動をベースとする為、疑似乱数発生器が発生させる数値は真の乱数ではない。
従って、真の乱数発生器及び疑似乱数発生器は、応用分野において乱数値又は疑似乱数値を使用することが重要又は望ましいとされる場合には必ず利用される。上述の例は、可能な応用のうちの氷山の一角に過ぎない。
疑似乱数発生器は、真の乱数発生器と比較すると、典型的には、より高速で数値を発生させることが可能であり、ほとんどの場合、実装がより容易であり、エネルギ消費量が、相当する真の乱数発生器より少ない。しかしながら、疑似乱数発生器は、決定性のシステムであることを念頭に置かれたい。つまり、発生する数値は、疑似乱数発生器の内部構造の情報、及び疑似乱数発生器の状態情報に基づいて計算されたものになる。このことは、ある状況においては不利になる場合があり、別の状況においては、例えば、一部の応用において周期的挙動又は再現性が重要となりうる場合には、望まれる必要な結果となる場合がある。
デジタルの実装又は応用では、疑似乱数発生器が発生させる擬似乱数は、典型的には、デジタル単位又は2進単位からなる。この場合、疑似乱数発生器は、具体的な実装に応じて、複数の個別ビットのシーケンスを含む疑似ランダムビットストリーム、又は複数のワードのシーケンスを含む疑似ランダムワードストリームを出力することが可能である。各ワードは、典型的には、複数のビット(例えば、4ビット、6ビット、8ビット、16ビット、32ビットなど)を含む。言い換えると、ワードストリームのうちのワードは、典型的には、複数のビットを含み、そのワードは、疑似ランダムビットのシーケンスの一部と見なしてよい。従って、多くの応用では、疑似ランダムビットストリーム及び疑似ランダムワードストリームは、互いから派生するものであってよい。
回路、コンピュータシステム、及び他のデバイスの動作速度及び動作周波数が上がり続けていることから、各ビットのランダム性に関して十分良好な統計的分布を有する疑似ランダムビットストリーム及び疑似ランダムワードストリームをより高速で発生させることが求められており、例えば、検査応用、数値シミュレーション、暗号応用、並びに、念頭にある応用に応じたノイズ信号又は他のデータ、情報、及び信号の発生について、これらの処理速度を高速化できるようにすることが求められている。
本発明の目的は、ビットシーケンスのビットレートを高めることが可能になるように、ビットシーケンスを発生させることの概念を改良することである。
この目的は、請求項1に記載のビットシーケンス発生器、状態機械のサブレート遷移行列及びサブレート初期状態を計算する、請求項11に記載の装置、疑似ランダムビットシーケンスを発生させる、請求項23に記載の方法、及び状態機械のサブレート遷移行列及びサブレート初期状態を計算する、請求項24に記載の方法によって達成される。
本発明の一実施形態は、複数の状態機械と、多重化器とを含み、生成関数及び生成関数の初期状態で定義されるビットシーケンスを発生させるビットシーケンス発生器を与える。上記複数の状態機械に含まれる各状態機械は、時間インタリーブされたビットシーケンスを発生させ、状態機械は、時間インタリーブされたビットシーケンスのビットを現在の時間ステップにおいて発生させることを、先行する時間ステップにおいて発生させた、時間インタリーブされたビットシーケンスの少なくとも1つのビットに基づいて、且つ、発生させるビットシーケンスの生成関数に基づいて、且つ、生成関数の初期状態に基づいて、且つ、上記複数の状態機械に含まれる別の状態機械が発生させた、時間インタリーブされたビットシーケンスとは独立に行う。更に、多重化器は、発生した、時間インタリーブされたビットシーケンスのそれぞれから1つのビットを連続的に選択することを繰り返すことにより、生成関数及び生成関数の初期状態によって定義されるビットシーケンスを生成するように構成されている。
本発明の別の実施形態は、複数の状態機械に含まれる状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置を与える。本装置は、状態機械のサブレート初期状態の計算を、フルレートビットシーケンスの生成関数と、生成関数の初期状態と、複数の状態機械に含まれる状態機械の数と、に基づいて行うように構成されたプロセッサを含む。更に、プロセッサは、状態機械のサブレート遷移行列の計算を、生成関数と、状態機械の数とに基づいて行うように構成されている。
本発明による実施形態の基礎となる中心思想は、互いに独立に発生させた2つ以上の時間インタリーブされたビットシーケンスをマージすることにより、生成関数及び生成関数の初期状態で定義される高速ビットシーケンスを高ビットレートで発生させることが可能である、というものである。このようにして、時間インタリーブされたビットシーケンスのそれぞれは、複数の時間インタリーブされたビットシーケンスをマージすることによって生成されるビットシーケンスのビットレートのサブレートで発生させることが可能である。
従って、時間インタリーブされたビットシーケンスを発生させる状態機械は、発生させるビットシーケンスの周波数(ビットレート)より低いクロック周波数で動作可能である。多重化器だけが、発生した複数の時間インタリーブされたビットシーケンスからビットを、ビットシーケンスのフルビットレートで選択できなければならない。従って、状態機械に関する必須ハードウェア要件は、単一の状態機械が直接同じビットレートでビットシーケンスを与える場合に比べて大幅に緩和することが可能である。
本発明による幾つかの実施形態では、上記複数の状態機械に含まれる状態機械は、時間インタリーブされたビットシーケンスを、サブレート遷移行列及びサブレート初期状態に基づいて発生させる。サブレート遷移行列及びサブレート初期状態は、生成関数及び生成関数の初期状態に基づく。
サブレート遷移行列及びサブレート初期状態は、上述の状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置で求めることが可能である。
従って、本発明による幾つかの実施形態は、上記複数の状態機械に含まれる状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置を含むビットシーケンス発生器に関するものであってよい。本装置は、上記複数の状態機械に含まれる各状態機械のサブレート遷移行列及びサブレート初期状態の計算を、各状態機械の時間インタリーブされたビットシーケンスをマージしたものが、生成関数及び生成関数の初期状態で定義されるフルレートのビットシーケンスになるように行うことが可能である。
本発明による幾つかの実施形態では、生成関数及び初期状態で定義されるビットシーケンスは、疑似ランダムビットシーケンスである。
以下では、本発明による実施形態を、添付図面を参照しながら詳細に説明する。
以下では、同一又は同様の機能的特性を有するオブジェクト及び機能ユニットに対して、ある程度、同じ参照符号を用いており、ある図面を参照してのそれらの説明は、他の図面にも適用されるものとする。これは、実施形態の説明の冗長性を減らす為である。
図1は、本発明の一実施形態によるビットシーケンス発生器100のブロック図を示す。ビットシーケンス発生器100は、複数の状態機械と、多重化器120とを含んでいる。上記複数の状態機械に含まれる各状態機械110は、時間インタリーブされたビットシーケンス112を発生させるように構成されており、状態機械110は、時間インタリーブされたビットシーケンス112のビットを現在の時間ステップにおいて発生させることを、先行する時間ステップにおいて、その状態機械が発生させた少なくとも1つのビットに基づいて、且つ、発生させるビットシーケンス122の生成関数に基づいて、且つ、生成関数の初期状態に基づいて、且つ、上記複数の状態機械に含まれる別の状態機械110が発生させた、時間インタリーブされたビットシーケンス112とは独立に行う。更に、発生した、時間インタリーブされたビットシーケンス112のそれぞれから、多重化器120が1つのビットを連続的に選択することを繰り返すことにより、生成関数及び生成関数の初期状態で定義されるビットシーケンス122が生成される。
上記複数の状態機械から発生した、時間インタリーブされたビットシーケンス112同士をマージすることにより、時間インタリーブされたビットシーケンス112のビットレートより著しく高いビットレートを有するビットシーケンス122を生成することが可能である。これにより、状態機械110は、より低いクロックレートで動作することが可能になり、ハードウェアの作業量及び/又は消費電力を減らすことが可能になる。更に、状態機械110は、それぞれ互いに独立に、時間インタリーブされたビットシーケンス112を発生させる為、それぞれ別々のハードウェアユニットを用いることが可能である。このように、例えば、別々のビットストリーム同士をマージする多重化器120を使用することにより、低ビットレートでビットシーケンスを発生させる既存の複数の状態機械を用いて、このビットレートの倍数となるビットレートを有するビットシーケンスを発生させることが可能である。
互いに独立に、時間インタリーブされたビットシーケンスを発生させる、とは、この場合には、ある状態機械110が、上記複数の状態機械に含まれる他のいずれかの状態機械110の現在又は以前の状態、或いはその出力とは独立の、時間インタリーブされたビットシーケンスを発生させることを意味する。互いの間のリンクは、各状態機械がそれぞれの時間インタリーブされたビットシーケンスを、発生させる疑似ランダムビットシーケンス112の同じ生成関数に基づいて、且つ、その生成関数の初期状態に基づいて発生させる、という事実によってのみ与えられる。このようにして、複数の、時間インタリーブされたビットシーケンス112が合算されて、発生させるべきビットシーケンス122になるが、個々の状態機械110のそれぞれは、他の状態機械が何をしているかを知る必要はない。
多重化器120は、発生した、時間インタリーブされた各ビットシーケンス112から1つのビットを連続的に選択することを繰り返す為、時間インタリーブされたビットシーケンス112は、発生させるビットシーケンス122の(M−1)個おきのビットを含んでおり、Mは、上記複数の状態機械110に含まれる状態機械110の数である。例えば、ビットシーケンス発生器110が、図1に示したように2つの状態機械110からなる場合、第1の状態機械110は、発生させるビットシーケンス122のうちの1番目、3番目、5番目、7番目…のビットからなる、時間インタリーブされたビットシーケンス112を発生させ、第2の状態機械110は、発生させるビットシーケンス122のうちの2番目、4番目、6番目…のビットからなる、時間インタリーブされたビットシーケンス112を発生させる。
ビットシーケンス発生器100は、2つ以上の状態機械110を含んでよい。
状態機械110は、例えば、有限状態機械(FSM)又は線形有限状態機械(LFSM)であってよい。
時間インタリーブされたビットシーケンス112を発生させることは、生成関数、及び生成関数の初期状態に基づく。生成関数並びに初期状態は、ユーザが定義してもよく、或いは、記憶装置に記憶されていてもよい。言い換えると、生成関数及び初期状態は、与えてもよく、事前定義されていてもよい。この為、生成関数は、パラメータ、係数、変数、公式、又は他の数学的記述により、表現可能である。更に、初期状態は、初期状態ビットシーケンスによって表現可能である。例えば、生成関数は、P個の係数で表されるP次の生成多項式g(x)であってよい。これに関しては、例えば、ビットシーケンスが生成関数及び初期状態で定義されるという言い方は、ビットシーケンスが、生成関数の係数と、初期状態ビットシーケンスとで定義されるという言い方と同じである。従って、生成関数及び初期状態に基づいて、時間インタリーブされたビットシーケンスのビットを生成することは、例えば、生成関数の係数と、初期状態ビットシーケンスとに基づいて、時間インタリーブされたビットシーケンスのビットを生成する、という意味にもなる。
本発明による幾つかの実施形態は、疑似ランダムビットシーケンスの発生に関する。言い換えると、発生させるビットシーケンスは、疑似ランダムビットシーケンスである。以下では、疑似ランダムビットシーケンスの発生に関して実施形態を説明するが、本発明概念は、疑似ランダムビットシーケンスに限定されない。
疑似ランダムビットシーケンスは、生成多項式で定義してよい。そのような疑似ランダムビットシーケンスは、線形帰還シフトレジスタで発生させることが可能である。例えば、ビットレートがfの疑似ランダムビットシーケンス(PRBS){s(i)}は、周波数fでクロッキングされる線形帰還シフトレジスタ(LFSR)の出力として発生させることが可能である。
図5は、生成多項式g(x)=1+x2+x5を有する線形帰還シフトレジスタ500の一例を示す。この線形帰還シフトレジスタ500は、5つのクロックレジスタ510と、第2のレジスタx2の出力及び第5のレジスタx5の出力を論理的に結合する論理XOR素子520とを含んでおり、この論理的結合の結果を第1のレジスタの入力に与える。対応する疑似ランダムシーケンスs(i)は、第5のレジスタから出力される。
一般的なLFSRは、そのP次の生成多項式g(x)、即ち、gp≠0且つgp=0(p>P)における次式(1)の形で表される。
g(x)=1+g1x+g2x2+…+gpxp (1)
g(x)=1+g1x+g2x2+…+gpxp (1)
g(x)の係数gp∈B(生成関数の各係数)が1に等しい場合、p番目のシフトレジスタ段の出力は、初段における次の値についてのXOR関数に算入される。
ビットレートが非常に高い場合、例えば、12.8Gbpsの場合、或いは概ね10Gbpsを超える場合には、この直接的なアプローチは、極端に難度が高い。
提案されている概念によれば、ビットレートfを有する同じ疑似ランダムビットシーケンスs(i)を発生させる為に、それぞれがビットレートfを有する、M個の時間インタリーブされたビットシーケンスをMで割って、時間インタリーブ(多重化)を行う。
例えば、状態機械110が、毎時間ステップに、時間インタリーブされたビットシーケンス112のうちの1つ以上のビットを発生させる。例えば、図5に示されたものと類似の線形帰還シフトレジスタを用いて、時間インタリーブされたビットシーケンス112のうちの1ビットを毎時間ステップに発生させることが可能である。好ましいのは、時間インタリーブされたビットシーケンス112の複数のビットを毎時間ステップに発生させる状態機械を用いることであろう。毎時間ステップの発生ビット数は、状態機械110の使用ハードウェアによって設定され、このように事前定義される。言い換えると、上記複数の状態機械110に含まれる状態機械110は、事前定義されたビット数(1つ以上)の、対応する、時間インタリーブされたビットシーケンス112を毎時間ステップに発生させる。
このようにして、フルレートより著しく低い(時間ステップの長さに対応する)サブレートで、事前定義されたビット数の時間インタリーブされたビットストリーム112を繰り返し発生させて、多重化器120から疑似ランダムビットシーケンスを出力することが可能であってよい。言い換えると、上記複数の状態機械110に含まれる状態機械110は、事前定義されたビット数の時間インタリーブされたビットシーケンス112をサブレートで発生させることが可能であり、多重化器120は、疑似ランダムビットシーケンス122を、サブレートの整数倍であるフルレートで発生させる。
状態機械が動作する際のサブレートと、疑似ランダムビットシーケンス112が与えられる際のフルレートとの比は、(パラレルに発生する)複数の時間インタリーブされたビットシーケンス112の事前定義された発生ビット数と、上記複数の状態機械110に含まれている状態機械の数とに依存する。言い換えると、前述の整数の倍数は、時間インタリーブされたビットシーケンス112の事前定義されたビット数と、上記複数の状態機械110に含まれる状態機械の数との積であってよい。例えば、各状態機械は、それぞれの状態機械の毎クロックサイクルに、対応する、時間インタリーブされたビットシーケンスの4ビットを発生させ、複数の状態機械が2つの状態機械を含み、状態機械が動作する際のクロックレート(サブレート)の8倍の高さのビットレート(フルレート)で疑似ランダムビットシーケンスを発生させることが可能である。
本発明による幾つかの実施形態では、状態機械110の状態は、事前定義された数の状態ビットに依存する場合がある。この事前定義された数の状態ビットは、同じ時間ステップの間に発生させることが可能であり、前の時間ステップ(例えば、直前の時間ステップ)からの状態ビットに依存する場合がある。この事前定義された状態ビット数は、この時間ステップにおける、時間インタリーブされたビットシーケンス112の事前定義されたビット数と同じであってよいが、この事前定義された状態ビット数は、時間インタリーブされたビットシーケンス112の事前定義されたビット数より大きくてもよい。言い換えると、上記複数の状態機械110に含まれる状態機械110の状態は、同じ時間ステップの間にその状態機械110が発生させる、事前定義された数の状態ビットで定義してよい。更に、事前定義された数の状態ビットは、少なくとも、同じ時間ステップにおける、時間インタリーブされたビットシーケンス112の事前定義された数のビットを含んでよい。同じ時間ステップの間に発生する状態ビットと、時間インタリーブされたビットシーケンスのビットとは異なってよいが、好ましい一実施形態では、状態ビットは、時間インタリーブされたビットシーケンスのビットである。言い換えると、状態機械は、状態を変えることにより、状態ビットで表される、時間インタリーブされたビットシーケンスのビットを自動的に発生させてよい。
現在の時間ステップにおける、上記複数の状態機械に含まれる状態機械の状態は、前の時間ステップにおけるその状態機械の状態に依存する為、その状態機械は、前の時間ステップにおけるその状態機械の状態に基づいて、時間インタリーブされたビットシーケンスのビットを現在の時間ステップにおいて発生させることが可能である。
状態機械110が毎時間ステップ(状態機械の毎クロックサイクル)に、時間インタリーブされたビットシーケンス112の複数のビットを決定できる場合、時間インタリーブされたビットシーケンス112の、パラレルに決定されたビットをシリアル化することにより、時間インタリーブされたビットシーケンス112を生成することが可能である。その為に、状態機械110はシリアライザを含んでよい。シリアライザは、1つの時間ステップの間に発生した状態ビットに含まれる、時間インタリーブされたビットシーケンス112のビットを、毎時間ステップにおいて選択することにより、時間インタリーブされたビットシーケンス112をシリアル出力することが可能である。これは、中間的なレートで行うことが可能である。ここでの中間的なレートは、同じ時間ステップの間に発生する、時間インタリーブされたビットシーケンス112の事前定義されたビット数を、サブレートに乗じたものである。言い換えると、ある状態機械110がパラレルに発生させる、時間インタリーブされたビットシーケンス112のビットは、シリアル化される為、ビットレートは、時間インタリーブされたビットシーケンスのパラレル発生ビット数(時間インタリーブされたビットシーケンスの、事前定義されたビット数)をサブレートに乗じたものとなる。
従って、発生させた疑似ランダムビットシーケンスを出力する際のフルレートは、上記複数の状態機械に含まれる状態機械110の数を中間的なレートに乗じたものに等しい。
状態機械110は、様々な方法で実装することが可能である。例えば、上述のような線形帰還シフトレジスタ(LFSR)を用いてよい。或いは、パラレル読み出しモードで動作する線形帰還シフトレジスタを用いてよい。図1bは、ビットストリームではなくワードストリームを発生させる構成の線形帰還シフトレジスタ600を示す。これを達成すべく、図6の線形帰還シフトレジスタ600は、その出力の構成が図5のものとは異なっている。図5のLFSRの場合、LFSRの出力は、主に第5のレジスタの出力を表しているが、図6のLFSR600の出力は、4つのレジスタ610−1、…、610−4の全ての出力と結合されている。LFSR600の出力は、レジスタ610−4の出力にある信号をビットy(k)として与え、第3のレジスタ610−3の出力にある信号をビットk+1として与え、第2のレジスタ610−2の出力にある信号をビットk+2として与え、第1のレジスタ110−1の出力をビットk+N−1=k+3として与える。
図6のLFSR600は、ビットシーケンス又はビットストリームを生成するにあたり、前述のパラレル読み出しをN=4つのレジスタに対して行い、その後、LFSRをN=4回クロッキングし、これらのクロッキングシーケンスの間の出力は無視される。当然ながら、図6に示されたLFSR600は、各ワードがNビットである複数のワードを取得することに使用できるだけではなく、LFSR600のレジスタ数Nを超えない任意のビット数をRとすれば、各ワードがRビットである複数のワードを取得することにも使用できる。この場合、パラレル読み出しはR段に限定してよく、LFSR600のサブシーケンスクロッキングはR回に限定してよい。これらの中間的なクロッキングの間の出力は無視する。
図7は、状態機械の一代替実装700を示す。状態機械700は、複数のクロックレジスタ710を含んでおり、各レジスタ710は、帰還信号用又は入力信号用の入力710aと、出力信号用の出力710bとを含んでいる。又、レジスタ710は更に、クロック信号用のクロック信号入力710cを含んでいる。図5及び図6のレジスタと同様に、レジスタ710も、各レジスタ710の入力710aに与えられる信号と、クロック信号入力710cに与えられる、対応するクロック信号とに対する応答として、少なくとも2つの状態(例えば、0又は1)を記憶するように適合されている。レジスタ710は、それぞれの出力710bにおいて、それぞれの状態を示す信号を出力するように適合されている。
図7のブロック図は、第1のレジスタ710−1及び第2のレジスタ710−2を示しており、これらは共通クロック信号線720と結合されており、共通クロック信号線720は、レジスタ710に対し、それぞれのクロック信号入力710cから、対応するクロック信号をパラレルに与える。更に、図7に示された状態機械700は、帰還回路730を含んでおり、帰還回路730は、複数の入力730aと複数の出力730bとを有している。入力730aの数は、少なくとも、状態機械700のレジスタ710の数Nに対応しており、各レジスタ710は、図示した実施形態では、帰還回路730の個々の入力に接続されている。従って、帰還回路700の出力730bの数も、少なくとも、レジスタ710の数に対応しており、各レジスタ710は、それぞれの入力710aを介して、帰還回路730の出力730bの1つに接続されている。しかしながら、本発明による他の実施形態では、帰還回路730の入力又は出力の数は、より少なくても、より多くてもよい。
複数のレジスタ710及び帰還回路730は、閉帰還ループを形成しており、帰還回路730は、レジスタ710の入力710aに与えられる複数の帰還信号を発生させる。レジスタ710は、クロック信号線720から与えられるクロック信号(例えば、クロック信号のエッジ又はトランジション又はレベル)の受信時に、入力710aに与えられている信号に応じた状態になるように適合されている為、帰還回路730は、クロック信号のクロックサイクルごとに帰還信号を生成することによって状態変化に影響を及ぼす。レジスタは、フリップフロップと称されることもある。言い換えると、レジスタ(例えば、レジスタ710)は、少なくとも2種類の状態を記憶するように適合されている。記憶すべき状態は、レジスタ710の入力710aに与えられており、クロック信号の受信時にレジスタ710に記憶される。これに対し、ラッチは、制御信号入力に与えられる制御信号に応じて、透過的であったり、状態をフリーズさせたりすることが可能である。
レジスタ710の出力710bは、状態機械の出力740に直接又は間接的に結合されている。即ち、レジスタ710の出力信号は、帰還回路730に与えられるだけでなく、出力740にも与えられる。
帰還回路の出力は、帰還機能と、帰還回路730の入力730aに与えられる信号とに依存する。帰還信号は、発生後、出力730bからレジスタ710の入力710aに与えられる。帰還回路730は、この文脈では、帰還機能を1回適用すると、レジスタ710が新しい状態になるように適合されており、この新しい状態は、例えば、(例えば、図5に示された)線形帰還シフトレジスタが、複数回のクロッキングの後にレジスタ710の最初の状態に初期化された状態を表す。言い換えると、帰還回路730に実装されている帰還機能は、状態機械700のレジスタ710にある状態で初期化されたLFSRにクロック信号のクロックサイクルを複数回適用してから、適切なクロック信号をクロック信号線720に与えることに対応する帰還信号を発生させて、レジスタ710の入力710aに与えることを可能にする。
帰還回路730に実装されている帰還機能を1回適用すると、結果として、クロック信号に対する応答としてレジスタ710の出力710bにおいて直後に発生したワード(事前定義された数のビット)が、LFSRの複数回のクロックサイクルの場合に必要な状態変化を表すように、帰還信号が発生する。
帰還信号は、図7に示されたように、帰還機能及び複数のレジスタ出力信号にのみ依存してよい。更なるパラメータは典型的には不要であるが、帰還機能自体は、プログラム可能であってもよく、帰還回路730に与えられていてもよい。
そのような状態機械700は、ワードストリームをより高速で発生させることが可能であってよい。これは、毎クロックサイクルにおいて、LFSRの場合のように帰還信号を1つだけ発生させるのではなく、それぞれがいずれかのレジスタ710に与えられる複数の帰還信号を発生させることによって可能である。
図7に示された状態機械700は、任意選択的に、レジスタ710の出力710bと、状態機械700の出力740との間に結合された回路750を含んでよい。回路750は、例えば、レジスタ710のパラレルの出力信号からシリアルのビットストリームを発生させ、これを状態機械700の出力740に与えるように適合された回路であってよい。
更に、破線矢印760で示されているように、帰還回路730は、帰還回路730の入力760にプログラミング信号を与えることによってプログラムすることが可能であってよく、これによって、帰還回路730は、帰還回路730に与えられる1つ以上のパラメータに依存することが可能になる。これにより、プログラム可能なビットストリームの発生を実装することが可能になる。これは、例えば、遷移行列の要素の集合と、帰還回路730の入力730aに与えられるレジスタ出力信号の各値とのmodular−2のスカラ積に基づいて達成できる。
まとめると、図7は、1つのクロックサイクルにおいてビットストリーム(例えば、時間インタリーブされたビットシーケンス)の複数のビットを発生させる、プログラム可能な状態機械を示している。
帰還機能は、遷移行列で表すことができる。この遷移行列は、本発明の概念に関連して、サブレート遷移行列と呼ぶこともある。これは、このサブレート遷移行列を使用する状態機械が、発生させるフルレートのビットシーケンスに対して、時間インタリーブされたビットシーケンスをサブレートで発生させる為である。帰還回路730は、サブレート遷移行列を収容する記憶装置を含んでよい。更に、レジスタ710は、サブレート初期状態で初期化されるように構成してよい。サブレート遷移行列、並びにサブレート初期状態は、発生させるビットシーケンスの生成関数及び生成関数の初期状態に基づく。
まとめると、ビットシーケンス発生器は、ワードストリームを発生させる状態機械700を含んでよく、ワードストリームの各ワードは、時間インタリーブされたビットシーケンスの複数のサブシーケンスビットを含んでいる。状態機械は、複数のクロックレジスタと、帰還回路とを含んでいる。この複数のクロックレジスタは、対応する入力と、対応する出力とを含んでいる。更に、帰還回路730は、レジスタ710の入力及び出力と結合されて、生成関数と、各レジスタの状態を表す、レジスタの複数のレジスタ出力信号とに基づいて、複数の帰還信号をレジスタの入力に与える。更に、状態機械700は、複数のレジスタ出力信号で定義された第1のワードが、時間インタリーブされたビットシーケンスのサブシーケンスビットの第1の集合を含むように、且つ、複数のレジスタ出力信号で定義された後続の第2のワードが、時間インタリーブされたビットシーケンスのサブシーケンスビットの第2の集合を含むように、構成されている。
図8は、状態機械の別の代替実装を示す。状態機械800は、入力信号un用の第1の入力802を含んでおり、この入力信号の各サブシーケンス値は、第1のクロックレートf1でクロッキングされて入力端子802に入力される。更に、装置800は、入力信号unをサブレート入力信号Unに変換するデシリアライザ840を含んでおり、サブレート入力信号Unは、第1のクロックレートf1のフラクションである第2のクロックレートf2でクロッキングされて、サブレート有限状態機械回路810に入力される。デシリアライザ840は、例えば、入力信号unのシリアル−パラレル変換を行う回路であってよい。従って、シリアル化解除されたサブレート入力信号Unは、フルレート入力信号のうちのR個のサブシーケンス値un、un+1、…、un+R−1を含んでよく、これらは、第2のクロックレートf2でクロッキングされて、サブレートFSM回路810に入力される。サブレートFSM回路810は、メモリ(具体的には、RAM)又はプログラマブルロジックデバイス又はプログラマブルロジックアレイ(PLA)を含んでよく、第2の入力812によってサブレートFSM回路810にフィードされる、前のサブレート内部状態znに基づいて、且つ、サブレート入力信号Un=[un,un+1,...,un+R−1]に基づいて、サブレート内部状態を更新するように構成されている。サブレートFSM回路810は、任意選択的に、前の、又は更新されたサブレート内部状態zn、zn+Rに基づいて、サブレート出力信号Anを与えるように構成されてよい。これによって、サブレート出力信号Amは、R個の信号値vm、vm+1、…、vm+R−1を含み、これらのサブレート出力信号Amをシリアライザ830にフィードしてシリアル化することにより、第1のクロックレートf1を有するシリアル出力信号Bmを生成することが可能である。実施形態によれば、シリアライザ回路830は、R個の出力信号値am、am+1、…、am+R−1を含むサブレート出力信号Amのパラレル−シリアル変換を行う回路を含んでよい。
サブレートFSM回路810は、サブレート入力信号Un=[un,un+1,…,un+R−1]及び前のサブレート内部状態znの形の入力に対する応答として、サブレート出力信号An=[an,an+1,…,an+R−1]及び更新されたサブレート内部状態zn+Rを、いずれも第2のクロックレートf2で出力する。更新されたサブレート内部状態zn+Rは、サブレート内部状態レジスタ820にフィードされる。サブレート内部状態レジスタ820は、2つの経路に分割できる単一出力線822を有してよい。第1の経路は、サブレートFSMも一部分であるシステムの別の部分と結合され、第2の経路は、状態レジスタ出力線812である。
実施形態によれば、デシリアライザ840は、入力信号unをシリアル−パラレル変換するように構成されており、これによって、サブレート入力信号Unは、時間間隔T2(これは第2のクロックレートf2の逆数である。即ち、T2=1/f2)の間に、複数のサブシーケンス時間間隔T1(これらの時間間隔は第1のクロックレートf1の逆数であってよい。即ち、T1=1/f1)に対応する、入力信号の複数のサブシーケンス値un、un+1、…、un+R−1を含む。
代替として、入力信号は、サブレート有限状態機械回路810をプログラムすることにのみ用いられる。例えば、サブレート遷移行列の行列要素は、サブレート有限状態機械回路810の記憶装置に与えられる。この例では、デシリアライザ840は必須部分ではなく、入力信号は、出力信号のクロックレートとは無関係なクロックレート又はビットレートで与えられてもよく、サブレート有限状態機械回路810が動作しているクロックレートで与えられてもよい。シリアライザ830の出力信号は、例えば、状態機械800が発生させる、時間インタリーブされたビットシーケンスであってよい。或いは、時間インタリーブされたビットシーケンスは、サブレート内部状態レジスタ820の出力線822のみから取得してもよく、サブレート内部状態レジスタ820の出力線822からと、シリアライザ830の出力信号との組み合わせの形で取得してもよい。
言い換えると、ビットシーケンス発生器は、第1のクロックレートを有する中間的なレートの入力信号の入力802と、中間的なレートの入力信号を、第1のクロックレートのフラクションである第2のクロックレートを有するサブレート入力信号に変換するデシリアライザ840と、サブレート有限状態機械810と、シリアライザ830と、を含む状態機械を含んでよい。サブレート有限状態機械810は、前のサブレート内部状態と、サブレート入力信号とに基づいてサブレート内部状態を更新し、前の、又は更新されたサブレート内部状態に基づいてサブレート出力信号を出力する。更に、シリアライザ830は、サブレート出力信号をシリアル化して、第1のクロックレートを有する中間的なレートの出力信号を生成し、サブレート有限状態機械810は、サブレート内部状態を第2のクロックレートとして更新するように構成されている。
より一般的には、時間インタリーブされたビットシーケンスのビットは、実装された状態機械に応じて、状態機械の状態ビットと等しくてよく、等しくなくてもよい。言い換えると、本発明の実施形態によっては、状態機械は、前の時間ステップにおいて状態機械が発生させた、時間インタリーブされたビットシーケンスの少なくとも1つのビットに基づいて、時間インタリーブされたビットシーケンスのビットを現在の時間ステップにおいて発生させてよい。
図7に示された実装と同様に、状態機械800は、サブレート遷移行列及びサブレート初期状態に基づいて、時間インタリーブされたビットシーケンスを発生させてよく、サブレート遷移行列及びサブレート初期状態は、いずれも、生成関数及び生成関数の初期状態から導出される。遷移行列は、サブレート有限状態機械回路810に記憶させてよく、サブレート内部状態レジスタ820は、サブレート初期状態で初期化してよい。
サブレート遷移行列及びサブレート初期状態は、上述のビットシーケンス発生器の上記複数の状態機械に含まれる全ての状態機械において様々であってよい。代替として、全ての状態機械は、それぞれの、時間インタリーブされたビットシーケンスを、同じサブレート遷移行列に基づいて、しかしながら、それぞれ異なるサブレート初期状態に基づいて発生させてよい。これが可能であり得るのは、基本となる生成関数及び初期状態が全ての状態機械について同じである為である。
上述のように、上記複数の状態機械に含まれる各状態機械ごとのサブレート遷移行列及びサブレート初期状態は、生成関数及び生成関数の初期状態から導出することが可能である。図2は、本発明の一実施形態による、複数の状態機械に含まれる状態機械についてサブレート遷移行列212及びサブレート初期状態214を計算する装置200のブロック図を示す。装置200は、プロセッサ210を含んでいる。このプロセッサ210は、状態機械のサブレート初段214の計算を、フルレートビットシーケンスの生成関数202、生成関数202の初期状態204、及び上記複数の状態機械に含まれる状態機械の数206に基づいて行う。更に、プロセッサ210は、状態機械のサブレート遷移行列212の計算を、生成関数202及び状態機械の数206に基づいて行う。
そのようなサブレート遷移行列212及びサブレート初期状態214は、上記複数の状態機械に含まれる各状態機械について計算可能である。このように、上記複数の状態機械は、任意の生成関数及び初期状態について、時間インタリーブされたビットシーケンスを発生させることが可能であってよく、これらを多重化器でマージすることにより、(例えば)生成関数及び初期状態で定義されるフルビットレートのビットシーケンスを生成することが可能である。
状態機械のサブレート遷移行列及びサブレート初期状態は、ビットシーケンス発生器に無関係に計算することが可能である。サブレート遷移行列及びサブレート初期状態は、記憶装置に記憶させておき、後で複数のビットシーケンス発生器で使用することが可能である。装置200は、後でサブレート遷移行列及びサブレート初期状態を使用するビットシーケンス発生器の上記複数の状態機械に含まれる状態機械の数がわかればよい。
このようにして、各状態機械を著しく低いクロックレートで動作させながら、ビットレートが非常に高いビットシーケンスを発生させることが可能である。言い換えると、各状態機械は、発生させる、フルレートのビットシーケンスより著しく低いビットレートで、時間インタリーブされたビットシーケンスを出力することが可能である。
サブレート初期状態を計算する場合と異なり、サブレート遷移行列は、例えば、生成関数の初期状態と無関係に求めることが可能である。この場合、サブレート遷移行列は、上記複数の状態機械に含まれる全ての状態機械について同じであってよい。そして、各状態機械について求められるサブレート初期状態が様々であることによってのみ、各状態機械の出力は様々であってよい。言い換えると、プロセッサ210は、上記複数の状態機械に含まれる各状態機械について、計算されるサブレート初期状態が互いに異なるように、サブレート初期状態を計算することが可能である。更に、プロセッサは、上記複数の状態機械に含まれる全ての状態機械についてサブレート遷移行列が同じになるように、サブレート遷移行列を計算することが可能である。言い換えると、全ての状態機械が同じサブレート遷移行列を使用することが可能である。
サブレート遷移行列は、例えば、図1に示された疑似ランダムビットシーケンス発生器の各状態機械について計算可能である。このビットシーケンス発生器は、生成関数に基づいてフルレート遷移行列を使用する単一状態機械と同じビットシーケンスを出力することが可能である。従って、上記複数の状態機械に含まれる状態機械のサブレート遷移行列は、そのようなフルレート遷移行列から導出することが可能である。言い換えると、プロセッサは、生成関数に基づいてフルレート遷移行列を求めることが可能であり、フルレート遷移行列及び状態機械数に基づいてサブレート遷移行列を計算することが可能である。更に、計算器は、フルレート遷移行列、生成関数の初期状態、及び状態機械数に基づいて、サブレート初期状態を計算することが可能である。
サブレート遷移行列は、例えば、事前定義された行数の正方行列であってよい。例えば、事前定義される行数は、状態機械の記憶装置に記憶させることが可能な遷移行列の最大サイズに応じて設定してよく、或いは、状態機械がサブレート遷移行列に基づいて、時間インタリーブされたビットシーケンスのビットを発生させる為に必要な最大計算時間に応じて設定してよい。サブレート遷移行列の、事前定義される行数は、生成関数の次数以上であってよい。例えば、多項式の生成関数の場合、多項式の次数は、上述の生成関数を定義するのに必要な係数の数を示している。従って、サブレート遷移行列は、少なくとも、生成関数を定義するのに必要な係数の数に等しい数の行を含んでよい。
プロセッサ210は、例えば、独立したハードウェアユニットとして、或いは、コンピュータ又はマイクロコントローラの一部として、或いは、コンピュータ又はマイクロコントローラ上で動作するように構成されたコンピュータプログラム又はソフトウェア製品として、実現可能である。
以下では、複数の状態機械のサブレート遷移行列及びサブレート初期状態の計算例を詳細に説明する。この説明は、本発明概念を表す、図3に示された疑似ランダムビットシーケンス発生器300のハードウェア実装に基づいて行う。図3では上記複数の状態機械を3つの状態機械310で表しているが、疑似ランダムビットシーケンス発生器は、2つ、又は4つ以上の状態機械でも実現可能である。各状態機械310はシリアライザ330に接続されており、各シリアライザ330は、多重化器320に接続されている。更に、各状態機械310は、帰還回路312と1つ以上のクロック状態レジスタ314とを含んでいる。帰還回路312は、状態レジスタ314に接続されており、状態レジスタ314の出力は、帰還回路312の入力と、対応するシリアライザ330の入力とに接続されている。疑似ランダムビットシーケンス発生器300は、それぞれが各状態機械(この接続では、レートf/(R・M)のサブレート線形有限状態機械とも呼ばれる)の出力からシリアル化された、M個の時間インタリーブされたビットストリームwm(j)を有する目標アーキテクチャの一例を表している。
提案されているアーキテクチャ(図3)では、ビットレートがf/MであるM個のビットストリームwm(j)(m=0,1,...,M−1)を時間インタリーブ(多重化)することによって、ビットレートがfである同じシーケンス{s(i)}を発生させており、各ビットストリームwm(j)は、Rビット幅のワードvm(k)を更にシリアル化することによって発生させており、vm(k)は、f/(R・M)のレートで動作するサブレート線形有限状態機械(LFSM)の出力である。Mは、各状態機械又は時間インタリーブされた各ビットシーケンスの個別番号を表している。この個別番号は、様々な時間インタリーブされたビットシーケンスを選択する順番を決めるものであってよい。例えば、多重化器は、状態機械から発生した、時間インタリーブされたビットシーケンスから、最初に、個別番号m=0が付いたビットを選択し、その次に、状態機械から発生した、時間インタリーブされたビットシーケンスから、個別番号m=1が付いたビットを選択する(以降も同様)。
M個のLFSMの全てが、例えば、プログラム可能な、N×Nに展開された状態遷移行列Tm(サブレート遷移行列)と、プログラム可能な、展開された初期状態ym(0)(サブレート初期状態)とを有している。この例では専用の出力行列がない為、展開された状態ym∈BNは、各出力と、全ての到達可能なymを一意識別する状態zm∈BP、P≦Nとを含んでおり、従って、「展開された状態」という用語になる。
1つの目標は、M個の時間インタリーブされたLFSMの展開された状態遷移行列Tm∈BN×N及び展開された初期状態ym(0)∈BN、m=0,1,...,M−1を、PRBS多項式g(x)(生成関数)、時間インタリーブされたビットストリームの数M(状態機械数)、及びレート減少係数Rの関数として計算することと、この計算が可能である条件を与えることと、である。
N=32、M=2、且つR∈{4,8,12,16,20,24,28,32}であれば、次数P≦Nである全ての多項式に対して解が存在するのは明らかである。
例えば、特許出願「J. Rivoir: State machine and generator for generating a description of a state machine feedback function(国際公開第2010034326(A1)号パンフレット)」、及び「J. Rivoir: Apparatus and method for emulating a full−rate finite state machine(国際公開第2010034327(A1)号パンフレット)」は、任意の(非線形)FSMの複数ビットを1クロックサイクルで発生させることを扱っている。しかしながら、サブレートLFSMの状態遷移行列の要素数は、サブレート係数とともに2次的に増大する。本発明概念は、複数のビットストリームを時間インタリーブすることを提案している為、必要なハードウェア能力は直線的に増えるのみである。しかしながら、このアプローチでエミュレートできるのは、PRBSを発生させることの制約にならない、独立した線形FSMの出力だけである。
以下では、GF(2)の行列アプローチを用いており、これによって、分解環g(x)∈BP[x]/(xP−1)の抽象概念の参照が不要になる。LFSRの詳細な処理及び関連する数学的概念について、A.ノイバウアー(A. Neubauer)、J.フロイデンベルガー(J. Freudenberger)、V.クーン(V. Kuhn)著「符号理論−アルゴリズム、アーキテクチャ、応用(Coding Theory − Algorithms, Architectures and Applications)」(ワイリー(Wiley)、2007年)及びD.S.ダミット(D.S. Dummit)、R.M.フート(R.M. Foote)著「抽象代数(Abstract Algebra)」(ワイリー(Wiley)、2004年)に記載されている。
LFSRの出力シーケンス{s(i)}は、L個のステップを繰り返す。g(x)がいわゆる原始多項式であれば、シーケンス長は最大限、即ち、L=Lmax=2P−1となり、原始多項式でない場合は、LはLmaxの約数である。奇数Lmaxの約数であることから、Lも奇数である。
Lは奇数 (2)
Lは奇数 (2)
ここからは、最大長のシーケンス(即ち、原始多項式)を仮定する。次数Pの一般ブールLFSM及び1つの出力s(i)は、次の形式の状態式を有する。
x(0)=x0∈BP
x(i+1)=G・x(i),i=0,1,2,..., (3)
s(i)=c’・x(i)
但し、演算は2進ガロア場GF(2)で行われる。即ち、論理XORは「加算」として使用され、論理ANDは「乗算」として使用される。「・」は、行列の内積を表し、省略されることもある。x0は、生成関数の初期状態であり、Gは、フルレート遷移行列であり、s(i)は、発生させるビットシーケンスである。
x(0)=x0∈BP
x(i+1)=G・x(i),i=0,1,2,..., (3)
s(i)=c’・x(i)
但し、演算は2進ガロア場GF(2)で行われる。即ち、論理XORは「加算」として使用され、論理ANDは「乗算」として使用される。「・」は、行列の内積を表し、省略されることもある。x0は、生成関数の初期状態であり、Gは、フルレート遷移行列であり、s(i)は、発生させるビットシーケンスである。
通常の状態を次式のように番号づけすると、
x=(x1,x2,...,xP)’∈BP (4)
状態遷移行列(フルレート遷移行列)は次式のとおりである。
x=(x1,x2,...,xP)’∈BP (4)
状態遷移行列(フルレート遷移行列)は次式のとおりである。
g=(g1,g2,...,gP)’∈BP (6)
のトップ随伴行列とも呼ばれている。出力sは最後の状態変数と等しい為、出力ベクトルは、次式で示されるP番目の単位行ベクトルになる。
c’=e’P=(0,0,...0,1)∈BP (7)
(3)を繰り返し適用すると、i番目の時間ステップで、次式で示される状態及び出力が与えられる。
x(i)=G’・x0
s(i)=e’PG’・x0 (8)
x(i)=G’・x0
s(i)=e’PG’・x0 (8)
全ての状態が、次式のように正確にL=Lmax=2P−1個の時間ステップを繰り返す為、
x(L+i)=GL・x(i) (9)
次のように、P×P状態遷移行列Gは巡回行列である。
GL=I (10)
x(L+i)=GL・x(i) (9)
次のように、P×P状態遷移行列Gは巡回行列である。
GL=I (10)
但し、特性(10)は、巡回行列であることの為には十分ではないことに注意されたい。G’x(i=0,1,...,L−1)は又、BPの基底を形成しなければならないが、ここでこれが当てはまるのは、xがBP中のL=Lmax=2P−1個の非ゼロ状態を全て網羅する為である。
意図されたPRBS{s(i)}は、M個のビットストリームwm(j)をm={0,1,...,M−1,0,1,...}の順に時間インタリーブすることによって発生させなければならず、従って、次式のように構築しなければならない。
wm(j)=s(m+j・M) (11)
但し、j=0,1,2,...及びm=0,1,...,M−1である。wm(j)は、R個の要素vm(k)がr=1,2,...,Rの順にシリアル化される為(図3を参照)、vm(k)は、次式のように、連続するR個の値wm(j)を含んでよい。
wm(j)=s(m+j・M) (11)
但し、j=0,1,2,...及びm=0,1,...,M−1である。wm(j)は、R個の要素vm(k)がr=1,2,...,Rの順にシリアル化される為(図3を参照)、vm(k)は、次式のように、連続するR個の値wm(j)を含んでよい。
更に、状態符号化及び出力は選択可能である。シーケンス長がLmax=2P−1であるLFSMは、少なくともP個の状態ビットを必要とする。Mとシーケンス長との公約数がない場合、時間インタリーブされた各LFSM(上記複数の状態機械に含まれる状態機械)は、Lmax個の状態の全てを網羅する為、P個の要素を有する状態ベクトルzm∈BPも必要である。このことは、次の、第1の(明白な)要件につながる。
要件1:P≦N (14)
要件1:P≦N (14)
なお、MとLとの公約数がない場合、各LFSMは、L/gcd(M,L)個の異なる状態を発生させればよく、従って、これらの状態を表す為に
導出を簡略化する為に、実用的に妥当なケースとして、Mを偶数とする。従って、次のように、Mと、必ず奇数であるLとの公約数はない((2)を参照)。
要件2:gcd(M,L)=1 (15)
要件2:gcd(M,L)=1 (15)
そこで、状態符号化は、少なくともR≦Pである場合は、vm(k)のR個の要素が最初のP個の状態ビットと等しくなるように、選択可能である。選択された状態符号化は、次のように、パターン(13)を踏襲する。
RがPより大きい場合に対応する為には、利用可能なN個の出力ym∈BNを全て、次のように、この同じパターンに従って選択する。
この選択により、次式のように、次の状態及び出力の間で式を共有することが可能になる。このことが必要であるのは、目標アーキテクチャが非トリビアル出力行列を特徴としない為である。
vm(k)=V・ym(k) (19)
但し、
vm(k)=V・ym(k) (19)
但し、
なお、一般的なLFSR表記を踏襲して図5に示された、状態ベクトルのP番目の要素を出力する状態機械と異なり、上述の状態機械は、最初のR個の状態要素を出力する。この番号付けにより、インデックス演算が容易になる。
zm(k)は、次のように、状態符号化(16)及び式(8)から計算できる。
次に、QPの非特異性を示す。J.ジョーダン(J. Jordan)著「多項式シフト逆反復の制御性(Controllability of polynomial−shift inverse iteration)」(システム及び制御に関するベネルクス会議の議事録(Proceedings of the Benelux Meeting on Systems and Control)、ヘルヴォイルト(Helvoirt)、オランダ(The Netherlands)、2004年3月17〜19日)における主定理によれば、システムは、そのシステム行列が巡回行列である場合に限り、制御可能である。gcd(M,L)=1と仮定すると、Gが巡回行列である為、GMは確かに巡回行列である。双対性の原理により、類似の表現が可観測性にも当てはまり、これは、可観測性行列がフルランクであること、即ち、この場合には、正方行列QPが非特異性であることを示している。
これにより、次のように、(22)をGkMRx(m)に関して解くことが可能になる。
zm(k)に関する状態式は、(22)に時間ステップk+1を適用し、上記結果(24)を用いることによって、次のように導出できる。
状態遷移行列を
(26)はSとGMRとを相似変換によって結合する為、状態zm(k)は、毎サイクルkの間にMR個のLFSRステップだけ進む。
(21)、(22)、(23)と同様に、(24)を用いて、出力式を次のように書くことができる。
図3に示されたような、暗黙的出力を有するLFSMの場合、これらの状態式及び出力式は、図3の構造にマッピングすることが可能であり、これは専用出力行列を含まない。
ym(k)のN個の要素を、展開された状態ベクトルと見なすことが可能であり、これは、次式のように、状態ベクトルzm(k)のP個の要素が、ym(k)の最初のP個の要素と等しい為である。
ym(0)=QNx(m) (33)
とともに、状態及び出力ym(k)を組み合わせた最終的なLFSRは次式になる。
ym(0)=QN・x(m)
ym(k+1)=T・ym(k) (34)
zm(k)を介する遠回りが必要であったのは、QNが一般に正方行列ではない為に、疑似逆行列だけではなく通常の逆行列を有しない為である。
提案されている概念は、例えば、より低速の複数のビットストリームを時間インタリーブし、更にシリアル化した出力として、プログラム可能なLFSMから発生させることにより、高速PRBSを発生させる方法を提供する。
複数の状態機械に含まれる状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置は、疑似ランダムビットシーケンス発生器とは独立に実現可能である。これは、それらの状態機械のサブレート遷移行列及びサブレート初期状態を計算するには、目標ビットシーケンス発生器の一部のハードウェアパラメータ(例えば、上記複数の状態機械に含まれる状態機械の数)があればよい為である。サブレート送信行列及びサブレート初期状態は、記憶装置に記憶させることが可能であり、後に疑似ランダムビットシーケンス発生器の状態機械に転送することが可能である。このように、例えば、複数の様々な生成関数及び/又は初期状態に対応する遷移行列及びサブレート初期状態を求めて記憶させることが可能である。この記憶されたデータを、同じハードウェアからなる複数の疑似ランダムビットシーケンス発生器で使用することが可能である。
同様に、記載されている概念によるビットシーケンス発生器は、上記複数の状態機械に含まれる各状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置とは独立に実装可能であり、これは、記憶装置が、1つ以上の生成関数に関して、各状態機械の遷移行列及びサブレート初期状態を記憶し、出力することが可能な為である。
しかしながら、例えば、ユーザが個別の生成関数及び/又は初期状態を定義することを必要とする場合には、ビットシーケンス発生器と、上記複数の状態機械に含まれる各状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置との組み合わせを用いてよい。図4は、本発明の一実施形態による、上記複数の状態機械に含まれる状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置を含むビットシーケンス発生器400のブロック図を示す。図1に示された疑似ランダムビットシーケンス発生器と同様に、疑似ランダムビットシーケンス発生器400では、2つの状態機械110が多重化器120に接続されている。更に、ビットシーケンス発生器400では、サブレート遷移行列212及びサブレート初期状態214を計算する装置のプロセッサ210が各状態機械110に接続されている。プロセッサ210は、サブレート遷移行列212及びサブレート初期状態214を計算して各状態機械110に与える。各状態機械110は、与えられたサブレート遷移行列212及びサブレート初期状態214に基づいて、それぞれ対応する、時間インタリーブされたビットシーケンス112を発生させる。これらの時間インタリーブされたビットシーケンス112が多重化器120でマージされて、生成関数及び初期状態で定義されるビットシーケンス122がフルレートで出力される。
本発明による幾つかの実施形態は、ビットシーケンス発生器、及び/又は、上述のように上記複数の状態機械に含まれる状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置を含む自動検査設備に関する。
複数の独立した状態機械110を含むビットシーケンス発生器を実装することは、自動検査設備の複数の独立した検査チャネルを各状態機械の実現に用いることが可能である点で、自動検査設備にとって有利である。言い換えると、上述の概念に従って、多重化器を追加し、上記複数の状態機械に含まれる各状態機械のサブレート遷移行列及びサブレート初期状態を与えるだけで、非常に高速のビットシーケンス(例えば、疑似ランダムビットシーケンス)を与えることが可能なビットシーケンス発生器を実装できることになる。
本発明による幾つかの実施形態は、時間インタリーブされたサブレート状態機械を用いて疑似ランダムビットシーケンスを発生させることに関する。
これに関して、提案されている概念は、例えば、12.8Gbps(又は別のビットレート)のPRBSを発生させることの理論を説明する。例えば、実速度LFSRを用いて12.8GbpsのPRBSを発生させることは技術的に非常に困難である為、本概念は、例えば、2つ(M=2)のコアの6.8Gbps出力を時間インタリーブすることを提案しており、各コアは、6.8Gbps出力の更なるフラクション1/Rで動作するN次のプログラム可能な線形有限状態機械(LFSM)を含んでいる。各サブレート状態機械の初期状態及び後続状態についての式は、P次の生成多項式、インタリーブされたビットストリームの数M、及びレート減少係数Rの関数として導出可能である。
例えば、記載されている概念は、実速度線形帰還シフトレジスタを用いて疑似ランダムビットシーケンスを(例えば12.8Gbpsで)直接発生させることが非常に困難であるという問題を解決する。これは更に、特に多項式(生成関数)がプログラム可能になれば、将来的には20Gbps、40Gbps、100Gbps、又はそれ以上に増える。記載されている概念を用いることにより、ロジック(状態機械)の動作を遅くすることが可能になる。提案されている概念は、疑似ランダムビットシーケンスだけでなく、任意の線形有限状態機械の出力についても当てはまりうる。多項式は、非プリミティブであることも可能である。これは、L(出力シーケンスの繰り返しビット数)は、依然として奇数である為である。M(上記複数の状態機械に含まれる状態機械の数)は、Lの約数であることも可能である。記載されている概念は、専用の出力行列にも当てはまりうる。これにより、この例では、あらゆるものをより簡単にすることが可能である。
記載されている概念を用いることにより、上記複数の状態機械又は線形帰還シフトレジスタの出力を時間インタリーブすることにより、結合された出力が、生成関数及び初期状態で定義されるビットシーケンスを与える単一の線形帰還シフトレジスタの出力と等しくなるようにすることが可能である。
言い換えると、本発明の幾つかの実施形態では、多重化器以外の追加ハードウェアは、必須となり得る他の目的の為には不要であってよい。更に、記載されている概念は、既存の低速疑似ランダムビットシーケンス発生器を活用することが可能である。従って、記載されている概念によるビットシーケンス発生器は、ハードウェアを追加する複雑さがなくてよく、追加の電力消費がなくてよく、更なる高速に対応する規模を有してよく、且つ/又は、任意の多項式を発生させることが可能である。言い換えると、記載されている概念を用いることにより、プログラム可能な多項式を使用して、12.8Gbps(又は、更に高速)の疑似ランダムビットシーケンスを発生させることが可能になる。
記載されている概念と比較すると、既知のカスタムバイポーラ設計を、例えば、12.8Gbpsで動作させることは、非常に困難であり、膨大な量の電力を消費し、多項式に制約を与える。
図9は、本発明の一実施形態による、生成関数及び生成関数の初期状態で定義されるビットシーケンスを発生させる方法900のフローチャートを示す。方法900は、複数の時間インタリーブされたビットシーケンスを発生させるステップ910と、発生させた、時間インタリーブされた各ビットシーケンスから1つのビットを連続的に選択することを繰り返すことにより、生成関数及び生成関数の初期状態で定義されるビットシーケンスを生成するステップ920と、を含む。時間インタリーブされたビットシーケンスの、現在の時間ステップにおいて発生させるビットは、先行する時間ステップにおいて、(例えば、この、時間インタリーブされたビットシーケンスについて)発生させた少なくとも1つのビットに基づき、且つ、発生させるビットシーケンスの生成関数に基づき、且つ、生成関数の初期状態に基づき、且つ、発生させた、別の、時間インタリーブされたビットシーケンスから独立している。
方法900は、上述のビットシーケンス発生器の特徴に対応する更なるステップを含んでよい。
図10は、本発明の一実施形態による、複数の状態機械に含まれる状態機械についてサブレート遷移行列及びサブレート初期状態を計算する方法1000のフローチャートを示す。方法1000は、状態機械のサブレート初期状態を計算するステップ1010と、状態機械のサブレート遷移行列を計算するステップ1020と、を含む。サブレート初期状態の計算1010は、フルレートビットシーケンスの生成関数と、生成関数の初期状態と、上記複数の状態機械に含まれる状態機械の数と、に基づいて行う。更に、サブレート遷移行列の計算1020は、生成関数と、状態機械の数とに基づいて行う。
方法1000は、上述の、複数の状態機械に含まれる状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置の特徴に対応する更なるステップを含んでよい。
記載された概念の幾つかの態様を一装置の文脈で説明してきたが、これらの態様は、ブロックや装置が、方法ステップや方法ステップの特徴に対応しており、対応する方法の説明にもなっていることは明らかである。同様に、方法ステップの文脈で説明された各態様は、対応する装置の、対応するブロックやアイテムや特徴の説明にもなっている。
本発明の実施形態は、特定の実装要件に応じて、ハードウェア又はソフトウェアの形で実装可能である。この実装は、電子的読み出し可能な制御信号が記憶されたデジタル記憶媒体(例えば、フロッピーディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROM、又はフラッシュメモリ)を用いて実施可能であり、これらの記憶媒体は、それぞれの方法が実施されるように、プログラム可能なコンピュータシステムと連携する(又は連携することが可能である)。従って、これらのデジタル記憶媒体は、コンピュータ可読であってよい。
本発明による幾つかの実施形態は、電子的読み出し可能な制御信号を有するデータ担体を含み、これらの制御信号は、本明細書に記載の方法のいずれかが実施されるように、プログラム可能なコンピュータシステムと連携することが可能である。
一般に、本発明の実施形態は、プログラムコードを有するコンピュータプログラム製品として実装可能であり、このプログラムコードは、このコンピュータプログラム製品がコンピュータ上で実行されたときに本方法のいずれかを実施するように動作する。このプログラムコードは、例えば、機械可読担体に記憶されてよい。
他の実施形態は、機械可読担体に記憶された、本明細書に記載の方法のいずれかを実施する為のコンピュータプログラムを含む。
言い換えると、本発明の方法の一実施形態は、従って、コンピュータプログラムがコンピュータ上で実行されたときに、本明細書に記載の方法のいずれかを実施するプログラムコードを有するコンピュータプログラムである。
本発明の方法の別の実施形態は、従って、本明細書に記載の方法のいずれかを実施するコンピュータプログラムが記録されたデータ担体(又はデジタル記憶媒体、又はコンピュータ可読媒体)である。
本発明の方法の別の実施形態は、従って、本明細書に記載の方法のいずれかを実施する為のコンピュータプログラムを表すデータストリーム又は信号シーケンスである。このデータストリーム又は信号シーケンスは、例えば、データ通信接続経由(例えば、インターネット経由)で転送されるように構成されてよい。
別の実施形態は、本明細書に記載の方法のいずれかを実施するように構成(又は適合)された処理手段(例えば、コンピュータ、又はプログラマブルロジックデバイス)を含む。
別の実施形態は、本明細書に記載の方法のいずれかを実施する為のコンピュータプログラムがインストールされたコンピュータを含む。
実施形態によっては、プログラマブルロジックデバイス(例えば、フィールドプログラマブルゲートアレイ)を用いて、本明細書に記載の方法の機能性の一部又は全てを実施することが可能である。実施形態によっては、本明細書に記載の方法のいずれかを実施する為に、フィールドプログラマブルゲートアレイをマイクロプロセッサと連携させることが可能である。一般に、これらの方法は、任意のハードウェア装置での実施が好ましい。
上述の実施形態は、本発明の原理に対して例示的であるに過ぎない。本明細書に記載の構成及び詳細に対する修正や変更が可能であることは、当業者であれば明らかであろうことを理解されたい。従って、本発明の趣旨は、後述の特許請求の範囲によってのみ限定されるものであって、本明細書に記載の実施形態の記述及び説明によって提示された具体的詳細によって限定されるものではない。
Claims (25)
- 生成関数及び前記生成関数の初期状態で定義されるビットシーケンス(122、s(i))を発生させるビットシーケンス発生器(100、300、400)であって、
複数の状態機械であって、前記複数の状態機械に含まれる各状態機械(110、310)は、時間インタリーブされたビットシーケンス(112、wm(j))を発生させるように構成されており、状態機械(110、310)が、現在の時間ステップにおいて、前記時間インタリーブされたビットシーケンス(112、wm(j))のビットを発生させることを、先行する時間ステップにおいて、前記状態機械(110、310)が発生させた少なくとも1つのビットに基づいて、且つ、発生させる前記ビットシーケンス(122、s(i))の前記生成関数に基づいて、且つ、前記生成関数の前記初期状態に基づいて、且つ、前記複数の状態機械(110、310)に含まれる別の状態機械(110、310)が発生させた前記時間インタリーブされたビットシーケンス(112、wm(j))とは独立に行う、前記複数の状態機械と、
発生した、時間インタリーブされたビットシーケンス(112、wm(j))のそれぞれから1つのビットを連続的に選択することを繰り返すことにより、前記生成関数及び前記生成関数の前記初期状態で定義される前記ビットシーケンス(122、s(i))を生成するように構成された多重化器(120)と、
を備えるビットシーケンス発生器。 - 前記複数の状態機械に含まれる状態機械(110、310)が、各時間ステップにおいて、対応する前記時間インタリーブされたビットシーケンス(112、wm(j))のうちの事前定義された数(R)のビットを発生させるように構成されている、請求項1に記載のビットシーケンス発生器。
- 前記複数の状態機械に含まれる状態機械(110、310)が、前記時間インタリーブされたビットシーケンス(112、wm(j))のうちの前記事前定義された数(R)のビットをサブビットレートで発生させるように構成されており、前記多重化器(120)は、前記生成したビットシーケンスを、前記サブビットレートの整数倍であるフルビットレートで出力するように構成されている、請求項2に記載のビットシーケンス発生器。
- 前記整数倍の整数は、前記時間インタリーブされたビットシーケンス(112、wm(j))のうちの前記事前定義されたビット数(R)と、前記複数の状態機械(110、310)に含まれる状態機械の数(M)との積である、請求項3に記載のビットシーケンス発生器。
- 前記複数の状態機械に含まれる前記状態機械(10、310)の状態は、同じ時間ステップの間に前記状態機械(110、310)がパラレルに発生させる事前定義された数(N)の状態ビットで定義され、前記事前定義された数(N)の状態ビットは、同じ時間ステップにおける前記時間インタリーブされたビットシーケンス(112、wm(j))のうちの少なくとも前記事前定義された数(R)のビットを含む、請求項2から4のいずれか一項に記載のビットシーケンス発生器。
- 前記状態機械(110、310)はシリアライザ(330)を備えており、前記シリアライザ(330)は、前記時間インタリーブされたビットシーケンス(112、wm(j))のうちの、ある時間ステップにおいて発生する前記状態ビットに含まれているビットを各時間ステップにおいて選択することにより、前記時間インタリーブされたビットシーケンス(112、wm(j))を中間的なビットレート(f/M)でシリアル出力するように構成されており、前記中間的なビットレート(f/M)は、前記サブビットレート(f/(RM))に、前記時間インタリーブされたビットシーケンス(112、wm(j))のうちの、同じ時間ステップの間に発生する、前記事前定義されたビット数(R)を乗じたものに等しい、請求項5に記載のビットシーケンス発生器。
- 前記複数の状態機械に含まれる状態機械(110、310)が、サブレート遷移行列(T)及びサブレート初期状態(ym(0))に基づいて、前記時間インタリーブされたビットシーケンス(112、wm(j))を発生させ、前記サブレート遷移行列(T)及び前記サブレート初期状態(ym(0))は、前記生成関数及び前記生成関数の前記初期状態に基づく、請求項1から6のいずれか一項に記載のビットシーケンス発生器。
- 前記サブレート遷移行列(T)は、前記複数の状態機械に含まれる全ての状態機械(110、310)に対して同じであり、前記サブレート初期状態(ym(0))は、前記複数の状態機械に含まれる全ての状態機械(110、310)に対して様々である、請求項7に記載のビットシーケンス発生器。
- 前記複数の状態機械は、状態機械(110、310)を2つだけ含むか、状態機械(110、310)を3つ以上含む、請求項1から8のいずれか一項に記載のビットシーケンス発生器。
- 前記発生させるビットシーケンス(122、s(i))は、疑似ランダムビットシーケンスである、請求項1から9のいずれか一項に記載のビットシーケンス発生器。
- 複数の状態機械に含まれる状態機械のサブレート遷移行列(212、T)及びサブレート初期状態(214、ym(0))を計算する装置(200)であって、
前記状態機械の前記サブレート初期状態(214、ym(0))の計算を、フルレートのビットシーケンスの生成関数(202)と、前記生成関数の初期状態(204)と、前記複数の状態機械に含まれる状態機械の数(M)と、に基づいて行うように構成されており、且つ、前記状態機械の前記サブレート遷移行列(212、T)の計算を、前記生成関数(202)及び前記状態機械数(206、M)に基づいて行うように構成されているプロセッサ(210)
を備える装置。 - 前記プロセッサ(210)は、前記サブレート遷移行列(212、T)の計算を、前記生成関数(202)の前記初期状態(204)とは独立に行うように構成されている、請求項11に記載の装置。
- 前記プロセッサ(210)は、前記生成関数(202)に基づいてフルレート遷移行列(G)を求めるように構成されており、前記プロセッサ(210)は、前記フルレート遷移行列(G)及び前記状態機械数(M)に基づいて前記サブレート遷移行列(212、T)を計算するように構成されており、前記プロセッサ(210)は、前記フルレート遷移行列(G)、前記生成関数(202)の前記初期状態(204)、及び前記状態機械数(206、M)に基づいて前記サブレート初期状態(214)を計算するように構成されている、請求項11又は12に記載の装置。
- 前記プロセッサ(210)は、前記複数の状態機械に含まれる各状態機械について前記サブレート初期状態(214、ym(0))を計算するように構成されており、前記計算されたサブレート初期状態(214、ym(0))が互いに異なる、請求項11から13のいずれか一項に記載の装置。
- 前記プロセッサ(210)は、前記サブレート遷移行列(212、T)を計算するように構成されており、前記サブレート遷移行列(212、T)は、前記複数の状態機械に含まれる全ての状態機械に対して同じである、請求項11から14のいずれか一項に記載の装置。
- 前記サブレート遷移行列(212、T)は、事前定義された行数(N)を有する正方行列であり、前記事前定義された行数(N)は、前記生成関数の次数(P)以上である、請求項11から15のいずれか一項に記載の装置。
- 請求項11から18のいずれか一項に記載の複数の状態機械に含まれる状態機械のサブレート遷移行列及びサブレート初期状態を計算する装置を備え、前記ビットシーケンス発生器の前記複数の状態機械に含まれる状態機械が、状態機械のサブレート遷移行列及びサブレート初期状態を計算する前記装置によって計算される前記サブレート遷移行列及び前記サブレート初期状態に基づいて、前記対応する時間インタリーブされたビットシーケンスを発生させる、請求項1から10のいずれか一項に記載のビットシーケンス発生器。
- 状態機械(800)を有し、前記状態機械(800)は、
第1のクロックレートを有する中間的なレートの入力信号の為の入力(802)と、
前記中間的なレートの入力信号を、前記第1のクロックレートのフラクションである第2のクロックレートを有するサブレート入力信号に変換するデシリアライザ(840)と、
前のサブレート内部状態と、前記サブレート入力信号とに基づいてサブレート内部状態を更新することと、前記前の、又は更新されたサブレート内部状態に基づいてサブレート出力信号を出力することと、を行うように構成されたサブレート有限状態機械(810)と、
前記サブレート出力信号をシリアル化して、前記第1のクロックレートを有する中間的なレートの出力信号を生成するように構成されたシリアライザ(830)と、を備え、
前記サブレート有限状態機械(810)は、前記サブレート内部状態を前記第2のクロックレートで更新するように構成されている、
請求項1から10、又は19のいずれか一項に記載のビットシーケンス発生器。 - ワードストリームを発生させる状態機械を有し、前記ワードストリームの各ワードは、時間インタリーブされたビットシーケンスのうちの複数のサブシーケンスビットを含み、前記状態機械は、
対応する入力及び対応する出力を備える複数のクロックレジスタ(710)と、
前記レジスタ(710)の前記入力及び前記出力と結合されて、前記生成関数と、前記レジスタの状態を表す、前記レジスタの前記複数のレジスタ出力信号とに基づいて、複数の帰還信号を前記レジスタの前記入力に与えるように適合された帰還回路(730)と、を備え、
前記状態機械(700)は、前記複数のレジスタ出力信号で定義された第1のワードが、前記時間インタリーブされたビットシーケンスのサブシーケンスビットの第1の集合を含むように、且つ、前記複数のレジスタ出力信号で定義された後続の第2のワードが、前記時間インタリーブされたビットシーケンスのサブシーケンスビットの第2の集合を含むように、構成されている、
請求項1から10、又は19のいずれか一項に記載のビットシーケンス発生器。 - 請求項1から10、又は請求項19から21のいずれか一項に記載のビットシーケンス発生器を備えるか、請求項11から18のいずれか一項に記載の、前記複数の状態機械に含まれる状態機械の別個の遷移行列及び別個の初期状態を計算する装置を備える自動検査設備。
- 生成関数及び前記生成関数の初期状態で定義されるビットシーケンスを発生させる方法(900)であって、
複数の時間インタリーブされたビットシーケンスを発生させるステップ(910)であって、前記複数の時間インタリーブされたビットシーケンスに含まれる時間インタリーブされたビットシーケンスのビットを、現在の時間ステップにおいて発生させること(910)は、先行する時間ステップにおいて発生させた少なくとも1つのビットに基づき、且つ、発生させる前記ビットシーケンスの前記生成関数に基づき、且つ、前記生成関数の前記初期状態に基づき、且つ、前記複数の時間インタリーブされたビットシーケンスに含まれる、発生させた、別の、時間インタリーブされたビットシーケンスから独立している、前記発生させるステップ(910)と、
発生させた、時間インタリーブされた各ビットシーケンスから1つのビットを連続的に選択することを繰り返すことにより、前記生成関数及び前記生成関数の初期状態で定義される前記ビットシーケンスを生成するステップ(920)と、
を含む方法(900)。 - 複数の状態機械に含まれる状態機械のサブレート遷移行列及びサブレート初期状態を計算する方法(1000)であって、
前記状態機械の前記サブレート初期状態の計算を、フルレートビットシーケンスの生成関数と、前記生成関数の初期状態と、前記複数の状態機械に含まれる状態機械の数と、に基づいて行うステップ(1010)と、
前記状態機械の前記サブレート遷移行列の計算を、前記生成関数と、前記状態機械数とに基づいて行うステップ(1020)と、
を含む方法(1000)。 - コンピュータプログラムであって、コンピュータ上又はマイクロコントローラ上で実行された場合に請求項23又は24に記載の方法を実施するプログラムコードを有するコンピュータプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2010/061310 WO2012016588A1 (en) | 2010-08-03 | 2010-08-03 | Bit sequence generator |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013534336A true JP2013534336A (ja) | 2013-09-02 |
Family
ID=43806849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013522111A Pending JP2013534336A (ja) | 2010-08-03 | 2010-08-03 | ビットシーケンス発生器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9575726B2 (ja) |
JP (1) | JP2013534336A (ja) |
KR (1) | KR101402392B1 (ja) |
CN (1) | CN103098018B (ja) |
TW (1) | TW201214277A (ja) |
WO (1) | WO2012016588A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015161969A (ja) * | 2014-02-26 | 2015-09-07 | セイコーエプソン株式会社 | マイクロコンピューター及び電子機器 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9575726B2 (en) * | 2010-08-03 | 2017-02-21 | Advantest Corporation | Bit sequence generator and apparatus for calculating a sub-rate transition matrix and a sub-rate initial state for a state machine of a plurality of state machines |
US8861725B2 (en) * | 2012-07-10 | 2014-10-14 | Infineon Technologies Ag | Random bit stream generator with enhanced backward secrecy |
US9588860B2 (en) * | 2013-12-26 | 2017-03-07 | Semtech Canada Corporation | Systems and methods for random number generation using a fractional rate clock |
WO2015100561A1 (zh) * | 2013-12-30 | 2015-07-09 | 华为技术有限公司 | 极化码的速率匹配方法及装置 |
CN103713880B (zh) * | 2014-01-03 | 2017-02-22 | 浪潮(北京)电子信息产业有限公司 | 一种序列生成器及其设计方法 |
CN103929278B (zh) * | 2014-05-14 | 2017-06-06 | 中国电子科技集团公司第五十四研究所 | 一种基于交织器伪随机码的构造方法 |
US10700888B2 (en) | 2018-08-06 | 2020-06-30 | Macom Technology Solutions Holdings, Inc. | CMOS quarter-rate multiplexer for high-speed serial links |
CN111414149B (zh) * | 2019-01-04 | 2022-03-29 | 瑞昱半导体股份有限公司 | 背景模型更新的方法与相关装置 |
RU2717629C1 (ru) * | 2019-10-08 | 2020-03-24 | федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Генератор случайной последовательности |
CN111694546B (zh) * | 2020-06-12 | 2021-07-06 | 成都海光集成电路设计有限公司 | 伪随机二进制序列码生成方法以及装置 |
US20240160409A1 (en) * | 2021-06-25 | 2024-05-16 | Beijing Boe Technology Development Co., Ltd. | Method and apparatus for generating random sequences, and device and medium thereof |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864491A (en) * | 1997-11-10 | 1999-01-26 | Telefonaktiebolaget L M Ericsson | Apparatus and associated method for generating a pseudo random number |
JP2000029670A (ja) * | 1998-07-14 | 2000-01-28 | Hitachi Ltd | 乱数生成方式 |
JP2007323135A (ja) * | 2006-05-30 | 2007-12-13 | Fdk Corp | 物理乱数生成装置 |
JP2009237249A (ja) * | 2008-03-27 | 2009-10-15 | Hitachi Displays Ltd | 表示装置 |
WO2010034326A1 (en) * | 2008-09-24 | 2010-04-01 | Verigy (Singapore) Pte. Ltd. | State machine and generator for generating a description of a state machine feedback function |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0620518B1 (en) * | 1993-04-06 | 1999-10-06 | Hewlett-Packard Company | Methods and apparatus for generating linear-feedback-shift-register sequences |
US7194496B2 (en) * | 2003-05-02 | 2007-03-20 | Spirent Communications Of Rockville, Inc. | System and method for producing functions for generating pseudo-random bit sequences |
US7219113B2 (en) * | 2003-09-26 | 2007-05-15 | International Business Machines Corporation | Pseudo-random binary sequence checker with automatic synchronization |
US7613757B1 (en) * | 2006-01-20 | 2009-11-03 | L-3 Communications, Corp. | System and method for parallel PN generation |
WO2010034327A1 (en) | 2008-09-24 | 2010-04-01 | Verigy (Singapore) Pte. Ltd. | Apparatus and method for emulating a full-rate finite state machine |
US9575726B2 (en) * | 2010-08-03 | 2017-02-21 | Advantest Corporation | Bit sequence generator and apparatus for calculating a sub-rate transition matrix and a sub-rate initial state for a state machine of a plurality of state machines |
-
2010
- 2010-08-03 US US13/814,234 patent/US9575726B2/en active Active
- 2010-08-03 KR KR1020137005274A patent/KR101402392B1/ko active IP Right Grant
- 2010-08-03 WO PCT/EP2010/061310 patent/WO2012016588A1/en active Application Filing
- 2010-08-03 JP JP2013522111A patent/JP2013534336A/ja active Pending
- 2010-08-03 CN CN201080068440.0A patent/CN103098018B/zh active Active
-
2011
- 2011-07-27 TW TW100126586A patent/TW201214277A/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864491A (en) * | 1997-11-10 | 1999-01-26 | Telefonaktiebolaget L M Ericsson | Apparatus and associated method for generating a pseudo random number |
JP2000029670A (ja) * | 1998-07-14 | 2000-01-28 | Hitachi Ltd | 乱数生成方式 |
JP2007323135A (ja) * | 2006-05-30 | 2007-12-13 | Fdk Corp | 物理乱数生成装置 |
JP2009237249A (ja) * | 2008-03-27 | 2009-10-15 | Hitachi Displays Ltd | 表示装置 |
WO2010034326A1 (en) * | 2008-09-24 | 2010-04-01 | Verigy (Singapore) Pte. Ltd. | State machine and generator for generating a description of a state machine feedback function |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015161969A (ja) * | 2014-02-26 | 2015-09-07 | セイコーエプソン株式会社 | マイクロコンピューター及び電子機器 |
Also Published As
Publication number | Publication date |
---|---|
KR20130060275A (ko) | 2013-06-07 |
TW201214277A (en) | 2012-04-01 |
KR101402392B1 (ko) | 2014-06-03 |
US9575726B2 (en) | 2017-02-21 |
CN103098018B (zh) | 2015-11-25 |
WO2012016588A1 (en) | 2012-02-09 |
CN103098018A (zh) | 2013-05-08 |
US20150268933A1 (en) | 2015-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2013534336A (ja) | ビットシーケンス発生器 | |
US10007488B2 (en) | Secured pseudo-random number generator | |
US8880574B2 (en) | State machine and generator for generating a description of a state machine feedback function | |
Panda et al. | FPGA implementation of 8, 16 and 32 bit LFSR with maximum length feedback polynomial using VHDL | |
JP3022439B2 (ja) | 擬似乱数発生方法および装置 | |
Petrica | FPGA optimized cellular automaton random number generator | |
JP5670849B2 (ja) | 擬似乱数生成装置、および、擬似乱数生成方法 | |
US9619206B2 (en) | Pseudo-random bit sequence generator | |
JP2002330192A (ja) | 試験信号発生装置及び方法並びにポアソン分布エラー信号発生器及び発生方法 | |
JP5101253B2 (ja) | ランダムエラー発生装置、m系列発生回路及びその設計方法 | |
Babitha et al. | FPGA based N-bit LFSR to generate random sequence number | |
Moghadam et al. | Designing a random number generator with novel parallel LFSR substructure for key stream ciphers | |
RU2427885C1 (ru) | Быстродействующий генератор случайных перестановок и сочетаний | |
Sunandha et al. | Implementation of modified Dual-CLCG method for pseudorandom bit generation | |
Vooke et al. | Design of Pseudo-Random Number Generator Using Non-Linear Feedback Shift Register | |
Sekhar et al. | An Efficient Pseudo Random Number Generator for Cryptographic Applications | |
Tripathi et al. | The shortest register with non-linear update for generating a given finite or periodic sequence | |
MADHUPAVANI et al. | Design of Random Number Generation Using 256 Bit LFSR in FPGA | |
Sriram et al. | A high throughput area time efficient pseudo uniform random number generator based on the TT800 algorithm | |
Li et al. | An algorithm for constructing a smallest register with non-linear update generating a given binary sequence | |
CN110633070A (zh) | 伪随机数发生器及伪随机数生成方法 | |
Lee et al. | Segmented Leap-Ahead LFSR Architecture for Uniform Random Number Generator | |
CN116225371A (zh) | 一种随机排列生成器及基于其的分布式粒子滤波方法、加速器 | |
Shih et al. | LEGO-based VLSI design and implementation of polar codes encoder architecture with radix-2 processing engines | |
CN116527022A (zh) | 一种伪随机多电平生成电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140624 |