LTspiceを使った回路設計手法【参考資料】:回路図シンボルの"Attribute"属性についてのまとめ
 


●シンボルのAttribute属性と、関連するファイルのValue値の参照一覧表

とりあえず、現在の環境で動作を確認したAttribute関連の設定値とその働きを一覧表にしたのがこれです。

シンボルファイル.asyと、回路図ファイル.asc、そして実行ファイル(NetList)の.subの3つで相互にどう関連しているかを調べました。

(注): たまたま、ある条件でこのように動いただけで、無数に考えられる様々な条件(デフォルトのフォルダにファイルがあるとかないとか)の
    組み合わせで、結果が変わることは十分考えられます。
    あくまで、参考として見てください。


attribute属性、その他データSymbol_name.asy (シンボル定義ファイル)Sch_name.asc (回路図定義ファイル)Sub_name.sub (SpiceNetList)
value値の書式内容の説明.ascファイル内(テキスト)での書式内容の説明書式内容の説明
PrefixXXは.Subcktを呼び出す。空欄(記入なし)の時は実行時にSubcktを呼ばずにSch_name.ascと同じフォルダ内の"Symbol_name.asc"からNetListを作成する。X通常はデフォルトのXだが、編集可能。但し、Xから変えると変えた値の正式なルールに他の書式が合致しないと不具合が発生する。-NetListでの部品識別にPrefix+InstNameの品番が作成される
SpiceModelSub_name.subValue, Value2と共に指定すると、特別扱いのシンボルになる。回路図上から属性を書き換えられるようにする場合は空白とする。-通常は空白だが、編集可能。但し他の項目を含めて書式がルールに合致しないと不具合が発生する。(Text)ここからSpiceline2までの内容が、NetListの"Part_name"部分に列記される。
ValueModel_nameNetListで呼び出す時のModelまたはSubckt名SYMATTR Value Part_nameデフォルトは"Model_name"であり、同じであれば省略される。シンボルの設定を受け継ぎ、後で編集可能。XU1 pin1 pin2 Part_nameNetListで.subまたは.modelを呼び出す名称。この名前に合致する.subcktか.modelが.libまたは.incで取り込まれていないとエラーになる。Pin配置の順番も合っていること。
Value2(Any Text)特別扱いのシンボルの時は、この値が.subを呼ぶ名前になり、Valueはシンボル上に表示されるテキストになる。SYMATTR Value2 textデフォルトはシンボルの設定を受け継ぐ。編集可能。(Text)NetListの"Part_name"の後に列記される。
Siceline(Any Text)オプションのパラメーター設定値1SYMATTR SpiceLine textデフォルトはシンボルの設定を受け継ぐ。編集可能。(Text)NetListの"Part_name"の後に列記される。
Spiceline2(Any Text)オプションのパラメーター設定値2SYMATTR SpiceLine2 textデフォルトはシンボルの設定を受け継ぐ。編集可能。(Text)NetListの"Part_name"の後に列記される。
Description(Any Text)シンボルをピックアップするときに表示される、シンボル内容の説明文。-(存在せず)-(存在せず)
ModelFileSub_name.subファイルの指定。パス省略時はlib\sub\がデフォルト。デフォルトフォルダに同名の"Model_name.sub"がある時は、ファイル指定そのものを省略可。デフォルトフォルダ内にない時は、相対パス、または絶対パスでフォルダも指定必要。- Attribute Editorから見えないが、デフォルト設定でない場合はシンボルを拾った時の設定を保持し、その後の変更は反映されない。クリアするにはシンボルごと削除必要。.lib Sub_name.subシンボル定義ファイルに指示された.subファイルを.incするコマンドが記述される。(実行する.subファイルを決定しているのはValueの"Part_name"であることに注意)
形状データLINE Normal *****
Window *****Left2など
シンボルの形を表すデータ。Prefix=Xだと、Windowの中が黄色になる。SHEET 1 *** ***
WIRE *** *** *** ***
シートの大きさ、回路図に書いた配線の座標を示すデータ。-(存在せず)
ピンの定義PIN * * left 0
PINATTR PinName **
PINATTR SpiceOrder 1
接続ピンの座標、表示位置や有無、回転の指定、Pinの名前、Pin接続の順番を定義FLAG ** ** Flag_name
IOPIN ** ** Out
ノードに付けた名称(Flag)は、NetListでノード番号の代わりに使用される。入出力指定は別の書式で記述。N** =Node
0 = GND
name=Flag_name
ノード番号は配線座標を解析して自動で振る。
シンボル名-(=このファイルの名前)SYMBOL Symbol_name ** ** R0シンボルをピックアップするときに表示されるシンボル名。デフォルトはlib\sym\内なのでここに置けばパス名は省略される。サブフォルダに入っている時は、パス名を "Subfolder_name\\Symbol_name"と書く。名前の後は、座標と方向の指定-(存在せず)
InstName-(存在せず)SYMATTR InstName U**回路図上で識別のため自動で生成される部品番号。編集可能だが重複するとエラーになる。-NetListでの部品識別にPrefix +InstNameの品番が作成される
NetList品番-(存在せず)-(存在せず)XU1, XX1など= Prefix +InstNameとなる。
ファイル名"Symbol_name"シンボルをピックアップするときに表示されるシンボル名"Sch_name"シンボルのPrefixが空白の時は、このファイル名でSubckt回路図が呼び出される。* C:...\Sch_name.asc作成元のファイル名がコメントとして1行目に入る。


・シンボルの設定で各項目をvisibleにすると、回路図上にデフォルト値が表示され、回路図で直接右クリックして書き換えられる。
 →実行時はデフォルト値よりも、回路図で書き換えた内容が優先する。

・visibleではない項目も Attribute Editorから編集できる。(出ない場合はControl+右クリックを試す)

・「特別扱いのシンボル」にすると、回路図上からは属性を編集できなくなる。

・元のシンボルを編集しても、回路図上でAttribute属性を持っている項目は反映されない。有効にするには、シンボルを削除して拾いなおす。
 →シンボルの形状など、.asc上にデータを持たない部分は、シンボルを編集すると「全部」の回路図の該当シンボルが一気に書き換わってしまう。

・ファイル名の大文字/小文字(twint.sub/TwinT.SUB)は区別されない。
 また、Subcktを定義するファイルは、正しいパスとファイル名称なら、.sub .lib .ckt .txt 等、なんでも良い。(中身が正しい.subcktまたは.modelならOK)

・回路図Sch_name.ascからシンボル作成すると、attribute欄がすべて空白のシンボル「Sch_name.asy」を同じフォルダ内に作成する。

・NetList (Sub_name.sub) からシンボル作成すると、Prefix=X, Value=Sub_name, ModelFile=Pass_name\Sub_name.sub のSub_name.asyを
 C:\Program Files\LTC\LTspiceIV\lib\sym\AutoGenerated\内に作成する。


作ったオリジナルなシンボルが動かない場合のチェックリスト

1、回路図シンボルを右クリックしてAttribute Editorを開く
  "Open Symbol"の欄に正しいシンボルのパスが表示されるか?
  Attributeの"Value"の値は正しい.subのファイル名と合致しているか
 (回路図から直接参照するシンボルの場合は、回路図へのパスが正しいか?)→フォルダ名に日本語使うと確認ミスる場合あり。
  Attribute Editorが開かない場合は、シンボルの作り方が間違っている。(LT社標準ICなど)

2、シンボル.asyファイルを開き、Control+Aで「Sumbol Attribute Editor」を開く
  Prefix="X", SpiceModel=空白 になっているか?
  ModelFileの値は正しい.subファイルの名称か?
  指定したその場所(デフォルトは「C:\ProgramFiles\LTC\LTspiceIV\lib\sub\)にそのファイルはあるか?
 (回路図から直接参照するシンボルの場合は、Attributeは空白とする)

3、該当する.subファイルを開いて確認
  .SUBCKTの書式は正しいか?(回路名称、ピン接続、最後の .endsなど)

これでもうまくいかない時は、回路図.ascの生ソース、実行ファイルの.netをよく見て、他の動く回路とどう違うかを確認。


【まとめ】
全部理解して完璧にやろうとするのはとても面倒。

とにかく動けばOKなら、面倒くさいことはやめて、全部の部品モデルを入れたテキストをALLmodel.txtと名前を付けて\lib\sub\に置き、
回路図に「.lib ALLmodel.txt」とコマンドを書けば良い。
ピン配置の合うシンボルを探して回路図に置き、"Prefix"を「X」、"Value"を登録した部品名に修正するだけで、登録した品種は全部動く。





    前の項目に戻る     次に進む       アンプ設計のTOPに戻る