接続性とマルチシート デザイン

マルチシートデザインの構造と接続について紹介します。また、シート間を渡るネット接続を確認するためのツールについても紹介します。

エンジニアは様々な理由でマルチシートデザインに切り替えます。第一の理由は、プロジェクトの規模で、単純にプロジェクトが大きい場合、あるいは一枚のシートでは、かえって複雑になる場合もあります。しかし、小さなデザインでも、マルチシートの設計手法を取ることで得られるメリットがあります。例えばデザインには、いくつかのモジュールが含まれています。これらのモジュールを別々のドキュメントに分割し、複数のエンジニアで同時に1つのプロジェクトで作業ができます。また、マルチシートデザインは、レーザープリンタを使用して、小さな用紙での印刷が可能です。
基本的にマルチシートプロジェクトでは、2つのことを決定する必要があります。シートの構造的な関係と、回路間の電気的な接続性を使用する方法です。どのような形にするかは、各プロジェクトのサイズとタイプ、個人的な好みによります。

シート構造の定義

プロジェクトファイルが、1つのプロジェクトへ様々なソースドキュメントをリンクする時、ドキュメント間、ネット接続の関係はドキュメント自体の情報で定義されます。マルチシートデザイン プロジェクトは論理的なブロックの階層構造(各ブロックは回路図シート、または HDL ファイル(VHDL、または Verilog)のいずれかになります)として作成します。この構造の一番上の階層は、一般的にプロジェクトのトップシートと呼ばれる 1 つのマスター回路図シートです。 
シート構造自体は、シートシンボルと呼ばれる特定のシンボルを使用して形成されます。デザインを構成するそれぞれのソースドキュメントは、トップシートのシートシンボルで表されます。各シートシンボルの Filename 属性は、グラフィカルに表す回路図のサブシート(または、HDL ファイル)を参照します。同様に、回路図のサブシートには更に下位の回路図シート、または HDL ファイルを参照するシートシンボルを含めることができます。この方法で、ソースドキュメントの階層構造を定義できます。 

マルチシートプロジェクトがコンパイルされると、デザインの論理的な関係が実行されシートの構造的な枠組みが作成されます。これはトップシートから始まるツリー構造で、その他の全ての回路図サブシートや HDL ファイルはそこから分岐し、同じレベルか、またはいくつかのレベルに含まれる形になります。シートとシート間の関係は、デザイン内に配置されるシートシンボルによって決定されます。
図 1 は、2 つのコンパイルされたデザイン階層の例を示します。左は、コンパイルされた PCB デザインプロジェクト(.PrjPcb)の階層構造です。右は、コンパイルされた FPGA デザインプロジェクト(.PrjFpg)の階層構造です。  

図 1. ソースドキュメント間の階層を示すコンパイルされたマルチシート デザインプロジェクト。

階層構造の構築

回路設計環境は、素早く、効果的に複数のドキュメント、階層構造を構築できます。選択する機能は、設計する方法(top-down、または bottom-up)に依存します。 

Top-Down デザイン

以下のコマンドは、top-down の方法でデザインの階層を構築するために利用できます:
Create sheet from symbol - 指定したシートシンボルの下にシートを作成するためにこの回路図エディタコマンドを使用します。一致するポートはサブシートに追加されます。 
Create VHDL file from symbol - 指定したシートシンボル内のシートエントリと一致するポートを含めた VHDL ファイル(VHDL は記述されていません)を作成するためにこの回路図エディタコマンドを使用します。
Create Verilog file from symbol - 指定したシートシンボル内のシートエントリと一致するポートを含めた Verilog ファイルを作成するためにこの回路図エディタコマンドを使用します。
Push part to sheet - 親シート上のオリジナルの部品を新しいサブシートを示すシートシンボルに置き換えて、親シートに配置されていた部品を新しい回路図のサブシートへ "移行" するためにこの回路図エディタコマンドを使用します。一致するポートが追加され、サブシート上の部品へ接続できます。このコマンドを実行するにはコンポーネントを右クリックします。 

Bottom-Up デザイン

以下のコマンドは、bottom-up の方法でデザインの階層を構築するために利用できます: 
Create symbol from sheet or HDL - 指定した回路図シート、VHDL ファイル、または Verilog ファイルからシンボルを作成するためにこの回路図エディタコマンドを使用します。このコマンドを実行する前に、シートシンボルを含めるシートをアクティブドキュメントにします。
Convert part to sheet symbol - 選択した部品をシートシンボルへ変換するためにこの回路図エディタコマンドを使用します。最初は、シンボルの Designator の項目は部品のデジグネータに設定され、Filename の項目は部品の comment テキストに設定されます。サブシートを示すファイル名に変更し、サブシートで定義したポートに従ってシートエントリを変更します。このコマンドを実行するにはコンポーネントを右クリックします。 

回路図/ HDL ドキュメント混在の階層

デザイン階層を作成している時、下位サブシートを参照する親回路図シートで容易にシートシンボルを使用できます。これは、回路図シートと HDL コード混在のデザインで設計している時、拡張できます。VHDL、または Verilog サブドキュメントは、シートシンボルのサブドキュメントファイル名を指定して、回路図サブシートと同じ方法で参照されます。  
VHDL サブドキュメントを参照している時、シートシンボルから VHDL ファイルの entity 宣言へ参照できます。VHDL ファイル名と異なる名称で entity を参照するには、シートシンボルに VHDLEntity パラメータを含めます。その値は、VHDL ファイルで宣言した Entity の名称です。 
そのプロセスは、Verilog サブドキュメントを参照している時に似ています。この場合、シートシンボルから Verilog ファイルの module 宣言へ参照します。Verilog ファイル名と異なる名称でmoduleを参照するには、シートシンボルに VerilogModule パラメータを含めます。その値は、Verilog ファイルで宣言した Module の名称です。 
図 2 は、この混在した階層の例を示します。そこでは、デザインのある回路図サブシートと VHDL サブドキュメントの entity を参照するために、同じシートシンボルが使用されました。両方にサブドキュメントには同じ回路(BCD Counter)が反映されます。 

図 2. ドキュメント階層は、下位ドキュメントを表すために配置したシートシンボルで作成されます。

階層の維持

マルチシートデザインの階層構造を定義したら、それを維持できる必要があります。Altium Designer ではそれを行うための機能があります。

ポートとシートエントリの同期

シートエントリがサブシート上のポートに相当する場合(名称と IO タイプによって)、シートシンボルは下位の子シートを参照して '同期' します。シートシンボルとそれに相当するサブシートのリンクを維持するには、Synchronize Ports to Sheet Entries ダイアログ(図 3)を使用します(Design メニューから Synchronize Sheet Entries and Ports を選択します)。 

図 3. シートエントリとポートの同期。

シートシンボルの子シートの名称変更

設計中、回路図サブシートの名称を変更する必要があるかもしれません。例えば、シートで回路を変更し、シートの機能性をより良く反映するために異なる名称にする必要があるかもしれません。シートを名称変更し、シートを参照する各シートシンボルの参照を手動で変更するよりむしろ、Rename Child Sheet コマンド(Design メニューからアクセスできます)を使用します。このコマンドで以下のことが可能です:

  • 子シートを名称変更し、それに関連する現在のデザインプロジェクトの全てのシートシンボルを更新します。 
  • 子シートを名称変更し、それに関連する現在のデザインワークスペース (*.DsnWrk) の全てのシートシンボルを更新します。 
  • 名称変更した子シートのコピーを作成し、それを示す現在のシートシンボルを更新します。 

マルチチャンネルデザインのサポート

その環境は、1 つのシートシンボル = 1 つのサブシートで表現 と同様に 特に繰り返す回路のプロジェクトをサポートする機能を含みます。また、同じサブシートをしばしば参照する構造を作成できます。これはマルチチャンネルデザインとして知られています。 
マルチチャンネルデザインを設計するには 2 つの方法(複数のシートシンボルから同じサブシートを参照、または Repeat キーワードをシートシンボルに使用)があります。デザインがコンパイルされる時、繰り返した部分(または、チャンネル)は自動で必要な回数、作成されます。マルチチャンネルデザインの利点は、デザインが FPGA、または PCB で実行するために移行された後でもソースチャンネルのコピーを維持できることです。

使用する構文は、以下の形式でシートシンボルの Designator の項目に Repeat キーワードを入力します:
Repeat(SheetSymbolDesignator, FirstInstance, LastInstance)
SheetSymbolDesignator はシートシンボルのベースの名称で、FirstInstance と LastInstance はチャンネル数を定義します。FirstInstance パラメータは 1、または 1 以上の値で開始する必要があることを思い出すことは重要です。図 4 は、audio mixer について 8 つの入力チャンネルへ Repeat キーワードを使用した例を示します。 

図 4. Repeat キーワードを使用したマルチチャンネル。

プロジェクトが構築される時、内部のコンパイルしたモデルを構築して(各チャンネルで各コンポーネントを固有に識別するためにアノテーション方針を使用)Compiler は必要な回数、チャンネルを実行します。チャンネルサブシートは複製されません。代わりに、コンパイルすると、図 5 に示す様なメインデザインウィンドウのサブシートドキュメントの下部に分割されたタブが表示されます。 

図 5. 1 つの子回路図シート上にあるチャンネルの例。

ネット接続の定義

プロジェクトのシート間で信号を渡す唯一の方法はネット識別子です。これらは、物理的な接続(ワイヤ)ではなく、互いに論理的な接続を作成するオブジェクトです。もちろん、ネット識別子は下図の様に 1 つのシート内でローカルに使用できます。 

これらの図は、ワイヤ接続をネットラベル、ポート、パワーポートで置き換えることができる方法を示します。これらはネット識別子として知られており、次の項目で詳細を説明します。 

下図は、共通の誤解を示します: 異なるタイプ(ネットラベルやポートのような)のネット識別子は、それらの名称が一致する場合、論理的に接続します。実際、逆の例もあります: 異なる種類のネット識別子は、異なる名称を持つが 1 つのネットを形成するためにワイヤで接続するかもしれません。 

これらの図はネット識別子と関連し、1 つのシート内で物理的な接続を置き換えます。ネット識別子は、マルチシートプロジェクトのシート間のネットを自由に移行できます。これがどのように起こるかは、デザインで使用したネット識別子と、Net Identifier Scope の設定に依存します。 

Net 識別子

多くの基本的なネット識別子はネットラベルです。それらの第 1 の機能はネットに名前を付けて、シート内で複雑なワイヤ接続を軽減することです。ネットラベルでシート間を一致させることができる方法や状況がありますが、一般的にローカル(シート内で)接続を考えるべきです。 

ポートは、ネットラベルの様に同じドキュメント上の一致するポートへローカルで常に接続します。ネットラベルと違いポートは、特に、シート間の接続のために使用します。これは、水平方向、または垂直方向に接続できます。水平方向は、マルチシート構造を無視して、プロジェクトの全てのシートにある同じ名称のポートを接続するため、最も広いオプションです。階層接続では、サブシートと親シート間のみ垂直方向に信号を接続するため、よりコントロールし易くなります。ポートと一致するポートを接続する代わりに、垂直方向の接続はサブシート上のポートと、親シート上のシートエントリ間で構築されます。このシートエントリは、特定のサブシートを参照するシートシンボル内で配置する必要があります。 

オフシートコネクタは、プロジェクト内のシートをグループ化したものを水平方向で接続します。これらのシートをグループ化する方法は、1 つのシートシンボルの Filename 欄にセミコロンで区切って複数のシート名を配置します。これらのグループ化されているシートで接続したい信号にオフシートコネクタを配置します。オフシートコネクタは一致するオフシートコネクタと接続しますが、親シートシンボルでグループ化したシート内のみです。もし、1 枚のサブシートのみがシートシンボルで指定された場合、オフシートコネクタは一致するオフシートコネクタと接続しません。  

パワーポート(または、パワーオブジェクト)は、プロジェクトの構造に関係なく、リンクされている全シートで一致しているパワーポートを接続します。ヒドゥンピン もこれと同じで、Connect To 欄(Pin Properties ダイアログ内)に入力した値と同じものが接続されます。もし、Protel 99 SE、または以前の製品からデザインをインポートした場合、ヒドゥンピン は自動でこの欄で設定したネット名が反映されます。  

表 1. 異なるネット識別子の概要

ネットラベル

シート内で同じ名称のネットラベルへ常に接続します。また、Net Identifier Scope を Global に設定した場合、シート間を水平方向に接続するために使用できます。

ポート

親シートシンボルのシートエントリと一致する場合、垂直方向に接続します。Hierarchical、または Automatic の Net Identifier Scope を使用します。Flat、または Global のスコープを使用すると、一致するポートへ水平方向に接続します。

シートエントリ

シンボルにより参照されたシート上のポートへ垂直方向に常に接続します。

オフシートコネクタ

フラットデザインで一致するオフシートコネクタへ水平方向に接続します。そうでなければ、1つの "下位で分割された" シートシンボル内で参照したシートに制限されます。注意: ポートクロスリファレンスはオフシートコネクタへ適用できません。そのため、ポートクロスリファレンスを使用する場合、ポートを使用する必要があります。

パワーポート

プロジェクト全体の一致する全てのパワーポートへ接続します。

 

ヒドゥンピン

Connect To の値が一致しているプロジェクト内のすべてのヒドゥンピンを接続します。

ネット識別子の反転表記

ネットラベル(の上部のバーを含む)、シートエントリ、ポートを反転表記する必要がある場合、2つの方法があります:

  • ネット名の各文字の後にバックスラッシュ文字を入力します(例えば、E\N\A\B\L\E)。 
  • Preferences ダイアログの Schematic - Graphical Editing ページの Single '\' Negation オプションを有効にします。それから、ネット名の始めにバックスラッシュ文字を入力します(例えば、\ENABLE)。  

ネット識別子のスコープの設定 

マルチシートプロジェクトをコンパイルする時に作成される接続は、ネット識別スコープに依存します。スコープで、ネット識別子を接続したい方法を指定します: Flat – ポートは全てのシート間で接続します; Global – ポートとネットラベルは全てのシート間で接続します; Hierarchical – 接続は、ポートとそれと一致するシートエントリ間の垂直方向(シートシンボルとサブシート間)のみに作成されます。 

Options for Project ダイアログ (Project»Project Options) の Options タブにある Net Identifier Scope を設定して接続を定義します。上記で示した 3 つのオプション(Flat、Global、Hierarchical)と他に Automatic オプションがあります。一般的に、Scope を*Automatic* に設定することが望ましいです。Altium Designer は、シート構造や、ポートやシートエントリがある/無いかに基づいて 3 つのオプションから最も適切なオプションを選択します。  

常にグローバルになると思われる 2 つの特定のネット識別オブジェクト(パワーポートとヒドゥンピン)があります。オフシートコネクタの接続は、Net Identification Scope に関係無く、常に同じ方法で働きます。 

フラットと階層接続

ドキュメント構造に関して、たとえ、階層が 2 レベル(例えば、下位レベルのサブシートを参照する全てのシートシンボルを含むトップシート)のみに制限されていても、全てのマルチシートデザインプロジェクトは階層的に構築されます。接続に関して、デザインは 'フラット'、または '階層' 構造に従います。2 つの基本的な違いは、次のようになります。階層デザインはシート構造と一致するシート間で信号を中継しますが、フラットデザインはシートの構造的な配列を考慮しません。  
FPGA プロジェクトを設計している時、使用した接続モデルが階層である必要があることに注意することが重要です。 

トップシートが無いフラットデザイン

デザインが階層でない場合(例えば、サブ回路図シートが全て同じレベルで、下位シートを参照するシートシンボルが無い場合)、デザインはフラットです。この場合に、下位シートを参照するシートシンボルのみがあるトップシートは必要ありません。トップシートが必要となるのはプロジェクトファイルが無い時です。これは、どのシートがプロジェクトにあったかソフトウェアが確認するには、トップシート上のシートシンボルに頼る必要があるからです。このようなトップシートが無いプロジェクトをテストするには、Projects パネルでそのファイル名を右クリックし Remove from Project を選択します。 
トップシートがあるフラットデザインプロジェクトは正しくコンパイルしますが、Altium Designer ではトップシートが無いプロジェクトを構築できます。 

接続の例

以下の 4 つの図は、同じシート間構造で検出、または選択したスコープがネットラベルやポートの接続にどのように影響を及ぼすか示します。5番目の図はオフシートコネクタがどのように働くかを示します。 

例 1 - 階層


この回路図プロジェクトは、親シートに配置されているシートシンボル内のシートエントリの存在によって、自動的に階層スコープが適用されます。各サブシートにあるネットラベル C1 と C2 は、他のサブシートで一致しているものとは接続されません。但し、ローカルシート内では接続されます。この例でポート名は一致していませんが、たとえ一致していたとしても階層的スコープの影響で、水平的な接続は行われません。それに代わり、ポートは親シートを介して垂直方向にシート間の接続を行います。この動作をさせるため、サブシートに配置されているポートは、シートシンボル内のシートエントリに対応しているものが必要となります。これは、親シート上のシートエントリからピンや他のネット識別子へ結線を行うことで接続されます。
この例では、親シート上のシートエントリ同士が接続されています(名称が一致しない点に注意してください;これは、物理的に接続を行っており、論理的な接続ではありません)。より高度なデザイン構造では、これらの信号は、ポートとそれに一致した、その上階層の親シート上にあるシートシンボル内のシートエントリと配線されているかもしれません。

例 2 - ポートグローバル


このデザインではポートが存在しますが、シートエントリが無いことで識別範囲は、自動的に Ports Global になります。これは基本的にポートに関しては、平面構造のプロジェクトになります。プロジェクト内で名称が一致している全てのポートは論理的な接続が行われます。ネットラベルは、これと同じ機能は持っていません。各シートでローカルに接続されます。
このデザインプロジェクトがフラットである時、トップシートはプロジェクトから削除でき、デザインは正しくコンパイルします。Altium Designer では、どのシートがそのデザインプロジェクトにあるか決めるためにプロジェクトファイルを使用します。 

例 3 - ネットラベルグローバル


このプロジェクトはシートエントリとポートが欠落しています。これは、ネットラベルがマルチシートデザインで自動でグローバル接続を行う場合のみです。これらのネットラベルは、構造に関係無くプロジェクト内の一致するネットラベルと接続します。 
また、このデザインプロジェクトがフラットである時、トップシートはプロジェクトから削除でき、デザインは正しくコンパイルします。 

例 4 - ネットラベルとポートグローバル


この識別範囲は、以前のデザイン用として引き続き Altium Designer でもサポートされていますが、自動的に検出はされません。これは、ネットラベルとポートが水平方向に一致しているネット識別子同士でグローバルな接続を作成します。この接続オプションに設定するには、Options for Project ダイアログの Options タブを表示し、Net Identifier Scope のところで Global (Netlabels and ports global) を選択します。
このデザインプロジェクトがフラットである時、トップシートはプロジェクトから削除でき、デザインは正しくコンパイルします(プロジェクトファイル自体に、デザインを形成しているソースドキュメントの情報があります)。 

例 5 - オフシートコネクタ

この例では、トップシートは 2 つのシートシンボルで 4 つのサブシートを参照しています。これは、シートシンボルの Filename 欄に複数の回路図ファイルを入力し、セミコロンで区切ることで実現しています。オフシートコネクタは、プロジェクト内の他のシートで垂直方向の接続を使用していても、1 つのシートシンボル内でグループ化した全てのシート間で平面的な接続を行います。
シートのグループ化によって、オフシートコネクタ以外のネット識別子は、影響を受けません。それは単にオフシートコネクタによって、平面構造の接続が作成されます。但し、一致しているオフシートコネクタ間だけで起こります。また、この接続は、グループ化されているものだけで保たれる点に注意してください。オフシートコネクタの名称が一致しても、別のグループを超えて接続はされません。
多くの設計者は、このオフシートコネクタを使用したことが無いかもしれません。これは、主に他の設計ツールのデザインをシームレスにインポートするために導入されました。

バスの使用

多くの回路図には、信号をグループ化したバスが存在します。それらは区別し易くするために通常、ワイヤより太く作画されます。グラフィカルな局面から見ても、バスは便利なツールですが、バス化された信号は、先に述べた一般的な接続のルールに従ってシート間で信号を受け渡しすることができます。

図 6. デザインで使用したグラフィカルで論理的なバスの例。

上の図 6 の例では 4 つのバス(2 つのグラフィカルなバスと 2 つの論理的なバス)があります。論理的なバスは、バス構文を使用するネット識別子(ネットラベルと/またはポート)で表されます。バス構文を理解するには、この例の論理的なバスを考えてみてください:

ここには、バス化するのに適してた8つのノードがあります。なぜならそのネットラベルは、同じプリフィックス(接頭語)が付けられ、そのあとに数字続いています。論理的なバスを作成するためのネットラベルの構文は、D[0..7] となり、D を共有プリフィックス、数字の 0 と 7 がサフィックス(接尾語)となります。負の値は、サフィックスとしては使用できません。また、順序は、同じバス上に接続しているネット識別子と名称を一致させるという点だけが重要です。例えば、ネットラベルは、D[0..7] から D[7..0] へ変更することもできます。その場合、接続しているポートとトップシートのシートエントリの順序も変更してください。
ネットラベルのプリフィックスは最後が数字でなく、Headphone のようなアルファベットだけの文字を推奨します(例えば、Headphone[1..8] と言うネットラベル)。Headphone1[1..8] と言うネットラベルは Headphone11..Headphone 18 のように拡張できるプリフィックスの最後が数字の1 です。これは、デザインでネット名の不一致となる場合があります。
  論理的なバスは、バスオブジェクトではなく、ネットラベルによって作成される点に注意してください。バスの電気的な機能は、これらのネット識別子によって接続が行われます。異なる種類のネット識別子は、同じ名称であっても別のものとは自動的に接続されないことを覚えておいてください。これはバス構文が設定されたネット識別子に当てはまります; ネットラベル D[0..7] は同じ名前のポートに自動的に接続されません。バスはそれらを一緒に接続しなければなりません。
もう一方のバスは個別のネットを束ねたもので、グラフィカルな意味だけです。バスエントリは、接続的な属性は持ちませんが、バスの両側からワイヤを接続する場合を考慮してクリアランスを保つために利用します。(2 つのワイヤがバス上の同じところで接触するとショートします。)

サンプル回路の2番目のバスは、グラフィカルなもので、ネット識別子が接続されていません。この場合、実際の接続は一致しているネットラベルで行われます。このようなバスを削除しても、シートの接続には何の影響もありません。(一見した場合、接続が判りにくくなるかもしれません。)
このサンプルのネットは、実際、論理的なバス接続としては不適格です。なぜならそれらの名前は、必要とされるバス構文と一致していません。バスにまとめる全てのネットは同じプリフィックスを持ち、数字のサフィックスを付けて区別するようにしてください。

マルシシートデザインのナビゲート

デザイン階層をナビゲートするには、 ボタンをクリックしてアクセスする Up/Down Hierarchy 機能を使用します。シートエントリをクリックすると、サブシート上の一致するポートが表示されます。シートシンボルをクリックすると、サブシート全体が表示されます。上階層へナビゲートするには、ポートをクリックします。これにより、親シート上の一致するシートエントリが表示されます。
また、階層は、Ctrl を押しながらポート、シートエントリ、シートシンボルをダブルクリックして直接、ナビゲートできます。

回路図と PCB 間のクロスプローブ

回路図プロジェクトから PCB を設計するには非常に多くの繰り返しの過程があるため、Navigator パネルでは、回路図と PCB ドキュメント間でのクロスプローブが可能となっています。PCB ドキュメントをオープンし、Alt キーを押したまま回路図ソースのオブジェクトをナビゲートすると、ナビゲートしている回路図とそれに対応する PCB オブジェクトが同じオプションでハイライトされます。
Tool メニューにあるクロスプローブコマンドを使うのとは、若干違うクロスプローブが Navigation パネルから実行できます。Tool メニューのコマンドは、回路図、PCB の両方に用意されていますが、 Navigation パネルのツールは、プロジェクトの回路図から実行します。クロスプローブツールは、対応するオブジェクトが表示されるだけで、ドキュメントに対して現在のハイライト設定は適用されません。また、クロスプローブツールでオブジェクトをクリックした際、対応するオブジェクトにジャンプするには、Ctrl キーを押したままにします。これは Navigation パネルから行う場合と違い、PCB をハイライトしますが、ドキュメントをアクティブにしません。

接続インサイト

You are reporting an issue with the following selected text and/or image within the active document: