Multi-sheet & Hierarchical Designs in Altium NEXUS

This documentation page references Altium NEXUS/NEXUS Client (part of the deployed NEXUS solution), which has been discontinued. All your PCB design, data management and collaboration needs can now be delivered by Altium Designer and a connected Altium 365 Workspace. Check out the FAQs page for more information.

 

Parent page: 回路図として設計アイデアを取り込む

回路図がもともと紙で作成されていた頃は、大型の製図台いっぱいに広げられるほどの大判用紙1枚に描かれ、それを専用の大判コピー機で複製するのが一般的でした。時代は変わり、現在では回路図はデスクトップPCで作成され、サーバーに保存され、小型フォーマットのレーザープリンターで印刷されます。

この変化により、たとえ単純な設計であっても、複数の回路図シートに分けて提示したほうが表示しやすく、理解もしやすくなりました。設計がそれほど複雑でない場合でも、複数シートに整理することには利点があります。

たとえば、設計にさまざまなモジュール要素が含まれる場合があります。これらのモジュールを個別のドキュメントとして維持すれば、複数の設計者が同時に同一プロジェクトで作業できます。また、設計を論理的なモジュールに分割することで可読性も大きく向上します。これは、製品ライフサイクルの後半で回路図を読み取り解釈する必要がある人にとって重要な配慮点です。さらに、各シートの部品点数を減らして複数シートに構成すれば、レーザープリンターのような小型フォーマット印刷を利用できるという利点もあります。

設計を複数シートに分割する場合、決めるべきことは2つあります。

  • シート同士の構造的な関係と、
  • それらのシート上の回路間で電気的接続を確立するための方法です。

選択は、各プロジェクトの規模や種類、そして個人の好みによって変わります。

本記事では、シート間の構造的な関係、その仕組み、そしてマルチシート設計を作成するために利用できるツールと手法に焦点を当てます。接続性の作成方法について詳しくは、Creating Connectivity の記事を参照してください。

フラット設計か階層設計か

前述のとおり、設計者は回路図シートをどのように構成するか、そしてそれらのシート間でどのように接続性を確立するかを決める必要があります。ただし、これらは別々の判断ではありません。構造を選ぶと同時に、シート間の接続をどのように作成するかも選ぶ必要があります。

マルチシート設計の構造化には2つのアプローチがあります。flat または hierarchical です。

子シートを親シートに接続するための手法自体は、フラット設計でも階層設計でも同じです。フラットか階層かを決めるのは、how the connectivity is created(接続性をどのように作成するか)です。

フラット設計

フラット設計は、大きな回路図シートを複数の小さなシートに切り分けたものだと考えることができます。フラット設計では、すべてのシートが同じ階層(同一レベル)に存在します。フラット設計の接続性は、任意のシートから別の任意のシートへ直接作成されます。この種の接続性は水平接続(horizontal connectivity)と呼ばれます。

フラット設計ではトップシートの使用は任意です。トップシートを含める場合、設計内の各シートに対するシートシンボルを配置しますが、配線を含めることはできません。フラット設計のシート数に制限はありません。

1枚目の画像:フラット設計にはトップシートがない。2枚目の画像:同じ設計にトップシートがある。トップシートには配線がない点に注意。設計内のシートを示すだけである。 
1枚目の画像:フラット設計にはトップシートがない。2枚目の画像:同じ設計にトップシートがある。トップシートには配線がない点に注意。設計内のシートを示すだけである。

上の2つの画像はいずれもフラット設計を示しています。左のバージョンにはトップシートがなく、右のバージョンにはあります。2~3枚程度の回路図シートしかない小規模設計では、トップシートは価値を付加しないと判断するかもしれません。シート数が増えてくると、トップシート上で論理ブロック(Sheet Symbols)の配置を見ることで回路設計の機能を理解しやすくなり、読者の助けになります。階層がないため、設計内のすべてのシートは Projects パネルで同じレベルに表示されます。

Hierarchical Design

階層設計では、プロジェクトに含められるトップシートは1枚だけであることを覚えておくことが重要です。それ以外のすべてのソースドキュメントは、シートシンボルによって参照されなければなりません。設計検証を実行する際、Multiple Top Level Documents violation check を使用して、これが守られていない場合にフラグを立てることができます。さらに、どのシートシンボルも、自分が配置されているシート、または階層上でそれより上位のシートを参照してはいけません。参照ループが発生し、構造として解決不能になるためです。

階層設計とは、シート間に親子関係を作るためにシートシンボルを用いる設計のことです。and、接続性はそれらのシートシンボル内のシートエントリを介して確立されます。つまり、あるシートのポートから別のシートのポートへ直接接続するのではありません。

フラット設計と同様に、子シートはシートシンボル内でファイル名を定義することで特定されます。階層設計では、その子シートにさらにシートシンボルを含めて下位レベルのシートを参照でき、これにより階層の別レベルが作られます。下の画像は、階層が3レベルある階層設計を示しています。

階層設計では、ツリーに表示される構造は、シートシンボルによって作られる親→子の関係によって決まります。
階層設計では、ツリーに表示される構造は、シートシンボルによって作られる親→子の関係によって決まります。

階層設計では、子シート上の信号はポートを介してシート外へ出て、親シート上の一致するシートエントリへ上方向に接続されます。親シートには配線があり、子の信号を別のシートシンボル内のシートエントリへ渡します。そこから信号は下方向に移動し、2つ目の子シート上の一致するポートへ到達します(下の画像参照)。

The connectivity is from a Port on the child sheet up to a matching Sheet Entry in the Sheet Symbol on the parent sheet

この親子シート構造は任意の深さまで定義でき、階層設計内のシート数にも制限はありません。

シート間の接続性は Net Identifier Scope によって決まります。これは Options ダイアログの Options for Project タブで設定します。接続性の作成について詳しくは、Creating Connectivity の記事を参照してください。Net Identifier Scope には Automatic オプションが含まれています。特殊な接続要件がない限り、このオプションは良い選択です。

階層設計のもう1つの利点は、高度な設計再利用システムを提供するためのプラットフォームになることです。このシステムは、データの保存方法に応じて、ファイルベースまたはサーバーベースの2通りで提供されます。

  • ファイルベースのシステムは Device Sheets と呼ばれ、Device Sheets のライブラリにある既存の回路図を、作成中の設計へ直接配置します。Device Sheets の詳細は、Device Sheets の記事を参照してください。
  • サーバーベースのシステムは Managed Sheets と呼ばれ、managed content server から既存の回路図を、作成中の設計へ直接配置します。Managed Sheets の詳細は、Managed Sheets の記事を参照してください。

マルチシート設計の作成

プロジェクトに2枚目の回路図シートを追加した時点で、マルチシート設計が作成されます。トップシートなしのフラット設計を作成する場合は、回路図シートをプロジェクトに追加し続け、Net Identifier Scopeが正しく設定されていることを確認してください。

シートシンボルを使用して下位レベルのシートを参照したい場合は、シートシンボルを配置して手動で編集し、下位レベルのシートを正しく参照するようにするか、以下で説明する各種の組み込みコマンドを使用できます。

子シートの参照

下位レベルのシートを参照するのは、Sheet Symbolの Filename プロパティです。このフィールドには回路図ファイル名のみを含め、ファイルの場所へのパスは含めないでください(場所情報は実際にはProjectファイルに保存されます)。

Filename プロパティにより、このシートシンボルが子回路図シートにリンクされます。
Filename プロパティにより、このシートシンボルが子回路図シートにリンクされます。

子回路図(child schematic)は、親回路図(parent schematic)と同じフォルダに保存しておく必要はありません。ファイルが親の保存フォルダ配下のフォルダに保存されている場合は、相対パス参照が使用されます。ファイルが別の場所に保存されている場合は、絶対パス参照が使用されます。このようなプロジェクトでファイルを移動する際は注意してください。あるいは Project Packager を使用してファイルを ZIP 化してください。ZIP 化の過程でプロジェクトのファイルパスが解決されます。

階層の作成

本ソフトウェアには、複数ドキュメントからなる階層構造を迅速かつ効率的に構築するためのコマンドが多数用意されています。使用するコマンドは、設計者の設計手法(大きくトップダウン/ボトムアップに分類)によって異なります。これらのコマンドは、Sheet Entry の追加、新規回路図シートの作成、Port の配置など、必要な要素を一括して処理するため、手作業で階層を作成するより効率的です。

次のコマンドは、トップダウン方式で階層を構築します。

  • Design » Create Sheet From Sheet Symbol – 指定したシートシンボルの下に新しい回路図シートを作成するコマンドです。シートシンボル内に存在する Sheet Entry に合わせて、子シートに Port が追加されます。まだシートシンボルにすべての Sheet Entry を入れていなくても問題ありません。後から追加した場合でも、Sheet Entry と Port を再同期できます。後述のとおりです。

次のコマンドは、ボトムアップ方式で階層を構築します。

  • Design » Create Sheet Symbol From Sheet – 指定した回路図シートからシンボルを作成するコマンドです。このコマンドを使用するには、まず新しい Sheet Symbol を配置するシートに切り替えてからコマンドを実行します。Sheet Symbol には、検出した各 Port に対応する Sheet Entry が含まれます。後から Port や Sheet Entry を追加/削除した場合でも再同期できます。後述のとおりです。

次のコマンドは、設計内で回路の配置を組み替えるために使用します。

  • Edit » Refactor » Move Selected Sub-circuit to Different Sheet - 選択したコンポーネントと配線を、プロジェクト内の別シートへ移動するコマンドです。Choose Destination Document ダイアログが開き、プロジェクト内の既存回路図を選択できます。このコマンドについては後で詳しく説明します。

シート間でコンポーネントを移動するための専用コマンドが用意されている理由は、標準の Cut & Copy コマンドでは各コンポーネントの Unique Identifier(UID)が自動的にリセットされるためです。UID は回路図コンポーネントと PCB コンポーネントを紐付けるもので、回路図コンポーネントの UID がリセットされていると、設計を同期するたび(Design » Update コマンド使用時)に、デジグネータによるマッチングを試みるかどうかを促されます。必要に応じて、PCB エディタ内の Project » Component Links コマンドで UID を再同期できます。

Design Synchronization の詳細

設計の再構成

Main article: Design Refactoring

設計プロセスは、しばしば非構造的で有機的です。設計者は設計の複数部分について同時にアイデアを練り、アイデアの進展に合わせて各セクションを取り込んでいくことがあります。その結果、当初は整理されて見やすかった回路図一式が、混み合って整理の悪い状態になってしまうことがあります。Cut、Copy、Paste で回路図設計を再編成することもできますが、必ずしも最善の方法とは限りません。

なぜ cut and copy ではないのか?各コンポーネントは配置時に一意の識別子(UID)が割り当てられますが、コンポーネントを Cut/Copy して Paste すると、この識別子は自動的にリセットされます。この UID 管理は、設計内で同一 UID が重複して使われないようにするために行われます。UID は回路図コンポーネントと PCB コンポーネントをリンクするためのキー項目だからです。設計がまだ PCB エディタへ転送されていない場合は Cut/Copy/Paste でも問題ありませんが、すでに転送済みであれば refactoring ツールを使用する方が適切です。

サブ回路を別シートへ移動する

回路の一部をあるシートから別シートへ移動する最も簡単な方法は、対象を選択してから Edit » Refactor » Move Selected Sub-circuit to Different Sheet コマンドを実行することです。Choose Destination Document ダイアログが開くので、移動先シートを選択して OK をクリックすると、そのシートが表示され、サブ回路がカーソルに追従した状態(配置待ち)になります。

選択した回路の一部は、Move Selected Subcircuit to Different Sheet コマンドを使用してプロジェクト内の別シートへ簡単に移動できます。
選択した回路の一部は、Move Selected Subcircuit to Different Sheet コマンドを使用してプロジェクト内の別シートへ簡単に移動できます。

Design Refactoring の詳細

Port と Sheet Entry の同期

設計の再構成の一環としてコンポーネントや配線を移動した場合、各 Port に対応する Sheet Entry が存在するように、子シートと Sheet Symbol を再同期する必要があることがあります。これは Synchronize Sheet Entries and Ports コマンドで行い、次の用途に使用できます。

  • A specific Sheet Symbol - Sheet Symbol を右クリックしてコンテキストメニューを表示し、Sheet Symbol Actions » Synchronize Sheet Entries and Ports コマンドを選択して、カーソル下の Sheet Symbol のみを解析します。
  • All Sheet Symbols in the design - Design » Synchronize Sheet Entries and Ports コマンドを選択して、設計全体のすべての Sheet Symbol を解析します。ダイアログには、ダイアログ下部の Only Show unmatched sheet symbols オプションに従って、設計内の各 Sheet Symbol ごとのタブが表示されます。

いずれのコマンドでも、Synchronize Ports to Sheet Entries ダイアログ が開きます。ダイアログ右側には、すでに一致している Port/Sheet Entry が一覧表示され、左側には未一致の Port と Sheet Entry が2列で表示されます。

The Synchronize Ports to Sheet Entries dialog is used to check and correct any mismatches between Ports and Sheet Entries
Synchronize Ports to Sheet Entries ダイアログは、子シート上の Port と Sheet Entry が一致するようにするために使用します。
2つのタブがある点に注目してください。これは、この設計で Sheet Entry / Port の不一致がある Sheet Symbol が2つ存在することを意味します。

ダイアログ左側に表示される不一致に注目すると、考え方としては、1列目で Sheet Entry を選択し、2列目で正しい Port を選択してから、ダイアログ中央の該当ボタンをクリックし、どちらかを更新して同期させます(同期されると右側の一覧へ移動します)。

各ボタンの機能は次のとおりです。

  • Button, update the Port to Match the Sheet Entry - Sheet Entry のプロパティを使用し、選択した Port に反映します。
  • Button, update the Sheet Entry to Match the Port - Port のプロパティを使用し、選択した Sheet Entry に反映します。

左側の列で複数の Sheet Entry を選択すると、ソフトウェアは各 Sheet Entry を2列目の隣接する Port と同期します。隣接する Port(または Sheet Entry)が存在しない場合は、新規に作成されます。

コマンドによって新しい Sheet Entry または Port が追加された場合、処理完了後に回路図シート上で正しい位置に配置する必要があります。

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