相違点の検索とデザインの同期

このアーティクルでは、Altium Designerを使用して回路図とPCBデザインを同期させておくためのプロセスについて概要を説明します。 特にデザイン間の相違を検知し、分析する機能について紹介します。

Article AR0106 (v2.1) March 10, 2008

回路デザインを新規PCBドキュメントへ初めて移行する場合や、回路図、PCBのいずれかの既存デザインの変更を行う場合も、双方での同期が必要になります。 Altium Designerでは、デザインを同期させるという問題を解決するために、強力なデザインの同期機能が搭載されています。 これは、設計者から見ると最も重要であり、設計の仕事をより容易に取り組むことができます。

同期 - 概要

同期プロセスは、基本的に3つのステップに分類されます。
1.デザインドキュメントの比較 (例えば、プロジェクトソースドキュメントをターゲットPCBと比較)
2.その比較結果をリスト化 (比較したドキュメント間の相違を検知)
3.相違を解決するために変更を実行
同期プロセスの重要な機能は、ユーザが設定できるコンパレーター(または、比較エンジン)です。 このコンパレーターは、上記のステップ1で使用します。 - 指定されたデザインドキュメントを比較し、相違のリストをコンパイルします。

ステップ2では、比較結果をリスト化するダイアログを表示して、相違を解決する時に作成されるデザインへの更新の方向をコントロールできます。 詳細については、 Directing the Update Trafficの項目を参照してください。


図1 Altium Designerでの同期プロセスのフロー

ステップ3は、変更を実行するステップです。 - デザインを同期させるために実行する動作です。 各動作は、Engineering Change Order (ECO)として表現された共有の動作であると共に、マクロコマンドです。 詳細については、 Implementing Design Updatesの項目を参照してください。

相違の検知

上述の通り、同期機能で非常に重要なのは比較機能で、この機能を無くしてデザインドキュメント間の相違を検知することはできません。 比較機能は、すべての種類のドキュメント間でコンポーネントと接続情報を比較できます。 以下は、比較できるドキュメントの種類です。

  • プロジェクトのデザイン階層とPCB
  • 回路図と回路図
  • PCBとPCB
  • ネットリストとPCB
  • ネットリストとネットリスト

コンパレーターは、Projectメニューから利用できるShow Differences、またはShow Physical Differencesコマンドの様な比較に基づくコマンドが実行されると働きます。 直接、回路図プロジェクトからPCBへ(あるいは、その逆)の比較更新を行う場合、DesignメニューからUpdate/Importコマンドを使用して実行します(Direct Schematic PCB Synchronizationを参照してください)。

コンパレーターの設定

コンパレーター が検知する相違の種類に対するコントロールを行えます。 コンパレーターのコントロールは、プロジェクトの一部として保存されたすべての設定があるOptions for Projectダイアログ(Project » Project Options)のComparatorタブからアクセスします。

比較の種類は、4つの項目に分かれています。

  • Differences associated with Components - コンポーネントレベルで実行される比較(例えば、回路図やPCBドキュメントで異なったデジグネータを持つコンポーネントの検知)。
  • Differences associated with Nets - ネット(接続)レベルで実行される比較 (例えば、回路図かPCBに存在する余分なネットの検知)。
  • Differences associated with Parameters - パラメータレベルで実行される比較 (例えば、回路図とPCBの双方に存在する同じパラメータを持つが値が異なるオブジェクトの検知)。
  • Differences associated with Physical - 同じ回路図、またはPCBの2つのバージョンを比較する時に物理的なレベルで実行される比較(例えば、比較したドキュメントのあるバージョンで余分なPCBオブジェクトの検知)。

必要に応じて、コンパレーターを設定するためにコントロールを使用します。 各比較タイプについて、検知した相違をコンパレーター(Find Differences)によって作られた最終的な相違のリストに追加するか、またはリストに含めない (Find Differences)か、決定できます。 'Ignored' の比較タイプに設定する時の一例として、マルチチャネル'でないデザインの場合があります。 この場合に、チャネルに関連した比較タイプ (Changed Channel Class Name, Channel Classes with Extra Members, Extra Channel Classes)を無視する設定にできます。

更に、コントロールは、比較したドキュメント間でオブジェクトを一致させる時にコンパレーターで使用した条件を利用できます。 基本的にNet, Net Class, Component Classの設定は、これらのオブジェクトタイプの比較方法を微調整できます。

コンパレーターの実行

同期プロセスのコントロールでは、コンパレーターで検知し、構築された相違のリストを表示できる必要があります。 これは、特に同期を(再度)実行するために、どんな方向でどんな更新(変更)を行うかコントロールしたい場合に必要です。 相違のリストを表示するには、ProjectメニューからShow Differencesコマンドを使用します。

ドキュメントの選択

Show Differences コマンドを実行すると、Choose Documents To Compareダイアログが表示され、比較したいドキュメントが選べます。 デフォルトでは、ダイアログはプロジェクトのソースドキュメントの階層と比較するためのターゲットとなるPCBドキュメントを素早く選択できる簡易(高度ではない)モードで開きます。

必要に応じて、Advancedオプションを有効にすると、比較する別のドキュメントを選択できます。 例えば、サードパーティの回路図エディタから作成したネットリストを使用してPCBを作成する場合があるかもしれません。 これは、Altium Designerではターゲットとなる(ブランク)PCBドキュメントとネットリストを比較して容易に行えます。
ターゲットPCBとプロジェクトのソースドキュメント階層を比較する時、ソースドキュメントは比較される前に再コンパイルされます。

Unique IDを介したコンポーネントリンク

Synchronizerを使用して、コンポーネントの情報が回路図ソースドキュメントとブランクのPCBドキュメント間で最初に移行される時、すべてのコンポーネントはユニークID(フットプリントに割り当てられている各回路図コンポーネントのID情報)によって自動でリンクされます。コンポーネントを回路図シートへ配置する際、自動でユニークIDが割り当てられます。 Altium Designerでは、コンポーネントを比較してリンクさせるためにソース回路図とターゲットPCBドキュメントをスキャンします。 これらは、互いに同期してユニークIDを共有するコンポーネントです。 もし、コンポーネントがドキュメント間で同期していない場合、デジグネータから自動で、または手動でコンポーネントを一致させるためのダイアログが表示されます。 後者は、Edit Component Linksダイアログ (Project » Component Links) (Figure 2)を使用して、PCBドキュメントからのみ実行できます。


図2 手動によるコンポーネントリンクによるUnique IDの割り当て

手動によるコンポーネントのリンクがPCBドキュメントからしか実行できない理由は、PCBコンポーネントのフットプリントをユニークID情報(これは回路図側に存在します。 )で更新する必要があるからです。 コンポーネント間のリンクを表示するには、デザイン中のどんな段階でもこのダイアログを使用し、回路図ソースドキュメントのコンポーネントが、正しくPCBデザインのコンポーネントフットプリントに一致しているか確実にします。

Unique IDは、リンクしたコンポーネントをEdit Component LinksダイアログのUnmatchedのリストに移動することで、どんな時でも削除できます。 コンポーネントのリンクを解除することで、PCBのフットプリントからUnique ID が削除されます。 新しいUnique IDを作成しない限り(回路図、またはコンポーネントレベルでUnique ID をリセットするコマンドを使用して)、回路図コンポーネントのUnique IDはそのまま残ります。

回路図、またはPCBドキュメントのどちらでも、確実にどんな段階でも再同期させてデジグネータのアノテーションを実行できるので、Unique IDを使用してすべてのコンポーネントを一致させることは良い方法です。 コンポーネントがUnique ID で一致していなくてもドキュメントを同期させることはできますが、この場合、デジグネータだけ(コメントとフットプリントは考慮されないので、コンポーネントが正しく一致されない可能性があります。 )でコンポーネントを一致させるようになります。

同様の機能として、Unique IDはソース回路図ドキュメントで各パラメータを定義する際に自動で割り当てられます。 これは、デザインルールディレクティブとして追加されているパラメータに使用されます。 デザインをPCBドキュメントへ移行する際、定義したルールパラメータはPCBでデザインルールを生成するために使用されます。 生成されたルールは同じUnique IDが割り当てられ、回路図、またはPCBでルールを変更でき、同期する際に変更が反映されます。

更新方向の指示

ソースプロジェクトドキュメントとターゲットPCB間ですべてのコンポーネントをリンクして比較が行われます。 コンパレーターは、Project optionsで定義された設定に基づきます。 もし、相違(比較するタイプが無視される設定でない相違)が検知される場合、相違がDifferencesダイアログ(Figure 3)やMessagesパネルにリスト表示されます。 相違は、比較タイプによってグループ化されます。


図3 Differencesダイアログを使用して、相違を表示して更新内容を設定

Synchronizerは、双方向で同期が可能です。 これは、同じECOで両方のドキュメントへ更新を指定できることを表します。各相違についてデザインを同期させるには、更新すべきドキュメントを指定して変更を行うかどうか決めることです。

すべての相違の更新は、PCBから回路図ドキュメントへ戻して実行できると言うわけではありません。 このような場合、右クリックメニューの項目は、左側 (例えば、回路図ドキュメント) への設定はできません。 もし、Decision欄で関連した項目をクリックして個々にこの方向への変更を選択すると、作成されるECOは更新を含まず、回路図ドキュメントへのこのような変更は不可能でサポートされません。たとえ相違が検知されても、必ずしもそれらの変更を行う必要はありません。 Differencesダイアログでは、デフォルトのNo Changeの更新が各相違点に割り当てられます。 Altium Designerでは、指定する要素を同期させるだけです。 もし、すべての変更を行いたい場合、ダイアログ内で右クリックし、すべての相違内容、すべての選択した内容、またはすべての特定の比較タイプの内容に関するコマンドを選択します。 あるいは、個々の相違点を変更するためのUpdate欄をクリックします。

変更内容、変更によって影響を受けるオブジェクト、変更が行われるドキュメントの各相違については、ダイアログのChange Orderの領域にリスト表示されます。 これは、この後、更新を行うために使用するECOをコンパイルするために使用される情報です。

この領域でリスト表示される共通の動作は以下のようになっています:

  • Remove - これは、更新するドキュメントに相違があるオブジェクトが存在する場合、オブジェクトが削除されます。
  • Add - これは、更新するドキュメントに相違があるオブジェクトが存在しない場合、オブジェクトが追加されます。
  • Update - これは、双方のドキュメントに同じオブジェクトが存在し、何か違っている点があれば、選択した方向により、オブジェクトが変更されます。

図4に、更新内容決定後のDifferencesダイアログの例を示します。


図4 検知した相違を解決するための更新内容決定の例

コンパレーターで発見された相違、決定した更新内容や生成されたECOに含まれる動作をレポートとして印刷/エクスポートするには、Report Differencesボタンをクリックします。

相違の調査

ECOを生成する前にコンパレーターで発見された相違を更に調査したい場合、Explore Differencesボタンをクリックします。 Differencesダイアログが閉じ、Differencesパネルが表示されると共にワークスペース画面に戻ります。


図5 Differencesパネルを使用して相違を調査

パネルには、ドキュメント間で発見された相違がツリー構造で表示されます。 トップレベルのフォルダには、検知された相違の合計が表示されます。 また、サブフォルダには、Differencesダイアログに表示される各特定の比較タイプが作成されます。 各サブフォルダには、発見された特定の相違が(相違を比較したドキュメントのオブジェクト順に分類され)リスト表示されます。 その親ドキュメントで、相違のオブジェクトにクロスプローブするにはパネルを使用します。

この方法で相違を調査することで、Differencesダイアログで決定した更新内容は失われます。 このため必要に応じて、ダイアログを再度開いて、もう一度更新を定義する必要があります。 あるいは、Differencesダイアログ内から直接、オブジェクトにクロスプローブできます。 この場合、ダイアログのDifferencesの領域のオブジェクトの項目をダブルクリックします。 Differencesダイアログは、オープンされたままになりますので、ソースとターゲットドキュメントをオープンし、ダイアログを邪魔にならないところへ移動するのが良いでしょう。
Differencesパネルについての詳細な情報にアクセスするには、カーソルがパネル上にある時にF1を押します。

物理的な相違の表示 - グラフィカルでの実行

Project » Show Differencesコマンドは、(一般的には)異なるドキュメント(一般に、ターゲットPCBを含むプロジェクト内のソースドキュメント)間に存在する論理的な相違を検知できます。 これらは、コンポーネントや接続情報の比較を行います。 これらの機能に加えて、Altium Designerのコンパレーターは、回路図、またはPCBドキュメントの物理的な比較を行うことができます。 この機能は、ワークスペースで同じ回路図、またはPCBの2つのバージョンのドキュメントを並べて物理的な相違を表示し、グラフィカルに比較できます。
この機能を利用するには、以下のいずれかの方法を実行します:

  • Differencesパネルには、Differencesダイアログでリスト表示された相違だけを表示できます。
    Project » Show Physical Differences コマンドを使用します。 以前のバージョンのドキュメント(一般的にバックアップ)は、異なる名称で保存されていることを確認してください。 バックアップドキュメントはプロジェクトに追加する必要は無く、フリードキュメントとして開くことができます。 それから、Choose Documents To CompareダイアログでAdvanced modeを有効にすると、比較する2つのバージョンのドキュメントを選択できます。
  • Storage Managerパネルから、 2つのバージョンのドキュメントを選択します。Local Historyの領域(または、VCS Revisionsの領域 - ドキュメントがCVS、SVNを使用したバージョンコントロール下にある場合)で、右クリックしてCompareを選択します。
  • Show Physical Differencesコマンドは、同じドキュメントの2つのバージョンを比較する目的があります。 もし、異なるドキュメント(例えば、PCBを含むプロジェクトの回路図)を比較するためにこれを実行する場合、論理的な相違がリスト表示されたDifferences パネルが表示されます。 Differences ダイアログは、表示されません。 ここでは、論理的な相違を調査するだけです。 更新するには、Show Differences コマンドを実行します。Project » Local History » Show Local History コマンドを使用します。 リストから2つのバージョンのドキュメントを選択しCompareをクリックします。

比較は、これら3つの場合に、Options for ProjectダイアログのComparatorタブのPhysical 比較タイプについて定義されたオプションに従って行われます。 検知された物理的な相違は、Messagesパネルに表示されると共に、Differencesパネルにもリスト表示されます。 2つのバージョンのドキュメントをメインデザインウィンドウで並べて開くことで、グラフィカルに相違を確認できます。 検知された相違のトップレベルのフォルダをクリックすると(Differencesパネルで)、同時に双方のドキュメントの相違がハイライト表示されます(図6)。 ドキュメントで個別にハイライト表示するには、オブジェクトのサブエントリをクリックします。
この機能は、バージョン間の視覚的な相違の比較であり、どちらのドキュメントもECOの生成で更新できないことに注意してください。

Storage Managerパネルの詳細な情報については、カーソルが(フォーカスされた)パネル上にあるときにF1 を押します。


図6 Differencesパネルを使用して、異なるバージョンのドキュメント間の物理的な相違を調査

ASCIIテキストドキュメントのバージョンを比較

コンパレーターの一部ではありませんが、テキストベースのASCIIドキュメントの2つのバージョンを比較する機能があります。 この機能は、Storage Managerパネルからドキュメントを比較する時、またはShow Local Historyコマンドを使用する時に利用できます。 比較によってCompareFormダイアログ(図7)が開き、2つのバージョンのドキュメントのグラフィカルな '相違' が表示されます。 ダイアログは比較のために表示されるだけで、読み込まれたドキュメントを修正することはできません。


図7 ASCII ドキュメント間の相違を調査

デザイン更新の実行

デザインの更新/変更は、Engineering Change Orders(ECOs)を使用して実行します。 要求された同期を行うために、ECOには、デザインドキュメントに変更を実行するためのすべての情報がリスト表示されます。
ECOは、以下のような様々な状況でデザインの更新を行うために使用します:

  • 回路図コンポーネントのデジグネータをアノテーションにより更新する場合
  • Parameter Managerを使用してパラメータを更新する場合
  • ソースライブラリ、または会社のデータベースに保存された情報をパラメータに更新する場合

おそらく最も重要で、最も頻繁にECOを使用する状況は、この章の一つとして考慮されていますが、作成した回路図デザインのソースドキュメントとターゲットPCBを同期させる場合です。 同期を保つには、どちらか一方で行った変更を(ECOを実行し)常に反対側へ更新する必要があります。

ECOオプションの設定

コンパレーター と同様に、Altium Designerではどの修正タイプを生成されたECOに含めるかコントロールできます。 プロジェクトの一部として保存されたすべての設定と共に、ECOに関連したオプションは、Options for Projectダイアログ (Project » Project Options)のECO Generationタブでアクセスできます。
修正タイプは、コンポーネント、ネットやパラメータに関連した項目でグループ化されます。

必要に応じて、ECOを生成するためのコントロールを使用してください。 各修正タイプについて、そのタイプの更新動作をECO (Generate Change Orders)内の修正リストに追加するか、もしくはスキップしてECO (Ignore Differences)に含めないかどうか決めることができます。

ECOの生成


図8 Engineering Change Order (ECO)内に表示された変更内容の例

以下の例のようなプロジェクトソースをPCBへ同期させるには、検知された相違のリストを表示してそれらを調査し、必要に応じて更新方向を設定した後、ECOを生成します。 これは、DifferencesダイアログのCreate Engineering Change Orderボタンをクリックして実行します。 Engineering Change Orderダイアログが表示され、デザインを同期するために必要な変更内容がリスト表示されます(図 8)。

デフォルトでは、ECOが実行される時にすべての修正が含まれます。 再度、必要に応じて、各修正を有効/無効にするかコントロールできます。
右クリックメニューのコマンドにより、回路図とPCBドキュメントに関連したターゲットと参照するオブジェクトにクロスプローブできます。
変更を実行する前、提案した修正を確認することは特に重要です。 これを行うには、Validate Changesボタンをクリックします。 提案した変更が論理的にテストされるだけでなく、モデルが確実に利用できるようにライブラリが検索され、更にピンとパッドのマッチングもチェックされます。 確認の結果は、ダイアログのCheck欄に表示されます。 緑のチェックマークは、提案した変更がサポートされることを表し、ECOが実行されると同時に確認が実行されます。 赤いクロスマークは、提案した変更が有効でないことを表し、ECOが実行される時に確認は行われません。
もし、修正が確認の段階で失敗する場合、ダイアログのMessage欄(更に、Messagesパネル)にエラー内容(例えば、Footprint Not Found)が表示されます。 何故、変更が失敗しているか、そして必要に応じてデザインを変更する内容を調査するために、どの段階でもいつでもダイアログを閉じることができます。 必要な設定が完了した時、ECOを実行するためにExecute Changesボタンをクリックし、ECO内の有効な変更を実行します。

ECOが実行されると、各修正内容のDoneの欄に緑のチェックマークが表示されます。 確認の段階を通過した変更だけが実行されます。
ECOに含まれた変更内容のレポートを印刷/エクスポートするには、Report Changesボタンをクリックします。 変更内容が実行可能かどうかに関わらず、レポートにはすべての変更内容がリスト表示されることに注意してください。

同期エラーの解決

大規模なネット接続の変更がある場合、PCBエディタで容易にネットリストをクリアにできます(同期プロセスはそれらを再ロードします)。 それから、どんな配線にもネット情報を再度、割り当てる必要があります。 これは、Configure Physical Netsダイアログ(Design » Netlist » Configure Physical Nets)を使用して実行します。
デザインの同期に関する多くの問題は、一般的に2種類あります:

  • コンポーネントフットプリントの誤り。 これは、以下の場合があります。
    • - フットプリントモデルが回路図のコンポーネント情報に割り当てられていない。
    • - 利用できるライブラリにPCBライブラリを追加することを忘れた。
    • - 回路図のコンポーネントがどのPCBライブラリコンポーネントとも一致しない。
  • フットプリントのピン番号が回路図のピン番号と一致しない。 Altium Designerでは、ピンとパッドのマッピングは、ユーザー定義が可能です。 デフォルトでは、双方で同じ数/文字が割り当てられます。 ピンとパッドのマッピングは、PCB Modelダイアログ(回路図シンボルをダブルクリックしComponent PropertiesダイアログのModelsの領域のFootprintを選択して、Editをクリックします)で定義します。

エラーを解決するにはShow Differencesを実行しDifferencesダイアログでExplore Differencesボタンをクリックします。 相違点があればDifferencesパネルが表示されるので、そこで問題のあるデザインオブジェクトを調査してください。

回路図 ↔ PCBのダイレクトな同期

Altium Designerの回路図とPCBエディタでは、直接同期させるコマンドが用意されています。 これらのコマンドが直接であるという意味は、すべての相違点の更新方向が一方向であるということです。 Differencesダイアログは表示されないので、更新方向を変更できず、また同時に双方向の更新を実行できません。 その代わり、相違が検知される箇所は、直接、Engineering Change Orderダイアログで更新できます。 そこには、回路図からPCBへのデザインの変更、またはその逆を実行するための必要な修正内容が読み込まれます。 従って、コンパレーターとECO Generationオプションは、Options for Projectダイアログ(Project » Project Options)の各タブで適切に設定を行うことが重要です。 また、予期した変更が行われるか確認するために、ECOにリスト表示された変更内容を慎重に調べることは良い考えです。

以下の同期コマンドは、直接、ターゲットPCBドキュメントで利用できます。

  • Design » Update Schematics in ParentProjectName - PCBデザインで行った変更をプロジェクトのソース回路図へ更新するために使用
  • Design » Import Changes From ParentProjectName - プロジェクトのソース回路図ドキュメントで行った変更をアクティブなPCBドキュメントへ更新するために使用

以下の同期コマンドは、直接、ソース回路図ドキュメントで利用できます。

  • Design » Update PCB Document DocumentName - プロジェクトのソース回路図ドキュメントで行った変更をPCBドキュメントへ更新するために使用
You are reporting an issue with the following selected text and/or image within the active document: