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

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.

概略

この記事では、Altium Designerの回路図で設計ディレクティブがどのように機能するかを、検証時に使用するディレクティブと、回路図からPCBへ情報を渡すディレクティブを中心に解説します。特に、設計がまだ進行中の段階で、未完成の回路に起因する不要な検証メッセージを減らすうえで、ディレクティブが役立つ理由を説明します。特定の違反にNo ERCを使用する場合と、より広い未完成領域を検証対象から除外するためにコンパイルマスクを使用する場合の違いに加え、それぞれの動作や設計フローにおける位置付けも紹介します。回路図の重要な部分に検証を集中させる方法をより深く理解したい方におすすめのガイドです。

- 設計ディレクティブの概要と、回路図入力および検証での使い方を学びます。
- 不要な検証メッセージを抑制するために、No ERCとコンパイルマスクをどのように使い分けるかを理解します。
- 回路図エディターでコンパイルマスクを配置、有効化・無効化、編集する方法を確認します。
AIでさらに深掘り:

デザインディレクティブは、設計入力時に回路図に配置するオブジェクトで、ソフトウェアの他の機能に渡す指示を指定するために使用します。さまざまなデザインディレクティブが用意されており、次の2つの用途で使用できます。

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

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

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

設計は時間とともに発展し、段階的に入力されます。各段階の設計が固まるにつれて、その部分を設計の他の部分から切り離してチェックしたくなることは珍しくありません。設計入力の途中で個々の回路図ドキュメント(またはプロジェクト全体)をコンパイルすると、まだ入力されていない回路や、回路ブロック間の未完成のインターフェース配線によって、多数のエラーメッセージが発生することがあります。このようなメッセージは、本当に必要な情報を埋もれさせるだけで、実質的な価値はありません。これらのコンパイルエラーを最も手早く簡単に抑制する方法は、No ERCまたはコンパイルマスクディレクティブを配置することです。

No ERCディレクティブ

No ERCディレクティブは回路内のノードに配置し、回路図プロジェクトの検証時に検出される電気的ルールチェックの警告やエラー違反の報告をすべて抑制します。詳細については、 設計プロジェクトの検証 ページを参照してください。

コンパイルマスクディレクティブ

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

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

次の画像の回路図例では、LCD1デバイスへの配線がまだ完了していません。この回路図だけをコンパイル(Project » Validate PCB Project)すると、未完成の回路に起因する多数の違反メッセージ(下図)が表示されます。画像にマウスポインターを重ねると、未完成の回路を囲むようにコンパイルマスクディレクティブを配置した場合の効果を確認できます。これらの違反はコンパイラによって無視され、回路図上の残りの回路、つまり配線が完了している部分はチェックされます。実際にマスクされるオブジェクト、すなわちマスクの境界を示す長方形に完全に収まるオブジェクトは、グレー表示になることに注意してください。

画像にマウスポインターを重ねると、コンパイルマスクディレクティブを使用して、未完成の回路に起因するコンパイラ違反を非表示にする効果を確認できます。
画像にマウスポインターを重ねると、コンパイルマスクディレクティブを使用して、未完成の回路に起因するコンパイラ違反を非表示にする効果を確認できます。

コンパイルマスクは、展開(枠全体)モードまたは折りたたみ(小さな三角形)モードで表示できます。これらのモードは、それぞれマスクの有効状態と無効状態に対応します。配置済みのコンパイルマスクの左上隅をクリックすると、表示モードを切り替えられます。この機能は、設計フローにシミュレーションが含まれる場合に役立ちます。詳細はこちら。
コンパイルマスクは回転したり、X軸またはY軸に沿って反転したりできますが、マスク内の設計回路の向きには影響しません。

PCB関連のディレクティブ

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

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

ディレクティブを使用すると、以下の情報を指定できます。これらの情報は、設計の同期時に、対応するPCB側の定義に転送されます。

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

回路図に設計ディレクティブを含めることで、設計エンジニアは設計制約を明示的に指定でき、回路図を設計のマスターとして維持できます。設計の変更は回路図側でのみ行い、PCBに反映します。これは、複数の担当者が設計に携わる場合、特に地理的に離れた場所で作業する場合に重要です。 メールのやり取りや電話で伝えようとするのではなく、回路図を作成する担当者が、特定の制約をレイアウト工程で確実に適用できるようにします。

この機能の中心となるのが、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ディレクティブの使用方法の詳細については、 回路図での差動ペアの定義 ページを参照してください。

Moving from Directives to the Constraint Manager

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

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

回路図からConstraint Managerを開いた場合、PhysicalビューまたはElectricalビューの右クリックメニューにあるImport from Directivesコマンドを使用して、回路図に配置されたディレクティブから ルール、 ネットクラス、差動ペア、 差動ペアクラスをインポートできます。 詳細はこちら。ディレクティブからConstraint Managerにデータをインポートし、変更を保存すると、インポートされたディレクティブは回路図の設計スペースで青色で表示され、シンボルも少し異なるものになります。これは、ディレクティブからConstraint Managerへの一方向の移行が行われたことを示しており、青色のディレクティブは読み取り専用オブジェクトになります(以降の編集はできません)。

パラメーターセットディレクティブの配置

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

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

  1. パラメーターセットを配置する前にTabを押すか、配置済みのパラメーターセットディレクティブをダブルクリックして、Propertiesパネルにプロパティを表示します。

  2. 次に、PropertiesパネルのParameters領域にあるボタンをクリックし、ドロップダウンからRuleを選択して、Select Design Rule Typeダイアログでルールを選択します。

ルールの値の編集。
ルールの値の編集。

Select Design Rule Typeダイアログを使用して、ディレクティブにルールパラメーターとして追加するルールの種類を選択します。ルールの種類をダブルクリックすると、対応するEdit PCB Rule (From Schematic)ダイアログが開き、ルールの制約を定義できます。

Edit PCB Rule (From Schematic)ダイアログに表示される具体的なプロパティは、選択した設計ルールによって異なり、PCBエディターでそのルールに定義されているプロパティと同じです。

たとえば、下の画像はMax-Min Width RuleのEdit PCB Rule (From Schematic)ダイアログを示しています。ここでは、すべてのレイヤーの最小値/推奨値/最大値を設定したり、各レイヤーの幅設定を手動で定義したり、インピーダンスプロファイルの使用を選択したりできます。インピーダンスプロファイルを選択する際に、PCBエディターで実際の基板の物理構造がすでに定義されている場合は、Load the PCB Layer Stack and calculate the track width valuesする基板ファイルを選択することもできます。

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

上に示したルールは、ネットクラスに適用されています。これは、PCB配線ディレクティブを接続したブランケットディレクティブを配置してネットをクラスにまとめ、そのクラスに最大・最小幅ルールを適用することで実現しています()。

各PCB設計ルールと制約の詳細については、こちらをクリックしてください。

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

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

Parameters領域の項目には、選択したルールの種類と指定した制約が表示されます。次の画像は、Parameter Setディレクティブに定義された幅制約のルールパラメーターを示しています。設計スペース内にルールを表示するには、Rules領域の表示/非表示()アイコンをクリックします。

パラメーターセットディレクティブによって、特定のネットに複数のルール制約を定義した例。
パラメーターセットディレクティブによって、特定のネットに複数のルール制約を定義した例。

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

PCB側で生成された設計ルール。
PCB側で生成された設計ルール。

同じパラメーターセットディレクティブに複数のパラメーターを追加できるため、回路図をすっきりと整理できます。

ネットクラスディレクティブの配置

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

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

ネットクラスはPCBエディター内でも作成できますが、ネットの論理的な機能やグループ分けは通常、回路図のほうがはるかに明確です。そのため、回路図側からこのプロセスを進めるほうが合理的です。

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

ネットクラスディレクティブをブランケットオブジェクトに接続すると、そのブランケットで覆われた個々のネットをメンバーとするネットクラスを作成できます。同じブランケットにPCBレイアウトディレクティブも接続されている場合、そのルールパラメーターは個々のネットではなく、そのネットクラスを対象とします。その結果、変更をPCBドキュメントにインポートすると、パラメーターごとに1つの設計ルールが作成され、そのスコープはネットクラスを対象とするように設定されます。

ブランケットディレクティブの配置

Parameter Setディレクティブは、接続されている特定のネットのみを対象にできますが、Blanketディレクティブと組み合わせると、適用範囲をBlanket内のすべてのネットに拡張できます。

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

Blanketは対象のネットを指定します。Blanketの境界上の任意の位置にParameter Setディレクティブを配置すると、それらのネットに設計要件を適用できます。境界上のディレクティブをBlanketディレクティブ内のネットに適用するには、そのネットに関連付けられたオブジェクト(ピン、ポート、ネットラベル、電源ポート、ワイヤ/バス/ハーネスのセグメント(両端を含む))がBlanketの範囲内にある必要があります。ネットラベルなどのネット識別子については、ホットスポットがBlanket内にある必要がある点に注意してください。メンバーネットが想定どおりにPCBのParameter Setに取り込まれない場合は、Blanketの範囲を調整してみてください。

Blanketディレクティブがどのネットに適用されるかを確認するには、ネットの色機能を使用してネットをハイライトします。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ディレクティブの使用例には、次のようなものがあります。

  • BlanketオブジェクトにParameter Setディレクティブを接続し、そのBlanketに含まれる各ネットにルールパラメーターを適用する。
  • BlanketオブジェクトにParameter Setディレクティブを接続し、そのBlanketに含まれる個々のネットをメンバーとするParameter Setを作成する。
  • BlanketオブジェクトにDifferential Pairディレクティブを接続し、そのBlanketの範囲内にある差動ネットに基づいて差動ペアオブジェクトを作成する。
Blanketオブジェクト にParameter Setディレクティブを接続すると、そのBlanketに含まれる各ネットにルールパラメーターが適用されます。そのBlanketにParameter Setディレクティブも接続されており、そのParameter SetにNet Classパラメーターも含まれている場合、 Parameter Setディレクティブのルールパラメーターは、個々のネットではなく、そのネットクラスを対象とします。変更をPCBドキュメントにインポートすると、ネットクラスを対象とする適用範囲が設定された設計ルールが、パラメーターごとに1つ作成されます。 
境界上のParameter Setディレクティブをコピーして、別のBlanketディレクティブや、個々のワイヤ、バス、ハーネスに接続することもできます。この場合、同じParameter Setディレクティブに関連付けられた追加のネットがすべて、生成される同じPCBネットクラスに追加されます。

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

間接的な(パラメーターベースの)ディレクティブ

パラメーターを持てない回路図上の設計オブジェクトを対象にする場合は、パラメーターセットディレクティブが必要です。一方、パラメーターを持てるオブジェクトには、関連する回路図オブジェクトにパラメーターとして追加して定義することで、設計ディレクティブを間接的に適用できます。本質的には、これらはparameter-based directivesです。

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

PCBと同期すると、回路図のオブジェクトに追加されたパラメーターベースのディレクティブは、PCB設計ルールになります。対応するPCB設計ルールの適用範囲は、パラメーターが最初に割り当てられたオブジェクトの種類によって決まります。次の表は、サポートされている回路図パラメーターとPCBルールの適用範囲の対応をまとめたものです。

パラメーター(ルールとして)の追加先 追加する場所 PCBルールの適用範囲
ピン PropertiesパネルのPinモードのParametersタブ。 パッド
ポート PropertiesパネルのPortモードのParametersタブ。 ネット
コンポーネント PropertiesパネルのComponentsモードのParameters領域。 コンポーネント
シートシンボル PropertiesパネルのSheet Symbolモードで、Source領域のLocalが選択されている場合のParametersタブ。 コンポーネントクラス
デバイスシートシンボル PropertiesパネルのSheet Symbolモードで、Source領域のDeviceが選択されている場合のParametersタブ。 コンポーネントクラス
管理対象シートシンボル PropertiesパネルのSheet Symbolモードで、Source領域のManagedが選択されている場合のParameters領域。 コンポーネントクラス
シート PropertiesパネルのDocument OptionsモードのParametersタブ。 すべてのオブジェクト

いずれの場合も、ルールベースのパラメーターを追加する方法は同じです。それぞれのタブまたはダイアログで、次の操作を行います。

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

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

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

回路図で定義したコンポーネントクラスをPCBに反映させるには、Project Optionsダイアログで次のオプションを設定する必要があります。

  • ダイアログのClass GenerationタブのUser-Defined Classes領域にあるGenerate Component Classesオプションを有効にします。
  • ダイアログのComparatorタブで、Differences Associated with Components » Extra Component Classes Mode設定を Find Differencesに設定します。

上記の Class Generationタブのオプションを下の画像に示します。画像にマウスポインターを合わせると、Comparator タブのオプション設定を確認できます。

コンポーネントクラスをPCBに反映させるには、 Class GenerationタブのGenerate Component Classesオプションを有効にします。画像にマウスポインターを合わせると、Comparatorタブが表示されます。このタブで、Extra Component Classes Mode設定をFind Differencesに設定する必要があります。
コンポーネントクラスをPCBに反映させるには、 Class GenerationタブのGenerate Component Classesオプションを有効にします。画像にマウスポインターを合わせると、Comparatorタブが表示されます。このタブで、Extra Component Classes Mode設定をFind Differencesに設定する必要があります。

定義したクラスは、各コンポーネントのプロパティを表示するPropertiesパネルのProperties領域でロックできます。

PCBエディターでは、1つのコンポーネントを複数のコンポーネントクラスに所属させることができます。これを回路図で定義するには、回路図コンポーネントのパラメーター値で、各PCBコンポーネントクラス名をカンマで区切ります(画像を表示)。

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

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

必要に応じて、ディレクティブの印刷を制御できます。No ERCディレクティブでは、特定のシンボルスタイルを印刷し、他のスタイルを印刷対象から除外できます。
必要に応じて、ディレクティブの印刷を制御できます。No ERCディレクティブでは、特定のシンボルスタイルを印刷し、他のスタイルを印刷対象から除外できます。

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

ご利用可能な機能は、お使いのAltiumソリューション(Altium Develop、Altium Agile Teams、Altium Agile Enterprise、または有効な契約期間中のAltium Designer)によって異なります。

実際にお使いのソフトウェアに文書化されている機能が表示されない場合は、詳細についてAltium Sales までお問い合わせください。

従来のドキュメント

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

Contents