개요
이 글은 서드파티 SPICE 모델을 LTspice®에 가져오는 방법을 단계별로 설명한다. 서로 다른 두 가지 모델 유형을 가져오는 과정은 .MODEL 지시문으로 구현된 모델과 .SUBCKT 블록으로 구현된 모델이라는 두 가지 모델 유형을 다룬다. 제시된 단계는 다른 사람과 회로도를 공유할 때 최대한의 이식성을 보장하기 위한 것이다.
머리말
LTspice®는 회로도를 좀더 수월하게 생성하고 신속하게 시뮬레이션 할 수 있게 해준다. 때로는 설계를 구상하는 가장 좋은 출발점은 이상적인 회로 요소를 사용하는 것이다. 그러나 회로 설계 엔지니어는 초기의 단순한 회로도를 보다 현실적인 부품 모델로 개선해야 할 수도 있다. LTspice에는 다양한 서드파티 제조사 모델이 포함되어 있다. 이러한 모델을 사용하려면 부품을 마우스 오른쪽 버튼으로 클릭한 뒤 속성 창에서 Pick을 클릭하고 그 다음 생성되는 창에서 원하는 부품을 하나 선택하면 된다.
LTspice 부품 라이브러리에 없는 모델의 경우, 외부 소스의 부품 모델을 LTspice로 가져올 수 있다. 이를 수행하기 위한 단계는 부품의 종류와 모델 문법에 따라 달라진다.
SPICE 모델에는 두 가지 유형이 있다. 하나는 .MODEL 지시문으로 회로 동작을 정의하는 방식이고 다른 하나는 .SUBCKT 지시문으로 회로 동작을 정의하는 방식이다. 이 글은 이 두 가지 모델 유형을 가져오는 방법을 안내한다.
.MODEL 지시문 가져오기
.MODEL 지시문으로 모델링된 부품의 경우, 해당 모델을 LTspice에 가져오는 과정은 비교적 간단하다. .MODEL 지시문은 단일 코드 라인으로 구성되며, 이 안에는 디바이스 이름, 디바이스 유형, 그리고 해당 모델의 파라미터 값들이 포함된다. 일부 모델은 다음과 같이 매우 단순하고 이상화된 형태일 수 있다:

제조회사가 제공하는 모델은 훨씬 더 복잡하다. 예를 들어:

이 예제는 한 줄의 코드로 구성되며, + 문자는 해당 줄이 이전 줄의 연속임을 LTspice에 알려준다.
.MODEL 지시문과 관련 모델 파라미터에 대한 더 많은 정보는 LTspice 매뉴얼의 .MODEL 지시문 도움말 항목을 참고하면 된다. LTspice 메뉴에서 Help > LTspice Help를 선택하면 LTspice 매뉴얼에 접근할 수 있다.
회로도에 .MODEL 지시문 직접 삽입하기
하나의 방법은 .MODEL 문을 회로도에 직접 삽입하는 것이다. 회로도에 SPICE 지시문을 추가하려면 메뉴에서 Edit > SPICE Directive를 선택하거나, 키보드로 마침표(.)를 입력해 회로도 텍스트 편집 대화 상자(Edit Text on the Schematic)를 열어야 한다. 입력란에 .MODEL 문을 복사해 붙여 넣은 뒤 OK를 클릭하고, 회로도에 해당 텍스트를 배치한다
다음 단계는 회로도에 부품 심볼을 추가하고, 해당 심볼이 새로 삽입한 .MODEL 지시문을 가리키도록 설정하는 것이다. 이 예제에서 1N5244B1은 제너(Zener) 다이오드이므로, 메뉴에서 Edit > Component를 선택한 뒤 목록에서 zener를 선택해 회로도에 배치한다. 이때 반드시 범용 심볼을 사용해야 하며, ADI 부품을 직접 선택해서는 안 된다. 예를 들어 연산 증폭기 모델을 가져올 경우 AD822 대신 “opamp2” 심볼을 사용해야 한다.
부품 심볼과 .MODEL 지시문을 연결하려면 부품의 값(value) 필드를 마우스 오른쪽 버튼으로 클릭한다. 부품을 처음 배치하면 기본값은 “D”라는 플레이스홀더 값으로 지정된다. 그 다음에는 Enter New Value 대화 상자에 모델명을 입력한다. 이 예제에서는 모델명이 1N5244B1이다
이 예제를 더 자세히 살펴보려면 압축 파일에 포함된 intrinsic_model_embedded.asc 회로도를 참고하라.
텍스트 파일에서 .MODEL 지시문 가져오기
.MODEL 지시문을 사용하는 또 다른 방법은 모델 정보를 별도의 텍스트 파일에 저장하는 것이다. 모델 정보를 파일에 유지하면 회로도가 복잡해지는 것을 줄일 수 있으며, 이는 특히 모델이 길고 복잡할 때 유용하다.
가장 간단한 방법은 모델 텍스트 파일을 회로도와 같은 디렉터리에 두고, .LIB 지시문으로 해당 내용을 불러오는 것이다. .LIB 지시문을 추가하려면 메뉴에서 Edit > SPICE Directive를 선택하거나 마침표(.)를 입력해 Edit Text on the Schematic 대화 상자를 열어야 한다. 만약 모델 파일이 회로도 파일과 동일한 디렉터리에 있다면, .LIB <파일명> 형식으로 입력하면 된다. 이 예제에서 파일명은 1N5244B.txt이다.
부품과 모델명을 연결하는 방법은 앞에서 설명한 방식과 동일하다. 이 예제에서 모델명은 1N5244B1이다
파일명과 그 안에 포함된 모델명이 반드시 일치할 필요는 없다. 또한 하나의 파일에 여러 개의 모델 지시문이 포함될 수 있으므로, 부품 값에는 파일명이 아니라 반드시 모델명을 지정해야 한다.
이 예제를 더 살펴보려면 intrinsic_model_lib_file.asc 파일을 참고하라.
.SUBCKT 모델 가져오기
회로도에 .SUBCKT 모델을 포함하는 방법은 앞에서 설명한 .MODEL 지시문을 포함하는 과정과 동일하다. 메뉴에서 Edit > SPICE Directive를 선택해 모델 내용을 회로도에 텍스트로 복사 및 붙여넣거나, .LIB 문을 사용해 서브회로 정의 파일의 내용을 회로도로 불러올 수 있다.
단, 가져온 .SUBCKT 모델에 부품 심볼을 배치하고 연결하는 과정은 .MODEL 지시문을 사용할 때와는 약간 다른데, 이에 대해서는 다음에서 좀더 자세히 설명한다.
.SUBCKT 모델 사용: 기존 심볼 재활용하기
.SUBCKT 모델이 LTspice 라이브러리에 이미 있는 표준 심볼과 잘 맞는 경우, 해당 심볼을 가져온 .SUBCKT 모델에 연결하기만 하면 된다.
예를 들어, .SUBCKT 모델과 기존 회로도를 시작점으로 삼아 이 회로도의 Si7884DP NMOS 부품을 NXP PSMN2R2-30YLC를 위해 가져온 모델로 교체하는 단계를 살펴보자. 이 모델은 PSMN2R2_30YLC.txt라는 .SUBCKT 파일로 제공되며, 헤더 정보에는 다음과 같은 내용이 포함돼 있다:

모델명은 PSMN2R2-30YLC이고, 이어서 핀 이름 DRAIN, GATE, SOURCE가 정의돼 있다. 핀 이름의 순서는 중요하며, 이에 대해서는 뒤에서 다룬다.
이 부품은 NMOS이므로 LTspice 라이브러리의 NMOS 심볼을 재사용하는 것이 가장 쉽다. NMOS 부품을 배치하려면 키보드에서 P를 입력하거나 메뉴에서 Edit > Component를 선택한 후 목록에서 nmos를 선택해 Place를 클릭하고, 회로도에서 원하는 위치에 NMOS 심볼을 배치한다.
그림 5의 예제 회로도에서 Q1은 가져온 .SUBCKT 모델을 올바르게 가리키고 있다. 모델명 PSMN2R2-30YLC가 Q1의 값으로 지정된 것을 확인할 수 있다.
이 예제 회로도에서는 Q1이 이미 가져온 PSMN2R2-30YLC 모델을 가리키도록 설정되어 있다. 동일한 모델을 Q2에 연결하는 절차는 다음과 같다. subckt_with_included_symbol.asc 예제 회로도를 열어 아래 단계를 따라할 것을 제안한다.
.SUBCKT 모델을 Q2에 연결하려면 Q2를 CTRL + 마우스 오른쪽 버튼으로 클릭해 Component Attribute Editor를 연다. Value 항목을 해당 모델의 헤더에 정의된 서브회로 이름과 동일한 PSMN2R2-30YLC로 변경한다.
중요: 접두사를 X로 변경
다음으로, 접두사(prefix)를 X로 변경해야 한다. 이는 .SUBCKT 모델을 심볼에 연결할 때 반드시 필요한 절차이며, .MODEL 지시문을 가져올 때는 추가할 필요가 없던 단계이다.
LTspice 라이브러리에서 NMOS 심볼의 핀 순서가 가져온 모델과 일치하는지 확인하려면 이 대화 상자에서 Open Symbol 버튼을 클릭한다. 그러면 심볼 에디터가 열리고, 메뉴에서 View > Pin Table을 선택해 핀 순서를 확인할 수 있다(그림 7). 이를 통해 DRAIN, GATE, SOURCE의 핀 순서가 PSMN2R2-30YLC .SUBCKT 정의 순서와 일치하는지 여부를 확인할 수 있다.
.SUBCKT 모델 사용: 새로운 심볼 생성
.SUBCKT 모델이 기존 심볼과 잘 맞지 않는 경우, LTspice에서 서브회로와 함께 사용할 새로운 심볼을 자동 생성할 수 있다. 자료에 포함된 LPF.cir 파일이 그 간단한 예시이다.
이 예제에서 .SUBCKT 이름인 lowpass를 마우스 오른쪽 버튼으로 클릭한다. Create Symbol을 선택한 뒤 Save를 클릭한다. 새로 생성된 심볼은 반드시 모델 파일과 동일한 디렉터리에 저장해야 한다
이 과정을 거치면 자동 생성된 심볼이 만들어진다. 새 심볼은 LTspice에서 자동으로 열린다
심볼 속성에서 하드코딩된 모델 경로 제거하기
LTspice에서 새 심볼을 연 상태에서 심볼을 마우스 오른쪽 버튼으로 클릭하여 Attributes > Edit Attributes를 선택한다. ModelFile 속성에 추가된 경로 정보가 있다면 이를 삭제해 심볼의 이식성을 높인다. OK를 클릭한 뒤 Save를 눌러 저장한다.
이 때, .SUBCKT 모델을 회로도에 반드시 포함시켜야 한다. 이는 .LIB 지시문을 사용하거나, .SUBCKT 블록을 회로도에 직접 텍스트로 삽입하는 방식으로 가능하다. 그림 13은 .SUBCKT 블록을 회로도에 직접 삽입하는 방법을 보여준다.
새로 생성된 심볼 편집
새 심볼이 생성되면 모델의 기능을 더 잘 반영하도록 편집할 수 있다. Move 도구(M 키를 누르거나 Edit > Move 선택)를 사용해 핀 위치를 재배치하면 보다 직관적인 형태로 재배열할 수 있다.
새 심볼을 회로도에 배치하기
심볼 파일(.asy)과 해당 서브회로 파일(.cir)은 회로도 파일(.asc)과 동일한 디렉터리에 두어야 한다. 회로도에 새 심볼을 배치하려면 P 키를 누르거나 메뉴에서 Edit > Component를 선택해 Component 대화 상자를 열어야 한다. 디렉터리 드롭다운에서 Schematic Directory를 선택하고 새로 생성한 심볼을 고른다
Place를 클릭한 뒤 회로도에서 원하는 위치를 클릭해 심볼을 배치한다.
사용자 정의 심볼과 모델이 포함된 시뮬레이션 파일 공유
회로도를 다른 사람과 공유할 때는 반드시 회로도 파일(.asc), 심볼 파일(.asy), 그리고 .LIB 지시문으로 불러온 모든 파일을 동일한 디렉터리에 모아 압축해야 한다.
결론
LTspice에는 이미 실제 사용 가능한 많은 부품 모델이 포함되어 있지만, 서드파티 모델을 가져오면 부품 공급회사에서 제공하는 다양한 모델을 활용할 수 있는 유연성이 생긴다. 이 글에서 설명한 단계들은 다른 사람과 손쉽게 공유할 수 있는 동작 가능한 회로도를 구축하는 데 필요한 지침을 제공한다.
헬로티 김재황 기자 |














































