デザインでコンポーネントのピンを交換できるようにすることは、レイアウトの複雑さを大幅に変えることができ、PCBの層数(そしてコスト)を下げるのに役立ちます。残念ながら、レイアウトエンジニアは、設計者の完全な意図を常に知っているとは限らないため、ピン交換設定を賢明に設定するために必要なすべての情報を持っているとは限りません。理想的には、設計をキャプチャした人がピン交換データの設定にも関与し、設計の意図と制約が正確にキャプチャされるようにするべきです。
Altium Designerのインタラクティブ配線とBGAエスケープ配線機能と調和して動作するのは、ピン、差動ペア、および部品の交換システムです。この機能は従来のピン交換システムのすべての利点を提供しますが、設計内のネット割り当てに関するAltium Designerの詳細な理解を活用します。ピン交換操作中に、Altium Designerは選択されたピンに割り当てられたネットを分析し、ピンおよび接続された銅に割り当てられたネットを動的に再割り当てします。
この機能レベルでは、部分的に配線されたネットや、複雑なBGAデバイスからのプリ配線されたマルチレイヤーのエスケープを交換することができます。差動ペアも交換可能で、FPGA上の差動ピンペアに関する知識を活用できます。
PCBレベルでは、この情報を使用して動的にネットを再割り当てし、配線可能性を向上させる強力な自動最適化機能がシステムに含まれています。例えば、複数のレイヤーにエスケープ配線された複数のデバイスに対して再接続を行うことができます。これは、マッチングするエスケープルートレイヤー、最短のマンハッタン配線距離、および各レイヤー上のクロスオーバーの最小数に基づいて割り当てられます。
部分的に配線されたネットの追加と自動オプティマイザーの組み合わせにより、階層的かつ反復的な配線戦略を採用することができます。まずエスケープ配線デバイスから始め、特定のエリアの端まで配線し、最終的にこれらのセクションを接続します。自動スワッパーは、部分的に配線されたネットによって提供される更新された情報に基づいて、いつでも再実行して再最適化することができます。
スワッピングには3つのカテゴリーがあります:
- ピンスワッピング
- 差動ペアスワッピング
- サブパートスワッピング
スワップグループの設定
スワッピングの各カテゴリーにおいて、スワップグループはコンポーネント内で何が交換可能で何が交換不可能かを決定します。ピンスワッピングの場合、共通のピングループを共有するコンポーネント内のピンは互いに交換可能です。同様に、ペアスワッピングやパーツスワッピングにおいても、それぞれペアグループとパートグループの値が、差動ペアやサブパートがそれぞれ交換可能であることを決定します。コンポーネントのスワップグループは、下の画像に示されているピンスワッピングの設定ダイアログで設定されます。以下の方法でアクセスできます:
- PCBドキュメントで、コンポーネントを右クリックし、 Component Actions » Configure Pin/Part Swappingを選択します。
- 回路図ドキュメントで、コンポーネントを右クリックし、Part Actions » Configure Pin Swappingを選択します。
- 回路図ドキュメントで、 Configure Swapping Information In Components dialogの下部にあるConfigure Componentボタンをクリックします (Tools » Configure Pin Swapping)。
- PCBドキュメントで、コンポーネントの交換情報設定ダイアログの下部にあるConfigure Componentボタンをクリックします (Tools » Pin/Part Swapping » Configure)。
- コンポーネントの交換情報設定ダイアログ内の任意のコンポーネントをダブルクリックします。
ピングループ
コンポーネントのピンは、同じピングループ(同じピングループ値を持つ)に属している場合、そのコンポーネント内の別のピンと交換可能です。ピングループは、コンポーネント内の各ピンの属性であり、その値は任意の英数字の文字列にすることができます。ピングループは、Configure Pin Swappingダイアログでコンポーネント全体に設定されます。
デュアル5入力ポジティブNORゲートコンポーネントを含む回路図。どちらのサブパーツの入力ピンも論理的に等価であり、ピンスワッピングに理想的な状況を示しています。
上記の画像に示された回路図を考えてみましょう。これには、SNJ54S260コンポーネント用の2つの5入力NORゲートが含まれています。NORゲートの性質上、INA0からINA4までの各ネットは互いに交換可能です。同様に、INB0からINB4までの各ネットも交換可能ですが、INAxネットをINBxネットと交換することはできません。
NORゲートの交換制約は、Configure Pin Swappingダイアログで定義されています。INAxネットにスワップグループ1を、INBxネットにスワップグループ2を割り当てることで、システムによる交換がコンポーネントのロジックと一致するようにのみ実行されることが保証されます。ピングループの値をピンに対して空にすると、そのピンは交換できないことを意味します。
パートグループとシーケンスID
コンポーネントには、機能的に等価な複数のサブパーツが含まれていることが一般的です。パーツの交換により、そのような等価なサブパーツのネットを交換することができます。上記の画像に示されたコンポーネントをもう一度考えてみましょう。両方のNORゲートは同一の機能を提供し、ネット(INA0, INA1, INA2, INA3, INA4, OUTA)はネット(INB0, INB1, INB2, INB3, INB4, OUTB)と交換可能です。
コンポーネントの部品交換は、part groupとsequence IDの属性で設定されます。これらはどちらもテキスト属性であり、Part Swappingタブの Configure Pin Swappingダイアログでアクセスできます。下の画像には、上の画像に示されたコンポーネントに対応するパートグループとsequence IDの設定も表示されています。part groupは、どのサブパーツを互いに交換できるかを示します。2つのサブパーツは交換可能であり、その結果、下の画像では、それらのパートグループには同じ値1が与えられています。
sequence ID属性は、交換可能なサブパーツ間でのピンの等価性を決定します。NORゲートの例では、部品の交換が発生したときに入力ピンが出力ピンと交換されないことが重要です。下の画像では、sequence IDがOUTAがOUTBと、INA0がINB0と、INA1がINB1となるように設定されています。
デュアル5入力NORゲートコンポーネントのピン交換設定ダイアログでのパートスワップグループの設定。
パートスワッピングは、2つのサブパーツ間で全てのネットを交換することに基づいているため、サブパーツとして設計されたコンポーネントにのみ利用可能であることに注意してください。
ペアグループ
差動ペアの交換は、差動ペアのペアグループの値によって管理されます。ペアグループ属性は、Differential Pair SwappingタブのConfigure Pin Swappingダイアログでアクセスできます。Differential Pair Swappingタブには、左下のドロップダウンボックスから設定できる3つのモードがあります。
- ディレクティブからペアを表示 - システムは、回路図上に配置された差動ペアディレクティブを使用して、テーブル内の差動ペアを表示します。
- FPGAからペアを表示 - システムは、FPGA情報から取得した差動ペアデータを使用してピンをペアリングします。このモードは、コンポーネントがFPGAの場合に利用可能です。
- すべてのピンを表示 - システムは、すべてのコンポーネントピンを表示します。
ピンスワッピングダイアログでのペアスワップグループの設定。
回路図上でのスワップの制御方法
PCBエディタでは、ピン、ペア、および部品のスワップは、コンポーネントのパッドと対応する銅にネットを交換することによって実行されます。変更が回路図にマージされるとき、ピンスワップを処理する方法は2つあります。一つは、コンポーネントシンボル上のピンを交換すること、もう一つは、ピンに接続されたワイヤー上のネットラベルを交換することです。それぞれのアプローチには、利点と欠点があります。
ピンを交換すると、回路図上で常に機能しますが、このコンポーネントシンボルのインスタンスがライブラリで定義されたものと同じではなくなる可能性があります。この状況では、シンボルをライブラリから更新することができず、また、この設計内の同じコンポーネントの他のインスタンスとピン配置が異なることを意味します。したがって、このアプローチは、抵抗器アレイのような単純なコンポーネントには理想的です。
回路図上でのスワップをネットラベルを交換することによって行う場合、その接続がネットラベルを通じて確立されている場合、及びピンが直接接続されていない場合にのみ可能です。このアプローチの利点は、コンポーネントのシンボルが変更されず、後日ライブラリから更新できることです。この方法は、FPGAのような複雑なコンポーネントにとって最適な選択であり、シンボル上で二つのピンを物理的に移動すると、I/Oバンクベースのシンボルが誤って表示される可能性があります。
Adding / Removing Net-LabelsまたはChanging Schematic PinsオプションをAllow Pin Swapping Using these Methodsセクションで選択することにより、スワップの実行方法を決定できます。これは、以下に示すように、Project Options - Optionsダイアログで行うことができます。
これらのプロジェクトオプションは、ピンスワップが回路図ドキュメントでどのように更新されるかを制御します。
PCB上でのピン、ペア、およびパーツのスワッピングを有効にする
PCBコンポーネントのスワッピングオプションは、Propertiesパネルで設定できます。これは、設計スペースで選択されたときにそのコンポーネントのプロパティを表示します。オプションは、GeneralタブのSwapping Options領域にあります。
PCBコンポーネントのスワッピングオプションは、Configure Swapping Information in Componentsダイアログを通じて定義することもできます。このダイアログには、設計(またはライブラリ)で使用されているすべてのコンポーネントとその現在のスワップ設定がリストされています。PCBエディタからアクセスした場合、ダイアログにはボード上の各コンポーネントのスワッピングを有効/無効にするための追加列が含まれており、PCBで有効と呼ばれます。
Configure Swapping Information in Componentsダイアログは、以下のようにして回路図エディタ、回路図ライブラリエディタ、およびPCBエディタからアクセスできます:
- Schematic Editor/Schematic Library Editor - メインメニューからTools » Configure Pin Swappingコマンドを選択します。
- PCB Editor - メインメニューからTools » Pin/Part Swapping » Configureコマンドを選択します。
コンポーネント内でピン、ペア、およびパーツのスワッピングを設定するために必要なスワップグループ属性は、回路図コンポーネントに保存されています。しかし、この情報を使用するのはPCBエディターであり、各PCBコンポーネントにはそのピンのピンスワッピングを許可するオプションがあります。したがって、PCBエディターからダイアログを使用する方が簡単になる場合があります。
コンポーネント内のスワッピング情報の設定ダイアログを使用して、コンポーネント間で迅速にスワッピングを定義します。このダイアログには強力な右クリックメニューが含まれており、一つのコンポーネントから別のコンポーネントへ設定を迅速にコピーしたり、複数のコンポーネントを一度に有効/無効にすることが非常に簡単です。
コンポーネント内のスワッピング情報の設定ダイアログ。
コンポーネントの
Configure Swapping Information in Componentsダイアログで、コンポーネントをダブルクリックすると、そのコンポーネントの
Configure Pin Swappingダイアログが開き、ピン、差動ペア、およびサブパーツのスワップグループ設定をより詳細に定義できます。
ピン、ペア、およびパーツのスワップの実行
インタラクティブなピン、ペア、およびパーツのスワッピング
インタラクティブなスワッピングでは、PCBエディタ内でピン、差動ペア、またはサブパーツを一度に1つずつ交換できます。インタラクティブなスワッピングコマンドは、Tools » Pin/Part Swappingサブメニュー( Interactive Pin/Net Swapping、Interactive Differential-Pair Swapping、およびInteractive Part Swappingコマンド)にあります。メニューからコマンドを選択すると、PCB設計スペース内のすべてがマスクされ(薄く表示され)、交換可能なエンティティのみが表示されます。ステータスバーに注意してください。次のアクションを促すプロンプトが表示されます。スワップを実行するために必要な手順がステータスラインに表示されます:
- 最初のステップは、ピンスワップの源となるハイライトされたピンのうちの1つを選択することです。ペアまたは部品のスワップの場合、そのピンが属する差動ペアまたはサブパートがその後スワップされます。
- 二番目のステップは、スワップの対象となるピンを選択することです。ペアまたは部品のスワップの場合、このピンは差動ペアまたはサブパートを代表するものになります。
デュアル5入力NORゲートコンポーネントのインタラクティブな部品スワップの段階は、以下の2つの画像に示されています。スワップ可能な2つのサブパーツがあり、それぞれの5つのピンが選択可能であることを示しています。上の画像に示されているように、サブパートU2Bに対応するピン8が選択されます。システムはその後、スワップ可能なサブパートU2Aのピンをハイライトします。
最初の画像、ステップ1 - 交換するピンを選択、利用可能なピンがハイライト表示されます。二番目の画像、ステップ2 - ターゲットのピンを選択。
- 差動ペアピンのためにパートシーケンス値を定義する必要はありません。差動ペアの定義が、どちらがペアのプラスピンで、どちらがマイナスピンかを詳細に説明します。
- スワップ情報はメッセージパネルにも表示されます。
自動ピン/ネット最適化ツール
自動ピン/ネット最適化ツールは二段階のツールです。Tools » Pin/Part Swapping » Automatic Pin/Net OptimizerをPCBエディターメニューから選択し、自動最適化を実行します。
自動ピン/ネット最適化ツールは最初に、クロスオーバーや接続長を最小限に抑えることを試みる高速のシングルパス最適化を実行しますが、実際にはそれらを増加させる可能性があります。これが完了すると、反復最適化を実行するかどうかを尋ねられます。反復最適化は、クロスオーバーや接続長の数を減らすために、複数のパスを実行します。
変更を回路図に反映させる
スワップグループをConfigure Pin Swappingダイアログで設定すると、コマンドが起動されたときにアクティブだったエディターに関係なく、行った編集は即座に回路図のコンポーネントに適用されます。しかし、PCBエディターでピン、差動ペア、またはサブパートのスワップを行った結果として生じる設計変更は、標準の設計更新プロセスを使用して回路図に伝播されます。
PCBから回路図への変更のプッシュ
ピン、ペア、およびパーツのスワップは、他の設計変更が転送されるのと同じ方法で回路図に戻されます - メニューからDesign » Updateを選択することによってです。Allow Pin-Swappingオプションがプロジェクトオプション - オプションダイアログでどのように設定されているかに応じて、ピンスワップは次のように実行されます:
- ピン名の変更 - この変更により、シンボル上のピンが移動します。ピンは実際にはシンボル上で移動されませんが、2つのピンが移動したり、位置が入れ替わったりしているように視覚的に明らかになります。
- 異なるネットへのピンの移動 - この変更により、接続されたワイヤーのネットラベルが入れ替わります。
- サブパートIDの変更 - この変更により、部品の交換が行われた際にサブパートのインデックスが変更されます。
最初の画像は、ピンを交換することで回路図で解決されたピンスワップを示しています。2番目の画像は、ネットラベルを移動することでスワップが解決されたことを示しています。
回路図がピンや部品の交換を表示しない場合は、End キーを押して表示を更新してください。
FPGA設計での新しいピン/部品スワップシステムの活用
インテリジェントなピン、ペア、部品のスワップが提供する明らかな利点に加えて、部分的に配線されたサブネットをスワップできる機能は、大容量FPGAを扱う際に理想的な新しい次元のスワッピングをもたらします。動的なネットの再割り当てにより、徐々に洗練されたピン/ネットの割り当てを用いた多段階の設計プロセスを使用できます
初期I/O割り当て
この段階では、FPGAやその他のデバイスのピンに、回路図レベルで最も簡単な方法でネット割り当てが設定されます。通常、これはFPGAのピンに数値バス順でネットラベルを追加することを意味します。スマートペースト機能は、回路図エディターでこれを行うのに理想的です。
初期接続の最適化
設計をPCBレイアウトに移行すると、回路図レベルでのランダムな割り当てのために多くの接続クロスオーバーが発生します。Tools » Pin/Part Swapping » Automatic Net/Pin Optimizerコマンドを実行すると、ピンとネットの情報を使用してネットを動的に再割り当てし、配線のしやすさを向上させることで、クロスオーバーの数を大幅に減少させることができます。例えば、このシステムは、PCBドキュメントの複数のレイヤーでエスケープ配線された複数のBGAデバイスを再接続することができます。結果はまだ理想的である必要はありませんが、主にPCBレベルで接続を視覚的に管理しやすくするために使用されます。
コマンドを起動した後、自動ピン/ネット最適化ツールが実行されます。これは、最初にクロスオーバーや接続長を最小限に抑えることを試みる高速シングルパス最適化を行う2段階ツールですが、実際にはそれらを増加させる可能性があります。これが完了すると、反復最適化を実行するかどうかを尋ねられます。反復最適化は、クロスオーバーの数と接続長を減らすために複数のパスを実行します。最適化の結果は、最適化の実行が完了した後に表示されます。
エスケープ配線
大型デバイスのファンアウトおよびエスケープ配線は、PCB上で現在実行できます(コンポーネントを右クリックして、ファンアウト/エスケープ配線を選択的に実行します)。これにより、以前に最適化された割り当てが悪化する可能性がありますが、この時点では問題ありません。
エスケープ接続の最適化
自動最適化を再度実行します。今回は、ファンアウト/エスケープ配線の事前に配線されたセクションを利用します。
手動配線
これで、エスケープルートの端を「ターゲット」として扱うことができます。実際の接続ラインを無視して、PCB上で最も近いエスケープされたI/Oルート(空間的にも層においても)に向かって、ネットの他端から配線できるため、同じネット上にあるものに向かって配線する必要はありません。接続は一致しません。代わりに、FPGA I/Oピンからのエスケープ配線と、PCBの他の部分から来る配線の間に、一連の小さな隙間ができます。下の画像は、これの簡単な例を示しています。
最終最適化
自動最適化機能を再度実行すると、配線されたサブネットが最も近いエスケープされたI/Oピンに割り当てられます。これにより、完了するための非常に短い接続がいくつか残ります。自動最適化機能には、この場合に良い結果を出すための特別なルーチンがあります。これらは、今や対話的に、または自動的に配線することができます。
手動でのピン交換
特定のピン交換変更を行うために、インタラクティブなスワッパーを使用してください。
変更を回路図に反映させる
これらのピン割り当てを回路図に反映させる準備ができたら、回路図のシンボル上でのピン変更を無効にすることをお勧めします。これは、FPGAがしばしば複数部品のコンポーネントとして提示され、各ピンバンクが別の回路図部品であるためです。一部から別の部へピンを移動すると、そのバンクシンボルにはそのバンクに属さないピンが含まれるため、これらのシンボルが論理的に不正確になる可能性があります。この状況では、ネットラベルを変更することによってピンスワップを行うのが正しいアプローチです。
必要な回数だけ繰り返す
このプロセスは、設計プロセスのどの段階でも、必要な回数だけ実行できます。