Layout

Nand Gate 부터 Nand Flash까지, Cadence의 Virtuoso를 이용해 Nand Gate의 Pmos Width 찾기 시뮬레이션

Torrance 2023. 7. 7. 00:42

안녕하세요, 이번 글에서는

2-Input Nand, Nor Gate에 대해 간단한 구조 설명 및 시뮬레이션 결과를 통한 Pmos의 Width를 찾아보겠습니다.

 

먼저 진리표입니다. Nand와 Nor가 And와 Or보다 구조가 단순하기에 먼저 썼습니다.

Nand, Nor은 트랜지스터가 4개 쓰이나 And, Or은 Not Gate가 추가로 들어가서 6개가 쓰입니다.

다음은 2-Input Nand, Nor Gate의 구조입니다.
Nand Gate : Pmos 병렬, Nmos 직렬

Nor Gate : Pmos 직렬, Nmos 병렬

Nmos가 직렬로 연결됐다는 점을 바탕으로 Nand Flash라는 이름이 붙여졌습니다.


이제 Nand Gate의 Pmos Width 찾기 시뮬레이션입니다.
하만 세미콘 반도체 교육 중, Cadence사의 Virtuoso 프로그램을 이용했습니다.

 

Not Gate와 마찬가지로 Vin을 0~1V로 변화시킬 때, Vout이 1V~0으로 가는 Width를 찾을 것입니다.

그리고 (0.5V, 0.5V)를 지나야 하며, 그 이유는 Swing을 고려했기 때문입니다.

Nmos의 Width는 1um, Pmos의 Width는 WIDTH로 설정했습니다.

전압 변화는 1개의 단자에서 줄 수 있기 때문에 2-Input에서는 1개를 택해야 합니다.
아래 진리표와 같이 VinB가 0~1V로 변할 때, 결과 값이 1V에서 0으로 변하기에 VinB를 택했습니다.

Pmos의 Width를 1um~10um로 하니, 2um와 3um 사이에서 (0.5V, 0,5V) 지나는 것이 보입니다.

Pmos의 Width 왼쪽부터 1um이며 가장 오른쪽에는 10um입니다.

그래서 2.0um ~ 3.0um까지 한 번 더 진행해 보니 2.5um와 2.6um 사이에서 (0.5V, 0,5V)를 지났습니다.

붉은 점이 강력하지만 커서는 더 오른쪽에 있습니다.

마지막으로 2.50um~2.60um을 진행했습니다. 마지막인 이유는 Virtuoso 프로그램이 소수점 2번째 자리까지만 계산할 수 있기 때문입니다. 그 결과 2.53um에서 (0.5V, 0,5V)를 지나는 것을 확인했습니다.

 

이렇게 2-Input Nand, Nor Gate의 간단한 설명과 2-Input Nand Gate에서 Pmos Width를 찾는 시뮬레이션을 진행했습니다.

2-Input Nor Gate에서 Pmos 설계 Width를 찾는 시뮬레이션 또한 같은 방식으로 진행됩니다.
심지어 n-Input Nand, Nor Gate도 마찬가지입니다.


그런데 3-Input Nand Gate를 진행하다 보니 VINA를 변화시킬 때와 VINC를 변화시킬 때, Pmos의 Width 값이 다르게 나오는 이상한 점을 발견했습니다.

사실, 이후 3-Input Nor Gate에는 정상적으로 나와서 처음에는 프로그램이나 Schematic 오류로 생각했습니다. 하지만 4-Input Nand Gate에서도 동일한 오류가 발생하는 것을 보고 그 현상을 분석해 봤습니다.

 

아래 사진은 3-Input Schematic(왼쪽)과 진리표 중 일부(오른쪽)입니다.

Schematic에서 1 point에 3개의 선이 연결되면 프로그램 오류가 생겨 되도록 2개로 연결했습니다.

그래서 Nmos의 Width를 1um로 고정하고, Pmos의 Width는 1um와 10um로 변환시켰습니다.

Swing 문제를 고려하기 위해 (0.5V, 0.5V)를 지나는 Width 값을 찾을 것입니다.


(1) VINA를 0~1V까지 변화시키면서, VINB, VINC는 1V 고정

(2) VINB를 0~1V까지 변화시키면서, VINA, VINC는 1V 고정 

(3) VINC를 0~1V까지 변화시키면서, VINA, VINB는 1V 고정

 

(1) VINA를 0~1V까지 변화시키면서, VINB, VINC는 1V 고정, Pmos의 Width는 1um와 2um 사이에 있습니다.

왼쪽 그래프의 x축은 VINB 0~1V이며, y축은 VOUT 0~1V입니다.

(2) VINB를 0~1V까지 변화시키면서, VINA, VINC는 1V 고정, Pmos의 Width는 2um에 조금 더 가까이 있습니다!

왼쪽 그래프의 x축은 VINB 0~1V이며, y축은 VOUT 0~1V입니다.

(3) VINC를 0~1V까지 변화시키면서, VINA, VINB는 1V 고정, Pmos의 Width는 2um와 3um 사이에 있습니다!!

왼쪽 그래프의 x축은 VINC 0~1V이며, y축은 VOUT 0~1V입니다.

분명 Width 값이 달라진다는 것을 확인했습니다. 이 원인은 아래와 같이 VIN이 들어갈 때, Nmos 직렬인 부분에서 병렬 연결되기에 이런 변화 생기는 것이었습니다.

하지만 Nor는 Nmos 부분이 병렬이라 영향을 받지 않아서 어느 입력을 쓰더라도 동일한 값이 나온 것입니다. 

읽어주셔서 감사합니다.