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