[LTspice] 回路をサブサーキット化・階層化して可読性を向上する

LTspiceでは回路をサブサーキット化することで、一つのブロックとして回路をまとめる事ができます。

Matlabで言うところのサブシステム的な機能です。

これにより、回路を階層(hierarchy)化できます。

複雑な回路では、回路素子の増加に伴い可読性が低下していきます。

これをブロック化することで、可読性の向上につながります。

また、同様の機能を持った回路を複数使いまわしたい時にも便利で、再利用性に優れます。

概要

こちらの記事で作成した、PWM信号発生回路をサブサーキット化してみます。

Duty比を入力するとそのDuty比のPWM信号が生成される素子を作成します。

サブサーキット化には、回路情報が記述された.ascファイルと、素子のシンボルを記述した.asyファイルが必要です。

これらのファイルを、作成したサブサーキットを使用したい.ascファイルと同様のディレクトリに入れることで、使用することができます。

サブサーキットの作成

まず、回路を作成します。(PWMGenerator.ascとします。)

入力端子/出力端子に該当する部分はラベルを接続してください。

この際、Port Typeを入力端子ならInput、出力端子ならOutputに設定しておくと、シンボルの自動生成が出来るので便利です。

次にシンボルを作成します。

メニューからHierarchy->Open this sheet’s symbolを選択します。

すると以下のように、ファイルが見つからないから自動生成するか?と聞かれるので「はい」を選択します。

これにより、.ascファイルと同名の.asyファイルを自動生成します。

自動生成されたシンボルは、Inputに設定されたラベルを左側に、Outputに設定されたラベルを右側に配置した長方形のシンボルとなります。

特にこだわりが無ければ、これでサブサーキットの作成は終了です。

シンボルの編集

シンボルは、MoveやDragでピンの移動や、図形の変形が可能です。

さらに、図形やテキストを加えたい場合は、メニューのDrawから該当するツールを選ぶことで可能です。

またピンを追加したい場合は、メニューからEdit->Add Pin / Portで作成可能です。

この際、Labelを回路図に配置したラベルと同名にすることでその端子と接続されます。

少しきれいに整えました。

サブサーキットの使用

先ほど作成した、.ascファイルと.asyファイル(先程作成したPWMGenerator.asc及び PWMGenerator.asy)をそのサブサーキットを使用したい.ascファイル(TestCircuit.ascとします。)と同じディレクトリに配置します。

この際、サブサーキットととなる.ascファイルと.asyファイルは同名である必要があります。

作成したサブサーキットを使用するには、コンポーネント(F2)でTopDirectoryを.ascファイルが存在するディレクトリにすることで配置出来ます。

TestCircuit.ascには、次のようなテスト回路を作成しました。

出力結果は以下のようになりますここで、キャリア周波数や出力電圧などのパラメータを変更したくなった場合、サブサーキット自体を編集することで対応することも出来ますが、汎用性に欠けます。

便利な方法があり、シンボルを右クリックすることで出てくるメニューの「PARAM]にパラメータを設定することで、回路図上の.paramで設定されたパラメータを上書きすることが出来ます。

例として、もう一つ別のPWMGeneratorを配置して「PARAM」に「f = 5k」を指定してみます。(visibleにチェックを入れPARAMを表示させています。)

OutではPWMGenerator.ascで設定されたキャリア周波数f=2kが適応されていることがわかります。

Out2ではTestCircuit側で設定したf=5kが優先されていることがわかります。

このように、PARAMを使用することで汎用的な回路ブロックを作成することが出来ます。

おわり

サブサーキットを用いて回路をブロック化する方法をまとめました。

これにより回路が階層化され、可読性の向上に繋がります。

また、再利用性の向上にも繋がります。

Matlab並に作成が簡単だと、ポンポン作れて嬉しいのですが便利であることには変わりありません。

ガンガン使いましょう。

ノシ

Tweet about this on TwitterShare on FacebookShare on Google+