맨위로가기

SPICE (전자 회로 시뮬레이션)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

SPICE는 캘리포니아 대학교 버클리에서 개발된 전자 회로 시뮬레이션 프로그램으로, 회로의 동작을 예측하고 분석하는 데 사용된다. 1973년 포트란으로 처음 개발되어 이후 C 언어로 개선되었으며, 다양한 전자 부품 모델과 분석 기능을 제공한다. 넷리스트 형식의 입력을 통해 회로를 정의하고, 과도, AC, DC 분석 등을 수행하며, 널리 사용되어 "회로를 SPICE하다"라는 표현이 시뮬레이션과 동의어로 사용될 정도였다. SPICE는 학계와 산업계에서 널리 사용되며, 다양한 상용 및 파생 프로그램의 기반이 되었고, 전기적 영역 외 열 시뮬레이션, 전기 기계 모델링, 전자기 모델링 등 다양한 분야에 적용된다.

더 읽어볼만한 페이지

  • EDA 소프트웨어 - Altium Designer
    Altium Designer는 Altium에서 출시한 전자 설계 자동화 소프트웨어로, 회로도 캡처, 3D PCB 설계, FPGA 개발, 릴리스/데이터 관리 등의 기능을 제공하며 3D PCB 시각화를 최초로 도입했다.
  • EDA 소프트웨어 - KiCad
    KiCad는 1992년에 개발된 오픈 소스 전자 회로 설계 소프트웨어로, CERN의 지원을 받아 개발이 가속화되었으며, 다양한 운영 체제에서 실행된다.
SPICE (전자 회로 시뮬레이션) - [IT 관련 정보]에 관한 문서
SPICE 1
저자로렌스 네이글
출시일1973년
프로그래밍 언어포트란
장르전자 회로 시뮬레이션
라이선스퍼블릭 도메인 소프트웨어
SPICE 2
출시일1975년
최신 버전2G.6
최신 버전 출시일1983년
프로그래밍 언어포트란
장르전자 회로 시뮬레이션
라이선스BSD 3 조항
SPICE 3
저자토마스 쿼럴스
출시일1989년
최신 버전3f.5
최신 버전 출시일1993년 7월
프로그래밍 언어C
장르전자 회로 시뮬레이션
라이선스BSD 라이선스 (수정된 2 조항)
웹사이트보관된 웹페이지

2. 역사

SPICE는 캘리포니아 대학교 버클리에서 도널드 페더슨 교수의 지도하에 로렌스 네이글이 개발했다.[49] 초기 버전은 FORTRAN으로 작성되었으며,[1] 이후 C 언어로 이식되었다.[13] SPICE는 소스코드가 공개된 초기 퍼블릭 도메인 소프트웨어 프로그램으로 널리 배포 및 사용되었으며,[55] 현재는 BSD 허가서에 따라 자유롭게 사용 가능하다. "회로를 SPICE 하다"라는 표현은 "회로를 시뮬레이션하다"와 동의어가 되었다.[15]

SPICE의 주요 버전별 개발 과정은 다음과 같다.

버전연도언어특징
SPICE11973년FORTRAN노달 회로분석 사용, 제한된 기능
SPICE21975년FORTRAN더 많은 소자, 노달변형 회로분석, 개선된 과도신호 분석
SPICE2G.61981년FORTRAN상용 버전의 기반
SPICE31985년CX 윈도우 시스템 방식 추가, 동일 문법 사용


2. 1. 초기 개발 배경

SPICE는 캘리포니아 대학교 버클리 전자공학 연구실에서 도널드 페더슨 교수의 지도를 받던 로렌스 네이글(Laurence Nagel)이 개발했다. SPICE1은 네이글이 로널드 로러 교수 밑에서 작업한 CANCER 프로그램[49]을 바탕으로 만들어졌다. CANCER는 "방사선을 제외한 비선형 회로의 컴퓨터 분석"(Computer Analysis of Nonlinear Circuits, Excluding Radiation)의 약자로,[50] 당시 미국 국방부에서 회로의 방사능 내성을 측정하기 위한 시뮬레이터 개발 프로젝트의 일환이었다. 로러 교수가 떠난 후 네이글의 새 지도교수가 된 페더슨은 CANCER의 특허 사용 제약을 없애고 퍼블릭 도메인으로 공개할 것을 추진했다.[51]

2. 2. 주요 버전


  • 1973년: SPICE1[52][1] - 최초 버전으로, FORTRAN으로 작성되었다. 노달 회로분석을 사용해 회로 방정식을 구했지만, 인덕터, 부동 전압원, 종속원 표현에 어려움이 있었다. 비교적 적은 수의 회로만 사용 가능했고, 고정된 시간 동안의 과도신호 분석만 가능했다.
  • 1975년: SPICE2[53][2] - 더 많은 소자와 노달변형 회로분석을 통해 더 폭넓은 과도신호 분석을 지원했다. 엘리스 코헨(Ellis Cohen)이 개발한 포트란 기반 메모리 할당 시스템이 적용되었다.
  • 1981년: SPICE2G.6[11][12] - 주요 상용 버전의 기반이 되었다.
  • 1985년: SPICE3[54][13] - C로 작성되었으며, X 윈도우 시스템 방식을 추가하고, 같은 문법을 사용하도록 만들어졌다.

2. 3. 상용 및 파생 버전

SPICE는 소스코드가 공개된 초기 퍼블릭 도메인 소프트웨어 프로그램으로서[55], 널리 배포 및 사용되었다. SPICE의 대중성은 "회로를 SPICE 하다"라는 표현을 "회로를 시뮬레이션하다"와 동의어로 만들 정도였다.[56]

1980년대에는 HSPICE, PSPICE 등 여러 상용 버전이 등장했다. SPICE는 학계, 산업계 및 상용 제품을 포함한 많은 회로 시뮬레이션 프로그램의 기반이 되었다. 최초의 상용 SPICE 버전은 ISPICE였으며, National CSS에서 시분할 서비스의 대화형 버전으로 제작되었다.[57] 가장 유명한 상업용 제품으로는 시놉시스 소유의 HSPICE와 카덴스 디자인 시스템 소유의 PSPICE가 있다.

오늘날에도 몇몇 IC 제조업체들은 SPICE 기반 회로 시뮬레이션 프로그램 개발팀을 운영하고 있으며, 그 결과 Analog Devices의 ADICE, Linear Technology의 LTspice 등이 개발되었다.[58]

현재 다양한 파생 SPICE 소프트웨어가 개발 및 사용되고 있다. 주요 파생 버전은 다음과 같다.

소프트웨어개발/배포
ngspice오픈 소스
Qucs오픈 소스
LTspiceLinear Technology
TINA-TI텍사스 인스트루먼트


3. 프로그램 특징 및 구조

SPICE는 트랜지스터, 저항, 축전기 등 회로 요소와 그 연결을 기록한 텍스트 기반의 넷리스트를 입력받아 방정식을 풀고, 비선형 적분, 뉴턴 방법, 희소행렬 등의 방식으로 결과를 제공한다.[4] 1975년에 주로 사용된 SPICE2는 텍스트 넷리스트를 입력받아 숫자 열이나 문자 "플롯" 형태의 라인 프린터 출력을 생성했다. SPICE3는 넷리스트를 유지하면서도 C 셸과 유사한 명령 줄 인터페이스를 통해 분석을 제어하고, X 플로팅을 추가했다.[48]

최근에는 업체들과 다양한 자유 소프트웨어 프로젝트를 통해 회로도 캡처 프론트엔드가 추가되어, 회로도를 직접 그리면 프로그램이 자동으로 넷리스트를 생성하는 기능이 지원된다. 또한, 그래픽 사용자 인터페이스가 추가되어 전압과 전류 출력값을 벡터로 조작하고, 파형을 볼 수 있는 그래픽 도구들도 제공된다.

3. 1. 입력 형식: 넷리스트

넷리스트는 회로 요소( 저항, 커패시터, 인덕터, 트랜지스터 등)와 그 연결 관계를 텍스트로 기술한 것이다. 각 행은 소자의 인스턴스 이름, 연결되는 노드 이름, 소자의 특성값 등으로 구성된다. 주석은 `*`로 시작한다.[4]

회로 기술은 한 행에 하나의 소자를 기술한다. 각 행의 맨 앞은 소자의 인스턴스명(고유한 이름)을 나타내며, 첫 번째 문자가 소자 종류를 나타낸다. 저항은 `'''R'''인스턴스명`, 인덕턴스는 `'''L'''인스턴스명`과 같은 이름이 된다. 이어서, 소자의 각 단자가 연결되는 노드명을 기술하고, 마지막으로 소자의 특성값 등을 기술한다. 인스턴스명, 노드명 등의 구분에는 공백 문자를 사용한다.

행 머리글자가 `*`인 행은 주석이다.

'''간단한 예시 1: CR 회로'''

```text

CR circuit

  • 0---R1---1---C1---2

R1 0 1 10

C1 1 2 20

.END

```

위 예시에서 R1 행의 마지막은 10Ω, C1 행의 마지막은 20F를 나타낸다. 0, 1, 2는 각각 단자의 노드를 나타낸다. 결과적으로 저항과 커패시터가 직렬로 연결된 회로가 된다.

이것만으로는 회로 기술만 되어 있고, 전기 회로로 동작하지 않는다. 회로로 동작시키기 위해서는, 예를 들어 다음과 같이 전압원(`'''V'''`로 시작하는 소자)을 추가한다.

'''간단한 예시 2: CR 회로 + 직류 전원'''

```text

CR circuit+power

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

위 예시는 앞서 언급한 회로의 양단(+측이 노드 2, -측이 노드 0)에 5V의 전압을 가한 것이다. 전원에는 직류 외에도 정현파나 펄스 파형, 정전류원 등도 지정할 수 있다. 전원도 형식적으로 소자와의 위치 관계이며, 다른 소자와 마찬가지로 회로 기술 내에 포함한다. 노드 0(그라운드)은 반드시 포함되어야 한다. 각 부분의 전압은 지정한 장소의 전위와 노드 0과의 전위차로 정의된다.

이것을 실제로 동작시키기 위해서는 해석 내용을 지정한다.

'''간단한 예시 3: CR 회로 + 직류 전원 + 과도 해석'''

```text

CR circuit+power+transient

.TRAN 1 10

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

`.TRAN` 문은 1sec 간격으로 10sec까지 경과시키는 것을 의미한다(과도 해석). 또한 마침표로 시작하는 단어는 각종 제어 문을 의미한다.

시뮬레이터로서는 동작한 결과의 관측도 가능해야 한다. 다음 지정을 통해 표시할 수 있다.

'''간단한 예시 4: CR 회로 + 직류 전원 + 과도 해석 + 표시'''

```text

CR circuit+power+transient+print

.TRAN 1 10

.PRINT TRAN V(1) I(V1)

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

`.PRINT` 문으로 노드 1의 전압과 전원 `V1`의 전류를 목록으로 출력한다. 그 외에 `.PLOT` 문도 있으며, 그래프화할 수 있다.

기대한 대로 콘덴서에 충전되어 가는 것과 같은 시뮬레이션 결과는 이대로는 나오지 않는다. 이는 SPICE가 과도 해석을 수행하기 전에 자동으로 DC 해석을 통해 초기 조건의 전위를 결정하고, 이 때 콘덴서는 단락 상태로 취급되기 때문이다. 즉, 콘덴서가 충전된 상태에서 시뮬레이션이 시작된다. 충전되지 않은 상태에서 시뮬레이션을 시작하기 위해서는 `.IC` 문을 사용하여 초기 조건에서의 전위를 명시적으로 지정한다.

'''간단한 예시 5: CR 회로 + 직류 전원 + 과도 해석 + 초기 조건 + 표시'''

```text

CR circuit+power+transient+ic+print

.TRAN 1 10

.PRINT TRAN V(1) I(V1)

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.IC V(1) = 2

.END

```

위 예시는 콘덴서 `C1`의 저항 `R1` 측 노드의 초기 전위를 2V로 설정한다. 이는 `V1`의 전압과 같으므로 콘덴서가 충전되지 않은 상태에서 시뮬레이션이 수행된다.

또한 첫 행과 `.END` 사이의 기술 순서는 임의이다.

3. 2. 회로, 동작 기술

SPICE 시뮬레이터에 대한 입력은 회로, 동작, 제어문 등으로 구성되며, 텍스트로 기술한다. 각 항목은 기본적으로 행 단위로 작성하지만, 여러 행에 걸쳐 기술할 수도 있다. 이 경우 다음 행의 맨 앞에 `+`를 붙인다. 명령어는 마침표(`.`)(period)로 시작한다.

첫 행은 표제이며, 다음 행부터 회로 및 제어문을 기술한다. 회로망은 SPICE 형식의 넷리스트로 표현한다. 마지막 행은 `.END`로 종료한다. `.END` 다음에 오는 행은 새로운 회로 기술로 인식되어, 여러 회로의 시뮬레이션이 가능하다.

회로 기술은 한 행에 하나의 소자를 기술한다. 각 행의 맨 앞은 소자의 인스턴스명(고유한 이름)을 나타내며, 첫 글자는 소자의 종류를 나타낸다. 예를 들어, 저항은 `'''R'''인스턴스명`, 인덕턴스는 `'''L'''인스턴스명`과 같이 표현한다. 이어서 소자의 각 단자가 연결되는 노드명을 기술하고, 마지막으로 소자의 특성값 등을 기술한다. 인스턴스명, 노드명 등은 공백 문자로 구분한다.

행의 맨 앞이 `*`인 행은 주석으로 처리되어, 사람이 내용을 파악하기 쉽도록 설명을 추가할 수 있다.

다음은 간단한 CR 회로를 기술하는 예시이다.

```text

CR circuit

  • 0---R1---1---C1---2

R1 0 1 10

C1 1 2 20

.END

```

위 예시에서 `R1` 행의 마지막은 10\Omega, `C1` 행의 마지막은 20F를 나타낸다. `0`, `1`, `2`는 각 단자의 노드를 나타낸다. 결과적으로 저항과 캐패시터가 직렬로 연결된 회로가 된다.

이것만으로는 회로 기술만 되어 있으므로, 전기 회로로 동작시키기 위해서는 전압원(`'''V'''`로 시작하는 소자)을 추가해야 한다.

```text

CR circuit+power

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

위 예시는 앞서 언급한 회로의 양단(+측이 노드 `2`, -측이 노드 `0`)에 5V의 전압을 가한 것이다. 전원에는 직류 외에도 정현파나 펄스 파형, 정전류원 등도 지정할 수 있다. 전원도 소자와의 위치 관계를 나타내며, 다른 소자와 마찬가지로 회로 기술 내에 포함한다. 노드 `0`(그라운드)은 반드시 포함되어야 한다. 각 부분의 전압은 지정한 장소의 전위와 노드 `0`과의 전위차로 정의된다.

이를 실제로 동작시키기 위해서는 해석 내용을 지정해야 한다.

```text

CR circuit+power+transient

.TRAN 1 10

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

`.TRAN` 문은 1sec 간격으로 10sec까지 경과를 시뮬레이션하는 것(과도 해석)을 의미한다. 마침표로 시작하는 단어는 각종 제어문을 나타낸다.

시뮬레이터에서는 동작 결과를 관측할 수 있어야 한다. 다음 지정을 통해 결과를 표시할 수 있다.

```text

CR circuit+power+transient+print

.TRAN 1 10

.PRINT TRAN V(1) I(V1)

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

`.PRINT` 문으로 노드 1의 전압과 전원 `V1`의 전류를 목록으로 출력한다. `.PLOT` 문을 사용하면 결과를 그래프로 나타낼 수 있다.

콘덴서에 전하가 충전되는 것과 같은 시뮬레이션 결과를 얻기 위해서는 초기 조건의 전위를 DC 해석을 통해 자동으로 결정할 때 콘덴서가 단락 상태로 처리되므로, `.IC` 문을 사용하여 초기 조건에서의 전위를 명시적으로 지정해야 한다.

```text

CR circuit+power+transient+ic+print

.TRAN 1 10

.PRINT TRAN V(1) I(V1)

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.IC V(1)=2

.END

```

위 예시는 콘덴서 `C1`의 저항 `R1` 측 노드의 초기 전위를 2V로 설정한다. 이는 `V1`의 전압과 같으므로 콘덴서가 충전되지 않은 상태에서 시뮬레이션이 수행된다.

첫 행과 `.END` 사이의 기술 순서는 임의로 변경할 수 있다.

SPICE는 텍스트에 의한 기술을 기본으로 하지만, 상용 소프트웨어 등에서는 회로도 CAD와 통합하여 그래픽 기술도 가능해져 더욱 사용하기 쉬워졌다.

3. 3. 소자 기술 (상세)

SPICE는 다양한 전자 소자 모델을 제공하며, 집적 회로 설계에 필수적인 분석 기능과 함께 사용하기 편리하고 빠르기 때문에 널리 사용된다.[60] SPICE2는 여러 트랜지스터 모델을 포함하며, 저항, 축전기, 인덕터 (결합 포함), 전압원, 전류원, 전송선, 능동 소자, 종속 전압/전류원 등도 포함한다.[48] SPICE3는 더 정교한 MOSFET 모델(특히 UC 버클리에서 개발된 BSIM 모델군)을 추가했다.

상업용 및 산업용 SPICE 시뮬레이터는 기술 발전에 따라 여러 소자 모델을 추가했으며, Compact Model Council을 통해 모델 표준화를 추진하고 있다.[36] 현재 표준 모델에는 BSIM3, BSIM4, BSIMSOI, PSP, HICUM, MEXTRAM 등이 있다.

SPICE는 파운드리 PDK에서 소자 모델을 사용할 수 있으며, 소자 기술은 일반적으로 인스턴스 이름, 노드 이름, 파라미터 값 등으로 구성된다.

다음은 SPICE에서 사용되는 주요 소자들의 기술 형식이다.

  • '''저항 (R)'''


'''R'''인스턴스 이름 N+ N-

항목설명
인스턴스 이름인스턴스 이름.
N+플러스 단자에 연결하는 넷 이름.
N-마이너스 단자에 연결하는 넷 이름.
저항값 ().


  • '''축전기 (C)'''


'''C'''인스턴스 이름 N+ N-

항목설명
인스턴스 이름인스턴스 이름.
N+플러스 단자에 연결하는 넷 이름.
N-마이너스 단자에 연결하는 넷 이름.
용량 값 (패럿).


  • '''인덕터 (L)'''


'''L''' 인스턴스명 N+ N-

항목설명
인스턴스명인스턴스명.
N+플러스 단자에 접속하는 넷명.
N-마이너스 단자에 접속하는 넷명.
인덕턴스 값 (헨리).


  • '''결합 인덕터 (K)'''


'''K'''인스턴스명 '''L'''인스턴스명1차 '''L'''인스턴스명2차 M결합

항목설명
인스턴스명인스턴스명.
L인스턴스명1차1차측 인덕터의 소자 식별명.
L인스턴스명2차2차측 인덕터의 소자 식별명.
M결합결합 계수.


  • '''전압원 (V)'''


'''V'''인스턴스 이름 N+ N- [옵션 ]

항목설명
인스턴스 이름인스턴스 이름.
N+플러스 단자에 접속하는 넷 이름.
N-마이너스 단자에 접속하는 넷 이름.
옵션 교류·직류 구분, 형식, 전압 값 등.


  • '''전류원 (I)'''


'''I''' 인스턴스 이름 N+ N- [옵션 ]

항목설명
인스턴스 이름인스턴스 이름.
N+플러스 단자에 연결할 넷 이름.
N-마이너스 단자에 연결할 넷 이름.
옵션 교류・직류의 구분이나 전압 값 등.


  • '''전압 제어 전류원 (G)'''


'''G''' 인스턴스명 N+ N- N제어+ N제어-

항목설명
인스턴스명인스턴스명.
N+플러스 단자에 접속하는 넷명.
N-마이너스 단자에 접속하는 넷명.
N제어+제어 전압 플러스 단자에 접속하는 넷명.
N제어-제어 전압 마이너스 단자에 접속하는 넷명.
상호 컨덕턴스 값.


  • '''전압 제어 전압원 (E)'''


'''E'''인스턴스명 N+ N- N제어+ N제어-

항목설명
인스턴스명인스턴스명.
N+플러스 단자에 접속하는 넷 이름.
N-마이너스 단자에 접속하는 넷 이름.
N제어+제어 전압 플러스 단자에 접속하는 넷 이름.
N제어-제어 전압 마이너스 단자에 접속하는 넷 이름.
전압 증폭률.


  • '''전류 제어 전류원 (F)'''


'''F'''인스턴스명 N+ N- N제어

항목설명
인스턴스명인스턴스명.
N+플러스 단자에 접속하는 넷 이름.
N-마이너스 단자에 접속하는 넷 이름.
N제어제어 전류가 있는 전압원의 노드명.
전류 증폭률.


  • '''전류 제어 전압원 (H)'''


'''H'''인스턴스 이름 N+ N- N제어

항목설명
인스턴스 이름인스턴스 이름.
N+플러스 단자에 접속하는 넷 이름.
N-마이너스 단자에 접속하는 넷 이름.
N제어제어 전류가 있는 전압원의 노드명.
상호 저항 값.


  • '''다이오드 (D)'''


'''D'''인스턴스명 NA NK 모델명 [옵션 ]

항목설명
인스턴스명인스턴스명.
NA애노드 단자에 연결하는 넷 이름.
NK캐소드 단자에 연결하는 넷 이름.
모델명모델명.
옵션 옵션


  • '''BJT (Q)'''


'''Q'''인스턴스명 NC NB NE 모델명 [옵션 ]

항목설명
인스턴스명인스턴스명.
NC컬렉터 단자에 접속하는 넷 이름.
NB베이스 단자에 접속하는 넷 이름.
NE이미터 단자에 접속하는 넷 이름.
모델명모델명.
옵션 옵션


  • '''JFET (J)'''


'''J'''인스턴스 이름 ND NG NS [NB] 모델 이름 [옵션 ]

항목설명
인스턴스 이름인스턴스 이름.
ND드레인 단자에 연결할 넷 이름.
NG게이트 단자에 연결할 넷 이름.
NS소스 단자에 연결할 넷 이름.
NB벌크 단자(백 게이트 단자)에 연결할 넷 이름.
모델 이름모델 이름.
옵션 옵션


  • '''MOSFET (M)'''


'''M'''인스턴스 이름 ND NG NS [NB] 모델명 [옵션 ]

항목설명
인스턴스 이름인스턴스 이름
ND드레인 단자에 접속하는 넷 이름
NG게이트 단자에 접속하는 넷 이름
NS소스 단자에 접속하는 넷 이름
NB벌크 단자 (백 게이트 단자)에 접속하는 넷 이름
모델명모델명
옵션 옵션


  • '''전송선 (T)'''


'''T'''인스턴스 이름 N1+ N1- N2+ N2- '''Z0='''

항목설명
인스턴스 이름인스턴스 이름.
N1+1차측 + 단자에 접속하는 넷 이름.
N1-1차측 - 단자에 접속하는 넷 이름.
N2+2차측 + 단자에 접속하는 넷 이름.
N2-2차측 - 단자에 접속하는 넷 이름.
특성 임피던스 값.


  • '''Lossy Transmission Line (O)'''


'''O'''인스턴스 이름 N1+ N1- N2+ N2- 모델 이름

항목설명
인스턴스 이름인스턴스 이름.
N1+1차측 + 단자에 연결하는 넷 이름.
N1-1차측 - 단자에 연결하는 넷 이름.
N2+2차측 + 단자에 연결하는 넷 이름.
N2-2차측 - 단자에 연결하는 넷 이름.
모델 이름모델 이름.


  • '''RC 전송 선로 (U)'''


'''U''' 인스턴스명 N1 N2 N3 모델명 '''L='''length [옵션 ]

항목설명
인스턴스명인스턴스명.
N1RC 전송 선로가 연결하는 노드의 넷 이름.
N2RC 전송 선로가 연결하는 노드의 넷 이름. N1의 반대쪽.
N3캐패시터가 연결되는 넷 이름.
lengthRC 전송 선로의 길이.
옵션 옵션


3. 4. 제어문 (상세)

SPICE에서 제어문은 분석 종류, 조건, 출력 등을 지정하는 데 사용된다. SPICE는 텍스트 기반으로 회로, 동작, 제어문 등을 기술하며, 각 항목은 행 단위로 작성된다. 여러 행에 걸쳐 기술할 때는 다음 행의 선두에 `+`를 사용한다. 명령어는 마침표(`.` )로 시작한다.

첫 행은 표제가 되고, 다음 행부터 회로 및 제어문을 기술한다. 회로망은 SPICE 형식의 넷리스트로 표현하며, 마지막 행은 `.END`로 종료한다. `.END` 다음 행은 새로운 회로 기술로 인식되어 여러 회로의 시뮬레이션이 가능하다.

회로 기술은 한 행에 하나의 소자를 기술한다. 각 행의 머리에는 소자의 인스턴스명(고유 이름)을 쓰고, 첫 글자로 소자 종류를 나타낸다. (저항은 `R`, 인덕턴스는 `L` 등). 이어서 소자의 각 단자가 연결되는 노드명을 기술하고, 마지막으로 소자의 특성값 등을 기술한다. 인스턴스명, 노드명 등은 공백 문자로 구분한다. 행 머리가 `*` 인 행은 주석이다.
예시:```

CR circuit

  • 0---R1---1---C1---2

R1 0 1 10

C1 1 2 20

.END

```

위 예시에서 `R1` 행의 마지막은 10Ω, `C1` 행의 마지막은 20F를 나타낸다. `0`, `1`, `2`는 각 단자의 노드를 나타낸다. 결과적으로 저항과 커패시터가 직렬 연결된 회로가 된다.

전원을 추가하려면 다음과 같이 전압원(`V`로 시작하는 소자)을 부가한다.

```

CR circuit+power

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

이 예시는 회로 양단(+측 노드 `2`, -측 노드 `0`)에 5V 전압을 가한 것이다. 전원에는 직류 외에 정현파, 펄스 파형, 정전류원 등도 지정할 수 있다. 전원도 소자와의 위치 관계이며, 회로 기술 내에 포함한다. 노드 `0` (그라운드)은 반드시 포함되어야 한다.
해석 지정:```

CR circuit+power+transient

.TRAN 1 10

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

`.TRAN` 문은 1초 간격으로 10초까지 과도 해석을 수행하는 것을 의미한다. 마침표로 시작하는 단어는 각종 제어문을 나타낸다.
결과 표시:```

CR circuit+power+transient+print

.TRAN 1 10

.PRINT TRAN V(1) I(V1)

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.END

```

`.PRINT` 문으로 노드 1의 전압과 전원 `V1`의 전류를 목록으로 출력한다. `.PLOT` 문으로 그래프화할 수도 있다.
초기 조건 설정:SPICE는 과도 해석 전 DC 해석으로 초기 조건 전위를 결정하므로, 콘덴서가 충전된 상태로 시작될 수 있다. `.IC` 문으로 초기 조건 전위를 명시해야 한다.

```

CR circuit+power+transient+ic+print

.TRAN 1 10

.PRINT TRAN V(1) I(V1)

  • 0---R1---1---C1---2---V1---0

R1 0 1 10

C1 1 2 20

V1 2 0 5

.IC V(1) = 2

.END

```

위 예시는 콘덴서 `C1`의 저항 `R1` 측 노드 초기 전위를 2V로 설정한다.
주요 제어문 상세:

  • `.IC` : 초기 조건을 설정한다.
  • 구문: `.IC` `V`인스턴스명1=초기값1 [`V`네트명2=초기값2 …]


  • `.TRAN` : 과도 해석을 수행한다.
  • 구문: `.TRAN` 시간 간격 최종 시간 [옵션 …]


  • `.DC` : DC 스위프 해석을 수행한다.
  • 구문: `.DC` 대상 인스턴스명 시작 값 종료 값 증분 값 [옵션 …]


  • `.TEMP` : 온도를 설정한다.
  • 구문: `.TEMP` 온도


  • `.OPTIONS` : 시뮬레이션 옵션을 설정한다.
  • 구문: `.OPTIONS` 옵션1 [옵션2 …]


3. 5. 분석

SPICE2는 다음과 같은 분석 기능을 제공한다.[60]

분석 종류설명
AC 분석선형 소신호 주파수 영역 분석
DC 분석비선형 정지점 계산
DC 전달 곡선 분석입력 전압, 전류 또는 회로 파라미터를 변경하면서 계산되는 일련의 비선형 동작점
잡음 분석선택된 출력 지점에서 상관되지 않은 잡음 전류를 합산하는 소신호 분석
전달 함수 분석소신호 입력/출력 이득 및 임피던스 계산
과도 응답 분석비선형 미분 대수 방정식의 시간 도메인 대신호 해



SPICE는 주로 비선형 회로 모델을 사용하기 때문에, 소신호 분석을 하려면 회로가 선형에 가깝게 되는 정지점 계산이 반드시 필요하다. SPICE2는 민감도 분석, 극점-영점 분석, 소신호 왜곡 분석과 같은 다른 소신호 분석 기능도 제공한다.[60] 극한 기후에서의 시뮬레이션을 위해 반도체 모델 매개변수를 자동으로 갱신하는 기능도 있다.

3. 6. 출력

SPICE2는 텍스트로 된 넷리스트를 받아 문장으로 출력하거나, 문자로 된 "그림"으로 출력했다. SPICE3는 이전 방식과 함께 C 셸과 비슷한 명령 줄 인터페이스를 제공하며, X 윈도우 시스템 방식도 추가되었다.[48][60][61][62]

4. 적용 분야

SPICE는 일반적으로 비선형 미분 대수 방정식을 풀기 때문에 전기적 영역을 넘어선 시뮬레이션에도 적용될 수 있다.[37]

가장 두드러지는 것은 '''열 시뮬레이션'''인데, 열 시스템은 전자 SPICE 요소에 매핑되는 럼프 회로 소자로 설명될 수 있기 때문이다(열 용량 → 정전 용량, 열 전도/저항 → 전도/저항, 온도 → 전압, 열 흐름 또는 열 발생 → 전류 [37]). 열 시스템과 전자 시스템은 전력 소비와 냉각 시스템으로 밀접하게 연결되어 있으므로, 오늘날에는 반도체 장치 제조업체에서 전기 및 열 노드 모두를 갖춘 (트랜지스터) 모델을 제공하여 전기 열 시뮬레이션을 지원한다.[38] 따라서 단일 시뮬레이션 실행에서 매개변수 변화를 일으키는 자체 발열을 유발하는 전력 소모와 냉각 시스템 효율을 얻을 수 있다.

SPICE는 모터 드라이브의 전자 부품을 매우 잘 시뮬레이션할 수 있다. 하지만 모터의 '''전기 기계''' 모델도 마찬가지로 잘 설명할 수 있다. 이것은 기계적 요소를 전기적 요소에 매핑함으로써 다시 달성된다(토크 → 전압, 각속도 → 전류, 점성 마찰 계수 → 저항, 관성 모멘트 → 인덕턴스).[39] 따라서 최종 모델은 SPICE 호환 럼프 회로 소자로만 구성되지만, 시뮬레이션 중에 전기 데이터와 함께 기계 데이터를 얻을 수 있다.[40]

'''전자기 모델링'''은 PEEC(부분 요소 등가 회로) 방법을 통해 SPICE 시뮬레이터에 액세스할 수 있다.[41] 맥스웰 방정식이 매핑되었고, RLC, 스킨 효과, 유전체 또는 자기 재료, 입사 또는 방사된 필드가 모델링되었다.

그러나 2019년 현재 SPICE는 "'''광자 회로 시뮬레이터'''에서 광학과 전자를 함께 시뮬레이션하는 데" 사용할 수 없으며,[42] 따라서 광자 집적 회로의 테스트 시뮬레이터로 아직 간주되지 않는다.

'''미세 유체 회로'''는 공압 FET을 생성하여 SPICE로 모델링되었다.[43]

SPICE는 '''생물학적 및 전자 시스템''' 간의 인터페이스를 모델링하는 데 적용되었으며, 예를 들어 합성 생물학 설계 도구 및 바이오센서와 랩온칩의 가상 프로토타이핑에 사용되었다.[44]

SPICE는 교란된 '''운영 연구''' 공급망을 평가하는 데 적용되었다.[45]

5. 한국의 SPICE 활용 및 기여

SPICE는 학계와 산업계에서 널리 사용되며, 많은 회로 시뮬레이션 프로그램의 기반이 되었다. 카덴스 디자인 시스템의 PSPICE와 시놉시스의 HSPICE는 가장 유명한 상업용 SPICE 프로그램이다.[57] Analog Devices의 ADICE, Linear Technology의 LTspice와 같이, 특히 대규모 IC 제조업체들은 자체적으로 SPICE 기반 회로 시뮬레이션 프로그램을 개발하는 팀을 운영하고 있다.[58]

참조

[1] 간행물 SPICE (Simulation Program with Integrated Circuit Emphasis) http://www.eecs.berk[...] University of California, Berkeley 1973-04
[2] 간행물 SPICE2: A Computer Program to Simulate Semiconductor Circuits https://www.eecs.ber[...] University of California, Berkeley 1975-05
[3] 웹사이트 SPICE Simulators. https://besttechview[...] BTV 2023-01-02
[4] 학술지 Everything you always wanted to know about SPICE* (*But were afraid to ask) http://www.nutwooduk[...] 2009-05
[5] 학술지 Computer Analysis of Nonlinear Circuits, Excluding Radiation 1971-08
[6] 웹사이트 Life of SPICE http://www.designers[...]
[7] 학술지 Donald O. Pederson 1998-06
[8] 서적 The SPICE Book John Wiley & Sons, Inc. 1994
[9] 학술지 The modified nodal approach to network analysis 1975-06
[10] 웹사이트 Recollections of the "The Father of SPICE" Larry Nagel https://ltwiki.org/i[...] ltwiki.org 2024-02-21
[11] 웹사이트 The Origins of SPICE http://www.omega-ent[...] omega-enterprises.net 2024-02-21
[12] 문서 "A Historical Review of Circuit Simulation." IEEE Transactions on Circuits and Systems 1984-01
[13] 문서 Analysis of Performance and Convergence Issues for Circuit Simulation University of California, Berkeley 1989-04
[14] 웹사이트 history-of-spice http://www.allaboutc[...]
[15] 웹사이트 1972: The release of SPICE, still the industry standard tool for integrated circuit design http://www.coe.berke[...] 2007-03-10
[16] 웹사이트 List of IEEE Milestones http://www.ieeeghn.o[...] IEEE 2011-08-04
[17] 웹사이트 Donald O. Pederson Solid-State Circuits Award https://sscs.ieee.or[...] IEEE Solid-State Circuits Society 2018-06
[18] 웹사이트 The Spice Page http://bwrcs.eecs.be[...]
[19] 서적 '[Proceedings] 1992 IEEE International Symposium on Circuits and Systems'
[20] 문서 CODECS: A Mixed-Level Circuit and Device Simulator http://www.eecs.berk[...] Berkeley 1988
[21] 웹사이트 "ngspice, current status and future developments" https://fosdem.org/2[...] FOSDEM 2019
[22] 웹사이트 ngspice - an open source mixed signal circuit simulator https://peertube.f-s[...] Free Silicon Foundation (F-Si) 2019-07-08
[23] 웹사이트 WRspice https://github.com/w[...] Whiteley Research 2021-05-07
[24] 웹사이트 QUCS-S software https://ra3xdh.githu[...]
[25] 웹사이트 Xyce software, Sandia National Laboratories. https://xyce.sandia.[...]
[26] 서적 Proceedings on Bipolar Circuits and Technology Meeting
[27] 문서 The Designer's Guide to SPICE and Spectre Kluwer. Academic Publishers, Boston 1995
[28] 웹사이트 SPICE-Based Analog Simulation Program - TINA-TI - TI Software Folder http://www.ti.com/to[...]
[29] 서적 Operational Amplifier Noise: Techniques and Tips for Analyzing and Reducing Noise https://books.google[...] Elsevier
[30] 서적 Op Amps for Everyone https://books.google[...] Newnes
[31] Video PSPICE Circuit Simulation Overview: Part 1 https://nescacademy.[...] 2012-08
[32] 문서 Is it Time for SPICE4? http://www.cs.sandia[...] 2004
[33] 학술지 BIAS-3: A program for nonlinear D.C. analysis of bipolar transistor circuits 1971-02
[34] 학술지 SLIC: A simulator for linear integrated circuits 1971-08
[35] 서적 2015 7th International Congress on Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT) 2015
[36] 웹사이트 CMC - Compact Model Council http://www.geia.org/[...] GEIA
[37] 웹사이트 ngspice tutorial on electro-thermal simulation http://ngspice.sourc[...] 2022-05-06
[38] 웹사이트 Thermal Modeling of Power-electronic Systems https://www.iisb.fra[...] Fraunhofer IISB 2022-05-06
[39] 웹사이트 AB-025: Using SPICE To Model DC Motors https://www.precisio[...] Precision Microdrives 2021-09-22
[40] 논문 Circuit Modeling and SPICE Simulation of Mixed-Signal Microsystems https://www.myukk.or[...] 1998
[41] 서적 Circuit Oriented Electromagnetic Modeling Using the PEEC Techniques https://books.google[...] Wiley
[42] 논문 Silicon Photonics Circuit Design: Methods, Tools and Challenges 2018-04
[43] 서적 2011 IEEE 24th International Conference on Micro Electro Mechanical Systems IEEE 2011
[44] 논문 Modeling and simulation of biological systems using SPICE language 2017
[45] 논문 Network simulation method for the evaluation of perturbed supply chains on a finite horizon https://zbmath.org/?[...] 2021
[46] 문서 SPICE (Simulation Program with Integrated Circuit Emphasis)
[47] 문서 SPICE2: A Computer Program to Simulate Semiconductor Circuits
[48] 저널 인용 Everything you always wanted to know about SPICE* (*But were afraid to ask) http://www.nutwooduk[...] Nutwood UK Limited 2009-05
[49] 저널 인용 Computer Analysis of Nonlinear Circuits, Excluding Radiation http://ieeexplore.ie[...] 1971-08
[50] 웹인용 Life of SPICE http://www.designers[...] 2011-02-23
[51] 저널 인용 Donald O. Pederson 1998-06
[52] 문서 2nd spice1 ref
[53] 문서 2nd spice2 ref
[54] 문서 Analysis of Performance and Convergence Issues for Circuit Simulation
[55] 웹사이트 history-of-spice on allaboutcircuits.com http://www.allaboutc[...]
[56] 뉴스 1972: The release of SPICE, still the industry standard tool for integrated circuit design http://www.coe.berke[...] Lab Notes: Research from the Berkeley College of Engineering 2002-05-02
[57] 문서 SPICE -- The Third Decade Proc. 1990 IEEE Bipolar Circuits and Technology Meeting, Minneapolis, Sept. 1990, pp. 96–101
[58] 문서 The Designer’s Guide to SPICE and Spectre Kluwer. Academic Publishers, Boston , 1995
[59] 웹인용 List of IEEE Milestones http://www.ieeeghn.o[...] IEEE 2011-08-04
[60] 웹사이트 Is it Time for SPICE4? http://www.cs.sandia[...] 2004-06-23
[61] 저널 인용 BIAS-3 – A program for nonlinear D.C. analysis of bipolar transistor circuits http://ieeexplore.ie[...] 1971-02
[62] 저널 인용 SLIC—a simulator for linear integrated circuits http://ieeexplore.ie[...] 1971-08
[63] 저널 인용 Limitations of PLL simulation: hidden oscillations in SPICE analysis https://archive.org/[...] 2015



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com