PCB設計ルールの定義、範囲設定、および管理
親ページ: Altium DesignerでのPCBレイアウト
PCBエディタは、デザインの要件を定義するためにデザインルールの概念を使用します。これらのルールは、PCBエディタが従うべき「命令セット」を形成します。配線幅、クリアランス、プレーン接続スタイル、配線ビアスタイルなど、デザインのあらゆる側面をカバーし、多くのルールはオンラインのデザインルールチェッカー(DRC)によってリアルタイムで監視することができます。
デザインルールは特定のオブジェクトを対象とし、階層的な方法で適用されます。例えば、ボード全体に適用されるクリアランスルールがあり、次にネットのクラスに適用されるクリアランスルールがあり、さらにそのクラスのパッドの1つに適用される別のルールがあるかもしれません。ルールの優先順位とスコープを使用して、PCBエディタはデザイン内の各オブジェクトにどのルールが適用されるかを判断できます。
よく定義された一連の設計ルールを持つことで、さまざまで厳格な設計要件を持つボード設計を成功させることができます。さらに、PCBエディターがルール駆動型であるため、設計の初めにルールを設定する時間を取ることで、ルールシステムが成功を保証するために駆動していることを認識して、設計の仕事に効果的に取り組むことができます。
PCBルールシステムの基本
ソフトウェアのPCBエディターに組み込まれたルールシステムには、他のPCB編集環境で使用されるほとんどの設計ルールシステムとは異なるいくつかの基本的な特徴があります:
- ルールはオブジェクトとは別物です – ルールはオブジェクトの属性として追加されるのではなく、全体のルールセットに追加され、そのオブジェクトに適用されるようにスコープが設定されます。これにより、ルールを複数のオブジェクトに適用したり、異なるオブジェクトに変更または適用したりすることができ、個々のオブジェクトレベルでルール属性を変更する必要がある場合の手間を省くことができます。
- ルールはクエリを記述することでターゲット(スコープ)されます – 固定された事前定義されたルールスコープのセットを使用する代わりに、柔軟なクエリシステムが使用され、ルールが適用されるオブジェクトを定義します。これにより、各設計ルールのターゲットを正確に制御できます。
- あらゆる設計状況のためのルール – 同じタイプの複数のルールを定義し、異なるオブジェクトセットにターゲットすることができ、ボードの制約の定義を完全に制御できます。例えば、異なるレイヤーで異なる幅のネットを配線するために、異なる幅のルールを定義することができます。
- 各ルールには優先順位があります – 任意の設計オブジェクトは、一般的な状況とより具体的な状況の両方に対応する、同じタイプの複数のルールの対象となることがあります。ルールの競合を解決するために、ルールの優先順位が使用されます。システムは単純に最高優先順位のルールから最低優先順位のルールまで順に確認し、チェックされているオブジェクトに対してスコープ式が一致する最初のルールを選択します。
- ルールには2種類あります – 単項ルール(オブジェクトの必要な振る舞いを定義するルール)と二項ルール(二つのオブジェクト間の相互作用を定義するルール)。
Altium Designer での設計ルールは、PCB Rules and Constraints EditorダイアログまたはConstraints Editor([Constraints]
ドキュメントタブ)内から定義および管理されます。
PCB ルールおよび制約エディタダイアログを通じて設計ルールを定義および管理する
このダイアログには2つのセクションがあります:
- 左側のツリーには、異なるルールカテゴリがリストされています。カテゴリを展開して、利用可能な個々のルールタイプを表示します。ルールタイプを展開すると、現在定義されているそのタイプのすべてのルールが表示されます。
- ダイアログの右側は、ツリーで現在選択されているものに関連する情報を表示します - 選択されたルールタイプまたはカテゴリの定義済みルールの概要、システム全体のすべての定義済みルール、または、実際のルールが選択されている場合は、そのルールの制約です。
デザインルールを管理する中心的なPCB Rules and Constraints Editorダイアログ。
新しいルールの作成
PCB Rules and Constraints Editorダイアログ内で新しいデザインルールを追加するには、左側のツリー内で必要なルールタイプにナビゲートして選択し、ルール要約リストの下にあるNew Ruleボタンをクリックするか、必要なルールタイプ上で右クリックしてコンテキストメニューからNew Ruleを選択します。
新しいルールはフォルダツリーに追加され、そのルールタイプの要約リストにも表示されます。
ルールのスコープと制約属性にアクセスするには、フォルダーツリーペインでルールのエントリをクリックするか、またはサマリーリストのエントリをダブルクリックします。ダイアログのメイン編集ウィンドウが変更され、そのルールのスコープと制約属性を定義するためのコントロールにアクセスできるようになります。
ルールの詳細なコントロール、スコープと制約を含む、にアクセスする。
新しいルールを完全に定義するには:
- 識別しやすいようにルールに意味のある名前を付けてください。
- ドロップダウンからスコーピングオプションを選択するか、クエリを入力して(バイナリルールの場合はクエリを複数入力して)ルールの範囲を定義してください。
- ルールの制約を設定してください。
- ルールの優先度を設定してください。
ルールウィザードを使用して新しいルールを作成する
新しいルールは、Design Rule Wizardを使用しても作成できます。アクセスは、Design » Rule Wizardコマンドを直接使用するか、PCB Rules and Constraints Editorダイアログの下部にあるRule Wizardボタンをクリックすることで行えます。
ウィザードのページを使用して、新しい設計ルールを作成します。手順は以下の通りです。
- 必要なルールタイプを選択し、意味のある名前を付けます(必要に応じてコメントも追加します)。
- ルールの範囲を定義します。ウィザードに組み込まれているQuery Builderのインカーネーションを通じて、さらに範囲を拡張する機会があります。
- ルールの優先度を設定します。
ルール作成を簡素化するためにDesign Rule Wizardを使用します。
既存のルールの複製
既存のルールの同一コピーを迅速に作成するには、複製機能を使用します。この機能には2つの方法でアクセスできます:
- 左側のツリーを使用して、必要な既存のルールに移動し、右クリックしてコンテキストメニューからDuplicate Ruleを選択します。
- 左側のツリーで特定のルールタイプに移動し、右側の要約リストで複製するルールを選択してから、リストの下にあるDuplicate Ruleボタンをクリックします。
ルール複製機能を使用して、類似のルールの作成を効率化します。
重複ルールは、元のルールと同じ名前で命名され、接尾辞(例:_1
)が追加されて区別されます。その定義(範囲、制約など)は元のルールと同一です。優先度に関しては、元のルールの次の優先度が与えられます。例えば、元のルールの優先度が1であれば、重複するルールには優先度2が与えられます。
PCB Filterパネルからのルール作成
設計ルールは特定の設計オブジェクト群に適用される範囲で定義されるため、まずそれらのオブジェクトを特定してから、それらを対象とする設計ルールを作成する方が簡単(速い)です。PCB Filterパネルは、パネル内で現在定義されているクエリ式を使用してその範囲を使用する設計ルールを作成する機能を提供します。したがって、クエリ式が何を対象とするかを確認するよりも、PCB Filterパネルを使用してクエリ式をテストし、調整して、必要なオブジェクトのみがフィルタリングされるまで行います。そのクエリ式を使用してルールを作成することで、正しいオブジェクトセットを対象としていることが保証されます。
新しい設計ルールを追加するには:
- Create Ruleボタンをクリックします。Choose Design Rule Typeダイアログが表示されます。このダイアログには、PCBドキュメントで利用可能なルールカテゴリとルールタイプが一覧表示されます。
- 作成するルールのタイプを選択し、OKをクリックします(または、エントリーをダブルクリックします)。
- PCB Rules and Constraints Editorダイアログが表示されます。選択したタイプのルールが作成され、ルールのメイン編集ウィンドウが表示され、ルールに対する特定の制約を定義する準備が整います。ルールのスコーピングオプションはCustom Queryに設定され、PCB Filterパネルからのクエリ式がそれに応じてクエリ領域に入力されます。
- 必要に応じてルールの名前と制約を変更します。また、必要に応じてその優先度を変更します(デフォルトでは最高優先度が与えられます)。
新しい設計ルールをPCB Filterパネルから直接作成する - フィルタークエリ式がルールの範囲として使用されます。
過去のクエリ式の再利用
時間が経つにつれて、様々なボードのレイアウトを行う過程で多くの有用なクエリ式が構築されます。通常、同じデザイン内だけでなく、異なるデザインにおいても、同じクエリを適用し再適用したいと考えるでしょう。これを可能にするために、PCB Filterパネルは履歴およびお気に入りのクエリの概念をサポートしています。
パネルからクエリが入力され適用されると、そのクエリはクエリの「履歴リスト」に追加されます。さらに、 Add To Favorites 加ボタンをクリックすることで、そのクエリをクエリの「お気に入りリスト」に追加することができます。パネル内のHistoryおよびFavoritesボタンを使用して、同名のタブにアクセスし、Expression Managerダイアログ内でこれらのリストを確認してください。
適用されたクエリ式の履歴にアクセスし、お気に入りの式のリストを作成して、何度も再利用します。
リストの中から式を使用するには、そのエントリをダブルクリックするか、エントリを選択してApply Expressionボタンをクリックします。Expression Managerダイアログが閉じ、式がPCB FilterパネルのFilter領域に読み込まれます。
この機能により、必要なスコープを持つルールの作成が合理化(および迅速化)されます。過去のお気に入りのクエリ式を取得し、それがまだ必要なオブジェクトセットを対象としているかを確認(フィルターを適用)し、前のセクションで詳述されたように、その式をスコーピングに利用するルールを作成します。
デザインルールのスコーピング
Altium DesignerのPCBエディタは、ルール駆動型の環境です。設計要件は、ボードの制約を定義する一連の設計ルールを通じて強制されます。設計ルールは、設計内の特定のオブジェクトを対象とします。PCBルールシステムが、特定のルールがどのオブジェクトに適用されるかを知るためには、そのルールの範囲、つまり適用範囲を知る必要があります。スコーピング、またはルールの対象を設定することは、PCB Rules and Constraints Editorダイアログで行われます。
デフォルトの設計ルール、または追加された新しいルールは、デフォルトのルール範囲All
を持ち、これはボード上のすべてのオブジェクトに適用されることを意味します。ドロップダウンを使用すると、簡単なルール範囲をすぐに設定できます。
設計ルールの適用範囲を設定して、設計オブジェクトに対するその適用を定義します。
事前に定義された可能なターゲットオプションのリストに制限されることなく、各設計ルールはいわゆるクエリを記述することによって、より厳密にスコープを定めることができます。
クエリを入力するには、最初のWhere the Object MatchesのドロップダウンをCustom Query
に設定します。これにより、現在のドロップダウン設定に基づいて、このルールに対してルールエンジンが使用しているクエリが表示されます。
クエリとは、対象となる設計オブジェクトのセットを定義するソフトウェアへの指示です。クエリはクエリキーワードを使用して記述されます。特定のオブジェクトセットを見つけるためにフィルターパネルにクエリを書くのと同じように、各ルールが対象とするオブジェクトを定義するためにもクエリを書くことができます。例えば:
InNet('VBAT') And OnLayer('Bottom Layer')
このクエリが幅のルールの範囲として使用された場合、VBATネットを配線してボトムレイヤーに切り替えると、トラックの幅がそのルールの制約として指定された幅に自動的に変更されます。また、設計ルールチェックを実行すると、ボトムレイヤー上のVBATネットの配線は指定された幅でなければならず、そうでない場合は違反としてフラグが立てられます。
ルールの範囲指定はクエリシステムに基づいています。Custom Query
オプションを使用して現在のクエリを表示し、必要に応じてクエリキーワードを使用して変更します。
スコーピングオプション
シンプルなスコーピングオプションが提供されており、スコープクエリを迅速に生成できます。最初のドロップダウンフィールドから1つのオプションを選択し、必要に応じて、次のドロップダウンリストを使用して適切なターゲット(ネット、レイヤー、フットプリント、パッケージなど)を選択します。提示されるスコーピングオプションは、ルールタイプに応じて焦点が当てられています。
シンプルなスコーピングオプションを使用してクエリを迅速に作成します。
シンプルなスコーピングオプションを使用してルールをスコープすると、クエリが作成されます。最初のドロップダウンフィールドでCustom Query
を選択すると、クエリが表示されます。
Custom Query
オプションを使用すると、より複雑で特定のクエリを自分で書くことができます。ルールスコープに対して自分の特定のクエリを直接右側のクエリ領域に入力できます。また、論理的なクエリ式の作成を助けるために、2つの機能が利用可能です。それらはQuery BuilderとQuery Helperです。クエリの構文や利用可能なキーワードが不明な場合に便利です。
Custom Query
オプションを使用して、より複雑なクエリ式を作成します。
Query Builderでルールをスコープする
ボタンをクリックして、Building Query from Boardダイアログを開きます。これにより、条件文のシンプルな構成によって、設計ドキュメント内の特定のオブジェクトをターゲットにするクエリを作成できます。
ダイアログの左側のセクションは、必要なオブジェクトのセットをターゲットにするために必要な条件を指定するために使用されます。各条件は条件タイプと条件値で構成されます。これらのドロップダウンフィールドは、現在のルールタイプのスコープを構築するのに関連するエントリーで、選択された条件タイプの値でそれぞれに入力されます。
条件が定義されると、現在構築されているクエリのプレビューがダイアログの右側のセクションに表示されます。条件はANDおよび/またはORで結合され、さらに(括弧/インデントの使用を通じて)優先順位を組み込むことで、ターゲットのオブジェクトセットを洗練させることができます。クエリの式が必要に応じて定義されたら、OKをクリックすると、式がPCB Rules and Constraints Editorダイアログのクエリ領域にロードされます。
一連の条件文を通じて論理的なクエリ式を構築するためにQuery Builderを使用します。
Query Helperを使ってルールをスコープする
Custom Queryオプションを有効にした後、 ボタンをクリックして、Query Helperダイアログにアクセスします。基盤となるクエリエンジンはPCB設計を分析し、利用可能なすべてのオブジェクトとクエリで使用するための一般的なキーワードをリストアップします。
Query Helperを使用することは非常に直感的です、特に以下の画像に示されているように、3つの明確なエリアに分けて考えるとさらにそうです:
複雑なクエリがQuery Helperを使用して定義された例。
これらのエリアは以下の通りです:
- Query領域 – このダイアログの領域を使用して、クエリ式を作成します。ダイアログにアクセスしたときに、デフォルトでこの領域にはルールスコープに現在適用されている式が表示されます。この領域内で直接入力することができ、文脈に応じた「プロンプトリスト」がキーワードやオブジェクトの可能性として表示されるので、これが補助となります。
- 演算子 – このダイアログの領域では、式を構築する際に使用する数学的および論理的な演算子の範囲を提供します。クエリ領域の上にあるクエリ式内の現在のカーソル位置にその演算子を追加するには、ボタンをクリックします。
- Categories, Keywords and Objects – このダイアログの領域では、使用可能なPCB機能、PCBオブジェクトリスト、およびシステム機能にアクセスでき、これらを使用してクエリ式を作成できます。これら3つのエリア内のサブカテゴリをクリックすると、右側の領域に対応するキーワードまたはオブジェクトのリストが表示されます。クエリ文字列で使用するキーワードまたはオブジェクトを見つけて、そのエントリをダブルクリックします。エントリは、Query領域の上にあるクエリ式内の現在のカーソル位置に挿入されます。
ボタン(ダイアログの左下)を使用して、式が文法的に正しいかどうかを確認します。クエリの式が必要に応じて定義された後、OKをクリックすると、式がPCB Rules and Constraints Editorダイアログのクエリ領域に読み込まれます。
クエリ式の演算子の優先順位
このエリアを離れる前に、論理クエリ式で使用される演算子の優先順位について見ておく価値があります。この知識がなければ、式は必要なオブジェクトを対象としないかもしれません。
括弧は、さまざまな演算子に定義された優先順位の中で最も高い優先順位を持ち、ソフトウェアによってクエリがどのように解釈されるかを決定します(ユーザーが括弧を提供していない場合)。この優先順位の順序は、最高から最低まで以下の通りです:
- 括弧
- Not
- ^, *, /, Div, Mod, And
- +, -, Or, Xor
- =, <>, <, >, <=, >=
- &&, ||
PCB Rules and Constraints Editorダイアログでのルール優先順位付け
ルールを定義し、管理するプロセスを簡素化するために、広範な要件をカバーする一般的なルールを定義し、その後、特定の状況でこれらを特定のルールで上書きするという考えがあります。これを可能にするためには、同じタイプの複数のルールが対象オブジェクトに適用される場合にどのルールを使用するかを示すために、ルールを優先順位付けすることができる必要があります。
たとえば、ボード上で最も一般的に使用される配線幅を指定するには、ボード上のすべてのネットに適用される単一のルールを定義します。このルールは、特定のネット(またはそのためのネットのクラス)に対して別の同じタイプのルールを追加することで、上書きすることができますが、優先度が高くなります。 別の例としては、はんだマスクの要件があります。ここでは、ボード上のすべてのパッドとビアを対象とする1つのマスクルールを定義し、それを特定のフットプリント種類のパッドに対して上書きすることができます。このフットプリント固有のルールは、必要に応じてそのフットプリント内の特定のパッドに対してさらに上書きすることができます。 ルールを管理する上で重要な側面は、すべての優先度が適切に設定されていることを確認することです。新しいルールが作成されると、デフォルトでは最高優先度になります。Prioritiesボタンを使用して、PCB Rules and Constraints Editorダイアログの下部にあるEdit Rule Prioritiesダイアログで優先度を設定します。
Edit Rule Prioritiesダイアログでルールの優先度を変更します。
初めに、ダイアログはPCB Rules and Constraints Editorダイアログで現在選択されているルールタイプのすべてのルールインスタンスをリストアップします。Rule Typeフィールドを使用してルールタイプを変更し、そのタイプに定義されている特定のルールをリストアップします。定義されたルールは、現在の優先度順にリストされています - 1(最高優先度)から順に下へ。ルールエントリを選択し、それぞれIncrease PriorityボタンとDecrease Prioritボタンを使用して、優先順位の順序で上または下に移動します。
既存のルールの変更
もちろん、ルールはいつでも変更できます。実際、最終的な作業ルールセットに到達するには、ここかしこでいくつかの重要な改良がしばしば関与します。これには通常、目的の設計オブジェクトが必要に応じてそれぞれのルールによって「ピックアップ」されていることを確認するためのスコーピングが含まれます。PCB Rules and Constraints Editorダイアログで既存のルールを選択し、そのスコーピングと制約属性を必要に応じて変更します。
既存のルール定義に加えられた変更は、フォルダツリーペインと該当する要約リストの両方で強調表示されます。そのようなエントリーは、ルール名が太字になり、名前の右側にアスタリスクが表示されることで区別されます。アスタリスクは、新しく作成されたルール(太字で表示されるがアスタリスクはない)ではなく、既存のルールが変更されたことを反映するために使用されます。
変更された既存のルールの例。変更を示すためにアスタリスクが使用され、ルール名が太字になっています。
特定のルールタイプに新しいルールが作成されると、自動的に優先度1が与えられます。そのタイプの他のルールが存在する場合、それらの優先度はそれに応じて1つ下げられます。それらは、スコープ/制約レベルで具体的に変更されていなくても、変更されたとみなされます。そのため、そのタイプの既存のすべてのルールは、変更された状態(太字でアスタリスク付き)で表示されます。
無効なルールのフラグ付け
システムによってルールが無効と検出された場合 - 例えば、そのスコーピングクエリ式に問題があるか、許可されていない制約の値がある場合 - そのルールは無効とマークされます。そのようなルールは、PCB Rules and Constraints Editorダイアログ内の左側のルールツリー、およびルールが表示される任意のサマリービュー(ルールカテゴリまたはルールタイプ)で赤く強調表示されます。さらに、ルールタイプとルールカテゴリのテキストも左側のルールツリー内で赤く表示されます。したがって、無効なルールを含むルールツリーのエリアを折りたたんでいる場合でも、階層の上位レベルでそれについて警告されます。ダイアログを閉じようとすると、警告メッセージも表示されます。
無効な設計ルールをシステムがフラグする例、この場合は誤ったスコープクエリ式です。
ルールの無効化
ソフトウェアのPCBエディターのルール駆動環境では、ボードを成功裏に制約するためのかなり印象的で包括的なルールの配列を構築することは珍しくありません。途中で何らかの理由で、一部のルールを無効にしたい場合があります。たとえば、それらが問題のボードに適用されないか、Design Rule Checkerの負荷を軽減し(結果としてそのパフォーマンスを向上させるために)、一時的に無効にする必要があるかもしれません。無効にすることは、将来また必要になった場合にそうしたルールを保持する良い方法です。
ルールを無効にするには、PCB Rules and Constraints Editorダイアログの右側にある関連する要約リストのいずれかで、そのルールのEnableオプションを切り替えます。無効にされたルールは、'グレーアウト'表示されます。
無効にされたルールの例、要約リスト内で灰色のフォントで表示されます。
ルールの削除
PCB Rules and Constraints Editorダイアログ内で単一の設計ルールを削除するには:
- 左側のツリーを使用して、必要な既存のルールに移動し、右クリックしてコンテキストメニューからDelete Ruleを選択します。
- 左側のツリーで特定のルールタイプに移動し、右側の要約リストで削除するルールを選択します。その後、リストの下にあるDelete Rule(s)ボタンをクリックします。
ルール名は、適用されていない削除であることを区別するために、太字の取り消し線で強調表示されます。
多くのルールタイプでは、新しいPCBドキュメントが作成されたときにデフォルトルールが自動的に作成されます。同様に、特定のルールタイプのすべての特定ルールが削除された場合、PCB Rules and Constraints Editorダイアログに次回アクセスしたときにデフォルトルールが自動的に再追加されます。また、ダイアログの下部にあるCreate Default Rulesボタンをクリックすることで、デフォルトルールを再度作成することもできます。
ルールのエクスポートとインポート
設計ルールは、PCB Rules and Constraints Editorダイアログからエクスポートおよびインポートすることができます。これにより、異なるデザイン間でお気に入りのルール定義を保存および読み込むことができます。
-
エクスポートするには - ダイアログの左側にあるツリー内の任意の場所で右クリックし、Export Rulesを選択します。Choose Design Rule Typeダイアログが開き、エクスポートするデザインルールを選択できます。Export Rules to Fileダイアログが開くと、.rulファイルに名前を付けて、保存場所を選択できます。エクスポートされたルールはPCBルールファイル(
*.rul
)に保存されます。 - インポートするには - ダイアログの左側にあるツリー内の任意の場所で右クリックし、Import Rulesトを選択します。Choose Design Rule Typeダイアログが開き、インポートするデザインルールを選択できます。Import Fileダイアログが開くと、インポートする.rulファイルを参照できます。
設計ルールレポート
現在定義されている設計ルールのレポートは、PCB Rules and Constraints Editorダイアログ内から生成することができます。レポートは、すべてのルールカテゴリー、特定のルールカテゴリー、または特定のルールタイプに対応することができます。レポートは以下の方法で生成できます:
- 必要なサマリーリストにアクセスし、右クリックしてコンテキストメニューからReportコマンドを選択するか、リストの下にあるReportボタンをクリックします。
- フォルダーツリー内の該当エントリー上で右クリックし、コンテキストメニューからReportコマンドを選択します。
Report Previewダイアログが適切なレポートを読み込んだ状態で開きます。このダイアログを使用して、さまざまなページ/ズームコントロールを使ってレポートを検査し、最終的にファイルにエクスポートするか、印刷します。
PCBルールレポートを生成します。
制約エディタを通じて設計ルールを定義および管理する
制約エディタは、PCBレイアウト用の設計制約ルールを表示、作成、管理するための代替アプローチを提供するドキュメントベースのユーザーインターフェースです。エディタは、優先順位が高くなる6つの選択可能なルールセクション、Nets, Diff Pairs、 xSignals、 Polygons、 Components、そしてAdvancedに分けられています。この配置では、最初の5つのセクション(ネットからコンポーネントまで)はルールの設計オブジェクトビューを表し、Advancedビューセクションはより複雑なルール(通常はクエリを使用)に適用され、これらは単純な設計オブジェクト指向のルールとして表現できないものです。
制約エディター - 設計ルールを管理するための別のアプローチ。
制約エディターは、PCB Rules and Constraints EditorダイアログでSwitch to Document Viewボタンをクリックすることでアクセスします。
PCB Rules and Constraints Editorダイアログから制約エディタビューに切り替える。
エディタを使用する利点のいくつかは以下の通りです:
- ダイアログではなくドキュメントベースのプレゼンテーションインターフェースを使用することで、PCBエディターおよび関連機能がアクティブでアクセス可能な状態を維持します。
- クエリベースのルールスコーピングから適用されるオブジェクトタイプマッチングへの移行により、制約ルールの作成が簡素化されます。
- ルールの優先順位は、設計オブジェクトの自然な階層に基づいて自動的に設定されます。
- 一般的な構文、割り当て、スコーピングのエラーを検出するためのインタラクティブなルール検証チェック。
制約ルールのタイプ
制約エディターでは、マッチングスコープにより複雑なクエリ式を特徴とする既存のルールはAdvanced Rules(またはカスタムルール)と見なされ、よりシンプルなルールは、チェックされる設計オブジェクトのタイプに基づくルール、つまりBasic Rulesとして再表現されます。
高度な(クエリベースの)形式のルールのほとんどは、ルールをBasic Rulesのリストにドラッグアンドドロップするか、高度なルールの右クリックメニューからMove Custom Rule to Basicオプションを選択することで、よりシンプルな基本ルールに変換できます。変換されると、高度なルールのクエリベースの範囲は、基本ルールのオブジェクトタイプの資格に解釈されます。
クエリベースの高度なルールは、よりシンプルな基本ルールに変換できます。
制約エディターにおけるルールの優先順位
一般的に、ルールの優先順位はシステムによって自動的に処理されます。これは、インターフェース内のルールビューボタンの配置によって示されており、左から右へのルールの優先順位によって配置されています - Netsが最低の優先順位を持っています。
- 高度な(またはカスタム作成された)ルールは、基本オブジェクトルールのシーケンスに優先し、アドバンスドビュー内でエントリを上下にドラッグすることによって手動で順序を変更できます。
- 逆に、基本ルールはシステムによって自動的に優先され、ドキュメントインターフェースのオブジェクトセクション(NetsからComponentsまで)で示される設計オブジェクトタイプに基づいています。
- (基本)オブジェクトルールセクション内では、優先順位はAll(最低)からオブジェクトクラス、オブジェクト(最高)の順に並べられ、推測すると、Allの範囲を持つルールが基本ルールに変換された場合、最低の優先順位を持つことになります。
- 基本ルールに明示的な優先順位を設定するには、ルールを右クリックし、Move Basic Rule to Advancedオプションを選択し、その後アドバンスドビューで手動で優先順位を設定します。これは、Allの範囲を持つルール以外に適用されます。例えば、ネットビューでは、Net ClassまたはNetsの範囲が指定されたルールをアドバンスドルールに変換(移動)できます。
新しいカスタム制約ルール
エディターのデフォルトのAdvancedモードで新しいルールを作成することは、PCB Rules and Constraints Editorダイアログでルールを構築することに似ています(ボタンを使用して示され、選択されます)。右クリックのコンテキストメニューからAdd Custom Ruleを選択するか(または
ボタン)、必要に応じてクエリベースのマッチングスコープを追加します(
)、その後、列グリッドまたは下部のグラフィカル表現で制約パラメータを入力します。
高度なカスタムタイプのルールを繰り返し作成するプロセスを簡素化するために、制約エディターはクエリベースのオブジェクトマッチングスコープをScopes Libraryダイアログに保存できます(メニューを使用してアクセス)。ライブラリはPropertiesパネルで表示され、カスタムスコープをインポート、管理、エクスポートして、他のカスタム制約ルールで再利用できます。ライブラリベースのスコープをルールで使用することは、ルールのObject Match列エントリーのアイコンによって示されます。
カスタムルールの作成を簡単にするためにスコープライブラリを使用します。
デザインオブジェクト制約モード
制約ルール作成において、よりシンプルなデザインオブジェクト指向アプローチを取るために、ルールグリッドの上部にある適切なオブジェクトモードボタンを選択して、デフォルトのアドバンスドモードから変更します。概念的に、これらのモードは、破壊可能なデザインルールの作成よりも、デザインオブジェクトがどのように適用されるかを制限(限定)することに焦点を当てた、より統合されたルールインターフェースを提示します。デザインオブジェクトボタンの位置序列は、基本的なNets(およびクラス)から統合されたComponents、さらにAdvancedモードまで、オブジェクトの複雑さ(およびルールの優先度)が増すことを関連付けています。
Advanced モード () では、ルールはタイプ別にグループ化されており、以下の画像に示されている基本的な
Via
や Width
の制約ルールなどがあります。さらに具体的なルールを作成するには、新しいルールを追加するか、クエリ言語要素を含めることができます。
制約エディタのAdvancedモードでは、ルールがタイプ別にグループ化されます。
逆に、オブジェクト指向のビュー(NetsからComponentsへ)は、設計オブジェクト(例:Nets)やクラス(例:Net Class)によってルールを整理し、その結果、ルールが設計にどのように適用されるかの直接的な概要を提供します。オブジェクトタイプに適用されるルールの概要を見るには、左列でオブジェクトまたはクラスを選択して、関連するすべてのルールを表示するか、Allを選択して、オブジェクトタイプに関連するすべてのルールを表示します。以下の例は、Netsに関連するルールの概要を示しています()。
制約エディタのオブジェクト指向ビューでは、ルールが設計オブジェクトごとにグループ化されます。
デザインオブジェクト指向アプローチを使用する場合、たとえば、以下に示すようにNetsオブジェクトタイプが選択されている場合、基本的なViaと幅のルールが一つの複合エントリに統合されます。グリッドレイアウトは、さらに多くの制約を(ネット)オブジェクトおよびクラスごとに追加するための提供もしています。
オブジェクト指向ビューは、選択されたオブジェクトタイプの制約を表示します。 さらに、この例でより具体的な制約を追加するには、NetまたはNet Classを選択し、望ましい制約ルールのタイプに対応するグリッドセルに適切な値を入力するだけです。下に示すように、Power
ネット(そのクラスによって定義される)に対しては、より大きなViaサイズが許可され、5V
供給レールネットには、増加した最大線幅が割り当てられています。実際には、4つのルールが1つのシンプルなグリッドビューに含まれています。つまり、5Vネットの幅制約、他のすべてのネットの幅制約、PowerネットのViaサイズ制約、および他のすべてのネットクラスのViaサイズ制約です。
異なるオブジェクトとそのグループ(例えば、ネットとネットクラス)に対して、より具体的な制約を追加します。
現在選択されている制約ルールのバリエーションを追加するには、ボタンを使用します。以下に示す例では、追加の
5V
ネットルールがBottom
レイヤーの推奨幅を設定しています。
グリッドエントリ内のルールタイプの利用可能性は、利用可能な列によって設定されます。これは、PropertiesパネルのRule Visibilityリストで有効にされたものによって指定されます。例えば、Rule VisibilityリストでClearanceエントリを有効にすると、下に示すように、NetsオブジェクトタイプにClearance列が追加されます。適用可能なクリアランスルールを追加するには、ネットまたはクラスのスコープと適切な距離パラメータを入力するだけです。
ルールの検証
すべてのアクティブなルールの有効性は、PropertiesパネルのRules/Constraints Checks領域で、ボタンをクリックすることで確認できます。この操作により、重複したルール、異なる値を持つ同じスコープのルール、クラスメンバー(ネットなど)が重複するルール、解決されていないスコープのルールなど、おそらくエラーとなるルールが検出されます。各違反タイプのエントリーは展開して、違反しているルールを表示でき、選択すると、その特定のルールエントリーが開きます。
制約エディターで現在定義されているルールの有効性をチェックします。
ルール違反
有効な設計制約ルールは、ライブのオンライン設計ルールチェック、バッチ設計ルールチェッカー、またはPCB Rules And Violationsパネルから選択的に実行されるなど、さまざまなメカニズムを通じて現在のボード設計に適用されます。これらの制約ルールの違反 – 指定された範囲とスコープの限界を超える場合 – は、ボードのグラフィック、パネルエントリ、レポート、および制約エディタ内のアラートアイコンを通じて示されます。さらに、ボーナスとして、制約エディタが開いている間に違反を検査、分析、修正することができます。これは、ダイアログ形式ではなく設計文書形式のおかげです。
制約エディタは、違反しているルールに関するフィードバックを提供します。
回路図上でのルールの定義
設計制約(ルール)は、構成されたルールを持つパラメータセット指令を回路図ソースドキュメントに追加することにより、PCBレイアウト前に定義することができます。設計がPCBドキュメントに転送されるときに作成される対応するPCB設計ルールの範囲は、パラメータが割り当てられたオブジェクトの性質によって決定されます。以下の表は、サポートされている回路図パラメータからPCBルール範囲へのオプションをまとめたものです。
ルールを追加... | 元... | PCBルールの範囲... |
---|---|---|
ワイヤー | Propertiesパネル(選択したパラメータセットオブジェクトのプロパティを閲覧する際)、パラメータセットオブジェクトをワイヤー上に配置した後、Place » Directives » Parameter Setコマンドを使用。 | ネット |
バス | Propertiesパネル(選択したパラメータセットオブジェクトのプロパティを閲覧する際)、パラメータセットオブジェクトをバス上に配置した後、Place » Directives » Parameter Setコマンドを使用。 | ネットクラス |
ハーネス | Propertiesパネル(選択したパラメータセットオブジェクトのプロパティを閲覧する際)、パラメータセットオブジェクトをハーネス上に配置した後、Place » Directives » Parameter Setコマンドを使用。 | ネットクラス |
ブランケット | Propertiesパネル(選択したパラメータセットオブジェクトのプロパティを閲覧する際)、ブランケットの端にパラメータセットオブジェクトを配置した後、Place » Directives » Parameter Setコマンドを使用。ブランケットによってカバーされるすべてのネットのためのネットクラスを作成するために、必要な名前のクラスを含め、その後ルールの範囲として使用されます。 | ネットクラス |
各ケースにおいて、ルールベースのパラメータを追加する方法は同じです:
- パラメータをルールとして追加します。
- 使用するルールタイプを選択します。
- 選択したルールタイプの制約を設定します。
ルール適用の確認
ボードデザインによっては、非常にシンプルなものから非常に複雑なものまで、範囲が広がる多くの設計ルールを定義する必要があります。定義されたルールが確かに意図したオブジェクトを対象としているかを確認することは良い考えです。ルール定義の段階での注意は、誤ったルールスコーピングによって引き起こされる違反を追跡するための無駄な時間と労力を節約することができます。
ルールの範囲を検証する方法は基本的に2つあります。設計オブジェクトを選択して現在適用されているルールを調査するか、ルールを取り上げて(ソフトウェアの異なる場所で)どのオブジェクトがその範囲に含まれるかを観察します。
オブジェクトの視点から
現在の設計に配置された任意のオブジェクトについて、そのオブジェクトに適用可能な単項設計ルールに関する情報にすぐにアクセスできます。オブジェクトの上にカーソルを置き、右クリックしてからApplicable Unary Rulesを選択します。選択されたオブジェクトに適用可能なすべての定義済み設計ルールが分析され、Applicable Rulesダイアログにリストされます。
単一の設計オブジェクトに適用される設計ルール - 単項ルール。
ダイアログにリストされている各ルールの隣には、チェック()またはバツ(
)が表示されます。チェックは、同じタイプの適用可能なすべてのルールの中で最も優先度が高いルールを示し、これが現在適用されているルールです。同じタイプの低優先度ルールは、適用可能であるが最優先ルールではないため、現在適用されていないことを示すクロスが隣に表示されます。
同様に、設計内の2つの配置されたオブジェクト間に適用されるバイナリ設計ルールに関する情報にもアクセスできます。任意のオブジェクト上にカーソルを置き、右クリックしてからApplicable Binary Rulesを選択します。プロンプトに従って設計内の2つのオブジェクトを選択します。Applicable Rulesダイアログが開き、それらのオブジェクト間に適用されるすべてのバイナリ設計ルールを表示します。
2つの例示設計オブジェクト間の適用可能な設計ルール – バイナリルール。
ルールの観点から
PCBルールと違反パネルを通じてのチェック
特定のルールがどのオブジェクトに適用されるかを、PCB Rules And Violationsパネルからすぐに確認することもできます。このパネルには、設計に対して現在定義されているすべてのルールがリストされています。すべてのルールを表示することも、少なくとも1つのルールがアクティブな設計に対して定義されている場合に限り、ルールタイプごとに具体的に閲覧することもできます。パネルのRules領域で特定のルールをクリックすると、そのルールをフィルターの範囲として使用してフィルタリングが適用されます。ルールの範囲に該当する設計オブジェクトのみがフィルタリングされます。Mask(またはDim)ハイライト機能を使用することで、ルールによって対象とされる結果のオブジェクトをすぐに確認できます。
選択したルールがどのオブジェクトに適用されるかを確認するために、PCBルールと違反パネルを使用する例。
PCB Rules And Violationsパネルを使用して、どのオブジェクトにルールが適用されるかを調査することは、ルールのスコープを作成する際に特に役立ちます。なぜなら、パネルから直接ルールを編集できるため、スコープによってキャプチャされる必要があるオブジェクトが得られるまでクエリを「調整」することができるからです。
ルールのスコープや制約を編集するには、パネル内のルールのエントリをダブルクリックするか、右クリックしてコンテキストメニューからPropertiesを選択します。関連するEdit PCB Ruleダイアログが表示され、変更を加えることができます。
ルールはPCB Rules And Violationsパネルから直接編集でき、その場でルールのスコーピングや制約をさらに洗練させることができます。
PCB Rules and Constraints Editorダイアログを通じてのチェック
PCB Rules and Constraints Editorダイアログには、クエリテスト機能が含まれており、特定のルールがどのオブジェクトに適用されるかを迅速に確認できます。テストしたいルールのメイン編集ウィンドウの右上にあるボタンをクリックします。Test Queries Resultダイアログが表示されます。このダイアログは、式の範囲に含まれるオブジェクトの数、現在のルールに適用可能なオブジェクトの数、および複数の適用可能なルールが存在する場合の現在のルールの優先度に基づいて適用可能なオブジェクトの数を反映しています。右側のリンクをクリックすることで、ワークスペース内で直接、各ケースに適用可能なオブジェクトをすぐにフィルタリングして表示できます。
ルールのスコーピング式によってキャプチャされたオブジェクトをテストクエリ機能を使用してすぐに確認できます。
制約エディターを通じての確認
制約エディタには、対応するPCBレイアウトでネットと接続を視覚的にハイライト表示することで、制約ルールのオブジェクトスコープを示すクロスプローブ機能が含まれています。エディタのグリッドリスト内の任意のルールにクロスプローブするには、そのエントリを右クリックしてコンテキストメニューからCross Probeオプションを選択するか、高度なルールのメニューからCross Probeを選択します。
Cross Probe View Settings(ZoomおよびSelect択オプション)をPropertiesパネルで設定し、PCBエディタのClear Filterオプションを使用してクロスプローブのハイライト表示をリセットします。