回路図上でディレクティブを扱う

Altium Training

Altium Essentials: Schematic Updating

This content is part of the official Altium Professional Training Program. For full courses, materials and certification, visit Altium Training.

デザイン・ディレクティブ(Design Directives)は、設計キャプチャ中に回路図へ配置するオブジェクトで、ソフトウェアの他の機能へ渡す指示を指定するための手段です。さまざまなデザイン・ディレクティブが用意されており、主に次の2つの用途で使用します。

  • ソース回路図ドキュメントの自動コンパイルに関連するディレクティブ。
  • 回路図シート上で定義した情報をPCBへ渡すために使用するディレクティブ。

以降のセクションでは、これらの領域と関連するディレクティブについて詳しく説明します。

コンパイル関連ディレクティブ

設計は時間とともに進化し、段階的にキャプチャされます。各段階が固まるたびに、設計全体から切り離してその段階だけを単独で確認したいことは珍しくありません。キャプチャ工程の途中段階で個別の回路図ドキュメント(またはプロジェクト全体)をコンパイルすると、まだキャプチャされていない回路や、回路断片間のインターフェース配線が未完成であることに起因する多数のエラーメッセージが出ることがよくあります。こうしたメッセージは実質的な価値がなく、重要な情報の周りにノイズを増やすだけです。これらのコンパイルエラーを抑制する最も手早く簡単な方法は、No ERC または Compile Mask ディレクティブを配置することです。

No ERC ディレクティブ

No ERC ディレクティブは回路のノード上に配置し、回路図プロジェクトの検証時に検出される Electrical Rule Check の警告および/またはエラー違反条件 の報告をすべて抑制します。詳細は Validating Your Design Project ページを参照してください。

Compile Mask ディレクティブ

No ERC ディレクティブは、設計内の違反しているピン、ポート、シートエントリ、ネットの数が少ない場合の抑制に適しています。しかし場合によっては、コンポーネントを含む設計の一部セクション全体を除外したいことがあります。Compile Mask ディレクティブ(Place » Directives » Compile Mask コマンド)を使用するか、Active Bar のディレクティブ・ドロップダウンにある Compile Mask ボタン()をクリックすると、含まれる設計領域をコンパイラから効果的に隠し、未完成でコンパイルエラーを生成すると分かっている回路に対するエラーチェックを手動で防止できます。これは、アクティブなドキュメントまたはプロジェクトをコンパイルして他の特定領域の設計整合性を確認したい一方で、未完成部分に関連するコンパイラ生成メッセージの「ノイズ」を避けたい場合に非常に有用です。

名前が示すとおり、このディレクティブは、定義したマスクの境界内に入るオブジェクトをコンパイラが無視するよう指示します。マスクは、ノートや矩形オブジェクトと同様に配置します。

次の画像の例では、LCD1 デバイスへの配線がまだ未完成です。この回路図(Project » Validate PCB Project)だけをコンパイルすると、未完成回路に起因する多数の違反メッセージ(下図)が表示されます。画像にカーソルを合わせると、未完成回路の周囲に Compile Mask ディレクティブを配置した場合の効果を確認できます。これらの違反はコンパイラにより無視され、完全に配線されている回路図上の残りの回路はチェックされます。なお、真にマスクされるオブジェクト(マスクの外接矩形内に完全に収まるもの)はグレー表示になります。

画像にカーソルを合わせると、未完成回路によるコンパイラ違反を隠すために Compile Mask ディレクティブを使用した効果が表示されます。
画像にカーソルを合わせると、未完成回路によるコンパイラ違反を隠すために Compile Mask ディレクティブを使用した効果が表示されます。

Compile Mask は、展開(フルフレーム)または折りたたみ(小さな三角形)のいずれかのモードで表示できます。これらのモードは、それぞれマスクが有効/無効である状態に対応します。配置済み Compile Mask の左上隅をクリックして表示モードを切り替えます。この機能は、設計フローの一部としてシミュレーションを含む場合に役立ちます: learn more
Compile Mask は回転や X/Y 軸方向のミラーが可能ですが、内部の設計回路の向きには影響しません。

PCB関連ディレクティブ

統合設計環境として、Altium Designerでは基板レイアウト前にPCB要件を定義できます。これは、回路図シート上に配置したオブジェクトにパラメータを追加し、指定することで実現します。

コンポーネント、シートシンボル、ポートなどの特定の回路図設計オブジェクトでは、該当するパラメータをそのオブジェクトのプロパティの一部として追加します。一方、ワイヤやバスなどのネットオブジェクトでは、ワイヤ/バスのプロパティとして直接パラメータを追加できません。代わりに、必要な情報を保持するためのパラメータは、専用の設計ディレクティブを使って指定します。

ディレクティブを使用して次の情報を指定でき、設計同期時に適切なPCB側の定義へ転送されます。

  • PCBレイアウト制約
  • 差動ペア
  • ネットクラス

回路図内に設計ディレクティブを含めることで、設計エンジニアは明示的な設計制約を指定でき、回路図が設計のマスターレコードであり続けることが保証されます。設計の修正は回路図側のみで行い、PCBへ反映(プッシュ)します。これは、複数人が設計に関わる場合、特に地理的に離れて作業している場合に重要になります。メールのやり取りや電話連絡の連鎖で相互に伝達しようとするのではなく、設計をキャプチャしている担当者が、レイアウト段階で特定の制約が確実に適用されるようにできます。 

この機能の中核となるのが、Parameter Set directive()です。

これは本質的にユーザー定義のParameter Setオブジェクトで、回路図設計内のネットオブジェクトに関連付けられます。ワイヤ、バス、またはシグナルハーネス上にPCB Layoutディレクティブを配置し、関連するネットに対して1つ以上の設計制約を定義します。回路図からPCBを作成する際、PCB layoutディレクティブ内の情報は、関連するPCB設計ルールの作成に使用されます。PCB Layoutディレクティブで指定した情報は、そのディレクティブが接続されているネット(またはネットの集合)にのみ適用されます。

Parameter Setディレクティブ。
Parameter Setディレクティブ。

これは、Parameter Setディレクティブが接続されているネットを対象とする任意数のパラメータを格納するコンテナとして機能します。パラメータを持たないデフォルトのParameter Setディレクティブを配置(Place » Directives » Parameter Set)し、必要なパラメータを後から追加することもできます。以降のセクションでは、これらのパラメータベースのディレクティブの使用方法を詳しく見ていきます。ユーザー定義(Parameter Set)と、事前定義(Differential Pair)のパラメータセットディレクティブの両方が利用可能です。空のパラメータセットと事前定義パラメータセットの違いは、事前定義パラメータセットには後述するパラメータが含まれている点だけです。

 Differential Pairディレクティブの使用方法については、Defining Differential Pairs in Your Schematics()ページを参照してください。

Moving from Directives to the Constraint Manager

設計要件を定義する従来の方法は、回路図エディタとPCBエディタで別々に扱うことでした。回路図エディタではディレクティブで定義し、PCBエディタではDesign Rules()で定義します。この分離は、設計要件を定義するための独立したエディタであるConstraint Manager()の導入により解消され、設計プロセスのどの段階でも設定・編集できるようになりました。1つのプロジェクトで使用できるアプローチはどちらか一方のみです。簡単な確認方法は、DesignメニューにConstraint Manager項目があるかを見ることです。もし無く(代わりにPCBエディタのDesignメニューにRules項目がある場合)、そのプロジェクトは旧来のDesign Rules方式を使用しています。

Constraint Managerが使用されている場合、Parameter SetおよびDifferential Pairディレクティブで定義されたネットクラス、差動ペア、差動ペアクラス、およびルールは、回路図からPCBを更新する際にnot検出され転送されます。転送されるのは、Constraint Managerで定義されたネットクラス、差動ペア、差動ペアクラス、およびルールのみです。

また、回路図に配置されたディレクティブから、ルール、ネットクラス、差動ペア、および差動ペアクラスを、回路図からアクセスしたConstraint ManagerPhysicalまたはElectricalビューの右クリックメニューにあるImport from Directivesコマンドを使ってインポートできます(learn more)。ディレクティブからConstraint Managerへデータをインポートして変更を保存すると、インポートされたディレクティブは回路図設計スペース上で青色(やや異なるシンボル)で区別表示されます。これは、ディレクティブからConstraint Managerへの一方向の移行が行われたことを示し、青色のディレクティブは読み取り専用オブジェクト(以後編集不可)になります。

Placing Parameter Set Directives

この種類のディレクティブは、メインメニューから Place » Directives » Parameter Set コマンドを選ぶか、デザインスペース内で右クリックしたときに配置できます。デフォルトの parameter set ディレクティブを配置する場合、既存のパラメータはありません。parameter set は、回路図設計内のネットタイプのオブジェクトに設計仕様を関連付けるための設計ディレクティブです。たとえば、parameter set を使用して 2 本のネットを差動ペアのメンバーとして宣言できます。ソフトウェアは、parameter set 内に特定の名前のパラメータが存在することによって、配置している設計ディレクティブを判別します。

ユーザー定義のパラメータディレクティブに加えて、ルールベースのパラメータディレクティブは Choose Design Rule Type dialog から定義します。これは、パラメータに関連付けられた Properties panel モードからアクセスできます。手順は次のとおりです:

  1. Parameter Set を配置する前に Tab を押すか、すでに配置済みの Parameter Set ディレクティブをダブルクリックして、Parameter Set mode of the Properties panel を表示します。

  2. 次に、Properties panel の Parameter Set mode の Parameters セクションにある Add ボタンをクリックし、ドロップダウンから Rule を選択して Choose Design Rule Type dialog でルールを選びます。

 
 
 
 
 

Editing the value for a rule.
Editing the value for a rule.

Choose Design Rule Type dialog を使用して、ディレクティブにルールパラメータとして追加したいルールを選択します。ルールタイプをダブルクリックすると、関連する Edit PCB Rule (From Schematic) dialog にアクセスでき、ルールの制約を定義できます。

Edit PCB Rule (From Schematic) dialog に表示される具体的なプロパティは、選択した設計ルールに依存し、PCB エディタでそのルールに定義されているプロパティと同一になります。

たとえば、下の画像は Max-Min Width Rule 用の Edit PCB Rule (From Schematic) dialog を示しており、次のことができます: 全レイヤーの Min/Preferred/Max 設定を構成する、各レイヤーの幅設定を手動で定義する、または Impedance Profile を使用するよう選択する。インピーダンスプロファイルを選択する際に、実際の基板構造がすでに PCB エディタで定義されている場合は、Load the PCB Layer Stack and calculate the track width values するためのボードファイルも選択できます。

PCB が存在し、レイヤースタックが定義されている場合、計算された幅を回路図に読み込めます。

上に示したルールはネットのクラスに適用されました。これは、ネットをクラスにグループ化し、そのクラスに Max-Min Width Rule を適用するために、PCB Routing Directive を付加した Blanket Directive を配置することで実現しています(show image)。

各 PCB Design Rules と制約の詳細については、here をクリックしてください。

Measurement Units ドロップダウンフィールドを使用して、Metric または Imperial 単位を選択します。

 
 
 
 
 

選択したルールの制約を指定します。
選択したルールの制約を指定します。

Parameters領域のエントリには、選択したルールタイプと指定した制約が表示されます。次の画像は、Parameter Setディレクティブに対して定義された幅制約ルールのパラメータを示しています。設計空間内にルールを表示するには、Rules領域内の可視性()アイコンをクリックします。

Parameter Setディレクティブにより、特定のネットに対して複数のルール制約が定義されている例。
Parameter Setディレクティブにより、特定のネットに対して複数のルール制約が定義されている例。

同期プロセスを通じて設計をPCBへ転送すると、ディレクティブに含まれる情報に基づいて、関連するデザインルールが作成されます。生成される各ルール名には、ルールの生成元を区別するために Schematic という語が使用されます。

PCB側で生成されたデザインルール。
PCB側で生成されたデザインルール。

同じParameter Setディレクティブに複数のパラメータを追加できるため、回路図をよりすっきりとまとめられることを覚えておいてください。

Net Classディレクティブの配置

Net Classディレクティブを使用すると、回路図上でユーザー定義のネットクラスを作成できます。Net Classディレクティブは、メインメニューから Place » Directives » Parameter Set コマンドを選択し、コマンドページのTip #2に記載されているとおり、パラメータセットをネットクラスディレクティブとして定義することで配置できます。回路図からPCBを作成する際、Net Classディレクティブ内の情報はPCB上の対応するNet Classを作成するために使用されます。ネットをネットクラスのメンバーにするには、該当するワイヤ、バス、またはシグナルハーネスにNet Classディレクティブをアタッチし、ディレクティブの ClassName パラメータを目的のクラス名に設定します。この機能を使用するには、Project OptionsダイアログのClass Generationタブの にある Generate Net Classes オプション(User-Defined Classes用)を有効にする必要があります。

ネットに対してNet Classディレクティブが定義されている場合、そのパラメータセットオブジェクトによって作成されるPCBデザインルールは、設計をPCBエディタへ転送した際にルールスコープがNet Classになります。Net Classディレクティブは、配置済みのParameter Setディレクティブにクラスを追加し、その値を必要なPCB Net Classに設定することで作成できます。

Net ClassはPCBエディタ内から作成することもできますが、ネットの論理的な機能やグルーピングは通常回路図の方がはるかに明確です。そのため、回路図側からプロセスを駆動する方が理にかなっています。

同期プロセスを通じて設計をPCBへ転送すると、ディレクティブに含まれる情報に基づいて、関連するネットクラスが作成されます。

Net Classディレクティブを Blanket object にアタッチすると、そのBlanketでカバーされる個々のネットをメンバーとするネットクラスを作成できます。さらにPCB LayoutディレクティブもそのBlanketにアタッチされている場合、PCB Layoutディレクティブのルールパラメータは各個別ネットではなく、そのネットクラスを対象にします。変更をPCBドキュメントへインポートすると、(パラメータごとに)単一のデザインルールが作成され、スコープはネットクラスを対象とするように設定されます。

Blanketディレクティブの配置

Parameter Setディレクティブは、アタッチされた特定のネットのみを対象にできますが、Blanketディレクティブと組み合わせることで、スコープをBlanket内のすべてのネットに拡張できます。

このタイプのディレクティブは、メインメニューから Place » Directives » Blanket コマンドを選択して配置します。Blanketを配置する際は、単純な長方形形状または多角形形状を定義できます。後者は、シート上で必要なネットオブジェクトのカバー範囲をより精密に制御できます。

Blanketは対象となるネットを識別します。これらのネットに設計要件を適用するには、Blanketのエッジ上の任意の場所に Parameter Set ディレクティブを配置します。Blanketディレクティブの下にあるネットへ周辺(perimeter)ディレクティブを適用するには、そのネットに関連付けられたオブジェクト(ピン、ポート、ネットラベル、電源ポート、ワイヤ/バス/ハーネスのセグメント(両端を含む))がBlanketの境界内に入っている必要があります。ネットラベルなどのネット識別子については、ホットスポットがBlanket内にある必要がある点に注意してください。メンバーネットが期待どおりPCB Parameter Setへ渡らない場合は、Blanketの領域を適宜調整してみてください。

Blanketディレクティブがどのネットに適用されるかを確認するには、Net Colors 機能を使用してハイライトします。View » Set Net Colors メニューから必要な色を選択し、目的のBlanketディレクティブの外周をクリックします。特定のネットのハイライトを解除するには、View » Set Net Colors » Clear Net Color コマンドを使用し、色を解除したいネットをクリックします。すべての回路図シートからネットの色付けを解除するには、View » Set Net Colors » Clear All Net Colors コマンドを使用します。

Blanketディレクティブを使用して、Blanket内のネットにParameter Setディレクティブを適用する例。
Blanketディレクティブを使用して、Blanket内のネットにParameter Setディレクティブを適用する例。

Blanketディレクティブの使用例には、次のようなものがあります。

  • Parameter SetディレクティブをBlanketオブジェクトにアタッチし、そのルールパラメータをBlanketでカバーされる各個別ネットに適用する。
  • Parameter SetディレクティブをBlanketオブジェクトにアタッチし、Blanketでカバーされる個々のネットをメンバーとするParameter Setを作成する。
  • Differential PairディレクティブをBlanketオブジェクトにアタッチし、そのBlanketの範囲内にある差動ネットに基づいて差動ペアオブジェクトを作成する。
Parameter Setディレクティブを Blanket object  にアタッチすると、そのBlanketでカバーされる各個別ネットにルールパラメータを適用できます。さらにParameter SetディレクティブもそのBlanketにアタッチされており、かつParameter SetにNet Classパラメータが含まれている場合、Parameter Setディレクティブのルールパラメータは各個別ネットではなく、そのネットクラスを対象にします。変更をPCBドキュメントへインポートすると、(パラメータごとに)単一のデザインルールが作成され、スコープはネットクラスを対象とするように設定されます。
周辺(perimeter)のParameter Setディレクティブをコピーして別のBlanketディレクティブ、あるいは個別のワイヤ、バス、ハーネスにアタッチすることもできます。その結果、同じParameter Setディレクティブに関連付けられた追加のネットがすべて、同じ生成済みPCB Net Classに追加されます。

Blanketは、Parameter Setディレクティブと組み合わせることで、Blanketで定義された領域内に完全に含まれるコンポーネントに対して、コンポーネントクラスやコンポーネントパラメータを適用する用途にも使用できます。これを行うには、BlanketにアタッチされたParameter Setディレクティブのプロパティにある Add ボタンのドロップダウンから Component Class および Parameter オプションを使用します。コンポーネントクラスとパラメータに関する情報は、PCBを更新する際のECOプロセス中にプロジェクトPCBドキュメントへ転送されます。

Indirect (Parameter-based) Directives

Parameter Set directivesは、パラメータを保持できない回路図上の設計オブジェクトをターゲットにする場合に必要ですが、パラメータを保持できるオブジェクトであれば、該当する回路図オブジェクトにパラメータとして追加(および定義)することで、設計ディレクティブを間接的に適用できます。要するに、これらはparameter-based directivesです。

パラメータベースのディレクティブの使用例としては、特定コンポーネントの高さ制限や、設計内のすべてのオブジェクトを対象とするクリアランス制約の追加などが挙げられます。制約を定義するために必要なパラメータは、ルールとしてオブジェクトに追加されます。

PCBと同期すると、回路図上のオブジェクトに追加されたパラメータベースのディレクティブはPCB設計ルールになります。対応するPCB設計ルールのスコープは、最初にそのパラメータが割り当てられたオブジェクトの性質によって決まります。次の表は、サポートされている「回路図パラメータ → PCBルールスコープ」オプションをまとめたものです。

次の対象に(ルールとして)パラメータを追加... 追加元... PCBルールスコープ...
Pin Pin mode of the Properties panelParameters tab。 Pad
Port Port mode of the Properties panelParameters tab。 Net
Component Components mode of the Properties panelParameters region。 Component
Sheet Symbol Source regionでLocalを選択したときの、Sheet Symbol mode of the Properties panelParameters tab。 Component Class
Device Sheet Symbol Source regionでDeviceを選択したときの、Sheet Symbol mode of the Properties panelParameters tab。 Component Class
Managed Sheet Symbol Source regionでManagedを選択したときの、Sheet Symbol mode of the Properties panelParameters region。 Component Class
Sheet Document Options mode of the Properties panelParameters tab。 All Objects

いずれの場合も、ルールベースのパラメータを追加する方法は同じです。該当するタブまたはdialogから、次を実行します。

  1. ルールとしてパラメータを追加します。
  2. 使用するルールタイプを選択します。
  3. 選択したルールタイプの制約を設定します。
回路図上のオブジェクトに設計ルールパラメータを追加すると、各ルールパラメータに一意のIDが付与されます。同じIDが、PCB上に作成される対応する設計ルールにも付与されます。この一意IDにより、ルールの制約は回路図側またはPCB側のどちらからでも編集でき、同期時に変更を反映できます。

コンポーネントクラスの指定

同様に、ターゲットとなるコンポーネントにClassNameパラメータを追加し、その値を希望するクラス名に設定することで、回路図上でコンポーネントクラスを定義できます。設計をPCBへ転送すると、定義したコンポーネントクラスが作成されます。

回路図で定義したComponent ClassesがPCBへ伝播するようにするには、Project Options dialogで次のオプションを設定する必要があります。

  • dialogのClass Generation tabにあるUser-Defined Classes region内のGenerate Component Classesオプションを有効にします。
  • dialogのComparator tabで、Differences Associated with Components » Extra Component Classes Mode設定をFind Differencesにします。

上記のClass Generation tabオプションは、以下の画像に表示されています。画像にカーソルを合わせると、Comparator tabオプション設定を確認できます。

Component ClassesをPCBへ伝播するには、Class Generation tabのGenerate Component Classesオプションを有効にします。画像にカーソルを合わせると、Extra Component Classes Mode設定をFind Differencesにする必要があるComparator tabが表示されます。
Component ClassesをPCBへ伝播するには、Class Generation tabのGenerate Component Classesオプションを有効にします。画像にカーソルを合わせると、Extra Component Classes Mode設定をFind Differencesにする必要があるComparator tabが表示されます。

定義後、クラスは各コンポーネントプロパティのProperties panel内Properties regionでロックできます。

PCBエディタでは、1つのコンポーネントが複数のComponent Classesに属することができます。これを回路図で定義するには、回路図コンポーネントのパラメータ値で、各PCB Component Class名をカンマで区切ります(show image)。

ディレクティブの印刷制御

デフォルトでは、すべての設計ディレクティブが回路図シートの印刷に含まれます。ただし、次の方法で変更できます。

必要に応じてディレクティブの印刷を制御してください。No ERCディレクティブについては、特定のシンボルスタイルは印刷し、他は除外するといった選択が可能です。
必要に応じてディレクティブの印刷を制御してください。No ERCディレクティブについては、特定のシンボルスタイルは印刷し、他は除外するといった選択が可能です。

AI-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
機能の可用性

利用できる機能は、所有する Altium ソリューション (Altium DevelopAltium Agile のエディション (Agile Teams、または Agile Enterprise)、または Altium Designer (有効な期間)) によって異なります。

説明されている機能がお使いのソフトウェアに表示されない場合、Altium の営業担当者にお問い合わせください

従来のドキュメント

Altium Designer のドキュメントは、バージョンごとに掲載されなくなりました。Altium Designer の旧バージョンのドキュメントは、Other Installers ページの Legacy Documentation の項目をご覧ください。

Content