* 6 REGISTER DETAILED DESCRIPTIONS FOR MAGNETOMETER
5.2.4 ハードウェア情報入力用 DSL
5.2.4.3 回路図 DSL
回路図
DSL
は,ハードウェア部品とその電気的な結線情報を入力するものであ る.回路図は多くの回路図エディタでサポートされているネットリストエクスポー ト機能を利用し,ネットリストをスクリプトを使いDSL
にテキスト変換し読み 込む.HwCircuitDiagram:
component
net { HwWire }
,
} HwWire:
component:
Name
HwPackagePin:
Name : HwWire
{
component Name HwPackagePin ,
HwWire
と して 定義された 要素の参照6
図
5.16:
回路図DSL
の定義図
5.16
に回路図DSL
の定義を示す.HwCircuitDiagram
の定義では,前半のnet
から}
までが結線の定義,後半のComponent
のがハードウェア部品の定義である.結線の定義では指示詞
net
に続き大カッコで囲んだ中に,HwWire
で結線名をカ ンマ区切りで列挙する.一方ハードウェア部品である
component
では,指示詞component
に続きハード ウェア部品名の記述し,大カッコ内にピン情報と結線情報を記述する.なお結線 情報は,上記の結線で定義した要素の参照となっており,DSL
記述時には,予め 結線の定義にて結線名を列挙しておくことで,参照することができる.回路図DSL
T
ネット リス ト 回路図
( 回路図エディタ)
Export 変換
Rubyによる テ キスト変換 プ ログ ラム
Net Part Pad Pin Sheet GND ATMEGA328 P$22 GND2 1
ATMEGA328 P$8 GND 1 KXP84 P$1 GND 1 N$2 ATMEGA328 P$28 PC5 1
KXP84 P$12 SCL 1 N$4 ATMEGA328 P$27 PC4 1
KXP84 P$11 SDA 1 VDD ATMEGA328 P$7 VCC 1
KXP84 P$2 VDD 1
図
5.17:
回路図DSL
の入力例図
5.17
に入力例を示す.回路図エディタから出力されたネットリストは,結線 情報を表形式で表したもので,DSL
で想定している表記法とは異なる.しかしな がら,情報量としてはほぼ同等であるため,ネットリストからDSL
へのテキスト 変換を行うスクルプトを作成した.回路図DSL
T
回路図モデル
<<Component>>
Atmega328
<<HwWire>>
GND <<HwWire>>
N1
<< HwPackagePin >>
(Pin : Net) P27 : N1
<<Component>>
KXP84
<<HwPackagePin>>
(Pin : Net) P11: N1
<<HwComponent>>
KXP84
<<HwPackagePin>>
P11
<< HwPackagePin >>
P27
<<HwComponent>>
Atmega328
・ ・・
1
1
2 2 3
回路図DSLのASTモ デル(抜粋)
・ ・・
変換
( 回路図DSL AST 回路図モデル)
①Componentを
HwComponentに変換.
②HwPackagePinを ハードウェ アモデル の
HwPackagePinに変換.
③netが同じ要素 同士を接続
Xtextによる 自動変換 6
図
5.18:
回路図DSL
から回路図モデルへの変換図
5.18
に回路図モデルへの変換を示す.5.2.5 ハードウェアモデルの結合
ハードウェ ア モ デル ハードウェ ア 選択モデル
From ハードウェ アフィー チャ モ デル ハードウェ ア部品モ デル
( MCU) ハードウェ ア部品モ デル
( デバイス)
回路図モデル ブ ロッ ク図 モ デル
Process 選択された ハードウェア フ ィー チャに関連付 けたハー
ド ウェア部 品モ デルを抽出
ブ ロッ ク図 のコ ンポーネント 名とハ ードウェア部 品モデル
を 名前でマッチングし,
7
図