LPB C-FormatはLSI、パッケージ、ソケットなどのコンポーネントの外部仕様を定義するものです。ここで外部仕様とは以下に示す情報です。
- 部品の物理的形状
- 部品に対する入力および出力する信号の名前とタイプ
- 端子の物理的形状や位置、スワップ可能な端子定義などの入出力 (i/o) 仕様
- 遅延やスキューの上限などの設計上の制約
- 端子の入力インピーダンスや消費電力などの設計仕
- SPICE、IBIS、S パラメータなどのシミュレーションモデルの入出力ノードとコンポーネントの端子間の相互参照
C-Formatには多くの情報を定義することが可能ですが、それらの大半は省略可能です。最も単純なC-Formatは部品のフットプリントだけを定義したものです。今回から実例を見ながらC-Formatの最も基本的な構成を説明していきます。
なお、これから実際に存在する部品を例にしてLPB CFormtatの書式を説明しますが、例示するLPB C-Formatは一般に公開されている情報を基にJEITA SDTCが独自で作成したものです。例示されている部品の提供会社は本文章の内容を保障する
ものではありません。本文章の内容に関するご質問は JEITA SDTCまでお願いします。例示されている部品の提供元にお問い合わせることはご遠慮頂きますようお願いします。
チップコンデンサ
今回は村田製作所のチップコンデンサ(GRM188R60J226MEA0)を例にして最も簡単なC-Formatを見ていきます。
下にGRM188R60J226MEA0のC-Formatの例を示します。このC-Formatでは部品のFootPrintと、その部品のSPICEモデルおよびSパラメータを定義しています。以後、このC-Formatの詳細を見ていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<?xml version="1.0" ?> <LPB_CFORMAT version="2020"> <header design_revision="1.0" project="GRM" company="MURATA" date="Friday Nov. 22 2019"/> <global> <unit> <distance unit="mm"/> <capacitance unit="uF"/> </unit> <shape> <rectangle id="1" height="0.8" width="1.6"/> <rectangle id="2" height="0.8" width="0.375"/> </shape> <padstack_def> <padstack id="1"> <ref_shape shape_id="2" x="0" y="0" pad_layer="BOTTOM"/> </padstack> </padstack_def> </global> <module name="GRM188R60J226MEA0" shape_id="1" x="0" y="0" thickness="0.8" type="C"> <size_code imperial="0603" metric="1608"/> <socket name="pins"> <default> <port_shape padstack_id="1"/> </default> <port id="1" x="-0.6125" y="0.0"/> <port id="2" x="0.6125" y="0.0"/> </socket> <specification> <capacitance typ="22"/> </specification> <reference xmlns:spice="http://www.jeita.or.jp/LPB/spice" format="SPICE" reffile="GRM188R60J226MEA0.mod"> <connection socket_name="pins" port_id="1"> <spice:ref_port subckt="GRM188R60J226MEA0" portid="1"/> </connection> <connection socket_name="pins" port_id="2"> <spice:ref_port subckt="GRM188R60J226MEA0" portid="2"/> </connection> </reference> <reference xmlns:touchstone="http://www.jeita.or.jp/LPB/touchstone" format="TOUCHSTONE" reffile="GRM188R60J226MEA0.s2p"> <connection socket_name="pins" port_id="1"> <touchstone:ref_port portid="1"/> </connection> <connection socket_name="pins" port_id="2"> <touchstone:ref_port portid="2"/> </connection> </reference> </module> </LPB_CFORMAT> |
C-Formatの構成
C-Formatのトップ要素は<LPB_CFORMAT>です。トップ要素の下に<header>, <global>, <module>の3つの要素を配置します。<LPB_CFORMAT>要素の version属性は、LPB Formatのバージョンです。現在の最新バージョンは 2020です。
1 2 3 4 5 6 |
<?xml version="1.0" ?> <LPB_CFORMAT version="2020"> <header>要素 <global>要素 <module>要素 </LPB_CFORMAT> |
<header>要素
<header>要素にはLPB Formatファイルの管理情報を定義します。design_revisionとprojectは必須の属性です。 その他の属性はオプションです。
1 2 |
<header design_revision="1.0" project="GRM" company="MURATA" date="Friday Nov. 22 2019"/> |
project
必須属性です。プロジェクト名を記載します。任意の文字列を入力することができます。サンプルのC-Formatではコンデンサのシリーズ名(GRM)を設定しています。
design_revision
必須属性です。リビジョン番号を設定します。任意の文字列が設定できます。サンプルでは"1.0"と設定していますが、"1.0.1"でも"1.0-beta1"でも問題ありません。管理しやすいリビジョン番号を設定してください。
company
オプション属性です。C-Formatのオーナを設定します。任意の文字列が設定可能です。
date
オプション属性です。C-Formatを作成した日付を設定ます。任意の文字列が設定可能です。サンプルでは"Wednesday Dec. 19 2018"としていますが、"2018/12/19(W)"でも問題ありません。管理しやすい書式で設定してください。
<global>要素
<global>要素にはC-Formatで使用する単位系(<unit>要素)、形状(<shape>要素)およびパッドスタック(<padstack_def>要素)を定義します。<global>要素のに設定された事項の有効範囲は、それが含まれるファイルに限られます。
1 2 3 4 5 |
<global> <unit>要素 <shape>要素 <padstack_def>要素 </global> |
<unit>要素
<unit>要素にはC-Formatで使用する単位系を定義します。サンプルでは長さ・座標の単位系(distance)と容量値の単位系(capacitance)が定義されています。これ以外にもインダクタンス(inductance)や周波数(frequency)等の単位系も定義できます。C-Format内で使用される全ての数値の単位系を、ここで定義してください。
1 2 3 4 |
<unit> <distance unit="mm"/> <capacitance unit="uF"/> </unit> |
<distance>要素
unit="mm"は、このC-Format内での全ての長さ・座標を表す数値の単位はミリ・メートル(mm)であることを意味します。mm以外に以下の設定が可能です。
pm - ピコ・メートル
nm - ナノ・メートル
um - マイクロ・メートル
mm - ミリ・メートル
m - メートル
inch - インチ
mil - ミル
<capacitance>要素
同様にunit="uF"は、このC-Format内での全ての容量を表す数値の単位はマイクロ・ファラッド(uF)であることを意味します。 uF以外に以下の設定が可能です。
fF フェムト・ファラッド
pF - ピコ・ファラッド
nF - ナノ・ファラッド
uF - マイクロ・ファラッド
mF - ミリ・ファラッド
F - ファラッド
kF - キロ・ファラッド
MF - メガ・ファラッド
GF - ギガ・ファラッド
<shape>要素
<shape>要素にはC-Formatで使用されている図形を定義します。このサンプルではコンデンサ部品の外形と電極(端子)の形状 (共に矩形(rectangle)です)を定義しています。
1 2 3 4 |
<shape> <rectangle id="1" height="0.8" width="1.6"/> <rectangle id="2" height="0.8" width="0.375"/> </shape> |
<rectangle>は矩形を定義する要素です。以下の必須属性を持ちます。
id
このshapeの識別子です。識別子はユニークである必要があります。以下の例はidがユニークではないため誤った構文です。
1 2 3 4 5 |
誤り: <shape> <rectangle id="1" height="0.8" width="1.6"/> <rectangle id="1" height="0.8" width="0.375"/> </shape> |
サンプルでは整数値を使用していますが、任意の文字を使用することができます。
1 2 3 4 |
<shape> <rectangle id="rect_1" height="0.8" width="1.6"/> <rectangle id="rect_2" height="0.8" width="0.375"/> </shape> |
height
矩形の高さです。長さの単位は<unit>要素の子要素である<distance>で定義されてます。このサンプルでは<distance unit="mm"/>と定義されているので、長さの単位はミリ・メートルです。
width
矩形の幅を定義します。原点は矩形の中心点となります( 下図参照 )。
<padstack_def>要素
<padstack_def>要素ではC-Formatで使用する端子、VIA、PAD等のパッドスタックを定義します。その子要素として複数個の<padstack>要素を持つことができます。このサンプルではコンデンサ部品の電極(端子)を定義しています。GRM188R60J226MEA0は電極を2つ持ちますが、その形状は一種類だけなのでパッドスタックの定義も一つだけです。
1 2 3 4 5 |
<padstack_def> <padstack id="1"> <ref_shape shape_id="2" x="0" y="0" pad_layer="BOTTOM"/> </padstack> </padstack_def> |
<padstack>要素
複数個の図形(<shape>)を参照してつのパッドスタックを形成します。
<ref_shape>要素で参照する図形(<shape>)を定義します。このサンプルの電極(端子)は単純な矩形で表現されているので、参照する図形(<shape>)は一つだけです。
1 2 3 |
<padstack id="1"> <ref_shape shape_id="2" x="0" y="0" pad_layer="BOTTOM"/> </padstack> |
id
必須属性です。このパッドスタックの識別子です。識別子はユニークである必要があります。サンプルでは整数値を使用していますが、任意の文字を使用することもできます。
<ref_shape>要素
参照する図形と、その配置座標を定義します。
1 |
<ref_shape shape_id="2" x="0" y="0" pad_layer="BOTTOM"/> |
shape_id
必須属性です。参照するshapeの識別子を記載します。このサンプルでは識別子が2のshapeを参照しています。即ち幅 0.375mm、高さ 0.8mmの矩形を参照しています。
x y
オプション属性です。参照するshapeの原点を配置する座標です。省略した場合は(0, 0)が配置座標となります。座標の単位は<unit>要素の子要素である<distance>で定義されてます。
pad_layer
参照するshapeを配置する層(レイヤ)を定義します。部品の端子をはんだ付けで基板に接続する場合は BOTTOM を設定します。部品上面に端子を配置し、ワイヤボンディングで基板と接続する場合はTOPを設定します( 下図参照 )。サンプルは表面実装部品(SMD)なのでBOTTOMを設定します。
<module>要素
<module>要素は子要素として<size_code>要素、<socket>要素、<specification>要素および<referecen>要素を持ち、部品のFootPrintと、その部品のシミュレーションモデルが定義されたファイルとの参照関係を定義します。このサンプルではSPICEモデルおよびSパラメータ(touch stone)との参照関係を定義しています。
1 2 3 4 5 6 7 |
<module name="GRM188R60J226MEA0" shape_id="1" x="0" y="0" thickness="0.8" type="C"> <size_code>要素 <socket>要素 <specification>要素 <reference>要素 </module> |
<module>要素は以下の属性を持ちます。
name
必須属性です。モジュールの名前を定義します。
shape_id
このモジュールの外郭の形状を定義した<shape>の識別子を定義します。
サンプルでは識別子1のshapeを参照しています。即ち幅1.6mm、高さ0.8の矩形がGRM188R60J226MEA0の外郭形状です(下図参照 )。
x y
shape_idで参照するshapeの原点を配置する座標です。省略時は(0, 0)に配置されます。
thickness
部品の高さです。省略時は0となります。このサンプルでは部品の高さは0.8です(下図参照 )。
type
部品のタイプを設定します。下記のいずれかの値を設定します。省略時は OTHER(不定)となります。
LSI - LSI
PKG - パッケージ
PWB - プリント基板
C - コンデンサ
R - 抵抗
L - インダクター
OTHER - 不定
サンプルではコンデンサを表す C を設定しています。
<size_code>要素
表面実装部品(SMD)の<size_code>要素には部品のサイズコードを定義します。
1 |
<size_code imperial="0603" metric="1608"/> |
imperial
インチベースのサイズコード、いわゆるEIAのサイズコードです。
metric
メートルベースのサイズコード、いわゆるJISのサイズコードです。
<socket>要素
<socket>要素は子要素として<default>要素と<port>要素を持ち、部品の端子と、その形状(FootPrint)を定義します。socketは複数個の端子の集合です。このサンプルでは2つの端子を定義しています。
1 2 3 4 5 6 7 |
<socket name="pins"> <default> <port_shape padstack_id="1"/> </default> <port id="1" x="-0.6125" y="0.0"/> <port id="2" x="0.6125" y="0.0"/> </socket> |
name
socketの名称です。socket名はmodule内でユニークである必要があります。moduleには複数のsocketを定義することができます。socketを識別するために、個々のsocketに名前を付けます。
特殊なケースを除きsocketは一つだけ定義します。このサンプルでもsocketは一つだけ定義しています。パッケージの上下に入出力端子を持つようなPOP構造のパッケージでは、パッケージの上下に別々のsocketを定義します。
<default>要素
<default>要素にはsocketに定義されている端子の形状を定義します。
1 2 3 |
<default> <port_shape padstack_id="1"/> </default> |
<port_shape>要素で端子の形状を定義したpadstackを参照します。このpadstackが端子のデフォルトの形状となります。
padstack_id
端子形状を定義したpadstackの識別子を記載します。このサンプルでは下記の識別子1のpadstackを参照しています。
1 2 3 |
<padstack id="1"> <ref_shape shape_id="2" x="0" y="0" pad_layer="BOTTOM"/> </padstack> |
さらに、このpadstackは下記の識別子2の矩形を参照しています。
1 |
<rectangle id="2" height="0.8" width="0.375"/> |
従って端子形状は BOTTOMに配置された幅0.375mm、高さ0.8の矩形となります。
<port>要素
<port>要素で端子の座標を定義します。このサンプルでは2つの端子を定義しています。それぞれの端子の形状は<default>要素で定義されています。
1 2 |
<port id="1" x="-0.6125" y="0.0"/> <port id="2" x="0.6125" y="0.0"/> |
id
端子の識別子です。同一socket内で識別子はユニークである必要があります。このサンプルでは整数値を識別してして使用していますが任意の文字列も使えます(下の例参照)。
1 2 3 |
<port id="G8" x="2.5" y="-1.5"/> <port id="G9" x="3.5" y="-1.5"/> <port id="G10" x="4.5" y="-1.5"/> |
x y
端子の配置座標です。端子形状のpadstackの原点を、ここで指定された座標に配置します。サンプルの端子座標は (-0.6125, 0.0)と(0.6125, 0.0)となります(下図参照)。
以上、部品のFOOTPRINTの記述方法について説明しました。次回は、シミュレーションモデル(SPICEおよびSパラメータ)を参照する方法を中心に解説します。