SPICE 와 SPICE3f5
SPICE(Simulation Program with Integrated Circuit Emphasis)는 회로의 연결과 소자 모델을 연립 방정식으로 변환해 수치로 해석하는 프로그램이다. ERC 가 연결의 성립 여부를 판정하는 데 그친다면, SPICE 는 그 연결이 산출하는 전압·전류의 시간 응답과 주파수 응답(frequency response)을 계산한다.
SPICE 는 회로의 타당성을 판정하지 않는다. 주어진 모델과 주어진 자극 아래에서 회로가 산출하는 값을 계산한다.
이 구분이 SPICE 의 사용 범위를 정한다. 결과의 신뢰도는 소자 모델의 신뢰도를 넘지 않는다.
1. 도입 배경
섹션 제목: “1. 도입 배경”개별 소자로 구성한 회로는 시제품을 제작해 계측기로 확인할 수 있다. 모놀리식 IC 는 이 절차가 성립하지 않는다.
| 제약 | 내용 |
|---|---|
| 내부 노드 접근 불가 | 칩 내부 노드에 프로브를 접속할 수 없다. 관측 가능한 지점은 패드(pad)로 제한된다 |
| 시작품 회전 주기 | 마스크 제작과 웨이퍼 공정을 거쳐야 하므로 수정 1 회의 비용과 소요가 크다 |
| 소자 상수의 종속성 | 소자 특성이 공정 파라미터와 레이아웃 치수에 종속되어 개별 부품처럼 교체할 수 없다 |
| 소자 수 | 수작업 해석으로 처리할 수 있는 절점(node) 수를 초과한다 |
즉 IC 설계는 제작 이전에 수치 해석으로 검증하는 절차를 요구한다. 1960 년대 말 캘리포니아 대학교 버클리의 IC 연구 환경에서 이 요구가 먼저 제기되었다.
당시의 회로 해석 프로그램 상당수는 방위 관련 계약 아래 개발되어 방사선 내성 해석 기능을 요건으로 포함했고, 그에 따라 배포가 제한되었다. 배포 제약이 없는 해석기를 확보하는 것이 SPICE 의 출발 조건이었다.
2. 계보
섹션 제목: “2. 계보”| 시기 | 판 | 내용 |
|---|---|---|
| 1969–1970 | CANCER | 강의 과제로 착수. Ronald A. Rohrer 지도, Laurence W. Nagel 등이 개발. 명칭은 Computer Analysis of Nonlinear Circuits, Excluding Radiation |
| 1973. 4. | SPICE1 | Nagel · Donald O. Pederson, 버클리 ERL 메모 UCB/ERL M382. FORTRAN, 절점 해석(nodal analysis) |
| 1975 | SPICE2 | Nagel 학위 논문, UCB/ERL M520. 수정 절점 해석(MNA)·가변 시간 간격 과도 해석(transient analysis)·희소 행렬(sparse matrix) 도입 |
| 1983 | SPICE2G.6 | FORTRAN 계열의 최종판. 2B 판 이후는 Ellis Cohen 이 주도 |
| 1989 | SPICE3 | Thomas L. Quarles(지도 A. Richard Newton), C 로 재작성 |
| 1993. 7. | SPICE3f5 | 버클리의 최종 배포판 |
| 2011 | — | SPICE 의 개발이 IEEE Milestone 으로 등재 |
SPICE3f5 이후 버클리에서 후속 판이 배포되지 않았다. 1993 년의 배포본이 현재까지 기준 구현으로 남아 있다.
3. 공개 배포 결정
섹션 제목: “3. 공개 배포 결정”CANCER 는 배포 조건이 제한된 프로그램이었다. Rohrer 가 버클리를 떠난 뒤 Pederson 이 지도를 승계하면서, 제약을 해소할 수 있을 만큼 다시 작성해 공개 배포할 것을 요건으로 제시했다. 그 결과가 SPICE1 이다.
이 결정이 이후의 전개를 규정했다.
| 귀결 | 내용 |
|---|---|
| 검증의 분산 | 다수의 기관이 동일한 소스를 사용하면서 결함 보고와 수정이 누적되었다 |
| 입력 형식의 표준화 | 넷리스트(netlist) 표기와 .MODEL 파라미터 표기가 사실상의 교환 형식이 되었다 |
| 모델 배포 경로 | 반도체 공급사가 자사 소자의 모델 파라미터를 이 표기로 배포하게 되었다 |
| 파생 구현의 기반 | 이후의 상용·공개 해석기 다수가 이 소스에서 분기했다 |
현재 SPICE3f5 소스는 BSD 조건으로 배포된다. 저작권 표시는 캘리포니아 대학교 평의원회에 귀속된다.
4. 수치 해석 골격
섹션 제목: “4. 수치 해석 골격”SPICE2 가 확립한 해석 절차는 이후 회로 시뮬레이터의 공통 골격이 되었다.
| 단계 | 내용 |
|---|---|
| 스탬프(stamp) | 소자마다 정해진 규칙으로 계수 행렬의 지정된 위치에 기여분을 가산한다 |
| 수정 절점 해석(modified nodal analysis, MNA) | 절점 전압을 미지수로 두되, 전압원·인덕터처럼 분기 전류를 미지수로 요구하는 소자를 같은 행렬에 포함한다 |
| 뉴턴–랩슨 반복(Newton–Raphson iteration) | 비선형 소자를 동작점(operating point) 주변에서 선형화하고, 해가 수렴할 때까지 반복한다 |
| 암시적 시간 적분(implicit integration) | 사다리꼴 공식(trapezoidal rule) 또는 Gear 공식(BDF)으로 리액티브 소자를 이산화하고, 국부 절단 오차(local truncation error)에 따라 시간 간격을 가변한다 |
| 희소 행렬 LU 분해(sparse LU factorization) | 회로 행렬의 대부분이 0 이라는 성질을 이용해 0 이 아닌 항만 저장·분해한다 |
절점 해석만 사용한 SPICE1 은 전압원을 직접 다루지 못해 등가 변환을 요구했다. SPICE2 의 MNA 도입이 이 제약을 해소했고, 희소 행렬 도입이 처리 가능한 회로 규모를 확대했다.
5. SPICE3 의 구조 변경
섹션 제목: “5. SPICE3 의 구조 변경”SPICE3 는 알고리즘의 교체가 아니라 구현 구조의 재편이다.
| 축 | SPICE2 | SPICE3 |
|---|---|---|
| 언어 | FORTRAN | C |
| 실행 형태 | 데크를 투입해 일괄 실행 | 일괄 실행과 대화형 실행을 모두 지원 |
| 결과 처리 | 실행 중 인쇄 출력 | 결과를 별도 파일(rawfile)로 저장하고 후처리기가 조회한다 |
| 후처리 | 문자 기반 도표 | 독립 후처리기 nutmeg, X Window 표시 |
| 소자 추가 | 본체 수정 | 소자 인터페이스 규약을 통해 등록 |
| 수록 모델 | MOS1–MOS3 계열 | BSIM1 · BSIM2 · MESFET · 손실 전송선(transmission line) · 비선형 종속 소스 추가 |
결과를 파일로 분리한 구조가 실무상 차이를 만든다. 해석을 재실행하지 않고 저장된 결과를
반복 조회·연산할 수 있으며, 형식 변환기 sconvert 로 이진·텍스트 표현을 상호 변환한다.
6. SPICE3f5 수록 내용
섹션 제목: “6. SPICE3f5 수록 내용”6.1 소자 종류 접두사
섹션 제목: “6.1 소자 종류 접두사”넷리스트 각 줄의 첫 글자가 소자 종류를 지정한다.
| 접두사 | 소자 |
|---|---|
R · C · L | 저항 · 커패시터 · 인덕터 |
K | 상호 인덕턴스(mutual inductance) |
V · I | 독립 전압원 · 독립 전류원 |
E · G | 전압 제어 전압원 · 전압 제어 전류원 |
F · H | 전류 제어 전류원 · 전류 제어 전압원 |
B | 비선형 종속 소스 |
S · W | 전압 제어 스위치 · 전류 제어 스위치 |
D | 접합 다이오드 |
Q · J · M · Z | BJT · JFET · MOSFET · MESFET |
T · O · U | 무손실 전송선 · 손실 전송선 · 균일 분포 RC 선로(uniform distributed RC) |
X | 부속 회로(subcircuit) 호출 |
6.2 MOSFET 모델 수준
섹션 제목: “6.2 MOSFET 모델 수준”.MODEL 의 LEVEL 파라미터가 사용할 모델을 지정한다.
| LEVEL | 모델 |
|---|---|
| 1 | MOS1 — 제곱칙 기반 |
| 2 | MOS2 — 해석적 모델 |
| 3 | MOS3 — 반경험적 단채널 모델 |
| 4 | BSIM1 |
| 5 | BSIM2 |
| 6 | MOS6 |
BSIM 계열은 공정 특성 추출 결과를 파라미터 집합으로 받는 모델이며, 파라미터 집합은 공정 제공자가 배포한다.
6.3 입력 파일 규약
섹션 제목: “6.3 입력 파일 규약”| 규약 | 내용 |
|---|---|
| 첫 줄 | 제목 줄로 취급한다. 소자를 적으면 해석되지 않는다 |
* | 주석 줄 |
+ | 앞 줄의 계속 |
. 으로 시작하는 줄 | 제어문 — 해석 지정·모델 정의·출력 지정 |
.END | 입력의 종료 |
절점 0 | 접지 기준. 모든 절점은 접지까지 직류 경로를 가져야 한다 |
7. 해석 항목
섹션 제목: “7. 해석 항목”| 제어문 | 산출물 |
|---|---|
.OP | 직류 동작점 — 모든 절점 전압과 분기 전류(branch current) |
.DC | 소스를 스윕한 직류 전달 특성 |
.TF | 소규모 신호(small-signal) 전달 함수(transfer function)와 입력·출력 임피던스(impedance) |
.SENS | 지정 출력의 소자 파라미터에 대한 감도(sensitivity) |
.AC | 소규모 신호 주파수 응답 |
.NOISE | 출력 잡음(noise) 스펙트럼 밀도(noise spectral density)와 입력 환산(input-referred) 잡음 |
.DISTO | 소규모 신호 왜곡(distortion) 성분 |
.PZ | 전달 함수의 극점(pole)과 영점(zero) |
.TRAN | 시간 영역 과도 응답(transient response) |
.FOUR | 과도 해석 결과의 푸리에 성분(Fourier component) |
.AC · .NOISE · .DISTO · .PZ · .TF · .SENS 는 직류 동작점을 먼저 구하고 그 점에서
선형화한 회로를 대상으로 한다. 동작점이 산출되지 않으면 이 해석들도 성립하지 않는다.
8. 적용 범위와 한계
섹션 제목: “8. 적용 범위와 한계”| 산출한다 | 산출하지 않는다 |
|---|---|
| 절점 전압과 분기 전류 | 실제 기판 배선(routing)의 기생 성분 — 별도 추출이 필요하다 |
| 주파수 응답과 위상 여유 | 모델이 제공되지 않는 부품의 거동 |
| 과도 파형과 스위칭 손실 | 열 분포와 온도 상승 |
| 잡음·왜곡·감도 | 방사·복사 결합 |
| 극점과 영점 | 공정 편차의 통계적 분포(별도 해석 절차를 요구한다) |
오른쪽 항목은 해석 대상이 아니거나 다른 해석 수단을 요구한다. 기판 단계의 신호 무결성(signal integrity) 해석은 Highspeed PCB 설계가, 공급사가 내부 회로를 비공개로 유지하는 버퍼의 거동 모델은 IBIS가 소유한다.