高速データ処理におけるキャリー伝搬遅延とは何か?

投稿日 二月 11, 2019
更新日 九月 25, 2020

Synchronized swimmers

友達とのテキストメッセージのやり取りが完全に混乱することがあります。一つのテキストで5つの質問を行き来するのは簡単すぎて、すべてに返答しようとすると、私たちのメッセージの流れが完全にズレてしまいます。友達が尋ねたことすべてに実際に返答するのは、3つのテキストメッセージが経った後で、その時にはすでにまったく新しい話題に移っています。

PCBやIC内の論理回路間の信号遅延は、高速システムを扱うまで通常考える必要のないことです。PCBのデータレートと容量が増加し続けるにつれて、遅延を考慮に入れることは、デジタルデータがシステム全体で同期を保つために重要です。

 

伝播遅延のレビュー

PCB内の伝播遅延(より適切には伝送遅延と呼ばれます)に慣れていない場合、ここで説明します。デジタル信号がPCB内の2点間を移動するには、一定の時間が必要です。ネット内やシステム全体の複数の信号を同期させようとしている場合、信号がボード上のさまざまな点に同時に到着するようにする必要があります。

この文脈での伝搬遅延は、PCB上の二点間を移動する信号の伝送遅延を指します。これはデジタル電子工学の教科書に記載されている伝搬遅延の定義と混同してはいけません。

信号が同期していない場合、システムのビットエラー率が増加する可能性があります。デジタルデータを並列に処理する場合、ネット内の信号は同期されている必要があります。そのため、ネット内の全てのトレースの長さを最長のトレースの長さに合わせるべきです。差動ペアルーティングにおいては、スキューの補償も重要です。蛇行は、インピーダンスを維持しながら信号線にわずかな遅延を適用する最良の方法です。

異なるトレースのジオメトリでは、わずかに異なる伝搬遅延が発生します。インピーダンス制御されたボードを扱っている場合、伝搬遅延の式は比較的単純で、ボード基板の相対誘電率に依存します。~100 Mbps以上のシステムを扱う場合は、ボード全体にわたって伝搬遅延を考慮する必要があり、インピーダンス制御設計を使用することが良いアイデアです。

Large ICs and traces on a green PCB

PCB設計ソフトウェアに必要な分析ツールがあることを確認してください

 

並列データ処理における伝搬遅延とスキュー

データを並列処理する際、ビット間の伝搬遅延が適切に補償されない場合、追加のデータエラーが蓄積する可能性があります。ネット内の特定の並列は、より重要でないビットからの出力がより重要なビットへ適用される処理手順を決定する場合、より大きな遅延を必要とする場合があります。

この一般的な考慮事項は奇妙に聞こえるかもしれませんが、次の例を考えてみてください。PCBやICで使用するためのリップルキャリー加算器を設計しているとします。このデバイスは基本的に、入力ビットを並列に処理する1ビット加算器のシリーズです。加算されるべき2つのデジタル数を構成するビットは、各加算器に並列に入力されなければならず、各加算器はキャリービットを生成することがあります。

LSBの加算器は、次に大きなビットにキャリービットを出力し、MSBまでこのように続きます。LSBから次に高いビットへの出力は、ある程度の伝搬遅延を経験します。また、各加算器の論理ゲートの立ち上がり時間による全体のスキューも考慮する必要があります。各加算器のキャリービットと入力ビットは同期を保つ必要があり、キャリービットの伝搬遅延と蓄積されたスキューは、より高い桁の入力ビットをわずかに遅延させる必要があります。

各桁間の合計遅延は、加算器間で信号が移動する伝搬遅延と、加算器内の全論理回路の立ち上がり時間の2倍の合計に等しいです(両方の加算器が同じ論理ファミリーからのものであると仮定)。少数のビットを低速で扱っている場合、これはビット間の信号を非同期にすることはありません。しかし、例えば、32ビット数を1Gbps以上で扱う場合、MSBに到達するキャリービットの遅延は、隣接する加算器間のキャリー伝搬遅延の32倍になります。

これは加算器全体でデータを非同期にすることができる非常に大きな遅延です。高い桁の加算器へのデータ入力の遅延を補うために、実際には各加算器に到達する入力ビットにいくらかの遅延を加える必要があります。次第に高いビットはより多くの遅延を必要とします。

これを行う最も簡単な方法は、高位の加算器に入るトレースを迂回させることです。これにより、キャリービットの伝搬遅延と蓄積されたスキューを補正できます。高位の数字はより大きな遅延を必要としますが、加算器に入力されるビットのペアは同期されている必要があります。この遅延を適用する最も簡単な方法は、各加算器に入るトレースのペアを迂回させることです。迂回を適用する際には、各加算器のトレースのペア間に少し余分なスペースを確保してください。

Several ICs in parallel on a PCB

シミュレーション結果を信頼できることを確認してください

これらの遅延の問題は加算器に限らず、処理された1ビットの出力が次のビットの処理の入力として使用される並列処理のあらゆるロジック回路に適用されることに注意してください。

並列処理に使用できるコンポーネント(例えば、FPGA)は、連続するビット間でキャリー遅延が蓄積される遅延ライン構造を持つことがあります。これらの値は、ビットあたり数十ピコ秒に達することがあります。高速で大きな数値を扱う場合、高位のビットがLSBから非同期になる可能性があります。特定の標準に従って設計しており、低ビットエラー率が求められる場合、入力信号線上の遅延を補償することはビットエラーを防ぐための簡単な解決策です。

では、次の高速デジタルシステムでデータの整合性をどのように保証できるでしょうか? PCB内の要素間の遅延を補正するのが簡単なルーティングツールが必要です。Altium Designer®の高度なルーティングおよびシミュレーションツールを使用すると、信号の整合性の問題を避け、ビットエラー率を低く保つことができます。

今すぐ無料トライアルをダウンロードして、Altiumがあなたに適しているかどうかを確認してください。Altiumの専門家に今日話して、詳細を学びましょう。

関連リソース

関連する技術文書

ホームに戻る
Thank you, you are now subscribed to updates.