셀의 레이아웃을 만들어보자. 

nmos는 1u로 만들어서 배치한다.

Pmos는 n-well, Nmos는 psub 연결, 단축키O (via)를 눌러서 만들어보자. 

 

nmos와 psub 간격은 0.1u, 단축키K를 누르면 눈금확인가능하다. 

pmos도 맞춰준다.

이제 pmos는 전체 n-well로 덮어줘야 한다. R을 눌러서 감싸주고, S를 눌러서 조정해준다. 위와 같이 만든다.

 

이제 wire를 메탈로 그려보자

왼쪽 창에서 poly를 누르고 R누르 pmos와 nmos 사이에 폴리를 연결해준다. (살짝 겹치게)

이 때 간격은 5.78u 길이여야 한다. DRC 체크 후에 전체적인 사이즈를 줄인다.

메탈도 연결해준다. 

 

메탈과 폴리를 연결해보자, 비아를 만들어준다. POv -> 공간을 위해 Rotate해서 쓴다. 

 

이제 라벨을 붙여주자

Metal1 lbl (label)을 눌러주고 단축키 L을 눌러서 라벨을 만들어서 메탈에 붙여준다.

 

이제 저장 후 DRC 체크해보자.

에러가 발생한 경우, 해당 에러 클릭 후 오른쪽 방향키를 누르면, 에러가 발생한 위치를 보여준다. 

수정해주자.

 

0.12u 보다 크게 수정해주면 된다. 

 

이제 레이아웃과 스키매틱이 일치하는지 LVS를 해보자.

이렇게 매치된 결과를 확인할 수 있다. 

 

이제 VSS 라벨을 지우고 DRC LVS 를 돌려보면 아래와 같이 에러가 발생한다.

발생한 에러 - Pins 를 누르고 Open Tool을 누른다.

VOUT 클릭 후 ZOOM을 누르면 에러 발생한 위치를 확인가능하다. 

 

내부가 보이고 안보이고는 shift + F , Ctrl + F 로 변경가능하다.

 

 

이제 2NAND 레이아웃을 해보자.

이제 비아를 만든다.

n-well도 만들고 pmos 전체를 덮는다.

폴리를 그릴 때 R 로 그릴 수 있고 P로 그릴 수도 있다. 

 

메탈 연결해준다.

 

0000000000000000000000000000

그리고 라벨을 붙여준다.

DRC 체크한다. LVS 한다.

'[Harman교육] Full Custom IC One Chip' 카테고리의 다른 글

[23.06.09] Full custom IC 설계 Day1  (0) 2023.06.09

CMOS 기초 개념

 

출력단에 drain이 3개가 연결되어 있다. 이 때 가급적 출력단 Y 쪽이 drain 개수를 적게 배치하는 것이 좋다. 필연적으로 캐패시터 성분이 발생하는데, drain여러 개인 경우 그에 맞게 캐패시터 성분이 증가하여 출력단으로의 딜레이가 커지기 때문이다. 

 

 

Virtuoso 사용법

instance는 부품, Wire, Wire Name, Pin 기능으로 회로를 그릴 수 있다. 단축키를 활용하여 그린다.

I 클릭 후 위와 같이 부품을 불러올 수 있다. 

부품을 가져온 모습이다.

 

wire로 연결하고, PIN(PORT)을 추가한 후 net에 라벨을 붙여준 상태이다. 

 

check and save 를 누른다. 에러 발생시 G 단축키를 눌러 확인하고 수정한다. 창에서 결과를 확인할 수 있다.

 

L,W 등 속성을 바꾸기 위해선, 부품 클릭 후 Q단축키를 누른다.  NMOS 먼저 설정했다. 

 

PMOS의 width는 Width라고 적어준다. 

 

값을 입력하고 OK를 누르면 symbol을 만들 수 있는 창이 생긴다. 

먼저 그리드 기본 셋팅을 한다.

필요없는 건 지우고 위에 있는 아이콘을 클릭하여 심볼을 그리고 check&save를 클릭한다.

 

File - New - Cellview 를 누르고 라이브러리에 추가할 셀을 만들어준다. 그럼 자동으로 스키매틱 창이 뜬다. 

 

회로를 그렸다. 

L 100n, NMOS의 W는 1u, PMOS는 WIdth 로 값을 설정한다. 

한 번에 값을 설정하기 위해 부품을 동시에 잡아주고

all selected로 꼭 바꿔서 OK를 눌러야 모두 적용된다. 

 

이렇게 심볼을 그려주고 저장한다.

 

2NOR도 만들어서 라이브러리에 추가해주었다. 

 

 

이제 시뮬레이션을 통해 PMOS의 width값을 결정해보자.

 

내가 만든 라이브러리에서, 테스트할 부품instance를 찾아 추가한다.

 

아날로그lib에서 vdc 추가 후 gnd 추가해서 만들어준다. 

세 개의 부품을 각각 속성에서 DC voltage 값을 정해준다.

 

 

위의 시뮬레이션 창이 뜨면, 회로 상의 VINA, VOUT 즉 input과 output 이름을 클릭하면 결과를 확인할 수 있다.

 

파형의 500m 지점을 찾아 2.91u 라는 width 값을 찾았다. 이 값을 NOT cell에 적용하고 다시 시뮬레이션을 확인한 결과

의도대로 인버팅되는 것을 확인할 수 있었다. 

 

 

'[Harman교육] Full Custom IC One Chip' 카테고리의 다른 글

[23.06.13] Full Custom IC Day3  (0) 2023.06.13

Gerber를 만들자

 

Export - Gerber에 들어간 후 TOPSILK라는 폴더를 추가한다. 폴더를 열어보면 알아서 파일들이 들어가있는 것을 볼 수 있는데, 회로도에 표시된 요소들이 자동으로 들어간 것이다. 따라서 silk만 매칭시키는 작업이 필요하다.

 

먼저 글로벌 비저빌러티를 off로 끄고, 지오메트리에 Silkscreen 관련만 다 보이게 해준다. 이때 outline도 체크해준다. 

components에서는 Ref des항목에서만 체크해야 한다. 

위와 같이 silk만 표시된다. 

 

매치 디스플레이를 클릭해준다. 결과 상으로 silkscreen만 남아 있어야 한다. outline은 현재 표시되지 않는다. 

 

같은 방식으로 TOP은 끄고 BOTTOM silkscreen만 표시한 후 매칭시켜준다.

 

soldermask도 add해준 후 컬러를 표시해보자, soldermask는 핀에만 존재, PSR이 도포되지 않는 부분이므로 Pin에만 체크한다.

위와 같이 표시된다. 바텀도 똑같이 만들어준다.

Integer places 3은 소수점 앞의 세자리 수, Decimal places 5는 소수점 뒤 5자리까지를 기준으로 gerber 데이터를 만든다는 의미이다. Geber RS274X 포맷으로 만든다. (대부분의 PCB)

 

항목들을 전체 선택 후 create Artwork 를 클릭한다. 

 

위와 같이 레포트가 나온다. warning은 문제가 없지만 에러는 발생하면 안된다. 맨 아래를 보면 6장의 필름이 생성된 것을 확인할 수 있다.

 

GERBER라는 디렉토리 안에 들어가면 6장의 필름이 생성된 것을 확인할 수 있다.

 

표시된 파일은 삭제해준다.

 

view에서 필름을 선택하면, 만들어진 필름을 확인할 수 있다.

 

심볼 모양을 설정 후 create drill table을 클릭하면 적용된 것을 확인할 수 있다. 

이렇게 drill 파일을 만들었다. 

 

 

이제 4layer를 만들어보자. 

 

4 개의 층을 설정한다.

각 층별로 다른 색으로 표시되도록 설정한다.

 

특정 net 만 삭제하는 법, 딜리트 누르고 위와 같은 스텝 후 ok누른다. 회로도 아무 곳이나 클릭하면 해당 net만 삭제된다. 

DIP타입은 자동으로 아래층GND/ VCC와 연결되지만, SMD타입은 GND와 VCC 모두 직접 비아를 뚫어줘야 한다. 두개 정도는 하나의 비아에 같이 연결해줘도 된다. 가장 좋은 것 개당 하나씩 비아를 뚫는 것이지만 상황에 따라 두개까진 괜찮다.

 

GND 층만 선택 후 shape - rectangular 클릭 후 GND를 덮는다. 

이렇게 GND만 채워진다.

 

다음으로 VCC만 보이게 한 후 채운다.

TOP, BOTTOM도 GND로 채운다. 

 

 

'[Harman교육] PCB 아트웍' 카테고리의 다른 글

[23.05.25] PCB day4  (1) 2023.05.25
[23.05.24] PCB day3  (0) 2023.05.25
[23.05.23] PCB day2  (0) 2023.05.24
[23.05.22] PCB day1  (0) 2023.05.22

라우팅(배선)

배선이 끝난 후 via수를 체크해본다. 

 

테이블을 보면 via 17개를 뚫은 것을 확인할 수 있다. 회로도를 보면서 최대한 비아 개수를 줄여본다. 처음 배선은 가로 TOP. 세로 BOTTOM으로 배치한 후, 작업이 끝나면 비아를 줄였다. 배선시 GND는 setup - Constraints - property에서 GND Rats nets on 으로 설정한 후 작업한다. 어차피 작업이 끝난 후 GND로 덮을 것이기 때문에 연결하지 않는다.

 

GND만 남은 상태이다. 

 

 

TOP 먼저 공간들을 GND로 채운다. 드래그한 후 done한다.

 

BOTTOM만 켜고 GND를 채워준다.

 

check - status를 확인하면 이전엔 연결되지 않았던 GND도 모두 처리되어 0으로 뜨는 것을 볼 수 있다.

 

고립된 GND들은 접지되지 않은 동판이다. 동판에 GND가 클수록 noise에 좋으므로 그냥 없애기엔 아깝다. 따라서 작은 부분들은 제외하고, 큰 고립된 부분들은 via를 뚫어서 GND와 연결해줌으로써 살릴 수 있다. 

 

위와 같이 클릭하면 isolated된 공간을 확인할 수 있다. 비아를 뚫을 땐 add connect 클릭 후 더블클릭하면 된다.

 

GND를 카피하여 전체적으로 듬성듬성 만들어준다. 와이어 여러개가 있는 곳, 좁아지는 쪽에 배치해주면 좋다. 

 

All Etch를 2.5로 설정한다.

외곽을 5mm간격으로 GND처리해준다. 

 

이제 남은 필요없느 isolated GND를 없애준다, TOP, BOTTOM 모두 없애준다.

 

update to Smooth를 누르고 status 리포트를 보면 남아있는 isolated shapes가 0이 된 것을 알 수 있다.

 

Etch 표시를 꺼준다.

다음은 silk 정리이다. 무브 클릭 후 find에서 text만 선택 후 silk를 rotate하여 정리해준다. 

정보를 알고 싶은 ref 이름을 클릭한 후 위의 아이콘을 클릭한다. 

그럼 위와 같이 정보를 확인할 수 있는데, TEXT BLOCK 넘버가 3임을 알 수 있다. 이 때 photoplot width는 두께임을 뜻한다. 원래 0으로 셋팅되어 있었는데 0.2로 바꿨다.

디자인 파라미터에 들어가서 아까 확인한 넘버3의 photo Width 를 바꿔주었다. 

 

회로도에 넘버 3인 ref 네임들은 적용된 것을 확인할 수 있다. 이제 나머지 것들은 체인지 오브젝트 들어간 후 test block 넘버를 3으로 셋팅한 후 바꿀 ref 네임을 클릭하면 적용된다. 

 

완성된 모습이다. 

 

넘버 8을 이용해서 내이름을 써보자.

silk test를 써보자 내이름으로. 

 

날짜는 bottom에, 그리고 미러를 꼭 체크해야 한다. 반전으로 적어야 하기 때문이다.

작성한 결과이다. 

 

마지막으로 DRC 및 디자인 체크를 해준다. 커맨드 창을 보면 에러 0을 확인할 수 있다.

status를 보면 모두 초록색으로, 에러가 없는 것을 확인할 수 있다.

 

2LAYER짜리 발주할 때 뭘 보내야 할까?

 

<TOP&BOTTOM>  

1. 모든 silk만 나오는 film : Silkscreen_Top

2. 모든 동판만 나오는 film : Etch, via, pin

3. 모든 soldermask만 나오는 film : Soldermask_Top

- SMD(LAND)와 DIP(Hole과 LAND) 타입 모두 LAND보다 1mm더 큰 둘레의 soldermask라는 속성이 있다. soldermask란 PSR이 도포되지 않는 영역을 의미한다. (납땜 위한 영역)

 

TOP과 BOTTOM에 대해 각각 3장씩 총 6장의 Film이 필요하다. 

 

또한 1. Gerber Data와 2. Drill Data - 모든 Hole정보(size, 좌표, 개수) 가 필요하다.

'[Harman교육] PCB 아트웍' 카테고리의 다른 글

[23.05.26] PCB day5  (0) 2023.05.26
[23.05.24] PCB day3  (0) 2023.05.25
[23.05.23] PCB day2  (0) 2023.05.24
[23.05.22] PCB day1  (0) 2023.05.22

PCB 설계

 

1-1 PCB 셋팅

시작해보자

먼저 위와 같이 파라미터를 밀리미터 기준으로 셋팅해준다. 자동으로 양면 PCB 이다. (TOP, BOTTOM)

 

만약 4층 PCB를 만들고 싶다면 Cross-section 에서 TOP과 BOTTOM 사이에 Add Layer Below로 추가해주면 된다. 컨덕터와 다이일렉트릭 층을 추가해주는 것이다. 

층이 4개일 때 구성은 다음과 같다.

1층: 일반신호선 - Signal 층

2층: GND 층

3층: VCC 층

4층: 일반신호선 - Signal 층 

일반신호선은 Conductor, power 선은 Plane으로 셋팅 

 

 

psmpath와 padpath 모두 내가 만든 path를 추가해준다. 

여기까지 기본셋팅이 끝났다. 

 

마우스 우클릭으로 원하는 메뉴를 쉽게 갈 수 있도록 셋팅했다. 

 

1-2 board 만들기

 

라인을 클릭하고 오른쪽과 같이 셋팅한 후 커맨드 창에 입력하여 보드 좌표를 정했다. 끝난 후엔 우클릭 done을 한다.

 

라운드처리해주었다.

 

보드 속성 설정

Package keepin 3.0mm 를 만들었다. 셋팅 후 외곽 클릭하면 만들어진다.

route keepin을 만들었다. 외곽을 클릭해야 외곽으로부터 1.5 안에 그려진다. 

 

기구 홀을 배치한다. 보통 3.2 파이 짜리를 사용한다. 이를 밀리스로 계산해서 MTG125를 사용한다. 커맨드창에 절대 좌표로 배치한다.

 

부품 배치

 

edge는 보드 기준 방향이고, 보드 레이어는 층을 말한다. Place를 누르고 OK를 누른다. 

 

 

부품 배치 시 move를 누르고 배치한다. 

커패시터는 VCC가까이에 배치한다. VCC GND 방향도 잘 고려해서 배치해야 한다. 또한 크리스탈도 유의하여 배치해야 한다. 부품 방향은 rotate로 바꿀 수 있다.

 

Color192 셋팅해준다.

 

Constraints Manager

Neck은 부득이한 경우가 아니면 사용하지 않는다. 임피던스에 악영향을 끼치고 시그널이 제대로 전달되지 않을 수 있다. 따라서 사용하지 않는다는 의미로 0을 셋팅하거나, Line과 똑같이 값을 지정하면 된다. 

VIA 더블클릭

VIA26이란 폭이 25Milis 라는 의미이다. 원하는 걸 더블클릭해서 적용할 수 있다.

 

Object - Create - PhysicalCset 클릭 후 CLOCK, POWER 만들 수 있다. VIA26도 적용된 상태이다. 

Net All layers에서 GND, VCC는 내가 만든 POWER로 바꿔주고, 크리스탈의 X1, X2는 CLOCK으로 바꿔준다. 이것들은 다른 와이어보다 케어해줘야 하기 때문이다. 

 

모두 이격거리 0.2로 셋팅한다.

 

SMD pin은 VIA를 뚫으면 안되기 때문에, 에러표시를 위해 설정해준다.

 

그리드 셋팅에 All Etch에 값을 셋팅한다.

 

라우팅 시, 딜리트를 누르고 오른쪽에 위와 같이 셋팅한 후 해당 와이어를 더블클릭한다.

'[Harman교육] PCB 아트웍' 카테고리의 다른 글

[23.05.26] PCB day5  (0) 2023.05.26
[23.05.25] PCB day4  (1) 2023.05.25
[23.05.23] PCB day2  (0) 2023.05.24
[23.05.22] PCB day1  (0) 2023.05.22

라이브러리 생성

1-1 단일 부품 패키지

orcad에서 제공하는 라이브러리 말고 직접 라이브러리를 생성하여 사용할 수 있다. 

라이브러리를 생성하면 오른쪽과 같이 라이브러리가 추가된 것을 확인할 수 있다.

 

라이브러리에 위와 같이 부품을 생성해주었다. GND와 VCC는 추가 후 PinVisible을 꺼주었다. 

 

회로에 내가 만든 부품을 사용한 후에, 수정할 땐 main - Library에서 해당 부품 우클릭 - edit Part 클릭해서 수정한다. 이 때 수정한 사항이 자동으로 반영되지 않기 때문에 위처럼 디자인 캐시에서 해당 부품 우클릭 후 Replace Cache를 클릭해준다. 

 

1-2 다중 부품 패키지 (Homogenous)

 

심볼 하나를 만들면 동일하게 A, B, C, D가 만들어진다. Homo로 4개 설정했기 때문에 같은 심볼로 자동으로 생성되는 것이다. 다만 핀은 직접 설정해줘야 한다. 다음 심볼로 넘어갈 땐 위와 같이 view에서 Next part 혹은 Previous part를 클릭해서 앞뒤로 넘어갈 수 있다. 

 

만든 부품을 위와 같이 불러왔다. 4개가 1개의 IC이기 때문에, 5번째부터는 다시 A라는 네임으로 만들어진 것을 알 수 있다. 네 개를 PCB에 올리면 IC 1개로 올라가진다. 

 

 

PCB Edit

1-1 PCB 올리기

회로도 상태에서 Netlist 작성을 통해 PCB에 올리게 된다. 회로도 형태에서 PCB에 맞게 physical symbol로 표현하게 되고, 이것이 Footprint이다. 

 

PCB footprint 입력을 위해 위와 같이 클릭한다.

위와 같이 값을 적어주었다.

 

  • SMD type: SOP, QFP, BGA
  • DIP type: DIP, PGA

이 때, SOP는 PCB 위에 바로 납땜할 수 있는 부품이고, DIP은 PCB를 뚫고 아래쪽에서 납땜하는 부품이다. 현업에서는 SMD 부품을 더 많이 쓴다. 크기가 더 작기 때문이다. 

 

네임 DIP20_3 에서 20은 pin수이고 3은 뒤에 0 두개를 붙여 300이란 폭을 의미한다. 이 떄 폭의 단위는 mils를 많이 사용하는데, 1mils = 0.0254mm (0.001inch) 이다. 즉, 300mils는 약 7.62mm 정도이다. 

 

오른쪽 위의 버튼을 눌러 annotate한 후 DRC까지 확인한다. 

 

다음엔 netlist를 생성한다. 

작업하다보면 회로도를 수정해야할 때가 많은데, 이 때 유의해야할 점들이 있다.

먼저 회로도를 수정한 후 Netlist를 새로 생성한다. 이 때 위와 같이 맨처음 셋팅대로 만들면 이전까지 작업한 것들이 모두 없어진다.

 

따라서 input file에 기존의 작업하던 파일을 넣고, output file 이름을 수정해준다. 주로 뒤에 _01, _02 와 같이 넘버링해준다.

 

BOM과 cross ref part report(교차 참조 리포트)를 뽑아서 확인할 수 있다. Output 파일에 .bom과 .xrf 로 생성된다. 

 

 

1-2 계층구조 회로도 설계

계층구조 설계 : 복잡한 회로도를 기능별로 나누어서 블록을 그려 놓고, 그 블록 안에 기능별로 회로도를 그려 분석하기 편하게 하기 위해 사용한다. 

 

 

가장 먼저 Place - Place Hierarchical Block을 클릭한다. 

Primitive는 단일 심볼을 뜻하기 때문에 블록 안에 회로를 그리기 위해 No로 설정해야 한다.

Implementation name은 Ref name과 똑같이 넣어주면 된다. 블록과 블록 내부의 회로를 연결해주기 위함이다. 

 

블록 클릭 후 Place 에서 위와 같은 하이라키컬 핀을 클릭하면 port를 만들 수 있다. input/ output/ bidirec 방향 설정에 유의하여 생성한다. 

 

블록을 더블 클릭하면 페이지를 생성할 수 있다. 즉, 블록 내부의 회로를 그릴 수 있다. 상위 블록으로 가고 싶으면, 우클릭 후 Ascend 를 클릭하면 된다.

하이라키가 생긴 것을 확인할 수 있다.

 

80C31 회로도를 하이라키 구조로 그린 후 블록 내부에도 회로를 그렸다.

'[Harman교육] PCB 아트웍' 카테고리의 다른 글

[23.05.26] PCB day5  (0) 2023.05.26
[23.05.25] PCB day4  (1) 2023.05.25
[23.05.24] PCB day3  (0) 2023.05.25
[23.05.22] PCB day1  (0) 2023.05.22

PCB 설계를 위한 프로젝트 생성 시 위와 같이 스키매틱으로 생성한다.

 

POWER/GROUND는 따로 만들어줘야 한다. 유의해야할 점은 심볼을 보고 찾은 후 Name을 VCC, GND 로 수정하고 OK를 눌러서 써야한다는 점이다.

위와 같은 심볼은 BUS라고 한다. wire와는 한 칸을 띄우고 BUS를 그린 후, Place bus entry를 이용하여 wire와 bus를 연결해줘야 정상적으로 연결된다. 와이어를 하나 그리고 F4를 누르면 아래 칸으로 와이어가 복사된다. 

 

디자인을 다 그렸으면, edu.dsn을 누르고 오른쪽 위의 design rule check를 클릭해서 에러가 없는지 확인해야 한다.

위와 같이 셋팅해주었다.

edu.drc를 누르면 룰체크 결과를 확인할 수 있다.

 

8031 controller 회로를 그려본다. 

IC 하나 당 bypass capacitor 1 개씩 달아줘야 한다.

 

따라서 위와 같이 캐패시터 6개로 수정해주었다.

'[Harman교육] PCB 아트웍' 카테고리의 다른 글

[23.05.26] PCB day5  (0) 2023.05.26
[23.05.25] PCB day4  (1) 2023.05.25
[23.05.24] PCB day3  (0) 2023.05.25
[23.05.23] PCB day2  (0) 2023.05.24

다이오드

능동소자에 대해 PSPICE 모델 라이브러리를 불러와서 계산함, 부정확하기 때문에 최대전류가 다르게 나올 수 있다. 모델링이 잘되어있느냐에 따라 신뢰성이 떨어지는 결과가 나올 수 있다. 따라서 특히 능동소자 시뮬레이션시 데이터시트를 꼭 확인해야 한다. 

역방향까지 확인해본다.

 

 

원하는 소자가 없을 때 부품 우클릭 후 Edit PSPICE Model을 클릭한다.

 

IF은 200mA 흐르는거 IFM은 다이오드를 스위칭시켜서 on/off로 순방향 역방향 반복적으로 줄 때 on에서의 최대 전류

계속 전류를 흐르게 하려면 200mA가 최대인데, onoff 시키면 좀 더 큰 전류가 흐를 수 있다. ISFM은 어쩌다 한번 크게 튀는 전류이다. 

 

VR, P, IF 세 개는 꼭 확인해야 함, 초과하면 다이오드가 타버린다. 

 

 

 

 

+ Recent posts