電子機器の小型化に伴い、一枚の基板上に複数のテクノロジが混在する場合が増えてきています。例えば、デジタル回路とアナログ回路が混在していたり、電源回路が含まれていたりします。
これらには、それぞれ異なった設計上の制約があり、個別にデザインルールを設定しなくてはなりません。そこで役立つのがAltium Designerのルームです。ルームは、デザインルールのスコープとして利用できるので、いろいろな種類の回路が混在するような場合にも、各エリアをルームで囲む事により、それぞれの制約条件を満たすデザインルールを設定する事ができます。
マルチシートの回路図では、シートごとにルームが自動生成されます。しかし、基板上でエリア指定を行う場合には通常、このルームを使用せず手作業で作成します。
ルームを作成する為のコマンドは、[デザイン] - [ルーム] メニューに用意されており、新規に作成するだけでなく分割などの編集や移動が可能です。このルームの作成と編集については、「ルームをより有効に活用する」で解説していますので、まだご覧になっていない場合にはこちらを先にご覧ください。
以前の記事、「ルームをより有効に活用する」では、ルームで囲んだエリアに [Width] ルールを設定し、ネックダウンを自動的に行う例を紹介しましたが、それ以外にもいろいろなデザインルールで利用する事ができます。
どのような基板でも、部品の実装に使えないエリアが必ずあり、この禁止体の指定にもルームが使用できます。
これを行う場合は、まず、[デザイン] - [ルーム] メニューに用意されているコマンドを使って、対象エリアをルームで囲みます。そして、このルームに対して次の設定を行います。
この設定により、ルームの内側にコンポーネントが配置されると、エラーが表示されるようになります。
基板上の電源部に背の高い部品が載っていたり、通気の為のスペースが必要であったりする場合があります。このような場合には、エリアを指定して高さ制限を行います。
高さ期限を設けるには、ルームに対してクエリでコンポーネントの高さ制限を設定します。
まず、対象エリアにルームを配置し、次の設定を行います。
これで、5mmを超える高さの部品が、ルームで定義したエリア内に配置されると、エラーになります。
ソルダーマスクのオーバーサイズ(Solder Mask Expansion)の最適値が基板の場所によって異なる場合があります。このような場合、ルームを使ってパッドやビアの [Solder Mask Expansion] の値を他のエリアと異なる値に設定する事ができます。
まず、対象エリアをルームで囲んだ後、次のように設定します。
仮に、ルーム名が [RoomDefinition_1] であった場合、[WithinRoom('RoomDefinition_1')] と入力します。なお、ここでは、[WithinRoom … ] (ルームの内側) [TouchesRoom … ] (ルームに接触している範囲)などが使用できます。
部分的に高い電圧を扱う箇所や、配線密度を上げたい箇所などがある場合、エリアごとに配線クリアランスを、異なった値に指定したい場合があります。このような場合にもルームが役立ちます。
まず、対象エリアをルームで囲み、次の設定を行います。
フットプリントの配置角度をチェックすることができます。その手順をフットプリント「R2012-0805」を例にとり紹介します。
まず、対象エリアをルームで囲みます。そして、配置したルームをダブルクリックします。表示された画面で [制約条件] の部分で対象レイヤを選び、その下を [Keep Objects Outside] に設定します。そして、次のクエリに、「(Footprint = 'R2012-0805') And (Rotation <> '0') and (Rotation <> '360') and (Rotation <> '180')」と記入します。
このクエリは、配置角度が 0度、360度、180度では無い、R2012-0805というフットプリントを指しており、これに当てはまるコンポーネントがルーム内に見つかった場合にはエラーを返します。これにより、0度(360度)と180度以外での配置はできなくなります。
ここまで、エリアごとのルール設定について紹介してきました。デザインルール機能のスコープとして利用できるだけでなく、ルームに制約条件を直接設定する事ができるため、緻密なデザインルールの設定を率良く行う事ができます。
ルーム以外に、[InRegion] というクエリを使って、エリア指定によるデザインルールの設が可能です。
[InRegion]の書式は、「InRegion (0, 0, 2000, 2000)」のようにX/Y座標を (x1, y1, x2, y2)のように記述します。また、このInRegionには、InRegionAbsolute, InRegionRelativeの2種類があり、システム原点からの座標値指定、又はユーザー原点からの座標値指定のいずれも可能です。
ルームに対する優位点は特に見当たりませんが、ルームに代わる選択肢として役立つ場面が出て来るかもしれません。
今すぐAltium Designerの無償評価版をリクエストして、世界最高のPCB設計ソリューションをお試しください!ご不明な点などございましたら、お問い合わせフォームにご入力ください。