PRBS の作成

2016年10月9日更新
サンプルファイルのダウンロード

回路の説明

サンプルファイルは、 D-FFによるシフトレジスタを用いたサブサーキットによる、 PRBS(Pseudo-random bit sequence)発生器の 例です。また、アイダイアグラムの表示例でもあります。 PRBS発生器は、7次、9次、11次の三種類で、その生成多項式はそれぞれ、
X^7 + X^6 + 1 = 0
X^9 + X^5 + 1 = 0
X^11 + X^9 + 1 = 0
です。サブサーキット内で使用している D-FF のゲートディレイを与えるため、 サブサーキット使用時にはパラメータ BITRATE を定義する必要があります。

サンプルファイルの説明

回路図ファイルは、top.asc です。 その他のファイルはサブサーキットのためのファイルです。 以下は回路図の全景です。引き続き個々のブロックについて説明します。
回路図
まず、回路図左上にある回路全体に対するオプション設定について、
オプション設定
青で表示されているテキストはすべてコメントです。 最初の、.PARAM BR=10G は、ビットレートに柔軟に対応するために、 回路内でビットレート設定を共有できるようにパラメータ BR として ビットレートを設定し、参照しています。 次の OPTIONS BAUDRATE は、アイダイアグラム表示を可能にするため、 シミュレータにビットレートを定義します。この BAUDRATE が設定されて いないとアイダイアグラム表示はできません。 BR をパラメータとして認識させるため、必ず{}でくくってください。 最後は、シミュレーション設定です。 とりあえず、ビットレートが 10G ですので、100ビット分の 10ns を トランジェント解析により計算します。
次に、PRBS発生器(サブサーキット PRBS7)について、
PRBS7
サブサーキットを回路図上に配置する(使う)ためには、 部品選択画面にて、Top Directory プルダウンメニューで 回路図のあるフォルダを選択してください。
部品選択画面

サンプルファイルでは、PRBS11、PRBS7、PRBS9 が 使用できます。 最後の数字部が PRBS の次数をあらわしていますので、 目的に応じて使い分けてください。 なお、回路図に配置した後、シンボル上で右クリックし、 以下のようにパラメータ BITRATE にビットレートを 設定してください。
パラメータ設定画面

今回の例では、ビットレートとしてパラメータ BR を定義していますので、 上記のようになりますが、そうでない場合は直接数値を入れてください。
このサブサーキットはトリガとしてクロック入力を必要とします。 つぎはそのクロック生成部の説明です。
クロック生成部

LTspice のロジック部品はデフォルトで、
L レベル = 0[V]、
H レベル = 1[V]、
ロジックのスレッショルド(しきい値)= 0.5[V]
というロジックレベル設定になっており、とくに変更していませんので、 トリガとして、0 から 1[V]の正弦波を与えます。 V1の設定はこうなっています。
V1設定

なお、LTspiceのロジック部品に関する情報は、ヘルプの、 Appendixes - Symbols - Digital を参照ください。
最後にフィルタ部です。
フィルタ部

このフィルタ部は、滑らかなPRBS波形を得るために使用しています。 ロジック出力の波形そのままで問題なければ必要ありません。 表記は若干ややこしく見えますが、 素子 E を使用した Laplace 表記モデルを利用し、 4次ベッセルフィルタ
4次ベッセルフィルタの式

を使用しているだけです。 ただ、3dB カットオフ周波数を設定するために NF というファクタを導入しています。 とりあえず、サンプルでは標準的なリファレンスレシーバ帯域と同じ になるよう、ビットレートの 0.75 倍に設定しています。 ** は LTspice でのべき乗演算子です。

シミュレーションの実行

なにはともあれ、Run アイコンをクリックして、 V(filout) を表示させた結果は以下のようになります。
シミュレーション結果

オプション、.OPTIONS BAUDRATE が設定されているため、 いきなりアイダイアグラムが表示されます。 通常の波形に表示を戻すには、 アイダイアグラムウィンドウの方をアクティブにして (ウィンドウ枠の青いトップバーを左クリックして) メニューから、Plot Settings - Eye diagram にて、 Enable をトグルしチェックボックスのチェックをはずします。
アイダイアグラム設定・解除

なお、このとき、Enable の下にある Properties を選択すると、 アイを横軸方向にシフトさせたり、 表示させるアイの数を変更できます。
(注:上記は LTSpiceIV の場合です。LTSpiceXVII の場合は .OPTIONS BAUDRATE の指定なしにグラフの X 軸上で右クリックすることで Eye Diagram のメニューに入れます。ここからアイダイアグラム表示の オンオフ、BAUDRATE の設定などシミュレーション後に変更することが可能です。)
さて、メニュー View より波形に対して FFT が行えますが、 このときはアイダイアグラム表示ではなく、 通常の波形表示にしてから行わないと変になります。 FFTを行うとき、ほとんどデフォルトの設定のまま実行してもほぼ 問題ありませんが、周波数軸が対数軸で表示されますので、 リニア軸に変更したい場合は、軸上にカーソルをもっていき、 カーソル形状がものさしのようになったところで左クリックし、 現れた設定画面にて Logarithmic のチェックボックスからチェックをはずしてください。 ついでに Axis Limits も設定し直したほうが見やすいです。
今回の例では、電源インピーダンスを 50Ω にするとかいったことは とりあえず行っていません。 電源の振幅の値として、0 - 1[V] の PRBS 波形の作成までです。 実際のシミュレーションでは、これを 50Ω 系の出力にするために もう一工夫必要になります。一例としては、素子 B を利用して V(FILOUT) を参照し、レベルの変更やインピーダンスの設定を行うのが 簡単かと思います。
戻る