SPICE (전자 회로 시뮬레이션)
"오늘의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의 주요 버전별 개발 과정은 다음과 같다.
버전 | 연도 | 언어 | 특징 |
---|---|---|---|
SPICE1 | 1973년 | FORTRAN | 노달 회로분석 사용, 제한된 기능 |
SPICE2 | 1975년 | FORTRAN | 더 많은 소자, 노달변형 회로분석, 개선된 과도신호 분석 |
SPICE2G.6 | 1981년 | FORTRAN | 상용 버전의 기반 |
SPICE3 | 1985년 | C | X 윈도우 시스템 방식 추가, 동일 문법 사용 |
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 | 오픈 소스 |
LTspice | Linear Technology |
TINA-TI | 텍사스 인스트루먼트 |
SPICE는 트랜지스터, 저항, 축전기 등 회로 요소와 그 연결을 기록한 텍스트 기반의 넷리스트를 입력받아 방정식을 풀고, 비선형 적분, 뉴턴 방법, 희소행렬 등의 방식으로 결과를 제공한다.[4] 1975년에 주로 사용된 SPICE2는 텍스트 넷리스트를 입력받아 숫자 열이나 문자 "플롯" 형태의 라인 프린터 출력을 생성했다. SPICE3는 넷리스트를 유지하면서도 C 셸과 유사한 명령 줄 인터페이스를 통해 분석을 제어하고, X 플로팅을 추가했다.[48]
3. 프로그램 특징 및 구조
최근에는 업체들과 다양한 자유 소프트웨어 프로젝트를 통해 회로도 캡처 프론트엔드가 추가되어, 회로도를 직접 그리면 프로그램이 자동으로 넷리스트를 생성하는 기능이 지원된다. 또한, 그래픽 사용자 인터페이스가 추가되어 전압과 전류 출력값을 벡터로 조작하고, 파형을 볼 수 있는 그래픽 도구들도 제공된다.
3. 1. 입력 형식: 넷리스트
넷리스트는 회로 요소( 저항, 커패시터, 인덕터, 트랜지스터 등)와 그 연결 관계를 텍스트로 기술한 것이다. 각 행은 소자의 인스턴스 이름, 연결되는 노드 이름, 소자의 특성값 등으로 구성된다. 주석은 `*`로 시작한다.[4]
회로 기술은 한 행에 하나의 소자를 기술한다. 각 행의 맨 앞은 소자의 인스턴스명(고유한 이름)을 나타내며, 첫 번째 문자가 소자 종류를 나타낸다. 저항은 `'''R'''인스턴스명`, 인덕턴스는 `'''L'''인스턴스명`과 같은 이름이 된다. 이어서, 소자의 각 단자가 연결되는 노드명을 기술하고, 마지막으로 소자의 특성값 등을 기술한다. 인스턴스명, 노드명 등의 구분에는 공백 문자를 사용한다.
행 머리글자가 `*`인 행은 주석이다.
'''간단한 예시 1: CR 회로'''
```text
CR circuit
R1 0 1 10
C1 1 2 20
.END
```
위 예시에서 R1 행의 마지막은 10Ω, C1 행의 마지막은 20F를 나타낸다. 0, 1, 2는 각각 단자의 노드를 나타낸다. 결과적으로 저항과 커패시터가 직렬로 연결된 회로가 된다.
이것만으로는 회로 기술만 되어 있고, 전기 회로로 동작하지 않는다. 회로로 동작시키기 위해서는, 예를 들어 다음과 같이 전압원(`'''V'''`로 시작하는 소자)을 추가한다.
'''간단한 예시 2: CR 회로 + 직류 전원'''
```text
CR circuit+power
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
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)
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)
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
R1 0 1 10
C1 1 2 20
.END
```
위 예시에서 `R1` 행의 마지막은 , `C1` 행의 마지막은 를 나타낸다. `0`, `1`, `2`는 각 단자의 노드를 나타낸다. 결과적으로 저항과 캐패시터가 직렬로 연결된 회로가 된다.
이것만으로는 회로 기술만 되어 있으므로, 전기 회로로 동작시키기 위해서는 전압원(`'''V'''`로 시작하는 소자)을 추가해야 한다.
```text
CR circuit+power
R1 0 1 10
C1 1 2 20
V1 2 0 5
.END
```
위 예시는 앞서 언급한 회로의 양단(+측이 노드 `2`, -측이 노드 `0`)에 의 전압을 가한 것이다. 전원에는 직류 외에도 정현파나 펄스 파형, 정전류원 등도 지정할 수 있다. 전원도 소자와의 위치 관계를 나타내며, 다른 소자와 마찬가지로 회로 기술 내에 포함한다. 노드 `0`(그라운드)은 반드시 포함되어야 한다. 각 부분의 전압은 지정한 장소의 전위와 노드 `0`과의 전위차로 정의된다.
이를 실제로 동작시키기 위해서는 해석 내용을 지정해야 한다.
```text
CR circuit+power+transient
.TRAN 1 10
R1 0 1 10
C1 1 2 20
V1 2 0 5
.END
```
`.TRAN` 문은 간격으로 까지 경과를 시뮬레이션하는 것(과도 해석)을 의미한다. 마침표로 시작하는 단어는 각종 제어문을 나타낸다.
시뮬레이터에서는 동작 결과를 관측할 수 있어야 한다. 다음 지정을 통해 결과를 표시할 수 있다.
```text
CR circuit+power+transient+print
.TRAN 1 10
.PRINT TRAN V(1) I(V1)
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)
R1 0 1 10
C1 1 2 20
V1 2 0 5
.IC V(1)=2
.END
```
위 예시는 콘덴서 `C1`의 저항 `R1` 측 노드의 초기 전위를 로 설정한다. 이는 `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'''인스턴스 이름 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 [옵션 …]
항목 | 설명 |
---|---|
인스턴스명 | 인스턴스명. |
N1 | RC 전송 선로가 연결하는 노드의 넷 이름. |
N2 | RC 전송 선로가 연결하는 노드의 넷 이름. N1 의 반대쪽. |
N3 | 캐패시터가 연결되는 넷 이름. |
length | RC 전송 선로의 길이. |
옵션 … | 옵션 |
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 …]
분석 종류 | 설명 |
---|---|
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