記事-  TOPに戻る

LTspiceの一部回路の部品化、階層化によるブロック化し利便性を高める(3)ブロック化するための仕組み

 前回作成したCRフィルタのブロック化されたモジュールの仕組みを、少し詳しく確認していきます。

ブロック化された処理の手順

 右上のV1とX1の回路を使ってシミュレーションを行う手順は、次のようになります。
 シミュレーションのための回路の素子の接続状況と、素子の振る舞いを決める特性値または情報がネット・リストにまとめられます。
 回路図から、素子の接続状態と特性値をネット・リストに加えていきます。

 ブロック化されたデバイスX1は、シンボル・ファイルが格納されたフォルダ内を検索し、シンボル・ファイルと同じ名の回路図ファイルから回路図のデータを読み取り、ネット・リストを作成します。
 作成されたネット・リストは、View>SPICE Netlistで、次のように確認することができます。

  XX1 N001 BPOUT 0 HPOUT LPOUT crf1002

 XX1は、回路図のデバイスX1についての記述であることを示します。N001は、ポート番号1のINが接続されているノードがN001であること示します。続いてポート番号2に接続されているノードがBPOUT、ポート番号3がGND(0V)、ポート番号4がノードHPOUT、ポート番号5がノードLPOUTに接続されています。ブロック名としてブロックのファイル名(エクステントを除く)が表示されています。

 ノードは、

  V1 N001 0 SINE(0 1 10k) AC 1

 信号源のV1の+側はノードN001に接続され、マイナス側がGND(0V)に接続され、出力信号は1V、10kHzの正弦波、AC解析の出力は1Vと設定されています。

  * block symbol definitions

 *はコメント行で、次にブロックのシンボルの定義を示します。

  .subckt crf1002 IN BPOUT GND HPOUT LPOUT

 .subcktから.endsの間には、ブロック内の回路のネット・リストが示されます。以下.endsまではcrf1002のネット・リストになります。ブロック名crf1002に続くポート名は、ポート番号順に並んでいます。

  R1 GND HPOUT {XR1}

 R1はノードGNDとHPOUTの間に接続され、抵抗値は変数XR1となります。

  R2 HPOUT BPOUT {XR2}

 R2はノードHPOUTとBPOUTの間に接続され、抵抗値は変数XR2となります。

  C1 HPOUT IN {XC1}

 C1はノードHPOUTとINの間に接続され、容量は変数XC1となります。

  C2 GND BPOUT {XC2}

 C2はノードGNDとBPOUTの間に接続され、容量は変数XC2となります。

  R4 IN LPOUT {XR1}

 R4はノードINとLPOUTの間に接続され、抵抗値は変数XR1となります。

  C4 GND LPOUT {XC1}

 C4はノードGNDとLPOUTの間に接続され、容量は変数XC1となります。

 次の2行は、抵抗値、容量値、カットオフ周波数、フィルタを2段にした場合の2段目のインピーダンスの増加割合を決めるためのコマンドです。

  .params fo=10k H=50 XR1=1k XC1=1/(2*pi*fo*XR1)
  .param XR2=H*XR1 XC2=1/(2*pi*fo*XR2)

 次のコマンドで、ブロックの記述を終わります。

  .ends crf1002

 AC解析のためのコマンドです。

  .ac oct 100 100 1000k
  .backanno

 この.backannoは自動的に付加されるコマンドで、これによりデバイスのピンに流れる電流を表示できるようになります。

  .end

 この.endで、ネット・リストは終了します。

実行時に作成されるファイル

 LTspiceでは最初に必要となるのは、エクステントがascの回路図ファイルとLTspiceのシステム・フォルダにあるファイルです。シミュレーションを始めると、次に示すファイルが回路図ファイルと同じフォルダに作成されます。logファイルは、View>SPICE Error Logで表示される内容と同じ内容のログ・ファイルです。rawファイルはシミュレーション結果のデータを格納するファイルで、このデータでシミュレーション結果のグラフを作成します。
 netファイルは、View>SPICE Netlistを選択して得られるネット・リストと同じ内容のテキスト・ファイルです。


 
 次に、View>SPICE Netlistで表示されるネット・リストの画面をマウスの右ボタンをクリックして、ネット・リストの編集を行うことができます。

 表示されるリストからEdit Independent Netlistを選択します。次に示すように、回路図ファイル名にエクステントをcirとしたファイルとして保存することが要求されます。

 保存すると、次に示すようにLTspiceのエディタでネットリストの追加修正も行うことができるようになります。回路図がなくこのcirのエクステントのネット・リストだけでも、シミュレーションを行えます。

 上記の状態でツール・バーのRUNのアイコンをクリックすると、次に示すようにネット・リストに基づいてシミュレーションが実行され、グラフの画面が表示されます。

 回路図の画面がなくても、グラフ画面を選択してメニュー・バーの Plot Settings>Add Traceを選択し、グラフ表示する項目を選択できます。

 V(bpout)、V(hpout)、V(lpout)を選択した結果を次に示します。

 この結果は、保存されたcrfm02020.cir単独で開いても同じ結果が得られます。LTspiceでは回路図から作られたネット・リストに基づいてシミュレーションを行っています。そのため、ほかのシステムで作られたネット・リストであっても互換性のある範囲でLTspiceでもシミュレーションができます。

LTspiceでネット・リスト・ファイルを開く場合

 LTspiceでネット・リストのファイルを開く場合、次に示すように、開くファイルの種類としてNetlistsを選択するとネット・リストのファイルが表示され、選択できるようになります。


ブロックのシンボルのプロパティ

 LTspiceのHELPでは、ブロックのシンボルのアトリビュートについては何も記述しないよう指定されています。そのため何も指定しませんでしたが、コンポーネントの選択で説明が欲しいので、次に示すようにDescriptionの欄に説明を加えました。


 これにより、次に示すようにコンポーネントの選択の参考になるコメントが表示されます。

 また、ブロックのネット・リストに.subcktのコマンドは追加されていません。ブロックのシンボルを読み込んで作成した回路図ファイル、ここではcrfm02020.ascのシミュレーションを行うときに.subcktコマンドが追加されます。

デバイスをサブサーキットとして設定する

 LTspiceでは、今回示したブロックとして回路の階層化を図る方法のほかに、サードパーティのデバイスを利用できるようにするときもサブサーキットを利用します。その場合は、サブサーキットの状況を示すファイルはライブラリ・ファイルとしてライブラリのフォルダに格納されます。また、シンボル・ファイルのアトリビュートもそれぞれの項目について設定する必要があります。次回はこれらについて検討します。

(2020/5/28 V1.0)


 <神崎康宏>

連載 LTspiceの一部回路の部品化、階層化によるブロック化し利便性を高める

(1) 回路の一部を特定の機能をもったコンポーネント化してブロック化する

(2) 少し詰め込んだハイパス・フィルタ、ハイパスとローパス・フィルタ

(3) ブロック化するための仕組み

(4) 部品化するための仕組み(シンボルの自動作成)