今回はIEEE2401-2019で新たにCFormatで追加された3次元データファイルを参照する機能について説明します。題材として前回・前々回で使用したDDR3を使用します。
3次元データの参照
IEEE2401-2019でC-Formatに部品の3次元データ(STEP, SAT, IGES)を参照する機能が追加されました。ここでは 下図に示すDDR3-example_stepを参照する例を示します。
3次元データファイルは <reference>で参照します。下に<reference>の例を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<reference xmlns:step="http://www.jeita.or.jp/LPB/step" format="STEP" reffile="DDR3-example.step" > <affine_transformation a11="1.0" a12="0.0" a13="0.0" a14="0.0" a21="0.0" a22="1.0" a23="0.0" a24="0.0" a31="0.0" a32="0.0" a33="1.0" a34="0.3" /> <material name="epoxyresin" ref_rule_name="PackageRule"> <step:ref_product name="MOLD"/> </material> <material name="sillicon" ref_rule_name="PackageRule"> <step:ref_product name="DIE"/> </material> <heat_source typ="0.5"> <step:ref_product name="DIE"/> </heat_source> ....... </reference> |
xmlns/format
参照する3次元データファイルのフォーマットにより xmlns と format は以下のようになります。
STEPフォーマット
xmlns:step="http://www.jeita.or.jp/LPB/step"
format="STEP"
STAフォーマット
xmlns:sat="http://www.jeita.or.jp/LPB/sat"
format="SAT"
IGESフォーマット
xmlns:iges="http://www.jeita.or.jp/LPB/iges"
format="IGES"
reffile
参照する3Dデータのモデルのファイル名です。
アフィン変換
多くの場合、3次元データファイルで定義されている図形の原点とC-Formatでの原点は一致していません。本稿の例では3次元データの原点はパッケージ下面の中心にあります。この原点をC-Formatが配置された座標に一致させると、パッケージのBALLは基板にめり込んだ形になります。これを防ぐためには3次元データの原点を半田ボールの高さ分だkkkkkkkけ上方に移動させる必要があります。CFormatではアファイン変換行列を使って原点座標を一致させます。
図形を移動・回転させたり拡大・縮小させたりする変換をアファイン変換と呼びますアファイン変換行列とは下に示す行列式で、図形の移動・回転・拡大・縮小を行います。ここで x y z は図形のオリジナル座標、x' y' z' は変換後の座標です。
\[
\begin{bmatrix}
x' \\
y' \\
z' \\
1
\end{bmatrix}
=
\begin{bmatrix}
a_{11} & a_{12} & a_{13} & a_{14} \\
a_{21} & a_{22} & a_{23} & a_{24} \\
a_{31} & a_{32} & a_{33} & a_{34} \\
0 & 0 & 0 & 1
\end{bmatrix}
\times
\begin{bmatrix}
x \\
y \\
z \\
1
\end{bmatrix}
\]
下式のアフィン変換行列は原点座標をZ方向に0.3mm(半田ボール)だけシフトさせるものです。この行列式で3次元データの座標を変換させて配置するとBALL下面が基板表面と一致します。
\[
\begin{bmatrix}
x' \\
y' \\
z' \\
1
\end{bmatrix}
=
\begin{bmatrix}
1.0 & 0.0 & 0.0 & 0.0 \\
0.0 & 1.0 & 0.0 & 0.0 \\
0.0 & 0.0 & 1.0 & 0.3 \\
0.0 & 0.0 & 0.0 & 1.0
\end{bmatrix}
\times
\begin{bmatrix}
x \\
y \\
z \\
1
\end{bmatrix}
=
\begin{bmatrix}
x \\
y \\
z + 0.3\\
1
\end{bmatrix}
\]
下にCFormatにアファイン変換行列を定義する例を示します。<affine_transformation>でアファイン変換式の要素(a11 ~a34 )を記載します。下の例は、Z方向に座標を0.3mm移動させる例です。
1 2 3 4 5 |
<affine_transformation a11="1.0" a12="0.0" a13="0.0" a14="0.0" a21="0.0" a22="1.0" a23="0.0" a24="0.0" a31="0.0" a32="0.0" a33="1.0" a34="0.3" /> |
素材の定義
STEPやIGESのような3次元データフォーマットは物体の形状は定義できますが、個々の物体の素材を定義することはできません。C-Formatは<material>要素で3次元データに含まれる物体(object)の素材を定義することができます。
下に、STEPデータフォーマットで定義されている物体の素材を定義する例を示します。<material>要素の name で素材名を定義します。ref_rule_name はその素材が定義されているルール名で、LPB R-Formatの<Physicaldesign>で定義されています。ここでは<Physicaldesign>の詳細は省略しますが、誘電率や比熱等の物性情報が定義されています。
<step:ref_product>要素の name で<material>で定義された素材を使用しているSTEPデータフォーマットの物体を定義します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<material name="sillicon" ref_rule_name="PackageRule"> <step:ref_product name="DIE"/> </material> <material name="epoxyresin" ref_rule_name="PackageRule"> <step:ref_product name="MOLD"> </material> <material name="solder" ref_rule_name="PackageRule"> <step:ref_product name="BGA_B7"/> <step:ref_product name="BGA_B9"/> <step:ref_product name="BGA_N9"/> <step:ref_product name="BGA_M1"/> ..... </material> |
上記サンプルでは、DIEの素材をsillicon、MOLDの素材をepoxyresion、BALLの素材をsolderと定義しています。
熱源の定義
<head_source>要素を使って3次元データ中の物体(object)に熱源を設定することができます。下記にその例を示します。この例では3次元データ中のDIEオブジェクトに0.5Wの熱源を設定しています。
1 2 3 |
<heat_source typ = "0.5" <sstep:ref_product name="DIE"/> </heat_source> |
以上、DDR3を題材にIEEE2401-2019で新たに追加された3次元データファイルを参照する機能について説明しました。IEEE2401-2019では、そのほか多くの機能が追加されています。詳細は下記URLからJEITA版仕様書をご参照ください。
今回でLPB CFormatを題材にした連載は終了します。しばらくお休みを頂いてLPB GFormatの紹介記事の連載予定です。尚、LPB Formatに関するお問い合わせは下記フォームからお願いします。