SPICE 소개 및 사용법 정보통신공학과 이종복 교수
SPICE 실습 I. 개요 SPICE(Simulation Program with Integrated Circuit Emphasis )란 ? - 범용 회로 시뮬레이션 프로그램 - R,L,C 및 전류원,전압원 포함 - 반도체소자(diode,BJT,JFET,MOSFET)를 포함 - 직류분석, 과도분석,교류분석 - University of California, Berkeley의 Dr. Lawrence Nagel 개발
SPICE 회로문법 저항 : R 캐피시터 : C 전압원 : V BJT : Q JFET : J MOSFET : M PULSE파 : 디지털회로 SIN파 : 아날로그 회로 BJT : Q JFET : J MOSFET : M Voltage Controlled Voltage Source : E
SUB CIRCUIT 기능 : 하나의 회로를 객체로 만들어서 호출하여 이용함. 프로그램의 서브루틴이나 함수와 비슷함. 문법 : 정의 .SUBCKT 서브회로명 노드명1,노드명2,...,노드명N 회로 기술 .ENDS 서브회로명 호출 X1 실제노드명1,...,실제노드명N 서브회로명
SPICE 명령문 MODEL : 모델문 .DC : 직류분석 .TRAN : 과도분석 .AC : 교류분석 . * : 코멘트 NPN : NPN 바이폴라 트랜지스터 PNP : PNP 바이폴라 트랜지스터 NMOS : NMOS 트랜지스터 PMOS : PMOS 트랜지스터 .DC : 직류분석 .TRAN : 과도분석 .AC : 교류분석 . * : 코멘트 .END : 종료문 .probe : 파형보기
% Microsim Eval 8 PSPICE 사용법 [1] 시뮬레이션하고자하는 회로를 text editor로 만든다. 이 화일을 test.cir이라고 하자. [2] 시작 -> 프로그램 -> MicroSim Eval8 -> PSPICE A_D를 선택한다. [3] PSpiceAD 창이 뜨면 File->Open->test.cir을 선택하여 더블클릭하면 시뮬레이션이 시작된다. 추후에 PSpiceAD창을 띄우고 싶으면 Microsim Design Manager 에서 좌측 상단 두번째 메뉴 (Run PSpice A/D)를 클릭한다. [4] 성공적으로 수행이 되었으면 PSpiceAD 창의 File -> Examine Output으로 결과를 본다. DC 분석값이나 AC 전압이득값은 이것을 보고 충분하다. [5] 에러가 발생하면 역시 PSpiceAD 창의 File->Examine Output 으로 에러의 원인을 살핀다.
[5] 그래픽으로 출력을 보고 싶으면 test.cir에 .probe 명령어를 삽입하고 File->Run Probe를 시행한다. 그러면 Microsim Probe 창이 뜬다(과도분석에서 파형을 관찰하거나 주파수분석 결과를 보고 싶을 때 Probe를 한다). [6] Trace->Add를 통하여 노드가 수록된 창에서 보고 싶은 신호를 선택한다. [7] View -> Area 후 마우스로 확대해서 보고 싶은 영역을 정하면 그 부분을 크게 볼 수 있다. 전체 파형으로 되돌아가고 싶으면 View -> Fit을 실행한다. [8] 입력과 출력의 스케일이 달라서 동시에 보기가 어려우면 Plot -> Add Plot하여 플롯화면을 2 개의 윈도우로 나누어 검사한다. 이 때 왼쪽 마우스를 클릭하면 SEL>>이 나타 나서 어느 플롯 윈도우가 활성화되었는지를 나타낸다.
[9] 입력파형과 출력파형의 스케일이 다른 경우 Plot->Add Y-Axis를 이용하여 복수개의 Y축을 동시에 볼 수 있다. [10] 주파수 분석에서 Trace->Add 했을 때 Functions or Macros에서 DB, P등을 선택하고 Output Variables에서 원하는 노드를 선택하여 원하는 함수값을 적용하여 그 파형을 나타낼 수 있다. 아니면 하단에 직접 손으로 입력 가능하다. [11] Trace->Eval Goal Functions 하여 Functions or Macros에서 Max,Min등을 선택하고 Output Variables에서 원하는 노드를 선택하여 그 값을 알 수 있다. [12] Tools->Cursor를 선택하면 커서가 나타난다. 마우스 좌측버튼으로 파형을 찍으면 A1=X 좌표값, Y좌표값이 조그만 창에 나온다. 우측버튼을 찍으면 A2=X좌표값, Y좌표값이 나타나며, 두 지점간의 차이가 diff=X좌표차이값, Y좌표차이값과 같이 표현된다.
[11] 주파수응답 결과를 dB로 정규화해서 보고 싶으면 Trace->Add 했을 때 20* LOG10(V(출력노드)/중간주파수이득))의 수식을 Trace Expression란에 직접 쳐넣는다 (아니면 Functions or Macros에서 수식을, Output Variables에서 노드를 선택하고 Ok를 누르면 된다). 또는 DB(V(출력노드/중간주파수이득))도 가능하다. [12] 시뮬레이션 결과중 Text는 화일명.out으로 생성되며, Probe결과는 화일명.dat으로 생성된다. [13] SPICE에서 floating node는 허용되지 않으므로 불가피한 경우 10 MEG 이상의 매우 큰 저항을 연결하면 사실상 floating node역할을 한다. [14] MicroSim Probe에 파형을 띄운 상태에서 재시뮬레이션이 되지 않으므로 이 창을 닫은 후에 재시뮬레이션 한다.
% 예제1 : 다이오드 반파정류 DIODE HALF WAVE RECTIFIER VS 1 0 SIN (0 5V 1KHz) D1 1 2 TYDIODE R1 2 0 1K .MODEL TYDIODE D (VJ=0.7) .TRAN 1ms 5ms .PROBE .END 1 2
% 다이오드 반파정류 시간도메인 파형
% 예제3 :공통이미터 증폭기 과도분석 VCC 5 0 DC 22V R1 5 2 56K R2 2 0 8.2K RE 1 0 1.5K RC 5 3 6.8K RL 6 0 10MEG C1 4 2 10UF CE 1 0 20UF VS 4 0 SIN(0 1mV 1KHz) * SIN (dc-offset amplitude freq) Q1 3 2 1 TYNPN .MODEL TYNPN NPN(BF=90 IS=5E-15) .OP .TRAN 10us 5ms * tstep tstop .OPTIONS NOPAGE .probe .END 5 3 6 4 2 1
**** SMALL SIGNAL BIAS SOLUTION TEMPERATURE = 27.000 DEG C NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE ( 1) 2.0235 ( 2) 2.7039 ( 3) 12.9280 ( 4) 0.0000 ( 5) 22.0000 VOLTAGE SOURCE CURRENTS NAME CURRENT VCC -1.679E-03 VS 0.000E+00 TOTAL POWER DISSIPATION 3.69E-02 WATTS
**** BIPOLAR JUNCTION TRANSISTORS NAME Q1 MODEL QMODEL IB 1.48E-05 IC 1.33E-03 VBE 6.80E-01 VBC -1.02E+01 VCE 1.09E+01 BETADC 9.00E+01 GM 5.16E-02 RPI 1.74E+03 RX 0.00E+00 RO 1.00E+12 CBE 0.00E+00 CBC 0.00E+00 CJS 0.00E+00 BETAAC 9.00E+01 CBX 0.00E+00 FT 8.21E+17
% 예제 3: Time Domain에서의 입출력 파형
% Plot->Add Y-Axis로 scale이 다른 그래프 동시 보기
% 예제 4 :공통이미터 AC분석 5 3 6 4 2 1 VCC 5 0 DC 22V R1 5 2 56K R2 2 0 8.2K RE 1 0 1.5K RC 5 3 6.8K CS 4 2 10UF CC 3 6 10PF RL 6 0 10MEG CE 1 0 20UF VS 4 0 AC 1mV 0 *AC 진폭 위상 Q1 3 2 1 TYNPN .MODEL TYNPN NPN(BF=90 IS=5E-15) .OP .AC LIN 1 10KH 1000KH * 점의수, 시작주파수, 최종주파수 .OPTIONS NOPAGE .probe .PRINT AC VM(3) VM(4) * 입력과 출력의 진폭을 출력하라 .END 5 3 6 4 2 1
% AC 분석 결과 **** AC ANALYSIS TEMPERATURE = 27.000 DEG C FREQ VM(3) VM(4) 1.000E+04 3.504E-01 1.000E-03
% 예제5:CE 주파수분석 frequency response vcc 4 0 20v rb1 4 3 40k rb2 3 0 10k rc 4 5 4k re 6 0 2k rs 2 1 1k rl 7 0 2.2k cs 2 3 10uf ce 6 0 20uf cc 5 7 1uf cbe 3 6 36pf cbc 5 3 4pf cce 5 6 1pf q1 5 3 6 tynpn cw1 3 0 6pf cw2 7 0 8pf vs 1 0 ac 1mV .model tynpn npn bf=100 is=5e-15 .ac dec 10 10hz 100meghz * 점의 수 시작주파수 최종주파수 .plot ac v(7) db(7) p(7) .options nopage .end 4 5 7 1 2 3 6
% Probe를 시행한 주파수 응답 그래픽 결과
% 출력노드의 dB와 위상
% 정규와 및 3dB Cut Off Frequency 구하기
**** SMALL SIGNAL BIAS SOLUTION TEMPERATURE = 27.000 DEG C NODE VOLTAGE NODE VOLTAGE ( 1) 0.0000 ( 2) 0.0000 ( 3) 3.8737 ( 4) 20.0000 ( 5) 13.6850 ( 6) 3.1889 ( 7) 0.0000
Simple OP AMP modeling vin vi 0 sin(0 1mV 1KHz) x1 vo 0 vi- opamp r1 vi vi- 10k rf vi- vo 100k .tran 1ms 100ms .probe .subckt opamp vo vi+ vi- e1 vo 0 vi+ vi- 1e6 * vcvs, +node -node +cntrl -cntrl gain .ends opamp .end rf vi r1 vo vi- vi+
O O O O O O Wien Bridge Oscillator v1 3 0 15 v2 4 0 -15 r1 0 2 1k c1 1 0 0.01uF c2 5 6 0.01uF xblock 1 2 3 4 5 ua741 .ic v(5)=-15 .op .lib .tran 0.05m 2.5m 0.025m .probe .end O O O O O O
과제 제출 회로 그림 및 노드 번호 직류분석, 교류분석, 주파수분석 손으로 푼 것 SPICE와의 결과비교 제출 시 유의사항 : 직류분석 : 주요 노드 전압과의 비교 과도분석 : 입력파형과 출력파형을 비교하여 전압이득 측정 교류분석 : 전압이득을 Time domain 입력 파형과 출력 파형의 진폭을 측정하여 비율을 구함(.TRAN 분석). 입력에 1V 를 주고 출력값을 읽음(.AC 분석). 주파수분석 주파수 도메인에서 파형을 normalize 하여 -3dB 인 지점을 측정하여 비교(Tools->Cursor 이용) 제출 시 유의사항 : 폴더를 자기 이름으로 해서 압축할 것 예)홍길동.zip