콘텐츠로 이동

SPICE 와 SPICE3f5

SPICE(Simulation Program with Integrated Circuit Emphasis)는 회로의 연결과 소자 모델을 연립 방정식으로 변환해 수치로 해석하는 프로그램이다. ERC 가 연결의 성립 여부를 판정하는 데 그친다면, SPICE 는 그 연결이 산출하는 전압·전류의 시간 응답과 주파수 응답(frequency response)을 계산한다.

SPICE 는 회로의 타당성을 판정하지 않는다. 주어진 모델과 주어진 자극 아래에서 회로가 산출하는 값을 계산한다.

이 구분이 SPICE 의 사용 범위를 정한다. 결과의 신뢰도는 소자 모델의 신뢰도를 넘지 않는다.

개별 소자 구성은 절점을 직접 관측하지만 모놀리식 IC 는 내부 절점에 접근할 수 없다

개별 소자로 구성한 회로는 시제품을 제작해 계측기로 확인할 수 있다. 모놀리식 IC 는 이 절차가 성립하지 않는다.

제약내용
내부 노드 접근 불가칩 내부 노드에 프로브를 접속할 수 없다. 관측 가능한 지점은 패드(pad)로 제한된다
시작품 회전 주기마스크 제작과 웨이퍼 공정을 거쳐야 하므로 수정 1 회의 비용과 소요가 크다
소자 상수의 종속성소자 특성이 공정 파라미터와 레이아웃 치수에 종속되어 개별 부품처럼 교체할 수 없다
소자 수수작업 해석으로 처리할 수 있는 절점(node) 수를 초과한다

즉 IC 설계는 제작 이전에 수치 해석으로 검증하는 절차를 요구한다. 1960 년대 말 캘리포니아 대학교 버클리의 IC 연구 환경에서 이 요구가 먼저 제기되었다.

당시의 회로 해석 프로그램 상당수는 방위 관련 계약 아래 개발되어 방사선 내성 해석 기능을 요건으로 포함했고, 그에 따라 배포가 제한되었다. 배포 제약이 없는 해석기를 확보하는 것이 SPICE 의 출발 조건이었다.

CANCER 에서 SPICE1 SPICE2 SPICE2G.6 SPICE3 SPICE3f5 로 이어지는 계보와 구현 언어 구간

시기내용
1969–1970CANCER강의 과제로 착수. Ronald A. Rohrer 지도, Laurence W. Nagel 등이 개발. 명칭은 Computer Analysis of Nonlinear Circuits, Excluding Radiation
1973. 4.SPICE1Nagel · Donald O. Pederson, 버클리 ERL 메모 UCB/ERL M382. FORTRAN, 절점 해석(nodal analysis)
1975SPICE2Nagel 학위 논문, UCB/ERL M520. 수정 절점 해석(MNA)·가변 시간 간격 과도 해석(transient analysis)·희소 행렬(sparse matrix) 도입
1983SPICE2G.6FORTRAN 계열의 최종판. 2B 판 이후는 Ellis Cohen 이 주도
1989SPICE3Thomas L. Quarles(지도 A. Richard Newton), C 로 재작성
1993. 7.SPICE3f5버클리의 최종 배포판
2011SPICE 의 개발이 IEEE Milestone 으로 등재

SPICE3f5 이후 버클리에서 후속 판이 배포되지 않았다. 1993 년의 배포본이 현재까지 기준 구현으로 남아 있다.

CANCER 는 배포 조건이 제한된 프로그램이었다. Rohrer 가 버클리를 떠난 뒤 Pederson 이 지도를 승계하면서, 제약을 해소할 수 있을 만큼 다시 작성해 공개 배포할 것을 요건으로 제시했다. 그 결과가 SPICE1 이다.

이 결정이 이후의 전개를 규정했다.

귀결내용
검증의 분산다수의 기관이 동일한 소스를 사용하면서 결함 보고와 수정이 누적되었다
입력 형식의 표준화넷리스트(netlist) 표기와 .MODEL 파라미터 표기가 사실상의 교환 형식이 되었다
모델 배포 경로반도체 공급사가 자사 소자의 모델 파라미터를 이 표기로 배포하게 되었다
파생 구현의 기반이후의 상용·공개 해석기 다수가 이 소스에서 분기했다

현재 SPICE3f5 소스는 BSD 조건으로 배포된다. 저작권 표시는 캘리포니아 대학교 평의원회에 귀속된다.

회로 입력에서 선형화 행렬 풀이 시각 전진으로 이어지는 절차와 두 되풀이 경로

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 도입이 이 제약을 해소했고, 희소 행렬 도입이 처리 가능한 회로 규모를 확대했다.

해석과 출력이 한 실행에 있는 구조와 결과 파일을 사이에 둔 분리 구조

SPICE3 는 알고리즘의 교체가 아니라 구현 구조의 재편이다.

SPICE2SPICE3
언어FORTRANC
실행 형태데크를 투입해 일괄 실행일괄 실행과 대화형 실행을 모두 지원
결과 처리실행 중 인쇄 출력결과를 별도 파일(rawfile)로 저장하고 후처리기가 조회한다
후처리문자 기반 도표독립 후처리기 nutmeg, X Window 표시
소자 추가본체 수정소자 인터페이스 규약을 통해 등록
수록 모델MOS1–MOS3 계열BSIM1 · BSIM2 · MESFET · 손실 전송선(transmission line) · 비선형 종속 소스 추가

결과를 파일로 분리한 구조가 실무상 차이를 만든다. 해석을 재실행하지 않고 저장된 결과를 반복 조회·연산할 수 있으며, 형식 변환기 sconvert 로 이진·텍스트 표현을 상호 변환한다.

넷리스트 각 줄의 첫 글자가 소자 종류를 지정한다.

접두사소자
R · C · L저항 · 커패시터 · 인덕터
K상호 인덕턴스(mutual inductance)
V · I독립 전압원 · 독립 전류원
E · G전압 제어 전압원 · 전압 제어 전류원
F · H전류 제어 전류원 · 전류 제어 전압원
B비선형 종속 소스
S · W전압 제어 스위치 · 전류 제어 스위치
D접합 다이오드
Q · J · M · ZBJT · JFET · MOSFET · MESFET
T · O · U무손실 전송선 · 손실 전송선 · 균일 분포 RC 선로(uniform distributed RC)
X부속 회로(subcircuit) 호출

.MODELLEVEL 파라미터가 사용할 모델을 지정한다.

LEVEL모델
1MOS1 — 제곱칙 기반
2MOS2 — 해석적 모델
3MOS3 — 반경험적 단채널 모델
4BSIM1
5BSIM2
6MOS6

BSIM 계열은 공정 특성 추출 결과를 파라미터 집합으로 받는 모델이며, 파라미터 집합은 공정 제공자가 배포한다.

규약내용
첫 줄제목 줄로 취급한다. 소자를 적으면 해석되지 않는다
*주석 줄
+앞 줄의 계속
. 으로 시작하는 줄제어문 — 해석 지정·모델 정의·출력 지정
.END입력의 종료
절점 0접지 기준. 모든 절점은 접지까지 직류 경로를 가져야 한다

직류 소규모 신호 시간 세 갈래로 나눈 해석 제어문 목록

제어문산출물
.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직류 동작점을 먼저 구하고 그 점에서 선형화한 회로를 대상으로 한다. 동작점이 산출되지 않으면 이 해석들도 성립하지 않는다.

산출한다산출하지 않는다
절점 전압과 분기 전류실제 기판 배선(routing)의 기생 성분 — 별도 추출이 필요하다
주파수 응답과 위상 여유모델이 제공되지 않는 부품의 거동
과도 파형과 스위칭 손실열 분포와 온도 상승
잡음·왜곡·감도방사·복사 결합
극점과 영점공정 편차의 통계적 분포(별도 해석 절차를 요구한다)

오른쪽 항목은 해석 대상이 아니거나 다른 해석 수단을 요구한다. 기판 단계의 신호 무결성(signal integrity) 해석은 Highspeed PCB 설계가, 공급사가 내부 회로를 비공개로 유지하는 버퍼의 거동 모델은 IBIS가 소유한다.