PCBのリバースエンジニアリングのサポート
概略
- ODB++、Gerber、NC Drillデータのインポート方法と、レイヤーの種類、物理的なレイヤー順序、ドリルセットの確認方法を学びます。
- 接続情報を抽出し、IPC-D-356ネットリストを使用してネット名を復元したり、ネットリストを比較したりする方法を理解します。
- 閉じた基板外形と分割プレーンの要件、およびポリゴンのエクスポートオプションを確認します。
CAMデータをCAMドキュメントにインポートすると、CAMエディターの現在のモード(CAMまたはNC)にかかわらず、Export to PCBオプションがグレー表示されていることに気付くでしょう。このコマンドを使用すると、CAMファイルから直接PCBレイアウトをリバースエンジニアリングできます。通常のエクスポート/インポート手順を経るのではなく、データをPCBエディターに直接読み込みます。
以降のセクションでは、CAMデータからPCB設計をリバースエンジニアリングする手順を詳しく説明します。CAMドキュメントへの最初のインポートから、エクスポート前に必要な準備、そして最終的に設計データをPCBエディターへエクスポートするまでの流れを解説します。
データのインポート
このプロセスは、ODB++ファイル、またはGerberファイルとNCドリルファイルを新しいCAMドキュメントに読み込むところから始まります。IPCネットリストがある場合は、GerberデータとNCドリルデータをインポートする際に、これも併せてインポートしてください。ODB++をインポートする場合は、ODB++ディレクトリにネットリストが含まれていない場合にのみIPCファイルをインポートします。IPCネットリストを使用すると、抽出したネットを元の名前に更新できるほか、スルーホールビアと、コンポーネントに属さないフリーパッドを区別できます。
File » Importサブメニューのコマンドは、いずれも指定したフォルダー内で特定の拡張子を持つファイルを検索します。たとえばドリルファイルをインポートする場合、指定したディレクトリでは、拡張子が.DR*、.ROU、.RTE、*.NC*、 および*.TX* のファイルだけが表示されます。これらとは異なる拡張子のドリルファイルを受け取った場合は、PreferencesダイアログのCAM Editor - Miscellaneousページで、このリストに拡張子を追加できます。ここでは、Gerber、アパーチャ、HPGL、ネットリストの各ファイルに関連付けられたデフォルトの拡張子リストも変更できます。
PreferencesダイアログのCAM Editor - Import/Exportページでは、Gerberファイルのインポートおよびエクスポートのデフォルト設定を変更できます。たとえば、P-CADで生成されたCAMデータを日常的に受け取る場合は、座標の精度形式を2:3(Altium Designerのデフォルト)から4:4(P-CADのデフォルト)に変更するとよいでしょう。変更しなくても、ジョブをインポートするたびに、これらの設定をデフォルト値から変更できます。
レイヤータイプの割り当て
Layer Table Detection Templateダイアログ
個々のGerberファイルとドリルファイルは、それぞれ個別のレイヤーに割り当てられます。さらに、CAMエディターはインポート時にファイル名を調べ、各ファイルへのレイヤータイプの割り当てを試みます。この処理は、メインメニューからTables » Layer Type Detectionを選択して開くLayer Types Detection Templateダイアログの情報に基づいて行われます。このダイアログは自由にカスタマイズでき、各ファイルを信号、ネガティブプレーン、外形、ドリル、一時レイヤー(メカニカル)などのレイヤータイプとして識別するためのファイル名の一部(拡張子、キーワード、またはその両方)が含まれています。
たとえば、Altium DesignerのPCBエディターは、トップレイヤーの.gtl、ボトムレイヤーの.gblなどの拡張子によってGerberレイヤーを区別します。他の設計ツールでは、トップレイヤーを.topファイル、ボトム(はんだ面)レイヤーを.solファイルとして出力する場合があります。P-CADなど、一部のツールでは、ユーザーがGerber出力ファイル名を指定できます。
CAMファイルのグループをインポートした後、Layers Tableダイアログを開いて、自動的に行われたタイプの割り当てを確認できます。タイプのドロップダウンリストを開けば、どの割り当ても変更できます。たとえば、すべてのドリルファイルのタイプが自動的にDrill Topに設定されていることに気付くでしょう。この時点で、トップ、ボトム、内部のドリルセットを区別しておくこともできます。ただし、これは必須ではありません。
レイヤータイプが自動的に正しく割り当てられないGerberファイルやドリルファイルを日常的に受け取る場合は、 CAM Editorがファイルを識別できるような特徴がファイル名にないかを確認し、それらをLayer Types Detection Templateダイアログに追加してください。ODB++では、各レイヤーの識別に必要なすべての情報がマトリックスファイルに保存されているため、Layer Types Detection Templateダイアログを使用する必要はありません。ただし、読み込み処理が完了したら、レイヤータイプの割り当てを確認することをお勧めします。
基板の積層構成とドリルセット
Create/Update Layers Order ダイアログ
信号タイプ(トップ、ボトム、内部)またはプレーンとして割り当てられたレイヤーは、メインメニューからTables » Layers Orderを選択して開くCreate/Update Layers Orderダイアログに表示されます。ほとんどの場合、CAM Editorは提供されたCAMデータから積層構成を判定できますが、論理的な順序(レイヤーがインポートされた順序)しか得られない場合もあります。Layer Physical Order列の情報が正しく、番号1がトップレイヤーになっていることを確認してください。異なるレイヤーに同じ順序番号を割り当てないよう注意してください。有効な積層構成を指定すると、次にこのダイアログを開いたときには、物理的な順序の列が論理的なリストよりも優先され、設定した積層順序でレイヤーが表示されます。
この物理的な順序は、メインメニューからTables » Layers Setsを選択して開くCreate/Update Layers Setsダイアログにも反映されます。このダイアログでは、ドリルファイルをレイヤーセットに対応付けます。ブラインドビアとベリードビアの両方を備えた6層基板(信号層4層、プレーン層2層)を例に考えてみましょう。この設計には、次の4つの個別のドリルファイルが含まれる場合があります。
- Top-Bottomペア用(スルーホール)
- Top-InternalPlane1ペア用
- MidLayer1-MidLayer2ペア用
- Bottom-InternalPlane2ペア用
ネットリストの抽出
メインメニューからTools » Netlist » Extractを選択して実行するこのステップでは、それまでの手順の正確さが重要になります。基板のすべてのレイヤーにレイヤータイプが割り当てられていないと、実行できません(メカニカルレイヤーはTemporaryに設定してください)。コマンドを実行するとネットリスト情報が抽出され、CAMtastic パネルの Nets タブにネットの一覧が表示されます。 各ネットは、その総配線長とともに一覧表示されます。パネルでネットの項目をクリックすると、そのネットが選択され、設計スペース内で拡大表示されます。
CAMエディターは、NCドリルファイルを参照してレイヤー間の接続を確認しながら、レイヤーからレイヤーへと接続を追跡します。このため、Create/Update Layers Orderダイアログで定義した積層構成と、Create/Update Layers Setsダイアログで選択したドリルペアは、CAMデータから正確なネットリストを抽出するための重要な前提条件となります。
インポートしたGerberファイルおよびNCドリルファイルにIPC-D-356ネットリストファイルが含まれている場合は、メインメニューからTools » Netlist » Rename Netsを選択することで、元の意味のあるネット名を復元できます。 コマンドを実行するとネットが比較され、現在のドキュメントから抽出されたネットの名前が、IPCネットリストファイルのネット名に変更されます。更新された名前は、 CAMtastic パネルの Nets タブに表示されます。
IPC-D-356ネットリスト情報はエクスポートに必須ではありませんが、用意しておくことをお勧めします。 この情報があると、CAMtasticエディターがパッドとビアを区別しやすくなり、設計内のブラインドビアやベリードビアを、パッドではなくビアとして正しく作成できます。さらに重要なのは、IPCネットリストが、メインメニューからTools » Netlist » Compareを選択した際に、抽出したネットリストと比較するための基準となることです。コマンドを実行すると比較が行われ、レポート Netlist-Compare.rptが生成され、メイン設計ウィンドウでアクティブドキュメントとして開かれます。このレポートには、インポートしたネットリストには存在するものの、抽出したネットリストには存在しないネットがすべて一覧表示されます。
IPCネットリストが正しくインポートされると、 CAMtastic パネルのレイヤーリストに、最上層と最下層の信号層のネットリスト情報を反映した2つのレイヤー、 <fabrication_testpoint_report_for_DesignName>.ipc_t および <fabrication_testpoint_report_for_DesignName>.ipc_bが追加されます。(PCB設計に内部信号層がある場合は、3つ目のレイヤー <fabrication_testpoint_report_for_DesignName>.ipc_inが表示されます。これらの層に関係するブラインドビアやベリードビアがない場合、この3つ目のレイヤーは空になるため、そのまま残しても、レイヤーリストから削除してもかまいません。)
PCBエディターから生成したIPCネットリストでは、CAMエディターの比較機能によって、名前のない「欠落ネット」がいくつも検出されることがあります。これは、PCBエディターのIPC形式に、単一ピンのネットが含まれるためです。一方、CAMエディターでは、銅箔による接続がないパッドはネットリストの対象として扱われません。実際に、CAMエディターのDRCには、未使用パッドを削除するオプションがあります。
境界とプレーン
CAM EditorがPCBファイルをPCBエディターにエクスポートすると、基板外形が自動的に生成されます。これを適切に行うには、Borderタイプのレイヤーに閉じたポリラインが存在する必要があります。このレイヤーに閉じたポリラインが見つからない場合や、Layers Tableダイアログで複数のレイヤーが境界として指定されている場合は、意図した基板形状が得られない可能性があります。
内部プレーンの分割部分も、閉じたポリラインで定義する必要があります。ポリラインが閉じているかどうかを確認するには、そのポリラインを照会します(ショートカット:Q)。ポリライン全体がハイライトされるかどうか、およびCAMパネルのInfoタブで閉じたポリラインとして表示されるかどうかを確認してください。閉じていない場合は、Edit » ObjectsサブメニューのJoinコマンドを使用して、現在の形状を閉じたポリラインに変換できます。
分割プレーンの各領域には、それぞれ独立した「バブル」状の囲みが必要なため、追加の作業が必要になる場合があります。独立した島状のプレーンは前述の方法で結合できますが、他の分割領域や境界ポリラインと外形を共有する分割プレーンは、描き直す必要があります。閉じたポリラインを自分で描くには、最後の頂点を選択した後に右クリックし、Closeを選択します。
入れ子になったプレーン(分割プレーン内の島)は、現在サポートされていません。
ポリゴンのエクスポート
PreferencesダイアログのCAM Editor - Import/Export ページには、CAMドキュメント内のポリゴンをPCBドキュメントにエクスポートする方法を設定する追加オプションがあります。長方形のポリゴンは、PCBドキュメント上でフィルとして作成できます。長方形以外のポリゴンは、PCBエディターでハッチングまたはソリッドのポリゴンポアとして作成できます。これら2種類のポリゴンポアのオプションダイアログにアクセスできるため、エクスポートしたポリゴンをPCB側でどのように扱うかを、より細かく制御できます。
Create Hatched Polygonsオプションを有効にすると、CAM Editorは単一のグリッドサイズと単一のトラック幅を使用して、ファイル内のすべてのポリゴンを塗りつぶします。CAMデータに非常に小さなポリゴンが含まれる場合は、その大きさに対応できるようにエクスポートオプションを調整してください。
対応するHatched Polygon Optionsボタンをクリックして開くPolygon Optionsダイアログでは、ポリゴンのグリッドサイズ、トラック幅、最小プリミティブ長を変更できます。ポリゴンを高精度で完全に塗りつぶすには、これらの値をすべて、基板上で必要とされる最小寸法に合わせた狭い範囲に設定してください。そうしないと、ポリゴン内に空白ができたり、完全な塗りつぶしではなくハッチングパターンになったり、エクスポート時にポリゴン全体が欠落したりする可能性があります。
Polygon Optionsダイアログ
ただし、これらの値はエクスポートされるすべてのポリゴンに適用されるため、非常に小さな値を設定すると、エクスポートファイルのデータ量が増え、再描画速度などの管理上の問題も大きくなります。そのため、基板上のすべてのポリゴンで必要な精度を確保できる範囲で、できるだけ大きな値を使用するのが最適です。
Create Solid Polygonsオプションを有効にすると、各ポリゴンは1つ以上のソリッド銅箔領域で塗りつぶされます。使用される銅箔領域の数は、トラックやパッドなどの既存のネットオブジェクトによってポリゴン内に形成される個別の領域の数によって決まります。
Solid Polygon Optionsダイアログ
対応するSolid Polygon Optionsボタンをクリックして開くSolid Polygon Optionsダイアログでは、銅箔の孤立領域や幅の狭い銅箔ネットの扱い、および銅箔ポアと同じネットに属するネットオブジェクト上にポアを配置する際の動作を設定できます。
-
Pour Over All Same Net Objects - ポリゴンポアを、同じネットに属するすべてのオブジェクトに自動的に接続する場合は、このオプションを選択します。
-
Pour Over Same Net Polygons Only - ポリゴンポアを、その境界内にあり、かつ同じネットに属するポリゴンポアオブジェクトのみに自動的に接続する場合は、このオプション(デフォルト)を選択します。
-
Don't Pour Over Same Net Objects - ポリゴンポアを他のどのネットオブジェクトにも接続したくない場合は、このオプションを選択します。最初の2つのオプションのいずれかを選択し、ポリゴンポアに No Netが割り当てられている場合は、各オブジェクトのネット割り当てに関係なく、すべてのオブジェクトを避けてポアが配置されます。
PCBへのエクスポート
CAMデータからネットリストを抽出すると、File » Export » Export to PCBコマンドが有効になります。必要な手順をすべて完了してからこのコマンドを実行すると、元の設計と非常によく似た基板設計を含むPCBドキュメントが作成されます。
コマンドを実行すると、新しいPCBドキュメントが生成され(<CAMDocumentName>.PcbDoc)、設計スペースでアクティブなドキュメントとして開かれます。CAMドキュメントからPCBドキュメントへの情報転送は、実際には次の順序で行われます。
-
CAMドキュメント内の現在の基板サイズに基づく基板外形を持つPCBドキュメントが作成されます。
-
CAMドキュメントから抽出されたネット情報を使用して、PCBドキュメント内にネットオブジェクトが作成されます。
-
CAMドキュメントで定義された物理レイヤーの順序に基づいて、レイヤースタックアップが生成されます(Tables » Layers OrderからアクセスするCreate/Update Layers Orderダイアログ)。
-
内部プレーンにネットが割り当てられます。
-
存在するスプリットプレーンにネットが割り当てられます。これらは
-
クリアランス、配線幅、および電源プレーン接続スタイルのデザインルールが作成されます。各プレーンネットに対してサーマルリリーフ接続が作成されます。
-
CAMデータからパッドスタックが構築されます(物理的な順序に従って信号/プレーンレイヤーのパッドを使用し、続いてドリル、マスク、ペーストなどを使用します)。パッドスタックがPCBに読み込まれ、必要なスタイル(シンプルまたはフルパッドスタック)が定義されます。
-
PCBの配線が作成されます。
-
基板全体に対してDRCチェックが実行されます。



)。