LTspice-回路を階層化(ブロック化)する方法

当記事では、LTspiceの回路図エディタで作成した回路を階層化(ブロック化)する方法を解説します。
回路の規模が大きくなり複雑になった場合に、一部の回路を階層化(ブロック化)することで回路図の可読性を向上させることができます。
また、一度作成したブロック回路は同じ回路図内での複数利用や別の回路図での利用も可能です。
回路の階層化(ブロック化)とは?
当記事では、以下の記事で作成した「オペアンプ反転増幅回路」のうち、破線赤枠で囲んだ増幅部分の回路を階層化(ブロック化)してみます。


イメージとしては、以下のように階層化して階層上位の回路図の中に、階層下位のブロック回路が含まれる形になります。

なお、こちらで回路の階層化(ブロック化)に使用する「オペアンプ反転回路」の回路図を用意したので、すぐに回路の階層化(ブロック化)から始めたい方は以下のリンクをクリックしてダウンロードしてください。
ブロック回路の作成

「オペアンプ反転回路」の回路図(sample-circuit-lt1028.asc)を開き、赤枠以外の回路を全て削除します。

ツールバーの「Label Net」をクリックして、上記のようにラベルをそれぞれの端子に配線します。これでブロック回路の完成です。

メニューバーの「File」-「Save As」をクリックして保存します。

保存場所や名前は何でも構いませんが、当記事では「C:\Users\ユーザー名\Documents\LTspiceXVII」に「inverting-amp-block.asc」で保存しました。
シンボルの作成

「Hierachy-Open this Sheet's Symbol」をクリックすると、自動的に先程、作成したブロック回路の回路図シンボルを作成します。

「このシートのシンボルを見つけることができませんでした。回路図シンボルを自動作成しますか?」と聞かれるので、「はい」をクリックします。

このように、回路図シンボルが自動的に作成されます。

また、回路図と同じフォルダに同じ名前で保存されています。今回の場合、「C:\Users\ユーザー名\Documents\LTspiceXVII」に「inverting-amp-block.asy」で保存されています。

ただ、このままのピン配置だと配線しづらいので、ピン配置を変更します。
ピン配置の移動などの詳しい説明については、以下の記事をご覧ください。

ピンの配置が終わったら、ツールバーの「Save」で上書き保存しておきます。
ブロック回路の使い方

「オペアンプ反転回路」の回路図(sample-circuit-lt1028.asc)を開き、赤枠の回路を全て削除します。

ツールバーの「Component」をクリックします。

「inverting-amp-block.asc」と「inverting-amp-block.asy」が保存しているフォルダ(ディレクトリ)「LTspiceXVII」に変更して、「inverting-amp-block」を選択します。

上記のように、「inverting-amp-block」を配置して、各部品、ラベル、GNDにそれぞれ配線をします。

メニューバーの「File」-「Save As」をクリックして保存します。

保存場所や名前は何でも構いませんが、当記事では「C:\Users\ユーザー名\Documents\LTspiceXVII」に「sample-circuit-lt1028-block.asc」で保存しました。
以上で回路の階層化(ブロック化)は完了です。配置したブロック回路は「2倍の反転増幅器」として使用できます。
階層間のパラメータ引き渡し
これまでの作業で、回路を階層化(ブロック化)することができましたが、「2倍の反転増幅器」だとゲインが固定になっているため、他の回路で利用しづらいと思います。
そこで、階層間のパラメータ引き渡しによって、階層上位の回路で簡単にゲインが設定できるようにしてみます。

ブロック回路を右クリックして、「Navigate/Edit Schematic Block」の画面を開きます。

「Open Schematic」をクリックします。

ブロック回路の回路図が表示されるので、R2を右クリックして、抵抗の値(Resistance[Ω])を「{gain*100}」に変更します。

階層上位の回路に戻り、ブロック回路を右クリックして、「Navigate/Edit Schematic Block」の画面を開きます。
PARAMSに「gain=任意の増幅率」を入力することで、自由にブロック回路のゲインを設定することができます。例えば、「gain=2」とすると、増幅率2倍となります。

これで、階層間のパラメータ引き渡しの設定は終わったので、ブロック回路の保存をしておきます。

同様に階層上位の回路も保存しておきます。
今回、階層化(ブロック化)した回路図は以下のリンクからダウンロードできます。