PCB設計ルールの定義、範囲設定、および管理
親ページ: 設計要件の指定
Altium Design SoftwareのPCBエディタは、設計の要件を定義するために「設計ルール」という概念を使用します。これらのルールは、PCBエディタが従うべき「命令セット」を形成します。これらは、配線幅、クリアランス、プレーン接続スタイル、配線ビアスタイルなど、設計のあらゆる側面をカバーし、多くのルールはオンラインの設計ルールチェッカー(DRC)によってリアルタイムで監視することができます。
設計ルールは特定のオブジェクトを対象とし、階層的に適用されます。例えば、ボード全体に適用されるクリアランスルールがあり、次にネットのクラスに適用されるクリアランスルールがあり、さらにそのクラスのパッドの1つに適用される別のルールがあるかもしれません。ルールの優先順位とスコープを使用して、PCBエディタは設計内の各オブジェクトにどのルールが適用されるかを判断できます。
明確に定義された一連の設計ルールを使用することで、さまざまで厳格な設計要件を持つボード設計を成功裏に完了することができます。そして、PCBエディターがルール駆動型であるため、設計の開始時にルールを設定する時間を取ることで、ルールシステムが成功を保証するために一生懸命働いているという安心感を持ちながら、設計の仕事に効果的に取り組むことができます。
PCBルールシステムの基本
ソフトウェアのPCBエディターに組み込まれたルールシステムには、他のPCB編集環境で使用されるほとんどの設計ルールシステムとは異なるいくつかの基本的な特徴があります:
- ルールはオブジェクトとは別に存在します - ルールはオブジェクトの属性として追加されるのではなく、全体のルールセットに追加され、そのオブジェクトに適用されるようにスコープが設定されます。これにより、ルールを複数のオブジェクトに適用したり、変更したり、異なるオブジェクトに適用したりすることができ、個々のオブジェクトレベルでルール属性を変更する場合の手間を省くことができます。
- ルールはクエリを記述することでターゲット(スコープ)されます - 固定された事前定義されたルールスコープのセットを使用する代わりに、柔軟なクエリシステムが使用され、ルールが適用されるオブジェクトを定義します。これにより、各設計ルールのターゲットを正確に制御できます。
- あらゆる設計状況のためのルール - 同じタイプの複数のルールを定義し、異なるオブジェクトセットにターゲットすることができ、ボードの制約の定義を完全に制御できます。例えば、異なる幅のルールを定義して、異なる層でネットを異なる幅で配線することができます。
- 各ルールには優先順位があります - 任意の設計オブジェクトは、同じタイプの複数のルールの対象となることがあり、一般的な状況とより具体的な状況の両方に対応できます。ルールの競合を解決するために、ルールの優先順位が使用されます。システムは単純に最高優先順位のルールから最低優先順位のルールまで順に確認し、チェックされているオブジェクトに一致するスコープ式を持つ最初のルールを選択します。
- ルールには二つのタイプがあります - 単項ルール(オブジェクトの必要な振る舞いを定義するルール)と二項ルール(二つのオブジェクト間の相互作用を定義するルール)。
設計ルールの定義と管理
設計ルールは、PCB Rules and Constraints Editorダイアログ内で定義および管理されます。このダイアログには2つのセクションがあります:
- 左側のツリーには、異なるルールカテゴリがリストされています。カテゴリを展開すると、利用可能な個々のルールタイプが表示されます。ルールタイプを展開すると、現在定義されているそのタイプのすべてのルールが表示されます。
- ダイアログの右側は、ツリーで現在選択されている内容に関連する情報を表示します - 選択されたルールタイプまたはカテゴリの定義済みルールの概要、システム全体のすべての定義済みルール、または実際のルールが選択されている場合は、そのルールの制約条件です。
新しいルールの作成
PCB Rules and Constraints Editorダイアログ内で新しいデザインルールを追加するには、左側のツリー内で必要なルールタイプにナビゲートし、選択します。そして、以下のいずれかを行います:
- ルールの要約リストの下にあるNew Ruleボタンをクリックするか、
- 右クリックしてコンテキストメニューからNew Ruleを選択します。
新しいルールはフォルダツリーに追加され、そのルールタイプの要約リストにも表示されます。
新しいPCB設計ルールの作成例。
ルールのスコープと制約属性にアクセスするには、フォルダーツリーペインでそのルールのエントリをクリックするか、要約リストのエントリをダブルクリックします。ダイアログのメイン編集ウィンドウが変更され、そのルールのスコープと制約属性を定義するためのコントロールにアクセスできるようになります。
ルールの詳細な制御にアクセスする方法、範囲と制約を含む。
新しいルールを完全に定義するためには、以下を行う必要があります:
- ルールを識別しやすい意味のある名前を付ける。
- ルールの制約を設定する。
- クエリを入力してルールの範囲を定義する(二項ルールの場合はクエリを複数設定)。
- ルールの優先度を設定する。
ルールウィザードを使用して新しいルールを作成する
新しいルールは、Design Rule Wizardを使用して作成することもできます。アクセスは、Design » Rule Wizardコマンドを使用するか、PCB Rules and Constraints Editorダイアログの下部にあるRule Wizardボタンをクリックすることで直接行えます。
ウィザードのページを使用して新しいデザインルールを作成します。手順には以下が含まれます:
- 必要なルールタイプを選択し、意味のある名前(必要に応じてコメントも)を付ける。
- ルールの範囲を定義する。ウィザードに組み込まれたクエリビルダーのインカーネーションを通じて、範囲のさらなる強化が可能になります。
- ルールの優先度を設定する。
既存のルールを複製する
既存のルールの同一コピーを迅速に作成するには、複製機能を使用します。この機能には2つの方法でアクセスできます:
- 左のツリーを使用して必要な既存のルールにナビゲートし、右クリックしてコンテキストメニューからDuplicate Ruleを選択します。
- 左のツリーで特定のルールタイプにナビゲートし、右の要約リストで複製するルールを選択してから、リストの下にあるDuplicate Ruleボタンをクリックします。
重複ルールは、元のルールと同じ名前で命名され、接尾辞(例:_1)が追加されて区別されます。その定義(範囲、制約など)は元のルールと同一です。優先度に関しては、元のルールの直下の優先度が与えられます。例えば、元のルールの優先度が1であれば、重複するルールは優先度2が与えられます。
ルールの範囲指定
メインページ: デザインルールの範囲指定
PCBルールシステムが特定のルールが適用されるオブジェクトを知るためには、そのルールの範囲、つまり適用範囲を知る必要があります。範囲指定、またはルールの対象を指定することは、PCB Rules and Constraints Editorダイアログで行われます。
事前に定義された可能なターゲットオプションのリストに制限されるのではなく、各設計ルールはいわゆるクエリを書くことによって範囲が定められます。クエリは、対象となる設計オブジェクトのセットを定義するソフトウェアへの指示として本質的に機能します。クエリはクエリキーワードを使用して書かれます。特定のオブジェクトセットを見つけるためにフィルターパネルにクエリを書くのと同じように、各ルールが対象とするオブジェクトを定義するためにもクエリを書くことができます。例えば以下のようになります:
InNet('VBAT') And OnLayer('Bottom Layer')
このクエリが幅ルールの範囲として使用される場合、VBATネットを配線して底層に切り替えると、トラック幅がそのルールの制約として指定された幅に自動的に変更されます。また、設計ルールチェックを実行すると、底層でのVBATネットの配線は指定された幅でなければ違反としてフラグが立てられます。
スコーピングオプション
簡単なスコーピングオプションが提供されており、迅速にスコープクエリを生成できます。最初のドロップダウンフィールドから1つのオプションを選択し、必要に応じて、次のドロップダウンリストを使用して適切なターゲット(ネット、レイヤー、フットプリント、パッケージなど)を選択します。提示されるスコーピングオプションは、ルールタイプに応じて焦点が当てられています。
簡単なスコーピングオプションを使用して迅速にクエリを作成します。
Custom Queryオプションを使用すると、自分自身でより複雑かもしれないが、より具体的なクエリを書くことができます。ルールスコープに直接特定のクエリを右側のクエリ領域に入力できます。また、論理的なクエリ式の作成を支援するために、クエリビルダーとクエリヘルパーの2つの機能が利用可能です。これらは、クエリの構文や使用可能なキーワードが不確かな場合に非常に役立ちます。
ルールの優先順位付け
ルールを定義し、管理するプロセスを簡素化するために、広範な要件をカバーする一般的なルールを定義し、特定の状況でこれらを特定のルールで上書きするという考えがあります。これを可能にするためには、同じタイプの複数のルールによってオブジェクトが対象となった場合に、どのルールを使用するかを示すために、ルールを優先順位付けする必要があります。
例えば、ボード上で最も一般的に使用される配線幅を指定するために、ボード上のすべてのネットに適用される単一のルールを定義します。このルールは、特定のネット(またはネットのクラス)に対して、優先度の高い同じタイプの別のルールを追加することで上書きすることができます。
もう一つの例としては、はんだマスクの要件があります - ここでは、ボード上の全てのパッドとビアを対象としたマスクルールを定義し、それを特定のフットプリント種類のパッドに対して上書きすることができます。このフットプリント固有のルールは、必要に応じてそのフットプリント内の特定のパッドに対してさらに上書きすることができます。
ルールを管理する上で重要な側面は、全ての優先順位が適切に設定されていることを確認することです。新しいルールが作成されると、デフォルトで最高優先順位になります。Prioritiesボタンを使用して、PCB Rules and Constraints Editorダイアログの下部にあるEdit Rule Prioritiesダイアログで優先順位を設定します。
Edit Rule Prioritiesダイアログでルールの優先度を変更します。
初めに、ダイアログはPCB Rules and Constraints Editorダイアログで現在選択されているルールタイプのすべてのルールインスタンスをリストアップします。Rule Typeフィールドを使用してルールタイプを変更し、そのタイプに定義されている特定のルールをリストアップします。定義されたルールは、現在の優先度順 - 1(最高優先度)から順にリストされます。ルールエントリを選択し、Increase PriorityボタンとDecrease Priorityボタンを使用して、それぞれ優先順位の中で上または下に移動します。
既存のルールの変更
もちろん、ルールはいつでも変更できます。実際、最終的なルールの動作セットにたどり着くには、多くの場合、あちこちでいくつかの重要な改良が必要です。これは通常、目標とする設計オブジェクトが必要に応じてそれぞれのルールによって「ピックアップ」されていることを確認するために、スコーピングを含みます。PCB Rules and Constraints Editorダイアログで既存のルールを選択し、そのスコーピングと制約属性に必要に応じて変更を加えます。
既存のルール定義に加えられた変更は、フォルダーツリーペインと該当する要約リストの両方で強調表示されます。そのようなエントリーは、ルール名が太字になり、名前の右側にアスタリスクが表示されることで区別されます。アスタリスクは、ルールが新しく作成されたルールではなく、既存のルールが変更されたことを反映するために使用されます(新しく作成されたルールは、アスタリスクなしで太字で表示されます)。
変更された既存のルールの例。変更を示すためにアスタリスクが使用され、ルール名が太字にされています。
無効なルールのフラグ付け
システムによってルールが無効と検出された場合 - 例えば、そのスコーピングクエリ式に問題があるか、許可されていない制約の値がある場合 - そのルールは無効としてフラグが立てられます。そのようなルールは、PCB Rules and Constraints Editorダイアログ内で、左側のルールツリーと、ルールが表示される任意の要約ビュー(ルールカテゴリまたはルールタイプ)の両方で赤く強調表示されます。さらに、ルールタイプとルールカテゴリのテキストも、左側のルールツリー内で赤く表示されます。したがって、無効なルールを含むルールツリーのエリアを折りたたんでいても、階層の上位レベルでそれについて警告されます。ダイアログを閉じようとすると、警告メッセージも表示されます。
ルールの無効化
ソフトウェアのPCBエディタのルール駆動型環境では、基板をうまく制約するために、かなり印象的で包括的なルールの配列を構築することは珍しくありません。途中で何らかの理由で、一部のルールを無効にしたい場合があります - そのルールが問題のボードに適用されないか、またはデザインルールチェッカーの負荷を軽減し(その結果としてパフォーマンスを向上させるために)、一時的に無効にする必要があるかもしれません。無効にすることは、将来また必要になった場合のために、そのようなルールを保持する良い方法です。
ルールを無効にするには、PCB Rules and Constraints Editorダイアログの右側にある関連する要約リストの中で、そのルールのEnableオプションを単に切り替えます。無効にされたルールは、「グレーアウト」された外観で表示されます。
ルールの削除
PCB Rules and Constraints Editorダイアログ内で単一の設計ルールを削除するには:
- 左側のツリーを使用して、必要な既存のルールに移動し、右クリックしてコンテキストメニューからDelete Ruleを選択します。
- 左側のツリーで特定のルールタイプに移動し、右側の要約リストで削除するルールを選択します。その後、リストの下にあるDelete Ruleボタンをクリックします。
ルール名は、適用されていない削除であることを区別するために、太字の取り消し線で強調表示されます。
多くのルールタイプには、新しいPCBドキュメントが作成されたときにデフォルトルールが作成されます。同様に、特定のルールタイプのすべての特定ルールが削除された場合、次にPCB Rules and Constraints Editorダイアログにアクセスしたときに、デフォルトルールが自動的に再追加されます。また、ダイアログの下部にあるCreate Default Rulesボタンをクリックすることで、デフォルトルールを再度作成することもできます。
ルール適用のチェック
ボードの設計によっては、非常にシンプルなものから非常に複雑なものまで、定義する必要がある設計ルールの数がかなりあります。定義されたルールが本当に目的のオブジェクトを対象としているかを確認することは良い考えです。ルール定義の段階で注意を払うことで、誤ったルールの範囲指定によって引き起こされる違反を追跡するための無駄な時間と労力を節約できます。
ルールの範囲を検証する方法は基本的に2つあります - 設計オブジェクトを選択して、現在それに適用されているルールを調査する方法、またはルールを取り上げて、その範囲に含まれるオブジェクトを観察する方法です。
オブジェクトの視点から
現在の設計に配置された任意のオブジェクトについて、そのオブジェクトに適用可能な単項設計ルールに関する情報にすぐにアクセスできます。オブジェクトの上にカーソルを置き、右クリックして、Applicable Unary Rulesを選択します。選択されたオブジェクトに適用可能な定義済みの設計ルールが分析され、Applicable Rulesダイアログにリストされます。
単一の設計オブジェクトに適用される設計ルール - 単項ルール。
ダイアログにリストされている各ルールの隣には、チェックマーク()またはバツマーク()が表示されます。チェックマークは、同じタイプの適用可能なルールの中で最も優先度が高いルールを示し、これが現在適用されているルールです。同じタイプの低優先度ルールは、適用可能であるものの最優先ルールではないため、現在適用されていないことを示すバツマークが隣に表示されます。
同様に、設計内の2つの配置されたオブジェクトの間に適用されるバイナリ設計ルールに関する情報にもアクセスできます。任意のオブジェクト上にカーソルを合わせ、右クリックしてApplicable Binary Rulesを選択します。設計内の2つのオブジェクトを選択するように促されます。Applicable Rulesダイアログが表示され、それらのオブジェクト間に適用されるすべてのバイナリ設計ルールが表示されます。
ルールの観点から
オブジェクトに適用されるルール(または2つのオブジェクト間のルール)を確認するのではなく、特定のルールを選択してそのルールが適用されるオブジェクトを確認したい場合は、PCB Rules And Violationsパネルから実現できます。このパネルには、設計に現在定義されているすべてのルールがリストされています。すべてのルールを表示することも、少なくとも1つのルールがアクティブな設計に対して定義されている場合に限り、ルールタイプごとに具体的に閲覧することもできます。パネルのRules領域で特定のルールをクリックすると、そのルールをフィルターの範囲として使用してフィルタリングが適用されます。そのルールの範囲に該当する設計オブジェクトのみがフィルタリングされます。Mask(またはDim)ハイライト機能を使用することで、ルールによって対象とされる結果のオブジェクトをすぐに確認できます。
選択したルールがどのオブジェクトに適用されるかを確認するために、PCB ルールと違反パネルを使用する例。
ルールのエクスポートとインポート
デザインルールは、PCB Rules and Constraints Editorダイアログからエクスポートおよびインポートすることができます。これにより、異なるデザイン間でお気に入りのルール定義を保存および読み込むことができます。
- エクスポートするには - ダイアログの左側にあるツリー内のどこかを右クリックして、Export Rulesを選択します。エクスポートされたルールは、PCBルールファイル(*.rul)に保存されます。
- インポートするには - 同じ右クリックメニューからImport Rulesを選択し、必要なPCBルールファイルを参照して開きます。
どちらの場合も、エクスポート/インポートする設計ルールの種類を選択できます。
設計ルールレポート
PCB Rules and Constraints Editorダイアログ内から、現在定義されている設計ルールのレポートを生成することができます。レポートは、すべてのルールカテゴリ、特定のルールカテゴリ、または特定のルールタイプに対応することができます。レポートは以下の方法で生成できます:
- 必要なサマリーリストにアクセスし、右クリックしてコンテキストメニューからReportコマンドを選択するか、リストの下にあるReportボタンをクリックします。
- フォルダツリー内の該当するエントリを右クリックし、コンテキストメニューからReportコマンドを選択します。
Report Previewダイアログが表示され、適切なレポートが既に読み込まれています。このダイアログを使用して、さまざまなページ/ズームコントロールを使用してレポートを検査し、最終的にファイルにエクスポートするか、印刷する前に行います。
PCBルールレポートを生成します。 PCBルールレポートを生成します。
回路図上でのルールの定義
設計制約(ルール)は、設定されたルールを持つスキーマティックソースドキュメントにパラメータセットディレクティブを追加することにより、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コマンドを使用して配置した後。必要な名前のクラスを含め、ブランケットでカバーされたすべてのネットのためのネットクラスを作成し、それをルールの範囲として使用します。 | ネットクラス |
各ケースにおいて、ルールベースのパラメータを追加する方法は同じです:
- パラメータをルールとして追加します。
- 使用するルールタイプを選択します。
- 選択したルールタイプの制約を設定します。