CAMエディターにおけるPCBのリバースエンジニアリングのサポート
CAMデータをCAMドキュメントにインポートした後、Export to PCBオプションがグレーアウトされていることに気づくでしょう。これは、現在のCAMエディターモード(CAMまたはNC)に関係なくです。このコマンドを使用すると、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、ネットリストファイルに関連するデフォルトの拡張子リストも変更できます。
「設定」ダイアログ
CAM Editor - Import/Exportページでは、Gerberファイルのデフォルトのインポートおよびエクスポート設定を変更できます。例えば、P-CADを使用して生成されたCAMデータを定期的に受け取る場合、座標精度のフォーマットをAltium Designerのデフォルトの2:3からP-CADのデフォルトの4:4に変更することを検討するかもしれません。そうしない場合でも、ジョブをインポートするたびにこれらの設定をデフォルト状態から変更する機会があります。
レイヤータイプの割り当て
レイヤーテーブル検出テンプレート ダイアログ
個々のガーバーファイルとドリルファイルは、それぞれ個別のレイヤーに割り当てられます。さらに、CAMエディターはインポート時にそれらの名前を見て、各ファイルにレイヤータイプを割り当てようとします。これは、メインメニューからTables » Layer Type Detectionを選択することでアクセスできるLayer Types Detection Templateダイアログの情報に従って行われます。これは、シグナル、ネガティブプレーン、ボーダー、ドリル、および一時レイヤー(機械)など、個々のファイルをレイヤータイプとして識別するファイル名の断片(拡張子、キーワード、またはその両方)を含む完全にカスタマイズ可能なダイアログです。
例えば、Altium DesignerのPCBエディターは、.gtlをトップレイヤー、.gblをボトムレイヤーとして、ガーバーレイヤーをその拡張子によって区別します。他の設計ツールは、トップレイヤーには.topファイル、ボトム(はんだ)レイヤーには.solファイルをエクスポートするかもしれません。これらのツールの中には、P-CADのように、ユーザーがガーバー出力名を自分で指定できるものもあります。
CAMファイルのグループをインポートした後、レイヤーテーブルダイアログを開いて、自動的に行われたタイプ割り当てを確認することができます。タイプのドロップダウンリストを開いて、任意の割り当てを変更することができます。例えば、全てのドリルファイルが自動的にドリルトップのタイプに設定されていることに気づくでしょう。この時点で、トップ、ボトム、内部のドリルセットを区別したいかもしれません。ただし、これは必須ではありません。
レイヤーテーブルダイアログ
通常、Gerberファイルやドリルファイルが自動的に正しいレイヤータイプに割り当てられない場合、CAM Editorがそれらを識別できるように、ファイル名に特徴的な要素がないか確認し、それらをLayer Types Detection Templateダイアログに追加する必要があります。ODB++は、各レイヤーを識別するために必要な情報がマトリックスファイルに格納されているため、Layer Types Detection Templateダイアログを使用する必要はありません。しかし、ローディングプロセスが終了した後にレイヤータイプの割り当てを確認することは良い習慣です。
ボードスタックアップとドリルセット
「レイヤー順序の作成/更新」ダイアログ
信号タイプ(トップ、ボトム、または内部)またはプレーンとして割り当てられたレイヤーは、メインメニューから Tables » Layers Orderを選択することでアクセスできる レイヤーオーダーの作成/更新 ダイアログに表示されるようになります。ほとんどの場合、CAMエディターは提供されたCAMデータからスタックアップを判断できますが、場合によっては、インポートされたレイヤーの論理的な順序(レイヤーがインポートされた順序)のみが提供されることがあります。 Layer Physical Order列の情報が正しいことを確認することが最善です。一番上のレイヤーが1番であることを確認してください。異なるレイヤーに同じ順序番号を割り当てないように注意してください。有効なスタックアップを指定すると、このダイアログを再度開いたときに物理順序列が論理リストに優先され、提案されたスタックアップでレイヤーがリストされるようになります。
この物理的な順序は、Create/Update Layers Sets ダイアログで反映されます。これは、メインメニューから Tables » Layers Sets を選択してアクセスし、ドリルファイルをレイヤーセットにマッチさせる場所です。6層ボード(4信号層、2プレーン層)で、ブラインドビアとバリードビアの両方がある場合を考えてみましょう。設計には4つの別々のドリルファイルが含まれるかもしれません:
- トップ-ボトムペア(スルーホール)用
- トップ-インターナルプレーン1ペア用
- ミッドレイヤー1-ミッドレイヤー2ペア用
- ボトム-インターナルプレーン2ペア用。
ネットリスト抽出
このステップは、メインメニューからTools » Netlist » Extractを選択することでアクセスでき、それ以前のステップの正確さに依存します。ボードのすべてのレイヤーにレイヤータイプの割り当てがない限り、これを行うことはできません(機械レイヤーは一時的に設定する必要があります)。コマンドを起動すると、ネットリスト情報が抽出され、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エディタは、ネットリストに関しては、銅の接続がないパッドを無視します。実際、そのDRCには非機能パッドを削除するオプションがあります。
ボーダーとプレーン
CAMエディターがPCBファイルをPCBエディターにエクスポートすると、基板のアウトラインが自動的に生成されます。これを賢く行うためには、ボーダータイプのレイヤー上に閉じたポリラインが存在する必要があります。このレイヤー上で閉じたポリラインが見つからない場合、または複数のレイヤーがレイヤーテーブルダイアログでボーダーとして指定されている場合、望む基板の形状を得られない可能性があります。
内部プレーンの分割も閉じたポリラインで定義する必要があります。ポリラインが閉じているかどうかを判断するには、それを問い合わせてください(Qショートカット)。ポリライン全体がハイライト表示され、CAMパネルのInfoタブで閉じたポリラインとして報告されるかどうかを確認できます。そうでない場合は、Edit » ObjectsサブメニューのJoinコマンドを使用して、閉じたポリラインに変換することができます。
分割されたプレーンセクションは、各分割が自身の「バブル」エンクロージャを必要とするため、追加の作業が必要になる場合があります。上述のように、アイランドプレーンは結合できますが、他の分割やボーダーポリラインとアウトラインを共有する分割プレーンは、再描画する必要があります。独自の閉じたポリラインを描画するには、最後の頂点を選択した後、右クリックしてCloseを選択します。
ネストされたプレーン(分割プレーン内のアイランド)は、現在サポートされていません。
ポリゴンのエクスポート
CAM Editor - Import/ExportページのPreferencesダイアログでは、CAMドキュメントのポリゴンがPCBドキュメントにエクスポートされる方法を扱う追加オプションが提供されています。ポリゴンが矩形の場合、PCBドキュメント上で塗りつぶしとして作成することができます。非矩形のポリゴンの場合、PCBエディタでハッチングされたポリゴンまたはソリッドポリゴンの注ぎ込みを作成できます。これら2種類のポリゴン注ぎ込みタイプのオプションダイアログへのアクセスが提供され、エクスポートされたポリゴンがPCB側でどのように扱われるかについてより大きな制御を提供します。
Create Hatched Polygonsオプションを有効にすると、CAMエディタは単一のグリッドサイズと単一のトラック幅を使用してファイル内のすべてのポリゴンを塗りつぶします。CAMデータに非常に小さなポリゴンが含まれている場合は、エクスポートオプションをそのレベルまで調整することを確認する必要があります。
Polygon Optionsダイアログは、関連するHatched 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 - ポリゴン注ぎ込みが他のネットオブジェクトに接続しないように特に望む場合、このオプションを選択してください。最初の二つのオプションのいずれかが選択され、ポリゴン注ぎ込みがネットなしに割り当てられた場合、それはネットの割り当てに関係なく全てのオブジェクトの周りに注ぎます。
PCBへのエクスポート
CAMデータからネットリストが抽出された後、File » Export » Export to PCBコマンドが有効になります。必要な手順をすべて踏んだ後にこのコマンドを実行すると、元のデザインに非常に似たボードデザインを含むPCBドキュメントが作成されます。
コマンドを起動すると、新しいPCBドキュメント(<CAMDocumentName>.PcbDoc)が生成され、デザインスペースのアクティブドキュメントとして開かれます。CAMドキュメントとPCBドキュメント間の情報の転送における実際のイベントのシーケンスは以下の通りです:
- PCBドキュメントは、CAMドキュメントの現在のボードサイズに基づいたボードのアウトラインで作成されます。
- ネットオブジェクトは、CAMドキュメントから抽出されたネット情報を使用してPCBドキュメント内に作成されます。
- レイヤースタックアップは、CAMドキュメントで定義された物理レイヤーの順序に基づいて生成されます(Create/Update Layers Order ダイアログ、Tables » Layers Orderからアクセス)。
- ネットは任意の内部プレーンに割り当てられます。
- 存在する任意の分割プレーンにネットが割り当てられます。
- クリアランス、幅、電力プレーン接続スタイルの設計ルールが作成されます。各プレーンネットに対してリリーフ接続が作成されます。
- パッドスタックはCAMデータから構築されます(物理順序での信号/プレーンレイヤー上のパッドに続いてドリル、マスク、ペーストなどを使用)。パッドスタックはPCBにロードされ、必要なスタイルが定義されます(シンプルまたはフルパッドスタック)。
- PCBトラックが作成されます。
- ボード全体に対してDRCチェックが実行されます。
ボードを本当に再構節するには、コンポーネントのプリミティブをフットプリントに置き換えるなど、いくつかの追加の努力が必要です(これは、プリミティブのグループをPCBライブラリにコピー&ペーストしてから、元のものを新しいフットプリントに置き換えることで行うかもしれません)。PCBエディタは、CAMドキュメントのレイヤーセット情報から自動的にドリルペアを作成しません。それらを手動でレイヤースタックマネージャーで再定義する必要があります。