計算機工学特論B 計算機工学特論B SPICE実習 Part I 講師 弓仲 康史 (群馬大学大学院 工学研究科電気電子工学専攻 准教授) 1 計算機工学特論B 1. SPICEシミュレーションの解析の基礎 AC解析 過渡(Transient)解析 周波数 電圧・ 電流値等 電圧値等 ゲイン・ 位相等 電圧・ 電流値等 DC解析 時間 直流電圧/電流を変化させ、 それに対応する出力を解析 周波数を変化させ、 それに対応する出力を解析 時間とともに回路の信号が 変化する様子を解析 電源、カーブトレーサ ネットワークアナライザ 発振器、オシロスコープ 2 計算機工学特論B 2. 実習内容 [1] RCフィルタの解析(周波数特性解析、過渡解析) 1. 0V 0 0. 5V フィルタ動作の視覚的理解、 SPICE解析の基礎の習得 0V - 50 - 0. 5V - 100 10Hz VDB( R1: 2) 30Hz VP( C1: 2) 100Hz 300Hz 1. 0KHz 3. 0KHz 10KHz 30KHz 100KHz - 1. 0V 0s V( V1: +) 1ms V( R1: 2) 2ms 3ms 4ms 5ms 6ms 7ms 8ms 9ms 10ms Ti me Fr equency [2] SPICEの高度な活用(パラメトリック解析、モンテカルロ解析) 20 P e r c e n 10 t -0 SEL>> 0 9. 6K - 20 10. 0K n s ampl es = 100 n di vi s i ons = 10 10. 4K mean s i gma 10. 8K = 11217. 2 = 644. 851 11. 2K 11. 6K LPBW( v( out ) , 3) mi ni mum 10t h %i l e = 10078. 1 = 10396. 3 12. 0K medi an 90t h %i l e = 11080. 3 = 12154. 8 12. 4K maxi mum 12. 8K 13. 2K = 12682. 5 0 - 40 回路シミュレーションの 効率化手法の習得 - 4. 0 - 60 10Hz VDB( R1: 2) 100Hz VP( C1: 2) 1. 0KHz 10KHz 100KHz 1. 0MHz Fr equency - 8. 0 10Hz . . . VDB( OUT) 100Hz 1. 0KHz 10KHz 100KHz 1. 0MHz Fr equency [3] PLL回路を用いた負帰還回路の安定性の解析 100 負帰還回路の安定性の理解、 素子モデル活用法の習得 0 - 100 - 200 10mHz VDB( C3: 2) VP( C3: 2) 1. 0Hz 100Hz 10KHz Fr e que nc y 3 計算機工学特論B [実習1-1] RCフィルタの解析(周波数特性解析) フィルタ設計に必要な周波数特性のシミュレーション法の習得 ① Schematic の起動 デスクトップ上のアイコンを ダブルクリック 作業画面 ※注意 参考ファイル保存先 : C:¥analogk2010 ファイル保存の際、ファイル名・フォルダ名等に日本語を使用しないこと. マイドキュメント、デスクトップも不可。C:¥analogk2010に保存。 4 計算機工学特論B ② 素子(R、C)、信号源、Gndの呼び出し、配置 (1) Get New Part 配置された RとC (3) 左クリックで配置 右クリックEndで終了 (2) 素子(R、C)を選択 (4) Cを配置後、Cを選択 状態(赤くハイライト)にし、 [Ctrl-R]で回転。 (6) AGNDを選択、配置 (5) VACを選択,配置 パーツの向き、パラメータ値は 配置後に編集。 5 計算機工学特論B ③ パーツ間の配線 (1) Draw Wireを選択し パーツ間を接続 (2) 素子のパラメータをダブルクリック F フェムト P ピコ N ナノ U マイクロ M ミリ K キロ MEG メガ G ギガ ※ ACMAG=1Vの意味: AC解析時に入力を1V (0dB)とし、周波数を変化。 GAIN=出力/入力=出力 ACMAG=1V R=16k C=0.01u ④ 素子値の変更 ACMAG=1V, R=16k, C=0.01u, 6 計算機工学特論B ⑤ AC解析の設定 (1) Setup Analysis (3) AC Sweepをクリック (2) AC解析にチェック (4) 解析条件の設定 Pts 101 Start: 10Hz End: 100kHz Decade ※10Hz~100KHzまで logスケールで10倍毎に 101点ずつ変化 7 計算機工学特論B ⑥ マーカの設定 : オシロスコープ のプローブ(観測点)に対応 ゲイン:vdb (デジベル) ゲインの定義 20log(出力振幅/入力振幅) 位相:vphase(度) ⑦ 回路図の保存 C:¥analogk2010に移動 「RCfilter」として保存 (1) 「Markers」 →「Mark Advanced」 を選択 ⑧ SPICE起動! ゲイン、位相 マーカの設定 (2) vdb選択、出力に配置、 vphaseも同様に 8 計算機工学特論B ⑨ エラーがなければProbeが起動し、マーカの波形が表示される (2) カーソルで詳細な 数値を測定可能 (3) サーチコマンド SLE(y): Y軸上の(y)の位置に移動 SXV(x):X軸上の(x)の位置に移動 (1) 「Plot」→「Axis Settings」 で軸の表示範囲を変更可能 カーソルを表示させる 波形の切り替え 9 計算機工学特論B 課題1:周波数1kHzでのゲインと位相の値を測定せよ 0 - 50 カットオフ周波数 fc= Hz - 100 10Hz VDB( R1: 2) 30Hz VP( C1: 2) ゲイン : 100Hz 300Hz 1. 0KHz 3. 0KHz 10KHz 30KHz 100KHz Fr equency (dB) 位相 : (deg) 発展課題: RとCを入れ替えた回路の 周波数特性を確認せよ。 10 計算機工学特論B Tips: 解析結果波形をパワーポイント等に見やすく表示する技 グラフの線を太く表示 (2) Width で線幅を選択 (1) グラフ上で右クリック 「Properties」を選択 0 グラフイメージの取得 - 50 表示通り (2) PPTなどに ペースト - 100 10Hz VDB( R1: 2) 30Hz VP( C1: 2) 100Hz 300Hz 1. 0KHz 3. 0KHz 10KHz 30KHz 100KHz Fr equency 0 - 50 (1) 「Window」→ 「Copy to Clipboard」 白黒反転 - 100 10Hz VDB( R1: 2) 30Hz VP( C1: 2) 100Hz 300Hz 1. 0KHz 3. 0KHz 10KHz 30KHz 100KHz Fr equency 11 計算機工学特論B [実習1-2] RCフィルタの解析(過渡解析) ① 過渡解析の設定 (2) VACをVSIN に変更 過渡解析の習得とフィルタの 入出力波形の視覚的理解 (1) dB、Phase マーカを消去 入力に正弦波を入力し、 出力応答波形を解析 (4) 電圧マーカを 入力と出力に (3) VSINの パラメータを設定 VOFF=0 VAMPL=1 FREQ=1kHz ダブル クリック 12 計算機工学特論B (6) 解析条件の設定 Final: 10m チェックoff ※0~10mSまで解析 チェックon (5) 解析モード「Transient」の設定 (7) 回路保存[RCTran]後、SPICE起動 1. 0V 0. 5V 0V - 0. 5V - 1. 0V 0s V( V1: +) 1ms V( R1: 2) 2ms 3ms 4ms 5ms 6ms 7ms 8ms 9ms 10ms Ti me ※解析時間の1/1000程度 (8) 解析ステップの設定が不適切だと波形が不正確となる。 解析ステップを再設定して再シミュレーション 13 計算機工学特論B 課題2:周波数1kHzの出力波形の振幅と入出力の位相差を測定せよ (9) RCフィルタの過渡解析結果 動作しない場合は“1_RCtran”をopen 1. 0V 0. 5V 0V - 0. 5V - 1. 0V 0s V( V1: +) 1ms V( R1: 2) 振幅 : 2ms 3ms 4ms 5ms 6ms 7ms 8ms 9ms 10ms Ti me (V) 位相差 : (deg) 発展課題2:周波数10kHzの出力波形の振幅を測定せよ 発展課題3:過渡応答波形のFFT解析を行い、スペクトルを観測せよ 14 計算機工学特論B 参考: 周波数領域と時間領域の波形の関係 1. 0V 1. 0V 0. 5V 0. 5V 0V 0V - 0. 5V - 0. 5V - 1. 0V 0s V( R1: 1) 10ms V( R1: 2) 20ms 30ms 40ms 50ms 60ms 70ms 80ms 90ms V( R1: 1) ① 0 ①100Hz - 1. 0V 0s 100ms Ti me 0. 1ms V( R1: 2) 0. 2ms 0. 3ms - 50 カットオフ周波数 fc=1kHz 100Hz 300Hz 3. 0KHz 10KHz 30KHz 0. 5V 0. 5V 0V 0V - 0. 5V - 0. 5V 1ms V( R1: 2) 2ms 3ms 4ms 5ms Ti me 6ms 7ms 0. 9ms 1. 0ms 100KHz Fr equency 1. 0V V( R1: 1) 0. 8ms ④ 100kHz(-40dB) 1. 0KHz 1. 0V - 1. 0V 0s 0. 7ms 周波数10倍で ゲイン1/10 (-20dB) → -20dB/dec (1次フィルタ) ④ 30Hz VP( C1: 2) 0. 6ms ③ 10kHz(-20dB) ③ - 100 10Hz VDB( R1: 2) 0. 5ms Ti me ② ②1kHz(-3dB) 0. 4ms 8ms 9ms 10ms - 1. 0V 0s V( R1: 1) 10us V( R1: 2) 20us 30us 40us 50us 60us 70us 80us 90us 100us Ti me 15 計算機工学特論B パラメトリック解析とは? 回路シミュレーションの 効率化手法の習得 デモ: “2_RCpara”をopenし、動作を確認せよ 0.05μF 0.01μF Cを0.01μFから0.05μF まで0.01μF刻みで変化 抵抗、コンデンサ、温度などの値をパラメータとして 変化させ、AC解析、過渡解析等を自動的に繰り返し行う。 ・ 素子値を手作業で変化させて何度もシミュレーションを行う必要なし。 ・ 素子値の大小による出力変化の傾向を確認可能。 16 計算機工学特論B 回路シミュレーションの 効率化手法の習得 モンテカルロ解析とは? 抵抗、コンデンサなどの素子の誤差が回路特性に与える影響を 乱数を用いて解析。 ⇒ 素子精度の決定や回路の歩留りの見積りなどに適した統計解析 例:抵抗2%、容量10%のばらつき デモ: “3_RCmonte”をopenし、動作を確認せよ 0 - 2. 0 - 4. 0 - 6. 0 - 8. 0 10Hz . . . VDB( OUT) 100Hz 1. 0KHz 10KHz 100KHz 1. 0MHz Fr equency 17 計算機工学特論B [実習3] PLL回路のシミュレーション f1 位相比較器 平滑化フィルタ (ループフィルタ) 負帰還回路の安定性の理解、 素子モデル活用法の習得 周波数 電圧制御発振器 (VCO) n f1 負帰還回路 分周器 (周波数:1/n) f1 + - Kp F(S) Kv/s 位相は周波数の 積分(1/s) モデル化 周波数 n f1 1/n 18 計算機工学特論B 素子モデル、PLL回路 PLLシミュレーションは 長い時間を要する ⇒モデル化が重要! 19 計算機工学特論B PLL回路のモデル化 + - Kp F(S) Kv/s 位相は周波数の 積分(1/s) 1/n 位相比較器+VCO⇒積分器 90度位相 遅れ ラグ・リードフィルタ 位相 遅れ 180度遅れ で発振! ↓ 位相補償が必要 20 計算機工学特論B Verilog-A を用いたCo-simulation / SmartSpice Verilog-A 21 計算機工学特論B Matlab/Simulinkを用いたPLLシステムシミュレーション 22 計算機工学特論B アナログ・ビヘービア・モデル (Analog Behavioral Modeling;ABM) 「回路ブロックや素子を、関数やテーブルの記述で表現する」 ・回路ブロックを関数で記述して回路の設計とシミュレーションを行い、 その後実際の素子に置き換えるトップダウン設計が可能となる。 ・設計済みの部分をABMで置き換えて、その他の部分を設計することにより、 シミュレーション時間の短縮を図ることが可能。 ①数式(Value):伝達関数 ②ルックアップテーブル(LUT): 入力値に対する出力値をテーブル記述によって表現。 ③ラプラス変換式(LAPLACE): ラプラス演算子Sを使用した電圧関数記述。 ④周波数応答表(FREQ) 周波数応答のテーブルによって記述 A AxB B 精度のよいモデルは解析時間がかかる。解析内容に適したモデリングを! 23 計算機工学特論B 参考: 積分器のモデル作成 -1倍 アンプ R1,C1を決定し、 周波数特性、位相特性を 確認せよ。 位相比較器+VCO⇒積分器 積分係数 1/RC [rad] 100 理想積分器 f0dB=160Hzで設計 RC=1*10-3 Gain:-20dB/dec 0 R= C= [Ω] [F] 位相:-90 - 100 10mHz VP( R2: 1) 1. 0Hz VDB( ABM11: OUT) 1/(2πRC) 100Hz Fr e que nc y 10KHz 1. 0MHz 24 計算機工学特論B 参考: ラグリードフィルタ(パッシブ)の設計 “4_Passivellfilter.sch”をopen 周波数特性、位相特性を 確認せよ。位相が戻る特 性に着目せよ。 -0 振幅(dB) - 40 - 80 - 120 10mHz VP( C2: 2) 位相(deg) 1. 0Hz VDB( C2: 2) 100Hz 10KHz 1. 0MHz Fr e que nc y 25 計算機工学特論B 参考: ラグリードフィルタ(パッシブ) パラメトリック解析:抵抗を20k~140kまで変化 ①素子名 「PARAM」→ 変化させるパラメータ ②抵抗値を{R}と書き換える ダブルクリック ③変更パラメータ 設定 ④シミュレーション設定 ⑤Rを20k~140kΩまで 30kΩ刻みで変化させる 26 計算機工学特論B 解析結果 パラメトリック解析:抵抗を20k~140kまで変化 -0 - 20 - 40 - 60 - 80 - 100 - 120 10mHz 100mHz VP( C2: 2) 1. 0Hz VDB( C2: 2) 10Hz 100Hz 1. 0KHz 10KHz 100KHz 1. 0MHz Fr e que nc y 27 計算機工学特論B R1 R2 VIN C2 C1 LagLead-Small Signal AC-0 (deg) +1.000 +20.000 +3.162 +10.000 +31.623 +100.000 +316.228 +1.000k 0 0.0 C1>>C2 R1>>R2 VOUT Frequency (Hz) +3.162k +10.000k G +31.623k +100.00 -20dB/Dec. -20 -20.000 -40 -40.000 -60.000 -60 -80.000 -80 f1 fL ≅ 位相 (deg) 1 2π R 2C1 1 1 1 f ≅ ≅ 1 -100.000 -100 f ≅ H 2π (R1 +R )C1VDB((IVM) 2π R1C-1.000 1 FREQ -1.000 2 VP_DEG((IVM) 2π R C-1.000 D(VP_DEG((IVM)) -1.000 fH fL 1 2 振幅 (dB) G≅ D(FREQ) R2 R ≅ 2 R-1.366e+250 R1 1 +R 2 28 計算機工学特論B 参考: PLLのシミュレーション(パッシブラグリードフィルタ) “5_PLLpassivell-close.sch” ( 6_ ~open.sch”) パッシブラグリード フィルタ (チャージポンプ構成 に用いられる) -1倍アンプ (位相反転) 100 0 0 Open-loop Close-loop - 100 -133 - 100 - 200 10mHz VDB( C3: 2) 1. 0Hz 100Hz VP( C3: 2) Fr e que nc y 10KHz - 200 10mHz VDB( C3: 2) VP( C3: 2) 1. 0Hz 100Hz 10KHz Fr e que nc y 29 計算機工学特論B 参考: PLLのシミュレーション(パッシブラグフィルタ) “7_PLLpassivel-close.sch” ( 8_ ~open.sch”) パッシブラグフィルタ (通常のローパスフィルタ) ゲインにピーク (不安定動作) 100 位相余裕 小 0 0 Open-loop Close-loop - 100 -175 - 100 - 200 10mHz VDB( R4: 2) VP( C2: 2) 1. 0Hz 100Hz Fr e que nc y 10KHz - 200 10mHz VDB( R4: 2) VP( C2: 2) 1. 0Hz 100Hz 10KHz Fr e que nc y 30 計算機工学特論B ループフィルタの設計がPLLの性能(安定性、収束特性)を 決定する鍵となる。 100 位相余裕 大 0 ラグリードフィルタ -133 - 100 - 200 10mHz VDB( C3: 2) 1. 0Hz 100Hz 10KHz VP( C3: 2) Fr e que nc y 100 位相余裕 小 ラグフィルタ 0 - 100 - 200 10mHz VDB( R4: 2) -175 1. 0Hz 100Hz 10KHz VP( C2: 2) Fr e que nc y 31