• ベストアンサー

LTSPICEのMOSモデル

LTSPICEの使い方について質問があります。 現在シミュレーションで使っているMOSのモデルが あるのですが、PMOSが通常の4端子ではなく、5端子(SUB含む)で 記述されており、さらにサブサーキット(X)となっています。 LTSPICEでトランジスタのサブサーキットを用意して、 モデル名を入れればそのトランジスタを使うことはできますが、 「M=xxx」といったように、並列に置くことができずに困っています。 マニュアルやネットで調べてみましたが、方法がわかりませんでした。 どなたかご存知の方がいらっしゃいましたら教えていただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • inara1
  • ベストアンサー率78% (652/834)
回答No.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 というもので、中はいじってません。もし、新規に記号を作ってもいいのなら作り方を紹介します。

pony666
質問者

お礼

なるほど! わざわざモデルまで作って試していただきありがとうございました。 確かに言われてみると、MOSのシンボル(asy)は./lib/symの中にある pmos4をコピーして使っていました。 新規でシンボルを作る方法はわかるので、試してみようと思います。 ただ、すでに帰宅してしまったため、試すのは月曜になってしまいます。 おそらくこれで解決できると思いますので、ここで一旦閉めさせていただきます。 たびたびのご回答誠にありがとうございました。感謝いたします。

その他の回答 (4)

  • inara1
  • ベストアンサー率78% (652/834)
回答No.4

pch_mos ではMの値は利用されてないみたいです。pch_mos_main の中身は添付できますか?

pony666
質問者

補足

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

  • inara1
  • ベストアンサー率78% (652/834)
回答No.3

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

pony666
質問者

補足

ご回答ありがとうございます。 値は変えてありますが、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

  • inara1
  • ベストアンサー率78% (652/834)
回答No.2

ネットリストでパラメータを渡すようにしているんですね。でしたら簡単です。ネットリスト   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 の数値をクリックするとそこで書き換えられます。ゲート長などもこの方法で変更できます。

pony666
質問者

補足

「ネットリストでパラメータ渡し」というのが良く分かりませんが、 シンボルを右クリックしたときの  【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内ではどのような扱いになるのかがよく分かりません。 ※ネットリストの中身については分かっています。

  • inara1
  • ベストアンサー率78% (652/834)
回答No.1

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

pony666
質問者

お礼

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

pony666
質問者

補足

ご回答ありがとうございます。 >サブサーキットのネットリストに受け渡しの記述を付け足す必要があります。 これについてどのような記述が必要なのでしょうか。 また、以下に補足情報を記載します。 【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 以上、よろしくお願いします。

関連するQ&A