LTSpiceをデジタル回路のシミュレーションに使う方法

LTSpiceにはデジタル回路のシミュレーションも出来るように標準コンポーネントとして論理ゲートなどが用意されている。これらのコンポーネントは理想的な素子として定義されており、現実の挙動に近づけるためにはパラメーター設定が必要だ。また、標準コンポーネントには論理ゲートとフリップフロップ位しか含まれないため、他は別途ライブラリなどで用意する必要がある。

今回は、LTSpiceでデジタル回路のシミュレーションを行う方法についてまとめた。

スポンサーリンク

デジタル部品を回路図に追加して使ってみる

例えば、LTSpiceで回路にインバータを追加する方法は以下の通り。

  • メニューバーから”Edit -> Component”を選択し、”Select Component Symbol”ダイアログを開く
  • 一覧から”Digital”フォルダを選択する
  • “inv”を選択する

このインバーターを使って、以下の簡単な回路を作ってみた。LTSpice標準のデジタル部品全般に言えることだが、入出力端子の他にcom端子がありGNDなどLowレベルの電圧に接続する必要がある。

過渡解析(.tran)を実行すると以下のような結果になる。インバータの出力波形が、Lowレベルは問題無いが、Highレベルが1Vになっており、どうもおかしい。

スポンサーリンク

デジタル部品のパラメータを設定する

デジタル部品はcom端子をLowレベルに接続する以外にも、パラメータの設定が必要だ。LT Wikiにデジタル部品へ設定可能なパラメータがまとめられている。以下に転載しておく。

パラメータ名デフォルト説明
Vhigh1Hレベル電圧
Vlow0Lレベル電圧
Trise0立ち上がり時間
TfallTrise立ち下がり時間
Tau0出力RC時定数
Cout0出力容量
Rout1出力抵抗
RhighRoutHレベルインピーダンス
RlowRoutLレベルインピーダンス

これらパラメータは、デジタル部品を右クリックして”Component Attribute Editor”を開き、SpecLine属性に設定する。SpecLineにはスペースで区切って複数パラメータを設定出来る。

例えば、上記キャプチャのようにインバータのSpecLine属性に”Vhigh=5 Trise=15n Tfall=10n”を設定し再度解析を実行した結果は以下。出力波形がだいぶ現実に近くなった。

スポンサーリンク

ライブラリを利用する

標準コンポーネントに含まれない部品はネット公開されているライブラリ等を利用する。LTSpiceのライブラリには大きく分けてコンポーネント定義のディレクティブが.modelの物と.subcktの物の2種類がある。.modelはディスクリート部品の定義に使われ、デジタルICなどそれ自体が回路である物は.subckt(=サブサーキット)で定義される。

ライブラリの所在

そこそこメジャーな部品であれば、LT Wikiサイトのディレクトリhttp://ltwiki.org/files/LTspiceIV/lib/sub/を探すとライブラリが見つかる場合も多い。ライブラリそのものはテキストファイルで、ファイル拡張子は.libだったり.subだったりまちまちだが、中身に.subcktの記述があれば問題無く使える。

例えば、CMOSアナログスイッチ4066はhttp://ltwiki.org/files/LTspiceIV/lib/sub/SwitchAna.Libの中にサブサーキット名”CD4066″として定義されている。以下の例では、このSwitchAna.Libをダウンロードして利用する。

ライブラリの読み込み

ライブラリは回路図中に.libディレクティブを配置すると参照出来るようになる。コントロールパネルの”Sym. & Lib. Search Paths”タブにライブラリのサーチパス設定しておくと絶対パスではなくファイル名だけで読み込み出来るようになる。

SwitchAna.Libを参照した場合は、SwitchAna.Libをパスの通ったディレクトリに置いたうえで、.libディレクティブを以下のように記述する。

.lib SwitchAna.lib

シンボルの自動生成

サブサーキットを回路図に配置するためには、.subcktに対応するシンボル定義(.asyファイル)が必要だ。LT Wikiで公開されているライブラリの中にはhttp://ltwiki.org/files/LTspiceIV/lib/sym/にシンボルが定義が置かれている場合もあるが、無い場合は自動生成するのが手っ取り早い。前節の手順で回路図に.libディレクティブを配置した後、.libディレクティブのテキストを右クリックすると、以下のようなダイアログが表示される。

このダイアログでOpenボタンを押すとライブラリのソースを表示出来る。このソースから使いたいサブサーキット(CD4066)の.subckt記述を探す。

ソース中.subckt記述のある行で右クリックするとメニューが表示されるので”Create Symbol”を選択すると、以下のようなサブサーキット名とピン番号が書かれただけのシンボルが自動生成される。

このままでは回路図に配置した時に何の端子か分かりづらいので信号名を記入する。初期状態では幅が狭くて文字がはみ出るので、メニューで”Edit” -> “Drag”を選択してドラッグモードにした後、ICの四角枠の左右どちらか半分を選択して横方向に伸ばすと、枠の幅を広げることが出来る。

ピンやラベルもドラッグモードで好きな位置に移動出来る。コンポーネントのソースで確認しながら信号名を書き込みつつ、配線しやすいようにピンやラベルの位置を変更したシンボルは以下。これを回路図に配置して使うことが出来るようになる。

まとめ

今回はLTSpiceにデジタルICの外部ライブラリをコンポーネントとして追加する方法を紹介した。この方法を使えばLTSpice上に様々なデジタル回路を組む事が出来るのでより幅広い使い方が出来そうだ。

また今回紹介した方法は、ロジックICに限らず、ネットに公開されているSPICEライブラリ全般をLTSpice上で活用する方法としても応用可能だろう。LTSpiceは実物の回路を組まずにシミュレーションで回路の動作確認が出来る非常に強力なツール。ネット上の資産も活用しつつ、便利に使っていきたいものだ。

コメント

タイトルとURLをコピーしました