標準 CMOS ロジックファミリーのトランジスターモデルが NXP 社から入手でき
ます。 このうち 74HCU04, 74HC4066 など、アナログ的な機能を持った素子を特に重視して
取り上げます。 74HC/HCT だけでなく、74LV 等にも応用できます。
NXP
標準ロジック SPICE Models HC(T)
LV
● ダウンロードしたファイルのうち hc_tmomi.cir が標準スピードのライブラリー
で、hct.cir がそのテスト回路です。 Hct.cir の注釈にある通り、内部
機能 (論理演算や FF 機能) はモデル化されていませんし、
伝播遅延もデータシート記載の値とは異なります。 但しインバーター・バッファー・
アナログ SW については内部機能追加の必要はありません。
・ モデルライブラリーは3段階のトップダウン構造になっています。
あえて逆順に見ていくと、第1段階
は .model を使って MOSFET の MHCNEN, MHCPEN を定義します。 実際の使用時には
ドレインやソースの幅・長さ・面積・周囲長を指定します。 L, W はチャネルの長さと幅 (m)、AD, AS
はドレインとソースの拡散領域の面積 (m^2)、
PD, PS はドレインとソース接合の周囲長 (m) です。
.Model MHCNEN NMOS ...
.Model MHCPEN PMOS ...
・ 第2段階の素材です。 類似名で "T" がついているのは HCT 用です。
.SUBCKT INP0N 入力保護回路
.SUBCKT INP1N, INP1TN 入力保護回路+インバーター
.SUBCKT INP2N, INP2TN 同上、インバーターが大型
.SUBCKT SMT1N, SMTTL1N シュミットトリガー入力段
.SUBCKT INVN インバーター
.SUBCKT NANDN 内部使用 NAND、HC138 で使う
.SUBCKT LLCN レベルコンバーター
.SUBCKT SWITCH1N アナログスイッチ
.SUBCKT SWITCH2N 同上、Vee なし
.SUBCKT SWITCH3 HC4316 で使う
.SUBCKT BUSOUTPN 3-ステート (TSL) 出力段
.SUBCKT OUTUN 出力バッファー (インバーター)
.SUBCKT OUTPN OUTUN より小型
.SUBCKT INV4N INVN よりずっと小型
・ 第3段階です。 前項の素材を利用し、パッケージのリードインダクタンスや浮遊容量も
ついています。(HCT 用は省略)
.SUBCKT INV0 INP0N, OUTUN を使用 (HCU04)
.SUBCKT INV1 INP1N, INVN, OUTPN
.SUBCKT INV2 INP2N, INVN, OUTPN
.SUBCKT INVSMT SMT1N, INVN, OUTPN
.SUBCKT NINV1 INP1N, INVN, INVN, OUTPN
.SUBCKT NANDINV INP2N, INP2N, NANDN, OUTPN
.SUBCKT SWI1 INP2N, LLCN, SWITCH1N
.SUBCKT SWI2 INP2N, INV4N, SWITCH2N
.SUBCKT SWI3 INP1N, LLCN, SWITCH3N
.SUBCKT NINV3 INP2N, INVN, BUSOUTPN
・ おなじみの 74HCxx と前項 INV0, INV1, ・・ の関連付けは hct.cir に書いてあります。
HC00 INV2
HCT00 INV2T
HC04 INV1
HCT04 INV1T
HCU04 INV0
HC14 INVSMT
HCT14 INVSMTT
・・・
HC4051 SWI1
HC4052 SWI1
HC4053 SWI1
HC4066 SWI2
HC4316 SWI3
・・・
● まずは INV0 (HCU04), INV1, INV2 を使ってみます。 負荷が軽いことにご注意下さい。(INV012test.asc)
伝播遅延は INV0 < INV2 < INV1 の順です。 INP2N のインバーターのほうが大面積
なので、INP1N より高速である効果が現れています。
INV012test.asc をご覧下さい。 ファイル類は sltm.zip
にまとめてあります。 展開した後、フォルダー "hier" と同列な位置に NXP のライブラリーフォルダー "hc"
を移動あるいはコピーすると、シミュレーションが実行できます。
● 次は SWI2 (HC4066) です。 SWI2test.asc を見てください。
X1 ジャンパーをつなぎ替え、.dc を生かしてスイッチ ON 抵抗をシミュレーション測定しました。
"特異点" があるのですが、なんとかそつなくグラフ化してくれています。
● このやり方でどんどん利用はできるのですが、さて INP0N, INP1N, INP2N ・・・ の中身は
どうなっているのか? 人間向けには記述されていないので、回路図に書き直してみま
した。 hier/*.asc をご覧下さい。(一部)
回路図で書き表して View → SPICE Netlist で表示させた結果と、.SUBCKT INP0N 等
の記述の重要部分が一致するなら正しいと言えます。 とは言うものの、やはり実際に試さないと
確実ではありません。 hier/test_SWI2/test_SWI2.asc をシミュレートしてみて下さい。 同じ
結果が得られます。
● SWI1 をテストしました。(SWI1test.asc)
この回路を .tran 解析をすると、9μs 付近でハングしてしまいます。 これは未解決です。
その後 .SUBCKT SWI1 中 の L1 .. L4 を 1/20 にし、負荷抵抗は 100kΩ、負荷容量なしにすると
一応 .tran 解析ができることを発見しました。(hier/test_SWI1/test_SWI1.asc 参照)
なお、SWI3 をテストすると hc_tnomi.cir 中の名前の付け間違いでエラーになり
ます。ヤツラもけっこういいかげんだな。
● 74HC14 の入力回路に使っている SMT1N を調べました。 74HC14 の内部等価回路はあまり
見かけた記憶がないので、.subckt を階層化回路に書き直しました。(hier/test_SMT1N/SMT1N.asc)
上記のテスト回路です。(hier/test_SMT1N/test_SMT1N.asc)
横軸を V(3) に変えるとヒステリシス特性が見やすくなります。
実際の HC14 には、この後に INVN, OUTPN が継続接続されています。
もどる
|