高速デバイスを扱っている場合、コンポーネント間で差動ペアをルーティングする必要があることがよくあります。多くの高速PCBには、特定の奇数モード/差動インピーダンス値を必要とする差動インターフェースが含まれており、PCBレイアウト設計者は、トレースが正しいインピーダンス値を持つように、PCBエディタ内でこれらのジオメトリ制約を指定する必要があります。
これを行う最も速くて正確な方法は、インピーダンス計算と設計ルール設定を単一のワークフローに統合することです。Altium Designerは、Layer Stack Manager機能を使用してこれを支援し、その計算結果をPCBルールおよび制約エディタに渡します。その他の機能には、デカップリング長さ制限、トレース全長制限、長さ/遅延ミスマッチ制限などがあります。
デバイスで差動ペアを使用する必要がある場合、どのネットがコンポーネントとのインターフェースに差動信号を使用するかを定義する必要があります。単にネットを配置するだけでは不十分で、ネットは差動信号の一部として特に指定される必要があります。Altium Designer®の回路図およびレイアウトエディタにはネット定義機能が含まれており、信号ネット内で差動ペアを定義できます。まず、互いに通信するいくつかのコンポーネントを選択し、それらを回路図に配置し、どのポートが差動信号を使用するかを定義する必要があります。
ここでは、3つの目標があります:
始めるために、以下の回路図を見て、差動信号を作成するために必要な差動ペアを定義します。この回路図には、Microchip LAN9514I-JZX USB/イーサネットコントローラー、エッジコネクター、およびいくつかのシールドされたUSBコネクターが含まれています。これらのコンポーネントは、Altium Designer内のManufacturer Part Search panelで見つけることができます。簡潔にするために、このピンリストから「パートA」のみを見てみましょう。これは回路図上で「U1A」という指定子でラベル付けされています。一部の出力はボードエッジコネクターに接続され、他のネットはUSBコネクターにルーティングされます。
Altium Designer内のUSB/イーサネットコントローラーといくつかの接続
この回路図では、USB出力を特別な指令記号を使って差動ペアとして定義しました。差動ペアとしてどの接続を指定するかは、「Place」メニューをクリックして指定できます。「Directives」オプションをハイライトし、「Differential Pair」を選択します。差動ペアとして機能させたい接続に指令記号を配置できます。差動ペアの一部になるすべてのネットを単純に選択します。
次に、差動ペアの各半分は、そのネット名を使用して正または負として定義されます。正の端はネットラベルの末尾に「_P」を使用して名付けられ、負の端は「_N」を使用して名付けられる必要があります。上記の回路図でUSB1-USB3ラインに対してこれを行いました。U1Aの左下部分のRXラインに対しても同じことができます。通常、これらはRJ45コネクタにルーティングされる前に磁気回路とボブ・スミス終端回路に接続されますが、差動ペアルーティングを説明するために上記の単純な状況を使用します。
差動ペアを成功させるためには、差動ペアクラスとネットクラスを設定する必要があります。ここでの目標は、同じ設計ルールをグループ内のすべてのペアに適用できるように、複数のペアをまとめることです。このグループは差動ペアクラスであり、設計ルールエディターで幾何学的要件と長さの一致要件を適用します。
差動ペアクラスを定義する必要があるため、各ディレクティブにこれを追加します。私は、回路図に示されている各接続に対してUSB1からUSB3までのクラスを定義しました。 ディレクティブ記号をダブルクリックすると、差動ペアの接続に対してクラスと設計ルールを定義できます。また、ディレクティブ記号を右クリックして「プロパティ」をクリックすると、ラベル、クラス、および差動ペアのルールを指定できるダイアログが表示されます。ここでは、各ペアに「Diff. Pair Net Class」を追加し、このネットにクラス名を割り当てます。これは、USB1_Pについて以下に示されています。
差動ペアネットクラスの定義
このディレクティブには、設計ルールを追加する必要があります。これは、上記のダイアログ内で行うことができ、個別のネットに設計ルールを適用することができます。もし、差動ペアの長さ調整や、差動ペアのグループに対して何かを行いたい場合は、PCBエディタで行う方が良いでしょう。上記のダイアログからルールを作成すると、このネットにのみ適用される新しい設計ルールが作成されます。USB1からUSB3の接続に個別に長さマッチングを適用したいのであれば、上記に示されているように差動ペアクラスを定義し、回路図がキャプチャされるまでこれらのネットに対する設計ルールを設定するまで待つことができます。
スキーマティックをキャプチャしてルーティングを開始する前に、差動ペア用のインピーダンスプロファイルを含む新しいPcbDocを作成する必要があります。この簡単な例では、単端インピーダンスプロファイル(50オーム、S50と命名)と差動ペアインピーダンスプロファイル(90オーム、D90と命名)を持つ4層PCBを作成しました。差動ペアインピーダンスプロファイルは、定義された差動インピーダンスを必要とするUSBラインに使用されます。これは、PCBエディタ内のレイヤースタックマネージャーを通じて行うことができます。私のスタックアップとインピーダンスプロファイルは以下に示されています。
差動ペアのトレース間のスペーシングをデフォルト値の5ミルに設定したことに注意してください。しかし、これを変更することを検討するかもしれません。差動ペアトレースのスペーシングを設定するためのガイダンスについては、この記事を読んでください。
差動ペアルーティングのためのインピーダンスプロファイルの定義
この時点で、定義した差動ペアを含むレイアウトをキャプチャし、ルーティングすることができます。FPGAとコネクタの間の残りの接続に対して差動ペアを定義しました。まず、プロジェクトに新しいPCBを追加し、回路図をキャプチャします。これは、空のPCBを開いて「Design」メニューをクリックし、「Import Changes From…」を選択することで行えます。Roomはデフォルトで作成されますただし、Engineering Change Orderダイアログでオプションのチェックを外さない限りです。
ルーティングする前に、回路図内の差動ペアネットに対する設計ルールを定義する必要があります。これは、PCBエディタのDesign -> Rulesダイアログを開いて行います。ここで、これらのネットがUSB仕様に準拠するために、以下のルールを定義する必要があります:
これらのペアの設計ルールを定義するとき、各ネットに対してルールを作成し、使用したいインピーダンスプロファイルを選択できます。これは以下に示されています。
個々のネットの設計ルールの定義
複数の差動ペアを扱っており、すべてに同じ設計ルールが必要な場合、差動ペアクラスに適用される単一の設計ルールを作成する方が良い選択です。クラスを確認および作成するには、PCBエディタで「設計 -> クラス」ダイアログを開きます。差動ペアクラスエントリまで下にスクロールし、右クリックして新しいクラスを作成します。回路図で差動ペアを正しく定義している限り、これらのペアを新しいクラスに追加できます。これは下の画像で示されています。
USB差動ペアのグループに対するクラスの定義
これで、設計ルールエディタに移動し、長さの許容誤差とルーティング制約のために作成したばかりのネットクラスを選択できます。個々のネットに対して行ったのと同じようにします。設計ルールウィンドウの「オブジェクトが一致する場所」エントリで、上のウィンドウで定義した差動ペアクラスを選択します。設計ルールは、クラス内のすべてのネット(USB1、USB2、およびUSB3)に適用されます。これは、設計ルールウィンドウでオプションを選択する限り、レイヤースタックマネージャで定義したインピーダンスプロファイルを適用します。
追加の設計ルールには、一貫したインピーダンスを確保し、信号の整合性を維持するために必要とされるものがあります。
これらのルール設定のほとんどは、PCB設計ルールおよび制約エディタの高速セクションの下で見つけることができます。
これで、回路図からの変更をインポートして、PCBレイアウトを開始する時が来ました。PCBレイアウトを作成する前にフロントエンドで多くの作業を行い、制約を設定しましたが、今では設定した設計ルールが、ペアがルーティングされる際に必要なインピーダンス、間隔、および長さのマッチングルールを保証します。コンポーネントを希望の配置にしたら、PCBエディタウィンドウの上部にあるインタラクティブ差動ペアルーティングオプションを選択してください。
下の画像は、途中で作業したいコンポーネントを示しています。インタラクティブルーターを使用する場合、ネットの一方の端をクリックするだけで、ボードを移動するにつれて両方のトレースが同時にルーティングされます。
理想的ではありませんが、差動ペアのトレース間に障害物が落ち込むことを許す場合、ルーターはルーティング中にトレースを障害物の周りに自動的に移動させることができます。例を挙げると、下記のようにルーティングパスに抵抗器が配置されています。トレースがコンポーネントに近づくと、可能な限り狭いクリアランスでコンポーネントの周りに自動的に移動されます。その後、コンポーネントの反対側をクリックして、コンポーネントの周りにルーティングを設定し、目的地に向かってルーティングを続けることができます。
これにより、最大非結合長に関する設計ルールエラーが発生する可能性がありますが、一般的にはコンポーネントの周りを移動する際には障害物回避がここでも優先されます。
より複雑なコンポーネント、例えばボール数が多いBGAやピンピッチが狭いSMDコネクターの場合、トレースの接続を作成するためにファンアウト戦略を使用する必要があります。これらのコンポーネントへの追加のルーティング設定は、コンポーネントの周りにRoomオブジェクトを作成することで制御できます。その後、デザインルールを定義する際に「Within Room」カスタムクエリを使用して、この領域内でクリアランスなどの特定の制約を指定できます。これにより、ピン間のネックダウン、デカップリング長、平行セグメント、およびクリアランスをルーム領域内でのみ制御でき、コンポーネントのピンアウトを見る際のインピーダンスの不一致を最小限に抑えることができます。
下の画像は、2つのルーティングされた差動ペアを示しています。これはAltium Designerのインタラクティブなルーティングツールのおかげで、迅速かつ簡単なプロセスです。この時点で、各ペアに長さ調整を適用するか、複数のペアにわたって適用できます。差動ペアに長さ調整を適用する方法を見るには、この記事をご覧ください。
Altium Designerでの差動ペアルーティングの完成
xSignalsパッケージを使用して、これらのネットやネットのグループの信号整合性を調べることもできます。ネットのグループを調べるには、Design -> ClassesダイアログからxSignalsクラスを定義する必要があります。これは、差動ペアクラスを作成するのと同じ方法で行われます。これにより、信号の立ち上がりエッジと立ち下がりエッジ、およびオーバーシュート/アンダーシュートを調べることができます。他の高速設計ルールも、長さの許容誤差や差動インピーダンスに対して行われたのと同じ方法で、このレイアウトに適用することができます。ここで示された設計ルールは、迅速かつ簡単な差動ペアルーティングの鍵です。
Altium Designerは、設計内の情報をルーティングツールと統合し、次のデバイスが意図した通りに機能することを保証します。Altium Designerの統合環境により、すべてのツールが同じルール駆動型設計エンジンを使用して通信できます。最高の回路図、CAD、シミュレーション、およびルーティングツールは、最高のPCBを作成するために必要なものです。
今日、Altium Designerの専門家に相談して、Altium Designerについてもっと学びましょう。