この人頭いいなと思ったエピソード

LTSPICEの使い方について質問があります。

現在シミュレーションで使っているMOSのモデルが
あるのですが、PMOSが通常の4端子ではなく、5端子(SUB含む)で
記述されており、さらにサブサーキット(X)となっています。

LTSPICEでトランジスタのサブサーキットを用意して、
モデル名を入れればそのトランジスタを使うことはできますが、
「M=xxx」といったように、並列に置くことができずに困っています。

マニュアルやネットで調べてみましたが、方法がわかりませんでした。
どなたかご存知の方がいらっしゃいましたら教えていただけないでしょうか。

A 回答 (5件)

こちらで、添付図のような5端子のサブサーキット(4端子pmosとダイオードからなる)を作ってみたらうまく行きました。

m、length、width を変えると特性が変わりました。サブサーキットのネットリストは以下のようになっています。
* C:\Program Files\LTC\LTspiceIV\Draft3.asc
XMP1 0 N002 N001 N001 N001 pch_mos params: m=100 width=1u length=1u
Vdd N001 0 10V
Vsg N001 N002 0V

* block symbol definitions
.subckt pch_mos d g s b sub
M1 d g s b PMOS l={length} w={width} m={m}
D1 sub b D
.ends pch_mos

そちらのサブサーキットの記号は、既存のものを流用しているのだと思います(右クリックでComponent Attribute Editerと出るので)が、こちらで新規に作った記号だと、右クリックすると、Naviate/Edit Schematic Block という名前のウィンドウが出てレイアウトも違います。なぜMの値が渡されないのか分かりませんが、添付図のように新規に記号を作ればうまくいくと思います。こちらで使った pmos のSPICEモデルはシミュレータの sym フォルダにもともと入っていた pmos4 というもので、中はいじってません。もし、新規に記号を作ってもいいのなら作り方を紹介します。
「LTSPICEのMOSモデル」の回答画像5
    • good
    • 0
この回答へのお礼

なるほど!
わざわざモデルまで作って試していただきありがとうございました。

確かに言われてみると、MOSのシンボル(asy)は./lib/symの中にある
pmos4をコピーして使っていました。
新規でシンボルを作る方法はわかるので、試してみようと思います。

ただ、すでに帰宅してしまったため、試すのは月曜になってしまいます。
おそらくこれで解決できると思いますので、ここで一旦閉めさせていただきます。


たびたびのご回答誠にありがとうございました。感謝いたします。

お礼日時:2011/08/05 18:27

pch_mos ではMの値は利用されてないみたいです。

pch_mos_main の中身は添付できますか?

この回答への補足

pch_mos_mainの中身は公開できませんが、
一般的なMOSのモデルです。この中にはtoxなどの基本的なパラメータが記載されています。
この中にはMについての記載はありません。

補足日時:2011/08/05 16:06
    • good
    • 0

パラメータが渡っていないのですかね。


サブサーキット MP1 の中身を添付できますか?ファイルの場所はLTSpiceのあるフォルダの\lib\subフォルダにあると思います。.SUBCKT MP1 で始まる部分です。

この回答への補足

ご回答ありがとうございます。

値は変えてありますが、MOSと保護素子がサブサーキット化されており、
この中の「pch_mos_main」に並列の個数を渡したいです。

.subckt pch_mos d g s b sub
D1 sub b sub_d area='width*length'
MP d g s b pch_mos_main w=width l=length
.ends pch_mos

補足日時:2011/08/05 15:43
    • good
    • 0

ネットリストでパラメータを渡すようにしているんですね。

でしたら簡単です。ネットリスト
  XMP1 VDD N008 VDD VDD 0 pch_mos length=1u width=1u M=10
の意味は分かりますか。MP1というサブサーキットの node0 が電源、node1 がN008という回路図上のノード、node2 と 3 が電源、node4がGNDに接続されていて、Spiceモデル pch_mos にパラメータ(ゲート長1um、ゲート幅1um、並列数10)を引き渡すという意味です。このパラメータを書き換えれば並列数を変えられます。

具体的には、サブサーキットを右クリックして出てきた表の SpiceLine の一番右側の Vis. と書かれた部分(空欄)を右クリックすると×印に変わります。変わったらOKをクリックすると、回路図上のM=10 と出てきます(ゲート長などもこの方法で表示されます)。シミュレーションするときに M=10 の部分を右クリックして、パラメータが書かれた欄の数値を書き換えるとMの値を変更できます。

回路図上にパラメータを表示させたくないときには、Vis.欄を×にしないで(×を右クリックすると消える)、サブサーキットを右クリックして出てきた表の SpiceLine の数値をクリックするとそこで書き換えられます。ゲート長などもこの方法で変更できます。

この回答への補足

「ネットリストでパラメータ渡し」というのが良く分かりませんが、
シンボルを右クリックしたときの
 【Component Attribute Editor】
  Prefix:X
  InstName:MP1
  SpiceModel:pch_mos
  Value:length=1u
  Value2:width=1u
  SpiceLine:M=10
のSpiceLineでM=10とした時に並列数を変えてシミュレーションをしたいと思っています。
ただし、現状ではこのM=の数字を変更してもシミュレーション結果は変わってくれません。

上記の設定を行ったうえでネットリストを見てみると、
  XMP1 VDD N008 VDD VDD 0 pch_mos length=1u width=1u M=10
となっていますが、このM=10が「Component Attribute Editor」のValueに書かれたのかSpiceLineに書かれたのか区別は、LTSPICE内ではどのような扱いになるのかがよく分かりません。
※ネットリストの中身については分かっています。

補足日時:2011/08/05 14:35
    • good
    • 0

そのサブサーキットの記号を右クリックして出てきた表の中の SpiceLine の右側に何か書いてありますか?その欄に、例えば、そこに M=5 などと書いてサブサーキットにパラメータを渡すことができます。

ただし、サブサーキットのネットリストに受け渡しの記述を付け足す必要があります。メニューの View → Spice Netlist を選んだときの文章を添付できますか?また、サブサーキットの記号を右クリックして出てきた表の中の Spice Model の右側と、Value の右側の欄に何が書いてありますか?

この回答への補足

ご回答ありがとうございます。

>サブサーキットのネットリストに受け渡しの記述を付け足す必要があります。
これについてどのような記述が必要なのでしょうか。

また、以下に補足情報を記載します。

【Component Attribute Editor】
Prefix:X
InstName:MP1
SpiceModel:pch_mos
Value:length=1u
Value2:width=1u
SpiceLine:M=10

【Netlist】
XMP1 VDD N008 VDD VDD 0 pch_mos length=50u width=1500u M=10

以上、よろしくお願いします。

補足日時:2011/08/05 12:39
    • good
    • 0
この回答へのお礼

上記ネットリストが間違っていました。
正しくは
XMP1 VDD N008 VDD VDD 0 pch_mos length=1u width=1u M=10

です。よろしくお願いします。

お礼日時:2011/08/05 12:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報