본문 바로가기
# Semiconductor/- Semicon Academy

[Harman 세미콘 아카데미] 68일차 - Full Custom IC(2NOR, 3NAND, 3NOR 생성 / NOT gate Layout, DRC, LVS)

by Graffitio 2023. 10. 5.
[Harman 세미콘 아카데미] 68일차 - Full Custom IC(2NOR, 3NAND, 3NOR 생성 / NOT gate Layout, DRC, LVS)
728x90
반응형
[2NOR]

 

📌 Schematic

 

 


 

📌 Symbol & Simulation

 

 

 

0.5V 지점에서 변환이 되어야 하므로, 500m

VINB는 0.01 step size로 0~1V Sweep

 

초기 셋팅
소수점 둘째 자리까지 Simulation

 

단축키 M 을 활용하여 마크찍어놓고 보면 편하다.

적절한 W값은 3.99 μ


 

[3NAND]

 

📌 Schematic

 

 

NAND gate는 pMOS 병렬, nMOS 직렬로 구성된다.

 


 

📌 Symbol

 

 


 

📌 Simulation

 

A B C NAND
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
    1         1         0         1    
    1         1         1         0    

위와 같이, 출력값이 변환되는 지점이면서

입력 값을 최소한으로 가변하는 구간을 찾아서 시뮬레이션하면 된다.

 

 

 

 

적절한 W 값은 2.31 μm

 


 

[3NOR]

 

📌 Schematic

 

 


 

📌 Symbol

 

 


 

📌 Simulation

 

A B C NOR
    0         0         0         1    
    0         0         1         0    
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
    1         1         0         0    
    1         1         1         0    

위와 같이, 출력값이 변환되는 지점이면서

입력 값을 최소한으로 가변하는 구간을 찾아서 시뮬레이션하면 된다.

 

 

 

 

적정 W의 값은 5.00 μm

 


 

[Layout]

 

📌 Layout 개요

 

 

삼전에서 아래 그림을 주고, 위의 그림을 만들도록 한다.

점선을 자른 단면이 위의 그림처럼 나오면 됨.

파란색 빗금 : Net pipe

검은색 빗금 : SiO2

빨간색 빗금 : Polysilicon

 

아래 그림에서 왼쪽부터 소스, 게이트(빨간 빗금), 드레인, 드레인, 소스

SiO2는 전체적으로 substrate위에 쫙 발려져있고, 검은색 부분은 구멍이라 보면 됨.

 

그런데 이 그림대로 레이아웃을 만들어서 동작시키면 잘 안 돼

왜 그래?

nMOS의 W/L과 pMOS의 W/L이 같기 때문에

nMOS와 pMOS의 모빌리티는 서로 다르기 떄문에 W/L이 달라야 정상적으로 동작할 수 있다.

제대로 만들 거면, pMOS의 디퓨전을 길게 늘려서 W를 크게 해줘야 한다.

 

Tap은 왜 존재하는 건가?

핀이 양 방향으로 존재하는 칩은 없다.

한 방향으로만 핀을 위치시키기 위해서 Body를 tab을 통해서 한 방향으로 pin을 배치

 


 

📌 Layout 기본 사용법

 

 

NOT 아래에 만들어줄 것이다.

 

Schematic과 좀 다른 창이 출력된다.

Schematic과는 단축키가 다른 것들이 있으므로,

확인하고 사용할 것.

 

 

똑같이 그리드 재설정하자

그리드 셋팅을 안 맞추면 Off-Grid 오류가 발생할 수 있기 떄문에

다 똑같이 맞춰야한다. 반드시!

 

 

Shift + F  Ctrl + F 단축키를 활용하면, 위와 같이 Layer를 On/Off 할 수 있다.

 

MOSFET parameter Setting

 

 

Shift + z Ctrl+ z 단축키를 활용하면,

쉽게 Zoom In / Zoom Out을 할 수 있다.

 

 

단축키 K를 사용하면, Ruller 기능을 사용할 수 있다.

 

 

원하는 Layer를 선택해서 그리기 위해 단축키 R을 사용한다.

단축키 R을 누르고 클릭~클릭

 

nMOS를 Layer 단위로 분해

좌측부터 Nimp / PWdummy / Poly / Oxide_thk / Cont / Metal1

 

 

레이어의 크기를 변환하고 싶다면, 단축키 S(Stretch) 기능을 사용하면 된다.

단축키 S 를 누르고 클릭~클릭

 


cf) 도형은 가장 바깥 쪽의 변만 고려한다.

 

좌측 그림의 경우, 사각형이 아닌 팔각형이 되고

우측 그림의 경우, 바깥쪽 사각형(Poly)만 고려된다.

 


 

<Layout 기본 단축키 모음>

단축키 기능 설명
M Move Layer 위치 이동
C Copy Layer 복사
K Ruller Layer 측정
S Stretch Layer 크기 조정
R Rectangular Drawing 마우스로 Layer를 작성
Shift + f Layer On Layer 출력
Ctrl + f Layer Off Layer 숨김
Shift + z Zoom In Zoom In
Ctrl + z Zoom Out Zoom out

 

좌측 : 인스턴스한 nMOS, 우측 : 직접 만든 nMOS

 

이제까지 배운 단축키의 기능들을 활용하면

위 그림처럼 레이아웃을 직접 설계할 수 있다.

 

 

Q. 왜 이렇게 안 씀?

 

A. 통으로 뚫어서 쓰는 것(저항이 직렬로 연결됨)보다

3개를 뚫은 것의 저항값이 더 작기 때문에(저항이 병렬로 연결됨)

구멍을 각각 뚫어서 연결한다.

 


 

📌 Not gate Layout

 

 

전에 만들어 둔 NOT gate의 pMOS의 W = 2.91um이었고

그 값을 적용해주자.

참고) nMOS와 pMOS의 모빌리티는 다르기 때문에 W값이 다르다

 

 

 

Poly는 Poly끼리 연결해준다.

변에 딱 맞추지 말고 겹치는 것이 오류가 없겠지?

 

GND는 nMOS와 연결되는 부분이므로 M1_PSUB

단축키 O를 클릭하여 Creat Via 창을 열어서 Via를 셋팅해줄 수 있다.

 

Metal1으로 연결해준다.

 

VDD는 pMOS와 연결되므로 M1_NWELL로 배치

 

VIN에 해당하는 Via는 위와 같다.

 

좌측 : Metal1 drawing / 우측 : Metal1 Label

Metal1 Drawing과 Metal1 Label은 육안으로 구분이 불가능하다.

그러니까 Q 눌러서 속성가서 구분하고 사용하도록 할 것.

확인 안 하고 썼다가는 나중에 오류 폭탄맞음.

 

 

Label을 셋팅할 것인데,

폰트 : roman & 크기 : 0.4 가 가장 적합하다.

 

 

Label은 반드시 Label을 붙일 Metal1 내부에 배치되어야 한다.

 

일단 완성된 Not gate(Invertor)

 

위 그림과 비교해봤을 때,

검은색 바탕 배경은 P-substrate에 해당하는 부분이라 보면 된다.

P-substrate 위에 pMOS와 nMOS가 배치되어 있고,

Metal1이 배선처럼 각 MOSFET의 단자들을 연결시켜준다.

 


[DRC & LVS]

 

예시를 하나 들어보자.

만약 선임이 Chip을 하나 개발하고 Schematic을 만들었다.

그 Chip의 Layout은 내가 맡게 되었고, 만들어진 Layout을 가지고

삼성전자에 제작 의뢰를 맡겼다.

그런데 막상 제작된 Chip은 동작을 하지 않는다.

이 때, 과실 여부를 어떻게 따지게 될까?

 

① 선임 잘못이라면, Schemetic Error

② 내 잘못이라면, Layout Error

③ 삼성 잘못이라면, 공정 문제

 

나와 선임은 설계 단계에서는 문제가 없다는 사실을 증명해야 한다.

그 것들 중 Layout 단계에서 증명해야될 것이 바로 DRC와 LVS이다.

DRC는 삼성전자에서 준 Design Rule(파운드리 회사에서 줌)에 맞춰서 작성했는지,

LVS는 Schematic과 Layout이 Match가 되는지 검증하는 과정이다.

 

해당 문제 발생 시, DRC와 LVS 파일을 증빙자료로 제출하고

위 과정에서 문제가 없다면, 우리 과실은 없음. 삼전 잘못ㅇㅇ

 

cf) Error 50,000개 vs 다시 그리기

    DRC 돌렸어.

    근데 Error가 50000개가 발생했어

    다시 그려? 아니면 Error 다 잡아?

    다 잡아야 됨.

    내가 디자인 룰을 모르고 작업했기 때문에 에러가 발생하는 것이다

    다시 그려도 결국 에러 발생함

 


 

📌 DRC(Design Rule Check)

 

 

Assura → Run DRC 클릭

현업에서는 아슈라 대신 캘리버로 쓰여 있을 수 있다.

 

 

Run name 작성해주고 Tech는 gpck090 선택

이후에 나오는 안내 메세지는 다 Ok 또는 Yes 누르면 됨.

 

 

그러면 위와 같이 발생한 에러가 쭉 출력된다.

1번 Error는 아래에서 다룰 예정

4~5번은 각 Metal1 Layer 사이의 최소 거리를 지키지 않아서 발생하는 오류로 이 것도 아래에서 다룰 예정

 

2~3번 Error를 보면, Float이면서 최소 거리가 지켜지지 않았다고 되어 있다.

Well을 1.2u만큼 띄우던지, 아니면 하나로 다 싸버리던지 하면 된다.

 

Newll 선택
전부 다 Nwell로 싸버리자.

 

 

Layout은 Grid 즉, 격자 기반으로 작성되기 때문에

소수점 셋째 자리를 넘어가는 등, 격자에 해당되지 않는 좌표에 그려진다면,

Offgrid Error가 발생하게 된다.

 

Metal1의 폭은 최소 1.2um 이상이어야 하므로 늘려준다.

 

에러가 현저히 감소한 것을 확인할 수 있다.

 

각 Layer 사이의 최소 거리는 1.2um 이상이어야 한다.
늘려주자

 

DRC Error Clear

"나중가면 이 메세지가 아주 반가워질 것이다."

by Choi

 


 

📌 LVS(Layer vs Schematic)

 

 

위와 같이 Match 라는 메세지가 출력되면 성공

 

만약 다른 점이 있어서 Match가 되지 않는다면, 어떻게 수정할까?

 

VOUT Label을 삭제하여 에러를 만들어 보자.

 

 

LVS Report이며, Mismatch가 발생했다는 내용이 담겨져 있다.

Ok 눌러서 넘어가자

 

에러 발생한 부분 더블 클릭

 

 

에러 part를 더블클릭하면, Schematic창이 추가로 하나 뜨는데,

여기서 Probe 버튼을 누르면 Match가 되지 않는 부분을 Highlight해서 알려준다.

 

 


 

📌 최적화

 

이렇게 열심히 22명이 레이아웃을 만들었는데, 과연 다 채택해서 쓸까?

그렇지 않음.

만약 여러 개의 레이아웃이 있다면,

동일한 조건에서 가장 작게 레이아웃된 것을 사용한다.

반도체는 같은 성능을 낸다면, 크기가 가장 작은 것을 채택한다.

 

 

가장 작게 만들어보면, 5.84um까지 줄일 수가 있고, DRC & LVS 결과 이상없이 잘 만들어졌다.

 

 


 

728x90
반응형