マルチチャンネルデザインの概念

Altium Designer では、チャンネル内に他のチャンネルをネストして配置することができるマルチチャンネルデザインシステムを装備しています。デザインには同じ回路の繰り返しが含まれる場合が多くあります。例えば、ある基板では同一回路を 32 回も繰り返し使用していたり、あるいは 8 つの同一回路のサブチャンネルをそれぞれに持つ 4 バンクで構成している場合などがあります。従来の回路図入力ではこういった設計を、PCB レイアウトと関連付けるために“フラット階層”設計で対処せざるを得ず苦労してきました。回路図入力時の初期段階では、回路図のコピーアンドペーストで比較的容易に作業できますが、回路図プロジェクトに一旦修正が発生すると、今まで作業した回路図の書き直しは困難でした。Altium Designer は、こういった繰り返しの多いプロジェクトで 1 つのシートを参照できる真のマルチチャンネルデザインの機能を提供しています。ただ一枚の回路図を修正してプロジェクトを再コンパイルするだけで、全チャンネルに渡って必要な変更を反映させることができます。また、Altium Designer は複数のチャンネルだけでなく、回路図のネストもサポートしています。
図 1 のような 16 個のボタンがあるキーパッドの回路図を例に挙げて説明しましょう。

図 1. 2 つの異なるコンポーネントのみからなる一般的なキーパッドの回路。

Altium Designer の回路図エディタでこんな簡単な回路図なら、わずか数分で書き上げることができます。しかし、異なるシンボルのボタンを使用したい場合、パラメータを追加したい場合、現状の 4x4 を 10X20 に拡張したい場合にはどうでしょう?
グループ編集ツールの助けを借りたとしても、この修正はひどく退屈でエラーも生じやすい作業になります。そこで回路図の2枚のシートに2種のコンポーネント(抵抗とスイッチ)だけをそれぞれ配置したと仮定してみます。上階層のシートシンボルに Repeat 記述をしてあれば、Altium Designer のコンパイラは図 3 のシートシンボルの様に 1 枚のシートを参照し仮想の複製(チャンネル)を指定した個数分だけ作成します。まず抵抗を配置した回路図でスイッチを4個並べるためにスイッチを配置したシートを 4 回リピートし 1 行に相当する部分を作成します。さらにトップ階層で抵抗 1 個とスイッチ 4 個並んだこの回路図を 4 回リピートして回路全体を形成させます。以上の操作で複数のチャンネルが複数のチャンネル内に収められ、それに応じた接続のマトリクスが確立されています。
このマルチチャンネルの機能により設計者の作業が容易になり、上の例ではスイッチや抵抗に対しての変更を何度も行う必要は無く、1 回の修正で行うことができるようになります。また、スイッチ配列のマトリックスを拡張したい場合は、シートシンボル内の Repeat 記述を単に修正するだけの作業で行えるようになります。
マルチチャンネルデザインを素早く作成するには、Altium Designer でのプロジェクト内での接続方法に慣れている必要があります。

マルチチャンネル接続

他のマルチシートデザインの場合と違いマルチチャンネルデザインでは Net Identifier scope の設定を Hierarchical (sheet symbol <-> port) にしておく必要があります。Project Optionsダイアログでこの設定を Automatic にしておくのが最良ですが、繰り返されるシートに信号を伝達させる唯一の方法は、親シートのシートエントリに対応した子シートのポートへの接続であると理解してください。この制限はシートエントリがポートやネットラベルと異なり、Repeat 記述で作成される繰り返されたチャンネルを扱うように作られているからです。

図 2. 各列のスイッチは共通のネットです。

マルチチャンネル設計で利用できるシート間の接続には、全てのチャンネルに共通したネットと各々に固有なネットの 2 種類があります。これらのタイプを上記のキーパッドの例で説明すると、各スイッチには抵抗に直接接続させるピンがありました。これは各チャンネルの同じノードが親シートの1つのノードに対し互いに結ばれる共通のネットで図 2 のように接続されています。
この方法は、Altium Designer のマルチチャンネルデザインで一番簡単なネット接続の方法で、シートエントリとチャンネルシート内の一致するポートが接続されます。
しかし、各スイッチには固有のネットがあり(各列の一致するスイッチへ接続されます)、スイッチの他のノードはスイッチレベルで共通ではありません。列の各スイッチから個別に接続するために、Repeat 記述はシートエントリーに含まれます。図 3 は、両方のタイプのネット接続を示します。

図 3. シートシンボル内の Repeat 記述は、サブシートを複数回(この場合、4回)、作成する必要があることを示します。

シートシンボルの Designator 欄の Repeat キーワードには 3 つのパラメータ(SheetSymbolDesignator、FirstInstance、LastInstance)があります。FirstInstance パラメータは 1 以上の値(例えば、Repeat(Row,1,4))で設定する必要があることに注意してください。2 つのシートエントリー間の相違に注意してください。最初のもの(Res)は、ポートの名称と一致します。他(Col)は、一致するポートの名称へ Repeat コマンドを適用します。この構文は、バスの Col[1..4] に 4 つのネット(1 つのバスネットが 4 つのスイッチシートそれぞれへ接続)があることを意味します。
これは、図 3 のように、ワイヤ、バスを分類して 4 つのネットを 4 つの繰り返されたシートから抽出できます。その場所で、信号は必要に応じてノードを分割して、または(この場合のように)ポートを通して上階層へ自由に接続されます。 

図 4. 全ての列を 4 回作成するために Repeat 記述を使用したデザインのトップシート。

Altium Designer の接続構造に従ってマルチチャンネルプロジェクトを構築する方法を説明しました。次に名称をチャンネルとコンポーネントに割り当てる方法について説明します。 

チャンネルの指定

チャンネルとは仮想的なシートであり Altium Designer のシンクロナイザーは各チャンネルに他と区別したルームを割り当てます。しかしその前にコンパイラで、全チャンネル内の全コンポーネントに対して固有な名称を割り付けておくことが必要です。ネスト化したチャンネルを使用している場合には、これらの名称は、Project Options ダイアログの Multi-Channel タブで設定した内容(コンポーネントやルームの指定に影響を及ぼします)に従って割り当てられます。 
基本的には2種類の設定方法があります。1つ目はルームとコンポーネントの名称をフラットまたは階層的に割り当てるかです(階層は、チャンネルの階層を参照します。そのため、デザインにネストしたチャンネルが含まれている場合、これは重要です。)。2つ目はインデックスに数字またはアルファベットのサフィックスを付加するかです(両方を考慮するオプション設定もありますが、ネストしたチャンネルの名称を区別しやすくします)。
コンポーネントデシグネータに指定するフォーマットには、チャンネルとルーム名を含んでいますが、必ず必要というわけではありません。通常のデシグネータフォーマットでは、コンポーネントとチャンネルの両方のプリフィックスとサフィックスが含まれます。7 つの予約されたキーワードのうちの 2 つ($Componentと$RoomName)は、これらを自動で行います。
$Componentは、$ComponentPrefix $ComponentIndexの組み合わせになっています。例えばコンポーネントパートU3Aは、プリフィックス(U)とインデックス(3A)から成り立っています。同様に$RoomNameは、チャンネルプリフィックスとサフィックスの組み合わせで、その正式な形は選択したスタイルと、指定したデザインおよびルームにより変化します。もし、デザインがネスト化したチャンネルを含まないのであれば、階層的部分のスタイルは無関係に、数字またはアルファベットの部分が$RoomNameで示されたチャンネル表記に変化します。しかし、デザインにネスト化したチャンネルがあり、スタイルを指定する階層構造のルームを使用している場合は、$RoomNameを$ChannelPrefix・$ChannelAlpha・$ChannelIndex に置き換えることはできません。これは、Repeat 記述で使用したチャンネル名から、マルチレベルプリフィックスを構築するためです。 

図 5. チャンネルが指定されたスイッチを 1 つの図にコピー、ペーストした 16 個のスイッチ。

例えば先に解説したキーボードのプロジェクトで説明すると、Room Naming Style を Numeric Name Path に設定した場合、$RoomName の記述は Level Separator と Designator Format がコンマで区切られ、デザインをコンパイルした後の 16 個のボタンは図 5 のように記述されます。
Alpha Name Pathを選択した場合、デシグネータは RowA,PBA や RowA,PBB 等になります。Mixed Name Pathを選択していた場合なら、RowA,PB1 や RowA,PB2 等となります。しかし、もしフラット構成を選択していた場合には、Row チャンネルは参照されずデシグネータが PB1 から始まり PB16 で終わるか、PBA から始まり PBP で終了するような名称が割り当てられます(数字またはアルファベットのサフィックス)。これらは Designator Format 欄で指定したコンポーネント自体への参照を除外するための機能ではなく、各チャンネルにコンポーネントが含まれる場合にのみ実行されます。

PCB デジグネータの表示

マルチチャンネルデザインで文字数が長いデジグネータを配置することは難しいです。短い名称の割り付けオプションを選択するのと同様に、他のオプションでもオリジナル、論理的なコンポーネントデジグネータを表示するようになっています。例えば、C30_CIN1 は C30 として表示します。そのため、部品のシルクで各チャンネルを描画(分割されたチャンネルをボードへ表示)するために他の表記が必要です。 
PCB 上で論理的、物理的なデジグネータを表示するか Board Options ダイアログ (Design » Board Options) で選択できます。もし、マルチチャンネルデザインで論理的デジグネータを表示するオプションを選択した場合、PCB や、印刷、ガーバーのような生成された出力上で論理的デジグネータが表示されます。しかし、部品表を生成している時、物理的デジグネータは常に使用されます。

Parametric マルチチャンネルデザイン

あるマルチチャンネルデザインで回路を繰り返しますが、特定のコンポーネントは各チャンネルで異なる値を持つ必要があるとします。この機能はサポートされており、parametric マルチチャンネルデザインと呼ばれます。 
図 6 の様に、Parametric コンポーネントは親シートシンボルのパラメータとして値を宣言して定義します。それから、コンポーネントパラメータのシートシンボルパラメータ(チャンネル回路図上にあるターゲットのコンポーネント)を参照します。 

図 6. 親シートシンボルのパラメータとして parametric コンポーネントの値を指定してから(右の Sheet Symbol ダイアログのように)、ターゲットコンポーネントのパラメータを介してパラメータを参照(上の component ダイアログのように)。

これは、マルチチャンネル構造を定義するために Repeat 記述があるシートシンボルを使用できないことを意味することに注意してください。代わりに、各チャンネル(シートシンボルの全てが同じチャンネルの回路図シートを参照する)にシートシンボルを配置する必要があります。parametric コンポーネントの定義はこれらのシートシンボルで指定されます。 

PCB デジグネータのためのルーム

マルチチャンネルデザインは回路図時だけでなく、後の行程でも便利になります。PCB設計時の利点は、ボード外形の近くに自動で置かれたルーム内に、それぞれのチャンネルのコンポーネントが自動的に展開されます。ルームに基づいた部品配置のツールは、マルチチャンネルデザインでのレイアウト作業において手助けとなるでしょう。
Altium Designer の Situs オートルータは、ルーム内に含まれた接続を配線できる機能を備えています。また逆に、Unrouting ツールも同様に、ルーム内の配線を削除する機能を備えています。各チャンネルに対応するコンポーネントは同じChannel Offsetの値が割り当てられており、セレクトまたは編集する際には一括して実行することが可能です。
さらに特徴的な機能として、あるルームから他のルームへとフォーマットをコピーすることができることです。この機能を使えば 1 つのルームに行った変更を即座に別のルームへ反映させることができます。コピー元とコピー先のルームが同じチャンネルクラス(同じシートから複製されたことを意味します)であるならば、更新は 1 度に全ての同一クラスメンバー全体に反映できます。フォーマットをコピーする内容は、ルームのサイズや形状の変更・フットプリントの配置や配線の削除範囲まで制限を設定することができます。

更に、このようなルームにある既存の配線をどのように反映するかコントロールできます。
PCBエディタには、マルチチャンネルデザインを最大限に活用できるように多くのツールが追加されました。一例をあげるなら、ボードの反対側にルームごとオブジェクトを移動したい場合は、 Design » Rooms のサブメニューの Move コマンドで移動中に L キーを押すと、配置と配線を含むルーム全体が層を変えて移動したことが確認できるでしょう。
マルチチャンネルデザインの根本的に有利な点、それが回路設計時だけでなくボード設計時の省力化にも寄与できる点です。もう同じ作業を 32 回も繰り返して行う必要はありません。

次に行うこと

マルチチャンネル、ネストしたマルチチャンネルデザインの利点については、インストールフォルダ \Examples\Reference Designs\ 内のサンプルデザイン(以下を含む)で確認してください:

  • LedMatrixDisplay
  • Multi-Channel Mixer
  • Peak Detector
  • PortSwitcher
You are reporting an issue with the following selected text and/or image within the active document: