LTSpice에 모든 논리 게이트 추가하기

LTSpice에도 몇 가지 "동작 논리 게이트"는 있지만, 표준 입력 개수와 전원 공급 용 포트(일부 시스템은 5V를, 일부는 3.3V를, 그리고 일부는 다른 기준 전압을 사용)가 있는 기본 게이트들을 모으는 것도 나쁘진 않습니다. 아마 온라인에서 보다 더 잘 동작하는 여러 모델들을 구할 수 있을 것이므로, 본 게시글은 주로 실험과 어떻게 NAND 게이트를 조합해서 모든 기본 논리 게이트를 만들 수 있는 지에 대한 이해가 목적임을 염두에 두시기 바랍니다. NAND 게이트를 모델링하는 방법에 대해 잘 모른다면 MOSFET을 사용한 논리 게이트에 대한 다음 이전 게시글을 살펴보시기 바랍니다: NAND 게이트의 MOSFET 모델. 본 게시글의 마지막에서 모든 심볼과 회로를 다운로드 받을 수 있을 것입니다.

SPICE directive를 사용한 NAND 게이트 모델

최종 회로도는 다음과 같을 것이며, 자세한 내용은 아래에서 다루겠습니다:

MOSFET 모델 커스터마이징

LTSpice의 라이브러리에는 많은 부품들이 있지만, 가끔은 특정 매개변수를 사용해 부품을 정의하는 것이 더 나을 수 있습니다. 위의 이전 게시글에 사용된 MOSFET도 제대로 동작할 수 있도록 특정 값을 사용합니다. LTSpice에는 매수변수를 커스터마이징 할 수 있는 pmos4 및 nmos4라는 두 가지 모델이 있습니다.

pmos4

“모델” 이름으로 혼동하지 않도록 "M4"를 고유한 이름으로 변경해야 합니다. "모델"의 기본값은 PMOS 및 NMOS입니다. 여기서는 PMODA, PMODB, NMODA 및 NMODB로 이름을 바꿨습니다.

MOSFET 매개변수

최소한 다음 매개변수들은 반드시 포함되어야 합니다: KP (트랜스컨덕턴스), gamma (벌크 임계 파라미터), phi (표면 반전 전위), lambda (채널 길이 변조), L (채널 길이), W (채널 폭), 및 VTO (제로 바이어스 임계 전압). 이 매개변수들에 커스텀 값을 추가하기 위해서는 “S” 키를 눌러 NMOSFET과 PMOSFET에 SPICE directive를 추가해야 합니다. 입력 내용은 아래와 같습니다:

 .model yourModelName nmos (KP=200u GAMMA=0.9 phi=0.6 lambda=0.02 VTO=0.7)

"yourModelName"은 고유한 다른 이름으로 변경합니다. 저는 각각 NMOD1 및 PMOD1을 사용하였습니다. SPICE directive를 회로도 어딘가에 놓아 둡니다.

"S"키를 다시 눌러 PMOSFET에 다음을 추가합니다:

.model yourModelName pmos (KP=100u GAMMA=0.9 phi=0.6 lambda=0.02 VTO=-0.7)

이것도 회로도 어딘가에 놓아 둡니다.

각 MOSFET 채널의 길이와 폭을 편집하기위해, 해당하는 MOSFET을 마우스 오른쪽 버튼으로 클릭합니다. 회로의 P-MOSFET 두 개는 아래의 동일한 값을 공유합니다:

pmosLW

다시 "yourModelName"을 SPICE directive에 입력한 이름으로 변경합니다. 저는 P-MOSFET은 PMOD1 그리고 N-MOSFET은 NMOD1이라고 하였습니다.

N-MOSFET는 길이와 폭이 약간 다릅니다. 회로의 N-MOSFET 두 개 중 위의 N-MOSFET(회로에서 NMODA)는 다음 값을 사용합니다:

topNMOSLW

아래의 N-MOSFET(NMODB)는 다음 값을 사용합니다:

bottomNMOSLW

반드시 두 SPICE directive에 적힌 것과 동일한 모델 이름을 사용해야 합니다. 그렇지 않으면 프로그램은 사용할 매개변수를 알 수 없습니다.

시뮬레이션을 위한 출력 SPICE directive

또 다른 SPICE 명령을 추가합니다: CL Out 0 1p. 출력에 약간의 커패시턴스와 인덕턴스가 필요함을 LTSpice에게 알리는 바로가기와 같은 것입니다. Out은 출력을 나타내며, 0은 존재하는 인덕턴스 양을 그리고 1p는 존재하는 커패시턴스 양을 나타냅니다. 간혹 프로그램이 시뮬레이션을 좀 더 빠르게 수행할 수 있도록 하기 위해 이 작업을 합니다.

심볼을 만들어 모델 완성

계층 회로를 만들 때 일반적으로 따르던 절차대로 심볼을 만들어 나갑니다. 이 작업을 해본 적이 없다면 다음의 링크된 게시글을 참고해 보시기 바랍니다: LTSpice에서 하위 회로/계층 구조 블록(회로) 만들기. 여기에서는 “Netlist/Library” 방법을 사용하지 않았습니다. 심볼 편집기에서 호, 선 및 핀을 사용하여 상당히 정밀한 도면을 만들 수 있습니다. 제가 만든 것은 아래와 같습니다:

NOT 게이트 모델링하기

이제 NAND 게이트가 있기 때문에 NOT 게이트를 사실 두 가지 방식으로 모델링할 수 있습니다: MOSFET 설계 또는 단일 NAND 게이트 사용.

새로운 하위 회로에 NAND 게이트 하나를 사용하는 것이 손이 덜 갈 것입니다. 아래는 간단한 회로도 입니다:

NANDNOT

기본적으로 두 입력을 하나의 입력으로 묶으면, NOT 게이트와 동일한 동작을 합니다.

아래는 MOSFET을 사용한 회로도 입니다:

NAND에 사용된 SPICE 모델은 동일합니다. NMOD1 트랜지스터의 길이와 폭 설정은 NAND 게이트의 아래쪽 N-MOSFET(NMODB)와 동일합니다. 아래는 MOSFET 모델을 사용해 만든 NOT 게이트 심볼입니다:

파생된 게이트들: AND, OR, NOR, XOR, XNOR

NAND 게이트만 사용하거나 NOT 게이트와 NAND 게이트를 조합해서 모든 다른 게이트들을 만들 수 있습니다. 직접 만들 경우를 위해 배치를 보여주기 위한 도면이 아래에 제공되어 있습니다. 심볼을 어떻게 설계할 것인지는 여러분이 결정하십시오. 편의를 위해 만든 모든 회로도와 심볼에 대한 다운로드가 게시글 마지막 부분에 제공되어 있습니다. LTSpice에 연결한 폴더에 모든 파일을 넣지 않으면 제대로 동작하지 않을 것입니다.

AND

OR

NOR

XOR

XNOR

게이트 파일

아래는 제가 만든 모든 심볼과 회로의 압축 폴더입니다:

GATES.zip (4.9 KB)



영문 원본: Adding All Logic Gates to LTSpice