サンプルファイルは、
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)について、
サブサーキットを回路図上に配置する(使う)ためには、
部品選択画面にて、Top Directory プルダウンメニューで
回路図のあるフォルダを選択してください。
サンプルファイルでは、PRBS11、PRBS7、PRBS9 が
使用できます。
最後の数字部が PRBS の次数をあらわしていますので、
目的に応じて使い分けてください。
なお、回路図に配置した後、シンボル上で右クリックし、
以下のようにパラメータ BITRATE にビットレートを
設定してください。
今回の例では、ビットレートとしてパラメータ BR を定義していますので、
上記のようになりますが、そうでない場合は直接数値を入れてください。
このサブサーキットはトリガとしてクロック入力を必要とします。
つぎはそのクロック生成部の説明です。
LTspice のロジック部品はデフォルトで、
L レベル = 0[V]、
H レベル = 1[V]、
ロジックのスレッショルド(しきい値)= 0.5[V]
というロジックレベル設定になっており、とくに変更していませんので、
トリガとして、0 から 1[V]の正弦波を与えます。
V1の設定はこうなっています。
なお、LTspiceのロジック部品に関する情報は、ヘルプの、
Appendixes - Symbols - Digital を参照ください。
最後にフィルタ部です。
このフィルタ部は、滑らかなPRBS波形を得るために使用しています。
ロジック出力の波形そのままで問題なければ必要ありません。
表記は若干ややこしく見えますが、
素子 E を使用した Laplace 表記モデルを利用し、
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) を参照し、レベルの変更やインピーダンスの設定を行うのが
簡単かと思います。