ピン、ペア、パーツの入れ替え
概略
- ピンスワップ、差動ペアスワップ、サブパートスワップの違いと、それぞれの適用場面を学びます。
- スワップグループ、ピングループ、パートグループ、ペアグループ、シーケンスIDによって、設計内で許可されるスワップがどのように制御されるかを確認します。
- 一部だけ配線されたネットや複雑な引き出し配線でも、Altium Designerがネット情報の認識と最適化を活用してスワップを支援する仕組みを理解します。
設計内のコンポーネントでピンスワップを行えると、レイアウトの難易度が大きく変わり、PCBの層数(ひいてはコスト)の削減にも役立ちます。しかし、レイアウトエンジニアは設計者の意図をすべて把握しているとは限らないため、ピンスワップを適切に設定するために必要な情報を十分に持っていない場合があります。理想的には、回路図を作成した担当者もピンスワップデータの設定に関わり、設計意図と制約が正確に反映されるようにすべきです。
ピン、差動ペア、パートのスワップシステムは、Altium Designerのインタラクティブ配線機能やBGAエスケープ配線機能と連携して動作します。この機能は、従来のピンスワップシステムの利点をすべて備えたうえで、Altium Designerが設計内のネット割り当てを詳細に把握していることを活用します。ピンスワップ操作中、Altium Designerは選択したピンに割り当てられたネットを解析し、そのピンと接続されている銅箔のネットを動的に再割り当てします。
この機能により、部分的に配線されたネットや、複雑なBGAデバイスから複数の層にわたって事前配線されたエスケープ配線もスワップできます。また、FPGAの差動ピンペアに関する情報を活用して、差動ペアをスワップすることもできます。
PCBレベルでは、この情報を使ってネットを動的に再割り当てし、配線性を向上させる強力な自動最適化機能が用意されています。たとえば、複数の層にエスケープ配線された複数のデバイスに対して、接続の再割り当てを行えます。割り当ては、エスケープ配線の層の一致、最短のマンハッタン配線距離、および各層での交差数の最小化に基づいて行われます。
部分的に配線されたネットのスワップ機能と自動最適化機能を組み合わせることで、階層的かつ反復的な配線戦略を採用できます。まずデバイスのエスケープ配線を行い、次に所定の領域の端まで配線し、最後にそれらの部分を接続します。部分的に配線されたネットから得られる最新の情報に基づき、自動スワップ機能をいつでも再実行して再最適化できます。
スワップには次の3つの種類があります。
- ピンスワップ
- 差動ペアスワップ
- サブパートスワップ。
スワップグループの設定
各種類のスワップにおいて、swap groupsはコンポーネント内でスワップできるものとできないものを規定します。ピンスワップの場合、コンポーネント内で共通のpin groupを持つピン同士をスワップできます。同様に、ペアスワップとパートスワップでは、それぞれpair groupとpart groupの値によって、差動ペアまたはサブパートをスワップできるかどうかが決まります。コンポーネントのスワップグループは、下の画像に示すConfigure Pin Swappingダイアログで設定します。このダイアログには、次の方法でアクセスできます。
- PCBドキュメントでコンポーネントを右クリックし、 Component Actions » Configure Pin/Part Swappingを選択します。
- 回路図ドキュメントでコンポーネントを右クリックし、 Part Actions » Configure Pin Swappingを選択します。
- 回路図ドキュメントで、コンポーネントのスワップ情報を設定ダイアログ (Tools » Configure Pin Swapping)の下部にある Configure Componentボタンをクリックします。
- PCBドキュメントで、Configure Swapping Information In Componentsダイアログ (Tools » Pin/Part Swapping » Configure)の下部にある Configure Componentボタンをクリックします。
- Configure Swapping Information In Componentsダイアログ内のいずれかのコンポーネントをダブルクリックします。
ピンスワップ設定ダイアログのオプションとコントロール
ピンスワップタブ
コンポーネントのピンは、同じpin group. に属する場合、そのコンポーネント内の別のピンとスワップできます。このタブでは、コンポーネントのピングループを表示し、整理できます。
- Pin Status - 各ピンのDesignator、Pin Name、 Net、Bus、Type、および Part No. を一覧表示します。 列見出しをDrag a column header here to group by that column領域にドラッグ&ドロップすることで、好みやプロジェクトの要件に合わせてデータをグループ化できます。 列見出しを水平方向にドラッグして、列の順序を変更することもできます。
- Swap Data - スワップ対象の各ピンの Pin Group情報を一覧表示します。 Pin Group 列内をダブルクリックすると、グループ名を変更できます。
右クリックメニュー
- Show/Hide Columns - 表示する列を設定します。
- Assign Pin-Swap Groups By - Designator、Pin Name、 Net、Bus、Type、Part No.、Part Mode、or Pin Groupのいずれかに基づいて、ピンスワップグループを自動的に割り当てます。複数のピンを選択してから右クリックすると、グループをまとめて割り当てられます。
- Add To Pin-Swap Group - ピンスワップグループを新規作成するか、既存のグループに追加します。新しいピンスワップグループには、数値(1、2、3など)を使った名前が自動的に付けられます。 複数のピンを選択してから右クリックすると、複数のピンを同時に追加できます。
- Remove From Pin-Swap Group - 選択したピンをピンスワップグループから削除します。複数のピンを選択してから右クリックすると、複数のピンを同時に削除できます。
差動ペアスワップタブ
差動ペアのスワップは、その差動ペアのpair groupの値によって制御されます。このタブでは、コンポーネントのペアグループを表示し、整理できます。
- Pin Status - 各ピンのDesignator、Pin Name、 Net、および Type を一覧表示します。 列見出しをDrag a column header here to group by that column 領域にドラッグ&ドロップすることで、好みやプロジェクトの要件に合わせてデータをグループ化できます。 列見出しを水平方向にドラッグして、列の順序を変更することもできます。
- Swap Data - スワップ対象の各ペアの Pair Group情報を一覧表示します。 Pair Group 列内をダブルクリックすると、グループ名を変更できます。
右クリックメニュー
- Show/Hide Columns - 表示する列を設定します。
- Add To Pair-Swap Group - ペアスワップグループを新規作成するか、既存のグループに追加します。新しいペアスワップグループには、数値(1、2、3など)を使った名前が自動的に付けられます。 複数のペアを選択してから右クリックすると、複数のペアを同時に追加できます。
- Remove From Pair-Swap Group - 選択したペアをペアスワップグループから削除します。複数のペアを選択してから右クリックすると、複数のペアを 同時に削除できます。
パートスワップタブ
コンポーネントのパートスワップは、part group属性とsequence ID属性で設定します。 sequence ID属性は、スワップ可能なサブパート間でのピンの等価性を定義します。このタブでは、コンポーネントのパートグループを表示し、整理できます。
-
Left region - Sub Part と、それに関連する Swap Dataを一覧表示します。
-
Right region - Pin Status 情報 と、それに関連する Swap Dataを一覧表示します。
- Pin Status - Designator、Pin Name、 Net、Bus、および Typeを一覧表示します。 各ピンについて。
- Swap Data - 各ピンの Sequence ID情報を一覧表示します。 名前を変更するには、Sequence ID 列内をダブルクリックします。
右クリックメニュー
- Add To Part-Swap Group - パーツスワップグループを新規作成するか、既存のグループに追加します。新しいパーツスワップグループには、数値(1、2、3など)を使用した名前が自動的に付けられます。 右クリックする前に複数のパーツを選択すると、一度に複数のパーツを追加できます。
- Remove From Part-Swap Group - 選択したパーツをパーツスワップグループから削除します。右クリックする前に複数のパーツを選択すると、一度に複数のパーツを削除できます。
- Show/Hide Columns - ダイアログのPin Swappingタブに表示する列を指定します。
- Assign/Remove Part Sequence Number - sequence ID 属性は、スワップ可能なサブパーツ間でのピンの等価性を定義します。sequence ID グループを新規作成するか、既存のグループに追加します。右クリックする前に複数のパーツを選択すると、sequence ID に対して一度に複数のパーツを追加または削除できます。新しいグループには、数値(1、2、3など)を使用した名前が自動的に付けられます。グループ名を変更するには、Sequence ID 列内をダブルクリックします。
ピングループ
コンポーネントのピンは、同じpin groupに属する(同じpin group値を持つ)場合、そのコンポーネント内の別のピンとスワップできます。pin groupはコンポーネント内の各ピンの属性で、その値には任意の英数字文字列を使用できます。コンポーネント全体のpin groupsは、ピンスワップの設定ダイアログで設定します。
デュアル5入力正論理NORゲートコンポーネントを含む回路図。各サブパーツの入力ピンはすべて論理的に等価であり、ピンスワップに最適な構成です。
上の画像の回路図には、SNJ54S260コンポーネントの2つの5入力NORゲートが含まれています。NORゲートの性質上、INA0~INA4の各ネットは互いにスワップできます。同様に、INB0~INB4の各ネットもスワップできますが、INAxのネットとINBxのネットをスワップすることはできません。
NORゲートのスワップに関する制約は、Configure Pin Swappingダイアログで定義します。INAxのネットにスワップグループ1を、INBxのネットにスワップグループ2を割り当てることで、コンポーネントの論理に整合するスワップのみがシステムによって実行されます。ピンのPin Group値を空欄にすると、そのピンはスワップ対象外になります。
パーツグループとシーケンスID
コンポーネントが、機能的に等価な複数のサブパーツで構成されていることはよくあります。パーツスワップでは、このような等価なサブパーツのネットを入れ替えることができます。上の画像のコンポーネントをもう一度見てみましょう。2つのNORゲートは同じ機能を持つため、ネット(INA0、INA1、INA2、INA3、INA4、OUTA)をネット(INB0、INB1、INB2、INB3、INB4、OUTB)とスワップできます。
コンポーネントのパーツスワップは、part group属性とsequence ID属性で設定します。どちらもテキスト属性で、下図のようにピンスワップの設定ダイアログの Part Swapping タブからアクセスできます。下の画像には、上の画像のコンポーネントに対応するpart groupとsequence IDの設定も示しています。part groupは、どのサブパーツ同士をスワップできるかを示します。この2つのサブパーツは互いにスワップできるため、下の画像では両方のpart groupsに同じ値「1」が設定されています。
sequence ID属性は、スワップ可能なサブパーツ間でのピンの等価性を定義します。NORゲートの例では、パーツスワップ時に入力ピンと出力ピンが入れ替わらないことが重要です。下の画像では、OUTAとOUTB、INA0とINB0、INA1とINB1などがそれぞれスワップされるように、sequence IDが設定されています。
ピンスワップの設定ダイアログで、デュアル5入力NORゲートコンポーネントのパーツスワップグループを設定。
パーツスワップは、2つのサブパーツ間ですべてのネットを入れ替える仕組みのため、サブパーツとして設計されたコンポーネントでのみ使用できます。
ペアグループ
差動ペアのスワップは、その差動ペアのpair groupの値によって制御されます。pair group属性には、ピンスワップの設定ダイアログのDifferential Pair Swappingタブからアクセスできます。Differential Pair Swappingタブには3つのモードがあり、左下隅のドロップダウンから設定できます。
-
Show All Pins – コンポーネントのすべてのピンを表示します。
-
Show Pairs From Directives – 回路図に配置された差動ペアディレクティブを使用して、テーブルに差動ペアを表示します。
回路図でのスワップ方法の制御
PCBエディターでは、コンポーネントのパッドと対応する銅箔のネットを入れ替えることで、ピン、ペア、パーツのスワップを実行します。変更を回路図に反映する際、ピンスワップには2つの方法があります。コンポーネントシンボル上のピンを入れ替える方法と、ピンに接続されたワイヤー上のネットラベルを入れ替える方法です。それぞれに長所と短所があります。
ピンを入れ替える方法は回路図上で常に実行できますが、そのコンポーネントシンボルのインスタンスが、ライブラリで定義されたものと異なる状態になる可能性があります。この場合、シンボルをライブラリから更新できなくなり、また、この設計内の同じコンポーネントの他のインスタンスとはピン配置が異なることになります。そのため、この方法は抵抗アレイなどの単純なコンポーネントに適しています。
ネットラベルの入れ替えによって回路図上でスワップを実行できるのは、接続がネットラベルを介して確立されており、ピン同士がワイヤーで直接接続されていない場合のみです。この方法の利点は、コンポーネントシンボルが変更されず、後からライブラリから更新できることです。FPGAなどの複雑なコンポーネントでは、シンボル上の2つのピンを物理的に移動すると、I/Oバンク単位のシンボルが正しく表示されなくなる可能性があるため、この方法が最適です。
下図のように、プロジェクトオプション - オプションダイアログのAllow Pin Swapping Using these Methodsセクションで、Adding / Removing Net-Labels または Changing Schematic Pinsオプションを選択して、スワップの実行方法を指定できます。
これらのプロジェクトオプションは、ピンスワップを回路図ドキュメントに反映する方法を制御します。
PCBでのピン、ペア、パーツのスワップの有効化
コンポーネントレベルでは、個々のPCBコンポーネントのスワップオプションをPropertiesパネルで設定します。このパネルには、設計スペースで選択したコンポーネントのプロパティが表示されます。これらのオプションは、General タブのSwapping Options領域にあります。
PCBコンポーネントのスワップオプションは、 Configure Swapping Information in Components ダイアログでも定義できます。このダイアログには、設計(またはライブラリ)で使用されているすべてのコンポーネントと、現在のスワップ設定が一覧表示されます。PCBエディターからアクセスした場合は、基板上の各コンポーネントのスワップを有効または無効にするためのEnable in PCB列が追加表示されます。
Configure Swapping Information in Components ダイアログには、回路図エディター、回路図ライブラリエディター、およびPCBエディターから、次の方法でアクセスできます。
- Schematic Editor/Schematic Library Editor - メインメニューから Tools » Configure Pin Swapping コマンドを選択します。
- PCB Editor - メインメニューから Tools » Pin/Part Swapping » Configure コマンドを選択します。
Configure Swapping Information in Componentsダイアログを使用すると、複数のコンポーネントのスワップ設定をすばやく定義できます。このダイアログには便利な右クリックメニューが用意されており、あるコンポーネントの設定を別のコンポーネントにすばやくコピーしたり、ワンクリックで複数のコンポーネントを有効または無効にしたりできます。
Configure Swapping Information In Components ダイアログ。
Configure Swapping Information in Componentsダイアログのオプションとコントロール
- Component Information - 一覧内のコンポーネントに関するすべての関連情報(Designator、Comment、Footprint、Library Reference、Pins、Parts)を表示します。
-
Configure in Schematic
-
Pin Swap Data - コンポーネントのピンのうち、ピンスワップグループに追加されているピンの数を表示します。 たとえば、[3/2] は、3本のピンのうち2本がピンスワップグループに追加されていることを示します。コンポーネントが変更され、ピンスワップグループにピンが追加されると、
アイコンが表示されます。コンポーネントが変更され、ピンスワップグループからピンが削除されると、
アイコンが表示されます。
-
Part Swap Data - コンポーネントのパートのうち、パートスワップグループに追加されているパートの数を表示します。たとえば、[3/2] は、3つのパートのうち2つがパートスワップグループに追加されていることを示します。コンポーネントが変更され、パートスワップグループにパートが追加されると、
アイコンが表示されます。コンポーネントが変更され、パートスワップグループからパートが削除されると、
アイコンが表示されます。
-
-
Enable in PCB
-
Pin Swap - チェックボックスで、各コンポーネントのピンスワップを有効または無効にします。 OK をクリックしてダイアログを閉じると、スワップ設定が有効になります。
- Part Swap - チェックボックスで、各コンポーネントのパートスワップを有効または無効にします。 OK をクリックしてダイアログを閉じると、スワップ設定が有効になります。
-
- Configure Component - クリックしてピンスワップ設定ダイアログを開き、基板上の各コンポーネントのピンとサブパートのスワップ設定を行います。
- Only Show Components with Swap Information - チェックすると、ピンスワップまたはパートスワップが有効になるように設定されたコンポーネントのみを表示します。
ピン、ペア、パートのスワップの実行
インタラクティブなピン、ペア、パートのスワップ
インタラクティブスワップでは、PCBエディターでピン、差動ペア、またはサブパートを1つずつスワップできます。インタラクティブスワップのコマンドは、Tools » Pin/Part Swapping サブメニューにあります(Interactive Pin/Net Swapping、Interactive Differential-Pair Swapping および Interactive Part Swapping コマンド)。メニューからコマンドを選択すると、PCB設計スペース内のスワップ可能な要素以外のすべての要素がマスクされ、薄く表示されます。 Status Barには次の操作を促すメッセージが表示されるため、確認しながら進めてください。スワップに必要な手順は、ステータス行に表示されます。
-
まず、ハイライト表示されたピンの中から、ピンスワップのスワップ元となるピンを1つ選択します。ペアまたはパートのスワップの場合は、そのピンが属する差動ペアまたはサブパートがスワップされます。
-
次に、スワップ先のピンを選択します。ペアまたはパートのスワップの場合、このピンは差動ペアまたはサブパートを代表するものとなります。
以下の2つの画像は、デュアル5入力NORゲートコンポーネントのパートをインタラクティブにスワップする手順を示しています。スワップ可能なサブパートが2つあるため、上の画像に示すように、それぞれの5本のピンのいずれかを選択できます。ここでは、サブパートU2Bに対応するピン8を選択しています。すると、スワップ可能なサブパートU2Aのピンがハイライト表示されます。
1枚目の画像、手順1 - スワップするピンを選択します。選択可能なピンがハイライト表示されます。2枚目の画像、手順2 - スワップ先のピンを選択します。
自動ピン/ネットオプティマイザー
自動ピン/ネットオプティマイザーは、2段階で処理を行うツールです。自動最適化を実行するには、PCBエディターのメニューからTools » Pin/Part Swapping » Automatic Pin/Net Optimizerを選択します。
自動ピン/ネットオプティマイザーは、まず高速なシングルパス最適化を実行し、接続の交差数と接続長の最小化を試みます。ただし、実際にはこれらが増加する場合もあります。処理が完了すると、反復最適化を実行するかどうかを確認するメッセージが表示されます。反復最適化では、複数回の処理を行い、接続の交差数と接続長の削減を試みます。
変更を回路図に反映する
ピンスワップの設定ダイアログでswap groupsを設定すると、コマンドの起動時にどのエディターがアクティブだったかに関係なく、編集内容が回路図コンポーネントに即座に適用されます。ただし、PCBエディターでピン、差動ペア、またはサブパートをスワップしたことによる設計変更は、標準の Design Updateプロセスを使用して回路図に反映されます。
PCBから回路図に変更を反映する
ピン、ペア、パートのスワップは、他の設計変更と同様に、メニューからDesign » Updateを選択して回路図に反映します。Project Options - Options dialogのピンスワップを許可オプションの設定に応じて、ピンスワップは次の方法で実行されます。
- ピン名を変更 - シンボル上のピンを移動します。シンボル上でピンが実際に移動するわけではありませんが、見た目上は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は、多くの場合、ピンの各バンクを個別の回路図パートとするマルチパートコンポーネントとして表現されるためです。あるパートから別のパートにピンを移動すると、バンクのシンボルにそのバンクに属さないピンが含まれることになり、これらのシンボルは論理的に正しくなくなります。この場合は、ネットラベルの変更によってピンスワップを実行するのが適切です。
必要に応じて繰り返す
このプロセスは、設計中のどの時点でも、必要な回数だけ繰り返し実行できます。




)。



