Saturday , August 24 2019
Home / All / 高速シリアルインターフェースのプリエンファシス効果をSpice Verilog-aでシミュレーションしてみよう!

高速シリアルインターフェースのプリエンファシス効果をSpice Verilog-aでシミュレーションしてみよう!

伝送データレート高速化が進み高速信号を送信する際、プリエンファシス技術を使用する機会が多くなっています。プリエンファシスとは、送信信号の高域を予め強調しておき、伝送線路の損失(帯域不足)*1を補い受信端で最適な波形を得る、という感じの説明になると思います。今回は、デモ版のSpice Verilog-a*2シミュレーターを使用し、プリエンファシスとは、どのような波形になるのか、効果はどの位あるのか調査してみます。

*1:伝送線路の損失にご興味ある方は、下記コンテンツもご参照下さい。
伝送線路の損失が発生する仕組み、損失による発熱は電子レンジに応用されている?
リターンロスはなぜ発生するのか、インピーダンスミスマッチ境界で何が起こっているのか
インピーダンスはなぜ50Ωなのか

*2: Spice(Simulation Program with Integrated Circuit Emphasis)は、米国UCLA Berkeley校で開発されたアナログ回路シミュレーターです。その後、様々なEDA Tool VendorがSpiceシミュレーターを開発し、hspice, spectre, Eldo, SmartSpice, PSpice等があります。Verilog-aは、電圧、電流等のアナログ的な振る舞いを表すことができるアナログビヘビアー記述言語です。Verilog-aは、単体で使用することは少なくSpiceシミュレーターに組み込んで使用する場合が多いです。

プリエンファシスとは

プリエンファシスは、日本語に訳すと「前置高域強調技術」という感じになると思います。伝送線路で失う高域信号成分を送信側であらかじめ重畳しておき、受信端で最適なアイ開口を得る技術です。他の呼び方として、デエンファシスという呼び方を聞いたことがあると思いますが、語源はPCI-Express規格で送信波形のノントランジションビット(データが変化しないビット)の振幅を減らしていく方法を指します。得られる波形形状は同じですが、波形の形成方法が異なります。本稿内では、特に両者を区別せずプリエンファシスで統一します。

プリエンファシスの原理

プリエンファシスは、Finite Impulse Response Filter(以下、FIRフィルターと記す。)の原理を利用しています。FIRフィルターとはデジタルフィルターの一種で、日本語では有限インパルス応答フィルターと呼びます。FIRフィルターは、過去N個のデータを演算し出力から入力に戻る帰還経路が無く、Nがフィルター次数を示しています。下図は、1次と2次のFIRフィルターを表しています。

Spice Verilog-aシミュレーター

Spice Verilog-aシミュレーターを使用してプリエンファシス機能を実装し効果を確認してみます。フリーでVerilog-aをサポートするシミュレーターは少ないですが今回は、以下のデモ版シミュレーターを使用してみます。

  • Spice-SL Verilog-A Extension Kernel Demonstration Version.

Pseudo Random Bit Sequence 2^7-1(以下、PRBS 7と記す。)波形発生器とFIRフィルターをSpiceとVerilog-aで記述し、シミュレーターでTransient解析した結果が以下の波形です。負荷が無い状態なので理想に近いきれいな波形が得られています。

次に、3.5dB強度のプリエンファシスを掛けた結果が以下の波形で、トランジションビット(データが変化するビット)の立ち上がりエッジ部分が強調されていることが分かります。

更に、もう少し強い6.0dB強度のプリエンファシスを掛けた結果が以下の波形で、トランジションビットの立ち上がりエッジ部分が更に強調されていることが分かります。

プリエンファシス無しの状態で容量負荷 2.5pFを付けた結果が以下の波形で、周波数成分の低い0又は1が連続するビット幅の振幅は、減衰していませんが周波数成分の高い0又は1の最小ビット幅の振幅は、減衰していることが分かります。

次に、プリエンファシス3.5dBを掛けた状態で容量負荷 2.5pFを付けた結果が以下の波形です。周波数成分の高い部分が強調され、周波数成分の低い部分と高い部分の振幅が概ね一致していることが分かります。

プリエンファシス無しの状態で容量負荷 3.6pFを付けた結果が以下の波形で、周波数成分の低い0又は1が連続するビット幅の振幅は、減衰していませんが周波数成分の高い0又は1の最小ビット幅の振幅は、更に減衰していることが分かります。この波形では、受信側で0と1の判別が難しく通信エラーを起こす可能性が高くなります。

次に、プリエンファシス6.0dBを掛けた状態で容量負荷 3.6Fを付けた結果が以下の波形です。周波数成分の高い部分が強調され、周波数成分の低い部分と高い部分の振幅が概ね一致していることが分かります。

設計検証では、アイ波形を描画してJitterやアイ開口を観測すると思いますが、今回使用したデモ版シミュレーターの波形ビューアーは、アイ波形描画機能が無いためアイ開口を観測することができませんでした。そこで、プリエンファシス無し+容量負荷 3.6pF(上図)と、プリエンファシス6.0dB+容量負荷 3.6F(下図)の拡大波形を下記に示します。プリエンファシスの効果が良く分かると思います。

終わりに

今回は、高速シリアルインターフェースの送信回路に実装されているプリエンファシス技術を題材に、その効果をSpice Verilog-aシミュレーターで検証してみました。実装したプリエンファシスは、2Tapと呼ばれるタイプですが3Tap以上のマルチタッププリエンファシスも実際に使用されています。2Tapプリエンファシス検証後、3Tapも試行しましたが、シミュレーターから下記メッセージが出て実行できませんでした。デモ版なので回路のノード数上限と思われる制約があるようです。デモ版なので仕方ないですね。

Spice-SL V0.90 Verilog-A Extension Kernel. Demonstration Version.
Unrecoverable error. exiting … Demonstration version: 25 equation limit exceeded.
Please contact ***@***.com for more information.

プリエンファシスは、送信側のイコライザー技術ですが受信側にもイコライザー技術が存在し実際に使用されています。次回は、受信側のイコライザー技術と効果について検証する予定です。

Check Also

Embedded host TestとTEST MODEについて

High-Speed Embe

Leave a Reply